Issued Sheet (tags + notes) — an ArchLang floor plan example
A small flat issued on A3 with a drawing number, general notes and a tag on every door and window, keyed to a schedule.
This plan compiles to 3 rooms, 54 m² of floor area and 3 windows; every room is reachable from the entrance.
The source
This is the whole plan. The drawing above is what the compiler produced from it — nothing was drawn by hand.
# An issued sheet — the SHEET-ANNOTATION example.
#
# A drawing that leaves the office carries more than the plan: a drawing number and a
# revision in the title block, the general notes every contractor reads first, and a tag
# on every door and window keyed to a schedule. All three are opt-in sheet statements, and
# all three are presentation only — `describe()` and `lint()` learn nothing from them:
#
# title { … number "A-101" revision "B" } two more title-block rows
# notes "…" the NOTES table, numbered in source order
# schedule openings D01…/W01… tags + the DOOR & WINDOW SCHEDULE
#
# The schedule is DERIVED, never typed: the rooms each opening serves (the same answer as
# `describe --json`'s `doors[].between` / `windows[].room`), its width, its kind and, for a
# hinged leaf, its HAND — read off the drawn leaf from the side it opens into, so it does
# not depend on which way the wall was written. A tag sits beside its opening: a window's
# inside the room, a door's past the hinge jamb, clear of the swing and out of the doorway.
plan "Sheet Notes Flat" {
units mm
grid 50
paper A3 landscape
scale 1:50
north up
dims auto all
schedule rooms
schedule openings
notes "All dimensions in millimetres. Do not scale from this drawing."
notes "Check every dimension on site before work starts."
notes "Room areas are taken to wall centrelines."
notes "Door hand is read from the side the door opens into."
title { project "Sheet Notes Flat" drawn_by "ArchLang" date "2026-10-13" number "A-101" revision "B" }
# ---- shell -------------------------------------------------------------------
wall id=shell exterior thickness 200 { (0,0) (9000,0) (9000,6000) (0,6000) close }
wall id=w_mid partition thickness 100 { (5000,0) (5000,6000) }
wall id=w_bed partition thickness 100 { (5000,3000) (9000,3000) }
# ---- rooms -------------------------------------------------------------------
room id=r_living at (0,0) size 5000x6000 label "Living Room" uses living
room id=r_bed at (5000,0) size 4000x3000 label "Bedroom" uses bedroom
room id=r_study at (5000,3000) size 4000x3000 label "Study" uses office
# ---- doors -------------------------------------------------------------------
# The front door opens IN, so its tag cannot sit outside (the dimension chains live
# there): it goes on the swing side, behind the hinge, where the leaf never reaches.
door id=d_front on shell at 2500 width 1000 hinge left swing in
door id=d_bed on w_mid at 1500 width 900 hinge right swing out
door id=d_study sliding on w_mid at 4500 width 900
# ---- windows -----------------------------------------------------------------
window on shell at 26000 width 1800
window on shell at 7000 width 1400
window on shell at 13500 width 1400
}