Thursday, November 23, 2017

Autodesk Forge Data Management Now Features WebHooks

From It's Alive in the Lab:

By Scott Sheppard
November 16, 2017

Autodesk Forge is our collection of Application Program Interfaces (APIs) that we use to develop our own web services. As part of our Forge efforts, we share those APIs (including documentation and code samples) with customers and 3rd party developers (the Forge community) that want to leverage years' worth of legacy and current data associated with projects.

Forge is defined by 4 groups of APIs:

Design Automation API

The Design Automation API gives developers the ability to run scripts on design files, leveraging the scale of the Forge Platform to automate repetitive tasks. The API currently works with DWG files, but we have plans to expand to file types generated by other design software. This is a handy way to publish thousands of drawings to DWF or PDF. Ordinarily, customers would have to download all the files, run a script on them in the AutoCAD desktop software, and then potentially upload them all back to the cloud. Their efficiency would be bottlenecked by the processing power of their computer and their network bandwidth, and they would have to instrument logging and retry logic in their code to ensure that the entire job completed. With the Design Automation API, they can offload all that processing to the Forge Platform, which can process those scripts at a much greater scale and efficiency. [Forge]

Data Management API

The Data Management API gives developers a unified and consistent way to access their data across BIM 360 Team, Fusion Team, BIM 360 Docs, A360 Personal, and its own Object Storage Service. The Object Storage Service allows their application to download and upload raw files (such as PDF, XLS, DWG, or RVT). Coupling this API with the Model Derivative API, developers can accomplish a number of workflows, including accessing a Fusion model in Fusion Team and getting an ordered structure of items, IDs, and properties for generating a bill of materials in a 3rd-party process. Or, they might want to superimpose a Fusion model and a building model to use in the Viewer. [Forge]

Model Derivative API

The Model Derivative API lets developers represent and share their designs in different formats, as well as to extract valuable metadata into various object hierarchies. 60 different file input formats are supported. With this API, they can translate a design into different formats, such as STL and OBJ, but the key one is that they can have it translate their designs into SVF for extracting data and for rendering files in the Viewer.


The Viewer is a WebGL-based, JavaScript library for use in 3D and 2D model rendering. The Viewer communicates natively with the Model Derivative API to fetch model data, complying with its authorization and security requirements. The Viewer requires a WebGL-canvas compatible browser:
  • Chrome 50+
  • Firefox 45+
  • Opera 37+
  • Safari 9+
  • Microsoft Edge 20+
  • Internet Explorer 11

This is a hassle-free way for developers to share their company's data with their customers without having to deal with all of the peculiarities of these various browsers.

Developers who want to use Data Management APIs can interact with several Autodesk hubs:
  • BIM 360 Team — provides a cloud based project management workspace for team members, helping them communicate and stay organized at all times. It allows teams to hold real-time design review sessions with all project stakeholders, no matter where they are. Clients, team members, and stakeholders markup and comment directly on designs. Online project collaboration allows user roles and permissions to be managed and controlled by project administrators. Users can view, share, review, and markup more than 50 2D and 3D design file formats in the browser including AutoCAD (DWG, CAD), DXF, Revit (RVT), IFC, and Navisworks (NWD, NWF). Cloud-based project collaboration makes files accessible on mobile or desktop via the BIM 360 Team mobile app.
  • Fusion Team — lets teams share files securely across departments and supply chains. Users can view models instantly and review designs in real time. Teams communicate better and host real-time design review sessions to make decisions together. Fusion Team centralizes file version history, comments, and mark-ups from distributed teams. Teams can include their supply chains in the design process. Models are safeguarded from download and user access is managed by project administrators. Users can view, share, review, and markup more than 50 2D and 3D design file formats in the browser including STEP, SKP, Inventor (IAM, IPT), Filmbox (FBX), IGS and more. Teams can access critical project details from anywhere on a web browser or mobile device.
  • BIM 360 Docs — keeps teams on-track with the latest construction drawings, documents, and models. Teams can share construction drawings across the entire team and perform constructability reviews, manage issues, and RFIs. BIM 360 Docs reduces rework risks through versioning and permissions. Users can manage contracts and maintain document control. When construction project teams have the right information at the right time, work happens faster. BIM 360 Docs lets teams publish, manage, review and approve all construction drawings, documents, and models — anytime, anywhere.
  • A360 Personal — allows individuals to view and share files — including 2D and 3D designs — on the go, on any device. A360 store data where users can find it and find it when they need it. Right in the browser — without any software, users interact directly with 3D models: Zoom in, walk through, create a section analysis, and orbit, all in real time. Files are accessed by a secure link that an individual sends via email or chat, or embeds into a site. Users navigate through models, capture feedback, and make decisions together. A360 automatically saves edits and comments. Users can search text in documents, metadata on items or components within designs and models, and comments or posts by team members. The data is stored securely in the cloud. It's backed up and recoverable. Users control who can view their files and for how long.

The protocol that servers and browsers use to communicate is HTTP (Hypertext Transfer Protocol). A WebHook is an HTTP callback. It gets its name because it's like calling your friend and asking him to call you back when something happens. In terms of web services, a WebHook manifests itself when an HTTP POST  occurs when something happens; or a simple event-notification via HTTP POST. In other words, a web application implementing WebHooks will POST messages to a URL (Uniform Resource Locator) when certain things happen.

At Forge DevCon in Las Vegas as part of Autodesk University, the Forge Team announced that WebHooks have been added to the Data Management portion of Forge.

Here's a video that provides a glimpse of a test harness in action:

Here's a sample application of a BIM 360 Notifier:

The code watches for various actions on files and folders in BIM 360 such as add, delete, change, etc. and lets you subscribe to being notified of the change via email, text message, and/or Slack. This sample was built in a few days. Using this code sample, most any web developer can now implement their own hooks for any and all Autodesk hubs in just a few hours.

Callbacks are alive in the lab.

There's more information available on It's Alive in the Lab.

No comments: