Forge DevCon Keynote and BIM360 Model Access

The November Forge DevCon keynote address has been published.

Fittingly, some new hints on accessing Revit models from BIM360:

Jim Quanci

Forge DevCon 2018 Keynote

The Forge DevCon 2018 Keynote address from November 12, 2018, is now posted on YouTube:

This is the full 90-minute presentation complete with slides, featuring speakers from Autodesk, namely Sam Ramji, Brian Roepke, Jim Quanci, and including special guests Wendy Rogers, CEO of eSUB, and Terry Davis, Director of Digital Marketing of JELD-WEN.

This version includes both video and slide content, as opposed to an earlier video-only version.

Accessing BIM360 Models

Talking about Forge and cloud related topics, let's point out some new entries and finally an answer to the long-standing Revit API discussion forum discussion on browsing model files in the cloud (A360 C4R):

Question 1: I need to set up a project on BIM360 Document Management, so I need to upload around 50 Revit files to BIM360 Doc. As Cloud Model, not Revit File, and I cannot do it with Dynamo, Python, Revit API or BIM360 Desktop Connector. How can I set up the project file on BIM360 Document Management?

Question 2: I'm also interested in automating cloud collaboration for models so that they can be linked into Cloud Workshared Models rather than having users do that manually every time they receive a model.

Question 3: We are also trying to achieve this. Lacking any other API for this, we created an add-in which stores the BIM360 central path to our DB while adding files to BIM360. From our DB, we populate a grid that shows all the files which were added.

For creating a local copy, I use the following method:

  Document OpenNewLocal(
    Autodesk.Revit.ApplicationServices.Application app,
    ModelPath centralPath,
    ModelPath localPath )
  {
    // Create the new local at the given path

    WorksharingUtils.CreateNewLocal( 
      centralPath, localPath );

    ...
  }

Is this a valid approach for the current scenario?

Question 4: Is there any possibility to create the URN for a Revit file which is stored in BIM 360 Design?

I have Model GUID and Project GUID in my hand.

Answer: The last question was also raised and answered by Eason Kang on StackOverflow, on how to create URN for Revit file from Revit plugin or using Forge APIs:

While initializing the cloud collaboration in BIM360 Design via Revit's Collaborate button in the Collaborate tab > Manage Collaboration panel, Revit will upload your model and simultaneously publish the first version of it to the BIM360 Document Management, aka BIM360 Docs.

After completing the initialization, you can use the Forge Data Management APIs to obtain model URNs in your BIM360 project, such as projects/:project_id/folders/:folder_id/contents or GET Versions.

Afterward, iterate the items in the API response and find a version which matches the Model GUID and Project GUID you mentioned.

It will look something like this, and the id value is the URN you are after:

{  
   "type":"versions",
   "id":"urn:adsk.wipprod:fs.file:vf.abcd1234?version=1",
   "attributes":{  
      "name":"fileName.rvt",
      "displayName":"fileName.rvt",
      ...
      "mimeType":"application/vnd.autodesk.r360",
      "storageSize":123456,
      "fileType":"rvt",
      "extension":{  
         "type":"versions:autodesk.bim360:C4RModel",
         ....
         "data":{  
            ...
            "projectGuid":"48da72af-3aa6-4b76-866b-c11bb3d53883",
            ....
            "modelGuid":"e666fa30-9808-42f4-a05b-8cb8da576fe9",
            ....
         }
      }
   },
   ....
}

This topic is discussed in more depth in the Forge blog post on accessing BIM 360 design models on Revit.