• No results found

Automatisch genereren van lasercutpatronen uit een 3D BIM/CAD model

N/A
N/A
Protected

Academic year: 2021

Share "Automatisch genereren van lasercutpatronen uit een 3D BIM/CAD model"

Copied!
155
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Academiejaar 2019-2020

Master of Science in de ingenieurswetenschappen: architectuur Masterproef ingediend tot het behalen van de academische graad van

Begeleider: ir.-arch. Jeroen Werbrouck

Promotoren: prof. ir.-arch. Ruben Verstraeten, Willem Bekers

Studentennummer: 01502148

Louise Deprez

(2)

PATTERNS FROM 3D BIM/CAD MODELS

Louise Deprez

(3)

The author gives permission to make this master dissertation available for consultation and to copy parts of this master dissertation for personal use. In the case of any other use, the copyright terms have to be respected, in particular with regard to the obligation to state expressly the source when quoting results from this master dissertation.

(4)

3D BIM/CAD MODELS

Promotoren: prof. ir.-arch. Ruben VERSTRAETEN Willem BEKERS Begeleider: ir.-arch. Jeroen WERBROUCK

Masterproef ingediend tot het behalen van de academische graad van Master of Science in de ingenieurswetenschappen: architectuur

Vakgroep Architectuur en Stedenbouw Voorzitter: prof. dr. ir. Arnold JANSSENS Faculteit Ingenieurswetenschappen en Architectuur

Universiteit Gent Academiejaar 2019 - 2020

(5)
(6)

Deze masterproef vormt het laatste grote werk binnen de opleiding tot burgerlijk ingenieur-architect. Allereerst wil ik het begeleidingsteam bedanken voor het aanbieden van dit leerrijk en uitdagende onderwerp. Ik werd gestimuleerd nieuwe vaardigheden aan te leren en de koppeling te maken tussen de informatica en de architecturale ontwerppraktijk. Zonder dit team was de uitwerking van deze thesis niet mogelijk geweest. Ik dank mijn promotoren, Ruben Verstraeten en Willem Bekers, voor het bieden van nieuwe inzichten in computerwetenschappen en modelleersoftware en zijn inzetbaarheid in de architectuurpraktijk, en bovendien voor het aanbieden van een bredere kijk op het onderwerp. Ik dank ook Jeroen Werbrouck voor de interessante feedback tijdens de begeleidingssessies. Mijn dank gaat uit naar mijn vrienden die zorgden voor de nodige ontspanning en steun doorheen dit hele traject. Zonder hen zouden deze vijf jaar niet hetzelfde geweest zijn. Tenslotte wil ik mijn ouders en broer bedanken voor de onvoorwaardelijke steun en aanmoedigingen die ze me gaven, voor het begrip voor de minder aangename momenten die ik hun bezorgde door het vele werken en de stress die ik meebracht naar huis, maar vooral voor de mooie momenten doorheen dit alles.

(7)
(8)

Deze masterproef onderzoekt de mogelijkheid om vanuit een 3D BIM/CAD model automatisch lasercutpatronen te genereren. Meer bepaald wordt er een applicatie ontwikkeld die de ontwerper zal helpen bij het produceren van een maquette. De applicatie wordt ontwikkeld aan de hand van bestaande software, verschillende geometrische en wiskundige functies worden achter elkaar afgespeeld en zo wordt er een heel proces doorlopen. Het proces start bij het importeren van de nodige informatie, gaat vervolgens verder naar het maken van de nodige berekeningen en geometrische manipulaties en eindigt met het schikken van alle snijpatronen op de gewenste platen. Het resultaat van deze automatisatie is een tijdswinst voor de ontwerper en een verlaging van het risico op fouten in de maquette. Deze ontwikkeling wordt gelinkt aan het BIM-proces, zodat vanuit één gecentraliseerd model niet alleen plannen en sneden kunnen gegenereerd worden, maar ook de snijpatronen om een schaalmodel te maken.

(9)

Deze masterproef onderzoekt de mogelijkheid om vanuit een 3D BIM/CAD-model automatisch lasercutpatronen te genereren. Meer bepaald wordt er een applicatie ontwikkeld die de ontwerper zal helpen bij het produceren van een maquette. Het resultaat van deze automatisatie is een tijdswinst voor de ontwerper en een verlaging van het risico op fouten in de maquette. Deze ontwikkeling wordt gelinkt aan het BIM-proces, zodat vanuit één gecentraliseerd model niet alleen plannen en sneden kunnen gegenereerd worden, maar ook de snijpatronen om een schaalmodel te maken. INLEIDING

Binnen de AEC-sector zijn de ontwikkelingen van de informatica gedurende de laatste decennia enorm. BIM wordt veelvuldig geïmplementeerd in het ontwerpproces van de architect en hierbij wordt er gebruik gemaakt van de snelle generatie van presentatiemethoden uit dit gecentraliseerde model. Naast het genereren van 2D plannen en renders, wordt er ook ingezet op de 3D-visualisaties om een duidelijk en betrouwbaar beeld te krijgen van hetgeen gebouwd zal worden. Er is echter een nood om naast virtuele

3D-modellen ook fysieke modellen te kunnen produceren. Momenteel wordt het 3D-printen ingezet om vanuit een digitaal model zo eenvoudig mogelijk een fysiek model te kunnen genereren, maar 3D-printen voldoet niet altijd aan de eisen. Lasercutting is een alternatief, maar met de huidige software is er nog een grote barrière tussen het BIM-model en het gebruik van deze technologie om schaalmodellen te produceren. Deze barrière wordt overbrugd in het kader van deze masterproef door de ontwikkeling van een applicatie.

PAPER WASP

Er wordt een applicatie ontwikkeld die vanuit een 3D BIM- of CAD-model automatisch lasercutpatronen kan genereren. Om deze applicatie te ontwikkelen wordt er gebruik gemaakt van bestaande software en bestandsformaten. Allereerst wordt er onderzocht wat de meest geschikte software is om mee aan de slag te gaan en welke informatiesystemen kunnen helpen bij zo een vlot mogelijke overdracht van het 3D-model naar de applicatie.

(10)

informatie kunnen genereren. De nood aan een topologische structuur wordt hierbij duidelijk. Nadat deze topologische structuur en alle nodige bijkomende informatie is gegenereerd, kan het geometrische model omgezet worden naar een eenduidig model. Er wordt gekozen om het model op te blazen naar zijn buitenafmetingen. Vanuit dit eenduidige model, die eveneens verschaald wordt volgens de gewenste schaal van de maquette, kunnen vervolgens de lasercutpatronen gegenereerd worden. De beschikbare plaatmaterialen worden ingevoerd, de patronen worden geordend per plaat en het lasercutbestand kan geëxporteerd worden.

CONCLUSIE

Het resultaat is een applicatie die vanuit eenvoudige gebouwmodellen, lasercutbestanden kan genereren. De gebruiker hoeft enkel de beschikbare materialen, de schaal en enkele voorkeuren

(11)

This thesis is a study of the possibility to automatically generate laser cutting patterns from 3D BIM/CAD models. More specifically, it is a development of an application that will help designers to produce physical models. By automating this process, the designer can save time and reduce the risk of errors in the scale model. This development will be linked to the BIM-process, in this way not only plans and sections can be made from one centralised digital model, but also cutting patterns can be made to produce scale models.

PREFACE

These last decades, huge developments in computational science took place in the AEC-department. BIM is frequently used in the design process of architects. In this process the architect can use the automatic generation of presentation methods from a centralised digital model. Not only 2D plans and renders can be generated, but also 3D visualisations can be made to create a reliable image of the construction that will be built. However, not only is there a need to have the possibility to produce virtual 3D models, but there is also a need to make physical models. Today, 3D printing is

used to easily generate physical models when starting from a digital model, but this technology does not always fulfil the demands of the designer. Laser cutting could be an alternative, but with the current software, there is still a great gap between the BIM-model and the use of this technology to produce scale models. In this thesis, we will overcome this gap by the development of an application that will automate this process.

PAPER WASP

The newly developed application will make it possible to automatically generate laser cutting patterns from 3D BIM/CAD models. To develop this app, existing software and file formats will be used. Firstly, we will search for the most suitable software to develop the application and the best information exchange systems to transfer the 3D-model to the app.

The first step that the application, Paper Wasp, will undergo is the creation of a new information structure that will be generated from the chosen information exchange system. This structure will be

(12)

the additional information needed for the following steps, the geometrical model can be transformed to an unambiguous model. The model will be blown up to its exterior dimensions and rescaled to the scale of the physical model. From this new unambiguous model, the laser cutting patterns can be generated. The available sheet materials are imported, the patterns are arranged on the corresponding sheets and the laser cutting file can be exported.

CONCLUSION

The final result is an application that can generate laser cutting files from simple building models. The user only needs to enter the available sheet materials, the scale and some other preferences, and the patterns can be created. In this way, laser cutting is implemented in the BIM process and the time needed for a designer to make a scale model is significantly shortened.

(13)

INLEIDING 16

DE GESCHIKTE SOFTWARE 20

1. DE APPLICATIE: PYTHONSCRIPT IN RHINO 24

2. BIM-SOFTWARE: REVIT 25

VENDOR NEUTRAL DATA FORMAT: IFC OF GBXML 25

REVIT 25

IFC OF GBXML 25

CONCLUSIE 31

3. CAD-SOFTWARE: RHINO 33

STAP 1: GEOMETRIE IMPORTEREN IN RHINO VANUIT EEN

3D BIM/CAD MODEL 36

1.1 GEOMETRIE IMPORTEREN VANUIT EEN 3D BIM-MODEL 39

REVIT EXPORTEREN NAAR GBXML 39

GBXML UITGELEGD 42

GBXML IMPORTEREN IN RHINO 43

1.2 GEOMETRIE IMPORTEREN VANUIT EEN 3D CAD-MODEL 46

1.3 DE COMBINATIE VAN EEN BIM- EN EEN CAD-MODEL 48

STAP 2: DE GEÏMPORTEERDE DATA STRUCTUREREN: EEN

TOPOLOGISCHE STRUCTUUR TOEVOEGEN 50

2.1 EEN NIEUWE STRUCTUUR GENEREREN 53

SURFACES EN SURFACETYPES 53

CURVES 54 POINTLISTS 54 OPENING 54

2.2 EEN TOPOLOGISCHE STRUCTUUR TOEVOEGEN 55

GEMEENSCHAPPELIJKE PUNTEN 55

DE PROBLEMATIEK VAN ONNAUWKEURIGE TEKENINGEN 56

GEMEENSCHAPPELIJKE RANDEN 56

2.3 DE STRUCTUUR SAMENGEVAT 57

(14)

NORMALEN 66

4.3 HET VOLUME OPBLAZEN NAAR ZIJN BUITENAFMETINGEN 67

1 VLAK IN 1 PUNT 67

2 VLAKKEN IN 1 PUNT 67

3 VLAKKEN IN 1 PUNT 68

MEER DAN 3 VLAKKEN IN 1 PUNT 69

OPENINGEN 69

STAP 5: DE MANIER WAAROP PLATEN ELKAAR RAKEN EN DE

LASERCUTPATRONEN PER VLAK 70

5.1 HET INGEVEN VAN DE PLATEN PER TYPE OPPERVLAK 73

5.2 TEGEN ELKAAR GEKLEEFDE PLATEN 74

PRIORITEITEN VAN VERSCHILLENDE TYPES 74

PRIORITEITEN VAN HETZELFDE TYPE 77

SCHERPE EN STOMPE HOEKEN 79

HOEK TUSSEN TWEE VLAKKEN BEREKENEN 80

ALLES SAMEN IN ÉÉN FUNCTIE 80

HET LASERCUTPATROON PER VLAK GENEREREN 80

5.3 STOMPE HOEKEN IN VERSTEK 82

HET OPENPLOOIEN 82

HET LASERPATROON 83

DE KEUZE OM IN VERSTEK TE SNIJDEN 83

STAP 6: GRAVEER- OF SNIJLIJNEN GENEREREN EN HET

ORDENEN VAN DE PATRONEN OP DE PLATEN 84

6.1 DE VLAKKEN ORIËNTEREN NAAR HET XY-VLAK 87

6.2 DE VLAKKEN ORDENEN VOLGENS PLAATSOORT 89

6.3 DE PATRONEN IN EEN GRAVEER- OF SNIJLAAG PLAATSEN 90

6.4 EFFICIËNT PLAATGEBRUIK 92

GEBRUIKERSHANDLEIDING 94 CONCLUSIE 124 REFERENTIES 128 APPENDIX 132

(15)
(16)
(17)

De laatste decennia hebben er in de AEC-sector [1] grote veranderingen plaatsgevonden door de snelle ontwikkeling binnen de informatica. De oude manier van werken, via maquettes en schetsen en persoonlijke meetings, wordt stilaan overgenomen door digitale software. De evolutie van deze digitale ontwerptechnieken kan heel kort samengevat worden met de start van de eenvoudige 2D CAD-software [2], de uitbreiding met 3D CAD-software en ten slotte de overgang naar de BIM-software [3]. Zowel de werkmethodiek van de architect als zijn samenwerking met andere partijen is drastisch aan het veranderen.

3D-VISUALISATIE

Waar vroeger schetsen en maquettes tijdrovende activiteiten waren en de basis vormden van het architectuurontwerp, bestaan er nu allerhande computerprogramma’s die een nieuw spectrum aan presentatiemethoden bieden. BIM wordt ingezet om vanuit één gecentraliseerd model, verschillende van deze presentatiemethoden snel te kunnen genereren. Er kan echter vastgesteld worden dat de meeste visualisatieapplicaties voornamelijk inzetten op 2D weergaven van een ontwerp – namelijk plannen, sneden, schetsen, etc. – of een 3D-beeld dat op een 2D scherm wordt getoond – bv. het renderen van 3D modellen. Deze 2D-representaties zijn vaak onvoldoende om snel een duidelijk beeld te krijgen van het gebouw.

Het blijkt dat 3D-modellen veel efficiënter zijn om een ontwerp te communiceren naar andere partijen. [4] Naast maquettes, wordt er tegenwoordig ook meer en meer ingezet op VR en AR. [5] Het doel is om de ervaring in of de interactie met het gebouw zo veel mogelijk te laten overeenkomen met het uiteindelijk gerealiseerde project. Door zelf te kunnen bewegen rond de maquette of rond te lopen in de virtuele wereld, ontstaat er een grote interactie tussen de toeschouwer en het ontwerp, waardoor er een duidelijker beeld kan gevormd worden van wat er gebouwd zal worden.

DE MAQUETTE ALS ONTWERP- EN PRESENTATIETOOL

Het maken van prototypes, of in de architectuur maquettes, is een manier om een ontwerp te evalueren of te presenteren. Zowel de klant als de architect krijgen zo een beter idee van wat er effectief zal gebouwd worden. Misverstanden kunnen op deze manier vermeden worden, de kwaliteit van het ontwerp gaat omhoog en de samenwerking tussen de verschillende partijen wordt efficiënter. De ontwerper kan door naar het schaalmodel te kijken de mogelijke fouten of tekortkomingen van zijn ontwerp inschatten en het ontwerp aanpassen tot een beter, finaal project. [6] Dat de maquette een essentiële ontwerptool en presentatietechniek is, wordt extra bewezen in architectuuropleidingen waar

Inleiding

[1] AEC = Architecture, Engineering and Construction [2] CAD = Computer-Aided Design [3] BIM = Building Information Modelling [4] Aish, R. (1986) [5] Veliz, A.; Kocaturk, T.; Medjdoub, B. & Balbo, R. (2012)

(18)

de studenten elke week opnieuw hun vorderingen in het ontwerpproces moeten presenteren aan de begeleiders aan de hand van een maquette en bijkomende plannen. Het nadeel is echter dat het maken van de maquette een tijdrovende activiteit is, waarbij veel repetitieve taken moeten uitgevoerd worden.

RAPID PROTOTYPING

Dit probleem wordt de laatste jaren behandeld door de implementatie van Rapid Prototyping technieken in de AEC-sector. In andere industrieën zoals de ruimtevaart- en transportindustrie bestaan deze technieken al langer en zijn ze al sterk verfijnd. [7] Bij de introductie van Rapid Prototyping in de AEC-sector, kunnen de reeds bestaande technieken overgenomen worden en aangepast worden aan de noden die hier van toepassing zijn. Het begrip “Rapid Prototyping” is afkomstig van de ambitie om snel prototypes te produceren, zodat bepaalde fasen in het ontwerp- en ontwikkelingsproces kunnen geëvalueerd worden. In tegenstelling tot wat het begrip doet vermoeden is het niet de bedoeling de productie te versnellen, maar wel eerder om de arbeid die bij traditionele processen vereist is te elimineren. Het handmatig modelleren moest versneld worden. Rapid prototyping kan ingezet worden om schaalmodellen van gebouwen of constructies te produceren. Net zoals het

oorspronkelijke idee achter dit concept, zal de handenarbeid van de ontwerper sterk gereduceerd worden met een winst in tijd tot gevolg. De ontwerper voorziet een digitaal model en de machine produceert daaruit het fysieke schaalmodel. Het zijn voornamelijk de snijmachines - lasercutters - en de additieve processen - 3D-printing - die ingezet kunnen worden om schaalmodellen van gebouwen te produceren.

LASERSNIJDEN OF 3D-PRINTEN

Zowel de lasersnijmachine als de 3D-printer hebben een digitaal model nodig om in te voeren in de machine. Gezien de huidige trend van het BIM-proces in de AEC-industrie, werken meer en meer architecten met een gecentraliseerd model dat alle informatie van het project bevat, dus zo ook de geometrie van het gebouw. Een BIM-model of een 3D CAD-model zijn noodzakelijk voor de 3D-printer om de juiste volumetrie te kunnen creëren. Voor de lasercutter is het echter noodzakelijk een twee dimensionale representatie van het model te ontvangen. Dat wil zeggen dat, met de huidig beschikbare software, de architect zelf 2D-snijpatronen zal moeten tekenen in een digitaal tekenprogramma. Er bestaan reeds enkele hulpmiddelen om snijpatronen te genereren uit een digitaal 3D-model, maar ze zijn zeer beperkt. Wanneer ervoor gekozen wordt om een volume open te plooien en als een schil te snijden, kan

[6] Cannaerts, C. (sd) [7] Buswell, R.; Soar, R.; Gibb, A. & Thorpe, A. (2007)

(19)

Wanneer de onderdelen uit de machine komen, krijgt men bij de 3D-printer een bijna afgewerkt model aangeboden, terwijl de lasercutter een bouwdoos met vlakken creëert. Zo een massief, afgewerkt product heeft echter ook zijn nadeel. De afwerkingsmogelijkheden zijn miniem, enkel het materiaal en de techniek kan gekozen worden, waardoor er geen extra accent of sfeer kan gebracht worden in het model. [10] De gesneden vlakken die uit de lasercutter komen moeten wel nog geassembleerd worden, maar er is daardoor ook een grotere vrijheid in afwerking, stijl of accent.

De gekozen rapid prototyping techniek is dus afhankelijk van de tijd en het geld dat geïnvesteerd kan worden in het model. Ook het doel van het schaalmodel of het gewenste uitzicht van het model kunnen de doorslag geven voor de ene of de andere methode.

bijvoorbeeld Pepakura [8] ingezet worden, maar dan wordt er verondersteld dat het schaalmodel uit papier zal bestaan, wat niet altijd gewenst is.

Beide types machines kunnen werken met verschillende materialen. De 3D-printer werkt met poeders of vloeistoffen die samengevoegd worden tot een vast volume. Het eindresultaat is meestal een steenachtig model of een model uit kunststof. Er wordt onderzoek gedaan naar een uitgebreid scala aan materialen, maar de alternatieven resulteren meestal in een duur eindresultaat. De lasercutter daarentegen werkt met goedkope plaatmaterialen, zoals karton, hout of plexiglas. Het voordeel van de 3D-printer is dat er zeer ingewikkelde volumes kunnen gemaakt worden, wat voor sommige architectuurontwerpen een noodzakelijke eigenschap is. Het is echter niet nuttig om grote vlakke platen te 3D-printen, wanneer deze gemakkelijker kunnen gesneden worden in de lasersnijmachine. Ook wanneer de schaal van het model vergroot wordt, kan de prijs van de 3D-geprinte maquette sterk oplopen en moet het model vaak in verschillende stukken geproduceerd worden door het beperkte werkvlak. De lasersnijmachine biedt dus voor uitvergrote, eenvoudige modellen een sterk voordeel. [9]

[8] Pepakura maakt het mogelijk vanuit een digitaal 3D mesh-model een opengevouwen 2D patroon te genereren. [9] Gaget, L. (2018) [10] Kvan, T.; Gibson, I. & Wai Ming, L. (2002)

(20)

AUTOMATISCH GENEREREN VAN LASERCUTPATRONEN UIT EEN 3D BIM/CAD MODEL

Vanuit een BIM-model kunnen er plannen, sneden, 3D-geprinte maquettes, simulaties, etc. gegenereerd worden. Het lasersnijden is echter nog steeds losgekoppeld van dit centrale model. De ontwerper moet zelf nog digitale lasercutpatronen tekenen om in te voeren in de lasersnijmachine. Dit kan een tijdrovende activiteit zijn waarbij ook nog eens fouten kunnen gemaakt worden. Het lasercutten kan betrokken worden in het BIM-proces door de mogelijkheid te bieden lasercutpatronen te genereren vanuit het centrale BIM-model. Op deze manier zouden we weer een stap dichter zijn bij het idee om vanuit één centraal, digitaal model al de informatie en presentatietechnieken te kunnen genereren die nodig zijn bij het ontwerp- en bouwproces. Het centrale thema van deze masterproef is om vanuit een digitaal 3D-model lasercutpatronen te genereren.

(21)

Automatisch genereren

van lasercutpatronen:

De geschikte software

(22)
(23)

lasercutpatroon

3D BIM-model

3D CAD-model

vendor neutral

data format

lasercutpatroon

in dxf-formaat

Rhino-model

applicatie

Rhino

(24)

de applicatie is om een 3D-model om te zetten naar een 2D-patroon, rekening houdende met plaatdiktes en bevestigingswijzen. Het enige wat de ontwerper nog moet doen is het 3D-model aanbieden en de nodige informatie ingeven, zoals schaal, te gebruiken platen, etc. Door dit proces te automatiseren is er niet alleen een winst in tijd, maar wordt het risico op fouten ook sterk gereduceerd. Vervolgens moet het snijpatroon en de nodige instellingen ingegeven worden in de machine en is het aan de ontwerper om de maquette in elkaar te steken.

De applicatie zelf zal enkele stappen doorlopen om het lasercutpatroon te tekenen. Eerst en vooral moet de nodige informatie geïmporteerd worden. De tweede stap binnen het proces is de geïmporteerde informatie op een juiste manier te definiëren en te structureren, zodat het verder verwerkt kan worden. De volgende stap is om de informatie ook effectief te verwerken en van een 3D-model over te stappen naar een 2D-patroon. Ten slotte bestaat de laatste stap uit het aanbieden van een correct snijpatroon. Hoe de applicatie effectief opgebouwd wordt en de berekeningen die achter de schermen uitgevoerd worden, zullen uitgebreid besproken worden in de volgende hoofdstukken. Om deze verschillende stappen te doorlopen moet er eerst een keuze gemaakt worden welke software er gebruikt zal worden en hoe de communicatie daartussen zal verlopen. binnen de AEC-sector grote veranderingen

plaatsgevonden door de snelle ontwikkeling van de informatica. De werkmethodiek van de architect is bijna volledig verschoven van schaalmodellen en tastbare schetsen naar virtuele modellen en tekeningen. Eerst werden de 2D en 3D CAD-programma’s ontwikkeld en in gebruik genomen en momenteel is ook de BIM-software zijn intrede aan het doen. Het einddoel van deze ontwikkelingen is een gecentraliseerd model creëren dat alle informatie van een bouwproject bevat en dat vooral de samenwerking tussen de betrokken partijen sterk bevordert. Vanuit dit centrale model kan alle nodige informatie onttrokken worden, zoals plannen en sneden, maar ook structurele en energetische informatie. Elke partij kan de nodige informatie exporteren en gebruiken in zijn eigen softwarepakket om bijvoorbeeld simulaties uit te voeren of een virtual reality model op poten te zetten. Aangezien er snel fouten kunnen gemaakt worden bij het handmatig overnemen van gegevens, zal elke informatieoverdracht zo veel mogelijk geautomatiseerd worden. Omdat deze werkmethodiek meer en meer de standaard wordt in de AEC-sector, zal het startpunt van deze thesis dan ook de BIM- en CAD-software zijn.

Er wordt een applicatie ontwikkeld om lasercutpatronen te genereren uit een beschikbaar virtueel 3D-model. Wat normaalgezien een tijdrovende taak is waar al snel fouten bij kunnen gebeuren, zal nu

(25)

1. DE APPLICATIE: PYTHONSCRIPT IN RHINO

Eerst wordt er gekozen in welk softwarepakket er een applicatie kan gemaakt worden. De eis is dat deze software flexibel is om een implementatie van een applicatie mogelijk te maken, maar ook dat ze toegankelijk is voor de ontwerper. Rhino is een 3D-softwarepakket dat veel van zijn interne werking blootlegt en enkele ontwikkelingstools ter beschikking stelt, maar ook een uitgebreid forum heeft waarin veel hulp geboden wordt aan gebruikers.

Rhino3d legt bewust de interne werking van de software grotendeels bloot zodat externe softwareontwikkelaars handige tools kunnen maken die ingeplugd kunnen worden in de software. De gebruikers kunnen zo, bovenop de standaardtools die Rhino ter beschikking stelt, ook gebruik maken van een zeer groot aanbod aan externe tools die vrij te downloaden zijn. Deze flexibiliteit komt dus zowel de gebruikers als de ontwikkelaars ten goede. De ontwikkelaars kunnen op die manier gebruik maken van een API. [11] Als ze code schrijven hoeven ze niet vanaf nul te beginnen, want complexe functies worden ter beschikking gesteld. Op die manier kunnen er sneller en gemakkelijker plug-ins gecreëerd worden. [12]

Voor beginnende programmeurs staat Grasshopper ter beschikking. Het is een grafische manier van programmeren waarbij geen kennis van scripting noodzakelijk is. De bedoeling is om zonder zelf code te moeten schrijven, toch de mogelijkheid te bieden om zelf een algoritme uit te werken. Een tweede manier is om wel code te schrijven via Rhino.Python en Rhinoscript.

Het is een bibliotheek vol functies die zowel in C++ als Python kan gebruikt worden. Het verschil met Grasshopper is dat er een grotere flexibiliteit is. Python is een programmeertaal die op een eenvoudige manier is opgebouwd, zodat ook beginnende ontwikkelaars deze taal snel kunnen leren en begrijpen. Alle commando’s die geschreven worden in Python worden lijn per lijn uitgevoerd, dus de programmeur kan een eigen structuur geven aan het script. Dat is waar Grasshopper zijn beperking en tegelijk zijn eenvoud heeft, elk commando krijgt een blokje, maar de manier waarop ze ten opzichte van elkaar verbonden worden ligt grotendeels vast. Om iets meer flexibiliteit in te bouwen kan de programmeur zelf commando’s of blokjes maken door code te schrijven, maar de structuur ligt nog steeds vast. Om niet beperkt te worden door deze vooraf gedefinieerde structuur, wordt er gekozen om in PythonScript te werken met de Rhino.Python en de Rhinoscript bibliotheek.

De online ondersteuning voor programmeurs en modelleurs is enorm. Op om het even welke manier men iets modelleert, of het nu via Python, Grasshopper of gewoon via Rhinocommando’s is, voor bijna elke methode bestaat er een site waarbij alle beschikbare commando’s opgelijst staan en beschreven worden. Er bestaan eveneens online leerprogramma’s via tutorials en een uitgebreid forum waarbij de gebruikers en de medewerkers van Rhino3d elkaar kunnen helpen.

[11] API = Application Programming Interface [12] Schoemaker, L. (2019)

(26)

2. BIM-SOFTWARE: REVIT

VENDOR NEUTRAL DATA FORMAT: IFC OF GBXML

REVIT

De BIM-software van waaruit gestart wordt kan om het even welke software zijn. Bij wijze van voorbeeld wordt er in dit onderzoek gekozen voor Revit. Het is gratis ter beschikking voor studenten en heeft een trial-versie. De enige vereiste van dit softwarepakket is dat het de juiste bestanden kan exporteren, aangezien de nodige informatie geëxtraheerd zal moeten worden vanuit dit 3D-model.

IFC OF GBXML

Zoals eerder gezegd is de allereerste stap de nodige informatie van de BIM-software naar de applicatie brengen. Aangezien de applicatie ontwikkeld wordt in Rhino3d, zal er een communicatie tussen om het even welk BIM-pakket en Rhino3d moeten bestaan. De informatieoverdracht tussen verschillende softwarepakketten is een actueel onderwerp binnen het BIM-onderzoek. [13] Er worden continu nieuwe manieren ontwikkeld, of huidige worden verbeterd, om dit proces zo vlot mogelijk te laten verlopen. De reeds bestaande formaten zullen bekeken en vergeleken worden.

I

nformatIeoverdracht

Om de communicatie tussen twee verschillende softwarepakketten mogelijk te maken, is er een neutraal dataformaat nodig. Vanuit het BIM-model kan eender welke partij binnen het ontwerpproces een bestand exporteren in een “vendor neutral data format” dat kan ingelezen worden in een programma van een

ander softwarebedrijf. Op die manier kan er een communicatie ontstaan tussen verschillende softwarepakketten. Het aangeleverde BIM-model wordt omgezet naar deze neutrale open standaard, zodat de software die het model ontvangt het ook kan lezen. Elk formaat structureert de beschikbare informatie op zijn eigen manier, waardoor het elk over andere voor- en nadelen beschikt. Het is nu van belang allereerst te kijken welke neutrale dataformaten er ter beschikking staan en welke het meest geschikt zijn voor de overdracht van de nodige informatie. Elke informatieoverdracht gaat namelijk gepaard met een welbepaald verlies aan informatie. Het belang van wat verloren gaat zal moeten afgewogen worden ten opzichte van de nodige input voor de applicatie. Al de informatie die niet uit het model zal kunnen gehaald worden zal namelijk handmatig door de gebruiker moeten ingevoerd worden. Dit moet zo veel mogelijk vermeden worden.

De belangrijkste informatie die aangeleverd zal moeten worden is natuurlijk de geometrie van het gebouw. Allerhande eigenschappen over de bouwmaterialen of de functie van de lokalen zijn niet nodig om een lasercutpatroon te genereren. Wat wel belangrijk is, is dus welke vorm de verschillende ruimtes hebben. Dit kan gedefinieerd worden aan de hand van verschillende vlakken die de ruimtes omsluiten en de topologische structuur tussen die vlakken. Deze topologische structuur is van belang om te weten welk

(27)

vlak grenst aan een ander vlak, dus ook welke kartonvlakken uiteindelijk tegen elkaar zullen moeten geplakt worden. Wat daarbovenop handige informatie zou kunnen zijn is hoe dik deze bouwelementen zijn en tot welk type ze behoren. Deze extra informatie zal ervoor zorgen dat verdere automatisaties makkelijker kunnen ingebouwd worden in de applicatie. Het is met andere woorden belangrijk om alle nuttige informatie over te zetten, maar het heeft ook zijn belang om overtollige data achterwege te laten om de informatieoverdracht niet onnodig zwaar te maken.

Er wordt gekozen om twee veel gebruikte dataformaten te vergelijken: IFC en gbXML. BuildingSMART International is een organisatie die voor een standaardisatie wil zorgen tussen modelleersoftware. Zo hebben ze ook een standaard ontwikkeld om informatie uit te wisselen: de “Industry Foundation Classes” of IFC. Het is de bedoeling dat er een uitwisseling kan ontstaan tussen de software van verschillende bedrijven of disciplines in de AEC-sector. Het tweede, alternatief formaat is “green building extensible markup language” of gbXML dat ontwikkeld werd door Green Building Studio Inc.. Dit bestandstype werd speciaal gemaakt om informatie uit te wisselen tussen modelleersoftware en energie-simulerende software. GbXML is in tegenstelling tot IFC niet geregistreerd als een officiële standaard. [14] Doordat de twee een ander doel voor ogen hebben, zal al snel duidelijk blijken dat de informatie die overgedragen wordt ook verschillend is.

Ifc

De IFC standaard is ontwikkeld om een volledig model met al zijn beschikbare informatie over te zetten van de ene software naar de andere, zodat alle partijen binnen

het ontwerp- en bouwproces de nodig informatie kunnen inlezen in de nodige programma’s via deze standaard. Aangezien er zo veel mogelijk data verzameld en gestructureerd wordt, zal dit een zwaar bestand worden, zeker als het om grote bouwprojecten gaat. Om die reden voorziet IFC twee verschillende bestandsformaten: een op tekst gebaseerd formaat en een XML-formaat. Het eerste formaat wordt gebruikt voor grote projecten, omdat het veel info op een compacte manier kan opslaan zonder dat het bestand al te groot wordt. Het XML-formaat daarentegen is minder compact, maar is geschreven op een manier zodat het eenvoudig te verstaan is. Daardoor kan het ook makkelijker geïmplementeerd worden in nieuwe software. Het op tekst gebaseerde formaat is dus gecompliceerder en het vraagt meer energie om geïnterpreteerd te worden in nieuwe software.

De belangrijkste data die overgezet moet worden naar Rhino is die over de geometrie van het gebouw. In wat volgt zal er voornamelijk gefocust worden op de manier waarop deze geometrie gedefinieerd en gestructureerd wordt. Er bestaan twee manieren waarop dit gebeurt in de IFC-standaard. De eerste vertrekt van een deel-geheel structuur, waardoor er een boomstructuur ontstaat die via vertakkingen telkens gedetailleerdere informatie prijsgeeft. De tweede manier bestaat uit een collectie van ruimtes die elk omsloten worden door enkele bouwstructuren. [15] Beide benaderingen zullen opnieuw hun sterktepunten en gebreken hebben.

De deel-geheel structuur voorziet een hiërarchie waarbij er telkens gekeken wordt naar een geheel en uit welke onderdelen het bestaat. Zo wordt er gestart op het niveau van

[14] gbXML (2020) [15] Verstraeten, R. (2012): De begrippen die gebruikt worden in de onderdelen “IFC” en “gbXML” zijn gebaseerd op begrippen in dit werk.

(28)

gebouwen kunnen onderverdeeld worden in enkele verdiepingen die op hun beurt dan weer verschillende bouwelementen bevatten. Door verder te gaan opsplitsen, ontstaat er een boomstructuur die telkens naar kleinere onderdelen zal gaan kijken. Wat opvalt is de manier waarop de onderdelen worden beschreven. Elk onderdeel zal gedefi nieerd worden aan de hand van een uniek coördinatensysteem dat verwijst naar het geheel waartoe ze behoren, dus aan het object één rang hoger. Om de objecten weer te geven in de ontvangende software, zullen al deze unieke coördinatensystemen omgezet moeten worden naar één gemeenschappelijk systeem met één oorsprong. Om dit te doen is er voor elk element een heuse ketting aan omrekeningen nodig. De manier waarop elk van die onderdelen voorgesteld wordt, is door “solids”, door volle fi guren. Die solids worden gecreëerd door een vlakje in het XY-vlak, dat begrensd is door een polylijn en dat geëxtrudeerd wordt in de Z-richting volgens een bepaalde afstand. [Afbeelding 1] Als dit echter bijvoorbeeld over de extrusie van een muur gaat en er bevinden zich raamopeningen in die muur, dan kunnen die ramen niet gedefi nieerd worden binnen die extrusie. Wanneer er problemen van dat type zich voordoen wordt er gekozen om een “boolean operation” [16] te defi niëren die op die solid zal uitgevoerd worden. In dit geval zullen de raamopeningen ook eerst als solids beschreven worden en die vorm zal afgetrokken worden van de muur. Door een reeks van operaties wordt de fi nale vorm uiteindelijk gegenereerd. Als deze structuur gebruikt zou worden om informatie over te dragen aan de applicatie, zal er veel energie nodig zijn om alles op een logischere manier te ordenen en te tekenen.

[16] Lumen (2020): De term “boolean operation” is afkomstig uit de wiskunde waarbij de eigenschappen en regels van verzamelingen wordt vastgelegd. Het is in modelleersoftware overgenomen om operaties zoals “union” (A U B), “intersection” (A ∩ B) en “complement” (A’) te defi niëren.

Afbeelding 1: deel-geheel structuur

Het gekleurde object behoort tot de gelijkvloerse verdieping en dat behoort op zijn beurt tot het gebouw.

De muur wordt beschreven door een polylijn in het XY-vlak en een extrusie in de Z-richting. Het bezit eveneens zijn eigen oorsprong.

(29)

Parallel aan de deel-geheel structuur wordt het gebouw ook omschreven als een collectie van ruimtes. De ruimtes worden voorgesteld als solids - als volle volumes - via hun binnenafmetingen, waardoor de bouwelementen tussen de verschillende ruimtes open - als holtes - gelaten worden. De ruimte wordt op twee verschillende manieren gedefi nieerd. Ofwel als een extrusie van zijn binnenperimeter langs de Z-as, waar er eventueel opnieuw “boolean operations” op moeten uitgevoerd worden wanneer er bijvoorbeeld een hellend dak aanwezig is. [Afbeelding 2] Ofwel wordt de ruimte gedefi nieerd door de verschillende

vlakken die het omsluit. De vlakken worden gerepresenteerd door vlakke curves en vormen een gesloten schil rond de binnenafmetingen van de ruimte. Hierbij is het belangrijk dat alle normalen van die vlakken naar de binnenkant van de ruimte wijzen of juist allemaal naar buiten wijzen. [Afbeelding 3] Het verschil tussen beide methoden is dat de eerste gemakkelijk het volume en de oppervlakte van de volledige ruimte kan weergeven, maar dat er geen afzonderlijke informatie wordt meegegeven over de verschillende grensvlakken. De tweede methode daarentegen vertelt ons eerder iets meer over het type grensvlak

Afbeelding 2: collectie van ruimtes - solid De binnenperimeter van de gekleurde ruimte wordt geëxtrudeerd in de Z-richting. Op die manier wordt de ruimte voorgesteld door een solid. De solid heeft opnieuw een eigen oorsprong.

Afbeelding 3: collectie van ruimtes - schil Dezelfde ruimte als in afbeelding 2 wordt beschreven. Deze keer worden alle grensvlakken van de ruimte afzonderlijk gedefi nieerd door een polylijn, elk met hun eigen oorsprong.

(30)

verschil zit hem in de samenhang tussen de begrenzingen van de ruimte. Doordat de eerste methode met een solid werkt, is het meteen duidelijk hoe de volumetrie in elkaar zit. De tweede methode defi nieert echter de begrenzingen als een losse collectie van curves, zonder enige correlatie. Er wordt dus niet meegegeven welke curves aan elkaar grenzen, alle topologische informatie wordt achterwege gelaten. De collectie van ruimtes is logischer opgebouwd dan de deel-geheel structuur en biedt potentieel om gebruikt te kunnen worden als informatieoverdrager.

Het gbXML-formaat is speciaal ontwikkeld om informatie uit te wisselen tussen modelleersoftware en energiesimulatie software. De data die wordt uitgewisseld is daardoor afgestemd op de informatie die nodig is om een energiesimulatie uit te voeren. In vergelijking met het gebouwmodel gedefi nieerd in IFC is het gbXML-model sterk gereduceerd. Omdat het voor een thermische analyse voldoende is de U-waarde van een bouwelement te weten en welke vlakke vorm dit bouwelement

Afbeelding 5: deel-geheel structuur - type afmetingen

Dezelfde vlakken als in afbeelding 4 worden nogmaals beschreven, maar deze keer worden de vloeren op hun binnenafmetingen gezet, de daken op hun buitenafmetingen en de muren gecentreerd tussenbeide.

Afbeelding 4: deel-geheel structuur - binnenafmetingen

De grensvlakken worden beschreven door polylijnen. Alle vlakken worden gegroepeerd per ruimte. In dit geval worden de vlakken op hun binnenafmetingen geplaatst.

(31)

heeft, wordt de solid representatie van de bouwelementen zoals die in IFC wordt gedefi nieerd achterwege gelaten. Alle bouwelementen die een ruimte omsluiten worden tevens gereduceerd tot vlakke polygonen. De elementen worden verder nog omschreven door hun naam en type.

Hier wordt de informatie opnieuw op twee manieren gestructureerd: een deel-geheel structuur en een opsomming van de verschillende bouwelementen. Bij de deel-geheel structuur wordt er opnieuw vertrokken van een campus waarop verschillende gebouwen staan. Die gebouwen bevatten ruimtes, die op hun beurt door verschillende vlakken begrensd worden. De tweede structuur is een opsomming van die grensvlakken, maar in dit deel bevatten die vlakken meer informatie.

Bij de deel-geheel structuur worden de ruimtes omschreven door polylijnen die de grensvlakken voorstellen. Ze vormen een gesloten schil rond de ruimte. Anders dan bij het IFC-formaat worden alle elementen omschreven aan de hand van één gemeenschappelijk coördinatensysteem. De grensvlakken worden op twee manieren beschreven binnen deze deel-geheel structuur. Eerst wordt de ruimte beschreven door een “shell geometry”. De 2D bouwelementen vormen een schil rond de binnenafmetingen van de ruimte. [Afbeelding 4] Meer informatie dan alleen de curve, die de begrenzing omgeeft, wordt echter niet meegegeven. Diezelfde grensvlakken worden ook op een tweede manier beschreven in de deel-geheel structuur. Tegen de verwachtingen in wordt de ruimte deze keer niet omsloten op zijn binnenafmetingen zoals eerder wel werd gedaan bij de IFC standaard en de “shell geometry”. Afhankelijk van het type bouwelement wordt de begrenzing geplaatst op zijn buitenafmeting, binnenafmeting of

Afbeelding 6: opsommingsstructuur Alle vlakken worden op dezelfde manier beschreven als in afbeelding 5. Deze keer worden de vlakken echter niet onderverdeeld per ruimte. Per vlak wordt er extra informatie toegekend zoals de openingen en het type.

op zijn centrale as. [Afbeelding 5] Hier is de enige extra informatie die ter beschikking gesteld wordt de naam of identiteit van het vlak. Op vlak van geometrie lijkt dit een goede structuur te zijn om informatie over te dragen. Er is echter nog extra informatie nodig, zoals de raam- en deuropeningen, die alleen in de volgende structuur wordt meegegeven.

(32)

alle vlakken na elkaar opgesomd zonder enige verwijzing naar de ruimte waartoe ze behoren. [Afbeelding 6] Bij elk vlak is er echter wel een identiteit af te lezen die overeenkomt met de eerdergenoemde identiteit in de deel-geheel structuur. Op deze manier ontstaat er een link tussen de twee informatiestromen. Elk vlak krijgt ook extra informatie zoals de openingen in dat vlak, bv. raamopeningen, of het type begrenzing, bv. buitenmuur. Iedere begrenzing wordt dus twee keer beschreven in de deel-geheel structuur en nogmaals één keer in de opsommingsstructuur. Wanneer er gekeken wordt naar de manier waarop de bouwelementen gedefinieerd worden in de opsommingsstructuur, kan er waargenomen worden dat de curves identiek zijn aan een eerder gedefinieerde curve met dezelfde identiteit in de deel-geheel structuur. De informatie wordt dus één keer herhaald en is dus overbodig. Het is echter zo dat geen van beide structuren zomaar achterwege gelaten kan worden omdat ze telkens andere informatie over de begrenzing ter beschikking stelt. Om de geometrie volledig te kunnen inlezen is de opsommingsstructuur noodzakelijk omdat de openingen in de bouwelementen hier beschreven worden. De deel-geheel structuur is noodzakelijk om het bouwelement bij een ruimte te laten horen. Als er besloten zou worden met het gbXML-bestandsformaat te werken, dan zouden beide structuren moeten gebruikt worden om een juiste geometrie te importeren. Door de manier waarop de bouwelementen beschreven worden, als vlakke polygonen, heeft dit bestandstype een groot potentieel.

Aangezien gbXML nog niet geregistreerd is als een officiële standaard, zijn de geëxporteerde bestanden niet altijd op dezelfde manier gedefinieerd wanneer het uit verschillende modelleersoftware wordt gehaald. Bij Revit is het zo dat de

van het type vloeren en daken op hun hoogste punt gedefinieerd worden en dat alle begrenzingen van het type muur op hun centrale as zitten. De keuze of er binnen-, buiten- of gecentreerde afmetingen gebruikt worden verschilt afhankelijk van de BIM-software.

Net zoals bij de IFC-standaard blijven ook hier alle gedefinieerde polygonen een collectie van losse curves. Er is geen topologische structuur beschikbaar die de verschillende curves aan elkaar linkt zoals bij bv. een mesh. Daarbij worden de verschillende “edges”, of randen, gedefinieerd waar twee vlakken samenkomen. De vlakken worden eveneens beschreven door verschillende driehoeken, zodat vlakken met bv. raamopeningen ook kunnen gedefinieerd worden. Dergelijke topologie zal wel uiteindelijk nagestreefd worden om de geometrische informatie te ordenen.

CONCLUSIE

Beide bestandsformaten bieden een potentieel om gebruikt te worden als communicatiemiddel tussen BIM-software en Rhino. De voor- en nadelen van beide bestandsformaten kunnen nu met elkaar vergeleken worden:

• Beide formaten geven voldoende informatie om het model te importeren in een andere software, in dit geval Rhino. Waar het gbXML-bestand beperkter, maar voldoende, informatie bevat, omschrijft het IFC-formaat het volledige model. Dit resulteert in een onnodig zwaar bestand. • De geometrie wordt in beide formaten anders beschreven. Om de applicatie van genoeg input te voorzien, is het voldoende om alle grensvlakken van een ruimte als een 2D-object te omschrijven met de nodige openingen in die vlakken. De solid

(33)

representatie in de IFC-standaard kan achterwege gelaten worden. Uit beide bestandsformaten kan er genoeg informatie gehaald worden om deze 2D-vlakken te creëren.

• Het gbXML-formaat haalt zijn voordeel in de zuivere informatie die wordt aangeboden. Alle objecten worden aan de hand van één coördinatensysteem gedefinieerd. Bij het IFC-formaat zijn nog allerhande omrekeningen nodig om de verschillende coördinatensystemen om te zetten naar één gemeenschappelijke oorsprong.

• In beide bestandstypes ontbreekt er echter een omschrijving van de topologische structuur tussen de verschillende curves.

Doordat het gbXML-bestandstype makkelijker te implementeren valt in een nieuwe applicatie door zijn eenvoud [17] en het een compacter bestandstype is dat alle nodige informatie bevat, wordt de keuze gemaakt om met dit type verder te werken. De geometrie zal dus vanuit BIM-software geëxporteerd worden naar een gbXML-bestand en dit gbXML-bestand zal geïmporteerd worden in Rhino. In Rhino zal de applicatie dan, aan de hand van de geïmporteerde informatie, een lasercutbestand genereren.

(34)

Aangezien de applicatie in Rhino wordt ingeplugd, zal er ook vanuit gegaan worden dat als de ontwerper nog een model moet maken, hij dit in Rhino zal doen. Natuurlijk kan het ook zijn dat ontwerper al een 3D-model heeft klaarstaan in een ander CAD-programma zoals AutoCAD 3D of SketchUp. Rhino kan veel verschillende bestandstypes importeren zoals DXF [18] of COLLADA [19], dus meestal zal het geen probleem zijn om het model rechtstreeks te importeren in Rhino. Er moet wel rekening gehouden worden met de eenheden waarin getekend werd en dergelijke.

3. CAD-SOFTWARE: RHINO

Om de applicatie flexibeler te maken betreffende de manier waarop het digitaal model aangeboden kan worden, worden naast BIM-modellen ook CAD-modellen toegelaten. De gebruiker zal niet altijd een afgewerkt BIM-model ter beschikking hebben wanneer er een maquette moet gemaakt worden. Modelleren in BIM-software kan soms een tijdrovende activiteit zijn of is niet altijd de beste optie in een bepaalde fase in het ontwerpproces, omdat nog niet alle details van het ontwerp gekend zijn. Voor deze doelgroep bestaat er de mogelijkheid het model rechtstreeks te modelleren en aan te bieden via CAD-software.

[18] DXF = Drawing Exchange Format [19] COLLADA = COLLAborative Design Activity

(35)

Paper Wasp is een applicatie die vanuit een digitaal 3D-model, de nodige snijpatronen genereert om een fysiek model te kunnen bouwen. Het is een applicatie die in Rhino3d kan gebruikt worden en die inzet op de hedendaagse ontwikkelingen in de BIM-wereld. Vanuit één gecentraliseerd digitaal BIM-model kunnen de nodige presentatiedocumenten gegenereerd worden. Paper Wasp zet binnen dit proces in op de maquette.

Stap 1 Geometrie importeren Stap 2 Data structureren Stap 3 De verschaling

(36)

Stap 4 Buitenafmetingen Stap 5 Lasercutpatronen Stap 6 Lasercutbestand

Paper Wasp doorloopt verschillende stappen om tot het beoogde resultaat te komen. Elke stap wordt besproken aan de hand van een geïllustreerde uitleg, daarna is de gebruikershandleiding te zien en ten slotte kunnen de verschillende stappen verder bestudeerd worden aan de hand van het bijgevoegde pseudo script.

(37)

Geometrie importeren in Rhino vanuit

een 3D BIM/CAD model

(38)
(39)
(40)

1.1 GEOMETRIE IMPORTEREN VANUIT EEN 3D BIM-MODEL

In deze thesis wordt ervoor gekozen om Revit als BIM-software in te zetten. Vanuit deze software is het mogelijk een gbXML-bestand te exporteren en dit dan te importeren in Rhino, waarin Paper Wasp kan gerund worden. Zoals eerder besproken zal het gbXML-bestand steeds een beetje verschillen afhankelijk vanuit welke software het geëxporteerd zal worden. Dit hoofdstuk handelt over de methode, en eventuele problemen, die van toepassing zijn wanneer een Revit-model als vertrekpunt wordt genomen. De Revit-software zal ter illustratie worden genomen om te zien aan welke randvoorwaarden er moet voldaan worden om het model te exporteren. Andere BIM-software gaat op een gelijkaardige manier tewerk.

REVIT EXPORTEREN NAAR GBXML

Vanuit Revit is het niet mogelijk om met één druk op de knop een gbXML-bestand te exporteren. Het model heeft enkele voorbereidende stappen nodig, zodat het mogelijk is om de te exporteren informatie op een juiste manier te analyseren en te structureren. De deel-geheel structuur in het gbXML-formaat beschrijft verschillende ruimtes die als een schil omgeven worden door vlakken. Om te definiëren vanuit welke ruimtes er informatie moet onttrokken worden, is het belangrijk ze aan te duiden. Op die manier kunnen ook de vlakken die de ruimte omsluiten bepaald worden en verder in detail beschreven worden. Enkel van deze ruimtes die aangeduid zijn, zal er informatie verwerkt worden in de gbXML. Wanneer de ruimtes gedefinieerd worden is het mogelijk ze een naam te geven, deze

naam wordt ook vermeld in de het gbXML-bestand waardoor het duidelijk leesbaar wordt voor de ontwerper. Een bijkomend doel van het gbXML-formaat is namelijk dat het zowel voor computer als mens te begrijpen valt.

In de meeste gevallen zal dit volstaan om een juist model te exporteren. Soms kunnen er echter fouten ontstaan en zullen er enkele extra gegevens moeten ingevoerd worden. Revit beschrijft ruimtes door de perimeter te definiëren en door te kijken hoe hoog een ruimte is. De perimeter wordt gevormd door een gesloten begrenzing van verticale bouwelementen. Deze grens wordt geëxtrudeerd volgens zijn hoogte. Wanneer dit geëxtrudeerde volume kruist met een grensvlak, zoals bijvoorbeeld een schuin dak, zal er van de geëxtrudeerde ruimte een stuk afgesneden worden zodat het grensvlak, dus het dak, in rekening wordt gebracht. Soms wordt de hoogte echter niet hoog genoeg genomen, waardoor het geëxtrudeerde volume al stopt vooraleer dit volume het dak snijdt. Omdat er binnen het volume dus geen begrenzing aan de bovenkant gelezen wordt, zal Revit een horizontaal lucht-vlak definiëren. [Afbeelding 7] Om dit te vermijden kan de gebruiker handmatig de eigenschappen van de ruimte nog aanpassen. Normaliter wordt het vloerniveau en het plafondniveau aangenomen als start- en eindpunt van de extrusie, maar wanneer er bij voorbeeld splitlevels of een zadeldak aanwezig zijn, is het niet duidelijk waar de ruimte start of eindigt en kan Revit fouten maken. Dan is het belangrijk de eigenschappen te veranderen zodat de basis laag genoeg start

(41)

en de hoogte hoog genoeg eindigt. Er moet gezorgd worden dat de volledige ruimte in de hoogte vervat zit. [Afbeelding 8]

Een tweede fout kan zich voordoen wanneer een ruimte niet begrensd is door een gesloten schil, zoals bijvoorbeeld het geval is bij een inpandig terras. Dan is het niet mogelijk deze locatie aan te duiden als ruimte. Om deze beperking tegen te gaan, is er de optie zelf een grens van een ruimte te tekenen. Deze begrenzing van de ruimte zal in de gbXML gedefi nieerd worden met het type “Air”. Mede om deze reden is het belangrijk dat het type ook mee geëxporteerd wordt zodat de lasercut-applicatie weet van welke begrenzingen een lasersnijpatroon moet gegenereerd

worden. Als de applicatie vlakken inleest van het type “Air”, zal het automatisch deze vlakken moeten verwijderen.

Het gbXML-formaat werd ontwikkeld om alle data, die nodig is om een energiesimulatie uit te voeren, te verzamelen en over te dragen naar een ander softwarepakket. Tegenwoordig bestaat er in Revit echter ook een compacter bestand waarin enkel de volumetrie omschreven staat. Verschillende eigenschappen zoals de bezetting van een ruimte of de U-waarde van een gebouwelement worden dan achterwege gelaten. Aangezien het voor ons voldoende is enkel de volumetrie in detail over te zetten, wordt er voor het compacte bestand gekozen. [Afbeelding 10]

(42)

Afbeelding 9: defi nieer de ruimtes Elke ruimte krijgt een nummer en een naam die ook vermeld zal worden in het

gbXML-bestand:

<Name>101 Kitchen - Dining</ Name>

Via de “Upper Limit”, de “Limit Offset” en de “Base Offset” kan de hoogte, van de ruimte die geëxporteerd moet worden,

aangepast worden. In de taakbalk bovenaan zijn de commando’s terug te vinden om een ruimte of een begrenzing van een ruimte

toe te voegen. Afbeelding 10: kies voor het compacte bestand

(43)

GBXML UITGELEGD

Zoals eerder besproken zijn er twee structuren in het gbXML-bestand terug te vinden die de geometrie van het gebouw omschrijven. De eerste splitst het gebouw op in verschillende ruimtes en de tweede is een opsomming van de verschillende vlakken met hun eigenschappen. Er wordt gestart vanop het niveau van de “Campus” en dan wordt er telkens meer in detail getreden tot op het niveau van coördinaten. Onderstaand schema geeft de boomstructuur weer, enkel de delen waarin zich relevante info bevindt worden verder vertakt en besproken. [Afbeelding 11]

De twee informatiestructuren vertakken zich vanuit “Campus”, dit is dus hun gemeenschappelijke “root” of wortel. Daarop zullen zich één of meerdere gebouwen bevinden. Elk gebouw heeft een collectie aan ruimtes, “Spaces”. Vanuit die ruimte ontstaan twee nieuwe takken: de “ShellGeometry” en een opsomming van “SpaceBoundaries”. De “ShellGeometry” omschrijft een gesloten schil die bestaat uit verschillende curves. Deze curves omschrijven de binnenafmetingen. Omdat er via deze weg geen openingen in de grensvlakken kunnen gedefinieerd worden, wordt deze hele tak van de “ShellGeometry” achterwege gelaten. De tweede tak binnenin de deel-geheel structuur is een beschrijving van de verschillende “SpaceBoundaries” die de ruimte omsluiten. Hier wordt het vlak omschreven door een “surfaceIdRef” en een curve die gedefinieerd wordt aan de hand van coördinaten.

Via de opsommingsstructuur, die eveneens vertrekt vanuit de “Campus”-tak, kunnen de verschillende “Surfaces” meer in detail beschreven worden. Zo een “Surface” krijgt een “id” waarnaar verwezen werd door de eerder vermelde “SpaceBoundaries”. Per vlak zijn er twee

stromen aan informatie die nuttig zijn om de geometrie van het gebouw te beschrijven: de “PlanarGeometry” en de “Openings”. De “PlanarGeometry” beschrijft de vorm van het vlak, maar deze werd echter al eerder omschreven in de “SpaceBoundary”, dus deze tak kan eveneens achterwege gelaten worden. Binnen de tak van zo een “Surface” zijn het dus enkel de openingen die van belang zijn. Zo een opening wordt gekenmerkt door een “OpeningType” en een curve die opnieuw beschreven wordt door punten.

De compacte versie van het gbXML-bestandstype beschrijft de geometrie van het gebouw, de locatie, oppervlaktes en volumes van ruimtes, etc. Heel de geometrie van het gebouw en allerhande eigenschappen en functies worden in een duidelijke boomstructuur weergegeven. Enkel de informatie die specifiek nodig is voor energiesimulaties (zoals U-waarden en bezetting van de ruimtes) wordt achterwege gelaten. Ook al bevat dit compacte bestand veel minder informatie, dan nog bevat het veel takken die niet bekeken moeten worden. De reden hiervoor is vooral de herhaling van dezelfde informatie op verschillende plaatsen. Het lijkt er dus op dat een herstructurering van dit bestandsformaat resulteert in grote verbeteringen omtrent efficiënte informatie-uitwisseling. In de plaats van het bestand te belasten met deze herhalingen, zou het beter zijn nieuwe data toe te voegen zoals de diktes van de bouwelementen of een topologische structuur tussen de losse vlakken.

(44)

Nu de structuur van het gbXML-bestand duidelijk is, kan de nodige informatie geïmporteerd en getekend worden in Rhino. Het voordeel van met Pythonscript te werken, is dat er al heel wat functies bestaan die beschikbaar zijn tot import. Zo bestaat er ook een module met enkele handige functies om een XML-bestand in te lezen door informatie op te zoeken in de boomstructuur van dit bestandsformaat. Deze ElementTree-module [20] kan de gevonden informatie ook in een boomstructuur opslaan die gelijkaardig is aan de originele structuur van het XML-bestand.

Als eerste stap moet het gbXML-bestand geïmporteerd worden door de bestandsnaam en het bestandspad (filepath) te definiëren. Dan kan er een functie opgestart worden om de “root”, dus de eerste tak van het bestand te vinden. Van daaruit kan er telkens dieper gezocht worden in de vertakkingen. Binnen de “root” kan er gezocht worden naar alle elementen die overeenkomen met een welbepaalde zoekopdracht. Per gevonden element wordt er een nieuwe “root” gecreëerd zodat er opnieuw verder gezocht kan worden naar andere elementen in deze vertakkingen. Door dit herhaaldelijk te doen en verder te gaan zoeken naar informatie in de verschillende vertakkingen, kunnen uiteindelijk alle nodige coördinaten gevonden worden. Met die coördinaten kunnen de nodige punten getekend worden, waarmee op hun beurt de curves gevormd worden. Deze curves worden gebruikt om vlakken te vormen. Doordat de ElementTree-module de informatie in de juiste boomstructuur kan opslaan, is het mogelijk de juiste punten te groeperen en met elkaar te verbinden en de juiste vlakken aan een ruimte toe te wijzen. De vlakken worden getekend in

lagen krijgen de naam van de ruimte die eerder werd benoemd door de gebruiker in Revit. Op die manier ontstaat een volledige vormgeving van het gebouw in Rhino. Door elke laag/ruimte een eigen kleur te geven, is het voor de gebruiker meteen duidelijk hoe het gebouw eruitziet en of het op de juiste manier geëxporteerd werd.

Tijdens deze functie wordt er niet alleen gezorgd dat het model getekend wordt, maar de informatie over de getekende objecten wordt ook gestructureerd en bewaard in lijsten. Telkens wanneer een object getekend wordt in Rhino krijgt het een GUID, een “globally unique identifier”. Door deze unieke identiteit op te slaan in een lijst in de applicatie, kan alle informatie over dat object opnieuw opgevraagd en aangepast worden aan de hand van zijn unieke naam. Bij een punt bestaat deze informatie bijvoorbeeld uit een X-, Y- en Z-coördinaat en kan elke coördinaat aangepast worden.

[20] Hoe deze module in zijn werk gaat en hoe het geïmplementeerd kan worden, wordt uitgebreid

(45)

Afbeelding 11: de structuur van een gbXML-bestand

gbXML Campus surfaceType, Surfaceid Afbeelding 6 Building id Opening openingType, id Space id Name Location DaylightSavings Name StreetAddress BuildingStorey Area Description AdjacentSpaceId RectangularGeometry PlanarGeometry CADObjectId Name

(46)

PlanarGeometry SpaceBoundary

surfaceIdRef Afbeelding 5

Name

PlanarGeometry PolyLoop CartesianPoint Coordinate

PolyLoop CartesianPoint Coordinate

ShellGeometry Afbeelding 4 Volume PlanarGeometry Area CADObjectId CADObjectId Name RectangularGeometry

(47)

1.2 GEOMETRIE IMPORTEREN VANUIT EEN 3D CAD-MODEL

Naast BIM-modellen, kunnen er ook CAD-modellen aangeboden worden. Het model moet getekend staan in Rhino om ingelezen te worden in de applicatie. In vergelijking met het importeren van een BIM-model via een gbXML-bestand, wordt er dus een stap overgeslagen. Het model moet echter wel op een juiste manier gemodelleerd worden via enkele regels. Wanneer een geometrie via gbXML geïmporteerd zou worden, is het op een bepaalde manier gemodelleerd en klaar om verwerkt te worden tot een snijpatroon. Het is dus de bedoeling dat het Rhino-model ook op de juiste manier gemodelleerd is en ingelezen kan worden door de applicatie.

Een eerste randvoorwaarde is dat de ruimtes op eenzelfde manier moeten vormgegeven worden zoals ze gedefinieerd worden in de gbXML-structuur. Dat wil zeggen dat alle ruimtes omsloten worden door 2D-vlakken. Het is noodzakelijk dat deze vlakken door één curve kunnen beschreven worden, het mag met andere woorden geen samengesteld vlak zijn of een vlak met openingen in. De vlakken worden dan ofwel op de binnenafmetingen, de buitenafmetingen of de afmetingen op de centrale as van het bouwelement geplaatst. Voor daken en vloeren is dat op hun hoogste punt en zowel binnen- als buitenmuren worden op hun centrale as geplaatst. Alle vlakken rondom een ruimte vormen een gesloten schil. Dat wil zeggen dat de randen van de vlakken elkaar raken, zodat er geen openingen in de schil voorkomen.

Wanneer er een ruimte in het gbXML-bestandstype gedefinieerd wordt, zal er altijd voor gezorgd worden dat de normalen van de vlakken naar buiten wijzen. Dit is een noodzakelijke voorwaarde om de applicatie op een juiste manier berekeningen te laten uitvoeren. Het is namelijk zo dat de applicatie de afmetingen van het gebouw nog zal omzetten naar zijn buitenafmetingen en de juiste richting van de normalen is daarbij noodzakelijk. Kort komt dit erop neer dat de normalen van alle buitenmuren naar het exterieur moeten wijzen, die van de daken omhoog moeten wijzen en die van alle vloeren omlaag. De richting van de normaal van de binnenmuren maakt niet uit.

De enige informatie die dan nog niet gekend is, maar dat wel uit de gbXML-file kan gehaald worden, is het type van grensvlak. De “surfaceTypes” die gedefinieerd worden door het gbXML-formaat zullen overgenomen moeten worden in een Rhino-bestand. Het is de bedoeling dat de gebruiker alle vlakken in de juiste laag zet volgens zijn type. Een buitenmuur zal bijvoorbeeld in de laag “ExteriorWall” moeten geplaatst worden. Er zal een Rhino-template ter beschikking gesteld worden met de correcte lagen en benamingen. [Afbeelding 12]

(48)

voorgesteld door 2D-vlakken.

• Deze vlakken vormen een gesloten schil rond elke ruimte.

• Vlakken die daken en vloeren representeren, worden op hun hoogste punt geplaatst en vlakken die muren voorstellen worden centraal in de dikte van het bouwelement geplaatst.

• De normalen van de vlakken wijzen naar het exterieur. De normalen van daken wijzen dus steeds naar boven en die van de vloeren naar beneden.

• Al deze vlakken worden in lagen gezet volgens hun type begrenzing.

• Ten slotte worden de raam- en deuropeningen ook als vlakken gemodelleerd die op het vlak van hun bijbehorende bouwelement gelegen zijn. Deze worden in de laag “Opening” geplaatst.

Layers Roof ExteriorWall

Afbeelding 12: modelleerregels in Rhino De vlakken vormen een gesloten schil rond de ruimtes. Hun normalen wijzen naar het exterieur. Elk vlak wordt in een laag gezet volgens zijn type.

(49)

1.3 DE COMBINATIE VAN EEN BIM- EN EEN CAD-MODEL

Er werden nu twee manieren besproken om een 3D-model aan te bieden, een BIM-model in Revit of een CAD-model in Rhino. Er kan echter nog een combinatie bestaan van beiden. Dan is het de bedoeling dat er gestart wordt van een BIM-model, dat via een het gbXML-formaat geïmporteerd wordt in Rhino. Het kan echter zo zijn dat er enkele fouten in de geometrie geconstateerd worden [21] of dat er nog enkele dingen toegevoegd moeten worden omdat deze nog niet in Revit gemodelleerd werden. Om die controle toe te laten, zal de applicatie na het importeren van het gbXML-bestand een pauze inlassen. Deze pauze maakt het mogelijk voor de gebruiker nog enkele aanpassingen te doen aan het model, rekening houdend met vooraf genoemde modelleerregels. Paper Wasp kan daarna opnieuw opgestart worden zoals men zou doen met een volledig Rhino gemodelleerd model.

[21] GSA (2009) Afbeelding 13: werkwijze Een BIM-model kan geïmporteerd worden via een gbXML-bestand. Het model wordt dan getekend in Rhino. Een CAD-model wordt ofwel geïmporteerd in Rhino, ofwel rechtstreeks gemodelleerd in Rhino. Van eender welk Rhino-model, dat op de juiste manier gemodelleerd is, kan een lasercutpatroon gegenereerd worden. Dat patroon kan geëxporteerd worden als

(50)

lasercutpatroon

3D BIM-model

3D CAD-model

vendor neutral

data format

lasercutpatroon

in dxf-formaat

Rhino-model

Rhino

applicatie

Stap 1: geometrie importeren via een Rhino-model

Stap 2: ... etc.

Rhino-model

applicatie

Stap 1: geometrie importeren via gbXML

lasercutpatroon

vendor neutral

data format

(51)

De geïmporteerde data structureren: een

topologische structuur toevoegen

(52)
(53)
(54)

2.1 EEN NIEUWE STRUCTUUR GENEREREN

Wanneer Paper Wasp opgestart wordt, zullen alle nodige objecten ingeladen worden. Ze worden via hun GUID, hun unieke identiteit, geordend in lijsten die een bepaalde naam hebben. De nieuwe structuur van deze lijsten wordt gebaseerd op de manier waarop een geometrie beschreven staat in een gbXML-bestand. Dat wil zeggen dat ook de geometrie die vanuit Rhino geïmporteerd wordt volgens deze structuur zal geordend worden. Kort komt het erop neer dat elk grensvlak zal beschreven worden door een vlak, een curve die dat vlak omschrijft en de verschillende punten waarmee die curve gevormd wordt. [Afbeelding 14]

SURFACES EN SURFACETYPES

Het volledige model dat in Rhino werd gemodelleerd bestaat uit vlakken. Al deze vlakken werden in lagen gezet afhankelijk van hun type. Omdat het gbXML-bestandsformaat de verschillende types grensvlakken die vanuit Revit geëxporteerd werden in 10 categorieën verdeelt, zullen er ook 10 verschillende lagen ter beschikking staan waarin de hele geometrie kan onderverdeeld worden. In een elfde laag zullen alle openingen verzameld worden, want zoals eerder gezegd zal elke opening door zijn eigen vlak beschreven worden.

11 lagen: 10 surfaceTypes en een laag voor de openingen • ExteriorWall • InteriorWall • UndergroundWall • InteriorFloor • Roof • RaisedFloor • SlabOnGrade • UndergroundSlab • Shade • Air • Opening

Wanneer er zich vlakken bevinden in één van deze lagen, zullen elk van deze vlakken toegevoegd worden aan de collectie “surfaces”. Van elk vlak wordt ook genoteerd uit welke laag hij verzameld werd. Op deze manier kan telkens wanneer nodig het type van het grensvlak opgevraagd worden. Dit type zal net zoals in de gbXML overkoepeld worden door de term “surfaceType”.

(55)

CURVES

De volgende stap om de nieuwe structuur te maken, is het definiëren van een curve per vlak. Deze curve vormt de begrenzing rond het vlak. Er wordt opnieuw een collectie aangemaakt van curves, waarbij elke curve gekenmerkt wordt door een GUID.

POINTLISTS

Elke curve kan geconstrueerd worden door verschillende punten, die met rechte lijnen verbonden worden. Deze punten worden verzameld in een puntenlijst per curve. Elk punt kan op zijn beurt beschreven worden door een X-, Y- en Z-coördinaat.

OPENING

Elk vlak die in de laag “Opening” voorkwam, zal eveneens gedefinieerd worden door een vlak (“Osurface”), een curve (“Ocurve”) en een lijst met punten (“Opointlist”) die op dezelfde manier geconstrueerd worden als hierboven omschreven. Elke opening zal ondergebracht worden bij het vlak waartoe het behoort. Om dit te onderzoeken zal er gekeken worden of meerdere punten die de opening beschrijven op één van de grensvlakken gelegen zijn.

Opointlist Opoint Ocoordinate curve GUID surfaceType Osurface GUID surface GUID pointlist Ocurve GUID point coordinate

Afbeelding 14: de nieuwe structuur

Alle informatie over een grensvlak wordt verzameld onder één tak. In tegenstelling tot de structuur van het gbXML-bestandstype moet er dus niet gewerkt worden met verwijzingen van de ene tak naar de andere.

(56)

Afbeelding 15: kubus zonder topologische structuur

De informatie die vanuit het gbXML-bestand werd geïmporteerd bevatte geen topologische structuur. Het is een verzameling van losse vlakken en punten. In elk punt van de kubus komen er drie vlakken samen. Er is nergens terug te vinden dat dit gebeurt en dus al zeker niet welke drie vlakken dit zijn.

Afbeelding 16: kubus met topologische structuur

Bij de topologische structuur die extra wordt toegevoegd zal er bepaald worden hoe de vlakken aan elkaar raken via gemeenschappelijke punten of randen. Bij het punt waar de drie vlakken samenkomen zal vermeld welke drie vlakken er samenkomen en over welke punten van die vlakken het gaat. Hetzelfde wordt voor de randen gedaan.

2.2 EEN TOPOLOGISCHE STRUCTUUR TOEVOEGEN

Er werd eerder al gezegd dat zowel het gbXML- als het IFC-formaat niet beschikken over een topologische structuur. Beide formaten hebben in het beste geval een verzameling van losse vlakken per ruimte. [Afbeelding 15] Een topologische structuur zorgt ervoor dat men weet welke vlakken aan elkaar grenzen, dus hoe ze in verhouding staan ten opzichte van hun buren. [Afbeelding 16] In de volgende stappen zal duidelijk blijken dat deze extra gelaagdheid noodzakelijk is.

GEMEENSCHAPPELIJKE PUNTEN

Voor elk punt van elk vlak zal er gekeken worden of er nog een ander vlak bestaat die ook een punt heeft die op dezelfde locatie gelegen is. Bij een kubus zullen bijvoorbeeld telkens drie vlakken elk één punt delen op dezelfde locatie. Om dit te bepalen zal er gekeken worden of de coördinaten van twee punten identiek zijn. Wanneer dit het geval is, raken de twee vlakken elkaar in dit punt en zal deze informatie opgeslagen worden.

Referenties

GERELATEERDE DOCUMENTEN

Digitale vervaardiging kan worden gebruikt voor routinemontages, maar het kan ook meer complexe vormen en montages mogelijk maken, die niet mogelijk zouden zijn door gebruik van

Autodesk Revit en MS Windows Tijdens deze training leert cursist(e) een stedenbouwkundig plan binnen Autodesk Revit op te zetten en op basis van een volumestudie een ontwerpmodel

Based on a sewer renewal project in Rotterdam, this research aims to reduce data loss during the data transfer by combining Building Information Model (BIM) and Geographic

Based on literature and interviews, a few trajectories for the integration of structural analysis are introduced, along with a new concept that entails an improvement on

Ik heb het plan beoordeeld op basis van het provinciaal belang zoals dat is opgenomen in de Provinciale Ruimtelijke Structuurvisie 2013-2028 en geborgd in de Provinciale

overeenkomsten en verschillen tussen de in de praktijk verkregen gegevens en de gewenste situatie (mede op basis van theoretisch kader). Verder worden in dit hoofdstuk de barrières

De doelstelling vanuit Arcadis is om alle wegontwerp projecten op level 1 te hebben en een aantal op level 2, dit is dus ook het doel voor elke groepering.. 4.4.2 Resultaat

Alle eisen voor het maturity model zijn weergegeven in paragraaf 3.3.1 in Tabel 1 en zijn opgesteld in samenspraak met BNBO West... Om de audit te ontwikkelen is de huidige