Skip to content

QA Checker

QA Checker runs a suite of 23 automated checks against the active Revit document to identify common modeling and documentation issues. It helps teams catch problems before deliverables by flagging naming issues, missing templates, CAD imports, in-place families, link problems, MEP connectivity issues, and more in a single click. Results appear in a modeless window that stays open while you work, with one-click navigation to any flagged element, scope-aware runs, issue highlighting, saved presets, and HTML report export for documentation and handoff.

Find QA Checker on the Amorphous ribbon tab in the Experimental panel.

The results window opens immediately with all 23 checks in a “not yet run” state. No checks run automatically, giving you the choice to run all checks at once, run only selected checks, or target just the ones you need.


  • 23 automated checks across views, sheets, model quality, MEP, links, project setup, and model health
  • Category grouping with collapsible sections for Model Integrity, MEP, Views & Sheets, Links, Project Setup, and Informational
  • Scope selector for Project, Active View, or Selection
  • Run individually, selected, or all at once with per-check Run/Re-run buttons
  • Model Health Summary with at-a-glance project statistics (views, sheets, warnings, links, rooms, families)
  • Modeless results window that stays open while you work in Revit
  • One-click element selection to jump to any flagged issue in the model
  • Bulk selection of all issues per check (“Select All in Model”) or across all checks (“Select All Issues”)
  • Issue highlighting with per-check Highlight/Clear actions plus global Highlight All and Clear Highlights
  • Presets for saving, loading, deleting, and importing reusable QA configurations
  • Search/filter to quickly narrow the check list
  • Tolerance settings for duplicate detection, slope detection, and highlight transparency
  • HTML report export with styled output for documentation, printing, and handoff
  • Dark-themed UI with status badges, expandable check categories, and hover effects

  1. Open - Click the QA Checker button on the ribbon. The window opens instantly, owned by the Revit main window
  2. Choose scope - Select Project, Active View, or Selection depending on how broad the review should be
  3. Select checks - Leave everything enabled, uncheck specific checks, use category all | none, search by name, or load a saved preset
  4. Run checks - Click Run All to execute the full suite, Run Selected for only the checked items, or click Run on individual checks
  5. Review results - Checks with issues auto-expand to show each flagged item. Passed checks stay collapsed. Informational checks always expand
  6. Navigate to issues - Click Select on any individual issue to highlight it in the model. Click Select All in Model within a check category, or Select All Issues in the footer for every issue across all checks
  7. Highlight issues - Click Highlight on a check to apply red graphics overrides to all flagged elements in the active view, or use Highlight All for everything highlightable
  8. Fix and re-run - Make corrections in Revit, then click Re-run on individual checks or Run All again to verify fixes
  9. Export - Click Export Report in the footer to save the current results as an HTML file

QA Checker includes checks organized into six categories. Each check can be run independently or as part of the full suite.

CheckWhat It Flags
Unnamed ViewsViews with default or auto-generated names (e.g., “Section 1”, “3D View 2”, “Floor Plan 3”, “Copy of…”). Detects common Revit default naming patterns
Duplicate View NamesMultiple views sharing the same name, grouped by duplicates
View Template CompliancePrintable views (excluding sheets and schedules) without a view template assigned
Empty SheetsNon-placeholder sheets with no placed views
Unplaced ViewsPrintable views not placed on any sheet (excludes sheets, schedules, and templates)
Duplicate Sheet NumbersSheets sharing the same number, which causes export and print collisions
Sheets Missing Title BlockSheets without a title block family instance placed

This check uses pattern matching to detect views that still have Revit’s default auto-generated names. Common patterns include names like “Section 1”, “3D View 2”, “Floor Plan 3”, and names starting with “Copy of”. Views with default names indicate they have not been properly named for documentation.

Groups all non-template views by name and flags any groups with more than one view. Duplicate view names make navigation confusing and can cause issues with view references on sheets.

Scans all printable views (excluding sheets and schedules) and flags any that do not have a view template assigned. View templates ensure consistent graphic standards across the project.

Checks all non-placeholder sheets for placed views. Sheets with no views placed on them may indicate incomplete documentation or leftover sheets that should be removed.

Cross-references all printable views against views placed on sheets. Views that exist in the project but are not placed on any sheet may be unused or forgotten. Excludes sheets, schedules, and view templates from the check.

Groups sheets by sheet number and flags any duplicates. Duplicate sheet numbers cause failures during PDF export, printing, and transmittal generation.

Scans each sheet for a title block family instance. Sheets without title blocks will have no border, project information, or standard formatting when printed or exported.


CheckWhat It Flags
Room IssuesUnplaced rooms (no location in the model) or rooms with zero area (not properly enclosed)
In-Place FamiliesIn-place families that should typically be converted to loadable families. Shows the family category
Duplicate Model ElementsModel elements of the same type with overlapping bounding boxes (potential duplicates). Only considers elements with solid geometry
Design OptionsDesign options still present in the model. Shows the option set name and whether the option is primary
Elements Far from OriginElements placed extremely far from the project origin, which can cause precision and performance issues. Shows distance in miles
Unhosted ElementsFace-hosted family instances without a valid host element
Orphaned HostsElements whose host was deleted

Checks all rooms in the project for two conditions: rooms that are unplaced (have no location point in the model) and rooms that have zero area (not properly enclosed by bounding elements). Both conditions indicate rooms that need attention before area schedules or color fills will be accurate.

Identifies all in-place family instances in the project. In-place families cannot be reused across projects, do not appear in the Family Editor, and can impact model performance. In most cases, they should be converted to loadable families. The check displays the category of each in-place family for context.

Detects model elements of the same type that occupy the same physical space (overlapping bounding boxes). This check only considers elements with solid geometry volume and uses a configurable tolerance. Common causes include accidental copy-paste or mirroring operations.

Lists all design options that remain in the project. Design options are useful during design exploration but should be resolved before documentation and deliverables. The check shows which option set each option belongs to and whether it is the primary option.

Flags elements placed more than approximately 10 miles from the project origin. Elements at extreme distances from the origin can cause graphical glitches, precision errors, and performance degradation. The check reports the distance in miles for each flagged element.

Finds face-hosted family instances that no longer have a valid host. These elements may appear in unexpected locations, fail to behave correctly, or indicate broken model relationships after edits.

Flags hosted elements whose original host has been deleted and Revit now marks as orphaned. These should be reviewed and either rehosted or removed.


CheckWhat It Flags
Unconnected MEPMEP curve elements (pipes, ducts, conduits, cable trays, flex pipes, flex ducts) with open or unconnected connectors
Sloped MEP ElementsMEP curve elements that have a Z-axis difference between endpoints exceeding the slope threshold
Level MEP ElementsMEP curve elements that are perfectly level, useful for drainage slope verification

Checks supported MEP curve elements for open connectors that are not joined to another element. This helps catch broken runs, unfinished connections, and elements that were moved without reconnecting them.

Identifies MEP curve elements whose endpoint Z difference exceeds the configured slope threshold. This is useful for spotting runs that are intentionally sloped, incorrectly sloped, or outside the expected threshold for the current review workflow.

Finds MEP curve elements with no endpoint Z difference. This is especially useful when reviewing systems that are expected to slope, such as drainage, where a perfectly level run may indicate a mistake.


CheckWhat It Flags
Unresolved LinksLinked files (Revit or CAD) with “Not Found” or “Unloaded” status. Shows the file path when available
Unpinned Linked ModelsLinked Revit models that are not pinned and can be accidentally moved

Scans all external file references in the project and flags any with a “Not Found” or “Unloaded” status. Unresolved links indicate missing files that may have been moved, renamed, or deleted. The check displays the file path when available to help locate the missing file.

Checks all Revit link instances for their pinned status. Unpinned links can be accidentally selected and moved, which shifts the entire linked model out of alignment. Pinning linked models is a standard best practice for coordination.


CheckWhat It Flags
Project InformationKey project fields that are blank: Project Name, Project Number, Client Name, Project Address, Building Name, and Author
Warnings SummaryAll active project warnings, grouped by description with counts. Each warning group supports selecting all affected elements
CAD ImportsImported (not linked) CAD files that bloat the model. Shows whether the import is in a specific view or in model space

Checks six key fields in the Project Information dialog: Project Name, Project Number, Client Name, Project Address, Building Name, and Author. Blank fields are flagged individually. Complete project information ensures title blocks, exports, and transmittals display correct data.

Retrieves all active warnings in the project and groups them by warning description text, sorted by count (most frequent first). Each warning group shows how many instances of that warning exist. You can select all elements affected by a specific warning type to review and resolve them in bulk.

Finds CAD files that have been imported rather than linked into the project. Imported CAD files become embedded in the model and increase file size significantly. The check distinguishes between imports placed in a specific view and imports placed in model space. Linked CAD files are not flagged by this check.


CheckWhat It Shows
Model Health SummaryTotal views (excluding templates), sheets (excluding placeholders), warnings, linked models, rooms, and families

Provides an at-a-glance statistical overview of the project. This is an informational check with no pass/fail status. It always displays with a blue “INFO” badge and expands automatically. Use these numbers as a baseline to track project health over time or compare against project standards.


The scope selector controls which elements each scope-aware check evaluates:

ScopeBehavior
ProjectChecks all applicable elements in the document
Active ViewChecks only elements visible in the current view
SelectionChecks only the currently selected elements

Not every check supports scoping. Document-level checks such as Warnings Summary, Project Information, CAD Imports, Design Options, and Model Health Summary always run project-wide regardless of the selected scope.


Configurable tolerances affect several checks and visual behaviors:

SettingPurpose
Duplicate ToleranceControls the bounding box comparison tolerance used by Duplicate Model Elements
Slope ThresholdControls how much endpoint Z difference is required before a run is flagged by Sloped MEP Elements
TransparencyControls the transparency used when issue highlighting overrides are applied

Settings persist between sessions in %LocalAppData%\Amorphous\QAChecker\settings.json.


Save the current QA configuration as a named preset to quickly recall it later:

  • Save - Stores selected checks, scope, and tolerance values under a preset name
  • Load - Restores a preset from the dropdown
  • Delete - Removes a saved preset
  • Import - Merges presets from an external file into the local preset list

Presets persist in %LocalAppData%\Amorphous\QAChecker\presets.json.


The results window uses a dark theme with rounded corners and a draggable title bar. Press Escape to close the window at any time.

The top summary bar shows the aggregate status across all checks:

IndicatorDescription
TotalNumber of checks that have been run
PassedChecks with no issues found
IssuesChecks with one or more flagged items
Not RunChecks that have not been executed yet (if any)
ErrorsChecks that encountered an error during execution (if any)

The Run All button is always accessible in this bar, and the window also supports Run Selected based on the checkboxes in each panel.

Checks are organized into collapsible category sections: Model Integrity, MEP, Views & Sheets, Links, Project Setup, and Informational. Each category group includes all | none links to quickly toggle check selection within that category.

Each check is displayed as an expandable panel with the following elements:

ElementDescription
Status icon (left)Circle for not run, checkmark for passed, dot for issues, warning triangle for errors, info icon for informational
Check name (center)The name of the check
CheckboxIncludes or excludes the check from Run Selected
Run / Re-run buttonRuns or re-runs only that specific check
Status badge (right)Color-coded pill showing the result
Chevron (far right)Rotates when expanded

Status badge colors:

BadgeColorMeaning
---GrayNot yet run
PASSGreenNo issues found
CountOrangeNumber of issues found
ERRRedCheck encountered an error
INFOBlueInformational/statistics

Checks with issues auto-expand to show the flagged items. Passed and not-yet-run checks stay collapsed. Informational checks always expand.

Each issue row displays:

  • The item name and detail text (with hover tooltips for truncated text)
  • A Select link to highlight the element in the Revit model
  • For warnings with multiple affected elements, the Select link selects all related elements at once
  • When supported, per-check actions for Highlight and Clear to apply or remove graphics overrides in the active view
ButtonDescription
Export Report (left)Opens a Save As dialog for HTML export
Select All IssuesSelects every flagged element across all checks. Only visible when there are issues to select
Highlight AllApplies graphics overrides to all highlightable issues across all checks
Clear HighlightsRemoves overrides previously applied by the tool

Click Export Report in the footer to save the current results as a styled HTML file. The Save As dialog defaults to your Documents folder with a filename pattern of {ProjectName}_QA_Report_{date}.html.

The report includes:

  • A header with the project name and generation timestamp
  • A summary bar with total checks, passed count, issue count, and error count
  • Each check that has been run, with status badges and issue tables
  • Print-friendly styling with page-break-safe layout
  • A “Generated by Amorphous QA Checker” footer

The report opens automatically in your default browser after saving.

From the developer

The HTML report is completely self-contained with inline CSS, so you can email it or drop it into a shared folder without worrying about broken formatting. I designed it to be print-friendly too, so it works well for those teams that still need paper QA checklists.


ScenarioRecommended Approach
Pre-deliverable QARun all checks before issuing a model to catch naming issues, missing title blocks, unpinned links, unresolved references, and MEP coordination issues
Model cleanupFocus on CAD Imports, In-Place Families, Duplicate Model Elements, Unhosted Elements, and Orphaned Hosts to identify items that should be removed, fixed, or converted
Warning triageRun the Warnings Summary check to see all project warnings grouped by type with instance counts, then select affected elements for each group
Project setup verificationRun the Project Information check to ensure all key fields are filled in for title blocks and exports
View documentation auditRun the Views & Sheets checks to find unnamed views, unplaced views, empty sheets, and missing title blocks before issuing sheets
Link coordination checkRun Unresolved Links and Unpinned Links before coordination meetings to verify all references are valid and properly pinned
MEP reviewRun the MEP checks to spot open connectors, unintended slopes, and unexpectedly level runs
Ongoing model health monitoringExport periodic HTML reports to track model health metrics over time and compare against project standards

  • Start with Run All for a complete baseline, then use per-check Re-run buttons or Run Selected to verify specific fixes. Running all checks can take a while on large models with many elements
  • Fix the most impactful issues first. The Warnings Summary shows counts per warning type, so start with the most frequent groups
  • Use scope intentionally. Active View and Selection are useful when you are reviewing one area at a time instead of the whole project
  • Save presets for repeatable workflows. A documentation preset, MEP preset, or coordination preset can save time across projects
  • Use Select All in Model within a check category to see all related issues highlighted in the model at once, making it easier to spot patterns
  • Use highlight tools while fixing. Highlight and Highlight All are useful for visually scanning issue clusters before cleanup
  • Re-run checks incrementally. After fixing issues in one category, re-run just that check rather than running all again
  • Export reports before milestones. Save HTML reports before deliverable deadlines to document the model’s QA status
  • Pin all linked models. The Unpinned Links check catches links that can be accidentally moved. Pinning links is a quick fix that prevents coordination problems
  • Clean up design options before documentation. Design options left in the model can cause confusion and increase file size
  • Remove CAD imports when possible. Imported CAD files embed geometry into the model. Link CAD files instead, or remove them entirely if no longer needed

LimitationDetails
Active document onlyChecks run against the active document only. Linked models are not checked internally
Warning descriptions from RevitWarning descriptions come directly from Revit and cannot be customized or filtered
Element selection requires valid elementsElements in closed worksets or deleted elements will be skipped during selection
Duplicate elements limitThe Duplicate Model Elements check reports up to 100 groups. Additional duplicates may exist
Far from origin limitThe Elements Far from Origin check reports up to 50 elements. Additional elements may exist
Duplicate detection toleranceDuplicate Model Elements compares bounding boxes using the configured tolerance and only considers elements with solid geometry
Scope support varies by checkDocument-level checks ignore Active View and Selection scope and always run project-wide
Fixed window sizeThe results window has a fixed size and is not resizable
From the developer

The check suite is still growing. If there’s a QA check your team runs manually that you’d like automated, open a request on GitHub. Adding new checks is straightforward on my end, and real-world suggestions help me prioritize what to build next. The result caps are there for performance, but if you need higher limits I can make them configurable.


Possible causes:

  • The check encountered an unexpected error during execution
  • The model contains corrupt or unusual elements that the check cannot process

Solution: Individual check failures do not affect other checks. Try re-running the failed check. If the error persists, note which check is failing for troubleshooting.

”Select” does not highlight the element

Section titled “”Select” does not highlight the element”

Possible causes:

  • The element has been deleted since the check was run
  • The element is in a closed workset
  • The element is in a design option that is not active

Solution: Re-run the check to refresh the results. Ensure all relevant worksets are open.

The results window does not auto-refresh when you make changes in Revit.

Solution: Click Re-run on individual checks, Run Selected, or Run All to refresh results after making model changes.

Possible cause:

  • Selection scope was chosen with no elements selected, so the tool fell back to a project-wide run

Solution: Select the target elements first, then run the check again.

Possible causes:

  • No default browser is configured
  • The file path contains characters that the browser cannot handle

Solution: Navigate to the saved HTML file manually and open it in a browser. The default save location is your Documents folder.


  • Convert In-Place - Convert in-place families flagged by QA Checker into loadable families