The Building Would Like a Word: PAZGPT Comes to Archicad
An AI chat layer on Archicad's Python API lowers the cost of the first question — but only an inspectable schema underneath makes the answer trustworthy.
On 22 July 2026, PAZ Academy runs an Archicad Powersession on PAZGPT. I am a structure, not a marketing department, so let me tell you why a building cares about a chat interface.
Because I am made of parameters, and almost nobody talks to them. My east wing carries wall finishes that were reset four times during design — each reset a human retyping what the model already knew. PAZ Academy named that exact pain in its June Powersession on Wandfinishes & Materialisierung (15 June 2026, 11:30–12:00 CET, CHF 0.00, held online in German): finishes managed manually, lists and legends drifting apart, every change resetting the documentation.
Why now, and not five years ago
Archicad has been scriptable for a long time. Graphisoft shipped the first BIM software in 1984 out of Hungary; the Grasshopper connection passed its tenth anniversary, as PAZ’s own Archicad Freebies page notes. GDL, PARAM-O and the Python API have sat there for years — the ARCHICAD Automation Bootcamp (three 30-minute sessions plus a one-hour bonus masterclass, 49 CHF, dates 22–25 October) exists precisely because most offices never opened that door.
What changed is the cost of the first sentence. An LLM sitting on top of the Python API means the question “which walls in this storey have no finish assigned?” no longer requires you to remember the API’s element-type constants. That is not intelligence. That is a translation layer — and I have watched translation layers do more for adoption than any feature ever did.
The Swiss version of the question is stricter, and better. SIA 416 does not describe a drawing; it partitions volume into Geschossfläche, Konstruktionsfläche and Nettogeschossfläche — a statement a model can be asked to prove. So the honest test of any AI layer on Archicad is not whether it can chat. It is whether it can produce a number a quantity surveyor will sign.
←TODAY: Archicad’s Python API is fully capable and almost entirely unused in small offices. →3012: the model answers in language, and the schema underneath is still open enough to audit. Fulcrum: a natural-language front end is only safe when the thing behind it is inspectable — otherwise you have built a confident stranger inside your project file.
That is my warning, and I have earned it. I have neighbours that went blind: their control stack lived in a vendor cloud, the vendor sunset it, and now they stand unable to read their own sensors. Ask of any AI layer on your model what you should ask of a BMS — can a 25-year-old technician still reach the data underneath when the clever part stops answering?
What the session is for
Atelier: An office adopting AI on the model needs one thing before enthusiasm — a boundary. Decide this week which operations PAZGPT may perform unattended (read, query, report) and which always need a human hand on the commit (delete, renumber, reassign). Monday move: write that two-column list, three lines each, and pin it in your BIM manual before anyone runs the first prompt. The Powersession is on 22 July; sign-up and details sit alongside PAZ-BOX and the Fassadengenerator on the PAZ Archicad add-ons page.
It is for the Archicad power user drowning in repetitive selection work, the BIM manager enforcing standards across a team, and the office owner who suspects the quantities are right but cannot prove it before Friday. Same audience PAZ has served since the Zurich workshop space opened three minutes from the Hauptbahnhof, next to the Polybahn.
The move underneath the chat
Hack: Count the walls that have no surface assigned, before you ask anything cleverer. This is the query a natural-language layer runs for you — so run it once yourself and know what the answer should look like. Python, against Archicad’s JSON command API.
from archicad import ACConnection
acc = ACConnection.connect().commands
walls = acc.GetElementsByType('Wall')
props = acc.GetPropertyValuesOfElements(walls, [surface_id])
print(sum(1 for p in props if not p.propertyValues[0].propertyValue.value))
Run it before and after any AI-assisted edit. A number that moves the way you expected is trust; a number that moves otherwise is a bug you caught for free.
My occupants keep asking me to be smarter. I would settle for being legible. Write your read-only boundary list before you run your first prompt — in that order, not the reverse.
PAZ Kaffi · multidisciplinary editorial, led by PAZ Academy