Friday, April 10, 2026

BIM is a 'Promise,' Not Just a 'Drawing' - A 20-Year Veteran’s Reality Check

 


1. The Number that Changed My Perspective: 0 vs 100

In a 2D workflow, coordination errors often hit 100% at the construction site. In a true BIM environment, that number can drop to near zero. As a 50-year-old professional with over 20 years in the trenches of construction, I’ve realized that the frustration many architects feel toward BIM isn't about the software—it’s about the shift in responsibility.

2. "Why do I have to define components first?"

I recently read a comment that caught my eye: "Architects hate BIM because it forces them to define specific components before they can even play with the volume." The argument was that we need tools that let us design freely first and attach data later.

Honestly? As someone who has spent decades watching how buildings actually get built, that sentence made me incredibly uneasy.

3. My Journey from "Field Guy" to BIM Coordinator

I’ll admit it: I used to think BIM was just "Revit," a complicated 3D tool that slowed me down. But after preparing for my BIM CM Coordinator certification and fighting through the learning curve in my 50s, I saw the truth. I was struggling not because the tool was bad, but because my mindset was still stuck in "lines and faces" rather than "living data."


4. 3 Reasons Why "Data First" is the Only Way Forward

  • Step 1: Focus on the 'I' (Information), not just the 'M' (Modeling) BIM isn't a 3D sketchbook. It’s a system where every wall and column carries "life" (data). We define them early because they dictate the cost, schedule, and, ultimately, the safety of the human beings on-site.

  • Step 2: Avoid the "Attach Data Later" Trap Designing a volume and "attaching data later" is just a fancy way of saying "someone else will have to fix my mess on-site." This leads to the very double-work we are trying to escape. Front-loading the effort is a promise to the rest of the team that your design is buildable.

  • Step 3: Shift from Design to 'Digital Construction' Digital transformation isn't about using a fancy hammer; it’s about speaking a universal language. If the tool feels like it’s limiting your creativity, ask yourself: "Is my design actually grounded in data, or is it just a pretty picture that can't be built?"


5. Start Your Transformation Today

Digital transformation is a change in attitude, not just technology. If a "field-hardened" veteran like me can embrace this shift, so can you.

Don't wait for the 'perfect' tool. Open your current project right now and ensure just one component is fully defined with accurate data (material, cost, or thermal rating). That single step is the difference between being a "drafter" and a "digital builder."

Is BIM making your life harder or easier? Let’s discuss in the comments. I’d love to hear from both the new generation and my fellow veterans.

#BIM #ConstructionTech #DigitalTransformation #Revit #AECIndustry #ProjectManagement #BIMCoordinator #BuildingInformationModeling

Monday, April 6, 2026

Navisworks Clash Detective: The Complete Field Guide

Navisworks Clash Detective: The Complete Field Guide to BIM Clash Detection

BIM Workflow · Navisworks · Clash Detection

Navisworks Clash Detective:
The Complete Field Guide

From setting up targeted clash tests with Search Sets to grouping results, assigning clashes, and exporting reports the design team can actually act on.

K
Kai Lee
Architect · BIM Specialist · A7 Studio
April 2026 · 12 min read

Clash Detective is where BIM coordination either works or falls apart. Run it wrong and you get thousands of irrelevant results that nobody acts on. Run it right — with targeted Search Sets, clear tolerances, and structured output — and you get a list of real problems with real owners.

⚙️
Clash Test
A defined check between two sets of elements — discipline A vs discipline B
🎯
Search Set Input
Targeted element groups replace "Entire File" — eliminates noise
📊
Results Management
Group, assign, status-track, and export clashes for resolution
📤
Report Export
HTML or XML output — shareable with teams who don't have Navisworks

PART 01 Clash Types — What You're Actually Detecting

Before setting up any test, you need to choose the right clash type. The wrong type produces either too many results or misses what matters.

TypeWhat it detectsToleranceBest used for
Hard Physical intersection — elements are literally overlapping in 3D space 0mm Structural vs MEP, pipe vs slab penetrations
Hard (Conservative) Intersection based on bounding box — slightly looser than Hard 0mm Quick first-pass check, complex geometry
Clearance Elements are within a defined distance of each other — not touching but too close 50–200mm Maintenance access, insulation clearance, fire rating gaps
Duplicate Identical elements occupying the same space — usually a modelling error 0mm QA checks, model cleanup before coordination

💡 Field recommendation: Always run Hard clashes first — these are the non-negotiables that must be resolved before construction. Run Clearance checks only after Hard clashes are resolved, using discipline-specific tolerances (MEP maintenance access typically needs 600mm minimum clearance).

PART 02 Setting Up a Clash Test — Step by Step

The difference between a useful clash test and a noise-generating one is almost entirely in how you define the input sets. Entire File vs Entire File on a large federated model can produce 50,000+ results. Search Set vs Search Set on the same model produces 200 results — all relevant.

1
Open Clash Detective

Go to Home tab → Tools panel → Clash Detective. The Clash Detective panel opens — keep it docked for the session.

Home → Tools → Clash Detective
2
Add a New Test

Click Add Test. A new test row appears with a default name. Rename it immediately using a consistent convention — e.g. STR vs MEP-HVAC · L3 · Hard. Good names save enormous confusion when you have 20+ tests running.

3
Set Selection A — First Discipline

In the test configuration, find Selection A. Change the dropdown from Entire File to Sets. Your saved Search Sets appear in the list. Select the appropriate set — e.g. STR - Level 3 - All Structural.

Selection A dropdown → Sets → choose Search Set
4
Set Selection B — Second Discipline

Repeat for Selection B. Select the opposing discipline set — e.g. MEP - HVAC - All Ductwork. The two sets must not overlap — if the same element appears in both sets, it will always clash with itself.

Selection B dropdown → Sets → choose Search Set
5
Set Clash Type and Tolerance

Select the Type (Hard, Clearance, Duplicate). For Clearance, set the Tolerance value in mm. For Hard clashes, leave tolerance at 0mm — or set a small positive value (e.g. 5mm) to filter out negligible model misalignments.

6
Run the Test

Click Run Test (or Run All to execute all configured tests at once). Navisworks processes the geometry intersection and populates the Results tab. Large models may take 30–120 seconds per test.

Clash Detective → Run Test / Run All

⚠️ Self-clash trap: If a Search Set contains elements from both disciplines being tested, those elements will clash against themselves and flood your results with false positives. Always verify your Search Sets don't overlap before running a test.

PART 03 Recommended Test Configuration Matrix

Here's the test matrix I use as a starting point on multi-discipline projects. Adapt the Search Set names to your project's naming convention.

Clash Test Matrix Standard BIM Coordination Setup
// ── HARD CLASH TESTS (Priority 1) ────────────────────── "STR vs MEP-HVAC · All Levels · Hard" A: STR - All - Structural Model B: MEP - HVAC - All Ductwork Type: Hard Tolerance: 0mm "STR vs MEP-PIPE · All Levels · Hard" A: STR - All - Structural Model B: MEP - PIPE - All Piping Type: Hard Tolerance: 0mm "STR vs MEP-ELEC · All Levels · Hard" A: STR - All - Structural Model B: MEP - ELEC - Cable Trays Type: Hard Tolerance: 0mm "ARCH vs MEP · All Levels · Hard" A: ARCH - All - Architecture Model B: MEP - All - MEP Combined Type: Hard Tolerance: 0mm // ── CLEARANCE TESTS (Priority 2) ─────────────────────── "MEP-HVAC vs STR · Clearance 50mm" A: MEP - HVAC - All Ductwork B: STR - All - Structural Model Type: Clearance Tolerance: 50mm "MEP-PIPE vs ARCH · Maintenance 600mm" A: MEP - PIPE - Over 150mm Diameter B: ARCH - Core - Walls and Partitions Type: Clearance Tolerance: 600mm // ── QA / DUPLICATE CHECKS (Priority 3) ───────────────── "STR - Duplicate Element Check" A: STR - All - Structural Model B: STR - All - Structural Model Type: Duplicate Tolerance: 0mm

PART 04 Managing Clash Results

Raw clash results are just a number. What matters is turning that number into an actionable list — grouped, assigned, and tracked through to resolution.

Clash Status — What Each Means

🔴
New
Just detected — not yet reviewed by anyone
🟡
Active
Reviewed and confirmed as a real issue — needs resolution
🟢
Reviewed
Under review — assigned to a responsible party
Approved
Accepted as-is — documented reason required
🔵
Resolved
Fixed in the model — verified in next run
1
Review Results in the Results Tab

After running, click the Results tab in Clash Detective. Each row is one clash instance. Click any row — Navisworks zooms to that clash in the viewport and highlights both conflicting elements.

2
Group Related Clashes

Select multiple clash rows (Ctrl+click) → right-click → Group. Give the group a meaningful name: e.g. Duct run D-03 vs Beam Grid B/3-4. Grouping consolidates related issues and makes the report readable.

Select rows → right-click → Group → name the group
3
Assign and Add Comments

Select a clash or group → in the right panel, set Assigned To (discipline responsible) and add a Comment describing the issue and required action. This information is exported with the report.

4
Update Status

Change the clash status as the resolution progresses: New → Active → Reviewed → Resolved. After the model is updated, re-run the test — resolved clashes should disappear from the New/Active count.

🎯 Coordination meeting workflow: Before each coordination meeting, run all tests → filter results to show only New and Active clashes → group related issues → assign to responsible disciplines. The meeting then focuses on resolution decisions, not on sorting through raw data.

PART 05 Exporting Clash Reports

Clash reports let you share findings with team members who don't have Navisworks — architects, engineers, or clients who need to understand what needs to be fixed.

1
Open the Report Tab

In Clash Detective, click the Report tab (next to Results). This is where you configure what gets included in the export.

2
Select Report Contents

Check the fields to include: Clash Name, Status, Description, Assigned To, Comments, Element IDs, Viewpoint snapshot. Viewpoint snapshots (images) are essential — they show exactly where the clash is without needing Navisworks.

3
Choose Format and Export

Select format — HTML for human-readable sharing, XML for integration with other BIM tools or issue trackers. Click Write Report and choose a save location.

Report tab → Write Report → HTML or XML

💡 Naming the report file: Include the test name, date, and status filter in the filename.
ClashReport_STR-vs-MEP_2026-04-06_ActiveOnly.html
This makes it immediately clear what the report covers and when it was generated — critical when managing multiple revision cycles.

PART 06 Real-World Use Cases

🏗️
Slab Penetration Checks

Run MEP vs Structural Slab hard clash tests before structural shop drawings are issued. Catch missing sleeve locations before concrete is poured — not after.

🔩
Ceiling Space Coordination

Use clearance tests to verify ductwork, piping, and cable trays all fit within the ceiling plenum with required maintenance access — before suspended ceiling heights are fixed.

📋
Model QA Before Submission

Run Duplicate checks on each discipline model before it's appended to the federated model. Eliminate internal model errors before they become coordination clashes.

🔄
Progress Tracking

Re-run the same tests after each model update. Track the New / Active / Resolved counts over time — a falling Active count means coordination is working.

The goal isn't zero clashes in Navisworks.
It's zero surprises on the construction site.

PART 07 Clash Detective + Search Sets — The Full Workflow

Putting it all together — here's the complete coordination cycle that connects the Search Set XML workflow from the previous post directly into Clash Detective:

1
Import your standard Search Set XML

Load the team's master SearchSets_ProjectName_v1.xml into the Sets window. Everyone on the team starts from the same filter definitions.

2
Configure clash tests using those sets

Build your test matrix in Clash Detective using the imported Search Sets as inputs. Save the NWF file — the test configuration is saved with it.

3
Run all tests before each coordination meeting

Click Run All. Review new results, group related clashes, assign to responsible disciplines, add comments.

4
Export and distribute the report

Export as HTML with viewpoint snapshots. Share with all disciplines before the meeting — they can review clashes assigned to them in advance.

5
After model updates — re-run and track

When disciplines update their models, re-run the full test suite. Verified resolved clashes drop off the Active list. New issues surface automatically.

— ● —

🎯 Key Takeaways

Clash Detective is only as good as its inputs. Search Sets are the foundation — targeted inputs produce targeted results. Entire File vs Entire File produces noise.

Set up your test matrix once at the start of the project. Run it consistently before every coordination meeting. Group results, assign them, track status through to resolution. The clash count going down over time is your coordination health indicator.

This completes the three-part Navisworks coordination series: Selection Sets → Search Sets + XML → Clash Detective. In the next post, I'll cover Viewpoints and Saved Views — how to build a navigation system that makes any federated model easy to review, even for team members who didn't build it.

#Navisworks #ClashDetective #BIMCoordination #ClashDetection #SearchSets #BIMWorkflow #AEC #BIMTips #Autodesk #ConstructionTech

Navisworks Search Sets: Create, Export & Share as .xml

Navisworks Search Sets: Create, Export & Share as XML — Complete Guide

BIM Workflow · Navisworks · XML Export

Navisworks Search Sets:
Create, Export & Share
as .xml

Build dynamic Search Sets, export them as portable .xml files, and import them into any project — the right way to standardize coordination filters across your team.

K
Kai Lee
Architect · BIM Specialist · A7 Studio
April 2026 · 12 min read

Creating a Search Set inside Navisworks is just the first step. The real power comes when you can export that set as an .xml file, share it with your team, and import it into any project — so everyone runs the same filters on the same model, every time.

🔍
Search Set
Property-based filter saved inside Navisworks — dynamic, always current
📄
.xml Export
Portable file containing all your Search Set conditions — shareable and version-controllable
🔁
Import / Reuse
Load the .xml into any project — instant team-wide standardization

PART 01 Why Export Search Sets as XML?

Navisworks saves Selection Sets and Search Sets inside the .nwd or .nwf file. That works fine for single-project use — but it creates a problem at the team level.

If each coordinator builds their own sets from scratch, you end up with inconsistent filter conditions across the team. One person's "Level 3 MEP" might catch different elements than another person's "Level 3 MEP" depending on how they set up the conditions. Clash test results become incomparable.

💡 The XML advantage: Exporting Search Sets as .xml gives you a plain-text, version-controllable, shareable file that contains the exact filter conditions. Drop it in a shared drive or Git repo. Everyone imports the same file. Everyone runs the same filters. Coordination results are consistent and comparable.

👥
Team Standardization

One coordinator builds and validates the sets. The rest of the team imports the XML — no re-building, no inconsistency.

🔄
Project Templates

Maintain a master XML per project type (residential, commercial, industrial). Start every new project from the right template.

📦
Version Control

XML is plain text — commit it to Git, track changes, roll back if conditions need to change. Treat it like code.

🔍
Auditable Filters

Anyone can open the XML and see exactly what conditions are being applied. No black boxes, no guesswork.

PART 02 Creating a Search Set — Step by Step

Before you can export, you need a Search Set. Here's the full workflow from scratch.

1
Open Find Items

Go to Home tab → Select & Search → Find Items. The Find Items dialog opens — this is where you define the filter logic for your Search Set.

Home → Select & Search → Find Items
2
Set Search Scope

At the top, set Search In to the appropriate scope — All for whole-model, or select a specific appended file to scope to one discipline. This scope setting is also saved in the XML.

3
Add Conditions

Click + to add condition rows. Each row has: Category (e.g. Item, Element) → Property (e.g. Category, Level) → Condition operatorValue. Chain multiple conditions with AND / OR logic.

4
Run and Verify

Click Find All. Inspect the highlighted elements in the viewport. Verify the result matches your intent before saving — this is the condition set that will be exported to XML.

Find Items → Find All
5
Save as Search Set

Click Save Search. The set appears in your Sets window with a magnifying glass icon. Rename it immediately using your team's naming convention — e.g. MEP - HVAC - All Levels.

Find Items → Save Search → rename in Sets window

Condition Operators Reference

Operator Matches when… Best used for
= Value is exactly equal Known exact category names, specific floor levels
!= Value does not equal Excluding a specific discipline or type
contains Value string contains the search term Material names, type names with suffixes/variants
does not contain Value string does not contain the term Filtering out a sub-group within a category
starts with Value begins with the search term Prefixed element IDs, structured type names
is defined Property exists on the element Finding elements that have a specific parameter
is not defined Property does not exist on the element QA checks — finding elements missing required data

💡 Always prefer contains over = for material and type conditions. Model authors frequently append version numbers, regional codes, or suffixes to type names. contains "Concrete" catches every variant. = "Concrete" catches only exact matches.

PART 03 Exporting Search Sets as .xml

Once your Search Sets are built and verified, exporting them takes about 10 seconds.

1
Open the Sets Window

If not already open: Home → Select & Search → Sets. Your saved Search Sets and folders are listed here.

Home → Select & Search → Sets
2
Select What to Export

Click a single Search Set to export just that set. Or click a folder to export all sets inside it. You can Ctrl+click to select multiple individual sets across folders.

3
Export via Right-Click

Right-click the selected item(s) → Export. A Save dialog appears. Choose your destination folder and give the file a clear name — e.g. SearchSets_MEP_v1.xml.

Right-click → Export → Save as .xml
4
Verify the Output

Open the exported .xml in any text editor (Notepad, VS Code). You should see your set names, conditions, and operators written in plain XML. If it's readable and matches your conditions — you're done.

📁 File naming recommendation: Include the discipline, scope, and version in the filename.
SearchSets_STR_AllLevels_v2.xml
SearchSets_MEP_HVAC_v1.xml
SearchSets_ProjectTemplate_2026.xml

PART 04 Understanding the XML Structure

The exported XML is human-readable. Understanding its structure helps you edit conditions directly in a text editor — faster than clicking through the UI for bulk changes.

XML ELEMENT REFERENCE — Navisworks Search Set
<exchange>
Root element — wraps the entire export file
always present
<selectionsets>
Container for all sets and folders in the export
one per file
<searchset name="...">
A single Search Set — name attribute is the display name in Navisworks
name="MEP - HVAC"
<findspec>
Contains the search scope and all condition logic for one Search Set
one per searchset
<conditions>
Wrapper for all condition rows — maps to the rows you see in Find Items
AND / OR logic here
<condition>
A single filter row — contains category, property, operator, and value
one per condition row
test="..."
The comparison operator for this condition
"equals" / "contains"

Full XML Example — MEP Ductwork, All Levels

XML SearchSets_MEP_HVAC_v1.xml
<?xml version="1.0" encoding="utf-8"?> <exchange> <selectionsets> <!-- Search Set 1: All Ductwork --> <searchset name="MEP - HVAC - All Ductwork"> <findspec disjoint="0"> <conditions> <condition test="equals"> <category>Item</category> <property>Category</property> <value>Ducts</value> </condition> </conditions> </findspec> </searchset> <!-- Search Set 2: Piping over 150mm --> <searchset name="MEP - PIPE - Over 150mm Diameter"> <findspec disjoint="0"> <conditions> <!-- Condition 1: must be pipe category --> <condition test="equals"> <category>Item</category> <property>Category</property> <value>Pipes</value> </condition> <!-- Condition 2: diameter >= 150mm --> <condition test="greater_or_equal"> <category>Mechanical</category> <property>Diameter</property> <value>150</value> </condition> </conditions> </findspec> </searchset> <!-- Search Set 3: Level 3 Structure --> <searchset name="STR - Level 3 - All Structural"> <findspec disjoint="0"> <conditions> <condition test="contains"> <category>Item</category> <property>Category</property> <value>Structural</value> </condition> <condition test="equals"> <category>Element</category> <property>Level</property> <value>Level 3</value> </condition> </conditions> </findspec> </searchset> </selectionsets> </exchange>

📝 Key attribute — disjoint="0": This controls the AND/OR logic between conditions. disjoint="0" means AND (all conditions must match). disjoint="1" means OR (any condition can match). You can edit this directly in the XML without reopening Navisworks.

PART 05 Importing XML into Navisworks

Importing is even simpler than exporting. Any team member can load your XML file and instantly have the same Search Sets — with the exact same conditions — without building anything from scratch.

1
Open the Sets Window

Home → Select & Search → Sets. Make sure you can see the Sets panel.

2
Right-Click → Import

Right-click any empty area in the Sets window, or right-click an existing folder if you want the imported sets to land inside it. Select Import from the context menu.

Sets window → right-click → Import
3
Select the XML File

Navigate to the shared .xml file and open it. The Search Sets from the XML appear immediately in your Sets window — ready to use.

4
Verify the Import

Double-click one of the imported Search Sets. Elements should be selected in the viewport. If the results look correct, the import was successful. If nothing is selected, the model's property naming may differ — check the condition values against actual element properties.

⚠️ Property name sensitivity: Search Set conditions match against the exact property names and values in the model. If your XML says Category = "Ducts" but the model has Category = "Duct" (no "s"), the set returns zero results. Always verify against the actual Properties panel for one representative element before finalizing your XML conditions.

PART 06 Editing XML Directly — Faster Than the UI

Once you understand the XML structure, it's often faster to edit conditions directly in a text editor than to click through the Find Items dialog — especially when you need to duplicate a set across multiple levels or disciplines.

Example: Duplicate a Set Across All Levels

XML SearchSets_STR_ByLevel.xml — edit in text editor
<!-- Copy-paste this block and change only the name + value --> <searchset name="STR - Level 1 - All Structural"> <findspec disjoint="0"> <conditions> <condition test="contains"> <category>Item</category> <property>Category</property> <value>Structural</value> </condition> <condition test="equals"> <category>Element</category> <property>Level</property> <value>Level 1</value> <!-- change to Level 2, Level 3... --> </condition> </conditions> </findspec> </searchset> <!-- Paste again for Level 2, Level 3, Level 4... --> <!-- Only 2 things change per copy: name attribute + Level value -->

Building 10 level-based Search Sets in the UI takes 10 minutes of clicking. Copying and editing that XML block 10 times in VS Code takes about 2 minutes. For large projects with many floors, XML editing is dramatically more efficient.

Build once in the UI to get the XML structure right.
Scale in the text editor.

PART 07 Team Workflow — Recommended Setup

Here's the workflow I use on multi-discipline projects to keep Search Sets consistent across the team:

1
BIM Lead builds the master XML

One person (BIM lead or coordination manager) builds and validates all Search Sets in Navisworks, then exports the full set library as a single XML file.

2
Store in shared location

Place the XML in a shared drive or project folder. Name it with version: SearchSets_ProjectName_v1.xml. This is the team's source of truth for filter conditions.

3
All coordinators import the XML

Each team member imports the XML into their Navisworks session at the start of the project. Everyone runs the same filters from the same conditions.

4
Version and update as needed

When conditions need to change (new floor added, scope change), the BIM lead updates the XML and increments the version. Team members re-import. Changes are visible as a text diff — exactly what changed, and when.

💡 Git tip: If your team uses Git for any project files, add the Search Set XML to the repo. git diff on an XML file shows exactly which conditions changed between versions — far more useful than "I updated the sets" in a meeting chat.

— ● —

🎯 Key Takeaways

Search Sets are dynamic filters — they run against the current model state every time. Exporting them as .xml makes them portable, shareable, and version-controllable — treating your coordination filters like the project asset they actually are.

Build your master XML once. Scale it in a text editor for multi-level or multi-discipline variants. Store it centrally. Import it everywhere. When the model changes, update the XML and re-import — consistency maintained with minimal overhead.

In the next post, I'll cover Clash Detective test configuration — how to wire your Search Sets directly into clash tests and export results that are actually actionable for the design team.

#Navisworks #SearchSets #XMLExport #BIMCoordination #BIMWorkflow #ClashDetection #AEC #BIMTips #Autodesk #ConstructionTech