AI assistsWorkflow guide · not independently tested

Triage Revit warnings into a prioritized cleanup list before model coordination with AI

Models collect hundreds or thousands of warnings, and the Review Warnings dialog is a slow place to work through them. Export the warnings to HTML, have ChatGPT, Claude or Codex write a short Python script that turns the export into a spreadsheet grouped by warning type with element IDs, tag each type with the priority tier you define, and use a small pyRevit button to select the elements for one group at a time. Deciding which element to keep or delete stays with the person who knows that part of the model.

BIM Coordinator · BIM · Autodesk Revit · pyRevit · ChatGPT · Claude · OpenAI Codex · Microsoft Excel

Content updated · Tool links listed below; vendor features and pricing change, so confirm with the vendor

Short answer

Use ChatGPT, Claude or OpenAI Codex: The AI writes a Python script that turns the Revit warnings HTML export into a CSV grouped by warning type with element IDs, drafts a priority tier per warning type for you to correct, and writes a select-only pyRevit button that highlights one group's elements so a person can fix them. Models collect hundreds or thousands of warnings, and the Review Warnings dialog is a slow place to work through them. Export the warnings to HTML, have ChatGPT, Claude or Codex write a short Python script that turns the export into a spreadsheet grouped by warning type with element IDs, tag each type with the priority tier you define, and use a small pyRevit button to select the elements for one group at a time. Deciding which element to keep or delete stays with the person who knows that part of the model. A person still checks: every tier you accept, and every fix in the model: which duplicate to keep, which join or boundary is right; linked models need their own export.

AI tie-in

Tool: ChatGPT, Claude or OpenAI Codex

The AI writes a Python script that turns the Revit warnings HTML export into a CSV grouped by warning type with element IDs, drafts a priority tier per warning type for you to correct, and writes a select-only pyRevit button that highlights one group's elements so a person can fix them.

Prompt 1

Here are three rows from a Revit warnings export in HTML [paste]. Write a commented Python script that reads the full export file and writes a CSV with one row per warning: model name (from the file name), export date, warning message, every element ID in that warning, and each element's description text as shown. Then write a second CSV that groups by warning message with a count and a column called TIER that I will fill in. Do not modify the HTML and print how many warnings you parsed so I can compare it with the count Revit shows.

Prompt 2

Write a pyRevit pushbutton script that asks me to pick the grouped warnings CSV, shows the warning messages in a list, and when I pick one, selects every element ID for that message that exists in the active model and reports how many it found and how many were missing. Select only: no deleting, joining, moving or parameter changes, and no transaction.

Human check: Every tier you accept, and every fix in the model: which duplicate to keep, which join or boundary is right; linked models need their own export.

The problem

Triage Revit warnings into a prioritized cleanup list before model coordination with AI. This is a common, time-consuming task for a bim coordinator.

What this workflow does

Models collect hundreds or thousands of warnings, and the Review Warnings dialog is a slow place to work through them. Export the warnings to HTML, have ChatGPT, Claude or Codex write a short Python script that turns the export into a spreadsheet grouped by warning type with element IDs, tag each type with the priority tier you define, and use a small pyRevit button to select the elements for one group at a time. Deciding which element to keep or delete stays with the person who knows that part of the model.

How it works: AI drafts or analyzes. A person operates the tools, checks the work, and takes action.

Your checkpoint: A warning count is a symptom list, not a quality verdict. Some warnings are harmless and some fixes delete real data, so a person who knows the model decides every fix. Linked models need their own exports, and any script that edits the model should run on a copy first.

Before you start

  • Access to the named tool; confirm license, version and cost with the vendor.
  • A small, non-confidential sample to try the workflow on first.
  • A qualified person to review the output before it is used.

Tools and access

Follow the steps

  1. In each model (host and every linked model you are responsible for), open Manage > Inquiry > Warnings and export the list to HTML. The host's list does not include warnings that live inside linked models, so export each one separately.
  2. Paste two or three rows of the exported HTML into ChatGPT, Claude or Codex and have it write a Python script that reads the export and writes a CSV: model name, export date, warning message, element IDs and element descriptions, one row per warning.
  3. Write your own priority list once: for example tier 1 for duplicate or overlapping elements and room or area boundary problems that break schedules and quantities, tier 2 for joins, constraints and geometry, tier 3 for cosmetic items. Have the model propose a tier for each distinct message as a draft, then you correct it and keep that table as your office standard.
  4. Build a pivot in Excel by tier, message and category, and assign groups to the people who know those areas of the model. Log the total and tier 1 count each week so you can see the trend.
  5. Have the model write a pyRevit button that takes the element IDs for one group from the CSV and selects them in the active model (select only, no edits), so the person fixing them can zoom straight to the problem.
  6. Fix in the model by hand: decide which duplicate to keep, rejoin or re-enclose rooms, renumber duplicate marks. Re-export after each session and compare counts. Work on a detached copy first if you are testing a new script.

Try a small example

Replace the bracketed fields with your own project details. No tested sample run is published for this workflow yet.

Sample input

Fill in the bracketed [fields] in the text below with your project data.

Starter prompt

Here are three rows from a Revit warnings export in HTML [paste]. Write a commented Python script that reads the full export file and writes a CSV with one row per warning: model name (from the file name), export date, warning message, every element ID in that warning, and each element's description text as shown. Then write a second CSV that groups by warning message with a count and a column called TIER that I will fill in. Do not modify the HTML and print how many warnings you parsed so I can compare it with the count Revit shows.

Expected output

Not published yet. Treat any output as a draft and check it against the source documents.

Check the result

  • Every value, citation or quantity traces back to a source document.
  • Missing information is marked as missing, not filled in.

Limits and recovery

  • A warning count is a symptom list, not a quality verdict. Some warnings are harmless and some fixes delete real data, so a person who knows the model decides every fix. Linked models need their own exports, and any script that edits the model should run on a copy first.
  • Check your organization’s data policy before sharing project files with third-party tools.

Stop or switch when: The source cannot be verified, permissions are missing, or the result contains unsupported facts.

Frequently asked questions

How does AI help with this?

ChatGPT, Claude or OpenAI Codex: The AI writes a Python script that turns the Revit warnings HTML export into a CSV grouped by warning type with element IDs, drafts a priority tier per warning type for you to correct, and writes a select-only pyRevit button that highlights one group's elements so a person can fix them. A person still checks: Every tier you accept, and every fix in the model: which duplicate to keep, which join or boundary is right; linked models need their own export.

How do I triage Revit warnings into a prioritized cleanup list before model coordination with AI?

In each model (host and every linked model you are responsible for), open Manage > Inquiry > Warnings and export the list to HTML. The host's list does not include warnings that live inside linked models, so export each one separately. Paste two or three rows of the exported HTML into ChatGPT, Claude or Codex and have it write a Python script that reads the export and writes a CSV: model name, export date, warning message, element IDs and element descriptions, one row per warning. Write your own priority list once: for example tier 1 for duplicate or overlapping elements and room or area boundary problems that break schedules and quantities, tier 2 for joins, constraints and geometry, tier 3 for cosmetic items. Have the model propose a tier for each distinct message as a draft, then you correct it and keep that table as your office standard. The full step list is above.

Does this use an AI agent or regular software?

It is labeled AI assists: AI drafts or analyzes. A person operates the tools, checks the work, and takes action.

What tools do I need?

Autodesk Revit, pyRevit, ChatGPT, Claude, OpenAI Codex, Microsoft Excel. Confirm license, version and cost with the vendor, and try it on a small non-confidential sample first.

Has this workflow been tested?

Workflow guide · not independently tested. Written from vendor documentation and practitioner use. Labels apply to the steps described here, not every feature of a product. Links were checked when the page was written.

Evidence and maintenance

Written from vendor documentation and practitioner use. Labels apply to the steps described here, not every feature of a product. Links were checked when the page was written.

Know what does the work.

Agent executes
An AI agent calls connected tools to carry out bounded actions. You set permissions and review the result.
AI assists
AI drafts or analyzes. A person operates the tools, checks the work, and takes action.
Conventional automation
Rules or specialist software perform the task. No AI agent is required.