メインコンテンツまでスキップ

VRT — 垂直境界の診断

上下階の隣接は宣言しない。平面の重なりから導かれ、既定は床である。書くのは例外だけで、三つある。

type:意味通行
stair階段 — 上下階が段で繋がる扉なしで通れる
shaft昇降機・設備シャフト — 空間として連続する人は通れない
void吹抜け — そこに床が無い人は通れない

この三つを持つ境界を垂直境界と呼ぶ。垂直境界は平面の線分を持たないので、水平境界の検査 (線分・開口・seg) を一切受けない。代わりに VRT の六つが、上下の関係として成り立っているかを見る。

コードseverity一文
VRT01error垂直境界は領域とレベルを持つ空間同士に書きます
VRT02error垂直境界は隣り合うレベルの間に書きます
VRT03error垂直境界の空間が平面上で重なっていません
VRT04warningvoid 境界の上側が type:void ではありません
VRT05warning垂直境界の開口は解釈されません
VRT06warning垂直境界の seg は解釈されません

階を跨いで type: を書き忘れた境界は垂直境界にならず、BND03 が言う。コードの手に入れ方は診断を読むにある。

以下の誤り例はどれも koyu check --strict で終了コード1になり、そのコードちょうど1件を出す。

VRT01 — 垂直境界は領域とレベルを持つ空間同士に書きます

error

grid X 0 3600
grid Y 0 4000
level L1 0 h:2400 slab:150
space /L1/a room X1..X2 Y1..Y2
space /out exterior
boundary /L1/a /out type:stair

A stair boundary is written between spaces that have both a region and a level

原因 — 垂直の関係は「平面のここが上下で繋がる」という話なので、両側が領域とレベルを持っていなければ位置が定まらない。相手が exterior (領域なし) だったり、レベルが特定できていない空間だったりする。

直し方 — 両側を、領域とレベルを持つ実在の空間にする。屋外階段を書きたいのなら、各階に階段室の空間 (半屋外なら exterioropen / air:1 で面する空間) を立て、その間に type:stair を張る。

注 — この診断が出た境界は、以降の検査を受けない。前提が崩れているので、レベルの隣接 (VRT02) も平面の重なり (VRT03) も問えない。

VRT02 — 垂直境界は隣り合うレベルの間に書きます

error

grid X 0 3600
grid Y 0 4000
level L1 0 h:2400 slab:200
level L2 3000 h:2400 slab:200
level L3 6000 h:2400 slab:200
space /L1/a room X1..X2 Y1..Y2
space /L3/a room X1..X2 Y1..Y2
boundary /L1/a /L3/a type:stair

A stair boundary is written between adjacent levels: /L1/a | /L3/a

原因 — 一本の垂直境界が跨げるのは、z 順で隣り合うレベルの一段だけである。上の例は L1 と L3 で、間の L2 を飛ばしている。隣接は名前の順ではなく z の順で決まる。

直し方 — 段ごとに一本ずつ書く (/L1/a | /L2/a/L2/a | /L3/a)。全階を貫くシャフトや階段室は stack の一行で一括宣言できる。

grid X 0 3600
grid Y 0 4000
level L1 0 h:2400 slab:200
level L2 3000 h:2400 slab:200
level L3 6000 h:2400 slab:200
space /L1/ev shaft X1..X2 Y1..Y2
space /L2/ev shaft X1..X2 Y1..Y2
space /L3/ev shaft X1..X2 Y1..Y2
stack ev L1..L3 type:shaft

stack は各段の垂直境界に展開されるので、階数が増えても行は一本のままである。

VRT03 — 垂直境界の空間が平面上で重なっていません

error

grid X 0 3600 7200
grid Y 0 4000
level L1 0 h:2400 slab:200
level L2 3000 h:2400 slab:200
space /L1/a room X1..X2 Y1..Y2
space /L2/b room X2..X3 Y1..Y2
boundary /L1/a /L2/b type:stair

The spaces of a stair boundary do not overlap in plan: /L1/a | /L2/b

原因 — 上下に繋ぐには、平面上で重なっていなければならない。階段室・シャフトの上下階の割付が食い違っている。

直し方 — 両階の矩形を揃える。階段の位置を階ごとにずらす設計なら、重なる範囲に踊り場の空間を挟む。

VRT04 — void境界の上側が type:void ではありません

warning

grid X 0 3600
grid Y 0 4000
level L1 0 h:2400 slab:200
level L2 3000 h:2400 slab:200
space /L1/a room X1..X2 Y1..Y2
space /L2/a room X1..X2 Y1..Y2
boundary /L1/a /L2/a type:void

The space above a void boundary is expected to be type:void: /L2/a

原因type:void の境界は「ここに床が無い」と言っている。その上に載っている空間が普通の室のままだと、床が無いのに床面積として数えられてしまう。

直し方 — 上側の空間の型を void にする。

space /L2/a void X1..X2 Y1..Y2 name:リビング上部

void の空間は床面積に算入されず、koyu statsvoid (not counted as floor area) と出る。

注 — 上下の判定は z の順で行う。boundary にどちらを先に書いても、上にあるほうが検査される。

VRT05 — 垂直境界の開口は解釈されません

warning

grid X 0 3600
grid Y 0 4000
level L1 0 h:2400 slab:200
level L2 3000 h:2400 slab:200
space /L1/a room X1..X2 Y1..Y2
space /L2/a room X1..X2 Y1..Y2
boundary /L1/a /L2/a type:stair
  door w:800

A door on a vertical boundary is not interpreted

原因 — 開口は壁芯線分の上に載るもので、垂直境界に線分は無い。書いても採光にも通行にも図面にも効かない。stair は扉なしで通行可であり、扉を足しても koyu doors の枚数は増えない。

直し方 — 開口の行を消す。階段の入口に建具があるのなら、それは階段室と隣室の水平境界に載る扉である。

注 — 咎められるのは開口の行そのものである。診断の lineboundary の行ではなく door の行を指し、開口が三つあれば診断も三件出る。

VRT06 — 垂直境界の seg は解釈されません

warning

grid X 0 3600
grid Y 0 4000
level L1 0 h:2400 slab:200
level L2 3000 h:2400 slab:200
space /L1/a room X1..X2 Y1..Y2
space /L2/a room X1..X2 Y1..Y2
boundary /L1/a /L2/a type:stair
  seg w:800 spec:X

A seg on a vertical boundary is not interpreted

原因seg は境界線分の一区間を指すもので、垂直境界に線分は無い。壁材の切り替えも、koyu plan の描画も起きない。

直し方seg の行を消す。シャフトの壁の仕様を書きたいのなら、それはシャフトの空間と隣室の水平境界に載る seg である。

VRT05 と同じく、診断は seg の行そのものを指し、宣言が複数あれば複数出る。