Undo & safety.
The whole design assumes you’ll want to take things back. Four layers make that safe:
Clarify before acting
An ambiguous ask gets a question back, not a guess — "three wall types match ‘partition’, which one?" — before anything runs. Bigger asks outside the tool set go further: they arrive as a preview with Run and Discard as the only two buttons.
One transaction per command
Every run is wrapped in a single named Revit transaction. A command that touches two hundred doors is still one entry in Revit’s undo stack.
One Ctrl+Z
Because of that wrapping, a single Ctrl+Z reverts the entire
command — atomically, however many elements it touched. This is ordinary Revit
undo, so it works whether your focus is in the pane or the model.
Failures fix themselves
If a command fails mid-run, the error goes straight back and a corrected attempt returns on its own. Two tries, then it stops and explains what went wrong — it never keeps thrashing your model.
Honest reporting
Results come back as element counts — 214 doors updated — not vague
summaries. If the number looks wrong, you know before you move on, and
Ctrl+Z is right there.