HGT — 高さの不変量
HGT は二つある。どちらも書かれた値どうしが矛盾していることを言う。
| コード | severity | 何を言うか |
|---|---|---|
| HGT01 | error | 天井高 + 上階の床組み厚が階高を超えている — 上階に食い込む |
| HGT02 | error | 部分吹抜けなのに、階を貫く天井高が宣言されている |
これは平面の重なりの断面版である。同じレベルで二つの空間の領域が重なれば矛盾だと check が言う (GEO02) のと同じ資格で、下階の天井が上階の床を突き抜けていれば矛盾だと言う。どちらも「書かれたものがデータとして成立していない」話であって、建築の良し悪しの話ではない。だから HGT は check の側に残っている。
不変量
各空間について、次を検査する。
有効天井高 + 上階の slab ≤ 階高
- 有効天井高は、その空間の
h:があればそれ、無ければ所属レベルのh:である。空間のh:がレベルのh:に勝つ。 - 上階の slab は、次のレベルの
slab:(床組み厚 — スラブ + 懐 + 仕上) である。 - 階高は、次のレベルの
zと自レベルのzの差である。階高は書かれない — レベルのzから導かれる。 - 許容は 0.5mm。丸めの誤差で落ちることはない。
積み上がりは koyu levels がテキストの矩計として見せる。
koyu levels examples/house/main.muro
R z:5800 slab:500
L2 z:2900 h:2400 slab:500
↑ storey height 2900 = ceiling 2400 + slab 500
L1 z:0 h:2400 slab:400
↑ storey height 2900 = ceiling 2400 + slab 500
誰が検査されるか
不変量を問われるのは、次のすべてを満たす空間だけである。
- 上にレベルがある。最上階には上階の床が無いので、食い込む先が無い。
- 上に空間が重なっている。上階に空間はあるが自分の真上には無い、という空間は問われない。上階に空間が一つも無いレベルは、全体が「覆われている」ものとして扱う。
- 半屋外ではない。外部に
type:openかair:1で接する空間 — バルコニー・テラス・屋外階段 — に天井は無い。 - 縦動線の宣言を持たない。
stair:ramp:escalator:lift:を持つ空間の天井は上の走りに沿って傾いており、一つの数で語れない。宣言的な免除である。 - 上階の
slab:と有効天井高がどちらも決まっている。どちらかが書かれていなければ立式できない。その状態は不変量の破れではなく情報の欠落なので、SUF01 と SUF03 が別に言う。HGT は黙る。
最後の一点は事故になりやすい。上階に slab: を書き忘れると、下階の高さは検査されないまま緑になる。--strict を回して SUF03 を拾うこと。
HGT01 — 上階に食い込みます
error
grid X 0 3600
grid Y 0 4000
level L1 0 h:2800 slab:400
level L2 3000 h:2400 slab:400
space /L1/a room X1..X2 Y1..Y2
space /L2/a room X1..X2 Y1..Y2
/L1/a collides into the floor above: ceiling height 2800 + L2's slab 400 = 3200 > storey height 3000
原因 — 天井高 2800 と床組み厚 400 の合計が階高 3000 を超えている。メッセージが三つの数字を全部出すので、どれを動かすかはその場で決まる。
直し方 — 三つのうちどれかを動かす。
- 天井高を下げる —
level L1 0 h:2400 slab:400 - 床組みを薄くする —
level L2 3000 h:2400 slab:200 - 階高を上げる —
level L2 3400 h:2400 slab:400
その室だけ天井を下げたいなら、レベルではなく空間に書く。
grid X 0 3600
grid Y 0 4000
level L1 0 h:2800 slab:400
level L2 3000 h:2400 slab:400
space /L1/a room X1..X2 Y1..Y2 h:2400
space /L2/a room X1..X2 Y1..Y2
階を貫かせたいのであれば、それは吹抜けの宣言 — 下の HGT02 を見る。
HGT02 — 部分吹抜けの被覆不足
error
grid X 0 3600 7200
grid Y 0 4000
level L1 0 h:5400 slab:400
level L2 3000 h:2400 slab:400
space /L1/a room X1..X3 Y1..Y2
space /L2/v void X1..X2 Y1..Y2
space /L2/b room X2..X3 Y1..Y2
boundary /L1/a /L2/v type:void
/L1/a collides into the floor above: ceiling height 5400 + L2's slab 400 = 5800 > storey height 3000. The void covers only 50.0% — under a partial void keep the ceiling height within the storey height (the height of the void part is derived)
原因 — type:void の境界は、高さの不変量に対する宣言的な免除である。しかし免除が効くのは、吹抜けが下階の平面を覆う範囲までである。上の例は下階の半分しか吹抜けていないのに、下階の天井高を階を貫く 5400 と宣言している。残り半分の上には床があるので、そこを 5400 にはできない。
免除が全面に効くのは被覆率 99% 以上のときだけである。メッセージは被覆率を小数一桁で出す — しきい値と衝突しない粒度である。
直し方 — 下階の天井高を階高内に収める。
grid X 0 3600 7200
grid Y 0 4000
level L1 0 h:2400 slab:400
level L2 3000 h:2400 slab:400
space /L1/a room X1..X3 Y1..Y2
space /L2/v void X1..X2 Y1..Y2
space /L2/b room X2..X3 Y1..Y2
boundary /L1/a /L2/v type:void
吹抜け部分の高さは宣言しない。void の関係から導出される。下階の天井高は「床のある側の天井高」であって、吹抜けの高さではない。
全面を吹抜けにしたいのなら、void 空間の領域を下階の領域と同じにする。そのとき被覆率は 100% になり、階を貫く天井高がそのまま通る。
grid X 0 3600
grid Y 0 4000
level L1 0 h:5400 slab:400
level L2 3000 h:2400 slab:400
space /L1/a room X1..X2 Y1..Y2
space /L2/v void X1..X2 Y1..Y2
boundary /L1/a /L2/v type:void
HGT が言わないこと
建築的な高さの判断は一件も持たない。軒高・最高高さ・道路斜線・北側斜線・日影・天井高の下限 — これらは check にも koyu validate にも無い。koyu は高さについて「書かれた数どうしが噛み合っているか」だけを言う。
koyu validate が持つ高さまわりの判定は、階段の踏面と蹴上げの釣り合い (stair.proportion) と斜路の勾配 (run.slope) の二つで、どちらも導出された形に対する注意であって、法規の高さ制限ではない。
関連
- SUF — 充足性 — 天井高や
slabが書かれていないときはこちら - VRT — 垂直境界 —
type:voidの境界そのものの検査 - GEO — 領域の重なり — 平面での同じ話
- koyu check / koyu validate