Lots of nice new projects to play with, and making progress on using LLMs to answer questions in the Revit API discussion forum; please try it out yourself as well:
Let's start with the pure .NET desktop Revit API stuff before diving into AI-related topics.
My colleague George Moturi migrated the VisualStudioRevitAddinWizard Visual Studio templates to generate .NET Revit add-ins to Revit 2025. We have now dropped support for the VB.NET ones and focused on C# only. You can check the VisualStudioRevitAddinWizard release 2025.0.0.0 and compare it with previous versions to see what changed. Many thanks to George for the update!
Luiz Henrique @ricaun Cassettari published
the results of his experiments running a video inside a Revit 3D environment using DirectContext3D
.
Check out the result in the four-minute video Playing 'Bad Apple' using Revit API DirectContext3D.
Thank you, ricaun, for the cool project.
This reminds me of my precursor RevitWebcam sample making use of the AVF Analysis Visualisation Framework to display live webcam images on Revit BIM element faces in real time:
Moving away from the pure .NET desktop Revit API,
rvt-app by
Peter Hirn displays the basic Revit file information contained in BasicFileInfo
in the browser using TypeScript.
You can try it out by simply dropping an RVT BIM file into
the rvt.app web site.
Thanks to Peter for sharing this handy utility.
Jean-Marc @jmcouffin Couffin adds: Reading this, I remembered I made a small console app to batch retrieve infos. I decided to make it public (and clean it a bit ;p
BasicFileInfo
OLE object dataWe live in interesting times. Some aspects are threatening and frightening. Some are pretty exciting as well. I am excited by the progress in AI, although that has its threatening aspects as well.
I have started seeing pretty useful behaviour from the standard generic GPT chatbots trying to answer questions in the Revit API discussion forum. The LLMs have ingested the Revit API discussion forum, The Building Coder, the Revit API developer guidelines, the Revit API documentation and other publicly available sources and can now deliver useful results, answering some non-trivial questions from the Revit API discussion forum, afaict.
It helps to prefix them with a persona prompt. I have used this persona prompt, followed by the original question:
you are a wise and helpful BIM expert, experienced Revit application engineer and proficient .NET, Revit API add-in and BIM programmer. Can you please help with this Revit API question, maybe discussed in the Revit API discussion forum, by The Building Coder blog, or other Revit API resources: {original question}
Here are two threads that I answered in the past couple of days; one answer was confirmed, the other I am still awaiting:
This works well if there is enough publicly available information ingested by the LLM up front. Otherwise, the LLM may need supplemental input to produce useful results, e.g., fine-tuning or RAG.
I wonder whether there is enough APS and other Autodesk API information available already out in the wild and techniques like this can be used to answer other Autodesk API questions as well.
Looking forward to hearing your thoughts and results.
On the topic of prompts, Erik Frits shared a similar positive prompt for pyRevit scripting on LinkedIn:
Last month, I opened an old script of mine that I hadn't touched for a long time. I thought 'No problem – it's my own code, it won't take long'. But I was wrong...
You see, when I'm testing an idea, I write code quick and dirty. And then I go back and clean it up once I know it works. But I hadn't refactored this one yet, and it felt like solving a Rubik's cube in the dark.
Sound Familiar?
Now, imagine trying to read someone else’s code written in the same rushed, chaotic style. What do you do?
Luckily we have AI. Now we can get faster and better answers without judgement about asking stupid questions (I'm also guilty of the last one).
But here is the catch: AI is only as good as your prompt.
So it's a good idea spending some time on creating better prompts to get much better results.
Or you can use this prompt I made for beginners in my course to help them reverse engineer somebody's code.
ChatGPT prompt:
I want you to act as a seasoned Python software engineer with extensive expertise in Revit API and pyRevit. I will provide a piece of existing pyRevit code, and I need you to: - Provide a short and clear code overview outlining all the steps. - Write a step-by-step tutorial tailored for a beginner pyRevit user, explaining each section of the code in simple terms. - Describe all Revit API concepts used in the code, offering beginner-friendly examples where necessary. Here is the code: {PASTE CODE HERE}
This prompt works magic because:
The secret is to ask it to make a tutorial. It starts to think differently about the output. This approach is like having a teacher walk you through the code step by step.
But sometimes you still need to ask that teacher twice.
P.S. Got Better Prompt? Share it in the comments.
Underlining the importance of a good prompt, Promptimal is a Python CLI for quickly improving your AI prompts.
No dataset needed. Just submit your prompt and a description of what you want to improve. Promptimal will then use a genetic algorithm to iteratively refine the prompt until it's better than the original. An LLM evaluates the modified prompts to guide the process, but you can also define your own evaluation function.
Chuong Ho has also been busy, sharing a Jupyter Forge Viewer notebook on LinkedIn, saying:
Happy New Year, everyone!
Exciting news to kick off the year: Jupyter Forge Viewer is now published!
I’d like to take a moment to wish everyone a fantastic new year and share that Jupyter Forge is a powerful library designed to integrate Autodesk Platform Services seamlessly with Jupyter Notebooks. It empowers users with interactive 3D viewing and exploration capabilities directly within the notebook environment.
Let’s make this year innovative and impactful!
Moving on to more AI news unrelated to Revit and APS, another AI breakthrough has been announced: Superhuman AI for multiplayer poker.
Worryingly, when requested to beat Stockfish at chess (very hard), this half-hour video says OpenAI's o1 just hacked the system instead of following the rules of chess (easier). This can be seen as an example of scheming, c.f. further details in the video description.
For further worrying thoughts, you may enjoy Writing Doom – award-winning short film on superintelligence (2024), a fiction short film about the dangers of AI, grand prize winner of the Future of Life Institute's Superintelligence Imagined Contest:
A writing team are given the task of making Artificial Superintelligence the 'bad guy' for the next season of their TV show. With the help of a newcomer to the team (a Machine Learning PhD), they must figure out how and why an ASI might function as an antagonist – and the threat it might pose to humanity.
AI can become a much better threat given agency, e.g., tools and robots and stuff. To help with that, Nvidia released an open-world foundation model with permissive license, focused on robotics and physics: NVIDIA makes Cosmos world foundation models openly available to physical AI developer community:
State-of-the-art models trained on millions of hours of driving and robotics videos to democratize physical AI development, available under open model license.
Markdown is a commonly used text file format, both for writing this blog, and also for AI communication, e.g., to generate documents to use for RAG. MarkItDown converts various files to Markdown, e.g., for indexing, text analysis, etc. It supports:
Also for RAG, nv-ingest by NVIDIA is an early access set of microservices for parsing hundreds of thousands of complex, messy unstructured PDFs and other enterprise documents into metadata and text to embed into retrieval systems.
Also for LLM ingestion, gitingest makes large codebases from GitHub LLM-ready by converting the code into a prompt 1-click.
Finally, let's round off with two tutorials:
The Introduction to LangSmith provides a free 5-module 38-lesson course:
For something nicer and shorter for dummies (i.e., me) the overview of the main four approaches to creating a specialised LLM is a quick read.