Overview
Assay is BIMIO's model quality auditor. In a single scan it sweeps the active model and detects the issues a BIM manager reviews before every delivery: accumulated Revit warnings, in-place families, imported CAD, raster images, purgeable content, RVT links that are unloaded, unpinned or hidden in views, unpinned levels and grids, unenclosed, unplaced or duplicate-numbered rooms, views without a template, orphan views, sheets without a title block or with duplicate numbers, manually hidden elements, per-element graphic overrides, annotation overlaps, dimensions with faked values and models dumped onto a single workset.
Beyond the list of issues, the same scan builds a complete inventory of the project: every sheet, every view, every model element and every annotation, with its worksharing authorship (who created it, who last modified it and who currently owns it). Everything is summarised in a health score from 0 to 100 with a grade from A to F.
Assay only detects: it never modifies the model. You can navigate from each finding to the element in Revit to fix it yourself, and export the results to a self-contained HTML report (it works without internet access) or the list of issues to a CSV ready for Excel.
Who it's for
BIM managers and coordinators who audit models before a delivery or a coordination exchange, and architects or modellers who want to locate and fix the quality issues in their own model.
Requirements
- Revit 2022, 2023, 2024, 2025 or 2026 with the BIMIO suite installed.
- An open project document (the scan runs on the active model).
- To see authorship (Author, Last modified by, Owner) in the inventory, the model must be workshared (worksharing enabled); in non-workshared models those columns show N/A.
- Purgeable content detection is only available in Revit 2024 or later.
Where to find it
You can leave the window open while you work in Revit (it is modeless). If you click the button again, the same window is reused instead of opening another one.
The window centres over Revit and minimises and restores together with it.
Key concepts 11 terms
- Scan
- A full run of the audit: nine model health checks plus the inventory, all in a single read-only pass. The result replaces that of the previous scan.
- Issue
- Each individual finding of the audit: a manually hidden element, a fake dimension, an unpinned link, a Revit warning type, and so on. Each issue has a severity, area, kind, detail and a fix recommendation.
- Severity
- How serious the finding is, on four levels: Critical (almost certainly hides incorrect data, for example a dimension with manual text), Error (a clear integrity problem), Warning (worth reviewing) and Info (an informational note, often intentional).
- Area
- Thematic grouping of the issue: Graphics, Annotations, Links, Visibility, ModelHealth, Content, Coordination and Standards. It helps you see where the findings are concentrated.
- Kind
- The specific type of finding (HiddenInView, FakeDimension, RogueLink, ModelWarning, InPlaceFamily, DuplicateSheetNumber, etc.). You can filter by kind in the side panel.
- Inventory
- An exhaustive listing of what the project contains: sheets, views, model elements and annotations, each with its category and its worksharing authorship. It does not flag problems: it catalogues.
- Placed view
- A view placed on at least one sheet. The per-view sweeps (annotation overlaps, hidden elements, overrides, fake dimensions, hidden links) only visit placed views: they are the ones that get printed and therefore the ones that matter for the delivery.
- Orphan view
- A view that is not placed on any sheet. In the inventory it is marked with Yes in the Orphan column; it is usually a working view, not necessarily a defect.
- Fake dimension
- A dimension whose visible value is manual text (Value Override) instead of the real measurement. Assay shows what the dimension says and what it actually measures, and flags it as Critical. Chained dimensions are checked segment by segment.
- Model health score
- A number from 0 to 100 with a grade from A to F. It starts at 100 and subtracts capped, severity-weighted penalties: Critical findings weigh more than Errors, Warnings are softened with a square-root curve and KPIs in Poor or Watch status subtract a little more. Info does not penalise.
- Health metrics
- Quantitative KPIs of the model (number of Revit warnings, in-place families, imported CAD, raster images, links, unpinned datums, sheets, etc.) with a Good, Watch or Poor traffic light. They are included in the HTML report.
The interface
The window (titled BIMIO · Assay) is organised into three bands: a header with the project name, the date of the last scan and the health score; a row of five KPI cards (CRITICAL, ERROR, WARNING, INFO and INVENTORY ITEMS); and the body, split between a filter side panel on the left and the results table on the right. An invisible splitter between the two lets you resize the side panel by dragging.
The Issues / Inventory toggle at the top of the side panel switches between the two tables. Each mode has its own filters, and the search box remembers the text for each mode separately, so you can switch back and forth without losing the state of either. The KPI cards are clickable: clicking a severity card isolates that severity in the table (and clicking it again restores all of them), and clicking INVENTORY ITEMS switches to Inventory mode.

Step-by-step workflows 7 workflows
1Run the model audit
5 steps
Goal. Scan the active model and obtain the list of issues, the inventory and the health score.
- Open the model you want to audit in Revit and go to the BIMIO tab.
- Click the Assay button in the QA / QC panel.The BIMIO · Assay window opens. If it was already open, it comes back to the foreground with the results of the previous scan.
- Click Scan (blue button, bottom right).The Working… progress dialog appears with the current phase and percentage. The quick model health checks run first and the view-by-view sweeps (annotation overlaps, graphics and overrides) last; the inventory closes the pass.
assets/shots/assay/fig-03.pngProgress dialog with the phase Scanning view 12/48 and the bar at 40 per cent. - Wait for the dialog to close on its own.In large models the per-view sweep and the inventory can take several minutes. You can click Cancel at any time.
- Review the header and the KPI cards.The header shows the scan date, how many placed views were visited and the Model health NN / 100 score with its grade. The cards indicate how many issues there are per severity and how many items the inventory catalogues.
assets/shots/assay/fig-04.pngHeader and KPI cards with the health score in amber and the per-severity counters.
- The scan is read-only: Assay never touches the model, so you can run it with confidence on a workshared model.
- The per-view sweeps only visit views placed on sheets. If a working view does not appear in the results, it is because it is not on any sheet.
- If one specific check fails, the rest carry on: you will see an Info row with the text Scanner did not complete instead of losing the whole scan.
2Review and filter the detected issues
6 steps
Goal. Narrow the list of issues to focus on what matters: one severity, one finding kind or a specific view.
- Make sure the side-panel toggle is set to Issues.
- Click a severity KPI card (for example CRITICAL) to isolate that severity.The table shows only those issues. Click the same card again to restore all four severities. You can also tick and untick the checkboxes in the Severity group manually.
- Narrow by finding kind with the checkboxes in the Kind group.Each checkbox shows its count in brackets. The All and None buttons tick or untick the whole group.
- Narrow by view with the Views group.If there are many views, type in the group's text box to filter the list of checkboxes itself and tick only the ones you are interested in. Project-scope issues (with no associated view, such as Revit warnings) are not affected by this filter.
- Use the search bar above the table for free-text searches.It searches severity, kind, view, element, detail and ID, and also the finding title and the element's Revit category; the Area and Recommendation columns are not searched. The counter on the right indicates how many rows remain visible.
assets/shots/assay/fig-05.pngIssues table filtered by Critical severity with the search text applied and the row counter. - Sort the table by clicking any column header.A second click reverses the order. You can also resize and reorder columns by dragging them.
- The Issues and Inventory filters are independent: you can switch between the two modes without losing the state of either.
- The Count column groups repeated findings: for example, a Revit warning type that fires 340 times appears as a single row with its count.
3Locate an issue in the model and fix it
5 steps
Goal. Jump from a table row to the affected element in Revit to fix it.
- Double-click the issue's row.Revit selects the element (and its related element, if there is one, as in an overlap between two annotations) and zooms to it, opening a suitable view if it is not visible in the current one. Project-scope rows (for example a purgeable count) have no element to jump to.
assets/shots/assay/fig-06.pngRevit with the finding's element selected and framed after the double-click. - To act on several rows at once, select them in the table (Ctrl or Shift + click) and click Select in Revit in the side-panel footer.All the elements of the ticked rows are selected in Revit, ready to pin, move to a workset or fix in bulk.
- Click Zoom to if you only want to frame the first of the selected elements.
- If you prefer to work with the ID, right-click the row and choose Copy element ID.The Issues table's context menu also offers Select in Revit and Zoom to. Copy element ID copies the IDs of all the selected rows separated by commas, ready to paste into Revit's Manage → Inquiry → Select by ID.
- Fix the issue in Revit following the Recommendation column and click Scan again to verify it.The results do not refresh on their own: they are a snapshot of the moment of the scan.
- If you deleted the element after the scan, double-clicking simply does nothing: Assay ignores IDs that no longer exist instead of raising an error.
- Views and sheets cannot be added to the Revit selection; for those, use double-click from Inventory mode, which opens them directly.
4Browse the project inventory
6 steps
Goal. Explore everything the model contains (sheets, views, elements and annotations) and find out who created and who modified each item.
- Click Inventory in the side-panel toggle (or click the INVENTORY ITEMS card).The table switches to the catalogue and the side panel shows the inventory filters.
assets/shots/assay/fig-07.pngAssay window in Inventory mode with the four kind chips and the table of catalogued items. - Choose which kinds to see with the four chips: Anno, Model, Sheet and View.Each chip shows its count and toggles on or off with a click. The Kind group's All and None buttons switch all four on or off at once.
- Narrow by Category or by Family · Type with their checkbox groups.Both groups have a text box to filter the list of checkboxes itself when there are many entries.
- Filter by authorship with the Author, Last modified by and Owner groups.They only have values in workshared models. Author is who created the element, Last modified by is who last synchronised it and Owner is who currently owns it.
- Use the Orphan group to keep only the views that are not on any sheet (Yes (orphan) checkbox) or to exclude them (No checkbox).
- Double-click a sheet or a view to open it in Revit, or any other element to select it and zoom to it.
- The inventory excludes internal system categories (constraints, automatic sketch dimensions, materials, viewports and the like) so as not to clutter the list.
- Filtering by Author is the quickest way to answer the classic question of who created all this in the model.
5Export the HTML report
4 steps
Goal. Generate a self-contained report to share the audit with the team or attach it to a delivery.
- With a scan loaded, click Export HTML in the actions bar.The button is enabled when the scan has found issues or inventory.
- Choose a folder and name in the save dialog and click Save.The suggested name is BIMIO_Assay_report.html.
- Open the file in any browser.It needs no internet access or auxiliary files: styles, charts and data are embedded in a single HTML file. It works on locked-down corporate networks and can be sent by email.
assets/shots/assay/fig-08.pngAssay HTML report open in a browser: health score ring, severity cards and filterable findings table. - Navigate the report's sections: Overview, Health metrics, Issues and Inventory.Overview includes the score with a narrative, a severity donut, rankings by area and by kind and an area × severity matrix. Issues is a table with search, filters by severity, area and kind, and column sorting; it also highlights the views with the most findings. Inventory only appears if there are catalogued items, with filters by kind, category and author and a checkbox to show orphans only. There is a global search and a light / dark theme toggle in the top bar.
- The report's tables render 600 rows per filter combination: if you see the first 600 notice, narrow with the filters to see the rest.
- In huge models the report embeds at most 25,000 inventory rows (it says so honestly as first N of M) so the file size does not balloon.
6Export the issues to CSV
3 steps
Goal. Take the issues list into Excel or a BIM issue log to assign and track them.
- With a scan that has found issues, click Export CSV.The button is only enabled if there is at least one issue (the CSV does not include the inventory).
- Choose a folder and name and click Save.The suggested name is BIMIO_Assay_issues.csv.
- Open the file in Excel.It is written in UTF-8 with BOM, so accented characters display correctly when you open it directly in Excel. One row per issue with the columns Severity, Category, Kind, View, RevitCategory, Element, Detail, Recommendation, Count, ElementId, RelatedElementId and Author, sorted from most to least severe.
- The ElementId column lets you locate each element in Revit again with Select by ID, even weeks after the scan (provided the element still exists).
7Cancel a scan and scan again
3 steps
Goal. Interrupt a long scan without closing Revit and repeat the audit when it suits you.
- During the scan, click Cancel in the progress dialog.The button is disabled and the text changes to Cancelling — waiting for the current step to finish…: cancellation waits for the current step to finish, so it can take a few seconds.
- Wait for the dialog to close.A cancelled scan does not load partial results: the table keeps whatever there was from the previous scan, but exporting that scan is no longer available until you complete a new one.
- To repeat the audit at any time, click Scan again.Each scan completely replaces the previous one; results do not accumulate.
- While a scan is running, the Scan, Select in Revit and Zoom to buttons are disabled to avoid crossed actions.
- The progress dialog cannot be closed with the X: use Cancel.
Options reference 10 options
| Option | What it does |
|---|---|
| Issues / Inventory toggle | Switches between the issues table and the inventory table. Each mode keeps its filters and its search text separately. |
| Issues filters: Severity, Kind and Views | Checkbox groups with a count per value. Each group has All and None buttons; the Views group also includes a text box to narrow the list of checkboxes. |
| Inventory kind chips (Anno / Model / Sheet / View) | Four toggles with counts that switch each inventory item kind on or off; All and None act on all four at once. |
| Inventory filters: Category, Family · Type, Author, Last modified by, Owner and Orphan | Checkbox groups with counts. Category and Family · Type include a text box to narrow long lists; Orphan offers Yes (orphan) for orphan views and No for the rest. |
| Free-text search | A box above the table, case-insensitive; each mode remembers its own text. In Issues it does not search the Area or Recommendation columns (it does search the rest, plus the finding title and the Revit category); in Inventory it covers every column except Orphan. |
| Clickable KPI cards | The severity cards isolate that severity in the table (click again to restore); the INVENTORY ITEMS card switches to Inventory mode. |
| Adjustable tables | Sorting by any column (click the header), resizable and reorderable columns, and a side panel you can resize by dragging the central splitter. |
| Export CSV | Exports only the issues list (not the inventory) to a UTF-8 CSV with BOM. Available when the scan has found at least one issue. |
| Export HTML | Exports the full report (summary, metrics, issues and inventory) to a single self-contained HTML file. Available when there are issues or inventory. |
| HTML report light / dark theme | The exported report includes its own theme toggle in the top bar, plus a global search and its own filters. |
What you get out
- Self-contained HTML report (BIMIO_Assay_report.html): health score with a narrative, charts by severity, area and kind, an area × severity matrix, KPI metrics with a traffic light, a filterable and sortable findings table, and an inventory table with authorship (up to 25,000 embedded rows). Works offline, with no external resources.
- Issues CSV (BIMIO_Assay_issues.csv): one row per finding with severity, area, kind, view, category, element, detail, recommendation, count and IDs, in UTF-8 with BOM for Excel.
- On screen: interactive issues and inventory tables, KPI cards and health score, with direct navigation to the elements in Revit (selection, zoom and opening views).
- Element IDs copyable to the clipboard from the Issues table's context menu (comma-separated, ready for Revit's Select by ID).