8 Nov 2023

Get the derivative URN of an ACC/BIM360 file for viewing it on viewer

Default blog image

Do you have trouble getting the correct URN of the file stored on ACC/BIM360 Docs for viewing on the viewer? Now, we get you covered!

It's pretty straightforward, and the main steps are similar to Download Files from Document Management (Step 1 - Step4). Just one step is different after getting the folder content via GET projects/:project_id/folders/:folder_id/contents.

In the tutorial, step 4 is to get the source file storage ID for downloading the model source file (e.g., RVT). Now, we want to view the model using the viewer. So, in this step, we find the Derivative ID for the file instead.

For example, here is the API response of GET projects/:project_id/folders/:folder_id/contents.

curl --location 'https://developer.api.autodesk.com/data/v1/projects/b.511bf394-1dd4-4e4a-bbb4-5e7459d9184d/folders/urn:adsk.wipprod:fs.folder:co.BJU3PTc4Sd2CmXM492XUiA/contents' \
--header 'Authorization: Bearer ...' \
--header 'Content-Type: application/vnd.api+json'
{
      "jsonapi": {
              "version": "1.0"
      },
      "data": [
        {
            "type": "items",
            "id": "urn:adsk.wipprod:dm.lineage:Skn9SJI8QUiRL0dpm7oc5Q",
            "attributes": {
                "displayName": "racbasicsampleproject-local.rvt",
                "createTime": "2023-08-18T08:23:48.0000000Z",
                //...
                "hidden": false,
                "reserved": false,
                "extension": {
                    "type": "items:autodesk.bim360:File",
                    "version": "1.0",
                    "schema": {
                        "href": "https://developer.api.autodesk.com/schema/v1/versions/items:autodesk.bim360:File-1.0"
                    },
                    "data": {
                        "sourceFileName": "racbasicsampleproject.rvt"
                    }
                }
            },
            "links": {
                "self": {
                    "href": "https://developer.api.autodesk.com/data/v1/projects/b.511bf394-1dd4-4e4a-bbb4-5e7459d9184d/items/urn:adsk.wipprod:dm.lineage:Skn9SJI8QUiRL0dpm7oc5Q"
                },
                "webView": {
                    "href": "https://docs.b360.autodesk.com/projects/511bf394-1dd4-4e4a-bbb4-5e7459d9184d/folders/urn%3Aadsk.wipprod%3Afs.folder%3Aco.BJU3PTc4Sd2CmXM492XUiA/detail/viewer/items/urn%3Aadsk.wipprod%3Adm.lineage%3ASkn9SJI8QUiRL0dpm7oc5Q"
                }
            },
            "relationships": {
                "tip": {
                    "data": {
                        "type": "versions",
                        "id": "urn:adsk.wipprod:fs.file:vf.Skn9SJI8QUiRL0dpm7oc5Q?version=1"
                    },
                    "links": {
                        "related": {
                            "href": "https://developer.api.autodesk.com/data/v1/projects/b.511bf394-1dd4-4e4a-bbb4-5e7459d9184d/items/urn:adsk.wipprod:dm.lineage:Skn9SJI8QUiRL0dpm7oc5Q/tip"
                        }
                    }
                },
                "versions": {
                    "links": {
                        "related": {
                            "href": "https://developer.api.autodesk.com/data/v1/projects/b.511bf394-1dd4-4e4a-bbb4-5e7459d9184d/items/urn:adsk.wipprod:dm.lineage:Skn9SJI8QUiRL0dpm7oc5Q/versions"
                        }
                    }
                },
                "parent": {
                    "data": {
                        "type": "folders",
                        "id": "urn:adsk.wipprod:fs.folder:co.BJU3PTc4Sd2CmXM492XUiA"
                    },
                    "links": {
                        "related": {
                            "href": "https://developer.api.autodesk.com/data/v1/projects/b.511bf394-1dd4-4e4a-bbb4-5e7459d9184d/items/urn:adsk.wipprod:dm.lineage:Skn9SJI8QUiRL0dpm7oc5Q/parent"
                        }
                    }
                },
                "refs": {
                    "links": {
                        "self": {
                            "href": "https://developer.api.autodesk.com/data/v1/projects/b.511bf394-1dd4-4e4a-bbb4-5e7459d9184d/items/urn:adsk.wipprod:dm.lineage:Skn9SJI8QUiRL0dpm7oc5Q/relationships/refs"
                        },
                        "related": {
                            "href": "https://developer.api.autodesk.com/data/v1/projects/b.511bf394-1dd4-4e4a-bbb4-5e7459d9184d/items/urn:adsk.wipprod:dm.lineage:Skn9SJI8QUiRL0dpm7oc5Q/refs"
                        }
                    }
                },
                "links": {
                    "links": {
                        "self": {
                            "href": "https://developer.api.autodesk.com/data/v1/projects/b.511bf394-1dd4-4e4a-bbb4-5e7459d9184d/items/urn:adsk.wipprod:dm.lineage:Skn9SJI8QUiRL0dpm7oc5Q/relationships/links"
                        }
                    }
                }
            }
        }
      ],
      "included": [
        {
          "type": "versions",
          "id": "urn:adsk.wipprod:fs.file:vf.Skn9SJI8QUiRL0dpm7oc5Q?version=1",
          "attributes": {
              "name": "racbasicsampleproject-local.rvt",
              "displayName": "racbasicsampleproject-local.rvt",
              "createTime": "2023-08-18T08:23:48.0000000Z",
              //....
              "versionNumber": 1,
              "storageSize": 18608128,
              "fileType": "rvt",
              "extension": {
                  "type": "versions:autodesk.bim360:File",
                  "version": "1.0",
                  "schema": {
                      "href": "https://developer.api.autodesk.com/schema/v1/versions/versions:autodesk.bim360:File-1.0"
                  },
                  "data": {
                      "processState": "PROCESSING_COMPLETE",
                      "extractionState": "SUCCESS",
                      "splittingState": "NOT_SPLIT",
                      "reviewState": "NOT_IN_REVIEW",
                      "revisionDisplayLabel": "1",
                      "sourceFileName": "racbasicsampleproject.rvt",
                      "conformingStatus": "NONE"
                  }
              }
          },
          "links": {
              "self": {
                  "href": "https://developer.api.autodesk.com/data/v1/projects/b.511bf394-1dd4-4e4a-bbb4-5e7459d9184d//versions/urn:adsk.wipprod:fs.file:vf.Skn9SJI8QUiRL0dpm7oc5Q%3Fversion=1"
              },
              "webView": {
                  "href": "https://docs.b360.autodesk.com/projects/511bf394-1dd4-4e4a-bbb4-5e7459d9184d//folders/urn%3Aadsk.wipprod%3Afs.folder%3Aco.BJU3PTc4Sd2CmXM492XUiA/detail/viewer/items/urn%3Aadsk.wipprod%3Afs.file%3Avf.Skn9SJI8QUiRL0dpm7oc5Q%3Fversion%3D1"
              }
          },
          "relationships": {
            "item": {
                  "data": {
                      "type": "items",
                      "id": "urn:adsk.wipprod:dm.lineage:Skn9SJI8QUiRL0dpm7oc5Q"
                  },
                  "links": {
                      "related": {
                          "href": "https://developer.api.autodesk.com/data/v1/projects/b.511bf394-1dd4-4e4a-bbb4-5e7459d9184d/versions/urn:adsk.wipprod:fs.file:vf.Skn9SJI8QUiRL0dpm7oc5Q%3Fversion=1/item"
                      }
                  }
              },
              "links": {
                  "links": {
                      "self": {
                          "href": "https://developer.api.autodesk.com/data/v1/projects/b.511bf394-1dd4-4e4a-bbb4-5e7459d9184d/versions/urn:adsk.wipprod:fs.file:vf.Skn9SJI8QUiRL0dpm7oc5Q%3Fversion=1/relationships/links"
                      }
                  }
              },
              "refs": {
                  "links": {
                      "self": {
                          "href": "https://developer.api.autodesk.com/data/v1/projects/b.511bf394-1dd4-4e4a-bbb4-5e7459d9184d/versions/urn:adsk.wipprod:fs.file:vf.Skn9SJI8QUiRL0dpm7oc5Q%3Fversion=1/relationships/refs"
                      },
                      "related": {
                          "href": "https://developer.api.autodesk.com/data/v1/projects/b.511bf394-1dd4-4e4a-bbb4-5e7459d9184d/versions/urn:adsk.wipprod:fs.file:vf.Skn9SJI8QUiRL0dpm7oc5Q%3Fversion=1/refs"
                      }
                  }
              },
              // ...
              "derivatives": {
                  "data": {
                      "type": "derivatives",
                      "id": "dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLlNrbjlTSkk4UVVpUkwwZHBtN29jNVE_dmVyc2lvbj0x"
                  },
                  "meta": {
                      "link": {
                          "href": "https://developer.api.autodesk.com/modelderivative/v2/designdata/dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLlNrbjlTSkk4UVVpUkwwZHBtN29jNVE_dmVyc2lvbj0x/manifest?scopes=b360project.511bf394-1dd4-4e4a-bbb4-5e7459d9184d/,O2tenant.3338719"
                      }
                  }
              },
              // ...
              "storage": {
                  "data": {
                      "type": "objects",
                      "id": "urn:adsk.objects:os.object:wip.dm.prod/e1475374-8209-440f-bf23-c5cbf53df6a2.rvt"
                  },
                  "meta": {
                      "link": {
                          "href": "https://developer.api.autodesk.com/oss/v2/buckets/wip.dm.prod/objects/e1475374-8209-440f-bf23-c5cbf53df6a2.rvt?scopes=b360project.511bf394-1dd4-4e4a-bbb4-5e7459d9184d/,O2tenant.3338719"
                      }
                  }
              }
          }
      ]
}

Afterward, we find either version of the file in the "included" field and then find the derivative urn under the path relationships > derivatives > data > id. For the above example file, here is its derivative urn:

"derivatives": {
    "data": {
        "type": "derivatives",
        "id": "dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLlNrbjlTSkk4UVVpUkwwZHBtN29jNVE_dmVyc2lvbj0x" //!<<< Pass this urn to viewer
    },
    "meta": {
        "link": {
            "href": "https://developer.api.autodesk.com/modelderivative/v2/designdata/dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLlNrbjlTSkk4UVVpUkwwZHBtN29jNVE_dmVyc2lvbj0x/manifest?scopes=b360project.511bf394-1dd4-4e4a-bbb4-5e7459d9184d/,O2tenant.3338719"
        }
    }
},

 

What if you cannot find either derivatives field for the file?

This means your file probably was moved or copied from another folder, or the file was uploaded into the BIM360 Docs's Plans folder. In this case, we must call GET versions/:version_id/relationships/refs first, and then find the derivatives field inside the "included" in the API response.

 

Related Article