Occasionally I get requests to have a call to discuss about BIM 360 and Forge. While the context of what people are trying to accomplish are different, some people tells us that they hear conflicting information about availability of different API’s. I will try to clarify the status of API’s for BIM 360 as it stands today.
The fact that Forge is continuously evolving, in particular, Forge support for Docs is still under development, is most likely contributing to the confusion. In addition, I see there are two factors that seem to make API discussion for BIM 360 fuzzy:
- BIM 360 is a collection of different web services. Some are Forge while others are not.
- Forge is platform technology, which in turn a collection of component technologies that some of BIM 360 web services are built on top.
Let’s talk about these two points to understand what Forge means and to clarify the role of Forge in the context of BIM 360 with a special focus on Docs.
BIM 360 Family Products
At the time of this writing, we have six products with BIM 360 branding: Team, Glue, Layout, Docs, Field and Plan. (Building Ops is not branded as BIM 360. But it’s also cloud-based product. So I’m putting here.) The structure of BIM 360 web services family products looks like below:
(I’m assuming the reader of this post is familiar with the BIM 360 product. I’m not going to explain what each product does. If not, please refer to the BIM 360 product page.)
I used the similar image in the past. A difference since my last post is BIM 360 Team. We have Team as a new member to BIM 360 family. BIM 360 Team used to be called A360 Team. It’s a branding change.
Forge vs. non-Forge
Autodesk Forge is a collection of web services that allows you to build your own applications and services. It’s platform technology that Autodesk uses to build its own services and products. Autodesk is opening up to developer community. As you can see in the image below, Team, Docs (*1) and HQ are parts of Forge, while others are not. Glue/Layout and Field have API. But they are legacy API and they are not a part of Forge. Plan and Building Ops do not have API at a moment.
*1) Currently in alpha. Accessible to Enterprise and NFR license holders. (More on this topic later.)
What does it mean? Let’s take an example. One of frequently asked questions I get is this: “can we use Forge Viewer to display a model in Glue?” The answer is “no.” Due to historical reasons, Glue stores a model in its own storage and in its own format. It also uses its own viewer. You cannot use Forge Viewer to display a model. But if you have a model in a storage managed by Forge Data Management, such as Team and Docs, you can display a model using Viewer. Right now, if you want to display a model in Glue using Forge Viewer, you will need to download a model from Glue and upload somewhere that supports Forge Data Management API to access.
Our view for future is to have more data-centric architecture where data is stored at a common storage and shared across BIM 360 family product services and beyond through Forge API for more seamlessly integrated and unified BIM 360. BIM 360 Docs is expected to play a role of holding data at the center. The image below depicts the architecture.
API for BIM 360 Docs – Big Picture
Let’s move on to the second point, i.e., Forge being platform technology and a collection of components that some of BIM 360 are built on top.
API’s for BIM 360 Docs is a collection of Forge API’s. There is no single set of API that we call specifically as BIM 360 Docs API. This is different from traditional desktop API, for example, Revit and AutoCAD API if you are familiar with them. As I mentioned earlier, Forge is a collection of web services that Autodesk is using internally to build its own products. BIM 360 Docs is a good example of such a product. The following is the list of Forge API that used with Docs (image below):
- Authentication (OAuth)
- BIM 360 API (HQ or account level management)
- Data Management API
- Model Derivative API
- (Issues API) *2
Now, let’s take a look at each item.
Authentication or OAuth — this controls the user and application’s access to a specific account and projects. When the user first accesses to https://bim360docs.autodesk.com, for example, a login window appears, prompting the user for Autodesk ID and password (image blow). OAuth API is used for this kind of user access. This is a common component that Autodesk products use.
BIM 360 API or HQ account level API — this gives full control over HQ feature that you can access through bim360enterprise.autodesk.com. Note that this feature is specific to BIM 360. That’s why it is listed under BIM 360. This is one place that I hear occasionally people seem to get confused. BIM 360 API only covers account level.
Data Management API — this gives an access to projects, folders and items stored in Docs. This portion is probably the most analogous to the Docs’ purpose: stores data. Up to this point, we are dealing with a collection of files as data (image below).
Model Derivative API and Viewer — Once you get to a specific item that represents a single design data, you can use Model Derivative API to access the model data. Information you can obtain using Model Derivative API could be geometry as well as meta data, such as properties attached to a certain element in Revit, for instance. You can use Viewer to display a model (image below).
Issues API (*) — The last item, Issues API, is to access Issues related data. I put asterisk (*) because this is still a bit of future item. First thing first; we want to have Data Management portion completed. But Issues is something we want to have it exposed through Forge API as well. Same is said to features that will be added on top of Docs. When new functionality is added, we would like to make it as generic as possible for scalability and expose it as Forge.
API for BIM 360 Team
Next, let’s look at APIs for BIM 360 Team. Team is based on Forge, too. Team uses the same API as Docs except that Team does not use HQ API and Issues API. HQ and Issues are specific to Docs (see the image below).
Lastly, I should add notes about Glue and Field. As mentioned earlier, Glue and Field are not a part of Forge; i.e., they are not built using Autodesk’s common components. They do provide REST API and both have comprehensive coverage to access data. Those API’s do not provide viewing capability. We expect newer functionality will be on Forge. As long as you are aware of this status, you are welcome to use it. You can find more information about Glue and Field API from the following links:
- Glue – https://fieldofviewblog.wordpress.com/glue/
- Field – https://fieldofviewblog.wordpress.com/field/
I hope this helps clarify what Forge is and what is not in the context of BIM 360 API discussion, and how various Forge web services components fit together to work with BIM 360 Docs and Team.