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

診断コード索引

koyu check が返すメッセージの全目録である。コードは 65、族は 19、内訳は error 49 件・warning 16 件。この頁はどのコードがどの族に属し、どの重さを持つかを一枚で見せる。原因と最小の再現と直し方は族ごとの頁にある。

check が言うのは書かれたものがデータとして矛盾していないかまでである。建物として使えるかは言わない — それは koyu validate の 15 の規則が別に言う。二つは型からして別で、checkDiagnostic { code, severity } を返し、validateFinding { rule, level } を返す。コードの綴り (3字+2桁) と規則の綴り (site.escape のような 章.規則) も字面で見分けがつく。

人向けの check はコードを表示しない。この索引を引く前に --json を付けてコードを手に入れる — 手順は診断を読むにある。

severity は二つしかない

severity意味check の終了コードcheck --strict の終了コード
error構成が成立していない。書かれた構成から一意な形が作れない11
warning疑わしい。成立はしていて、形も一意に決まる01

severity はコードの不変属性である。同じコードが場合によって error になったり warning になったりはしない。重さを変える必要が出たときは、既存コードの severity を動かさず、新しいコードを切る。

症状から引く

症状見るコード
境界を書いたのに「接していない」と言われるBND04
扉や窓を置いたら「線分が複数あります」と言われるOPN05
外壁に窓を開けたいのに置けないOPN04 OPN05
階段や吹抜けを書いたのに叱られるVRT01 VRT02 VRT03
階段に扉を書いたら「解釈されません」と言われるVRT05
空間を並べたら「領域が重なっています」と言われるGEO02
住戸を室に割ろうとして重なりを叱られるGEO02 — 直し方は割付ではない
境界のパスを書いたら「未定義」と言われるREF01
床材を貼った area が通らないSEG01 SEG02
レベルを書いたつもりが「レベルが特定できません」と言われるSUF02
階高の検算が通らないHGT01 HGT02
天井高や床組み厚を書かずに、天井も床も生成されていないSUF01 SUF03
属性を書いたのに効いていないATT01 ATT02 ATT03
敷地の数字が合わないcheck は言わない — koyu validatesite.escape / site.area が言う
階段の踏面や勾配が窮屈check は言わない — koyu validatestair.proportion / run.slope が言う
外皮に穴が開いているcheck は言わない — koyu validateenvelope.gap が言う
ファイルが1行も読まれずに落ちるSYN01

全コード

並びは台帳の順である。

REF — 参照 (1)

コードseverity一文
REF01error未定義の空間を参照しています

BND — 境界 (6)

コードseverity一文
BND01error同じ空間同士の境界は書けません
BND02error境界が重複しています
BND03error異なるレベルの空間に壁境界は書けません
BND04error空間が接していないため境界を導けません
BND05warning同じ空間対に edge 限定つきと無しの境界が併存しています
BND06warning外周に残る辺が無く、境界線分がゼロです

LVL — レベル (1)

コードseverity一文
LVL01error二つのレベルの z が同じです

GEO — 領域の重なり (2)

コードseverity一文
GEO01error一つの空間の領域同士が重なっています
GEO02error二つの空間の領域が重なっています

VRT — 垂直境界 (6)

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

OPN — 開口 (8)

コードseverity一文
OPN01errorhinge の軸違い
OPN02error開口同士が重なっています
OPN03warningopen 境界の開口は通行に影響しません
OPN04error開口を置ける境界線分がありません
OPN05error境界線分が複数あって曖昧です
OPN06error開口の幅が境界線分の長さを超えています
OPN07error開口の明示位置の軸違い
OPN08error開口の明示位置が線分からはみ出します

SEG — 数えない分節 (8)

area (室の内側) が SEG01・SEG02、seg (境界の上) が SEG03〜SEG08 である。

コードseverity一文
SEG01error領域を持たない空間に area は書けません
SEG02warningarea が領域からはみ出しています
SEG03warningopen 境界の seg は解釈されません
SEG04errorseg を置ける境界線分がありません
SEG05errorseg の境界線分が複数あって曖昧です
SEG06errorseg の幅が境界線分の長さを超えています
SEG07errorseg の明示位置の軸違い
SEG08errorseg の明示位置が線分からはみ出します

ZON — ゾーン (2)

コードseverity一文
ZON01warningゾーンの下に空間がありません
ZON02warningゾーンと同じパスの空間があります

HGT — 高さの不変量 (2)

コードseverity一文
HGT01error上階の床に食い込みます
HGT02error部分吹抜けの被覆が足りません

SUF — 充足性 (4)

コードseverity一文
SUF01error天井高が決まらず、天井も屋根も生成できません
SUF02errorレベルが特定できず、立体が一つも生成できません
SUF03warningレベルに slab が無く、床が一枚も生成されません
SUF04warning縦動線の宣言に対して形が一つも生成されません

SIT — 敷地形状 (3)

コードseverity一文
SIT01error敷地形状に重複する頂点があります
SIT02error敷地形状が自己交差しています
SIT04warningpolygon に対応するゾーンがありません

SIT03 と SIT05 は欠番である。

UID — 同一性 (4)

コードseverity一文
UID01erroruid は数字だけのトークンにできません
UID02erroruid に空白は使えません
UID03erroruid が重複しています
UID04error同じ対象の中で name が重複しています

ATT — 属性 (3)

コードseverity一文
ATT01error属性は正の数値で書きます
ATT02error属性の値が台帳の語彙にありません
ATT03error台帳に無い属性キーで、名前空間もありません

DAY — 採光の対象 (1)

コードseverity一文
DAY01errordaylight は 1 (採光判定の対象) か 0 (対象外) です

RUN — 縦動線 (4)

コードseverity一文
RUN01error一つの空間に縦動線の宣言が複数あります
RUN02error縦動線の値は上る向き N/E/S/W です
RUN03error縦動線の領域が矩形一つでない、またはレベルが不明です
RUN05errorform の値が不正、または形が決まりません

RUN04・RUN06・RUN07・RUN08 は欠番である。

LIN — 描かれた線 (3)

コードseverity一文
LIN01error線が二つの空間を分離していません
LIN02error垂直境界に線は描けません
LIN03warning線が何も切っていません

COL — 柱 (2)

コードseverity一文
COL01warning宣言に対して立つ柱が0本です
COL02warning同じ交点に先の柱宣言が立っています

VER — 言語版の受理条件 (4)

コードseverity一文
VER01errorkoyu 0.1 のファイルに、境界が宣言されていない接触ペアがあります
VER02errorkoyu 0.3 以前のファイルに daylight の無い居室型があります
VER03errorkoyu 0.4 以前のファイルに 0.5 の語があります
VER04errorkoyu 0.5 以前のファイルに 1.0 の語があります

SYN — 構文・合成 (1)

コードseverity一文
SYN01error構文または合成のエラー

SYN01 は個別の検査ではなく、読み込みが投げた例外を一件に写したものである。check --json のときにだけ現れる--json を付けない check は例外をそのまま印字して終了コード1で終わる。

欠番

番号は再利用しない。過去の出力が読めなくなるからである。11 の番号が欠番で、そのうち 6 つは koyu validate の規則へ、4 つは SUF の族へ移った。何が何に置き換わったかは欠番の診断コードにある。

BND07 HGT03 HGT04 HGT05 RUN04 ENV01 RUN06 RUN07 RUN08 SIT03 SIT05

check が緑でも見ていないこと

緑は「構成がデータとして矛盾しておらず、書かれた構成から形が作れる」までを意味する。建築としての妥当性については何も言わない。特に次の二つは緑のまま通り抜ける。

閉じた建物。接する空間の既定は壁であり、壁は扉が無ければ通れない。扉を一枚も書かない二階建ては緑のまま完全に密封される。

koyu doors <file> /L2/bed /out/road

これが「到達できません」と答えたら、動線が繋がっていない。koyu validateaccess.unreachable も同じことを違反として言う。

採光。窓を一枚も書かなくても緑になる。koyu light <file> が居室ごとの 1/7 判定を出し、koyu validatedaylight.ratio が違反として言う。

check の呼び方と旗は koyu check に、判定の側は koyu validate にある。