SUF — 充足性
SUF は四つある。どれも「その値が正しいか」ではなく、「形を作るのに要る値が書かれているか」を言う。
| コード | severity | 何を言うか |
|---|---|---|
| SUF01 | error | 天井高が決まらない — 天井も屋根も生成できない |
| SUF02 | error | 領域はあるがレベルが決まらない — 立体が一つも生成できない |
| SUF03 | warning | レベルに slab: が無い — その階の床が一枚も生成されない |
| SUF04 | warning | 縦動線の宣言に対して形が一つも生成されない |
形を作らないことと、形を作れないことは違う。koyu の導出の規則は決定的で、値が無いときに既定値を捏造しない — 天井高が書かれていなければ、勝手に 2400 を入れたりせず、天井を作らない。同じ構成からは常に同じ形が出る。だが形が痩せていることは知らされなければならない。SUF はそのための検査である。
妥当性の判定ではない。「その天井高でよいか」は言わない。「天井高が書かれていない」とだけ言う。
SUF01 — 天井高が決まりません
error
grid X 0 3600
grid Y 0 4000
level L1 0 slab:150
space /L1/a room X1..X2 Y1..Y2
The ceiling height of /L1/a cannot be determined (neither the space's h: nor level L1's h: is there)
原因 — 空間に h: が無く、その空間が載るレベルにも h: が無い。有効天井高が決まらない。
天井高は一つの数ではなく、多くのものが読む数である。決まらないと次が全部落ちる。
- 天井が生成されない。天井は有効天井高が与えるものだから。
- 屋根が生成されない。最上階の屋根の頂点は
レベルの z + 有効天井高 + 200mmである。 - 高さの不変量が立式できない。HGT01 が黙る — 階を貫く天井高が緑のまま通る。
- そのレベルに上のレベルが無ければ、階高が決まらない。壁と柱は階高いっぱいに立つ。上にレベルがあれば階高は z の差だが、最上階の階高は「そのレベルの
h:と、そこに載る空間の有効天井高のうち最も高いもの + 200mm」で決まる。天井高が一件も決まらなければこの数が無く、そのレベルには壁も柱も一つも立たない。
最後の一点は目に見える。上の四行のファイル (最上階しか無い) に外壁と柱を足しても、立体は一つも出ない。上に level L2 3000 h:2400 slab:150 を足すと、h: を一つも書かないまま壁と柱が立つ — 階高が z の差から決まるからである。
咎めないものが三つある。この三つは天井高に依らずに形が決まる。
- 吹抜け (
type:void) — 床も天井も無いことが定義である - 外部 (
type:exterior) — 地面である - 半屋外 — 外部に
type:openかair:1で接する領域つき空間。バルコニーに天井高は無い
直し方 — レベルに基準天井高を書く。
grid X 0 3600
grid Y 0 4000
level L1 0 h:2400 slab:150
space /L1/a room X1..X2 Y1..Y2
個別に違う室だけ、空間側に書く (space /L1/a room X1..X2 Y1..Y2 h:2700)。空間の h がレベルの h に勝つ。
SUF02 — レベルが特定できません
error
grid X 0 3600
grid Y 0 4000
level L1 0 h:2400 slab:150
space /house/a room X1..X2 Y1..Y2
/house/a has a region, but its level cannot be determined (give it at the head of the path or with level:)
原因 — 空間がレベルに載るのは、次のどちらかのときである。
- パスの先頭セグメントが、宣言済みのレベル名と一致する (
/L1/aに対してlevel L1 0) level:属性を持つ (space /house/a room X1..X2 Y1..Y2 level:L1)
上の例はパスを集計の階層 (/house/…) で切っているので、先頭セグメント house はレベル名ではない。
逆向きの取り違えのほうが多い。/L1/a と書いていてこれが出るなら、level L1 0 の行が無い。パスに /L1/ と書いただけではレベルは宣言されない。
なぜエラーか — z が決まらないので、この空間からは立体が一つも生成されない。床も天井も屋根も壁も無く、平面図にも現れない。koyu plan がそのレベルに領域を持つ空間が無いと言って落ちるのは、この状態である。
直し方 — 二つのどちらかである。
grid X 0 3600
grid Y 0 4000
level L1 0 h:2400 slab:150
space /house/a room X1..X2 Y1..Y2 level:L1
集計の階層でパスを切りたい (住戸・棟・用途で束ねたい) ならこちら。パスの先頭でレベルを言いたいなら、level L1 0 h:2400 slab:150 の行を base 層に足して space /L1/a … と書く。
SUF03 — slab が無く、床が生成されません
warning
grid X 0 3600
grid Y 0 4000
level L1 0 h:2400
space /L1/a room X1..X2 Y1..Y2
Level L1 has no slab:, so not one floor is generated on this storey
原因 — 床を与えるのは level の slab: (床組み厚 — スラブ + 懐 + 仕上) だけである。床を置く操作は無く、slab: を書いたことが床を宣言したことである。書かなければ、その階に床は一枚も生成されない。
巻き添えがある。高さの不変量 は上階の slab が無いと立式できないので、slab: を書き忘れた階の下の階も検査されなくなる。SUF03 を無視すると HGT01 が黙る。
なぜ警告どまりか — 形そのものは定まっているからである。「slab が無ければ床要素を作らない」は決定的な規則であって、同じ構成から複数の形が出るわけではない。ただし床の無い建物になることは知らされるべきである。
直し方 — レベルに slab: を書く。
grid X 0 3600
grid Y 0 4000
level L1 0 h:2400 slab:150
space /L1/a room X1..X2 Y1..Y2
出ない場合がある。床を持ちうる空間 (void でも exterior でもない領域つき空間) がそのレベルに一つも載っていなければ、SUF03 は出ない。最上階の上限を与えるためだけの屋上レベル (level R 5800 slab:500) がまさにそれで、生成されなかった床が無いのだから言うことも無い。
SUF04 — 上にレベルが無いため形が生成されません
warning
grid X 0 3000 6000
grid Y 0 6000
level L1 0 h:2700 slab:300
level L2 3000 h:2700 slab:300
space /L1/a room X1..X2 Y1..Y2
space /L2/s stair X1..X2 Y1..Y2 stair:N
No level sits above L2, so no form is generated for /L2/s
原因 — 縦動線の形は「自レベルの床上面から次のレベルの床上面まで」で決まる。最上階の階段には上る先が無いので、段は一段も生成されない。その階の平面には、下階から上ってくる走りだけが現れる。宣言はあるのに形が無い、という充足性の話である。
昇降機 (lift:) は例外で、SUF04 の対象にならない — 形が段割りではないからである。
直し方 — 屋上へ抜ける階段なら、屋根面を level R として宣言する。
grid X 0 3000 6000
grid Y 0 6000
level L1 0 h:2700 slab:300
level L2 3000 h:2700 slab:300
level R 6000 slab:300
space /L1/a room X1..X2 Y1..Y2
space /L2/s stair X1..X2 Y1..Y2 stair:N
抜けないなら、その階の宣言を外す。
関連
- HGT — 高さの不変量 — 値が書かれていて矛盾しているときはこちら
- RUN — 縦動線 — 宣言そのものが読めないときの四つのコード
- koyu check