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

Hard limits the AI cannot break

Some decisions are not up for scoring. Gravity drainage keeps its fall, a ceiling line is not crossed, a structural wall or a beam is not cut, a riser gets no new slab opening, and linked models and other trades' runs are never edited. In ClashFree these limits live in a validator, not in the prompt, so no model, setting or clever override can break them.

A prompt is a request. A validator is a gate.

The quickest way to give an AI coordination rules is to write them into its instructions: "never move gravity drainage", "stay above the ceiling". It works most of the time, which is exactly the problem. A rule in a prompt cannot be verified, behaves differently from one model to the next, cannot be changed per project without rewriting the prompt, and cannot be guarded by a test suite. Most of the time is not good enough when the exception is a soil pipe running uphill.

So ClashFree splits knowledge in two. Soft entries are costs the scorer weighs: an elbow, a millimetre of pipe, a step out of the trade's height zone. Hard entries are limits the validator enforces on every option, including any fix the AI proposes with its own parameters. The AI is told about the hard limits so it can explain them; it is never trusted to keep them.

Gate diagram: any proposal passes the validator before code builds it and Revit verifies it; a refused proposal goes back with the limit that refused it Proposalscored optionor AI override Validator gravity · fall linesceiling line · wallsbeams · slab spanlinks · hands off Code buildssplit, fit,reconnect Revit verifiesclash gone,no new clash YouKeep orReject refused, with the limit that refused it
Every path to your model passes the gate. A refused proposal goes back to the AI with the reason; a person sees it if nothing passes.

Gravity drainage keeps its fall

Sanitary, vent and storm lines run on a gradient that was designed end to end. Lift a section to clear a beam and you have built a trap. In ClashFree's base classes, gravity drainage is hands off: it is never chosen as the mover, never offered an option, and never moved by an area fix. The run that crosses it gives way, and if nothing on your side can, the clash is flagged for the drainage owner with the reason. A vertical gravity stack in a riser is flagged the same way.

Fall lines never go up or down

Condensate and steam lines are not hands off, but their slope is. For a class with the fall tag the validator refuses every vertical offset, every drag that moves the run up or down, and the up and down sides of a reroute, and it holds a reroute's lanes level. What remains is sideways, which keeps the gradient intact. A condensate line under a duct therefore either steps around it in plan or the duct gives way.

The ceiling line is not crossed

A project's coordination profile can set the ceiling line per level or room. It is hard: an option that would hang below it is removed before scoring, listed with "below the ceiling line 2700 (project)", and refused if the AI proposes it anyway. The trade's height zone is different. Leaving the zone is allowed but costs 1 point per millimetre outside, because a short step out of the zone is sometimes the best fix and a step through the ceiling never is.

Four small sections: a drain keeps its fall, a drop below the ceiling line is removed, a structural wall is never crossed, a riser fix stays inside the slab opening fall kept: no up, no down removed: below ceiling structuralpartition hard · 5,000 + note opening span stays inside the span Drain · Ceiling line · Walls · Riser
Four limits in four sketches. A partition is a cost, not a limit; a structural wall, like the beam above it, is never crossed or cut.

Walls: structural is hard, the rest has a price

A structural or shear wall is a hard limit, like a beam. A non-structural wall is a cost: a new crossing adds 5,000 points, enough to make it a last resort, and a wall_opening note for the architectural trade. When the wall is fire-rated, the note becomes a damper for a duct or a firestop for a pipe, conduit or tray, and the cost rises. Crossings the run already makes are not new and cost nothing.

ClashFree reads the wall's structural use and fire rating from Revit. When it cannot read them, it treats the wall as non-structural with unknown rating, and the note says which class it read, so the architectural trade can correct the model rather than argue with the fix.

A beam is never a fix

Coring a beam is a structural decision, not a coordination one. ClashFree never proposes it. When nothing else clears the clash, the flag says so in useful terms: a beam opening with the size the service would need, for the structural engineer to approve or refuse.

Risers stay inside their slab opening

A vertical run is fixed in its own frame: east, west, north and south on the project axes instead of up and down. Every fix on a riser must stay inside the slab opening at each storey it passes. A move that would need a new or larger opening is refused with the limit code slab, because cutting a floor plate is never a coordinator's call.

ClashFree edits only your trade's runs in the host model. Linked structural and architectural models, and other trades' elements, are obstacles. When the cheaper fix is on their side, the clash goes to the Coordination tab with the reason, not into your To fix list.

One special case: sometimes B is a copy. An HVAC duct in the plumbing model that has a twin in the host (same category, system, size, parallel and overlapping) is a probable duplicate, flagged at once with the limit code duplicate_b. Without a twin, B is real and gets the normal treatment.

Your project's own hands-off list

The base table only forbids what general practice forbids. A project can go further: mark sprinkler mains flag_owner where the fire engineer approves every change, or any other class. Those entries are hard for everyone on the project. User preferences, by design, can only change soft weights; nothing in a personal setting loosens a project limit.

What ClashFree does

Removed options stay in the list with the limit that removed them, so the AI and you can both answer "why not down?". The AI cites the limit that decided ("kept the 2700 ceiling line, project"); its own proposals pass the same validator, and Revit verification runs after that.

Guarded by tests, not by hope

Limits in code have one more advantage over limits in a prompt: they can be tested, and tested generically. ClashFree's test suite and its evaluation fixtures cover the general behaviour, never one project's clash: a small pipe against a large duct, a small duct against a large chilled-water main, a sprinkler against a duct, a condensate line against a duct with its fall kept, gravity drainage against anything, an unknown system falling back to the neutral class, and a project promoting a class to hands off. Changes to the scorer, the validator or the prompt are checked against them.

That is also why the base table is conservative. It forbids only what general practice forbids, and leaves the rest as costs a project can raise. A limit that is too strict produces flags where a coordinator would have found a fix; a limit that is missing produces fixes a coordinator would reject. The first is annoying and visible. The second is the one a tool must never do quietly.

When nothing passes, a flag is the answer

A tool that always returns a fix is a tool that sometimes returns a bad one. When no option survives the limits and verification, ClashFree flags the clash for a person with its reasons and a limit code: dead_end, non_parallel, crossed_wall, fixed_tee, trim_short, duplicate_b, slab or other. A flag only comes after the options were listed, so it is a finding, not a shrug.

Read how the remaining options are priced in Five valid fixes, one right answer, or see the limits at work on your model in the free beta.

AI safetygravity drainageceiling heightstructural wallsRevit links

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.