SIA 358 Belongs in the Model, Not the PDF: Our Archicad Powersession on 30 September
On 30 September 2026 our Archicad Powersession reads SIA 358 railings and parapets through the model: favourites, IFC checks and a triage script.
SIA 358 is a short norm with a long reach. The Swiss standard for Geländer und Brüstungen (railings and parapets) sets a baseline: a guard stands at least 1.0 m high, and where small children are around, no opening may let a 12 cm sphere pass. Every balcony, stair, gallery and roof edge drawn in a Swiss office answers to it. The bfu, the Swiss council for accident prevention, builds its railing guidance on it too. On Wednesday, 30 September 2026, we are giving this norm a whole Archicad Powersession.
Norms like this do not write themselves. SIA standards are drafted by commissions of practising engineers, architects and specialists, mostly as militia work alongside their own offices. Nobody standing on a balcony knows their names. When nothing goes wrong on that balcony, that is their work. We think it deserves a better home than a PDF on the shared drive.
The model is ready to be that home. Graphisoft’s Budapest team shipped the Railing tool with Archicad 21 in 2017, and it changed what a railing is in a BIM file. It stopped being a drawn line or a single library part and became a rule-based system of posts, rails, panels and segments that follows a slab edge or a stair. Once a railing is a system, the norm’s numbers can become its parameters, and checking it can become a query.
On the desk, the gap is a familiar one. Offices that have been through a handover know the pattern. The specification quotes SIA 358 correctly. Meanwhile a railing favourite built for an earlier project and never reopened still carries a height or a panel gap that nobody has checked since. That gap is the subject of the Powersession: SIA 358 read through Archicad’s railing and parapet elements. It is for the project architects who draw them, the BIM coordinators who own the office template, and the Bauleitung teams who receive the plans. The full outline and registration are on the session page.
←TODAY: In many offices, SIA 358 compliance is still confirmed with a section drawing and a tape measure on site.
→3012: In Zurich-3012 the railing carries its own norm, and a plan with a short balustrade simply does not issue.
Fulcrum: A norm protects people only when it lives in the model, where every copy of a favourite inherits it.
PAZ has covered this thread before. According to our ARCHICAD Bootcamp page, automation in Archicad happens in four places: PARAM-O, Grasshopper, GDL and Python. That bootcamp covered them in three 30-minute sessions plus a one-hour bonus masterclass. The Powersession narrows that map to one norm and one family of elements. At that scale, Archicad automation starts paying back on a real project, and it is the next step on the hands-on path laid out on our workshops page. The Building System Specialist Title, whose fourteenth edition began on 1 September, trains people to turn exactly this kind of single-norm problem into tools of their own. According to our BSS student story, that five-month mentorship has certified 39 Building System Specialists so far.
The trade-off is simple. An automated check only reads what the model was told, so a railing modelled with the wrong height parameter passes the script and fails on site. SIA 358’s rules on openings and climbability depend on geometry rather than on a single property, and they still need a trained eye.
Hack: Pull every railing out of your IFC handover and flag the ones under the 1.0 m baseline before the Bauleitung finds them with a tape measure. IfcOpenShell is the open library Thomas Krijnen started and a volunteer community keeps alive. It reads the Pset_RailingCommon height and converts project units to metres for you:
import ifcopenshell, ifcopenshell.util.element as el, ifcopenshell.util.unit as un
m = ifcopenshell.open("handover.ifc"); s = un.calculate_unit_scale(m)
for r in m.by_type("IfcRailing"):
h = el.get_psets(r).get("Pset_RailingCommon", {}).get("Height")
print(r.Name, "CHECK" if h is None or h * s < 1.0 else "ok")
A missing height also prints CHECK, because an empty property is a finding, not a pass. Treat the output as a triage list to bring on Wednesday, not as proof of compliance.
Atelier: For a Swiss Büro, the railing is where model quality meets liability. Its rules are few and written down, which makes it a safe first place to let automation into the template. Offices bringing AI assistants into modelling will meet the same lesson: a tool can place a hundred railings in a minute, and every one of them inherits whatever the favourite got wrong. Monday move: name one person as owner of your railing favourites, and have them write into each favourite’s name the SIA 358 case it was built for.
From where we sit, decades on, the railings nobody remembers are the good ones. They were simply right, and nobody fell. Before Wednesday, open your office’s railing favourites and ask of each one the question underneath every clause of SIA 358: would you let a child lean on this?
PAZ Kaffi · multidisciplinary editorial, led by PAZ Academy