Repository navigation
Added
- Show a first-run welcome wizard: what the add-in does and changes in a document, built-in diagnostics versus user-defined YAML rules with a read-only syntax-highlighted example of the main rule fields, optional example configurations per discipline (MEP systems, architecture, structure), the optional practical tour, and links to the quick start, the documentation and support. The new Getting started ribbon command opens it again. Installing examples never overwrites a configuration file that already contains rules: such an example is written to the
examplessubfolder, whose rules are marked as examples in the diagnostics list. - Guide an optional modeless practical tour through the real diagnostics workflow: open a document (or a disposable copy of an Autodesk sample), select and run a diagnostic, inspect findings, visualize elements, apply a fix and export the report. The tour runs in a right-side dockable pane with a ribbon resume command, highlights the relevant controls, advances only on observed user actions without taking ownership of them, skips finding-only steps after a clean run, and keeps resumable progress separately for each Revit version, with restart, opt-out and reset from Getting started. A dedicated
TOUR001training diagnostic with the visualizations and fix menu required by the walkthrough is installed for the tour, marked with a tour badge and pinned at the top of the diagnostics list. - Step through the findings of the diagnostic report: the new previous and next buttons of the tool bar select the neighbouring row and show it in the active view, with the position among the shown rows between them, such as "3 / 47". In the table, Up and Down select a row and Enter shows it. Stepping repeats the visualization that was used last and skips rows that cannot be shown.
- Control the add-in dialogs from the keyboard: Enter presses the default button (Close, the confirming button, or Next and Finish in the welcome window), Esc closes the dialog, and Alt+Left/Alt+Right or Page Up/Page Down move between the steps of the welcome window. The default button has the keyboard focus when a dialog opens.
- Open the documentation from the interface: F1 over a ribbon button opens its Wiki page, and the new question-mark button in a diagnostic report row opens the page that describes the finding's diagnostic. Pages open in English or Russian following the Revit language.
- Show ribbon-like tooltips on the pane buttons (run, pause, active-view option, export, more filters, fix, show): a title, a description and, where it applies, the duration of the last run. Disabled buttons explain why they are unavailable, and F1 over a tooltip opens the Wiki page of the pane. The document list, the search boxes, the Active and severity column headers and the bulk selection menu of the diagnostics pane are explained the same way: what the search covers, that your changes override the rule and are saved, and how "all" differs from "visible".
- Open the rule configuration from its diagnostics row.
- Validate
parameter-element.config.yamlwhen it is loaded: a rule with an unknown category, a group that is not valid for the running Revit version, an invalid GUID or a missing field is skipped with a message naming the rule, the parameter and the value, while the other rules stay in use. - Isolate failing diagnostics: a diagnostic that throws is logged and shown in the report as an error under the diagnostic's code, and the remaining diagnostics still produce their results.
Changed
- Breaking: a collision finding now lists every element the target intersects instead of the first one found. The message variables
{intersection.elementName}and{intersection.elementId}are replaced by the comma-separated lists{intersection.elementNames}and{intersection.elementIds}, with the new{intersection.count}giving their number; update themessageof existing rules incollision.config.yaml. Finding visualizations now cover all intersecting elements. - Speed up diagnostic runs: built-in, parameter and collision diagnostics, the diagnostic service and the dependency functions used in formulas now share one cached result for the same document query (all elements, elements of a class, element types, element geometry) instead of collecting it separately. The ignore list is consulted only for the elements a rule applies to and not at all in a document that has no ignore parameters; findings are handed to the report as one batch per diagnostic, and the fixes and visualizations of a report row are prepared when the row is first shown or used instead of for every finding up front. On the Snowdon Towers sample model (19 412 elements, 35 active diagnostics) a full run dropped from about 22 s to under 4 s.
- Write the start and the result of each full diagnostic run to the log (duration, memory, garbage collections), with a timing breakdown for every diagnostic that takes 100 ms or longer.
- Draw every control with the add-in's own flat templates instead of Material Design: square buttons without ripple animations, outlined dialog buttons and input fields, plain check boxes, radio buttons, menus and tool tips. The Material Design libraries are no longer installed with the add-in, which removes a source of version conflicts with other add-ins.
- Color the panes and windows like the Revit interface in both the light and the dark theme: background, text, lines, selection and scroll bars use the colors of the Revit palettes, and the accent color is the Autodesk blue instead of cyan. Warning codes use a darker orange in the light theme so that they stay readable. The panes are denser and sit closer to the Revit interface: 12 px Segoe UI text, 16 px icons, smaller tool bar buttons and tighter table rows, with the search hint inside the field.
- Fit the tables of the panes to the pane width: the message column of the report and fix panes and the description column of the diagnostics pane take the room left by the other columns and wrap their text, so the table no longer needs horizontal scrolling. Row buttons use the text color and stay dimmed until the row is pointed at or selected, the fix button is shown only for findings that have a fix, and a finding's code is colored by its severity (orange for a warning, red for an error) instead of a separate severity column. Pane filters, the report document choice and the export button moved into the filter-button list, and the On active view option is now an icon button that stays pressed while on.
- Run diagnostic visualizations in a reusable
Revit Linter — Visualization3D view so crop and combined pipelines behave consistently instead of being redirected to a plan view. - Activate the Warnings pane as soon as a diagnostic run starts, so the previous report is cleared and new findings appear in front of the user.
- Configure the project ignore-list parameters silently when a document is opened: no success dialog, and no transaction when the bindings are already correct. A failed setup is logged and still reported once; an empty transaction is rolled back instead of committed.
- Move the configuration folder button from the ribbon to the Diagnostics pane toolbar.
- Replace the Wiki configuration examples with rules that are usable as shipped: nine collision rules (three per discipline), six element checks, and project parameter rules built from the ADSK shared parameter file. The examples are available with English and Russian message texts and reference parameters by
BuiltInParametername; the welcome wizard installs these same files. The project parameter template uses the Revit 2024+groupidentifier with a note for Revit 2021–2023, and the collision template uses the newintersectionmessage variables. - Reshape the English and Russian getting-started Wiki around user tasks: choosing built-in diagnostics or YAML rules, creating a first rule, following the practical tour, and starting with or without an open document or Autodesk sample.
- Store per-user settings in
%LOCALAPPDATA%\Volocy\Revit.Linter\settings\.
Fixed
- Turning a visualization off no longer fails with "Failed to restore the previous visualization state" when Revit cannot return the view to its previous zoom.
- A visualization started from a view that does not show the elements, such as a sheet, is now applied to the view Revit opens to show them instead of the view the user has left.
- Running diagnostics while a visualization is active no longer fails with "Failed to restore the previous visualization state": the run now executes in a Revit API context and restores the visualization before it starts.
- Report a project parameter that exists in the document but is not bound to categories instead of aborting the whole diagnostic run.
- Export YAML report timestamps identically on machines in any time zone instead of rendering
localDateTimein the computer's time zone.
Full changelog: https://github.com/VolocyNazad/revit.linter/blob/v2.0.0/CHANGELOG.md#200---2026-10-06