How Momentum works

Plain-English declaration of exactly what Momentum sees, what it doesn't, and the design choices that keep modeler privacy intact. Read this. Share it with your team. Push back if anything looks off.

One sentence summary. Momentum lives inside Revit, watches Revit's own published events (file open, view change, edit, save, sync), and writes a per-session timeline of those events to your firm's private workspace in Google Cloud. It does not see your screen, your keystrokes, your other apps, or anything outside Revit.

The shape of the system

Momentum has four parts:

  1. The Revit addin - a small DLL loaded by Revit when it starts. Subscribes to Revit's own events and writes a session log to Firestore.
  2. Firestore (Google Cloud) - the database where each firm's session logs, tasks, projects, and team data live. Strict per-firm isolation enforced at the database layer.
  3. Cloud Functions - the API that the dashboard talks to. Everything runs server-side, scoped to the calling user's tenant.
  4. The dashboard - the web app at getmomentum.studio where admins and modelers see what's been logged.

What the addin captures, exactly

The complete list of event types the addin emits - there are no hidden ones. Source code: Source/Core/ActivityEvent.cs in the Momentum addin.

Event What's logged
SessionStartTimestamp, Windows username, machine name, Revit version
SessionEndTimestamp, "Revit closing"
DocumentOpenedTimestamp, file path (e.g. Autodesk Docs://Project-X/Building.rvt)
DocumentClosedTimestamp
DocumentSaved / SavedAsTimestamp. Counted toward "saves per session." File contents are not transmitted.
DocumentSyncedTimestamp, "cloud" indicator. Counted toward syncs per session.
DocumentChangedTimestamp + the count of elements added/modified/deleted (e.g., "Drag (+2/~34/-0)"). The element identities and the actual changed data are NOT logged.
ViewActivatedTimestamp, view type + name (e.g., FloorPlan: 1ST FLOOR - DUCTWORK)
IdleSpanStart / EndTimestamps. Idle threshold is configurable per workspace (default 15 min).
WarningResolvedTimestamp, count of Revit warnings cleared
NoteDiagnostic strings (Revit version, Autodesk username). Not free-text or sensitive.

What Momentum does and does not do

Does

  • Watch Revit's own published API events
  • Record timestamps of those events
  • Record document and view names so admins know which projects you worked on
  • Count edits, saves, syncs, views
  • Detect when you've stopped using the keyboard / mouse for a while (idle)
  • Send a heartbeat every ~30 seconds while Revit is open so the addin can pull tasks assigned to you
  • Use Microsoft 365 to sign you in to the dashboard

Does not

  • Take screenshots - ever
  • Record your screen - ever
  • Log keystrokes or anything you type
  • Read file contents from your Revit models
  • Track which other apps you have open
  • Track time spent in Bluebeam, browsers, email, Teams, etc.
  • Read your microphone, camera, or location
  • Read your clipboard or browser history
  • Send your data anywhere except your firm's private cloud workspace

The idle detector - full transparency

The idle detector is the part of Momentum closest to "monitoring." Here is what it actually does.

Once per timer tick, the addin calls a single Win32 API:

BOOL GetLastInputInfo(LASTINPUTINFO* plii);

This API returns one number: the millisecond count of the last keyboard or mouse event on the system. It does not return:

This is the same API that Windows screensavers use to know whether to engage. Momentum uses it strictly to distinguish "modeler is at the desk" from "modeler walked away."

If the input timestamp is recent (within your idle threshold, default 15 min), the addin treats the modeler as active. If it stays silent past the threshold, an IdleSpanStart event is logged. When input resumes, an IdleSpanEnd event closes the span.

That is the entire idle mechanism. There is no foreground-app detection, no window-title capture, no per-application time tracking.

Modeler-chosen monitoring tier

On first Revit launch, the addin asks you to pick how much detail Momentum captures. The choice is yours, not your admin's - and filtering happens at the source, so events below your chosen tier are never recorded, locally or in the cloud.

TierWhat's capturedWhat's not
Full (default) Sessions, project + view names, edits, saves, syncs, idle/active. Same as every prior version of Momentum. -
Project-level Sessions, project assignments (via document name), save/sync counts, idle/active intervals, warning resolutions. No view-by-view tracking. No per-edit element counts.
Hours only Sessions, project assignments, idle/active intervals. Just enough to compute hours-per-project-per-day for billing. No edits, no saves, no syncs, no view changes captured at all.

Your workspace admin can see which tier you picked (it shows up in the Modeler acknowledgments card on their dashboard), but they don't get to override your choice. Some workspaces may require Full for billing reasons - if so, you'll be told before the notice closes.

The local session JSON file on your machine (%AppData%\Momentum\sessions\) reflects your choice too - if you picked Hours-only, the local file only contains hours data. We don't capture more locally and hide it from the server.

Roles and permissions

Momentum has three kinds of users. Each one sees a different slice of the workspace by design - team-wide visibility is gated to admins only, modelers see their own work, and the addin works for modelers who never touch the dashboard at all.

Capability Admin Member (signed-in modeler) Revit-only modeler
Dashboard access
Sign in to /dashboardYesYesNo (Revit only)
See Live Now table (who's currently in Revit)YesNoNo
See full team session tables (everyone's active/idle)YesNoNo
See Team roster + management controlsYesNoNo
See own session historyYesYesNo (request from admin)
See own assigned tasksYesYesVia Revit "My Tasks" panel
Presentation Mode toggle (hide tracking columns for screen-sharing)YesNoN/A
Tasks & projects
Create / edit / delete tasksYesNo (read-only)No
Mark assigned task done / dismissedYesYes (own tasks)Yes (via addin)
Create / edit / delete projectsYesNoNo
Drop an idea (suggest a feature)YesYesNo
Workspace + billing
Generate invitations to add new modelersYesNoNo
Promote / demote / remove membersYesNoN/A
Download per-tenant Revit installerYesNoN/A
View / change Stripe subscriptionYesNoN/A
Cancel workspaceYesNoN/A
Studio-tier features
Configure idle threshold per workspaceStudio admins onlyNoN/A
Configure outbound webhooks (Integrations)Studio admins onlyNoN/A
Override modeler display namesYesNoN/A
Data + privacy
Export own session dataYes (whole workspace)Request from adminRequest from admin
Request data deletionYes (whole workspace)Request from adminRequest from admin
Acknowledge monitoring notice in addinYes (per-machine)Yes (per-machine)Yes (per-machine)

How roles get assigned

Enforcement

Roles aren't just UI hints - they're enforced server-side at every layer:

Where data lives

Things we deliberately ruled out

For transparency about what Momentum could plausibly do but doesn't:

For employers using Momentum

You should give your modelers written notice that Momentum is in use. Several US states require it (Connecticut, Delaware, New York), and most jurisdictions either require or strongly recommend it. We've made this easy: this page is shareable as-is, and we're happy to help you draft a notice. Email Info@getmomentum.studio if you want a template.

For modelers in the EU/UK or California, additional rights apply under the GDPR and CCPA/CPRA - see the Privacy Policy for details.

For modelers worried about Momentum

Reasonable concern. Here are the questions worth pushing on:

If you have other questions, email Info@getmomentum.studio. We'll answer honestly.