forge-nodejs-utils
Unofficial tools for accessing Autodesk Forge APIs from Node.js applications, built using TypeScript and modern language features like async/await or generators.
Usage
The TypeScript implementation is transpiled into JavaScript with type definition files, so you can use it both in Node.js projects (as a CommonJS module), and in TypeScript projects (as an ES6 module):
// JavaScriptconst DataManagementClient = ;
// TypeScript;
Authentication
If you need to generate 2-legged tokens
manually, you can use the AuthenticationClient
class:
const AuthenticationClient = ;const FORGE_CLIENT_ID FORGE_CLIENT_SECRET = processenv;const auth = FORGE_CLIENT_ID FORGE_CLIENT_SECRET;const authentication = await auth;console;
Other API clients in this library are typically configured using a simple JavaScript object
containing either client_id
and client_secret
properties (for 2-legged authentication),
or a single token
property (for authentication using a pre-generated access token):
const DataManagementClient BIM360Client = ;const dm = client_id: '...' client_secret: '...' ;const bim360 = token: '...' ;
Data Management
const DataManagementClient = ;const FORGE_CLIENT_ID FORGE_CLIENT_SECRET = processenv;const data = client_id: FORGE_CLIENT_ID client_secret: FORGE_CLIENT_SECRET ; const buckets = await data;console; const objects = await data;console;
Model Derivatives
const ModelDerivativeClient = ;const FORGE_CLIENT_ID FORGE_CLIENT_SECRET = processenv;const derivatives = client_id: FORGE_CLIENT_ID client_secret: FORGE_CLIENT_SECRET ;const job = await derivatives;console;
Design Automation
const DesignAutomationClient = ;const FORGE_CLIENT_ID FORGE_CLIENT_SECRET = processenv;const client = client_id: FORGE_CLIENT_ID client_secret: FORGE_CLIENT_SECRET ;const bundles = await client;console;
Testing
export FORGE_CLIENT_ID=<your-client-id>export FORGE_CLIENT_SECRET=<your-client-secret>export FORGE_BUCKET=<your-test-bucket>export FORGE_MODEL_URN=<testing-model-urn>npm run build # First transpile TypeScript code is into JavaScript npm test