Skip to main content

seg — an uncounted segmentation along a boundary

boundary /pathA /pathB …
seg w:3000 [at:…] [edge:…] [attributes…]

A seg is an interval written one level of indentation under a boundary. Use it when the specification changes partway along a wall — one stretch of a single wall is curtain wall, or the fire rating differs just there — and that stretch needs naming.

A seg is not counted. It affects neither passage nor connection nor area, adds no edge to the graph koyu doors walks, and cuts no hole in the wall. All it carries is a position, and the attributes overridden over that interval.

That is the one line separating a seg from an opening. An opening divides the wall — the wall, as a run of intervals, gets a hole exactly there. A seg does not divide it.

Position is written exactly as it is for an opening

AttributeRequiredMeaning
wyeslength of the interval in mm along the segment
atnoa ratio 0..1 (default 0.5, clamped) or an absolute position by grid reference (not clamped)
edgenochoose a side where the boundary has several segments

Without w, parse stops there and then.

✖ seg requires a width w:(mm)

Whether it can be placed is decided in the same order as for an opening — take the segments, narrow by edge, place nothing if there are none, place nothing if there are two or more and no side is chosen, place nothing if the width exceeds the segment length.

✖ There is more than one boundary segment; pick an edge with edge:N/E/S/W (/L1/a | /out)
✖ The seg width 9000 exceeds the boundary segment length 3600
✖ The seg position Y1+1000 is on the wrong axis: a horizontal segment takes an X grid line

The attributes are an override over the interval

They replace the boundary's spec for that stretch alone.

koyu 1.0
name 分節の書き方
unit mm

grid X 0 8000
grid Y 0 5000
level L1 0 h:2700 slab:200

space /L1/office office X1..X2 Y1..Y2 name:事務室
  area X1..X1+2000 Y1..Y2 name:土間 floor:モルタル
space /out exterior name:外部

boundary /L1/office /out t:180 spec:RC edge:S
  seg w:3000 at:X1+4000 spec:カーテンウォール fire:60
  window w:2400 h:2000 at:X1+4000 name:嵌め殺し
boundary /L1/office /out t:180 spec:RC edge:N
boundary /L1/office /out t:180 spec:RC edge:E
boundary /L1/office /out t:180 spec:RC edge:W
  door w:900 h:2100 name:出入口

The south wall is spec:RC, except for a 3000mm interval centred on X1+4000, which is spec:カーテンウォール. A window hangs over that same interval — a seg and an opening do not interfere, so they may overlap freely.

The area is still 8000 × 5000.

  /L1/office	事務室	office	40.00 m2

Neither the seg nor the area above it moved a single square metre.

The pair with area

There are two uncounted segmentations. Both obey the same isolation rule — they carry a position and overriding attributes, and touch nothing in the composition.

Written underWhat it divides
sega boundaryan interval along a boundary segment
areaa spacea region inside a room

area is the indoor counterpart — a change of floor finish, say. Spilling outside the parent region is a warning (SEG02); writing one on a space that has no region is an error (SEG01).

Attribute tiers

AttributeTier
w at edgestructure — parse lifts these into typed fields
nameinterpreted
spec fire soundcarried — carried and nothing more

A key outside the ledger cannot be written.

✖ seg (/L1/a | /out) carries finish:, which is not in the ledger (check the spelling, or add a namespace if the value is only carried — e.g. acme.finish:タイル)

Give it a namespace containing a dot (acme.finish:tile) and it passes. The core does not read namespaced keys.

name is a name unique inside that boundary. Two segs on one boundary with the same name is UID04.

Diagnostics

CodeSeverityWhat it says
SEG03warninga seg on an open boundary — there is no wall, so it is not interpreted
SEG04errorthere is no boundary segment to place the seg on
SEG05errorthere is more than one segment and none is chosen
SEG06errorthe seg is wider than the segment
SEG07erroran absolute position on the wrong axis
SEG08erroran absolute position runs off the segment
VRT06warninga seg on a vertical boundary — not interpreted
UID04errorduplicate name within one boundary

SEG01 and SEG02 belong to area, not to seg.

To look a code up by cause and cure, there is the list of diagnostic codes.

Neighbouring pages