October 10, 2018

BIM 360 Docs: API Changes to Access Data in European Data Center

Default blog image

Note: this is a breaking change. If you have a customer who uses BIM 360 Docs in European data center, you will need to modify your code with new endpoints.

BIM 360 Docs recently started in European data center. Unfortunately, due to this change, you, as a developer of application accessing a model in BIM 360 Docs, will need to modify the code to access models that are stored in the European data center.

Note that BIM 360 API are already using different US and EU endpoints for some resources, such as Account Administration feature. See documentation. Data Management API is not affected.

The list of affected endpoints

Model Derivative API

The following list of Model Derivative APIs needs to be changed to include regions information explicitly in the endpoints when accessing data in the data center in Europe.

  • POST references
  • GET :urn/thumbnail
  • GET :urn/manifest
  • DELETE :urn/manifest
  • GET :urn/manifest/:derivativeurn
  • GET :urn/metadata
  • GET :urn/metadata/:guid
  • GET :urn/metadata/:guid/properties

e.g.,

for US data center
https://developer.api.autodesk.com/modelderivative/v2/designdata/:urn/manifest

for European data center
https://developer.api.autodesk.com/modelderivative/v2/regions/eu/designdata/:urn/manifest

Viewer

For Viewer, when viewing a model uploaded to BIM 360 Docs in European data center, you will need to specify ‘derivativeV2_EU’ as an option parameter in initialization.  

When using ViewingApplication (from this tutorial) you will need to determine if the bucketKey is from EMEA or US. Start by base64 decoding the URN, then check if it contains urn:adsk.wipemea:xxx (for EMEA) or urn:adsk.wipprod:xxx (for US).

In your viewer code, you may try as below to make it work for both US and European region: 

  var options = {
    env: 'AutodeskProduction',
    getAccessToken: getForgeToken,
    api: 'derivativeV2' + (atob(urn.replace('_', '/')).indexOf('emea') > -1 ? '_EU' : '')
  };
  var documentId = 'urn:' + urn;
  Autodesk.Viewing.Initializer(options, function onInitialized() {
      // rest of code here…
  });

where the atob JavaScript function decodes base64 string. ‘replace’ is required as Forge uses _ (underscore) instead / (forward slash). The code sets the api option to:

  • derivativeV2 (for US)  
  • derivativeV2_EU (for EMEA).

We’ll be updating the SDK shortly. 

We apologize for not communicating this breaking change to the community in advance. We will make sure we will have a better process moving forward. If you have further questions regarding this change, please contact us at forge.help@autodesk.com

Related Posts

May 10, 2019

Consume AEC Data which are from Model Derivative API

Model Derivative API has been able to extract AEC data of Revit model such as level, grid, views, phase, linked documents etc. And Forge Viewer also provides the corresponding methods ...

Read More

May 9, 2019

Basic point clouds in Forge Viewer

Developers often ask us whether point clouds are supported in Forge Viewer. Unfortunately, the official answer is "no".

Read More

May 9, 2019

Changes on OSS upload and download for scriptable plain text files [security improvement]

Starting June 12, the OSS upload PUT endpoints will return an HTTP 400 status code if content disposition inline and content types is one of the following:

Read More