Overview
Lens is BIMIO's X-ray panel: a dockable palette that refreshes itself with every selection and shows you what Revit's Properties palette leaves out. For the element, view or sheet you have selected, it displays its full identity (category, family, type, id), who created it, who last changed it and who currently owns it, all of its parameters (including hidden and read-only ones, with labels indicating their origin) and in which views it is hidden or has its appearance manipulated with overrides.
Beyond inspecting, Lens records history. In workshared models (with worksets), the first synchronisation with the central model creates a baseline of the model and, from then on, every synchronisation compares the model against that reference and stores in a local SQLite database what was created, what was modified and what was deleted, with user, date, parameter and previous and new values. The result is a queryable history with a search box, Excel-style filters and pagination, without ever touching the model or the central.
For forensic work, Lens can recreate temporary ghosts: a red box where a deleted element used to be, or an orange box at the previous position of an element that was moved or resized. Ghosts clean themselves up before every synchronisation so they never reach the central model by accident. And when you need to share your findings, one click exports a self-contained HTML report with activity charts, a user ranking, a filterable inventory and the record card of the inspected element.
Who it's for
BIM managers and coordinators who need to audit who changed what and when in a shared model, and architects or modellers who want to see at a glance the hidden parameters, authorship and visibility tricks of any element.
Requirements
- Revit 2022 to 2026 with the BIMIO suite installed (Lens loads together with the rest of the tools on the BIMIO tab).
- For history recording, live activity and deleted elements: a workshared model (with worksets) synchronised with a central model. Non-workshared models and family documents can be inspected, but they do not generate history.
- Local disk space for the history databases (one per project, in the user's application data folder).
- Automatic selection refresh is instantaneous in Revit 2024 and later; Revit 2022 and 2023 use polling at roughly 250 ms.
Where to find it
The button shows the Lens dockable panel, which docks on the right-hand side of Revit by default; to hide it, close it with the panel's own X. You can move it, stack it with other palettes or leave it floating like any Revit panel.
The panel is registered when Revit starts; if you have just installed the suite and the button warns that the panel is not registered, restart Revit.
Key concepts 8 terms
- Baseline
- Initial snapshot of every tracked element in the model. It is created automatically at each project's first synchronisation with the central model (it can take 30 to 60 seconds in large models) and serves as the reference for calculating the changes of subsequent synchronisations. It appears in the history as the Baseline action.
- History
- The project's change log, stored in a local SQLite database. Each synchronisation with the central model compares the model against the baseline and adds Created, Modified or Deleted rows with user, date, category, parameter and previous and new values.
- Scope (Project / Element / Type)
- Header selector that decides what the history and the inspector show: Project shows the latest changes across the whole project; Element, those of the selected element (or of the active view if nothing is selected); Type re-points the inspection and the history at the selected element's type, with its type parameters.
- Ghost
- Temporary box-shaped marker that Lens draws in the model: red to mark where a deleted element used to be and orange for the previous position of an element that was moved or resized. It is a real model element, but it is removed automatically before every synchronisation and when the document is closed, unless you tick the one-off sharing checkbox.
- Auto-propagated
- A change that Revit recalculates on its own as a side effect of another edit (a room's area when someone moves a wall, a pipe's length when its end is displaced). By default these rows are hidden from the history to reduce noise; they are shown with the Show auto-propagated checkbox.
- Live activity
- Optional watcher that polls the central model at regular intervals (30 seconds by default) and shows in a feed what other users are editing in near real time: who is editing, who is releasing, who is synchronising. It is switched on with the Track pill and stores its events in the same local database.
- Visibility tricks
- Situations where an element cannot be seen or looks odd: hidden by element in a view, with graphic overrides, with its category switched off, or affected by view filters that hide or tint it. The Visibility section detects them for the selected element, and the Scan all tricks button sweeps the entire model.
- Grouped operation
- When a single action affects N elements in one synchronisation (for example, deleting 18 walls), the history collapses it into a parent row with the Show N elements link, which expands on demand into the individual rows.
The interface
The panel is a column with a fixed header at the top and scrollable content below. The header contains the Project / Element / Type scope selector, the Export HTML button and a collapsible General Info block with the identity and authorship of the current target. Below it, in order, four blocks are stacked: Live activity (a feed of other users' activity, with its Track pill), History (the change history with a search box and filters, with its Record pill), Deleted Elements (a dedicated list of deletions) and the selection inspector with Overview, Visibility and Parameters sections.
Everything works through collapsible expanders; the four main blocks (General Info, Live activity, History and Deleted Elements) remember their state between sessions. The panel reacts on its own: when the selection changes the target is re-inspected, when you synchronise the history refreshes, and when you switch documents the whole context is reloaded.

Step-by-step workflows 9 workflows
1Open the panel and start inspecting
4 steps
Goal. Have Lens docked and see the complete record card of any element in one click.
- Click the Lens button on the BIMIO tab, QA / QC panel.The dockable panel appears on the right-hand side of Revit. You can drag it, stack it with Properties or leave it floating.
assets/shots/lens/fig-03.pngThe Revit ribbon with the BIMIO tab open and the cursor over the Lens button in the QA / QC panel. - Select an element, a view or a sheet in the model.The panel refreshes itself with every selection: there is no refresh button. If you select nothing, Lens inspects the active view.
- Check the header and expand General Info to see identity and authorship.Category, Family, Type, Name and Instance Id (selectable, copy with Ctrl+C), plus the line C: (creator), LC: (last changed by) and O: (current owner of the element in worksharing).
assets/shots/lens/fig-04.pngThe General Info block expanded showing category, family, type, id and the C / LC / O authorship line. - Open the Overview, Visibility and Parameters sections as needed.Overview summarises what it is and where it is; Visibility lists in which views it is hidden or manipulated; Parameters shows every parameter with its origin labels.
- If you select several elements at once, Lens shows an aggregated summary with counts by category, type, workset and last editor.
- The expanded or collapsed state of the main blocks (General Info, Live activity, History and Deleted Elements) is saved and restored in the next session.
2Explore an element's hidden parameters
4 steps
Goal. See every parameter of the element, including the ones Revit does not show, and understand where each one comes from.
- Select the element and expand the Parameters section.Parameters are grouped first into instance and type blocks (type ones are titled Type · Group) and within those by Revit parameter group, each with its counter.
assets/shots/lens/fig-05.pngThe Parameters section with the collapsible groups and each group's parameter counter. - Type in the Filter parameters box to find a parameter by name or value.Filtering is instant and acts on the parameters already loaded; groups with no matches are hidden.
- Read the pills on each row to learn the parameter's scope and origin.INS instance, TYP type, BLT Revit built-in, PRJ project parameter, FAM family parameter, SHD shared and RO read-only.
- Switch the scope to Type in the header if you want to inspect the type rather than the instance.The inspector and the history switch to describing the selected element's type (its type parameters and its changes). Switch back to Element to return to the instance.
- Empty parameters are hidden by default to reduce noise; the important ones (Mark, Comments and the like) are always shown even when empty.
- Lens does not edit values: to modify a parameter, use Revit's Properties palette.
3Start recording history
4 steps
Goal. Create the project baseline and start accumulating change history at every synchronisation.
- Open a workshared model (saved as a central model or as a local copy of one).Models without worksets do not generate history in this version: the panel will work as an inspector, but History will remain empty.
- Check that the Record pill in the History header is switched on (it shows a tick).It is on by default. It is the master switch for recording changes at synchronisations.
- Synchronise with the central model as you normally would.At a project's first synchronisation, Lens builds the baseline: it scans the tracked elements and stores their state. In large models this can take 30 to 60 seconds.
- Keep working and synchronising; check History after each synchronisation.From the second synchronisation onwards, each one adds Created, Modified and Deleted rows by comparing against the baseline. The panel's history refreshes itself when each synchronisation finishes.
assets/shots/lens/fig-06.pngThe History section with today's synchronisation group expanded showing change rows with user and time.
- During heavy restructuring, switch Record off: intermediate synchronisations will not be recorded and, when you switch it back on, the next synchronisation will capture the clean net delta against the old baseline.
- Noisy categories (sketch lines, cameras) and the Edited by parameter are excluded by default to keep the history readable.
4Query and filter the change history
6 steps
Goal. Answer questions such as who changed what, when and on which element, using the search box and the filters.
- Expand History and choose the scope in the header: Project for the whole project, Element for the selected element (or the active view).In project scope, 50 rows are loaded per page; in Element and Type, 20. The history is grouped by synchronisation, with today's groups expanded.
assets/shots/lens/fig-07.pngThe History expander open with the search bar, the Filters expander and several synchronisation groups. - Type in the search box to filter instantly.It accepts free text and key:value tokens: user:javier, category:Walls (or cat:), family:Modular, type:RKD, param:Mark, id:123456, action:Created|Modified|Deleted|Baseline and date:today, date:yesterday, date:2026-06-15, date:2026-06 or date:2026. The search is applied after a typing pause of roughly 150 ms.
- Open the Filters expander to narrow down with Excel-style checkboxes.Three drop-downs (User, Category, Action) with the row count for each option; untick options to exclude them. The counters in the other columns are recalculated based on what you leave ticked. Add a date range with the From and To pickers.
assets/shots/lens/fig-08.pngThe Filters expander with the User, Category and Action drop-downs and the date range. - Use the Deleted only, Restore all and Clear all shortcuts as needed.Deleted only leaves only the Deleted action ticked (a one-click deletion audit); Restore all ticks everything again; Clear all unticks everything.
- Tick Show auto-propagated if you also want to see Revit's automatic recalculations.By default, rows where Revit recalculated a parameter (room area, pipe length) as a side effect of editing another element are hidden.
- Expand grouped operations and navigate from the rows.Show N elements rows expand into the individual elements (with their own pagination). A row's Show button frames and selects the live element; Zoom, on a deleted element's row, takes the view to where it used to be without creating a ghost. Click Show more at the bottom to load the next page.
- In Element scope, if the target has no recorded rows yet you will see the message No data for this element: the history only starts to exist from the baseline and subsequent synchronisations.
- If the Live activity watcher is switched on, some synchronisation headers may show the possible auto note: the attributed author did not appear to be active at the time and the changes could be auto-propagations.
5Audit deletions and see where deleted items used to be
6 steps
Goal. Find out what has been deleted from the model, who did it, and visualise the exact location with a temporary ghost.
- Expand the Deleted Elements section.The first time you open it, the recorded deletions are loaded, grouped by synchronisation and paginated in batches of 20. If it is empty, remember that deletions are recorded when you synchronise.
assets/shots/lens/fig-09.pngThe Deleted Elements section with rows of deleted elements: what each one was, who deleted it and when. - Filter with the Search deletions box if you are looking for something specific.Search by id, category, family, user or notes (the room, level or host where the element used to be).
- Click Recreate on the row you are interested in.The active view zooms to the element's last known position and a red ghost appears (a box filling its volume) with an identifying comment: category, family, type, id, who deleted it and when. For walls and linear elements the ghost is oriented along their axis; for lines the curve itself is recreated.
assets/shots/lens/fig-10.pngA Revit view with a semi-transparent red ghost marking the gap left by a deleted wall, and the active markers notice in the panel. - Repeat with as many rows as you need; the panel notice keeps count of the active ghosts.Once a row has a ghost, its button changes from Recreate to Show and only navigates to it.
- When you have finished, click Finish inspection to remove all the ghosts.If you forget, no harm done: ghosts are cleaned up automatically before every synchronisation and when the document is closed, so they never reach the central model.
- Only if you want to share the ghosts with the team, tick Keep markers on next Sync before synchronising.It is a one-off authorisation: the next synchronisation will send them to the central model and the checkbox unticks itself so they do not stay shared for ever.
- The Deleted only shortcut in History's Filters expander is another quick route for auditing deletions with all the filters available.
- Bulk deletions are shown element by element in this section, even though in History they appear grouped into a single operation.
6Recreate the previous position of a moved element
3 steps
Goal. See where an element was before someone moved or resized it.
- In History, find the row for the geometric change (moved or resized).Use the search box or the filters to track it down; only rows that stored the previous geometry offer this action.
- Click Recreate on the row.Lens draws an orange ghost with the element's box at its previous position, zooms to it, and the button changes to Show. The ghost carries a comment with the element's identity and the previous-position note.
assets/shots/lens/fig-11.pngA view with the element in its current position and an orange ghost marking where it was before the change. - Compare positions and, when you are done, click Finish inspection in History's orange notice.That button clears only the orange ghosts; the red ones for deleted elements have their own notice in Deleted Elements. Like the red ones, they clean themselves up before synchronising and on closing.
- The Keep markers on next Sync checkbox also works with the orange ghosts if you need the team to see them once.
7Follow the team's activity live
4 steps
Goal. Know what the other users of the central model are editing right now without waiting for the next synchronisation.
- Expand Live activity and click the Track pill.The watcher starts polling the central model (every 30 seconds by default) and the pill shows a tick. The state is remembered between sessions.
assets/shots/lens/fig-12.pngThe Live activity expander with the Track pill switched on, active user chips and several event rows. - Watch the active user chips and the event feed.Each row shows the time, the user with their colour, the verb (editing, released, took over, changed, synced) and the affected element. For multi-element events, expand Show N elements to see them one by one; the copy button puts the id on the clipboard.
- Adjust the behaviour with the cog in the header.The popover offers: Hide me from the feed (hide your own activity, on by default), Pulse interval (polling interval, 10 to 120 seconds in steps of 5), Keep users active for (minutes a user keeps counting as active, 5 to 240) and Scan whole model (scan the whole model instead of just the active view). Changes are saved automatically.
assets/shots/lens/fig-13.pngThe Live activity settings popover with the polling interval and the active-users window. - Click Show more at the bottom of the feed to reveal earlier events.The feed shows the 10 most recent events and keeps up to 200 in memory. If you scroll down to read older events, new ones wait and are inserted when you return to the top.
- Polling consumes network resources: on huge models you can raise the interval or switch off Scan whole model.
- With Track switched on, the history cross-references data with the feed and flags as possible auto the changes whose author was not recorded as active.
8Track down hidden or manipulated elements across the whole model
4 steps
Goal. Find in one sweep every element that someone hid, or whose appearance was manipulated with overrides, in views on sheets.
- Select any element in the model and locate the panel's Visibility section.The scan button lives in the header of the Visibility section, which appears when inspecting an element. With nothing selected, Lens inspects the active view and does not show this section.
- Click the Scan all tricks button in the section header.The scan sweeps the model looking for hidden elements or overrides in views placed on sheets, up to a cap of 5000 results. While it runs you will see the status Scanning all views for tricks.
- Review the results grouped by view.They appear in their own section, Visibility · all elements: each group is a view and each row an element with its trick type (hidden, with an override, or both). The results persist even if you change the selection, until the next scan.
assets/shots/lens/fig-14.pngThe Visibility · all elements section with the scan results grouped by view and rows of hidden or overridden elements. - Click Show on a row to activate the view where it happens.Revit opens that view so you can check and correct the visibility with the native tools.
- For a single element there is no need to scan: select it and the Visibility section already checks its views (up to 400 views and 80 findings per selection, prioritising the active view and views on sheets), including switched-off categories and view filters.
- The global scan covers hides and overrides in views on sheets; tricks caused by filters or categories are only detected in the per-selection check.
9Export an HTML report
4 steps
Goal. Generate a self-contained report to share the project's status or an element's record card with someone who does not have Revit.
- Decide the report type with the scope in the header.In Project (or with nothing selected) the project dashboard is exported; in Element or Type, the dedicated report for the selected element or type.
- Click Export HTML in the panel header.Lens gathers the history, the baseline inventory, the recorded live activity and, if there is one, the latest tricks scan, and builds a single HTML file with no external dependencies (it works offline).
- In the confirmation dialog, click Open file to open it in the browser, or open the folder.The file is saved in Documents, in the BIMIO Lens Reports folder, with a name that includes the model, the element (if applicable) and the date.
assets/shots/lens/fig-15.pngThe export-complete dialog with the file name, the destination folder and the buttons to open the file or the folder. - Browse the report in your browser.The project report includes Overview (figures and a timeline of changes), People (who changed what, a heat map by hour and day, live activity), Elements (hot categories and deletions), Inventory (every recorded row with search, sorting and filters), Revit's project information and the scanned tricks. The element report shows its activity over time and the full inspector snapshot. There is a light/dark theme toggle and a global search.
assets/shots/lens/fig-16.pngThe project HTML report open in the browser with the activity charts and the filterable inventory.
- Run Scan all tricks before exporting the project report if you want it to include the visibility tricks table.
- The Export HTML button is disabled if the panel has no sections to export (for example, with no document open).
Options reference 14 options
| Option | What it does |
|---|---|
| Project / Element / Type scope | Segmented control in the header. Decides the reach of the history, the filters and the inspector: the whole project, the selected element (or the active view) or the selected element's type. Saved between sessions. |
| Record (pill in the History header) | Master switch for change recording. When off, synchronisations write no new rows and do not touch the baseline; useful during restructuring to avoid noise. On by default. |
| Track (pill in the Live activity header) | Switches the live activity watcher on the central model on or off. Off by default; the state is remembered and resumes when Revit is reopened. |
| Hide me from the feed | In the Live activity settings: hides your own activity from the feed (on by default). |
| Pulse interval | In the Live activity settings: polling interval for the central model, from 10 to 120 seconds in steps of 5. Default 30 seconds. |
| Keep users active for | In the Live activity settings: minutes a user keeps appearing as active after their last event, from 5 to 240. Default 30 minutes. |
| Scan whole model | In the Live activity settings: with the checkbox ticked (default) polling covers the whole model; unticked, only the elements visible in the active view (lighter). |
| Show auto-propagated | In History's Filters expander: shows the rows for Revit's automatic recalculations (hidden by default). Saved between sessions. |
| User / Category / Action filters | Drop-downs with checkboxes and a counter per option. Unticking an option excludes its rows; the counters in the other columns are recalculated live. The Baseline action lets you include or exclude the initial inventory. |
| From / To date range | Two calendar pickers in Filters that restrict the history to an interval; the To day is included in full. |
| Deleted only / Restore all / Clear all | Shortcuts at the foot of Filters: see deletions only, tick everything again or untick everything. |
| Keep markers on next Sync (share with team) | Checkbox in the ghost notices. Authorises a single synchronisation to carry the markers to the central model so the team can see them; afterwards it unticks itself. Left unticked, ghosts are always cleaned up before synchronising. |
| Persistent expansion states | Lens remembers whether you had General Info, Live activity, History and Deleted Elements expanded, and restores it on startup. The Filters expander always starts collapsed. |
| Advanced settings in settings.json | The configuration file in the user's data folder accepts options with no interface: categories and parameters excluded from recording, log retention days (0 = keep everything), session grouping minutes and the Team Ledger folder for consolidating several users' history through a shared folder. |
What you get out
- Self-contained HTML report (no network dependencies) saved in Documents, in the BIMIO Lens Reports folder: a project dashboard with charts, user ranking, heat map, filterable inventory and project information, or a dedicated report for an element or type with its activity and the inspector snapshot.
- A local SQLite database per project with the baseline, the change history, the element snapshots and the live activity log (in %AppData%\FJV\Lens\projects).
- Temporary ghosts in the model (red boxes for deleted elements, orange for previous positions) with an identifying comment; they clean themselves up before synchronising and when the document is closed.
- Diagnostic log files in %AppData%\FJV\Lens\logs.