Today I’d like to showcase a new workflow I’ve been working on, using GPT-4All with Dynamo.
After exploring GPT-4All and Python in Dynamo, I’m excited to share a guide on building your own chatbot!
In the guide, I demonstrate how we can now integrate GPT-4All and Hugging Face into Dynamo, taking automation and productivity to the next level with AI!
Check out the live demo below and explore the detailed how-to guides to kickstart your AI journey in BIM!
Thanks, Neel for sharing your insightful workflow.
I am curious to know, if it is possible to analyze real-time Revit model data and answer user questions about the model. For example: Q: What is the available space in Room 01? A: 150 sq. ft. or Q: Is there a door in Room 01? A: Yes/No!
The main challenge lies in the volume of data the language model (LLM) can process and retain at any given time. Since the current version doesn’t have memory management capabilities, the amount of data the LLM can handle is limited. However, it’s still entirely possible to have the LLM read and analyze your Revit data in the following ways:
Direct Data Analysis: You can import the room data into a Python node, typically as a string array. When you trigger the “Read Revit Data” function, this will provide the LLM with the relevant room information. The LLM can then process that data and respond to queries about specific rooms or elements (e.g., the space available in Room 01 or the presence of a door). I.e change the input from dynamo.
Code Generation: The LLM can generate specific code to handle tasks such as querying or manipulating Revit data. This code can then pass the processed data back to the LLM for further analysis, enabling it to respond to user inquiries effectively.
NLP Integration with User Input: You can feed Revit data into the LLM as a structured string array (e.g., room dimensions, features, etc.). Using a custom user input interface, the LLM can interpret queries in natural language, similar to how ChatGPT processes commands. For example, you might import room data like:
Revitdata = [
"Room 01: Area = 150 sq. ft., Has Door = Yes, Ceiling Height = 10 ft.",
"Room 02: Area = 200 sq. ft., Has Door = No, Ceiling Height = 12 ft."
]
With this data, users could query the model with commands such as:/Revitdata/Room 01
these queries would first pass a function that parses all the data , extracts the relevant data and provides it to the LLM for further analysis
I truly appreciate your valuable insights! I was wondering if you might be able to provide a bit more detail or perhaps share a sample file similar to the image you shared. I’d love to exercise and explore further to understand the concept more deeply. Thank you!
Thank you so much for your kind words! I’m glad the insights have been helpful. I’ve attached a sample script for you to explore, along with a video demonstrating how to use it. I hope this helps you dive deeper into the concept!
I’v downloaded the files in Revit 2024.3 (Python 3.9.12)
and installed package HugginFace_hub on my pc.
I started the script but I get an error.
“AttributeError: ‘Settings’ object has no attribute ‘Categories’”
and
“SystemError: returned a result with an error set”