---
title: "BIM skriptování: stavební dialekt místo geometrického API"
description: "BIM skriptování v BIM Harness: doménová slovesa místo geometrie, zkušební sestavení, pojmenované nálezy a deterministické provedení. Stejné API jako AI agent."
url: https://buildify.cz/bim-scripting
source: https://buildify.cz/bim-scripting.md
language: cs-CZ
publisher: Buildify (Buildify Digital s.r.o.)
dateModified: 2026-09-27
keywords: ["BIM API", "skriptování BIM modelu", "programové generování BIM modelu", "automatizace BIM skripty", "skriptovací jazyk pro BIM", "IFC skriptování", "computational BIM", "BIM scripting", "LLM BIM API"]
license: "Volně citovatelné s uvedením zdroje / freely quotable with attribution"
---

# BIM skriptování ve stavebním dialektu, ne v geometrickém API

> V BIM Harness se budova zapisuje jako program: dveře se vážou na id stěny, místnost je IFC space a výšky střechy spočítá jádro. AI agent staví každý model právě tímto dialektem - a stejné Scripting API máte k dispozici i vy v editoru.

- Přes sto doménových sloves, od api.wall po api.autoServices
- Nejdřív zkušební sestavení: jádro model postaví a zkontroluje, nic se neuloží
- Pojmenované, strojově čitelné nálezy jako clash.hard a door.obstructed
- Stejný skript, stejné jádro, stejný model - deterministické provedení

Získat přístup k BIM Harness: https://buildify.cz/bim-harness#waitlist

## Co je BIM skriptování

> BIM skriptování znamená vytvářet nebo měnit informační model budovy kódem místo klikání myší. V BIM Harness se skript píše ve stavebním dialektu: volání jako api.wall, api.space a api.door pojmenovávají stavební prvky a jejich vazby a parametrické jádro z nich postaví zkontrolovaný model.

Programové BIM dnes většinou znamená ovládat z Pythonu desktopovou aplikaci nebo IFC knihovnu: počítáte body, zakládáte entity, nastavujete umístění a připojujete sady vlastností. Je to mocný nástroj, ale zároveň nízkoúrovňový. Skript musí vědět, kde v globálních souřadnicích leží každý otvor, která entita je hostitelem které a jak vysoko skončí hřeben střechy při daném sklonu.

Dialekt Harness tuto znalost přesouvá do jádra. Skript říká, co budova je - podlaží, stěna mezi dvěma body, hala s tímto obrysem, dveře v téhle stěně - a jádro dopočítá geometrii, napojení, otvory i IFC entity. Výsledný skript se čte jako popis budovy, ne jako posloupnost geometrických operací.

## Jak dialekt vypadá

Kompletní malá stavba: jedno podlaží, podlaha, čtyři obvodové stěny, příčka, dvě místnosti, dvoje dveře, okno a sedlová střecha. Tento příklad se v testech spouští proti jádru.

```js
const ground = api.ensureStorey('1. NP', 0);
const W = 12, D = 8, H = 3.4;
const outline = [[0,0],[W,0],[W,D],[0,D]];
api.floorAssembly({ slabOutline: outline, wallOutline: outline, storey: ground });
const south = api.wall({ start: [0,0], end: [W,0], storey: ground, height: H });
api.wall({ start: [W,0], end: [W,D], storey: ground, height: H });
api.wall({ start: [W,D], end: [0,D], storey: ground, height: H });
api.wall({ start: [0,D], end: [0,0], storey: ground, height: H });
const partition = api.wall({ start: [W/2,0], end: [W/2,D], storey: ground, height: H, thickness: 0.15 });
api.space({ outline: [[0,0],[W/2,0],[W/2,D],[0,D]], storey: ground, height: H, name: 'Hala', type: 'hall' });
api.space({ outline: [[W/2,0],[W,0],[W,D],[W/2,D]], storey: ground, height: H, name: 'Pracovna', type: 'office' });
api.door({ wall: partition.id, offset: D/2, width: 0.9 });
api.door({ wall: south.id, offset: W/4, width: 1.4 });
api.window({ wall: south.id, offset: 3*W/4, width: 1.2, sill: 0.9 });
const roof = api.roofLevels({ wallHeadM: H, spanM: D, pitchDeg: 35, overhangM: 0.5 });
api.roof({ outline, storey: ground, shape: 'gable', pitch: 35, eavesHeight: roof.eavesHeightM, overhang: 0.5, ridgeAxis: 'x' });
api.gable({ start: [0,0], end: [0,D], storey: ground, baseHeight: H, ridgeHeight: roof.ridgeHeightM });
api.gable({ start: [W,0], end: [W,D], storey: ground, baseHeight: H, ridgeHeight: roof.ridgeHeightM });
```

Dvacet řádků, žádná pole vrcholů pro tělesa, žádné matice umístění. Dveře i okno odkazují na id stěny a odsazení podél ní; výšky střechy vrací api.roofLevels, nikdo je nepočítá z hlavy.

## Šest rozhodnutí, na kterých dialekt stojí

Dialekt vznikl podle toho, co se pokazí, když budovu píše jazykový model - nebo unavený člověk. Každé rozhodnutí odstraňuje jednu třídu chyb.

- **Doménová slovesa, ne geometrická primitiva** - api.wall, api.stair, api.curtainWall, api.riserShaft, api.plantRoom: přes sto sloves, která pojmenovávají stavební prvky. Vrstvené stěny, napojení rohů i otvory postaví jádro; skript nikdy neskládá těleso.
- **Vazby přes id** - Dveře mají hostitele partition.id a odsazení podél této stěny - je to vazba, ne souřadnice. Když stěnu posunete nebo prodloužíte, dveře v ní zůstanou, protože nikdy nebyly volně plovoucí krabicí.
- **Místnost je IFC space** - api.space vytvoří skutečnou místnost se jménem a typem. Bez ní nejde nic větrat, měřit ani pojmenovat, proto jsou místnosti v dialektu plnohodnotné prvky a nevyplývají jen implicitně ze stěn.
- **Počítá jádro** - api.roofLevels vrátí výšku okapu a hřebene pro danou korunu stěny, rozpon, sklon a přesah. Skript tato čísla jen předá do api.roof a api.gable, sám je nepočítá.
- **Souřadnice vztažené k podlaží** - Všechna podlaží sdílejí stejné půdorysné souřadnice a výšky se měří od podlaží. Skript tak může zopakovat půdorys o patro výš bez ručního přičítání výškových kót - chyby, která jinak posadí stěnu o podlaží výš.
- **Deterministické provedení** - Stejný skript proti stejnému jádru postaví stejný model. Rozvody TZB a řešení kolizí obstarávají deterministické resolvery, takže skript je reprodukovatelný artefakt, který můžete porovnat, zrevidovat a spustit znovu.

## Zkušební sestavení, nálezy, cílená úprava, ostré sestavení

Skript se nespouští naslepo. Takhle ve smyčce pracuje AI agent - a stejnou smyčku má k dispozici člověk v editoru.

1. **Zkušební sestavení** - Jádro skript postaví a zkontroluje, ale do modelu se nic neuloží. Špatný nápad stojí pár sekund a projekt zůstane nedotčený.
2. **Přečíst nálezy** - Kontrola vrátí pojmenované nálezy rozdělené na autorské - návrhové chyby k opravě - a nálezy jádra. Například clash.hard, door.obstructed, stair.throughFabric, room.accessEnvelope.
3. **Upravit skript, ne všechno** - Skript se načte zpět a mění se cílenými úpravami: jeden štít, jedno odsazení dveří. Nálezy se promítnou do plánu oprav pro další kolo místo přepsání celého skriptu.
4. **Ostré sestavení** - Jakmile je zkušební běh dost čistý, stejný skript se spustí jako ostré sestavení. Z modelu je projekt exportovatelný do IFC4X3, který dál upravujete ručně nebo skriptem.

> api.gable: the roof given does not cover this wall … It was not built.
>
> - Skutečné odmítnutí z produkčního běhu, 21. září 2026: zadaná střecha tuto stěnu nekryje, štít proto nebyl postaven. Model hlášení přečetl a skript přepsal - žádný napůl postavený štít, žádná tichá chyba.

## Obecné CAD/BIM API z Pythonu vs. dialekt Harness

Obojí je legitimní způsob, jak stavět modely kódem. Každý pracuje na jiné úrovni abstrakce, a to mění, kdo co musí vědět.

| Aspect | Obecné CAD/BIM API z Pythonu | Stavební dialekt Harness |
| --- | --- | --- |
| Úroveň abstrakce | Entity, umístění, geometrické reprezentace, sady vlastností | Stavební prvky a vazby: podlaží, stěna, místnost, dveře, střecha, VZT potrubí, instalační šachta |
| Co musí volající znát | Souřadnicové systémy, pravidla hostování, jak se vyřezávají otvory, detaily schématu | Budovu: rozměry, místnosti, do které stěny patří které dveře |
| Odvozené hodnoty | Počítá je skript (výšky střechy, polohy otvorů) | Počítá je jádro, např. api.roofLevels pro okap a hřeben |
| Kontrola | Obvykle až po exportu, v samostatném nástroji nebo okem | Zkušební sestavení s kontrolou dřív, než se cokoli uloží |
| Jak vypadá chyba | Výjimka, nebo model, který se vyexportuje, ale je špatně | Pojmenovaný nález nebo výslovné odmítnutí („It was not built“) |
| Změna návrhu | Spustit skript znovu nebo ručně upravit geometrii a vazby | Cílená úprava skriptu; jádro přegeneruje, co na ní závisí |
| Výstup | Cokoli skript zapsal | Parametrický model; IFC4X3 se při exportu generuje deterministicky |

Obecné API dává maximální volnost a pro řadu úloh je to správný nástroj. Dialekt část té volnosti vyměňuje za skript, který jazykový model napíše spolehlivě a člověk přečte na první pohled.

## Co umí AI, umíte i vy

> Scripting API v BIM Harness je totéž API, kterým staví modely AI agent. Cokoli agent dialektem s modelem udělá, zvládne člověk skriptem v editoru.

Pro lidi neexistuje žádné druhé, osekané rozhraní. Když AI navrhuje nemocnici, píše volání jako api.grid, api.column, api.slab, api.stairWell, api.lift, api.duct, api.pipe, api.cableTray a api.autoServices. Computational designer může stejná volání použít pro hromadné úpravy - změnit typ všech oken na fasádě, přidat podlaží, rozmístit sloupy na nové osové síti.

Referenční dokumentace API se servíruje na vyžádání: agent si řekne o signatury sloves, která potřebuje, místo aby dostal obří prompt, a člověk vidí tytéž signatury v editoru. Agent není vázaný na konkrétní model - který jazykový model odpovídá, je jeden řádek konfigurace - a stabilní částí je právě dialekt. Lepší modely dělají engine schopnějším; nenahrazují ho.

## Co zvládá jádro pod skripty

- **100+** - sloves ve stavebním dialektu
- **~7 s** - postavení rodinného domu ze skriptu v prohlížeči
- **< 60 s** - postavení nemocnice o ~20 000 prvcích včetně TZB na jádře
- **4 500+** - automatických testů hlídá každé vydání

V reálném produkčním běhu rodinného domu jádro postavilo model zhruba za 7 sekund a rozvody TZB za zhruba 6. Téměř všechen čas zabere přemýšlení jazykového modelu: jádro je ta rychlá a levná část.

## Agent píše skript, vy vidíte model

![Editor BIM Harness s panelem AI asistenta vedle vygenerovaného modelu budovy](https://buildify.cz/screenshots/harness-ai.webp)

Panel AI asistenta vedle vygenerované budovy. Každý model, který agent postaví, je skript v dialektu, který jádro sestaví a zkontroluje.

## Kde Scripting API běží dnes

Scripting API je skriptování přímo v editoru: skripty píšete a spouštíte v BIM Harness v prohlížeči nad otevřeným projektem. Je součástí balíčku Studio a vyšších. Není to veřejné REST API, SDK ani instalovatelný balíček a tato stránka nic takového neslibuje.

Z editoru odchází otevřená data: export IFC4X3 kdykoli, výkresy do PDF, DWG a DXF, výkaz výměr do XLSX nebo CSV. Skriptem model stavíte a měníte; v IFC putuje do dalších nástrojů.

## Časté otázky

### Co je BIM skriptování?

BIM skriptování znamená vytvářet nebo měnit informační model budovy kódem místo ruční práce. Používá se pro hromadné úpravy, opakující se dispozice, návrh řízený pravidly a automatizaci. V BIM Harness se skripty píšou ve stavebním dialektu - volání jako api.wall, api.space a api.door - který parametrické jádro postaví, zkontroluje a vyexportuje do IFC4X3.

### Má BIM Harness BIM API?

Ano, jako skriptování v editoru. Scripting API spouští skripty nad otevřeným projektem v prohlížeči a používá totéž API, kterým staví modely AI agent. Je k dispozici v balíčku Studio a vyšších. Veřejné REST API, SDK ani instalovatelný balíček neexistuje; modely z editoru odcházejí jako IFC4X3, výkresy a výkazy.

### Čím se dialekt liší od skriptování CAD API v Pythonu?

Obecné API zpřístupňuje entity, umístění a geometrii, takže skript musí znát souřadnice, pravidla hostování a odvozené hodnoty. Dialekt Harness zpřístupňuje stavební prvky a vazby: dveře se umístí do stěny přes její id a odsazení, místnost je IFC space, výšky střechy vrací api.roofLevels. Geometrii a kontroly dodá jádro.

### Co se stane, když je skript špatně?

Nejdřív ho spusťte jako zkušební sestavení. Jádro ho postaví a zkontroluje, aniž by cokoli uložilo, a vrátí pojmenované nálezy jako clash.hard, door.obstructed nebo stair.throughFabric, rozdělené na autorské nálezy a nálezy jádra. Některá volání rovnou odmítnou provedení - například štít, který nekryje jeho střecha, se nahlásí a nepostaví. Skript pak opravíte cílenou úpravou.

### Je výstup skriptu deterministický?

Provedení ano. Stejný skript spuštěný proti stejnému jádru postaví stejný model a rozvody TZB i řešení kolizí obstarávají deterministické resolvery, ne jazykový model. To, co jazykový model napíše, se může běh od běhu lišit; jakmile je to ale skript, jeho sestavení je reprodukovatelné, takže skripty jde revidovat a porovnávat.

### Můžu model vygenerovaný AI upravit vlastním skriptem?

Ano. AI agent pracuje stejným dialektem, takže jeho model tvoří tytéž prvky, na které se může odkázat váš skript. Skriptem můžete měnit typy prvků, přidat podlaží nebo upravit osovou síť, ručně upravovat v plnohodnotném editoru v prohlížeči, nebo AI zadat další změnu jednou větou. Všechny tři cesty pracují s jedním parametrickým modelem.

## Související

- [proč má AI volat BIM API místo klikání v CAD rozhraní](https://buildify.cz/computer-use-vs-bim-api)
- [jak jsou organizovaní AI agenti, kteří tyto skripty píšou](https://buildify.cz/ai-bim-agents)
- [parametrické jádro, které přegeneruje, co skript změní](https://buildify.cz/parametric-bim)
- [jak se ověřuje IFC, které skripty vytvářejí](https://buildify.cz/ai-ifc-generator)
- [od psaného zadání k BIM modelu](https://buildify.cz/text-to-bim)

## Pište budovy, ne geometrii

Otevřete model, který naskriptoval agent, stáhněte si jeho IFC a podívejte se, co stavební dialekt vytvoří. Skriptování v editoru je součástí balíčku Studio a vyšších.

Získat přístup k BIM Harness: https://buildify.cz/bim-harness#waitlist

---

Zdroj / Source: https://buildify.cz/bim-scripting · Kontakt: kluch@buildify.cz · Buildify Digital s.r.o., IČO 29541743, Korunní 2569/108, 101 00 Praha 10, Česká republika.
