bimtex
What comes out

Plans are cuts

One rule generates most of the drawing conventions you would otherwise have to remember.

A floor plan is not a picture of a floor plan. It is a horizontal cut at 1.20 m above the finished floor, looking down.

Plan = keep every solid where  z0 < levelElev + 1.20 < z1

That is the whole rule. Drag the cut plane and watch what falls out of it.

Horizontal cut+1.20 m
floorstandard · 1.20 mceiling
Shop 45.4 m² 8.4 9.0 m 5.4 6.0 m

What the slider shows

The low window is a gap — the plane passes through glass, so no wall exists there. The high window and the clerestory are solid wall.

The standard cut. The low window is now dashed: its 0.40 m sill is below the plane and its 2.10 m head is above it. The high window at 1.55 m is solid.

The clerestory opens. The door is now solid wall above its 2.10 m head.

Nobody wrote these rules

The drafting conventions on that plan are consequences, not decisions:

  • A door draws as a gap because the plane passes through the opening.
  • A window above the cut draws dashed because the plane passes below it.
  • A lintel appears above a window because the wall piece over the head survives.
  • A spandrel appears under a sill for the same reason, one piece lower.

None of this is a special case in the drawing layer. Wall cutting is the one operation everything depends on: a wall run is a one-dimensional span, and each opening punches [sill, head] out of it, leaving up to four pieces — before, under-sill, over-head, after.

{"t":"wall","id":"s","level":"g","side":"south","type":"exterior","thickness":0.3}
{"t":"opening","id":"door","on":"s","kind":"door","at":"center","width":1}
{"t":"opening","id":"win","on":"s","kind":"window","at":"third","width":1.6,"sill":0.9,"head":2.3}
before-window · under-sill · over-head · between · after-door

Each is a real box with its own z0/z1, and each appears — or does not — in every view for the same reason.

The same rule, four more times

Once "keep what the plane crosses" exists, the other views are the same idea with a different plane or a different projection:

ViewRule
Plankeep solids straddling elev + 1.20, look down
Sectionkeep solids straddling a station on one axis, look along the cut
Elevationproject onto a vertical plane, drop depth, sort far-to-near
Axonometricrotate by azimuth, tilt, drop depth, painter-sort by farthest corner

Section stations are chosen, not centred. A cut that lands on a wall parallel to the view shows that wall's whole face as poché, which reads as a black slab. suggestSectionStation() picks the station furthest from any wall face.

Next