BIM & Architecture
Same parametric idea, tuned for buildings: elements are typed and hosted (a door only exists inside a wall), structure is first-class, and a schedule or a drawing sheet is just a view of the same model, not a separate document.
Rooms
A room is not drawn; it is the volume its walls enclose. ROOM BOUNDARY is given the walls that bound a space and derives the space itself from them, so the figures a schedule needs follow from the model rather than being entered alongside it.
NEW BIM PROJECT UNITS "mm" SET ?bim
AFTER BIM ?bim WALL FROM 0,0 TO 6000,0 HEIGHT 3000 THICKNESS 200 SET ?w1
AFTER BIM ?bim WALL FROM 6000,0 TO 6000,4000 HEIGHT 3000 THICKNESS 200 SET ?w2
AFTER BIM ?bim WALL FROM 6000,4000 TO 0,4000 HEIGHT 3000 THICKNESS 200 SET ?w3
AFTER BIM ?bim WALL FROM 0,4000 TO 0,0 HEIGHT 3000 THICKNESS 200 SET ?w4
AFTER BIM ?bim ROOM BOUNDARY [?w1 AND ?w2 AND ?w3 AND ?w4] NAME "Studio" SET ?studio
AFTER EMIT ?studio("area") & " m2, " & ?studio("volume") & " m3"
(* 22.04 m2, 66.12 m3 *)
Walls are centred on the lines given, so a 6000 x 4000 layout in 200 mm walls encloses 5800 x 3800 mm. The area reported is the floor the room actually has, not the rectangle its walls occupy.
NEW BIM PROJECT UNITS "mm" SET ?bim
AFTER BIM ?bim WALL FROM 0,0 TO 6000,0 HEIGHT 3000 THICKNESS 200 SET ?a
AFTER BIM ?bim WALL FROM 6000,0 TO 6000,2000 HEIGHT 3000 THICKNESS 200 SET ?b
AFTER BIM ?bim WALL FROM 6000,2000 TO 3000,2000 HEIGHT 3000 THICKNESS 200 SET ?c
AFTER BIM ?bim WALL FROM 3000,2000 TO 3000,5000 HEIGHT 3000 THICKNESS 200 SET ?d
AFTER BIM ?bim WALL FROM 3000,5000 TO 0,5000 HEIGHT 3000 THICKNESS 200 SET ?e
AFTER BIM ?bim WALL FROM 0,5000 TO 0,0 HEIGHT 3000 THICKNESS 200 SET ?f
AFTER BIM ?bim ROOM BOUNDARY [?a AND ?b AND ?c AND ?d AND ?e AND ?f] NAME "Workshop" SET ?room
AFTER EMIT ?room("area") & " m2"
(* 18.85 m2 - the enclosed floor, not the 21 m2 the centrelines describe *)
NEW BIM PROJECT UNITS "mm" SET ?bim
AFTER BIM ?bim LEVEL "Ground Floor" ELEVATION 0 SET ?lvl0
AFTER BIM ?bim LEVEL "Level 1" ELEVATION 3000 SET ?lvl1
AFTER BIM ?bim WALL FROM 0,0 TO 6000,0 HEIGHT 3000 THICKNESS 200 TYPE "Concrete-200mm" SET ?wall1
AFTER BIM ?bim DOOR IN ?wall1 AT 1200 WIDTH 900 HEIGHT 2100 TYPE "Single-Flush" SET ?door1
AFTER BIM ?bim WINDOW IN ?wall1 AT 3200 SILL 900 WIDTH 1500 HEIGHT 1200 SET ?win1
AFTER BIM ?bim COLUMN AT 0,0 HEIGHT 3000 TYPE "UC-254x254" SET ?col1
AFTER BIM ?bim BEAM FROM 0,0 TO 6000,0 ELEVATION 3000 TYPE "UB-406x178" SET ?beam1
BIM ?bim LIST SET ?all
AFTER COUNT ?all SET ?n
AFTER EMIT ?n & " elements"
AFTER BIM ?bim SCHEDULE "Door Schedule" CATEGORY "Door" SET ?doors
AFTER FOREACH ?doors SET ?d
OPEN
EMIT ?d("label") & " - " & ?d("type") & "<br>"
CLOSE
CATEGORY matches an element’s type or the name you gave it. To the geometry kernel a door is a window hosted in a wall, so a schedule of “Doors” finds them by what you called them - which is why naming elements as you place them is worth the keystrokes.BIM ?bim EXPORT AS "ifc" SET ?path
AFTER EMIT ?path
A model leaves as IFC4, the format every other BIM tool reads. A building assembled here opens in Revit, ArchiCAD or Solibri as walls, columns and windows - not as a mesh that used to be a building.
BIM ?bim EXPORT AS "ifc" SET ?path
AFTER EMIT ?path