Skip to main content

slab — the floor build-up

level <name> <z> [h:ceiling height] [slab:floor build-up] [underground:1]

slab: is an attribute of a level. It gives the thickness of that storey's floor build-up in mm — the structural slab, the void and the finishes that together fill the distance from the ceiling below to this storey's FL.

There is no line that places a floor. Writing slab: has already declared the floor, and the surface is derived from it. It is the same posture that has a wall appear out of a boundary and a column appear out of a grid intersection. There is no operation for laying a floor, none for hanging a ceiling, none for putting on a roof.

When a floor is generated

A floor is laid over every space on that level satisfying all of the following.

  • it has a region
  • it is not type:voidthe absence of a floor is what a void is
  • it is not type:exterior — the outside is ground
  • its level carries slab:

The floor's z range runs from FL − slab to FL. Its outline is the derived convex piece, so a floor cut by a drawn line comes out cut.

koyu 1.0
name 床組みの例
unit mm
grid X 0 6000
grid Y 0 4000
level L1 0 h:2700 slab:200
level L2 3200 h:2700 slab:250
level R 6400 slab:250

space /L1/a room X1..X2 Y1..Y2 name:1階
space /L2/a room X1..X2 Y1..Y2 name:2階

Those two rooms generate these surfaces.

SurfaceSpacez range
floor/L1/a−200 … 0
ceiling/L1/a2670 … 2700
floor/L2/a2950 … 3200
ceiling/L2/a5870 … 5900
roof/L2/a6150 … 6400

/L1/a has no roof because /L2/a overlaps it. A roof is laid only over the part not covered by a space above.

Without slab, not one floor appears

No default is fabricated. Where a needed value is not written, the element is not built rather than given an invented default. So a level with no slab: generates no floors at all, and that gets said.

koyu 1.0
unit mm
grid X 0 6000
grid Y 0 4000
level L1 0 h:2700 slab:200
level L2 3200 h:2700
level R 6400 slab:250
space /L1/a room X1..X2 Y1..Y2 name:1階
space /L2/a room X1..X2 Y1..Y2 name:2階
⚠ Level L2 has no slab:, so not one floor is generated on this storey

The form is still determinate, so this is a warning (SUF03). All that disappears above is the one floor of /L2/a; its ceiling and its roof are generated exactly as before.

The height invariant reads the slab of the storey above

For each space, ceiling height + the slab of the level above ≤ storey height is checked, where storey height is the difference to the next level's z. Exceed it and the space collides into the floor above — an error.

koyu 1.0
unit mm
grid X 0 6000
grid Y 0 4000
level L1 0 h:3100 slab:200
level L2 3200 h:2700 slab:250
level R 6400 slab:250
space /L1/a room X1..X2 Y1..Y2 name:1階
space /L2/a room X1..X2 Y1..Y2 name:2階
✖ /L1/a collides into the floor above: ceiling height 3100 + L2's slab 250 = 3350 > storey height 3200

A storey's own slab: has no bearing on its own ceiling height. The one that bears is the slab above — it is the build-up sitting on top of the ceiling below. koyu levels shows the stack as a section in text.

R	z:6400	slab:250
L2	z:3200	h:2700	slab:250
  ↑ storey height 3200 = ceiling 2700 + slab 250 + 250 left over
L1	z:0	h:2700	slab:200
  ↑ storey height 3200 = ceiling 2700 + slab 250 + 250 left over

The leftover is the plenum above the ceiling. It never goes negative — the collision error stands before it could.

Roof thickness comes from slab too

The apex and the thickness of a roof switch formula on whether there is a level above.

ApexThickness
a level abovethat level's zthat level's slab, or 200mm
no level aboveFL + ceiling height + 200mm200mm

Where there is a level above, ceiling height is not read. So a roof is generated even when no ceiling height can be determined. The roof of /L2/a above sits at 6150 … 6400 because level R carries z:6400 and slab:250.

This is what declaring a level with no spaces in it (a roof level R, say) is for — it becomes the ceiling of the top storey's height check, and it supplies the roof slab thickness.

Floor finish is a different vocabulary

slab: is a structural thickness, not the name of a finish. Floor finish is carried by floor: on the space (a carried attribute), and an indented area overrides it over part of the room.

Diagnostics

CodeSeverityWhat it says
SUF03warningthe level has no slab:, so not one floor is generated on this storey
HGT01errorthe height invariant is broken — ceiling height plus the slab above exceeds the storey height
HGT02errora partial void does not cover enough — below 99% coverage no ceiling height may span storeys

A level line accepts only h, slab, pitch and underground; any other key stops parse there and then.

To look a code up by cause and cure, there is the list of diagnostic codes.

Neighbouring pages