/viewer-javascript-extract.spreadsheet

Extract Revit Properties into Excel: This sample uses Model Derivative API endpoints to read a Revit project properties and create a XLSX Excel file with one sheet for each type/category with all objects on it

Primary LanguageJavaScriptMIT LicenseMIT

viewer-javascript-extract.spreadsheet

JavaScript sample to extract Revit files from Model Derivative API as Spreadsheet (Excel XLSX)

Viewer License Model-Derivative

Description

This sample uses Model Derivative API endpoints to read a Revit project properties and create a XLSX Excel file with one sheet for each type/category with all objects on it. Non-Revit files are not supported (different structure). Here is another version for desktop.

thumbnail

Demonstration

Run it live at this page, or locally by following these steps:

  • create a Forge application if you don't have one yet (tutorial)
  • make sure you have at least one file prepared for viewing (tutorial)
  • clone this git repository
  • navigate to the repository root folder and install npm dependencies
    • on Windows/macOS/Linux: npm install
  • prepare required environment variables
    • on Windows:
      set FORGE_CLIENT_ID=<your client id>
      set FORGE_CLIENT_SECRET=<your client secret>
      set FORGE_BUCKET=<your data bucket>
      
    • on macOS/Linux:
      export FORGE_CLIENT_ID=<your client id>
      export FORGE_CLIENT_SECRET=<your client secret>
      export FORGE_BUCKET=<your data bucket>
      
  • run the application
    • on Windows/macOS/Linux: npm run dev
  • go to http://localhost:3000

Usage

Add reference to the ForgeXLS file:

<script src="ForgeXLS.js"></script>

Then call downloadXLSX method passing the URN and a data:read token.

function downloadExcel() {
   ForgeXLS.downloadXLS(theURN, token, statusCallback /*Optional*/);
}

Dependencies

This project depends on Sheet JS to manipulate spreadsheet files. The FileSaver library is used to create & download a file on the client. BlobJS is required for older browsers (see compatibility). jQuery is also used.

<script src="jquery.min.js"></script>
<script src="Blob.js"></script>
<script src="FileSaver.min.js"></script>
<script src="xlsx.core.min.js"></script>

License

This sample is licensed under the terms of the MIT License. Please see the LICENSE file for full details.

Written by

Augusto Goncalves @augustomaia, Forge Partner Development