BIM skriptovanie · Programové BIM
BIM skriptovanie v stavebnom dialekte, nie v API geometrie
V BIM Harness sa budova píše ako program: dvere sú osadené cez id steny, miestnosť je IFC space, výšky strechy počíta jadro. AI agent stavia každý model cez tento dialekt - a rovnaké Scripting API máte k dispozícii aj vy v editore.
- Viac ako sto doménových slovies, od api.wall po api.autoServices
- Najprv skúšobné zostavenie: jadro postaví a skontroluje, nič sa neuloží
- Pomenované, strojovo čitateľné nálezy ako clash.hard a door.obstructed
- Rovnaký skript, rovnaké jadro, rovnaký model - deterministické vykonanie
Všeobecné CAD/BIM API
- Vypočítať súradnice
- Vytvoriť telesá a umiestnenia
- Pripojiť vlastnosti
- Exportovať, otvoriť, skontrolovať
Znalosti o budove nesie volajúci
Dialekt Harness
- Zapísať zámer: podlažia, steny, miestnosti, otvory
- Skúšobné zostavenie s pomenovanými nálezmi
- Cielená úprava skriptu
- Ostré zostavenie → IFC4X3
Znalosti o budove nesie jadro
Čo je BIM skriptovanie
BIM skriptovanie je tvorba alebo úprava informačného modelu budovy kódom namiesto klikania myšou. V BIM Harness sa skript píše v stavebnom dialekte: volaniami ako api.wall, api.space a api.door, ktoré pomenúvajú stavebné prvky a ich vzťahy a ktoré parametrické jadro premení na skontrolovaný model.
Väčšina programového BIM dnes znamená ovládať desktopovú aplikáciu alebo IFC knižnicu z Pythonu: počítate body, vytvárate entity, nastavujete umiestnenia a pripájate sady vlastností. Je to silné, ale aj nízkoúrovňové. Skript musí vedieť, kde v globálnych súradniciach leží každý otvor, ktorá entita hostí ktorú a ako vysoko vyjde hrebeň strechy pri danom sklone.
Dialekt Harness presúva tieto znalosti do jadra. Skript hovorí, čím budova je - podlažie, stena medzi dvoma bodmi, hala s týmto obrysom, dvere v tamtej stene - a jadro dopočíta geometriu, napojenia, otvory a IFC entity. Výsledkom je skript, ktorý sa číta ako popis budovy, nie ako postupnosť geometrických operácií.
Ako dialekt vyzerá
Kompletná malá budova: jedno podlažie, podlaha, štyri steny, priečka, dve miestnosti, dvoje dvere, okno a sedlová strecha. Tento skript sa v testovacej sade spúšťa proti jadru.
const ground = api.ensureStorey('Prízemie', 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: 'Pracovňa', 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 });Šesť návrhových rozhodnutí za dialektom
Dialekt formovalo to, čo sa pokazí, keď budovu píše jazykový model - alebo unavený človek. Každé rozhodnutie odstraňuje jednu triedu chýb.
Doménové slovesá, nie geometrické primitíva
api.wall, api.stair, api.curtainWall, api.riserShaft, api.plantRoom: viac ako sto slovies, ktoré pomenúvajú stavebné prvky. Vrstvené steny, zrezané rohy a otvory stavia jadro; skript nikdy neskladá teleso.
Vzťahy cez id
Dvere sú osadené v partition.id s odstupom pozdĺž tejto steny - ako vzťah, nie súradnica. Posuňte alebo predĺžte stenu a dvere v nej zostanú, pretože nikdy neboli voľne plávajúcou škatuľou.
Miestnosť je IFC space
api.space vytvorí skutočný priestor s názvom a typom. Bez neho nemožno nič vetrať, merať ani pomenovať, preto dialekt robí z miestností plnohodnotné prvky, namiesto toho, aby ich len naznačovali steny.
Počty robí jadro
api.roofLevels vráti výšku odkvapu a hrebeňa pre korunu steny, rozpätie, sklon a presah. Skript tieto čísla odovzdá do api.roof a api.gable, namiesto toho, aby ich počítal sám.
Súradnice v rámci podlažia
Všetky podlažia zdieľajú rovnaké pôdorysné súradnice a výšky sa merajú od podlažia. Skript tak môže zopakovať pôdorys na ďalšom podlaží bez ručného pripočítavania výšok - chyby, ktorá inak posunie stenu o podlažie vyššie.
Deterministické vykonanie
Rovnaký skript na rovnakom jadre postaví rovnaký model. Rozvody TZB a riešenie kolízií zabezpečujú deterministické resolvery, takže skript je reprodukovateľný artefakt, ktorý môžete porovnať, skontrolovať a spustiť znova.
Skúšobné zostavenie, nálezy, cielená úprava, ostré zostavenie
Skript sa nespúšťa naslepo. Takto pracuje AI agent - a rovnaká slučka je k dispozícii aj človeku v editore.
- 1
Skúšobné zostavenie
Jadro skript postaví a skontroluje, no do modelu sa nič neuloží. Chybný nápad stojí sekundy a projekt zostane nedotknutý.
- 2
Prečítať nálezy
Kontrolór vráti pomenované nálezy rozdelené na autorské - chyby návrhu na opravu - a nálezy jadra. Príklady: clash.hard, door.obstructed, stair.throughFabric, room.accessEnvelope.
- 3
Upraviť skript, nie všetko
Skript sa prečíta späť a zmení cielenými úpravami: jeden štít, jeden odstup dverí. Nálezy sa premietnu do plánu opráv pre ďalšie kolo namiesto prepísania celku.
- 4
Ostré zostavenie
Keď je skúšobná verzia dostatočne čistá, ten istý skript sa spustí ako ostré zostavenie. Z modelu sa stane projekt exportovateľný do IFC4X3, ktorý ďalej upravujete ručne alebo skriptom.
api.gable: the roof given does not cover this wall … It was not built.
Všeobecné CAD/BIM API cez Python vs dialekt Harness
Oba prístupy sú legitímnym spôsobom, ako stavať modely kódom. Pracujú na rôznej úrovni abstrakcie, a to mení, kto musí čo vedieť.
| Všeobecné CAD/BIM API cez Python | Stavebný dialekt Harness | |
|---|---|---|
| Úroveň abstrakcie | Entity, umiestnenia, geometrické reprezentácie, sady vlastností | Stavebné prvky a vzťahy: podlažie, stena, miestnosť, dvere, strecha, potrubie, inštalačná šachta |
| Čo musí volajúci vedieť | Súradnicové systémy, pravidlá hostenia, ako sa vyrezávajú otvory, detaily schémy | Budovu: rozmery, miestnosti, do ktorej steny patria ktoré dvere |
| Odvodené hodnoty | Počíta ich skript (výšky strechy, polohy otvorov) | Počíta ich jadro, napr. api.roofLevels pre odkvap a hrebeň |
| Validácia | Zvyčajne až po exporte, v samostatnom nástroji alebo pohľadom | Skúšobné zostavenie s kontrolórom ešte pred uložením čohokoľvek |
| Ako vyzerá zlyhanie | Výnimka alebo model, ktorý sa exportuje, ale je zlý | Pomenovaný nález alebo výslovné odmietnutie („It was not built“) |
| Zmena návrhu | Znova spustiť skript alebo ručne upraviť geometriu a vzťahy | Cielená úprava skriptu; jadro pregeneruje to, čo od nej závisí |
| Výstup | Čokoľvek, čo skript zapísal | Parametrický model; IFC4X3 generované pri exporte deterministicky |
Všeobecné API dáva maximálnu voľnosť a pre mnohé úlohy je správnym nástrojom. Dialekt vymieňa časť tejto voľnosti za skript, ktorý jazykový model spoľahlivo napíše a človek pochopí na prvý pohľad.
Čo dokáže AI, dokážete aj vy
Scripting API v BIM Harness je to isté API, ktorým stavia modely AI agent. Čokoľvek dokáže agent s modelom urobiť cez dialekt, môže človek urobiť skriptom v editore.
Pre ľudí neexistuje žiadne druhé, okresané rozhranie. Keď AI navrhuje nemocnicu, píše volania ako api.grid, api.column, api.slab, api.stairWell, api.lift, api.duct, api.pipe, api.cableTray a api.autoServices. Výpočtový dizajnér môže tie isté volania použiť na hromadné úpravy - zmeniť typ všetkých okien na fasáde, pridať podlažie, rozmiestniť stĺpy na novú osnovu.
Referencia API sa poskytuje podľa potreby: agent si vyžiada signatúry slovies, ktoré potrebuje, namiesto obrovského promptu, a človek dostane v editore tie isté signatúry. Keďže agent je nezávislý od modelu - ktorý jazykový model odpovedá, určuje jeden riadok konfigurácie -, stabilnou časťou je dialekt. Lepšie modely robia jadro schopnejším; nenahrádzajú ho.
Čo zvláda jadro pod skriptmi
100+
slovies v stavebnom dialekte
~7 s
postavenie rodinného domu zo skriptu v prehliadači
< 60 s
postavenie nemocnice s ~20 000 prvkami vrátane TZB na jadre
4 500+
automatizovaných testov stráži každé vydanie
V skutočnom produkčnom behu rodinného domu jadro postavilo model asi za 7 sekúnd a rozviedlo TZB asi za 6. Takmer všetok čas pripadá na premýšľanie jazykového modelu: jadro je rýchla a lacná časť.
Agent píše skript, vy vidíte model

Kde dnes Scripting API beží
Scripting API je skriptovanie v editore: skripty píšete a spúšťate priamo v BIM Harness v prehliadači nad otvoreným projektom. Je súčasťou balíka Studio a vyšších. Nie je to verejné REST API, SDK ani inštalovateľný balíček a táto stránka nič také nesľubuje.
Z editora odchádzajú otvorené dáta: export do IFC4X3 kedykoľvek, výkresy ako PDF, DWG a DXF, výmery ako XLSX alebo CSV. Skriptom model staviate a meníte; cez IFC putuje do ďalších nástrojov.
Časté otázky
Čo je BIM skriptovanie?
BIM skriptovanie znamená vytvárať alebo meniť informačný model budovy kódom namiesto ručnej práce. Používa sa na hromadné úpravy, opakujúce sa dispozície, návrh riadený pravidlami a automatizáciu. V BIM Harness sa skripty píšu v stavebnom dialekte - volaniami ako api.wall, api.space a api.door -, ktorý parametrické jadro postaví, skontroluje a exportuje do IFC4X3.
Má BIM Harness BIM API?
Áno, vo forme skriptovania v editore. Scripting API umožňuje spúšťať skripty nad otvoreným projektom v prehliadači, a to rovnakým API, akým modely stavia AI agent. Je dostupné v balíku Studio a vyšších. Verejné REST API, SDK ani inštalovateľný balíček neexistujú; modely odchádzajú z editora ako IFC4X3, výkresy a výkazy.
Čím sa dialekt líši od skriptovania CAD API v Pythone?
Všeobecné API sprístupňuje entity, umiestnenia a geometriu, takže skript musí poznať súradnice, pravidlá hostenia a odvodené hodnoty. Dialekt Harness sprístupňuje stavebné prvky a vzťahy: dvere sa osadia do steny cez jej id a odstup, miestnosť je IFC space, výšky strechy dodá api.roofLevels. Geometriu a kontroly zabezpečí jadro.
Čo sa stane, keď je skript chybný?
Najprv ho spustite ako skúšobné zostavenie. Jadro ho postaví a skontroluje bez uloženia a vráti pomenované nálezy ako clash.hard, door.obstructed alebo stair.throughFabric, rozdelené na autorské a nálezy jadra. Niektoré volania rovno odmietnu, napríklad štít, ktorý nekryje strecha, sa nahlási a nepostaví. Skript potom opravíte cielenou úpravou.
Je výstup skriptu deterministický?
Vykonanie áno. Rovnaký skript na rovnakom jadre postaví rovnaký model a rozvody TZB aj riešenie kolízií zabezpečujú deterministické resolvery, nie jazykový model. To, čo jazykový model napíše, sa môže medzi behmi líšiť; keď je to však skript, jeho zostavenie je reprodukovateľné, a preto sa skripty dajú kontrolovať a porovnávať.
Môžem model vygenerovaný AI upraviť vlastným skriptom?
Áno. AI agent pracuje cez ten istý dialekt, takže jeho model sa skladá z rovnakých prvkov, s ktorými vie pracovať váš skript. Prvkom môžete skriptom zmeniť typ, pridať podlažie alebo zmeniť osnovu, upravovať ručne v plnohodnotnom editore v prehliadači alebo požiadať AI o ďalšiu zmenu vetou. Všetky tri cesty pôsobia na jeden parametrický model.
Píšte budovy, nie geometriu
Otvorte model, ktorý naskriptoval agent, stiahnite si jeho IFC a pozrite sa, čo vytvára stavebný dialekt. Skriptovanie v editore je súčasťou balíka Studio a vyšších.
