{"id":22870066,"url":"https://github.com/autodesk-platform-services/aps-design-automation-nodejs","last_synced_at":"2026-04-06T00:05:31.201Z","repository":{"id":80611905,"uuid":"570600165","full_name":"autodesk-platform-services/aps-design-automation-nodejs","owner":"autodesk-platform-services","description":"Sample tutorial project for APS Design Automation ","archived":false,"fork":false,"pushed_at":"2025-01-28T11:02:36.000Z","size":10935,"stargazers_count":4,"open_issues_count":1,"forks_count":4,"subscribers_count":4,"default_branch":"nodejs","last_synced_at":"2025-03-31T00:11:41.658Z","etag":null,"topics":["autodesk-designautomation","nodejs","tutorial"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/autodesk-platform-services.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-11-25T15:27:41.000Z","updated_at":"2025-01-28T11:02:40.000Z","dependencies_parsed_at":"2024-01-23T11:24:54.042Z","dependency_job_id":"c4a68fa3-aac9-4ef6-aadb-b5eb30a69c60","html_url":"https://github.com/autodesk-platform-services/aps-design-automation-nodejs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autodesk-platform-services%2Faps-design-automation-nodejs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autodesk-platform-services%2Faps-design-automation-nodejs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autodesk-platform-services%2Faps-design-automation-nodejs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autodesk-platform-services%2Faps-design-automation-nodejs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/autodesk-platform-services","download_url":"https://codeload.github.com/autodesk-platform-services/aps-design-automation-nodejs/tar.gz/refs/heads/nodejs","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252584331,"owners_count":21771945,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autodesk-designautomation","nodejs","tutorial"],"created_at":"2024-12-13T13:13:35.885Z","updated_at":"2026-04-06T00:05:31.172Z","avatar_url":"https://github.com/autodesk-platform-services.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# APS Design Automation\n\n[![Node.js](https://img.shields.io/badge/Node.js-18.0.0-blue.svg)](https://nodejs.org/)\n[![npm](https://img.shields.io/badge/npm-2.15.1-blue.svg)](https://www.npmjs.com/)\n![Platforms](https://img.shields.io/badge/platform-windows%20%7C%20osx%20%7C%20linux-lightgray.svg)\n[![License](http://img.shields.io/:license-mit-blue.svg)](http://opensource.org/licenses/MIT)\n\n[![oAuth2](https://img.shields.io/badge/oAuth2-v1-green.svg)](http://developer.autodesk.com/)\n[![Data-Management](https://img.shields.io/badge/Data%20Management-v1-green.svg)](http://developer.autodesk.com/)\n[![Design-Automation](https://img.shields.io/badge/Design%20Automation-v3-green.svg)](http://developer.autodesk.com/)\n\n![Basic](https://img.shields.io/badge/Level-Basic-blue.svg)\n\n## Description\n\nWebapp interface that uses Design Automation to update the `width` and `height` param of DWG Dynamic Block (using AutoCAD), RVT Window Family instance (using Revit), IPT Part parameters (using Inventor) and 3DS ... (using 3dsMax). Also includes a `Clear Account` (remove all AppBundles and Activities) and `Define new Activity` based on the sample code.\n\nSee other projects for bundles.\n\n## Thumbnail\n\nhttps://user-images.githubusercontent.com/6602398/204223085-41b11c3d-0d4b-4ae2-a7f6-d0038f74ecd1.mp4\n\n### Setup\n\nTo use this sample, you will need Autodesk developer credentials. Visit the [APS Developer Portal](https://developer.autodesk.com), sign up for an account, then [create an app](https://developer.autodesk.com/myapps/create). For this new app, use `http://localhost:8080/api/aps/callback/oauth` as the Callback URL, although it is not used on a 2-legged flow. Finally, take note of the **Client ID** and **Client Secret**.\n\n## Running locally\n\nInstall [NodeJS](https://nodejs.org).\n\nClone this project or download it. It's recommended to install [GitHub Desktop](https://desktop.github.com/). To clone it via command line, use the following (**Terminal** on MacOSX/Linux, **Git Shell** on Windows):\n\n    git clone https://github.com/autodesk-platform-services/aps-design-automation-nodejs.git\n\nTo run it, install the required packages, set the enviroment variables with your client ID, Secret and ngrok url and finally start it. Via command line, navigate to the folder where this repository was cloned to and use the following commands:\n\nMac OSX/Linux (Terminal)\n\n    npm install\n    export APS_CLIENT_ID=\u003c\u003cYOUR CLIENT ID FROM DEVELOPER PORTAL\u003e\u003e\n    export APS_CLIENT_SECRET=\u003c\u003cYOUR CLIENT SECRET\u003e\u003e\n    npm start\n\nWindows (use **Node.js command line** from the Start menu)\n\n    npm install\n    set APS_CLIENT_ID=\u003c\u003cYOUR CLIENT ID FROM DEVELOPER PORTAL\u003e\u003e\n    set APS_CLIENT_SECRET=\u003c\u003cYOUR CLIENT SECRET\u003e\u003e\n    npm start\n\nOpen the browser: [http://localhost:8080](http://localhost:8080).\n\n**How to use this sample**\n\nOpen `http://localhost:8080` to start the app, if first time, click on `Configure`(right top) select the bundle and engine and click on `Create/Update` this will create an activity. Enter new `width` \u0026 `height` values, select the input file (use from **sample files** folder), select the `Activity` and, finally, `Start workitem`. \n\n## Debugging Locally\n\nTo run or debug a simple app in VS Code, select **Run and Debug** on the Debug start view or press F5 and VS Code will try to run your currently active file.\n\nHowever, for most debugging scenarios, creating a launch configuration file is beneficial because it allows you to configure and save debugging setup details. VS Code keeps debugging configuration information in a `launch.json` file located in a `.vscode` folder in your workspace (project root folder) or in your [user settings](https://code.visualstudio.com/docs/editor/debugging#_global-launch-configuration) or [workspace settings](https://code.visualstudio.com/docs/editor/multi-root-workspaces#_workspace-launch-configurations).\n\nTo create a `launch.json` file, click the **create a launch.json file** link in the Run start view.\n\n![launch configuration](https://code.visualstudio.com/assets/docs/editor/debugging/launch-configuration.png)\n\nVS Code will try to automatically detect your debug environment, but if this fails, you will have to choose it manually\n\n![debug environment selector](https://code.visualstudio.com/assets/docs/editor/debugging/debug-environments.png)\n\nHere is the launch configuration generated for Node.js debugging\n\n```json\n{\n    // Use IntelliSense to learn about possible attributes.\n    // Hover to view descriptions of existing attributes.\n    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387\n    \"version\": \"0.2.0\",\n    \"configurations\": [\n        {\n            \"type\": \"pwa-node\",\n            \"request\": \"launch\",\n            \"name\": \"Launch Program\",\n            \"program\": \"${workspaceFolder}/start.js\",\n            \"env\": {\n                \"APS_CLIENT_ID\": \"your clientid here\",\n                \"APS_CLIENT_SECRET\": \"your client secret here\"\n            }\n        }\n    ]\n}\n```\n\n## Further Reading\n\nDocumentation:\n\n- [Design Automation v3](https://forge.autodesk.com/en/docs/design-automation/v3/developers_guide/overview/)\n- [Data Management](https://forge.autodesk.com/en/docs/data/v2/reference/http/) used to store input and output files.\n- [Getting started with Node.js debugging in VS Code](https://www.youtube.com/watch?v=2oFKNL7vYV8)\n\n## Packages used\n\nThe [APS SDK](https://www.npmjs.com/package/forge-apis) packages are included by default. Some other non-Autodesk packages are used, including [express](https://www.npmjs.com/package/express) and [multer](https://www.npmjs.com/package/multer) for upload.\n\n## Tips \u0026 tricks\n\nFor local development/ testing, consider using the [nodemon](https://www.npmjs.com/package/nodemon) package, which auto-restarts your node application after any modification to your code. To install it, use:\n\n    sudo npm install -g nodemon\n\nThen, instead of **npm run dev**, use the following:\n\n    npm run nodemon\n\nWhich executes **nodemon server.js --ignore www/**, where the **--ignore** parameter indicates that the app should not restart if files under the **www** folder are modified.\n\n## Troubleshooting\n\nAfter installing GitHub Desktop for Windows, on the Git Shell, if you see the ***error setting certificate verify locations*** error, then use the following command:\n\n    git config --global http.sslverify \"false\"\n\n## License\n\nThis sample is licensed under the terms of the [MIT License](http://opensource.org/licenses/MIT).\nPlease see the [LICENSE](LICENSE) file for full details.\n\n## Written by\n\nAutodesk APS [@AutodeskAPS](https://twitter.com/autodeskaps), [APS Partner Development](http://aps.autodesk.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautodesk-platform-services%2Faps-design-automation-nodejs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fautodesk-platform-services%2Faps-design-automation-nodejs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautodesk-platform-services%2Faps-design-automation-nodejs/lists"}