Step by step
- Confirm the beam is structure. Beams usually live in the linked structural model: an obstacle you must not edit, not a target.
- Measure the beam and the void. Find the beam's underside and top, the slab above, the ceiling line below and any services already passing the same beam.
- Look at how the neighbours pass it. Runs of the same system and size next to yours that already pass the beam show the height the project uses; matching it keeps the services orderly.
- Choose the direction. Under the beam if the void below allows it with clearance, over it only where the slab leaves room, sideways if the beam ends or a gap is near.
- Apply the offset. Split the pipe either side of the beam, drop or raise the middle segment by the needed distance and connect it with two fittings at 45° (or 90° where the run is too short).
- Check the result. Re-test against the beam and everything around it. A pressurised pipe that dips under a beam forms a new low point that needs a drain; one that rises over it a high point that needs an air vent.
How ClashFree handles it
This is the case on ClashFree's home page: a pipe through a concrete beam, offset below it with two 45° fittings. The AI proposes offset_vertical with a direction, a distance in millimetres and an angle; code splits the pipe, places the fittings (trying other angles when one does not fit) and reconnects it.
The linked structure is a read-only obstacle. The project's ceiling line is a hard limit: a drop past it is refused, the AI's own proposals included. A vertical move of a pressurised pipe carries a cost in the score and a note for the vent or drain it needs, so a sideways move with room can rank first.
Neighbouring runs of the same system and size that pass the same beam without a clash are read as precedents: an option at their height scores a bonus, as evidence, never as a rule.
When no option clears, ClashFree flags the clash for a person and may suggest a beam opening of the size needed, with structural approval. It never edits the beam.
Every fix is a preview inside one Revit transaction group: ClashFree applies it, checks that the clash is gone and that no new clash appeared against the host model and the linked models, and shows you the result. Keep commits it as one undo step; Reject restores the model exactly. Linked models and other trades' elements are never edited.
help/img/pipe-beam-preview.png