Visual Studio Code extension for accessing Autodesk Forge services and content.
- Visual Studio Code version 1.31.0 or newer
- Forge application credentials (tutorial)
While in Visual Studio Code:
- Switch to the Extensions sidebar (
Cmd
+Shift
+X
on macOS orCtrl
+Shift
+X
on Windows) - Search for the Autodesk Forge Tools extension and install it
- Open User Settings (
Cmd
+,
on macOS orCtrl
+,
on Windows), and search for forge env- Note: switch to User or Workspace tab depending on whether you want to persist the settings globally (for all instances of vscode) or locally (for a specific workspace/folder)
- In the Autodesk > Forge: Environments section, click Edit in settings.json and define one or more environments as explained in the Extension Settings section below
- Switch to the new Forge sidebar and start browsing!
This extension contributes the following settings:
autodesk.forge.environments
: array of objects representing different Forge environments; objects contain the following properties:title
- unique name of the environment (will be shown in status bar and when switching to other environments)clientId
- Forge client IDclientSecret
- Forge client secretregion
- data region for storing Forge content (can beUS
orEMEA
;US
by default)
autodesk.forge.viewer.extensions
: array of viewer extensions (for example,Autodesk.VisualClusters
orAutodesk.DocumentBrowser
) to be used when previewing derivatives
Here's an example of an environment list:
If you have configured multiple Forge environments, you can switch between them via status bar,
or using the forge.switchEnvironment
command. The extension will always initialize itself
based on the first environment in the list.
Note: if you have configured the extension both in the User scope and in the Workspace scope, the extension will present the list of environments from the Workspace scope as it has higher precedence.
The Buckets & Derivatives view allows you to browse Forge Data Management OSS (object simple storage) content, create buckets, upload/download files, translate them using Forge Model Derivative service, and access the resulting derivatives. All derivatives are listed as children of their corresponding objects in the tree. If there are no derivatives yet, or if there's been an issue with the translation, the tree view will provide additional information.
For objects that have already been translated using the Model Derivative service, you can use a command (or a context menu item) called Download Object Derivatives as SVF
which will download the SVF file (proprietary format used for viewing 3D content in Forge Viewer) and all its dependencies into a folder you pick,
similarly to the functionality provided by https://extract.autodesk.io. All the content will be stored using the following subfolder structure:
<output folder>/
<model urn>/
<viewable guid>/
output.svf
<additional files and subfolders>
<viewable guid>/
output.svf
<additional files and subfolders>
<files shared by all viewables>
Additional output formats are also supported, for example, F2D, OTG, or glTF.
Experimental feature similar to the Buckets & Derivatives view, but using a 3-legged authentication instead, allowing the user to browse their A360 hubs, BIM360 hubs, etc. In order for this view to be available, the user must first log into their Forge application with their Autodesk account. This can be done either by clicking the "Forge Auth" button in the bottom status bar, or by using the forge.login
command. The extension will spin up a temporary web server on a preconfigured port (8123 by default), providing additional information about the login process, and waiting for a callback from the Autodesk servers.
The Webhooks view can be used to browse and configure the Forge Webhooks service.
The Design Automation can be used for browsing Forge Design Automation entities such as app bundles and activities. It also provides a context menu that can be used to view additinal details of individual bundles or activities.
The Model Derivative APIs support outputting the derivatives in a region of your choice.
In our code we always assume that the derivatives are stored in the same region as the input object.
Note that this can cause issues, for example, when you use the Translate Object
or Translate Object (Custom)
command on an object for which the derivatives are already available in another region. In that case you will get
an error with status code 406, and you will need to delete the derivatives manually
(using the Delete Derivatives
command) before being able to translate the object again.
- clone the repository
- install and setup dependencies:
yarn install
- open the project in vscode and launch the Launch Extension task; new vscode window will open
- make sure you have at least one set of Forge credentials configured (see Getting Started and Extension Settings)
- click on the Forge icon in the sidebar and start browsing
When debugging a webview inside vscode, use the
Developer: Open Webview Developer Tools
and theDeveloper: Reload Window
commands.