ZON — ゾーン
ZON は二つある。どちらも警告である。
| コード | severity | 何を言うか |
|---|---|---|
| ZON01 | warning | ゾーンの配下に空間が一つも無い |
| ZON02 | warning | ゾーンと同じパスの空間がある |
ゾーンは幾何を持たない。空間のようにレベルにも領域にも載らず、zone /L9/A と書くことは /L9/A/ で始まるパスの空間を束ねる、という宣言である。面積の小計・用途の継承・敷地の集約は、この接頭辞の一致だけで動く。
だからゾーンの誤りはいつもパスのずれである。ZON01 は束ねる先が無いずれ、ZON02 は束ねる対象と自分が重なったずれである。
ZON01 — ゾーンの下に空間がありません
warning
grid X 0 3600
grid Y 0 4000
level L1 0 h:2400 slab:150
space /L1/a room X1..X2 Y1..Y2
zone /wing name:西棟
There are no spaces beneath zone /wing
原因 — 配下と数えられるのは、パスが /wing/ で始まる空間だけである。一つも無い。ゾーンの面積は 0 になり、集計にも koyu stats のゾーン別の表にも何も現れない。
ほとんどは、ゾーンのパスと空間のパスがずれているだけである。/wing と書いたが空間は /L1/wing/a にある、というのが典型で、この二つは接頭辞として一致しない。
直し方 — ゾーンのパスを、配下の空間の共通接頭辞に合わせる。
grid X 0 3600
grid Y 0 4000
level L1 0 h:2400 slab:150
space /L1/wing/a room X1..X2 Y1..Y2
zone /L1/wing name:西棟
まだ空間を書いていないだけなら、書けば消える。空のゾーンを先に置いて後から埋めるのは正しい書き方である — 警告どまりなのはそのためで、--strict を回している間だけ邪魔になる。
敷地のゾーンで出やすい。zone /site site:1 を宣言して polygon だけ書き、敷地内の外部空間 (庭・通路) をまだ書いていないと、これが出る。敷地の面積は多角形が与えるので導出は動くが、配下が空であることは知らされる。
ZON02 — ゾーンと同じパスの空間があります
warning
grid X 0 3600 7200
grid Y 0 4000
level L1 0 h:2400 slab:150
space /L1/a room X1..X2 Y1..Y2
space /L1/a/x room X2..X3 Y1..Y2
zone /L1/a name:重なった名
A space shares its path with a zone (settle on one of them): /L1/a
原因 — パスが同一性であるのに、同じパス /L1/a に空間 (領域を持つ実体) とゾーン (集約) の両方がある。ゾーン /L1/a は /L1/a/x を束ね、空間 /L1/a は自分の領域を持つ。面積を二重に数える読み方ができてしまう。
住戸を室に割るときに必ず踏む。「住戸をまず一室として書き、あとから中を割る」と書くと、この形になる。
直し方 — どちらかに寄せる。
割るなら、親をゾーンにする。これが正しい形である。
grid X 0 3600 7200
grid Y 0 4000
level L1 0 h:2400 slab:150
zone /L1/a name:住戸A
space /L1/a/ldk ldk X1..X2 Y1..Y2
space /L1/a/bed bedroom X2..X3 Y1..Y2
親の領域は消える。面積は子の合計としてゾーンに集まり、住戸という言葉は保たれる。親の領域を残したまま子を書くと、今度は同じレベルで領域が重なるので GEO02 がエラーで止める。
割らないなら、zone の行を消す。名前を付けたいだけなら空間に name: を書けばよい。
grid X 0 3600
grid Y 0 4000
level L1 0 h:2400 slab:150
space /L1/a room X1..X2 Y1..Y2 name:住戸A
ゾーンに書ける属性
name (表示名)、use (集計軸 — 配下の空間へ継承される)、site (0/1 — このゾーンが敷地であるという宣言)、area (敷地の宣言面積 ㎡、測量値)、uid (永続同一性トークン)。これ以外のキーは、ドット区切りの名前空間 (acme.owner) を持たなければ ATT03 になる。
関連
- GEO — 領域の重なり — 親の領域を消し忘れたときに出るエラー
- SIT — 敷地形状 —
site:1のゾーンとpolygonの対応 - ATT — 属性 — ゾーンに書ける属性の値と鍵
- koyu check