Many automation runs encounter cases where a requested change cannot be applied to a specific element, in a specific document, for reasons such as the six categories below. The fix is an exception-first workflow: run exact checks, apply only safe edits, and collect blocked items into a single, actionable report that records identity, evidence, owner, and next action—then re-run only what’s unblocked.
Capture CAD automation exceptions before retrying the task
When syncing CAD/BIM models and drawings with spreadsheets, PDFs, or notes, do not chase every mismatch interactively. Instead:
• Normalize sources to your field map (names, units, allowed values).
• Locate targets by exact keys first and record identity as app + document + native ID (for example, Revit ElementId or DWG handle).
• Preflight each intended operation against six reasons automation stalls.
• Apply only edits that pass; everything else becomes an exception row with owner and next action.
This is a team procedure. Tools can assist, but routing, notes, and approvals are practices you enforce—not product guarantees. If you work with ArchiLabs Desktop alongside Revit or AutoCAD, you can attach real artifacts—screen recordings with spoken explanation, annotated screenshots, selected elements, PDFs, and spreadsheets—as the source evidence your team reviews. Integration availability depends on application versions, plans, accounts, and permissions.
Six common reasons AI CAD automation fails or stops
For each blocked change, store the attempted operation, exact identity, evidence, and the single decision needed to proceed. Avoid “nearest target” guesses, “newest timestamp wins,” creating missing objects, loosening tolerances, unlocking protections, or deleting types to clear errors.
• No match
• What it means: The source cannot be resolved to a unique existing element by exact keys.
• Capture: All keys provided by the source and the search scope. Note if the source key itself is absent.
• Next action: Provide the missing key or select the correct target explicitly.
• Duplicate
• What it means: More than one element matches the selector.
• Capture: All candidate native IDs with minimal context (e.g., level/host).
• Next action: Choose the intended element or fix the source to carry a unique key.
• Unit mismatch
• What it means: Values disagree on units or formats (mm vs in; ratio vs percent) or violate established field rules.
• Capture: Source value and unit, target schema expectations, and any conversion attempted.
• Next action: Confirm the conversion map for this field; do not relax tolerances ad hoc.
• Locked object
• What it means: The target cannot be edited due to current permissions or context (read‑only workset/file, linked element, or a guard). Note that “pinned” does not universally block parameter edits—record the actual error and permission state.
• Capture: Native ID, document, lock/ownership details, and the precise error.
• Next action: Route to the current owner or provide an authorized edit window.
• Source conflict
• What it means: Two inputs propose different values for the same target and field.
• Capture: Both sources, their values, and the field in conflict.
• Next action: Name the authoritative source for this field; do not infer authority from timestamps.
• Unsupported operation
• What it means: The requested change is not supported in context (for example, trying to change a read‑only/system or type-owned field when an instance edit was intended).
• Capture: The operation attempted and the native error or constraint.
• Next action: Specify a supported path (e.g., approved type-level change) and acknowledge scope impact before proceeding.
What to include in a CAD automation error report
Each row represents one blocked operation:
• Exception ID
• Target identity: app + document + native ID
• Source reference: file and location (sheet name and cell, CSV line, PDF page/comment, screenshot or recording timestamp)
• Operation: create, update, delete, rename, place, route, etc.
• Reason: one of the six above
• Evidence: minimal snippets or crops that make the failure obvious
• Decision needed: one concrete choice that unblocks the row
• Owner and next action: a single accountable person and what they will do
• Processing status: changed, unchanged, held (not attempted because a check failed), failed (an attempted operation errored), or uncertain (partial execution requiring inspection). Record reviewer acceptance separately.
Keep source evidence, owner decisions, and any dependent holds with the row across reruns.
Exception report example: six equipment description updates
This example is hypothetical.
Goal: Update the Description field for six equipment items from a spreadsheet EquipmentUpdates.xlsx (columns: NativeId, EquipmentTag, ProposedDescription).
Run outcome (three changed, three held):
• Changed — Revit | \Campus\MEP\PlantA.rvt | ElementId 512344
• Source: EquipmentUpdates.xlsx A12
• Operation: Update Description → “Primary chilled water pump, VFD included”
• Evidence: Exact match by ElementId; field is writable at instance level
• Owner/next: MEP lead to review in daily sweep
• Changed — Revit | \Campus\MEP\PlantA.rvt | ElementId 512367
• Source: EquipmentUpdates.xlsx A13
• Operation: Update Description → “Plate heat exchanger, N+1 manifold”
• Evidence: Exact match by ElementId; instance parameter editable
• Owner/next: Same owner to confirm the resulting value
• Changed — AutoCAD | \Campus\MEP\Details.dwg | Handle 5F2A
• Source: EquipmentUpdates.xlsx A14
• Operation: Update block attribute DESCRIPTION → “Condenser water pump (standby)”
• Evidence: Exact handle match; attribute tag present
• Owner/next: CAD manager to verify the attribute and its plotted display
• Held (Duplicate) — Revit | \Campus\MEP\PlantA.rvt | EquipmentTag “AHU‑03” → candidates [ElementId 513001, 513019]
• Source: EquipmentUpdates.xlsx A15
• Operation: Update Description → “Air handler with economizer”
• Evidence: Two elements share EquipmentTag
• Decision needed: Select intended ElementId or update source with the native ID
• Owner/next: Project engineer to choose target
• Held (No match — absent source key)
• Source: EquipmentUpdates.xlsx A16
• Operation: Update Description → “Panelboard PP‑2A (revised labeling)”
• Evidence: Row lacks NativeId; EquipmentTag column is blank; cannot locate a target by exact keys
• Decision needed: Provide NativeId or correct EquipmentTag
• Owner/next: Electrical lead to supply key
• Held (Unsupported operation) — Revit | \Campus\MEP\PlantA.rvt | ElementId 514220
• Source: EquipmentUpdates.xlsx A17
• Operation: Update Description → “Air handling unit with UV treatment”
• Evidence: Description is a type-owned parameter for family “AirHandler_TypeX”; the preflight identifies a type binding rather than the required writable instance field; type edit would affect 6 instances
• Decision needed: Confirm approved type strategy (create new type or accept broad change) and provide the target type
• Owner/next: BIM manager to confirm approach with mechanical discipline
Note what did not happen: no nearest-target pick, no creation of missing elements, no tolerance changes, no unlocking by the automation, and no deletion of types to force an edit. The duplicate is resolved only by a human choice or a corrected source key.
How to rerun a CAD automation task without repeating completed edits
A correct rerun re-reads current model values and the prior run’s results so successful edits are not re-applied. The sequence is:
• Pull current documents and re-index identities by exact keys.
• Skip rows already marked changed where target now equals the approved value.
• Re-test outstanding rows against the six checks with today’s state.
• Apply newly unblocked edits; carry forward still-blocked items with updated evidence.
This preserves determinism across runs without implying automatic journals, rollbacks, or unattended scheduling.
Where AI helps explain failures and prepare the next attempt
AI can speed the boring parts: parsing mixed inputs into a tidy field map, drafting exception language with precise evidence, and highlighting conflicts so owners decide faster. It can also propose supported alternatives when an operation is blocked (for example, noting a parameter is type-owned). It should not guess targets, crown a source authoritative by recency, relax project rules, or bypass protections.
For patterns to structure these runs inside Revit, see AI-Powered Revit Automation. If your team also wants to reduce friction in day-to-day model hygiene checks, Use AI to Find and Fix Revit Warnings Automatically shows how to combine automated passes with clear exception routing.
Make the exception report a required deliverable alongside every automation run. It tells the team exactly what changed, what’s pending, and who needs to decide what—so the next run is shorter, safer, and actually finishes.

Boost Revit productivity with AI-driven automation: generate models, check errors, streamline workflows, and save time across BIM projects.

Keep Revit models healthy on autopilot. Use AI to spot, prioritize, and fix warnings fast—saving time, errors, and rework.