Your AI-built Revit plugin works in the demo. Here is what it takes to ship it
Zakhar Vityk, CEO, Consedge Tech
A BIM manager with an AI coding assistant can have a working Revit command by the end of the evening. That is real, and it is good news. Ideas that used to wait in a backlog for a year now get a prototype in a day.
The prototype proves the idea. It does not prove the tool can be handed to sixty people on live projects. This article is the checklist we use to measure that distance: what makes a production-ready Revit plugin, and what an AI-built prototype usually still needs.
What AI assistants do well
It is worth being specific, because the answer is "a lot":
- They know the shape of a Revit add-in: commands, ribbon buttons, collectors, transactions.
- They turn a described rule, or a Dynamo graph, into a first C# version quickly.
- They explain unfamiliar code and write unit tests when asked.
We use them every day in our own development. And the tooling keeps moving. In 2026 Autodesk introduced an official Revit MCP server for Revit 2027 as a technical preview. It started read-only. Since the Revit 2027.2 update it comes as separate Read, Write and Experimental servers, so an assistant can now change a live model.
So the question is no longer whether AI can write Revit code. It is what stands between that code and production.
The demo and production, side by side
| Area | In the demo | In production |
|---|---|---|
| Model | A sample file, one user | Workshared, linked, 50,000 elements or more |
| Changes | Correct when nothing goes wrong | One transaction per action, full rollback, one Undo entry |
| Warnings | The developer clicks OK | Handled in code and written to a log |
| Revit versions | The one that is installed | Every version the office runs |
| Interface | Revit freezes while it works | Progress, cancel, panels that stay responsive |
| Installation | Copy a DLL into a folder | Signed installer, silent mode for IT, updates |
| Failure | A stack trace on the developer's screen | A message the user can act on and a log to send |
| Testing | A click-through before the meeting | Automated regression on reference models |
Every row is ordinary engineering. None of it shows up in a demo, and all of it shows up in the first week of real use.
The gaps that cost the most
Transactions that leave half a result
Generated code often opens a transaction, loops over elements and commits. When element 312 of 800 throws, the first 311 changes stay in the model. A production command treats one user action as one unit: everything succeeds, or everything rolls back, and Undo shows a single named entry.
Worksharing
A prototype is written against a detached local file. On a central model, some elements belong to another user, some worksets are closed, and a sync can start while your command runs. The tool has to check ownership before it writes, skip what it cannot edit, and say so in its report.
Scale
A loop that is instant on 300 elements can take twenty minutes on 50,000. The fixes are known: quick filters on collectors, no regeneration inside loops, batching, cached lookups. They have to be designed in and measured on a large model.
Edge cases in the model itself
Real projects contain in-place families, nested groups, pinned elements, parts, design options, demolished phases, linked files and parameters someone deleted. A prototype handles the elements its author happened to test. Production code decides, for each of these, whether to process, skip or stop, and records the decision.
The Revit version matrix
Revit 2024 runs on .NET Framework 4.8 and Revit 2027 on .NET 10. Element IDs became 64-bit in 2024, and members are removed with every release. Assistants learned from years of older samples, so generated code can call members that no longer exist. Our guide to Revit add-ins on .NET 10 covers the build setup that keeps one codebase working across versions.
Threading and modeless windows
The Revit API runs on one thread. A modeless window, a web panel or an AI chat panel cannot call it directly. Calls go through an external event queue. Code that skips this works in a quick test and crashes Revit later, at a moment nobody can reproduce.
Deployment and support
Someone in IT will ask for a silent installer, a code signature, and a way to roll back. Someone on a project will ask why a button is missing after a Revit update. A production add-in has a version number, a diagnostics screen, logs, and a named person who answers.
When the plugin itself calls an AI model
If the tool sends model data to an AI service, three more questions appear. What exactly leaves the machine? Where is the API key stored? And who approves a change before it is written? A workable rule for write actions: preview first, explicit confirmation, one Undo entry.
How to test a Revit plugin
A workable test stack has three layers:
- Logic tests outside Revit. Rules, naming, calculations and parsing are plain code and run in milliseconds on every commit.
- Tests inside Revit. NUnit tests run in the Revit process against reference models, through a runner such as Revit.TestRunner. They catch API behaviour that no mock reproduces.
- Interface and result checks. FlaUI drives WPF dialogs the way a user would. For commands that create geometry, the result is compared with a reference numerically, not by eye.

Push every check you can into the base layer; keep the slower Revit and interface runs for what only Revit can show.
This is the approach we apply to our own products first. The reference models matter as much as the tools: a small clean file, a large workshared one, and one deliberately messy file that collects every odd case found so far.
What to do with your prototype
Keep it. An AI-built prototype is the best specification a developer can receive. It shows the rule, the inputs and the expected result on a real model. Parts of the code often survive as well.
AI made prototypes cheap. We make them ship. If you have a prototype and want to know what stands between it and your whole office, request a Production Readiness Audit. You get a written list of gaps against the table above, ranked by risk, with a recommended scope. See also our AI engineering and plugin development pages.
FAQ
Can AI write a complete Revit plugin?
It can write a working command, and often a good one. A plugin that many people rely on also needs transactions, worksharing checks, a version matrix, an installer and tests. Those parts still need an engineer who has shipped them before.
Is it safe to let an AI agent change a Revit model?
Reading is low risk. Writing is possible too: Autodesk's technical preview now has a separate Write server, and its documentation tells users to review proposed changes and back up the model first. Whatever server you use, require a preview, a confirmation and a single Undo entry, and keep a log of every change.
Should we rewrite the prototype from scratch?
Not by default. Start with an audit of what is there. Often the rule logic stays and the structure around it is rebuilt.
How do we know a plugin is production-ready?
Walk through the table in this article. If every row has an answer you could show an IT manager, it is ready.
Working on something like this?
Bring the prototype — yours, your vendor’s, or the one an AI tool generated — and we tell you exactly what it takes to ship it.
- First call free, no obligation
- Straight answers
- Fixed-price written verdict
- Senior engineers, not account managers