BetaThe ClashFree public beta is open. Free 15-day trial, Revit 2023–2027.Get your invite →
  1. ClashFree
  2. Blog
  3. Grouping
Root cause

One fix, many clashes: root-cause grouping of a clash report

Most clash reports describe far fewer problems than they list. ClashFree merges duplicates, sets aside the clashes that need no action (with the reason), and groups the rest by the run that causes them, choosing that culprit by what its change costs per clash it clears. One kept fix then clears the whole group, and the Cleared tab shows it.

A thousand lines, a few hundred problems

Run Structure against MEP and Architecture against MEP on a single floor of a hospital and the report easily runs past a thousand lines. Anyone who has worked through one knows the pattern: the same pipe appears in both tests, a hundred clashes sit within tolerance, a dozen are copies of your own duct in someone else's model, and one badly placed main accounts for forty lines on its own.

Working that list top to bottom is how coordinators lose a week. Working it by cause is how they get it done in a day. ClashFree does the sorting first, so the list you work on is a list of decisions.

Funnel from 1,284 raw clashes to 948 after duplicates, 671 needing action, 176 root-cause groups and 58 groups to fix for Plumbing 1 284 raw clashes 948 after duplicates 671 need action 176 groups 58 to fix 2 reports, one floor −336: same pair, two tests −277: ignored, with reason one culprit run each your trade: Plumbing
Illustrative import of two reports. Your own numbers show in Report details after each import, including what is new and what is gone on a re-import.

Step 1: match every clash to its elements

ClashFree imports Navisworks XML clash reports and BCF files, several at once, into one list. Each clash is matched to its two elements in your host model or its loaded links. When a report names a fitting or an accessory, ClashFree resolves it to the nearest straight of its run, because a fix moves runs, not elbows. Clashes whose elements cannot be found, or whose link is not loaded, stay visible with that reason under their title.

Step 2: merge duplicates, set aside what needs no action

The same pair of elements reported by two tests becomes one clash. Then a pre-pass sets aside the clashes that need no fix, each with its reason, into the Ignored tab:

  • approved or resolved in the report itself;
  • within tolerance;
  • a probable duplicate: B is your trade's kind of element in another trade's model, and a twin of it exists in your host model (same category, system, size, parallel and overlapping). Without a twin, B is a real obstacle and the clash stays.

Nothing is deleted. Every Ignored clash can be moved back, and your moves are kept with the report set, so they survive a reload and the next import.

Step 3: find the culprit by cost per clash cleared

What is left is grouped by root cause: the run that, if it moved, would clear the most clashes for the least disruption. ClashFree picks culprits with a weighted set cover. For every run that may move, it divides the run's disruption (its system class's change cost times its size factor, see why the pipe moves, not the duct) by the number of still-uncovered clashes it would clear. The lowest cost per clash goes first; its clashes are covered; repeat.

Two plans. A: a DN150 heating main crosses three DN100 pipes and moves once. B: three DN50 pipes cross a 300 mm duct and each pipe moves. A · ONE MAIN, THREE PIPES DN150 heating main main: 1.5 × 0.75 = 1.13 ÷ 3 = 0.38 / clash each DN100: 1 × 0.5 = 0.5 ÷ 1 = 0.50 / clash B · ONE DUCT, THREE PIPES SUPPLY DUCT 300 duct: 2 × 1.5 = 3 ÷ 3 = 1.00 / clash each DN50: 1 × 0.5 = 0.5 ÷ 1 = 0.50 / clash
The culprit is the cheapest change per clash it clears. In A the main moves once; in B each small pipe moves, because touching the duct costs more per clash than three cheap pipe moves.

Both answers match what a coordinator would do, and neither falls out of a give-way list. An earlier version of ClashFree used the plain cost of each run and always picked the small pipes, so in case A it asked for three fixes where one would do. Dividing by the clashes cleared fixed that. Runs that may not move (gravity drainage, hands-off classes, linked and other trades' runs) are never selected as culprits; ties are broken by size and a stable key, never by the order of the report.

Step 4: rank the groups, sort them by who decides

Groups get a priority and a G-id, and the first group is the one to fix first. Then the list is split the way coordination actually works:

  • To fix: the culprit is a run your trade may move. These go to the AI.
  • Coordination: nothing ClashFree may move; another trade or a person decides.
  • Ignored: the clashes set aside in step 2, with their reasons.
  • Cleared: clashes that no longer clash in the model.

An optional AI grouping review can read the rule-based groups and propose edits to them before you start; you accept or reject each edit.

Fix the run, not the segment

A group is a run with several clashes on it, so the fix is judged against the whole run. The context the AI receives covers both runs through their fittings, every other clash on them, and where B runs beside A. After a fix is verified, those other clashes come back as cleared or unchanged. An unchanged one is a warning, not a failure, and the proposal says why in one sentence, for example "the other element is the culprit there".

A run with four clashes; one drag clears three of them, the fourth is unchanged because its other element is the culprit target cleared · also cleared 2 unchanged: column, B is the culprit
One fix, judged against the whole run. The run note explains the clash it leaves.

When one move is not enough: area fixes

Sometimes the culprit cannot clear its neighbours alone: moving a pipe down clears the beam but lands it on a tray two metres along. For that case an area fix lists the other clashes, each with its own move, or none where this move must clear it too. All of them are applied and verified together, and kept or rolled back together. You review one proposal, not four that only work as a set.

What ClashFree does

Import, matching, duplicates, the Ignored pre-pass, culprit cover and ranking run on your PC without the AI. The AI is only asked about the groups you send to it, and each of its fixes is verified against the whole run.

Re-imports: what is new and what is gone

Coordination is a weekly cycle: models are updated, the clash tests are run again, a new report arrives. ClashFree treats a re-import as the next version of the same report set, not as a fresh start. Report details shows what is new since the last import and what is gone, clashes are matched to their elements again, and the moves you made travel with them: a clash you moved to Ignored or Coordination stays there.

Because groups are rebuilt from the current model, a re-import can regroup clashes when the model changed underneath them: a run that another trade moved may no longer be the cheapest culprit, and its group id may change. That is deliberate. The list should describe the model you have now, not the one you had last week.

Cleared, without asking

Fixes have side effects, mostly good ones. A drag on one pipe often clears clashes in another group, and another trade's work clears yours. After every import, when the pane opens and after each Keep or Reject, ClashFree re-tests the To fix clashes in Revit in the background: geometry only, no AI, and clashes whose elements have not changed since the last check are skipped. Whatever no longer clashes moves to Cleared, and is left out of every other count.

Opening a clash re-tests it first, too. If a fix kept elsewhere already cleared it, the page says so and offers Next; nothing is sent to the AI. Every Cleared row has Move back, for the rare case where you disagree.

Next: what happens after the groups are sent, in AI-native clash coordination, or import your own report in the free beta.

clash groupingNavisworks clash reportBCFroot causeclash detection

Public beta

Try it on your next clash report.

Sign up, confirm your e-mail and get your invite code and the installer straight away. Free 15-day trial, Revit 2023–2027.