Introduction Revit vs Autocad
When Revit started to gain notice, our minds were blown away by how much was automated compared to AutoCAD, especially in graphic documentation. This was revolutionary because we could see our plans updated when we modified the 3D model through 3D or 2D views, resulting in massive time savings.
What appealed the most to the end-user was the passive nature of the plan update process. The user did not have to press any buttons to update all the views; it just happened!
In this post, we are going to dive into what is going to be the next revolutionary solution that will allow us to make a jump compared to the CAD BIM transition. Keep reading if this makes you excited as well!
Passive vs. Active Process Execution
Usually, when making software, we focus on how people actively use it – you know, when they’re clicking buttons or typing commands, we can call this the “active execution” of the program.
The opposite would be the “passive execution.” This is when the software sits there and reacts to user actions. Sounds pretty neat.
This is not something new. Think of examples like Github Copilot or Grammarly, but trying to find an analogy solution in Revit, we find all these plugins that do cool stuff when you press a button but no “passive execution” solutions.
For many users, this could be a game-changer. Imagine Revit doing things in the background without you telling it what to do. That means we could improve things, reduce mistakes, and get more stuff done. Think about the possibilities if we didn’t need someone to start things off every time on a BIM process.
How AI and Revit Events could work together
With the rise of AI, we have seen great ways to improve our productivity. Now imagine that we could take it a step further by merging concepts and creating an AI that, based on specific events, constantly monitors the state of the model and gives user recommendations such as:
- Design Optimization and Generative Design: As the design is being developed, the AI makes design suggestions to the Architect/Engineer, and it is to the designer’s judgment to decide what suggestions to apply or not, or even those suggestions could trigger novel ideas for the designer.
- Energy Analysis and Simulation: Based on an auto-generated energy analysis report, the AI could suggest improvements in the construction assembly of certain elements to increase their performance.
- Material Selection and Cost Estimation: The AI could assist in selecting appropriate materials for a project based on criteria like cost, durability, sustainability, and form factor of the building.
- Automated Code Compliance Checking: After some time, the AI could take a look at the model and start looking for places where the design is not compliant with the Building Code, point those problems out, and suggest solutions.
- Predictive Model Maintenance and Facility Management: The tool could raise events that trigger maintenance-related tasks to keep the model at an optimal stage based on the AI predicting potential issues and catching them before they occur as the model is developed.
Revit API Events and Dynamic Model Update
To implement this, we can use the Revit API in two ways: Revit Events API and Dynamic Model Update.
Revit Events API offers you a way of targeting mainly events related to Revit’s UI or things that happen in the model, so you get access to information about changes in the model and the UI.
One example is the
DocumentChanged event, which is particularly useful as it allows you to react to any modified elements in a model. Be careful; this is triggered a lot of times as it tracks any changes, so a lot of computational processing might be involved if not used carefully.
Many other specific examples include DocumentClosing/Closed, DocumentSaving/Saved, DocumentChanged, etc. For more, check the Revit API documentation.
The Dynamic Model Update (DMU) option is handy when responding to specific changes in the model. In fact, you can even define your events (which may not technically be events, but using that term helps illustrate the idea).
This approach exemplifies the saying, “Don’t use a sledgehammer to crack a nut.” While the Revit Events API provides a robust set of tools to handle a wide range of events in a project, it’s not advisable to rely on it for very particular use cases.
Examples of the use of the Dynamic Model Update are reacting to changes in a specific parameter, regardless of the element it belongs to, and responding to modifications made to a group of elements of the same family type or even situations like detecting modifications or deletions of walls that have a specific value in a Shared Parameter.
This kind of workflow enables you to identify issues and enforce validations based on any specific standard. Imagine how powerful this could be, one user modeling and in real time getting notifications if what’s modeled follows the company’s standards.
How to feed a LLM with a Revit File
We saw the tip of the iceberg on our LLama2 post, but let’s dive further into how to feed an LLM with a Revit model.
To make a Revit model “visible” to an LLM, we cannot just send the .rvt file. We need to find a way to get the information we want to analyze into some text format from the BIM model itself.
A way of doing this could be exporting the Revit file as an SQL Database and sending it to a service we have running on a local server or in the cloud, which will take care of extracting the information we want to analyze to a text format, e.g., a CSV file, and then that file is sent to the LLM with our set of instructions for it to analyze it and bring back results.
All of this can be performed in the background. For instance, each moment the user saves or synchronizes the model, he never knew it happened, but it happened because we got the action subscribed to the DocumentSaved/Synchronized event.
The first time it happens, it could be slow, but from the first time we have exported the model, from that point onwards, we could start exporting just the elements that changed from the last export and update those on the DB stored on the service we have running.
A game changer BIM Models with AI
The era of automation has ushered in a revolutionary shift in BIM modeling. As modelers craft their designs, advanced AI operates in the background, enhancing models by rectifying errors such as misaligned walls. Beyond mere corrections, it vigilantly checks for compliance with building regulations, ensuring every detail aligns with standards. But the potential doesn’t stop there. Picture an AI capable of autonomously drafting BIM models or routing complex MEP solutions, all based on simple user text prompts. As we embrace this rapid technological evolution, we stand on the brink of unlocking unparalleled possibilities in architectural design and execution.
Wrapping it up!
In the ever-evolving software world, we’ve uncovered a game-changing shift – passive versus active execution. It’s about making technology work for us, seamlessly and intuitively.
Imagine this: your software isn’t just a tool, it’s a partner. It anticipates needs, updates models without a button press, and lets you focus on bigger-picture stuff. It’s like having an assistant who just gets things done.
Revit’s got the tools we need for this shift. Revit Events API gives us insight into model changes, while Dynamic Model Update (DMU) keeps us real-time savvy. These aren’t just features; they’re superpowers.
Think of it as a dance between technology and creativity. No more manual checks, no more repetitive tasks. Just smooth, efficient workflows that elevate your work.
So, let’s dive into this world of passive execution. Let’s reshape how we design, build, and innovate. With Revit’s magic and our vision, there’s no limit to what we can achieve. Ready to make the switch? Let’s create the future, one seamless step at a time.
I am Ricardo Salas, during the last years I have oriented myself to the tech aspects of the AEC industry. Since a very early stage of my Architecture career, I have developed skills in some of the most effective tools which have allowed me to accelerate my workflow and communicate my ideas in a better way.