Parametric design with Rhino, Grasshopper and GDL

Előadók: Gaschitz Ágnes, Mai Csilla

Összefoglaló

Egy tervpályázatra készülő modul-rendszerben tervezett paviloncsoport tervfeldolgozását mutattuk be a koncepcióterv végétől a dokumentálásig. A folyamat során használtuk a Rhino szoftverét, a Grasshoppert, az Archicad 24-t és azon belül a GDL programozási nyelvet.

Használt terep: https://cadmapper.com-ról letöltött Rhino file

PLANNINGAREA.3dm

Az Archicad file, amibe Merge-öltük a Rhino-s terepet (File > Interoperability > Merge.

BME_START.pln

A folyamat lépései

Gerenda és tető íve – Rhino és Grasshopper

A csatolt Rhino file megnyitása (CURVES.3dm)

CURVES.3dm

Rajzold meg a pavilon főgerendájának és tetőfedésének ívét. (Erre 3 példa meg van rajzolva. Az általunk megfejlesztett Pavilon modulhoz a 3. verziót használtuk, a további file-ok erre épülnek!)

Nyisd meg a Rhinoban a Grasshoppert:

  • Command line-ba begépelni a “Grasshopper” parancsot
  • Vagy a Toolbaron katt az ikonra

A csatolt GH file beolvasása (CURVES_START.gh)
CURVES_START.gh

A megnyitott GH file-ban lévő “BASE LINE” Node-ba hivatkozd meg a Rhinoban jelölt használandó ívet. (Jobb klikk a Node-ra > Set one Curve > válaszd ki a “használandó ívet”)


Ekkor lesz bemenete a GH scriptnek, a Rhinoban látható lesz a kód által generált forma preview nézete

Gerenda és tető elemek ARCHICADhez való kapcsolása – Grasshopper és ARCHICAD

A csatolt Archicad file (BME_START) megnyitása Archicad 24-gyel

Grasshopper paletta elindítása: File > Interoperability > Grasshopper Connection

A felugró Grasshopper palettán > Start Connection > Ezzel feléled a kapcsolat az Archicad és a Grasshopper között

 Tipp

Ha egyszerre több GH script is nyitva van, akkor a Grasshopperben ki tudjuk választani, hogy melyik kapcsolódjon az Archicadhez (File > Connect Document to Archicad > a felugró dialógon kiválasztani a megfelelő GH file-t > Connect)

Zoom a BEAM OBJECTre > A szem ikonra kattintva megjelenik egy pop-up az elmentett Zoomokkal (Ilyet te is létre tudsz hozni) > Klikk a BEAM melletti szem ikonra)

Az “Object” Node lehelyezése:

  • Az Archicad fülön > Design elemek > Szék ikon
  • Duplaklikk a vászonra > Felugrik egy szövegmező > Elkezded begépelni, hogy “Object” > Kiválasztod a találatok közül a megfelelőt (Ezt a megoldást javaslom, mert nagyon jól és intuitívan kereshetőek így a Grasshopperben elérhető parancsok)

 Tipp

Ha egy Node-ról nem tudod, hogy a Toolbar melyik szekciójában pontosan hol van, akkor a Ctrl+Alt lenyomása közben hosszan kattintva az adott Node-ra a Grasshopper megmutatja, hogy hol érhető el a parancs.

Az “Object Settings” Node lehelyezése:

  • Ugyanúgy, ahogy az Object Node-ot előzőleg

Az Object Settings Node bemeneteinek megadása:

  • Geometry: Mesh Difference Node
  • Object Name: Panel Node, benne a BEAM text
  • Layer: Layer Node (Structural – Bearing)

Az “Object” Node Synchronize bemenetét egy “Boolean Toggle” Node segítségével tudjuk megadni

  • “Boolean Toggle” Node lehelyezése
  • Duplaklikk a Node-on lévő “False” feliratra > ekkor átvált “True”-ra

Anchor Point létrehozása:

  • “Construct Point” Node lehelyezése
  • Duplaklikk a vászonra > Ha egy számot ütsz be és utána egy Entert > Akkor egy Number Slidert hoz létre az adott értékkel > Ez az érték legyen 0!
  • A 0 értéket kösd be a “Construct Point” Node X, Y, Z bemeneteibe > Az origóban hoz létre egy pontot
 Tipp

Sok bemeneti értéket meg lehet adni úgy is, hogy jobb klikkelünk az adott bemenetre és a Set … sorokra kattintva beállítjuk a kívánt értéket. Pl. a Synchronize input esetén beállítjuk a Boolean-t True-ra. Ez egyszerüsítésnek tűnhet, de nem javaslom feltétlenül, mert így nem látszódik kívülről az érték, csak ha “belemész” a Node-ba

Az “Object” Node bemeneteinek megadása:

  • “Boolean Toggle” Node a Synchronize bemenetbe (Legyen True)
  • “Construct Point” Node az Anchor Point bemenetbe
  • Az “Object Settings” Node pedig az Object Settings bemenetbe.

Ezzel megszületett a BEAM nevű Object az Archicad Embedded Library-jében

 Tipp

Tartsd tisztán a kódodat! Feliratozz és groupolj, hogy később is tudd, hogy mi és miért történik a scriptedben. Ez már egy kicsit is bonyolultabb rendszer esetén is kardinális.

Felirat: Duplaklikk a vászonra > a felugrő szövegmezőbe írd be, hogy Scribble > lehelyez egy szöveget “Doubleclick Me!” felirattal > tégy is így, azaz duplaklikk rá > Írd át, igény szerint változtasd a méretét és a Fontot

Group: A Node-ok kijelölése és Ctrl+G

Zoom a ROOF OBJECTre > A szem ikonra kattintva megjelenik egy pop-up az elmentett Zoomokkal (Ilyet te is létre tudsz hozni) > Klikk a ROOF melletti szem ikonra)

Az “Object” Node lehelyezése > épp, mint az előbb

  • Az Archicad fülön > Design elemek > Szék ikon
  • Duplaklikk a vászonra > Felugrik egy szövegmező > Elkezded begépelni, hogy “Object” > Kiválasztod a találatok közül a megfelelőt (Ezt a megoldást javaslom, mert nagyon jól és intuitívan kereshetőek így a Grasshopperben elérhető parancsok)

Az “Object Settings” Node lehelyezése:

  • Ugyanúgy, ahogy az Object Node-ot előzőleg

Az Object Settings Node bemeneteinek megadása:

  • Geometry: Mesh Brep
  • Object Name: Panel Node, benne a ROOF text
  • Layer: Layer Node (Structural – Bearing)

Az “Object” Node Synchronize bemenetét egy “Boolean Toggle” Node segítségével tudjuk megadni

  • “Boolean Toggle” Node lehelyezése
  • Duplaklikk a Node-on lévő “False” feliratra > ekkor átvált “True”-ra

Anchor Point létrehozása:

  • “Construct Point” Node lehelyezése
  • Duplaklikk a vászonra > Ha egy számot ütsz be és utána egy Entert > Akkor egy Number Slidert hoz létre az adott értékkel > Ez az érték legyen 0!
  • A 0 értéket kösd be a “Construct Point” Node X, Y, Z bemeneteibe > Az origóban hoz létre egy pontot

Az “Object” Node bemeneteinek megadása:

  • “Boolean Toggle” Node a Synchronize bemenetbe (Legyen True)
  • “Construct Point” Node az Anchor Point bemenetbe
  • Az “Object Settings” Node pedig az Object Settings bemenetbe.

Ezzel megszületett a ROOF nevű Object is az Archicad Embedded Library-jében

A befejezett GH file – CURVES_END.gh
CURVES_END.gh
Egy Archicad file a köztes állapotról, amiben már benne vannak a ROOF és BEAM Objectek:
BME_BEAM_AND_ROOF_BASEOBJECTS.pln

Betölthető library:
gh_gdl_objects.zip

Gerenda és tető macro objectumok – Archicad: GDL

Megnyitjuk a Grasshopperből kimentett ROOF.gsm és BEAM.gsm elemeket és elmentjük őket macro objektumként (beamFromGH.gsm, roofFromGH.gsm), hogy GDL scriptből felhasználhatóak legyenek.

A GDL objectumokat külső folderbe mentjük ki, a külső foldert betöltjük a Library Managerben (Könyvtárkezelőben). Így a GDL objectjeink nem egy adott ARCHICAD tervhez kötődnek, mint az Embedded Library-be (Beágyazott könyvtárba) mentett objectek, hanem bármely tervbe beolvashatóak.

Betölthető library:
gh_gdl_objects.zip

Pavilon modul.gsm – Archicad: GDL

Létrehozunk egy új GDL objektumot, Pavilon modul.gsm néven. Az előző lépésben létrehozott beamFromGH.gsm és roofFromGH.gsm macro objectumokat felhasználjuk (meghívjuk) a Pavilon modul.gsm objectumban. Kiegészítjük a Pavilon modul.gsm objektum GDL scriptjét és paraméterlistáját azokkal a funkciókkal, amiket a modul-alapú pályázati tervünkben megjeleníteni szeretnénk és modulonként külön beállíthatóvá szeretnénk tenni.

Pavilon ready model.gsm – Archicad: GDL

Felvesszük a Pavilon modul.gsm paraméterlistájára a ParamcontrolByGrasshopper, Boolean (Logikai változó) típusú paramétert, és bekapcsoljuk ON-ra. Elmentjük Pavilon ready model.gsm elemként.

Pavilon kiosztás – Grasshopper és Archicad

Nyisd meg a Rhinoban a PLANNINGAREA.3dm file-t.
PLANNINGAREA.3dm
Ezután a Grasshopperben a PAVILIONPATTERN_START.gh file-t.
PAVILIONPATTERN_START.gh

 Tipp

Ha egyszerre több GH script is nyitva van, és váltani akarsz közöttük, akkor azt a jobb felső sarokban teheted meg. Itt klikk a file nevére és a pop-upban kiválaszthatod a megnyitott GH file-ok közül azt, amelyiket szeretnéd.

Add meg a PLANNING AREA groupban a Curve Node-nak bemenetként a Rhinoban piros színű kontúrvonalat. (Rhinoban jelöld ki a piros vonalakat (össze vannak groupolva > Grasshopperben jobb klikk a Curve Node-ra > Set Multiple Curves)

Ekkor lesz bemenete az egész kódnak, azaz a GH tudja, hogy ezen a kontúron belül kell random pontokat kiosztania. Ezen pontok listáját kettéosztottam, az első listába eső pontokra a pavilonok, míg a második listába eső pontokra fa GDL elemek kerülnek kiosztásra.

Most hivatkozd meg az előkészített Pavilon GDL-t (“Object Settings” Node lerakása > jobb klikk a Node közepén lévő ikonra > Use Existing Library Part)

Ekkor átalakul a Node, de még nem a mi pavilonunkat tartalmazza. Ehhez újra jobb klikkelni kell a Node közepén lévő ikonra > Select Archicad Library Part

A felugró dialógon válaszd ki a Pavilon GDL elemet > majd szelektáld ki azokat a paramétereket, amiket vezérelni szeretnél Grasshopperből > Select gomb megnyomása

Az “Object Settings” Node-on megjelentek a kiválasztott paraméterek is. Kösd be az “Object Settings” Node kimenetét az “Object” Node vonatkozó bemenetébe > Így már a Pavilon object kerül lehelyezésre az Archicadben, a GH-ből adott parancsokkal vezérelve.

 Tipp

Hogyan lehet Node-ot egy meglévő grouphoz adni? Válaszd ki a Node-ot > jobb klikk a groupot jelölő háttérre > Add to group

Ezután az “Object Settings” Node-ba kösd be az előkészített Object Settingseket > a nevek egyértelműek, hogy mit és hova köss.

Az Object Settings bemenetei mind véletlenszám generátorokkal vannak meghajtva, kvázi véletlenszerűen ad információt az Objectnek. Ezt persze igény szerint lehet változtatni.

 Tipp

Túl sok a kábel/wire? Jobb klikk a Node szélére > Wire Display > Hidden

Így tisztább, ugye?

Amikor végeztünk a Node-ok összekötésével, a pavilonok (és fák) számát a “No of Pavilions” nevű Number Slider típusú Node-dal tudjuk vezérelni.

Az összes változtatás, hála a Live Connectionnek, azonnal megjelenik ARCHICAD oldalon is.

Íme, a teljes script:
PAVILIONPATTERN_END.gh
A végleges Archicad file:
BME_READY.pln

Tervdokumentáció – Archicad

A pavilonok kiosztása után a tervdokumentációt elkészíthetjük Archicad-ben.

Find & Selecttel kiválasztod az összes Grasshopperből lerakott elemet > Ezt megteheted úgy, hogy Importálod a Find & Select ablakba az alábbi, .zip-be csomagolt .xml file-t.
Grasshopper Objects.zip


A kijelölt elemeket unlockolod (vagy az Unlock All paranccsal minden lockolt elemet feloldasz)

A Ctrl+T- vel felhozod a kiválasztott elemek Settings Dialógját és a FLOOR PLAN AND SECTION fül alatt a FLOOR PLAN DISPLAY-t átállítod “All Stories”-ra, majd OK.

Így az elemek láthatóak lesznek minden előre beállított, alaprajzi View-n


Az utolsó 3 View-ra külön lehelyeztünk egy pavilont, ennek lehet design-olni az alaprajzát, homlokzatait.

Hasznos linkek a Grasshopperhez

ARCHICAD-Grasshopper Connection:

Grasshopper komponenseket innen lehet letölteni: 

Alapok: 

Haladó szint: