How it works
Where a request actually goes
No cloud builds your model for you. FLOW runs on your machine, asks before it changes anything, and tells you what it read back afterwards.
Four hops, all on your machine
The assistant never talks to Revit directly. Two processes sit in between, and both of them are on your machine.
The assistant you use
Sends a request over MCP. It does not know the Revit API — only the list of tools FLOW lets it see.
AI Connection
Takes the request, checks it against the permitted surface, and only then passes it on. This is where the tool list narrows.
The background runtime
Queues the work and holds session state. It exists because Revit takes instructions on one thread, while an assistant asks at any moment.
The add-in inside Revit
Runs in the Revit process and calls the Revit API on a valid thread. It is the only thing here that touches the model.
The model stays on your machine. FLOW sends only the context the job needs.
Preview, approve, then run
FLOW does not change the model until you say so. Three beats, and each one needs the one before it.
Preview
The tool runs dry and reports what it would change — how many elements, which parameters, which values — without touching the model.
Approve
You read the preview and allow it. Without this step there is no next step.
Run
The change is committed inside a named Revit transaction, so Undo takes back one step rather than several hundred.
This is how FLOW works with you. It is not a promise about other software already running on the same machine.
The assistant cannot reach the whole registry
By default the MCP surface is a curated one, not all 413 tools. Reading the model is broad; writing to it is narrow.
Writes are permitted under 13 name prefixes plus 6 individually named tools. Anything outside that list does not exist as far as the assistant is concerned.
And four tools are refused outright, even though their names match a permitted prefix:
- document.close_non_active
- element.delete_safe
- project.purge_safe
- view.delete_filter_safe
That list ships in a configuration file with the product. It is not a setting you have to go and switch on.
413 tools across 68 groups
This is the number of tools that actually register at runtime, not the number of names declared in the source. Those two numbers differ, and we print the smaller one.
Eight names, from eight different groups:
- query.parameter_filter
- spatial.clash_detect
- audit.naming_convention
- sheet.dependencies
- annotation.inspect_tag
- level.list
- room.list
- schedule.compare
This page breaks its own build if the printed number drifts from the real registry, or if any name above stops registering.
Not done until it has been read back
Once a change is committed, FLOW reads each changed element back out of the model.
What you get is what it found in the model, not what the tool intended to do. A dry run reads nothing back, because nothing happened yet.
When the list is too long to return in full, the result says it was truncated. A list that cannot admit it is incomplete is worse than no list.
What it runs on
This list comes straight from the installer. Those are the Revit versions it places an agent for.
- Windows 10 or 11
- Revit 2024, 2025, or 2026
- An AI app on the same Windows machine that can start a local MCP server
Screenshots from real Revit
Not yet. We have not captured a set from a live Revit session, and we will not mock one up to fill the space. Real screenshots will appear here when they exist.