Hello and welcome to the first blog post from BIM Launcher. As an introductory post, we thought that it would be valuable to share some knowledge and provide a ‘hello-world’ equivalent of how to think about Forge APIs. Rather than describe them in detail, we aim to provide you with a mental model of how to think about them, so you can use this as a foundation to build upon.
Autodesk are taking cloud software for the AEC industries seriously. Having placed their cloud business models front and foremost of their company strategy, they released a set of APIs that expose engineering and design data through a platform called Forge. These are the same APIs that they use to build their own applications on and are now available as products to the public to enable us to build our own industry specific applications. It is worth understanding how this all works so you too can build your own tools, even if it is only conceptually.
Let's start by explaining what an API is. API is an acronym for Application Programming Interface and in short, it exposes some functionality belonging to a program so that it can be interacted with. Forge APIs are web APIs, which are simply an API that is accessible through internet specific protocols and is an enabler for developers to write custom applications to do stuff with said program via the internet. Let’s explain from a high level how this works using a restaurant as an analogy.
We visit a restaurant, take a seat and order a burger from the kind waiting staff specifying that we would like it medium-rare with extra crispy bacon. The kitchen prepares our order according to what we have specified to the waiting staff and once complete, our burger is brought to our table to enjoy. In this case, the waiting staff is an interface for everything that happens behind the scenes and is responsible for delivering that value added item - Our tasty burger. The same principles apply when we use an API - The API documentation gives us the menu of things available to eat and any available options. Then, we send details of what we want to our API (i.e <tasty-burger-description>), it does something, then returns data according to our specified input parameters.
This can enable us to write custom applications to interact with a program however the API allows. In context of an AEC project, this might include getting model information, updating project permissions, initialising projects using a set configuration or creating and deleting issues once resolved.
As you browse the autodesk Forge documentation, you will find high level categories of API such as “Model derivative API”. In this API you will find all of the functions to do with conversions of data formats that autodesk use to drive BIM360 and other platforms. If you think about when you upload a design file as a user of BIM360, you wait a while, then you can view it in their viewer. Thats because the file goes to this API to translate it into a format that the viewer can display in the BIM360 platform.
We hope this brief introduction to APIs will encourage you to read some further documentation to see what else you can do with Forge. Next time you are using BIM360, see can you spot the Forge APIs that Autodesk used to do that thing.
Top tip: Browse the Forge documentation and read the ‘overview’ section for each API.