MMI


MMI Settings
The MMI Settings tool defines what parts of the model are monitored for changes and how those changes are tracked. It supports monitoring for both geometry and parameter modifications, scoped by development stages, categories, and parameters.
🔄 Active Monitoring
At the top of the dialog, you can toggle Active Monitoring. When enabled, the plugin will track changes in selected categories and prompt the user when geometry or parameters are modified. Changes are stored per element with a timestamp and reason.
📁 Stages Tab
The Stages tab allows you to choose which development stages (MMI values) to monitor. Stages are grouped by code ranges:
100
– Concept phases200
– Preliminary solutions300
– Detailed design400
– Execution and site phases500
/600
– As built and handover
Each stage (e.g. 125 Etablert Konsept
, 275 Valgt Prinsipielle Løsninger
, etc.) is selectable individually. Only selected MMI values will trigger monitoring.
Selections are stored in MMISettings.SelectedDevelopmentStages
.
🏷 Categories + Parameters Tab
This tab controls what is monitored and how:
✅ Monitor Geometry
When enabled, the plugin tracks geometric changes in the selected categories. The default supported categories are:
Walls
Floors
Roofs
Ceilings
These are filtered via BuiltInCategory
and stored in MMISettings.SelectedCategories
.
✅ Monitor Parameters
When enabled, the plugin tracks changes to instance parameters. The tool automatically loads common parameters from the selected categories.
You can select any editable parameter to be monitored. The MMI
parameter is always included and locked for tracking. Changes to selected parameters will prompt a dialog where the user must confirm or revert the change.
Selections are stored in MMISettings.SelectedParameters
.
📦 What Happens When a Change Occurs
When a monitored change occurs:
A dialog asks the user to confirm and explain the change.
If confirmed, the reason is stored in the
MMI Revision
parameter.A snapshot of the element’s parameters, change type, and reason is saved using Extensible Storage.
If the user cancels, the operation is reverted via Undo.
Each snapshot includes:
The element ID
The current MMI value
All tracked parameter values
Change type (
Geometry
,Parameters
,MMI
)Timestamp and reason
Snapshots are updated per element as changes are confirmed.
🛠 Under the Hood
The monitoring system is registered using Revit’s
UpdaterRegistry
.Snapshots are stored using Revit’s Extensible Storage per element.
The updater uses
Element.GetChangeTypeAny
,Geometry
, andElementDeletion
triggers.Rejected changes trigger an automatic undo request.
✅ Use Case
This tool helps teams keep track of design maturity and quality during project development. It prevents untracked changes, enforces discipline around MMI phases, and ensures that design decisions are documented with clear rationale.
Last updated