Skip to content

Prototype application for bulk-editing BIM 360 issues using Autodesk Forge APIs.

License

Notifications You must be signed in to change notification settings

petrbroz/bim360-issue-editor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bim360-issue-editor

Platforms Node.js License

Data-Management BIM360

Intermediate

Prototype application for bulk-editing BIM 360 issues using Autodesk Forge APIs.

Screenshot

Running

Web Application

Live demo is running on https://bim360-issue-editor.autodesk.io.

In order to be able to access your BIM 360 project from this demo, you will need to add the following Forge credentials as a custom integration:

  • Forge Client ID: YhryNMLor4R1maFhY4zER8unpISoP5E4
  • Forge App Name: Internal BIM360 Testing App

Command-Line Utility

The project includes two command-line scripts (under the bin/ folder) that can be used to export issues to XLSX and import them back, locally. The scripts require a configuration file that is generated by the web application.

Since the configuration contains sensitive data such as authentication tokens, it is provided in a password-protected ZIP archive. The password is configured using the CLI_CONFIG_PASSWORD environment variable.

  1. Navigate to the issue page for one of your BIM360 projects
  2. Use the "Command-Line Config" button in the bottom toolbar
  3. Download the archive and extract the configuration JSON
  4. Open your command-line (make sure that you have Node.js installed), and navigate to this project's root folder
  5. Try one of the following commands:
  • To export BIM360 issues to XLSX: node bin/bim360-to-excel.js <path/to/unzipped/config.json> <path/to/output/spreadsheet.xlsx>
  • To import issues from XLSX back to BIM360: node bin/excel-to-bim360.js <path/to/unzipped/config.json> <path/to/input/spreadsheet.xlsx>
    • Optionally, include the --sequential parameter to update issues in sequence instead of in parallel
    • Optionally, include a --range=<starting_row_number>-<ending_row_number> parameter to only update issues in a given range of spreadsheet rows

The scripts assume that the path to the spreadsheet is valid, so make sure that the entire folders structure is available

Development

Prerequisites

  • Node.js v10.15 or newer, and yarn
  • Forge application credentials (creating an app)
    • Callback URL of the Forge application must be set to your host followed by /auth/callback so, for example, when running the application locally, the URL should be http://localhost:3000/auth/callback
  • BIM 360 project with the Forge application added as a custom integration

Setup

  • clone this repository
  • install dependencies: yarn install
  • (for now) manually build the forge-server-utils dependency: cd node_modules/forge-server-utils && yarn run build:node
  • provide the following env. variables
    • FORGE_CLIENT_ID - client ID of your Forge application
    • FORGE_CLIENT_SECRET - client secret of your Forge application
    • FORGE_APP_NAME - name of your Forge application (used when asking user to setup the BIM 360 integration)
    • HOST_URL - URL where the demo application is running (for example, http://localhost:3000)
    • SERVER_SESSION_SECRET - secret phrase used to encrypt session cookies
    • CLI_CONFIG_PASSWORD - password to be used to encrypt the command-line configuration file

On macOS

export FORGE_CLIENT_ID=<client id>
export FORGE_CLIENT_SECRET=<client secret>
export FORGE_APP_NAME=<app name>
export HOST_URL=<host url>
export SERVER_SESSION_SECRET=<secret phrase>
export CLI_CONFIG_PASSWORD=<another secret phrase>
yarn start

On Windows

set FORGE_CLIENT_ID=<client id>
set FORGE_CLIENT_SECRET=<client secret>
set FORGE_APP_NAME=<app name>
set HOST_URL=<host url>
set SERVER_SESSION_SECRET=<secret phrase>
set CLI_CONFIG_PASSWORD=<another secret phrase>
yarn start

Using VSCode

When using Visual Studio Code, add this configuration to your .vscode/launch.json:

{
    "type": "node",
    "request": "launch",
    "name": "Launch Server",
    "program": "${workspaceFolder}/server.js",
    "env": {
        "FORGE_CLIENT_ID": "<client id>",
        "FORGE_CLIENT_SECRET": "<client secret>",
        "FORGE_APP_NAME": "<app name>",
        "HOST_URL": "<host url>",
        "SERVER_SESSION_SECRET": "<secret phrase>",
        "CLI_CONFIG_PASSWORD": "<another secret phrase>"
    }
}

License

This sample is licensed under the terms of the MIT License. Refer to LICENSE for more details.

Author

Petr Broz (@ipetrbroz), Forge Partner Development Group

About

Prototype application for bulk-editing BIM 360 issues using Autodesk Forge APIs.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published