To view tutorials, please visit learnforge.autodesk.io.
This repository is for creating the tutorials.
View Models sample (2-legged)
Create a project in the programming language that supports the UI described on Viewer front-end. In summary, the back should implement:
- GET /api/forge/oauth/token: return a valid viewables:read access token in the form of
{'access_token':value, 'expires_in':value} - POST /api/forge/oss/buckets: create a new bucket, receive input in the form of
{'bucketKey': 'theKey'}and return 200. - GET /api/forge/oss/buckets: return all buckets or objects in form of list of nodes:
[
{
"id": "bucketKey | objectNameAsURNBase64",
"text": "bucketKey | objectName",
"type": "bucket | object",
"children": "true | false"
}
]It receives a querystring with id: if # return all buckets, if a bucketKey all objects for the bucket.
- POST /api/forge/oss/objects: receive a file with key
fileToUploadandbucketKeyas amultipart/form-data. For simplicity, non-resumable. - POST /api/forge/modelderivative/jobs: translate the file, receive input in the form of
{'bucketKey': 'theKey', 'objectName': 'theName'}
For reference, when adding a new language, replicate all net.md for the new language. The Viewer section should be the same for all languages.
View Hub Models sample (3-legged)
- GET /api/forge/datamanagement receives
#to return list of hubs, orhrefof projects/folders/items to return topfolders, folder contents or versions (respectively). The response should be an array with:
[
{
"id": "href id of the hub/project/folder/item or base64 urn for versions (Viewable)",
"text": "name",
"type": "hubs/projects/folders/items/versions",
"children": "false for versions, true for others"
}
]- GET /api/forge/callback/oauth as the OAuth callback, receives
codefrom Autodesk and redirect to/ - GET /api/forge/oauth/url return the sign-in URL (text) so the UI can redirect
- GET /api/forge/oauth/signout to finish current session and redirect to
/ - GET /api/forge/oauth/token return a valid viewables:read access token in the form of
{'access_token':value, 'expires_in':value} - GET /api/forge/user/profile returns the user information in the form of
{'name':'user name', 'picture': 'http://profilepictureurl'}
For reference, when adding a new language, replicate all nodejs.md/net.md for the new language. The Viewer section should be the same for all languages.
FORK from /autodesk-forge/learn.forge.viewmodels (or viewhubmodels) and rename: learn.forge.TUTORIAL.LANGUAGE, for example: learn.forge.viewmodels.net or learn.forge.viewmodels.nodejs. According to each language standards, move files to appropriate folders.
If the UI changes, first add remote upstream:
git remote add upstream https://github.com/autodesk.forge/learn.forge.viewmodels (or viewhubmodels)Then, sync fork:
git fetch upstream
git checkout master
git merge upstream/masterNow sync all changes.
When sample is ready, create a pull request for the branch of the language (e.g. net, node.js).
Use convention:
- PORT: 3000
- FORGE_CLIENT_ID
- FROGE_CLIENT_SECRET
- FORGE_CALLBACK_URL: default
http://localhost:3000/api/forge/callback/oauth
This is importat so developers can reuse this with other samples on Autodesk-Forge Github.
Whenwhere applicable, use animaged GIF to demonstrate a complex setup. Good results with EZGIF in 5FPS (smaller).
Tutorial project should be ready to use and include a readme with instructions to setup & run.
Install docsify:
npm i docsify-cli -gClone this project.
Now serve the /docs folder:
docsify serve ./docsOpen http://localhost:3000
This sample is licensed under the terms of the MIT License. Please see the LICENSE file for full details.