-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathfurnished-flat.arch
More file actions
143 lines (131 loc) · 8.74 KB
/
Copy pathfurnished-flat.arch
File metadata and controls
143 lines (131 loc) · 8.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# The FURNITURE flagship — a two-bedroom flat, furnished with the whole symbol catalogue.
#
# Every other example draws a fixture or two in passing. This one is here for the drawn
# symbols themselves: thirty-eight of the eighty-three catalogued kinds, across all five
# indoor domains (bath, kitchen/utility, bedroom, living/dining, office/misc). It is a
# two-bedroom flat rather than a showroom, so the ceiling on that number is the FLOOR
# AREA, not the catalogue: every piece here is somewhere a real one would go, and the
# linter is what says so -- no piece floats off its wall, backs onto the room, blocks a
# door, eats a clearance or collides with anything. `arch validate --strict` reports
# exactly ONE warning, named here so it is not mistaken for rot: `W_PATH_TOO_NARROW` on
# the walk into the kitchen, which the nav grid measures at 400 mm through the 1200 mm
# opening. It appeared when that rule started reporting a MEASURED way in instead of a
# fabricated 0 mm, and it is left standing rather than nudged away -- moving a piece to
# silence a measurement is how a plan stops being evidence.
#
# Four things to read off the source rather than the picture:
#
# 1. NO LABELS. A drawn symbol ignores `label` — the word reaches `describe()` and
# nothing else — so the only text in this drawing comes from the rooms.
# 2. MOST PIECES CARRY NO SIZE. `against wall <id> … in <room>` takes the catalogued
# footprint (a fridge is 600 along the wall by 650 deep) and derives the rotation
# from the wall, so a fitted kitchen, a plumbed bathroom and a bed with its
# headboard on the right wall are written without a single hand-computed number.
# `offset` is where the piece's CENTRE lands along the wall run, so a kitchen run
# is written as a sequence of centres, not as corners.
# Only the free-standing pieces — the L-sofa, armchair, coffee table, dining table,
# island, desk, office chair, plant, rug, piano and lounger — declare a `size`,
# because with no wall there is nothing to tell `along` from `depth`.
# 3. THE RUG IS AN UNDERLAY. It is walked on rather than round, so the pieces standing
# on it raise no overlap warning and the circulation flood-fill crosses it. Rugs,
# alone among the symbols, are drawn unfilled — nothing they are written after can
# be hidden by them.
# 4. THREE PIECES ARE OVERHEAD, and the drawing says so with a dashed outline: the
# range hood sits over the stove at the same offset, the mirror over the basin at
# the same offset, and the wall cabinet over its length of the east wall. A thing
# above the cut plane and a thing below it cannot collide, so those pairs raise no
# overlap warning — but unlike the rug they are still obstacles to a walk, because a
# body is taller than a wall unit's underside. That is the whole difference between
# the two flags, and it is why this plan can draw a kitchen that is actually fitted.
plan "Furnished Flat" {
units mm
grid 50
paper A3 portrait
scale 1:50
north up
dims auto overall
schedule rooms
wall id=w_north exterior thickness 200 { (0,0) (8400,0) }
wall id=w_east exterior thickness 200 { (8400,0) (8400,10800) }
wall id=w_south exterior thickness 200 { (0,10800) (8400,10800) }
wall id=w_west exterior thickness 200 { (0,0) (0,10800) }
wall id=w_kit partition thickness 100 { (5000,0) (5000,5600) }
wall id=w_util partition thickness 100 { (5000,3800) (8400,3800) }
wall id=w_hall_n partition thickness 100 { (0,5600) (8400,5600) }
wall id=w_hall_s partition thickness 100 { (0,6800) (8400,6800) }
wall id=w_bed partition thickness 100 { (3600,6800) (3600,10800) }
wall id=w_bath partition thickness 100 { (6400,6800) (6400,10800) }
room id=r_live at (0,0) size 5000x5600 label "Living / Dining" uses living
room id=r_kitchen at (5000,0) size 3400x3800 label "Kitchen" uses kitchen
room id=r_util at (5000,3800) size 3400x1800 label "Utility"
room id=r_hall at (0,5600) size 8400x1200 label "Hall" uses hall
room id=r_bed1 at (0,6800) size 3600x4000 label "Bedroom 1" uses bedroom
room id=r_bed2 at (3600,6800) size 2800x4000 label "Bedroom 2" uses bedroom
room id=r_bath at (6400,6800) size 2000x4000 label "Bath" uses bath
door id=d_front on w_east at 6200 width 900 hinge near start swing into r_hall
door id=d_live on w_hall_n at 900 width 900 hinge near start swing into r_live
door id=d_util on w_hall_n at 5700 width 800 hinge near start swing into r_util
door id=d_bed1 on w_hall_s at 700 width 800 hinge near start swing into r_bed1
door id=d_bed2 on w_hall_s at 5400 width 800 hinge near start swing into r_bed2
door id=d_bath on w_hall_s at 7000 width 800 hinge near start swing into r_bath
opening on w_kit at 1600 width 1200
window on w_north at 3300 width 1400
window on w_north at 6650 width 1200
window on w_west at 1800 width 1400
window on w_west at 4300 width 1200
window on w_south at 2600 width 1400
window on w_south at 4400 width 1400
# --- Living / Dining --------------------------------------------------------
# The rug is an UNDERLAY: the coffee table and the L-sofa stand on it, so that overlap
# is the arrangement rather than a collision, and the flood-fill walks straight over it.
# It is also the only symbol here drawn with no fill, which is why it cannot hide the
# sofa it is written after.
furniture rug at (200,600) size 2700x2400 in r_live
furniture tv_unit against wall w_north offset 1000 in r_live
furniture sofa_l at (300,1300) size 2400x1500 rotate 180 in r_live
furniture coffee_table at (900,700) size 1000x500 in r_live
furniture armchair at (3300,1100) size 900x850 rotate 90 in r_live
furniture sun_lounger at (1950,150) size 1400x700 rotate 90 in r_live
furniture plant at (4300,300) size 600x600 in r_live
# A piano carries NO catalogued footprint on purpose, so it cannot be written
# `against wall` — that form would derive a rotation from the wall and face the
# keyboard into it. Placed by hand, like it is on a real drawing.
furniture piano at (250,3200) size 1400x1400 in r_live
furniture dining_table at (2700,3300) size 2100x2000 in r_live
furniture radiator against wall w_west offset 4300 in r_live
# --- Kitchen: a fitted run of centres along the north wall -------------------
furniture counter against wall w_north offset 5650 size 1200x600 in r_kitchen
furniture kitchen_sink against wall w_north offset 6650 in r_kitchen
furniture stove against wall w_north offset 7350 in r_kitchen
furniture range_hood against wall w_north offset 7350 in r_kitchen
furniture dishwasher against wall w_north offset 7950 in r_kitchen
furniture fridge against wall w_east offset 1000 in r_kitchen
furniture upper_cabinet against wall w_east offset 1800 in r_kitchen
furniture microwave against wall w_east offset 2600 in r_kitchen
furniture island at (5800,2000) size 1600x900 in r_kitchen
# --- Utility ----------------------------------------------------------------
furniture washer against wall w_east offset 4400 in r_util
furniture dryer against wall w_east offset 5000 in r_util
furniture laundry_sink against wall w_util offset 1300 in r_util
furniture water_heater against wall w_util offset 500 in r_util
# --- Bedroom 1 --------------------------------------------------------------
furniture double_bed against wall w_west offset 9100 in r_bed1
furniture nightstand against wall w_west offset 7925 in r_bed1
furniture nightstand against wall w_west offset 10275 in r_bed1
furniture wardrobe against wall w_hall_s offset 2600 in r_bed1
furniture vanity against wall w_bed offset 1700 in r_bed1
furniture dresser against wall w_bed offset 3250 in r_bed1
# --- Bedroom 2 --------------------------------------------------------------
furniture bed against wall w_bath offset 2950 in r_bed2
furniture desk against wall w_bed offset 1000 size 1200x700 in r_bed2
furniture office_chair at (4450,8200) size 600x600 in r_bed2
furniture bookshelf against wall w_bed offset 3350 in r_bed2
# --- Bath -------------------------------------------------------------------
furniture shower against wall w_bath offset 1350 in r_bath
furniture basin against wall w_east offset 7800 in r_bath
furniture mirror against wall w_east offset 7800 in r_bath
furniture wc against wall w_east offset 9200 in r_bath
furniture bathtub against wall w_south offset 7450 in r_bath
furniture bidet against wall w_east offset 8500 in r_bath
title { project "Furnished Flat" drawn_by "ArchLang" date "2026-08-26" }
}