Apartment Remodel — an ArchLang floor plan example
A flat drawn for its works: two demolished partitions dashed, one new wall, and rooms measured as they will be.
This plan compiles to 6 rooms, 83.6 m² of floor area and 6 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.
# A remodel of an apartment shell, drawn as one sheet: the walls that come out, the wall
# that goes in, and the flat as it will be lived in.
# - `status demolish` takes a wall out of the plan: it is drawn dashed, with no poché, and
# no fact reads it (it encloses nothing, hosts nothing, counts in no area).
# - `status new` is a wall like any other; the DXF files it on its own layer.
# - a wall that writes no status is `existing`.
# The rooms are the flat after the works: the old kitchen, dining room and living room become
# one space, and the old main bedroom is split into a bedroom and a study.
plan "Apartment Remodel" {
units mm
grid 100
scale 1:100
north up
schedule rooms
legend
wall id=shell exterior thickness 300 { (0,0) (11000,0) (11000,7600) (0,7600) close }
wall id=p_living partition thickness 100 { (6000,0) (6000,7600) }
wall id=p_hall_n partition thickness 100 { (6000,4000) (11000,4000) }
wall id=p_hall_s partition thickness 100 { (6000,5400) (11000,5400) }
wall id=p_bath partition thickness 100 { (9000,5400) (9000,7600) }
# Out: the kitchen's two walls.
wall id=x_kitchen partition thickness 100 status demolish { (3000,0) (3000,7600) }
wall id=x_dining partition thickness 100 status demolish { (0,4000) (3000,4000) }
# In: the study's wall.
wall id=n_study partition thickness 100 status new { (9200,0) (9200,4000) }
room id=r_living at (0,0) size 6000x7600 label "Kitchen / Living" at (4500,3200) uses kitchen living
room id=r_bed at (6000,0) size 3200x4000 label "Bedroom" at (7600,2800) uses bedroom
room id=r_study at (9200,0) size 1800x4000 label "Study" uses office
room id=r_hall at (6000,4000) size 5000x1400 label "Hall" uses hall
room id=r_bath at (6000,5400) size 3000x2200 label "Bathroom" uses bath
room id=r_util at (9000,5400) size 2000x2200 label "Utility" uses utility
door id=d_front on r_hall.right at center width 900 swing into r_hall
opening between r_hall and r_living at center width 1000
door between r_hall and r_bed at 1000 from start width 900 swing into r_bed
door between r_hall and r_study at 600 from start width 800 swing into r_study
door between r_hall and r_bath at 1900 from start width 800 hinge near end swing into r_bath
door between r_hall and r_util at 600 from start width 800 swing into r_util
window on r_living.top at 1500 from start width 1800
window on r_living.top at 4500 from start width 1800
window on r_living.left at 5500 from start width 1500
window on r_bed.top width 1500
window on r_study.top width 1000
window on r_bath.bottom width 800
furniture kitchen_sink against r_living.left offset 1200 in r_living
furniture counter against r_living.left offset 1900 in r_living
furniture stove against r_living.left offset 2600 in r_living
furniture fridge against r_living.left offset 3600 in r_living
furniture table at (3600,1300) size 1400x900 label "Table" in r_living
furniture sofa at (4000,4400) size 900x2000 label "Sofa" in r_living
furniture bed in r_bed anchor top-left flush inset 300 size 1500x2000 label "Bed"
furniture wardrobe in r_bed anchor bottom-right flush size 1200x600
furniture desk in r_study anchor top-left flush size 1200x600
furniture shower in r_bath anchor bottom-left flush size 900x900
furniture wc against r_bath.bottom offset 1400 size 400x700
furniture basin against r_bath.top offset 500 size 600x500
furniture washing_machine against r_util.right offset 1500 size 600x600
title {
project "Apartment Remodel"
drawn_by "ArchCanvas"
date "2026-10-28"
}
}