The BIM 360 Glue Viewer and REST API

As you certainly know by now, Autodesk provides a range of powerful cloud-based solutions, specifically Autodesk 360, PLM 360 and BIM 360 Glue (reference).

Of special interest to AEC developers, the BIM 360 Glue platform includes support for programming interfaces and a software development kit, the BIM 360 Glue SDK, providing a set of tools for developers to interface with it.

The programming support consists of two distinct components:

  1. Display component: embeddable 3D viewer to provide visual access to models within custom third party web applications.
  2. Web services API: REST based service data access to users, projects, models, etc.

Display Component

The Glue Viewer is an embeddable component used to show 3D models from the Glue platform

Viewer parameters allow control of the GUI, i.e. application controls such as navigation, display lists, etc., so the viewer experience can be customised by developers.

Glue viewer

The viewer currently supports Windows 32 and 64 bit platforms, just like the Glue web application.

Web Services API

The Glue web services API provides a RESTful data access interface to query and modify data and return JSON or XML.

It enables developers to integrate external applications, e.g., project management systems, accounting systems and custom developed solutions with the BIM 360 Glue platform.

Glue stores information about user interactions within the system. These operations are referred to as 'Actions'. Typical Actions can be:

Glue actions

The Glue Web Service API returns many of these actions in API responses.

Actions can be loaded to the viewer to show the user the exact view and state of a model when the action was performed.

Structure of a Client Request

For a typical REST API request, the client sends a HTTP/HTTPS request, POST or GET, depending on the particular service call. Required parameters are sent to the server for authentication. An example URL for a login request could be something like:

https://bim360.autodesk.com/api/security/v1/login.json

The server responds with an HTTP Status of 200 for success and appropriate other codes for failures.

The Glue web service API provides the following service groups:

Here is an example of a web services API call to the Model Service to retrieve information of a given model specified by the model_id:

https://bim360.autodesk.com/api/model/v1/info.json?
  &company_id=autodesk_jt
  &api_key=c7e595c69a35422c8414e51736f67761
  &auth_token=f79462fc5a5346ba9dbd4f395781f9b4
  &timestamp=1349801232
  &sig=de4c1771541d4789a1e63762c60b34f1
  &model_id=53c41451-49e7-4b0a-919c-1499604d10c6
  &sterm=
  &pretty=1

So what can we do with this?

With the SDK, partners and customers can build a variety of fully interactive web based custom applications and integrations taking advantage of the Glue platform.

A simple call flow for a custom application might be:

This enables tasks like system integration, project management, accounting, etc. The web services API provides full data access to system objects:

An application can automatically update projects, models, etc. with information from external systems.

Basically, we are looking at the following architectural hierarchy, from bottom to top:

Where do I start?

Download the BIM 360 Glue SDK,

You will need an API Key and an API Secret. These are unique identifiers assigned for each user, company, or partner.

Furthermore, a Glue developer account is required, a user name and password. A normal user account can be converted to a developer one on request.

There are even further levels: a default developer account works within the privileges of normal glue user, whereas a privileged developer account can perform requests on behalf of other users as well.

The authentication to the BIM 360 Glue Platform starts with an API key and secret assigned by Autodesk. Once you have these two pieces of information, API calls can be authenticated to the BIM 360 Glue Platform in one of two ways:

Here is a quick reference to further sources of information and two examples:

I am looking forward to hearing what you come up with using this, and to exploring it in more depth myself anon. Have fun!