Prototype application for bulk-editing BIM 360 issues using Autodesk Forge APIs.
Live demo is running on https://bim360-issue-editor.herokuapp.com.
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:
gnChEZ6tph1H9IAelM2mYufYZVU1qqKt
- Forge App Name:
Internal BIM360 Testing App
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.
- Navigate to the issue page for one of your BIM360 projects
- Use the "Command-Line Config" button in the bottom toolbar
- Download the archive and extract the configuration JSON
- Open your command-line (make sure that you have Node.js installed), and navigate to this project's root folder
- 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
- Optionally, include the
The scripts assume that the path to the spreadsheet is valid, so make sure that the entire folders structure is available
- Node.js v10.15 or newer, and yarn
- Forge application credentials (creating an app)
- BIM 360 project with the Forge application added as a custom integration
- 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 applicationFORGE_CLIENT_SECRET
- client secret of your Forge applicationFORGE_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 cookiesCLI_CONFIG_PASSWORD
- password to be used to encrypt the command-line configuration file
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
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
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>"
}
}
This sample is licensed under the terms of the MIT License. Refer to LICENSE for more details.
Petr Broz (@ipetrbroz), Forge Partner Development Group