How do I find which Revit views are not on sheets and which are safe to delete with AI before a model handoff?
Before a model goes to the owner or a consultant, most teams want the views that are not on sheets cleaned out, but the Not on Sheets browser filter alone is risky. A primary view can be off every sheet while its dependent views are placed, so deleting it deletes them. A section or callout can be off every sheet while its marker still shows on an issued plan. And some unplaced views, like coordination 3D views, are kept on purpose. Export a View List schedule from Revit, have Claude or ChatGPT clean it into one table, and have Copilot in Excel or Gemini in Google Sheets sort every view into keep, fix, review or delete candidate using rules you type. What actually gets deleted, and when, stays with the BIM coordinator.
BIM Coordinator · BIM · Autodesk Revit · Claude · ChatGPT · Microsoft Excel · Microsoft Copilot · Google Sheets · Gemini
Content updated · Tool links listed below; vendor features and pricing change, so confirm with the vendor
Short answer
Use Claude or ChatGPT, then Copilot in Excel or Gemini in Google Sheets: Claude or ChatGPT cleans a Revit View List export into one Views table; Copilot or Gemini tags every view KEEP (on a sheet, a primary view whose dependent is placed, or a protected prefix), FIX (off every sheet but its marker shows on one), REVIEW (scratch-view name) or CANDIDATE, and counts each tag so nothing placed or referenced gets deleted by accident. Before a model goes to the owner or a consultant, most teams want the views that are not on sheets cleaned out, but the Not on Sheets browser filter alone is risky. A primary view can be off every sheet while its dependent views are placed, so deleting it deletes them. A section or callout can be off every sheet while its marker still shows on an issued plan. And some unplaced views, like coordination 3D views, are kept on purpose. Export a View List schedule from Revit, have Claude or ChatGPT clean it into one table, and have Copilot in Excel or Gemini in Google Sheets sort every view into keep, fix, review or delete candidate using rules you type. What actually gets deleted, and when, stays with the BIM coordinator. A person still checks: every REVIEW and CANDIDATE row with the person who made the view, and every FIX row on the sheet that shows the marker, before anything is deleted; the delete itself is done in Revit by the BIM coordinator on a saved copy.
AI tie-in
Tool: Claude or ChatGPT, then Copilot in Excel or Gemini in Google Sheets
Claude or ChatGPT cleans a Revit View List export into one Views table; Copilot or Gemini tags every view KEEP (on a sheet, a primary view whose dependent is placed, or a protected prefix), FIX (off every sheet but its marker shows on one), REVIEW (scratch-view name) or CANDIDATE, and counts each tag so nothing placed or referenced gets deleted by accident.
Prompt 1
Read this Revit View List export [upload the text or CSV file] and build a Views table with one row per view: View Name, Family and Type, Sheet Number, Dependency, Referencing Sheet and View Template, copied exactly. Write NOT SHOWN instead of guessing. List every primary view and the dependents under it, and every view with no sheet number but a Referencing Sheet value. Do not rename, drop or recommend deleting any view.
Prompt 2
EXAMPLE DATA ONLY. Here is my Views tab [paste the example rows] and my Rules tab: protected prefixes [type yours] and scratch-view words [type yours]. Write Excel formulas (or a step-by-step Copilot plan) that tag each view in this order: KEEP if it has a sheet number; KEEP if it is a primary view with any dependent that has a sheet number; FIX if it has no sheet number but has a Referencing Sheet; KEEP if it starts with a protected prefix; REVIEW if its name contains a scratch word; otherwise CANDIDATE. Then count each tag. Use only my data.
Human check: Every REVIEW and CANDIDATE row with the person who made the view, and every FIX row on the sheet that shows the marker, before anything is deleted; the delete itself is done in Revit by the BIM coordinator on a saved copy.
The problem
Find Revit views that are not on sheets and sort safe deletes from keepers with AI. This is a common, time-consuming task for a bim coordinator.
What this workflow does
Before a model goes to the owner or a consultant, most teams want the views that are not on sheets cleaned out, but the Not on Sheets browser filter alone is risky. A primary view can be off every sheet while its dependent views are placed, so deleting it deletes them. A section or callout can be off every sheet while its marker still shows on an issued plan. And some unplaced views, like coordination 3D views, are kept on purpose. Export a View List schedule from Revit, have Claude or ChatGPT clean it into one table, and have Copilot in Excel or Gemini in Google Sheets sort every view into keep, fix, review or delete candidate using rules you type. What actually gets deleted, and when, stays with the BIM coordinator.
How it works: AI drafts or analyzes. A person operates the tools, checks the work, and takes action.
Your checkpoint: The check only sees the columns you export. It cannot tell whether an unplaced view is about to be placed, whether someone relies on it for printing or coordination, or whether a schedule or legend is in use, so confirm each REVIEW and CANDIDATE row with the person who made it. Deleting views is done in Revit, by the BIM coordinator, on a saved copy.
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
- In Revit, make a View List schedule with View Name, Family and Type, Sheet Number, Dependency, Referencing Sheet and View Template, then export it (File > Export > Reports > Schedule) and open the text file in Excel or Google Sheets. Delete the title row so the first row is the headers.
- Have Claude or ChatGPT clean it into one Views tab: one row per view with the six columns copied exactly. It writes NOT SHOWN instead of guessing and does not rename or drop any view.
- Type your own rules on a Rules tab: name prefixes you never delete (for example COORD) and words that usually mean scratch views (for example WORKING, Copy of, {3D, Old).
- Have Copilot in Excel or Gemini in Google Sheets tag every view: KEEP if it has a sheet number; KEEP if it is a primary view with any dependent that has a sheet number; FIX if it has no sheet number but a Referencing Sheet value (its marker shows on that sheet); KEEP if it starts with a protected prefix; REVIEW if its name contains a scratch word; otherwise CANDIDATE.
- Count each tag, send the REVIEW list to whoever owns those views, and decide each FIX row: place the view, or hide or remove the marker on purpose. Leave legends out of the delete list and check them in the project browser, since one legend can sit on many sheets.
- Delete only confirmed CANDIDATE and REVIEW views in Revit on a saved copy, rerun the View List export, and confirm the KEEP count did not change.
Try a small example
EXAMPLE DATA ONLY — fictional view names and sheet numbers for practice, not from a real project or a published trial. Paste the Sample input into Copilot or Gemini with the Starter prompt, then compare your results to Expected output.
Sample input
Views tab (example, saved as view_list.csv; a tab-delimited Revit export works too)
View Name,Type,Sheet Number,Dependency,Referencing Sheet,View Template
Level 1 - Framing Plan,Structural Plan,S-101,Independent,,S Framing
Level 2 - Framing Plan,Structural Plan,,Primary,,S Framing
Level 2 - Framing Plan - Area A,Structural Plan,S-102,Dependent on Level 2 - Framing Plan,,S Framing
Level 2 - Framing Plan - Area B,Structural Plan,S-103,Dependent on Level 2 - Framing Plan,,S Framing
Level 3 - Framing Plan,Structural Plan,S-104,Primary,,S Framing
Level 3 - Framing Plan - Area A,Structural Plan,,Dependent on Level 3 - Framing Plan,,S Framing
Section 4,Section,,Independent,S-301,
Section 7,Section,S-302,Independent,S-101,S Section
Copy of Level 1 - Framing Plan,Structural Plan,,Independent,,
Roof Framing - WORKING,Structural Plan,,Independent,,
COORD - Clash Review 3D,3D View,,Independent,,
{3D},3D View,,Independent,,
Foundation Plan - Old,Structural Plan,,Independent,,
Detail 3 - Typical Beam Bearing,Detail View,,Independent,,
Rules typed by you: protected prefix COORD; scratch words WORKING, Copy of, {3D, OldStarter prompt
EXAMPLE DATA ONLY (not from a real project). Views tab: 14 rows from a Revit View List export with View Name, Type, Sheet Number, Dependency, Referencing Sheet and View Template. Rules tab: protected prefix COORD; scratch words WORKING, Copy of, {3D, Old. Write Excel formulas (or a step-by-step Copilot plan) that tag each view KEEP (on a sheet, primary view with a placed dependent, or protected prefix), FIX (not on a sheet but marker shows on a sheet), REVIEW (scratch word) or CANDIDATE (everything else), and count each tag. Use only my data; do not delete or rename anything.Expected output
Expected results on this example (output of the script below on these rows)
Level 1 - Framing Plan KEEP on sheet S-101
Level 2 - Framing Plan KEEP primary view; dependents placed on S-102, S-103 (deleting it deletes them)
Level 2 - Framing Plan - Area A KEEP on sheet S-102
Level 2 - Framing Plan - Area B KEEP on sheet S-103
Level 3 - Framing Plan KEEP on sheet S-104
Level 3 - Framing Plan - Area A CANDIDATE not on a sheet, no placed dependents, no marker on a sheet; confirm before deleting
Section 4 FIX not on a sheet but its marker shows on S-301: place it or hide the marker, do not just delete
Section 7 KEEP on sheet S-302
Copy of Level 1 - Framing Plan REVIEW scratch-view name; confirm with the view's owner, then delete
Roof Framing - WORKING REVIEW scratch-view name; confirm with the view's owner, then delete
COORD - Clash Review 3D KEEP protected prefix | note: no view template
{3D} REVIEW scratch-view name; confirm with the view's owner, then delete
Foundation Plan - Old REVIEW scratch-view name; confirm with the view's owner, then delete
Detail 3 - Typical Beam Bearing CANDIDATE not on a sheet, no placed dependents, no marker on a sheet; confirm before deleting
{'KEEP': 7, 'CANDIDATE': 2, 'FIX': 1, 'REVIEW': 4} | total 14
Note what the plain Not on Sheets filter would have shown: 9 views, including Level 2 - Framing Plan (deleting it would also delete two placed dependent views) and Section 4 (deleting it would remove a marker from S-301).
Suggested Excel logic (write against your own sheet layout)
- Placed dependent: in a helper column on dependent rows, the parent name =TRIM(MID([@Dependency],14,200)); a primary view is KEEP when COUNTIFS(Views[Parent],[@[View Name]],Views[Sheet Number],"<>")>0.
- On a sheet: [@[Sheet Number]]<>"". Marker on a sheet: [@[Sheet Number]]="" with [@[Referencing Sheet]]<>"".
- Protected prefix: COUNTIF over the prefix list using LEFT([@[View Name]],LEN(prefix)). Scratch word: ISNUMBER(SEARCH(word,[@[View Name]])) for any word on the Rules tab.
- Tag in that order with IFS, then COUNTIF the tag column for the summary.
Same check as a short Python script (our own code; reads the rows above saved as view_list.csv)
import csv
from collections import Counter
PROTECT = ("COORD",) # name prefixes you never delete (typed by you)
REVIEW_WORDS = ("WORKING", "COPY OF", "{3D", "OLD") # words that usually mean scratch views (typed by you)
text = open("view_list.csv", encoding="utf-8-sig").read()
rows = list(csv.DictReader(text.splitlines(), delimiter=" " if " " in text.splitlines()[0] else ","))
placed_children = {}
for r in rows:
dep = r["Dependency"].strip()
if dep.lower().startswith("dependent on ") and r["Sheet Number"].strip():
placed_children.setdefault(dep[13:].strip(), []).append(r["Sheet Number"].strip())
count = Counter()
for r in rows:
name, sheet, ref = r["View Name"].strip(), r["Sheet Number"].strip(), r["Referencing Sheet"].strip()
up = name.upper()
if sheet:
tag = f"KEEP on sheet {sheet}"
elif name in placed_children:
tag = f"KEEP primary view; dependents placed on {', '.join(placed_children[name])} (deleting it deletes them)"
elif ref:
tag = f"FIX not on a sheet but its marker shows on {ref}: place it or hide the marker, do not just delete"
elif up.startswith(PROTECT):
tag = "KEEP protected prefix"
elif any(w in up for w in REVIEW_WORDS):
tag = "REVIEW scratch-view name; confirm with the view's owner, then delete"
else:
tag = "CANDIDATE not on a sheet, no placed dependents, no marker on a sheet; confirm before deleting"
if not sheet and not r["View Template"].strip() and tag.startswith("KEEP"):
tag += " | note: no view template"
count[tag.split()[0]] += 1
print(f"{name:34} {tag}")
print(dict(count), "| total", len(rows))
print("Flags only. Deleting views is done in Revit by the BIM coordinator on a saved copy.")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
- The check only sees the columns you export. It cannot tell whether an unplaced view is about to be placed, whether someone relies on it for printing or coordination, or whether a schedule or legend is in use, so confirm each REVIEW and CANDIDATE row with the person who made it. Deleting views is done in Revit, by the BIM coordinator, on a saved copy.
- 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?
Claude or ChatGPT, then Copilot in Excel or Gemini in Google Sheets: Claude or ChatGPT cleans a Revit View List export into one Views table; Copilot or Gemini tags every view KEEP (on a sheet, a primary view whose dependent is placed, or a protected prefix), FIX (off every sheet but its marker shows on one), REVIEW (scratch-view name) or CANDIDATE, and counts each tag so nothing placed or referenced gets deleted by accident. A person still checks: Every REVIEW and CANDIDATE row with the person who made the view, and every FIX row on the sheet that shows the marker, before anything is deleted; the delete itself is done in Revit by the BIM coordinator on a saved copy.
How do I how do I find which Revit views are not on sheets and which are safe to delete with AI before a model handoff??
In Revit, make a View List schedule with View Name, Family and Type, Sheet Number, Dependency, Referencing Sheet and View Template, then export it (File > Export > Reports > Schedule) and open the text file in Excel or Google Sheets. Delete the title row so the first row is the headers. Have Claude or ChatGPT clean it into one Views tab: one row per view with the six columns copied exactly. It writes NOT SHOWN instead of guessing and does not rename or drop any view. Type your own rules on a Rules tab: name prefixes you never delete (for example COORD) and words that usually mean scratch views (for example WORKING, Copy of, {3D, Old). 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, Claude, ChatGPT, Microsoft Excel, Microsoft Copilot, Google Sheets, Gemini. 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. The sample script below was run on the example rows shown.
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. The sample script below was run on the example rows shown.