-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtwo-storey.arch
More file actions
91 lines (77 loc) · 4.36 KB
/
Copy pathtwo-storey.arch
File metadata and controls
91 lines (77 loc) · 4.36 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
# A compact two-storey house — one drawing per storey, from `level` blocks.
#
# Settings and the plan-global `let`s live OUTSIDE the levels and apply to every one of
# them: one building is issued on one sheet at one scale. Each level's body is an ordinary
# plan body, and ids are unique WITHIN a level — so the `stair` below exists on both floors
# at the same coordinates, and that shared id is what declares one shaft: `describe --json`
# reports it under `vertical.connections`, and it is why the first floor needs no front
# door of its own to lint clean.
plan "Two-storey house" {
units mm
grid 50
paper A3 landscape
north up
dims auto all
let W = 8000 # outer width (wall centerlines)
let D = 7000 # outer depth
let T = 200 # exterior wall thickness
let HALL = 2200 # the stair hall / landing runs the full depth on the left
level 1 "Ground floor" {
wall id=shell exterior thickness T { (0,0) (W,0) (W,D) (0,D) close }
wall id=hall_w partition thickness 100 { (HALL,0) (HALL,D) }
wall id=kitchen_w partition thickness 100 { (HALL,3600) (W,3600) }
room id=hall at (0,0) size 2200x7000 label "Hall" uses hall
room id=living at (2200,0) size 5800x3600 label "Living" uses living
room id=kitchen at (2200,3600) size 5800x3400 label "Kitchen" uses kitchen
door id=front on shell at 21900 width 1000 swing into hall
door id=d_living on hall_w at 1800 width 900 swing into living
door id=d_kitchen on hall_w at 5300 width 900 swing into kitchen
window id=w_living on shell at 5000 width 1800
window id=w_kitchen on shell at 13300 width 1200
furniture sofa in living anchor top flush inset 300 size 2000x850 label "Sofa"
furniture kitchen_sink against wall kitchen_w offset 1200 in kitchen
stair id=stair at (100,1500) size 900x2600 dir up
}
level 2 "First floor" {
wall id=shell exterior thickness T { (0,0) (W,0) (W,D) (0,D) close }
wall id=hall_w partition thickness 100 { (HALL,0) (HALL,D) }
wall id=bath_w partition thickness 100 { (0,4600) (HALL,4600) }
wall id=bed_w partition thickness 100 { (HALL,3600) (W,3600) }
room id=landing at (0,0) size 2200x4600 label "Landing" uses circulation
room id=bath at (0,4600) size 2200x2400 label "Bath" uses bath
room id=bed1 at (2200,0) size 5800x3600 label "Bedroom 1" uses bedroom
room id=bed2 at (2200,3600) size 5800x3400 label "Bedroom 2" uses bedroom
# No exterior door up here: the `stair` below carries the same id as the ground
# floor's, so the access graph reads the landing as reached from outside via the
# storey below. (Before vertical circulation was modelled this floor needed a
# made-up balcony door to lint clean.)
door id=d_bed1 on hall_w at 1800 width 900 swing into bed1
door id=d_bed2 on hall_w at 4100 width 900 swing into bed2
door id=d_bath on bath_w at 1100 width 800 swing into bath
window id=w_bed1 on shell at 5000 width 1500
window id=w_bed2 on shell at 13300 width 1200
window id=w_bath on shell at 24200 width 600
furniture bed in bed1 anchor top-right flush inset 300 size 1500x2000 label "Double"
furniture bed in bed2 anchor bottom flush inset 300 size 1000x2000 label "Single"
furniture wc in bath anchor bottom-left flush size 400x700
furniture basin in bath anchor bottom-right flush size 600x450
stair id=stair at (100,1500) size 900x2600 dir down
# The landing looks down into the hall below over a balustrade: there is no floor
# here, so the plan says so. A `void` is drawn (dashed rectangle + both diagonals)
# and it OBSTRUCTS circulation — you cannot walk across a hole — with the walkable
# halo suppressed on every edge, because you can stand at the railing. It does NOT
# come off the landing's area: that number is the room's floor area and it is what
# the schedule and `describe --json` both report, so subtracting the well here would
# leave the drawing and the table disagreeing. `describe --json` lists it under
# `voids[]` with the room it falls in, which is where a net figure comes from.
void id=gallery at (100,200) size 900x1100
# The eaves, on the top storey only — this level's `shell` is the plan's one
# closed exterior ring on THIS page, so no `wall` clause is needed.
roof overhang 400
}
title {
project "Two-storey house"
drawn_by "ArchLang"
date "2026-07-26"
}
}