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

書かなかったとき何が起きるか

書かないことは意味を持つ。そして意味は三つに分かれる。

沈黙の種類起きること
既定が入る書かなかった値の代わりに、決まった値か決まった規則が使われるtype: を書かない境界は wall になる
要素が生まれない値を捏造せず、その要素を作らない。形は定まるが痩せるslab: の無い階には床が一枚も生成されない (SUF03 警告)
止まる一意な形を作るのに必要な情報が欠けている天井高がどこにも無ければ SUF01 エラー

既定値を捏造して先へ進むことはしない。だから同じ構成からは常に同じ形が出る。ただし形が痩せたことは必ず知らされる

この頁は既定の唯一の表である。値の書き方は 属性の三層、位置の綴りは 位置と領域、方位の既定は 方位と a 側 にある。

最小のファイル

koyu 1.0
grid X 0 3600
grid Y 0 4000
level L1 0 h:2400 slab:150
space /L1/a room X1..X2 Y1..Y2

この5行で check は緑になり、平面図が描かれる。残りはすべて既定である — 名前も無く、外部も無く、境界も一本も宣言されていない。

基盤の宣言

書かなければどうなるか
koyu <版>最新版 1.0 の意味論で読まれる。意味を固定したいなら書く → 版の宣言
unit mmmm。v0 は mm しか持たない
name建物名を持たない
grid X / grid Y通り参照が一つも書けない。領域を持つ行は Undefined grid line name で止まる
level領域を持つ空間のレベルが決まらず SUF02 (エラー)
levelh:その階の空間は自分の h: が無ければ天井高が決まらず SUF01 (エラー)。天井も屋根も生成できない
levelslab:その階の床が一枚も生成されない。SUF03 (警告) — 形は定まるので止まらない
levelunderground:地上階として扱われる。z の負値からは推定しない
levelpitch:範囲宣言 (L4..L10) では必須。単一のレベルには書けない

space

書かなければどうなるか
領域領域を持たない空間になる。面積にも柱にも床にも現れない — exterior や集約のための空間はこれでよい
level:パスの先頭セグメントがレベル名ならそのレベル。名前が合わなければ SUF02 (エラー)
h:所属レベルの h:。どちらも無ければ SUF01 (エラー)
daylight:採光の問いの対象外。型からは推定されない — room と書いても ldk と書いても対象にならない
ceiling:天井は室の輪郭 × 天井高として導かれる。ceiling:0 で張らない
use:最も深いゾーン祖先の use を継承する。ゾーンにも無ければ集計の軸を持たない
road:道路ではない。接道長に幅員を与えない
uid:パスが同一性である。改名すれば対応は切れる
stair: ramp: escalator: lift:縦動線ではない。ただの空間
floor: spec:運ばれる値が無いだけ

boundary

接する空間の既定は壁である。

書かなければどうなるか
同一レベルで平面が接する組への boundarywall の既定境界が導かれる。扉を持たないので通れない。機械形式には現れない
上下に重なる空間の間の垂直境界床である。通れない。stair / shaft / void は例外として宣言する
領域を持たない空間 (外部など) との boundary何も導かれない。そこに壁は無く、外皮に穴が空く — koyu validateenvelope.gap が言う
type:wall
t:描画と立体の既定は 100mm。air:1 の境界は 60mm (上限 80mm)
air:遮る物として扱う
edge:その境界のすべての線分。開口や seg を置くときは辺が一つに定まらなければ OPN05 / SEG05
h: (air:1 のとき)天端 1100mm
spec: fire: sound:運ばれる値が無いだけ

宣言がその組に一つでもあれば既定境界は導かれない。edge: で一辺だけを宣言した場合も同じで、残りの辺には壁が導かれない。

door / window

書かなければどうなるか
w:エラー。幅は必須である (アセットが与えてもよい)
at:比率 0.5 — 線分の中央。線分に収まるようクランプされる
hinge:線分の始端側 (水平の線分は西端、垂直の線分は南端)。斜めの線分では始端に固定
swing:a が領域を持てば a 側、でなければ b 側へ開く
style:hinged (開き戸)
h: (扉)床からまぐさ高 2000mm まで立ち上がる
h: (扉以外)高さ 1200mm。頭はまぐさ高 2000mm に揃う
name:名を持たない。合成の集合編集で指せなくなる= window W1 の指す先が無い
扉を一枚も書かない通れない。check は緑のままである

sill: を書かなくても窓台の高さは決まる — 頭を揃えた結果として出る。sill: は運搬層なので、書いても形は変わらない。

column

書かなければどうなるか
d:一辺と同じ (角柱)
x: / y:すべての通り。そのレベルに床のある交点すべてに立つ
name:drop column で指せなくなる

同じ交点に二本は立たない — 先に書かれた宣言が勝つ。

縦動線

段数も踏面も勾配も書かれない。書かれるのは領域と向きだけで、残りは階高から導かれる。

書かなければ既定
form:straight (折返さない)
turn:R (踊り場で右へ回る)
entry:乗り込みの床の奥行 1100mm
riser:蹴上げの上限 180mm — 段数がここから決まる
tread:目標踏面 300mm — 踊り場を残余として決めるときに使われる
landing:導出される (最小 1100mm)。書けば踏面が残余になる
lane:エスカレーター一台の呼び幅 1200mm — 台数がここから決まる
slope:許容勾配の上限を宣言していないので、勾配は咎められない。エスカレーターだけは常用域から外れれば run.slope が言う

zone / polygon / band

書かなければどうなるか
zonesite:敷地の集約ではない。koyu site の対象にならない
zonearea:導出面積と照合する測量値が無い
polygon敷地面積は敷地内の空間と屋内の投影の合併から導かれる。敷地境界線も描かれない
bandw:rest閉じた帯である。全要素の寸法の合計が帯の幅と一致しなければエラー — 図面の「部分寸法の合計 = 総寸法」と同じ検算である

導出の定数

これは台帳の既定ではない。台帳が定めるのは「何を書いてよいか」であり、ここが定めるのは「書かれなかったときに何を導くか」である。書けば必ず書いた値が勝つ。

定数何を決めるか
壁厚100 mmt: の無い壁。芯線に対して両側へ半分ずつ
遮蔽しない境界の厚み60 mmair:1 の境界の t: の既定
同・上限80 mmt: に何を書いてもここで頭打ち
同・天端高1100 mmair:1 の境界の h: の既定
まぐさ高2000 mm扉はここまで立ち上がり、それ以外はここから下がる
扉以外の開口の高さ1200 mm開口の h: の既定
天井の見付け厚30 mm
屋根版の厚さ200 mm最上階で天井高の上へ載せる量でもある
平面の切断面FL + 1200 mm平面図がどの高さで切るか
蹴上げの上限180 mmriser: の既定
目標踏面300 mmtread: の既定
中間踊り場の最小奥行1100 mm書かれた landing: もここまで引き上げられる
乗り込みの床の奥行1100 mmentry: の既定
エスカレーター一台の呼び幅1200 mmlane: の既定
段板の見付け厚200 mm立体
踊り場・傾いた版の厚さ200 mm
平面のエスカレーターの段の刻み400 mm

緑は「建物として成立している」ではない

接する空間の既定が壁である以上、扉を一枚も宣言しない二階建ては緑のまま完全に密封される。

koyu 1.0
grid X 0 3600
grid Y 0 4000
level L1 0 h:2400 slab:150
level L2 2900 h:2400 slab:150
space /L1/a room X1..X2 Y1..Y2
space /L2/a room X1..X2 Y1..Y2
space /out exterior
boundary /L1/a /out t:150
boundary /L2/a /out t:150
✔ Consistent — 3 spaces / 2 boundaries
  Structural consistency only — architectural validity is what koyu validate says, separately

これに扉が無いことを言うのは別の面である (位置の接頭辞は解決済みの絶対パスで出る — 下では途中を省いてある)。

✖ [access.unreachable] …/sealed.muro:line 6: Cannot reach the exterior: /L1/a (no passable boundary leads out — write a door)
✖ [access.unreachable] …/sealed.muro:line 7: Cannot reach the exterior: /L2/a (no passable boundary leads out — write a door)
Validation — 2 violations / 0 cautions

check が言うのは「書かれたものがデータとして矛盾していない」までである。緑を根拠に「動く」と主張しない。