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.

  1. 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.

  2. AI Connection

    Takes the request, checks it against the permitted surface, and only then passes it on. This is where the tool list narrows.

  3. 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.

  4. 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.

  1. Preview

    The tool runs dry and reports what it would change — how many elements, which parameters, which values — without touching the model.

  2. Approve

    You read the preview and allow it. Without this step there is no next step.

  3. 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.