4 Jun 2025
Translate Composite Revit Model with Model Derivative API

This is a tip and trick sharing how to translate a composite Revit model (host and its links) using the Model Derivative API.
Scenario
I have a set of RVT files, such as "architecture.rvt", "structure.rvt", and "mep.rvt", where "architecture.rvt" serves as the host and reference to other RVT files. I uploaded all of them to my OSS bucket, but I am unable to view the linked contents from "structure.rvt" and "mep.rvt" in the viewer, after translating "architecture.rvt" to SVF/SVF2 with Model Derivative API.
>>> Have you ever encountered this scenario? And wonder how to resolve this issue? No problem, we'll get you covered.
Before stepping into the solution, here are some things you must know:
- Files (e.g. RVT, IFC, DWG, etc.) uploaded to the OSS bucket are isolated, so the Model Derivative API won't know the link relationships between files.
- Model Derivative API has an endpoint POST {urn}/references to configure files' link relationships, but it doesn't support RVT files.
- Before uploading RVT files to the OSS Bucket, Revit links must be set up in the host RVT file with Revit (See Managing Links in Revit product help for details).
Solution
Now, we will discuss the solution by performing a composite translation. Here are the steps:
1. To enable the Model Derivative API to translate the host RVT model with linked contents, we must pack the host and linked RVT files into a ZIP file. Here, we place "architecture.rvt", "structure.rvt", and "mep.rvt" into a ZIP file, which is similar to what we discussed in the blog post: Show Revit custom texture (map) on Viewer.
2. Upload the ZIP file containing the host and linked RVT files to the OSS Bucket using the Data Management API, as described in Task 2 – Upload Source File to OSS in the tutorial.
3. Request a composite translation by specifying both rootFilename and compressedUrn parameters like the job configuration below when calling the POST job of the Model Derivative API, which is similar to Task 3 – Translate Source File in the tutorial.
curl -X POST \
https://developer.api.autodesk.com/modelderivative/v2/designdata/job \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {ACCESSTOKEN}' \
-d '{
"input": {
"urn": "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6YXBwdGVzdGJ1Y2tldC9iYXNpY19zYW1wbGVfcHJvamVjdC56aXA",
"compressedUrn": true,
"rootFilename": "architecture.rvt"
},
"output": {
"formats": [
{
"type": "svf2",
"views": [
"2d",
"3d"
],
//"advanced": { //!<<< Uncomment if need master views e.g. rooms
// "generateMasterViews": true
//}
}
]
}
}'
Notes
- The linked contents will only be visible in general views. They don't exist in Revit master views.
- ACC/BIM360 doesn't support this approach. If you have similar needs on ACC/BIM360, please refer to these blog posts instead:
If you have any questions or feedback, please don't hesitate to contact us through our APS support channel.