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 phases

  • 200 – Preliminary solutions

  • 300 – Detailed design

  • 400 – Execution and site phases

  • 500 / 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, and ElementDeletion 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