ArchLang Playground

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.

Kitchen /Living 45.6 m² Bedroom 12.8 m² Study 7.2 m² Hall 7.0 m² Bathroom 6.6 m² Utility 4.4 m² ROOM SCHEDULE NO. NAME AREA (CENTRELINE, m²) NET AREA (m²) 01 Kitchen / Living 45.60 42.34 02 Bedroom 12.80 11.78 03 Study 7.20 6.08 04 Hall 7.00 6.24 05 Bathroom 6.60 5.80 06 Utility 4.40 3.60 TOTAL 83.60 75.84 LEGEND poche demolished wc basin shower kitchen_sink counter stove fridge bed wardrobe sofa table desk washing_machine N 02 m PROJECTApartment RemodelDRAWN BYArchCanvasDATE2026-10-28SCALE1:100
"Apartment Remodel" — a 6-room floor plan, 83.6 m² total: Kitchen / Living (45.6 m²), Bedroom (12.8 m²), Study (7.2 m²), Hall (7 m²), Bathroom (6.6 m²), Utility (4.4 m²); 5 doors, 6 windows, entrance via d_front.
Open in the editor

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"
  }
}

Read more