A small pipe gives way to a large duct
Both reroutes clear. Two elbows on a 50 mm water pipe cost 0.5; on an 800 mm air duct they cost 6 and need an airflow and pressure re-check.
How the AI decides
A clash has many fixes that clear it and usually one a senior coordinator would pick. ClashFree gets there the same way they do: list what is possible, rule out what breaks a hard limit, weigh what each change costs on that system, and only then choose. The knowledge is data you can read and tune; the AI chooses and explains; Revit checks the result.
It reads both runs, the free space, the profile and the scored options, then picks one by id, or proposes its own with millimetres, degrees and a written reason. It never writes a coordinate.
Deterministic C# turns the choice into geometry: splits, offsets, drags, reroutes, 45° or 90° fittings, reconnected joints. The same input gives the same model, every time.
Inside one transaction group: the clash is gone, the clash test's clearance holds, joints are connected, nothing new clashes in the host or links. Then it rolls back and waits for you.
The pipeline
Five of them are deterministic. The AI does the two things data cannot: read what the tables do not know, and explain the choice in a coordinator's words.
Both runs through their fittings, every clash on them, free space, walls, precedents, access zones, the profile and the clash test.
Offsets each way at the smallest clearing and preferred distance, whole-run moves, drags, tee moves, shift and stretch and the router's best reroute per side.
Ceiling lines, structure, gravity falls, slab spans and links remove options. Each removed one keeps its reason.
Fittings, added length, distance, zone, walls, low points and precedents, at the system class's factors.
Picks by id (usually the best scored), or overrides a soft cost with a logged reason, citing the profile entries that decided it.
Applied, checked and rolled back. A failure sends the reason back; the next option is tried, up to three.
Preview it, keep it as one undo step, reject it, or ask for a change in plain words.
Change the inputs
A DN100 cold-water pipe crosses a beam. Four fixes clear it. Toggle what the model and the project profile say, and see which options survive the hard limits and which one scores best.
Lower is better. Base weights: fitting 300, added length 1 per mm, distance moved 0.25 per mm, new wall crossing 5000, precedent −800 within 50 mm of the neighbours' level.
Who gives way
Coordinators know a small pipe gives way to a big duct because rerouting the duct changes airflow and may need a recalculation, while the pipe is cheap to bend. ClashFree writes that knowledge down: every run resolves to a system class with a change cost, scaled by its size.
Size factor = size ÷ 200 mm, clamped to 0.5…3 (ClashFree base, ADR 0024).
Start values from general practice, shipped as start values and measured by the evaluation set. A project profile can override any member of any class, or add classes of its own (for example, promote sprinkler mains to hands off).
Score terms
Every option carries its score and the terms behind it, so "why not down?" always has an answer. Weights are the base profile's; a project or your preferences can change the soft ones. Class factors multiply the terms of the run being changed.
fittings× 2 on an air duct, × 2.5 on sprinkler, smoke and kitchen ducts, × 1.5 on tray, × 0.5 on conduit.
lengthA 45° offset of 300 mm adds 248 mm; the same offset at 90° adds 600 mm. A fix that shortens the run saves.
moveThe smallest distance that clears, at the clash test's clearance, wins over a generous one.
leave_zoneEach millimetre outside the trade's height zone on that level. Sideways inside the zone usually wins.
wallsA last resort, more on a fire-rated wall (damper or firestop). Crossings the run already makes are not new.
high_low_pointOn pressurised pipe it needs a vent or a drain; × 3 on kitchen exhaust (grease).
verbThe length of the run carried along, so a short local fix beats moving everything.
precedentWithin 50 mm of the level at which runs of the same system and size already pass the obstacle.
28 judgement calls
Each one is general practice, written as data or as a check, guarded by tests and never shaped around one model. The source says where the rule lives: the built-in base, your project profile, or the clash itself.
28 cases
Both reroutes clear. Two elbows on a 50 mm water pipe cost 0.5; on an 800 mm air duct they cost 6 and need an airflow and pressure re-check.
A tier list would always move the pipe. By cost, a 300 mm chilled-water main (1.5 × 1.5 = 2.25) outweighs a 200 mm air duct (2 × 1 = 2): the duct moves.
Sprinkler pipe is hydraulically calculated: its class costs 2.5 and its fittings 2.5×. Same size, the domestic pipe is the cheaper change.
A 900 mm tray (1 × 3) costs more to bend than a 250 mm duct (2 × 1.25): the duct moves, and its fix carries the pressure-loss note.
Sanitary, vent and storm lines are never moved: no option, no override. The other run gives way, or the clash is flagged to the drainage owner.
A line with a fall never moves up or down: vertical offsets and drags are refused, and a reroute holds its lanes level. Sideways is the only way out.
Found by system name, a smoke-extract duct costs 3 to change and its fittings 2.5×. Any fix on it carries the "rated: fire engineer's approval" note.
A low point collects grease. On kitchen exhaust the high/low-point term counts 3×, and a fix that adds one says so, citing NFPA 96.
A pressurised pipe that goes over an obstacle traps air; one that dips under traps water. Each new point costs 1000 and the bill names the vent or drain to add.
Conduit is the cheapest to move (0.5, fittings 0.5×), but cable must still be pulled: a fix lists the bends it adds against 360° between pull points.
Tray fittings cost 1.5× a pipe's, and every fix that bends a tray carries the cable bend-radius check for the electrical engineer.
A ceiling height per level or room is a hard entry (limits.down_max_mm). The drop that would break it is removed before scoring, and the AI's own parameters are checked against it too.
Height zones per trade and level are soft: every millimetre outside costs 1. That is why a sideways move inside the zone usually beats a drop out of it.
A structural or shear wall is hard, like a beam. A new crossing of any other wall costs 5000 with a wall_opening note; a fire-rated one adds a damper (duct) or firestop (pipe, tray, conduit).
No option cuts structure. When nothing else clears, the flag says beam_opening: "beam opening, structural approval" with the size needed, for a person to decide.
Vertical runs move east, west, north or south on the project axes, and every fix stays between the slabs: no new slab opening. A gravity stack is flagged.
Runs of the same system and size that already pass this obstacle, in this room or the same room on other levels, are evidence and a router target. An option at their level earns −800; never a rule.
The corridor around a run lists its neighbours and the access zones of valves, dampers, terminals and equipment. A fix that blocks one is a poor fix, and the AI is told why.
A run lying inside a wall along most of its length was usually dragged there. It is the first finding shown, and the drag that undoes it stretches the neighbours.
Your category in another trade's model only nominates B as a copy. With a twin in the host (same system, size, parallel, overlapping) it is flagged duplicate_b; without one, B is a real obstacle.
A drag that drops and climbs back away from the obstacle adds a low or high point nobody asked for. It scores low_high and reads as unfinished, so another option wins.
When a drag puts the run where an old jog was taking it anyway, the jog goes: one corner elbow or the run straight on. Fewer fittings, less pressure drop.
Grouping is a weighted cover: the run whose change costs least per clash it clears moves first. One 150 mm main across three 100 mm pipes moves once; three small pipes across a big duct move each.
When moving your run cannot clear the neighbouring clashes alone, the area fix lists each with its own move. All are verified together and kept or rolled back together.
Linked models and other trades' elements are obstacles, never targets. When the cheaper change is theirs, the clash goes to Coordination with the reason, for the owner.
A Navisworks hard test and a clearance test are different jobs. The clash's test sets the clearance every layer sizes the fix for, and verification holds the fix to it.
"Best" verifies options in score order. A failure sends its reason back and the next is tried, up to three, counted as one failed fix. Then a person is asked, with a limit code.
Every fix reports the other clashes on both runs as cleared or unchanged. Only the target and new clashes decide; an unchanged one is a warning with the reason, e.g. "the other element is the culprit there".
Hard edges
Some decisions are not the AI's to make. These are enforced by the validator and the executor, for the scored options and for the AI's own parameters alike.
override_reason, logged and shown to you.Try it on your model
Free 15-day beta. Revit 2023–2027. Nothing is committed until you keep it.