November 11, 2025

by Alejandro Duarte Vendries

VIKTOR's latest SDK includes building blocks that help you automate workflows in Autodesk Construction Cloud (ACC) and Autodesk Platform Services (APS) in minutes. In this blog, you'll learn how to create BIM applications using the App Builder, which has built-in support for APS and ACC integrations.
Creating BIM applications with Autodesk Platform Services (APS) used to be hard. To set up an app, you needed to understand concepts from software engineering like OAuth, authentication, and tokens. Now, with AI coding assistants and low-code platforms like VIKTOR, building these applications is no longer intimidating. By the end of this blog, you will learn:
Autodesk Construction Cloud (ACC) is a platform that connects workflows, teams, and data across the entire construction lifecycle, from design to operations. It is used to improve collaboration, manage documents, and streamline project delivery by integrating tools like BIM 360, Autodesk Docs, Build, and Takeoff.
ACC has a set of APIs that let you query data from your Revit models. The most popular one is the AEC Data Model API, which we'll use in the examples throughout this blog. This API lets you query elements and their properties across hubs and projects.
Autodesk Platform Services (APS) is a set of cloud APIs that let developers access, view, and manage design and construction data stored in Autodesk products.
It is used to build custom applications that connect, automate, or extend tools like Revit, AutoCAD, and Autodesk Construction Cloud. We'll focus on using APS to integrate with Autodesk ecosystem APIs and third-party platforms like VIKTOR to create apps that query and work with your BIM data.
The App Builder is an AI assistant that helps you build VIKTOR apps in your browser. It combines a chat interface with a code editor—no installation needed. You can go from idea to working app in seconds! The AI updates your app based on prompts, or you can edit manually. A live preview shows changes instantly, and you can deploy with one click. Best of all, it already knows VIKTOR's Autodesk visualization blocks and file inputs, making Autodesk integration easy.
To integrate APS with VIKTOR, first you'll need to sign in to your APS account. Once you're logged in, navigate to the applications section and create a "Traditional Web App" application. The process is quite straightforward. With the "Client Id" and "Client Secret", you can create an APS OAuth2 Integration in VIKTOR following the docs.
After setting up the VIKTOR APS integration, you need to register your APS application within ACC. The APS application will act as a bridge between VIKTOR and ACC. The process is also quite simple. You only need to add the "Client Id" from your APS application in an ACC hub and activate the AEC Data Model API in your hub. Of course, you can go to the documentation for more details and a step-by-step walkthrough.
You can create new apps using the App Builder directly from the Develop page in the VIKTOR environment. Then you can input your prompt and the app builder will start generating the code. Let's start creating a simple app that allows us to visualize the Revit model from ACC:
1Create an application that allows me to select an Autodesk file and visualize it directly from my ACC hub using the OAuth2 integration named "your-aps-viktor-integration".
Note that if you run this prompt you will likely get an error, and the App Builder will explain that it's because we haven't set up the integration. You can click the "gear" icon in the bottom left-hand side of the UI and then go to the integration tab. Then you can select your integration from a dropdown.
As we mentioned in the "Core concepts" section, we can use the AEC Data Model API. This API relies on GraphQL queries, which is a query language for APIs. But don't worry, you don't need to be an expert to use this. First, it's not difficult to learn, and also you have the VIKTOR App Builder to help you learn and build.
Although the Coding Agent behind the VIKTOR App Builder hasn't been trained to work with the AEC Data Model API, we can implement a safe human-in-the-loop approach, where you, the user, provide context to the agent to create the application.
Think of this approach as you being a project manager creating the specification and reference info, and the App Builder as the coding expert to materialize this task. So you can send documents with reference information and the App Builder can use it to generate the app. We prepared a series of examples in this repository for you to follow along. The examples are based on the AEC Data Model docs.
Let's start with a useful app: a quantity take-off application. Go to the App Builder and make sure to use your APS OAuth2 integration name in the prompt. Also, set up the integration in the app settings by clicking the gear icon.
We'll send the following prompt along with this PDF to provide the App Builder with context about which GraphQL query to use:
1 2Create an application that allows me to: 3 41. Select and visualize a Revit model from my ACC account. 5 62. Generate a table of all categories and their counts, include only counts greater than 2. 7 8Use the attached PDF to format the GraphQL queries, and ensure the queries match exactly the ones shown in the PDF. I have already set up an OAuth2 integration named "aps-integration-viktor". 9
Nice! You can further edit the application by prompting it to create a pie chart of the "Door" families in the model instead of using categories:
1Now create a pie chart that shows the distribution of families in the "Doors" category by count. Remember to use the PDF to format the queries.
You can also change the Doors category to Walls:
1Now create a table and a pie chart for the families in the "Walls" category.
This example is particularly useful for structural engineers who need to quickly generate material schedules and cost estimates for steel or concrete framing elements. Similar to the previous example, we'll attach this PDF with reference information. Then you can run:
1 2Create an application that allows me to: 3 41. Select and view a Revit model. 5 62. List all families in the "Structural Framing" category and calculate the total length for each family name in a table. 7 8 9Use the attached reference information from Autodesk Construction Cloud (ACC) and the AEC Data Model to build it, and ensure the GraphQL queries follow the exact format shown in the attached PDF. 10 11I have already set up an OAuth2 integration named "aps-integration-viktor".
You can also perform simple cost analysis like:
1Now create a bar plot showing the total cost for each family, assuming a cost per length of $15 per foot. 2
For our last example, we'll build an MEP filtering application. These types of filters are especially useful for QA/QC (Quality Assurance and Quality Control) applications, allowing engineers to quickly identify pipes that exceed certain diameter thresholds or don't meet project specifications. Attach this PDF to provide context about the piping system queries:
1 2Create an application that allows me to: 3 41. Select and view a Revit model from my ACC account. 5 62. Enter a minimum pipe diameter in millimeters, and generate a table listing all pipe elements with diameter greater than that value, including family name, system type, diameter, and length. 7 8Use the queries and remarks from the attached PDF file exactly as shown. 9
You can also make custom visualizations by prompting:
1I want to visualize the results in a pie chart using the Name property and see which percentage of the elements are greater than the minimum diameter for each type name.
In this blog, we've shown how the VIKTOR App Builder makes creating BIM applications with Autodesk Platform Services faster and simpler. What used to require deep knowledge of OAuth, authentication, and API integration can now be done just by describing your ideas. From visualizing Revit models to generating quantity take-offs and structural framing schedules, the App Builder acts as your engineering assistant—helping you build ACC-integrated applications in minutes instead of days.
If you want more inspiration on additional use cases of the App Builder, check out this blog. You will see the App Builder in action across different domains.