REVITPULSE
pyRevit extension

See where your Revit hours go.

RevitPulse runs quietly in the background, records how you work in Revit and shows it back to you: live in a small overlay, and as daily, monthly and all-time stats.

Automatic · starts with Revit Local · logs stay on your PC Read-only · never changes your model

This overlay is a live simulation with sample data.

Active timePauses when idleCounts the time you are actually working, not just the time Revit is open.
Per projectHours & editsEvery document is tracked separately, including families.
HistoryDay · Month · AllCharts, top tools, sessions and personal records.
OverheadClose to zeroListens to Revit events; writes a small file every 30 s.
The ribbon

One tab, four buttons

RevitPulse adds its own RevitPulse tab. Tracking does not depend on any of these buttons; they only show you what has already been recorded.

Hover or tap a button to see what it does.

Tracker

Overlay

Shows or hides the live overlay. Hiding it does not stop tracking.

Tracker

Stats

Opens the stats window with Day, Month and All time views.

Data

Open Logs

Opens the folder with your log files in File Explorer.

Data

Settings

Opens settings.json: daily goal, idle threshold and overlay options.

Live overlay

Today at a glance, on top of your model

A small floating panel that stays above the Revit window (not above other apps) and updates every second. It only reads numbers from the tracker, so it costs Revit nothing. The tour below walks through each part; hover a row to jump to it.

  • Status

    TRACKING while you work. It switches to IDLE after 45 seconds without any action.

  • Goal ring

    Today's active time against your daily goal, 4 hours by default. It turns green when you reach it and keeps counting past 100%.

  • Active time

    The big clock. Time you were actually working today, across all Revit sessions.

  • Elapsed · Session

    How long Revit has been open today, and how long the current Revit launch has been running.

  • Edits

    Every command that changed the model (each Revit transaction counts once).

  • Elements

    Elements added, modified and deleted. Hover the number to see the split.

  • Edits / hour

    Edits divided by active hours: how intense today's work has been.

  • Saves · Undo · Warnings

    Straight from Revit events. Warnings are the ones Revit raised today.

  • Now

    The project and the view you are working in right now.

  • Last 60 min

    Edits per minute over the last hour, with the peak minute on the right.

  • Streak · PR

    Days in a row with at least 5 minutes of active time, and your best day for edits. It shows NEW PR when you beat it.

  • All-time · Last

    Lifetime edits and active hours, and the last command you ran.

1 / 12
DragMove it anywhere. The position is remembered.
Double-clickSwitch to a compact pill: active time, edits and goal %.
Right-clickOpen stats, set the daily goal or opacity, open logs or settings, reset the position.
✕Hide the overlay. Tracking keeps running.
Stats window

Your day, your month, your whole history

Built from the local log files every time you open it or press Refresh. Use Prev, Now and Next to move between days or months.

Day

Totals for the day, edits by hour, top tools, projects by active time, and every Revit session with its start and end time.

Month

Active minutes per day, active days, average per active day, edits by hour of day, and the month's records.

All time

Hours per month, when you work by hour and weekday, current and longest streak, and personal records.

The RevitPulse stats window in Day view for Wednesday 7 October 2026: 6 hours of active time, 9 hours 55 minutes elapsed, 500 edits, an edits-by-hour bar chart, top tools led by Move, projects led by Hotel Alpina Refit, and a list of six sessions.
How it counts

Active time is not the same as Revit being open

Revit open over lunch is not work. RevitPulse looks at the gaps between your actions (edits, view switches, selections, saves) and decides which gaps to count.

< 3 min

A gap between two actions shorter than 3 minutes counts in full. Thinking and looking at the model is work.

45 s

A longer gap counts only its first 45 seconds. The overlay switches to IDLE at that point.

Settings

Both numbers are adjustable in settings.json as idle_seconds and grace_seconds.

What is recorded

Revit events, counted

RevitPulse listens to standard Revit API events. It never opens a transaction and never writes to your model.

Revit eventWhat RevitPulse records
DocumentChangedEdits, elements added / modified / deleted, undo and redo, the command name, and which project it happened in.
DocumentSaved, SavedAsSaves to disk.
SynchronizedWithCentralSyncs with central on workshared models.
DocumentOpened, ClosingOpened documents; the log is written to disk on close.
ViewActivatedView switches and the name of the current view.
SelectionChangedSelections, used only to detect activity. Revit 2023 and newer.
FailuresProcessingNumber of warnings Revit raised.
ApplicationClosingFinal write when Revit closes.
Your data

Plain files, on your computer

Everything is stored inside the extension folder. Nothing is sent anywhere. Back the folder up, open it in Excel or delete it whenever you like.

  • One file per session per day. Each Revit launch writes its own record, so two Revit windows open at once never overwrite each other.
  • Raw event log in CSV. Every edit, save, sync and view switch with a timestamp. It opens in Excel with Slovenian characters intact.
  • Written every 30 seconds. And on every save, sync, document close and when Revit closes, so a crash loses at most half a minute.
  • Falls back if the folder is read-only. Logs then go to %APPDATA%\RevitPulse\logs.
RevitPulse.extension\logs\
├─ settings.json            goal, idle threshold, overlay
├─ daily\
│  └─ 2026-10\
│     └─ 2026-10-07__081203_4120.json  one session
├─ events\
│  └─ 2026-10\
│     └─ 2026-10-07__081203_4120.csv   opens in Excel
└─ errors.log               only if something fails
Install

Three steps

  1. Download and unzip

    Unzip RevitPulse-1.1.0.zip and put the RevitPulse.extension folder into a pyRevit extensions folder, for example %APPDATA%\pyRevit\Extensions or a folder of your own such as C:\RevitPlugin.

  2. Reload pyRevit

    Use pyRevit ▸ Reload, or restart Revit. If you use a custom folder, add it under pyRevit ▸ Settings ▸ Custom Extension Directories first.

  3. Work as usual

    Tracking starts on its own. Click Overlay on the RevitPulse tab whenever you want to see it live.

Good to know

Requires pyRevit with the default IronPython engine. Tested on Revit 2025 and newer (.NET 8); selection tracking needs Revit 2023+. If two Revit windows are open at the same time, elapsed time is currently counted for both. A fix is planned.