76
Effektivisering av Byggprojektering med hj¨ alp av Grafisk programmering Improving the Efficiency of Building Design using Graphic Programming orfattare: Nils Ahlner Gunnar Dahl Handledare: Ahmad Reza Roozbeh, KTH ABE Lilian S¨ oderman, Ramb¨ oll Uppdragsgivare: Ramb¨ oll Godk¨ annandedatum: 2018-06-20 Examinator: Per Roald Serienummer: TRITA-ABE-MBT-1859 Utbildningsenhet: KTH, ABE, Byggvetenskap, avd f¨ or Byggteknik och Design

E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Effektivisering av Byggprojekteringmed hjalp av

Grafisk programmering

Improving the Efficiency of Building Designusing Graphic Programming

Forfattare: Nils AhlnerGunnar Dahl

Handledare: Ahmad Reza Roozbeh, KTH ABELilian Soderman, Ramboll

Uppdragsgivare: Ramboll

Godkannandedatum: 2018-06-20

Examinator: Per Roald

Serienummer: TRITA-ABE-MBT-1859

Utbildningsenhet: KTH, ABE, Byggvetenskap, avd for Byggteknik och Design

Page 2: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till
Page 3: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Sammanfattning

BIM (Building Information Modeling) ar idag ett vedertaget begrepp inom byggpro-jektering. En viktig styrka med BIM ar mojligheten till koordinering mellan samtligaaktorer i projektet. BIM-verktygen bygger pa parametrisering vilket innebar att mo-dellens objekt har en stor uppsattning data kopplad till sig. Objektens egenskaperkan andras genom att justera parameterdatan. Parametriseringen medfor ocksa attdata relativt enkelt kan nas, extraheras och styras av externa program. Det ar i dettasyfte som implementeringen av grafisk programmering fyller en viktig funktion. Medhjalp av grafisk programmering kan flera operationer i BIM-arbetet automatiseras.Darmed finns potentialen att spara vardefull tid for byggprojektoren.

Autodesk Revit ar ett av de verktyg som dominerar BIM-marknaden. I Revit kananvandaren designa och dokumentera ett byggprojekt i alla dess faser. Sedan nagraar tillbaka finns det ett tillagg till programmet som heter Dynamo. Dynamo tillateranvandaren att styra Revit med hjalp av skript i en anvandarvanlig grafisk miljo.I denna uppsats redogors for Dynamos mojligheter och begransningar applicerat pavaletablerade arbetsmoment inom byggprojektering. Har redogors for optimerings-potentialen och lampliga anvandningsomraden. Slutsatser som dragits grundar sig ihog grad pa en empirisk undersokning dar ett antal grafiska skript har skapats ochutvarderats.

Resultatet visar pa att flera vitala moment i byggprojektorens vardagliga arbetsflodekan effektiviseras med hjalp av inforandet av grafisk programmering. Med effekti-visering avses i detta fall primart tidsbesparingar som bidrar till okad ekonomiskhallbarhet for byggprojekteringsforetaget.

Nyckelord: BIM, Autodesk Revit, Dynamo, Grafisk programmering, Parameterstyr-ning, Byggprojektering, Ritningshantering.

Page 4: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till
Page 5: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Abstract

BIM (Building Information Modeling) is today a proven concept in construction de-sign. An important strength with BIM is the possibility of coordination between allactors in the project. The BIM tools are based on parameterization, which meansthat the model’s object has a large set of data attached to it. The properties ofthe objects can be changed by adjusting the parameter data. Parameterization alsomeans that data can be easily accessed, extracted and controlled by external appli-cations. It is for this purpose that the implementation of graphic programming playsan important role. With the help of graphical programming, several operations inthe BIM work can be automated. Thus, there is the potential to save valuable timefor the construction projector.

Autodesk Revit is one of the tools that dominates the BIM market. In Revit, theuser can design and document a construction project in all its phases. For a fewyears back, there is an addition to the program called Dynamo. Dynamo allows theuser to control Revit using scripts in a user-friendly graphical environment.This essay explains Dynamo’s possibilities and limitations applied to work processesin building design. It describes the optimization potential and appropriate applica-tions. Conclusions are mainly drawn based upon the generation and evaluation ofgraphical scripts.

The result shows that several vital moments in the construction projector’s dailyworkflow can be rationalized through the introduction of graphic programming. Ra-tionalization means time savings that contribute to increased economic sustainabilityfor the construction company.

Keywords: BIM, Autodesk Revit, Dynamo, Graphic Programming, Parameter Con-trol, Construction Design, Drawing Handling

Page 6: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till
Page 7: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Forord

Vi vill rikta ett tack till Carl Akerhielm, avdelningschef, som visat oss fortroende ochgivit oss mojligheten att utfora detta examensarbete pa Ramboll. Stort tack till varexterna handledare Lilian Soderman, konstruktor, for alla vardefulla amnesuppslagsamt granskning och aterkoppling under arbetets gang. Vi vill aven tacka var akade-miska handledare Ahmad Reza Roozbeh som visat stort intresse for uppsatsamnet,granskat uppsatsen och bidragit med konstruktiv kritik.

Stockholm, maj 2018

Nils AhlnerGunnar Dahl

vii

Page 8: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till
Page 9: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Ordlista

BIM Building information Modeling

AEC Architecture, Engineering & Construction

API Application Program Interface

BIP Building Information Properties

Autodesk Revit BIM-programvara for framstallning av parametriska3D-modeller

Skript Text som innehaller instruktioner och kommandon tilldatorprogram

Grafisk programmering Programmering i grafisk miljo, utan textbaseradeskript.

Dynamo Plug-in till Autodesk Revit for skapande av grafiskaskript.

Noder (Nodes) De grafiska block som processar information och utforoperationer i Dynamo.

Kontakttradar (Wires) Signalbarare som sammankopplar noderna i Dynamo.

Element Element ar benamningen pa objekt i Autodesk Revit.Det finns tre typer av element: modellelement, datume-lement och vyspecifika element.

Parameter Parametrar i Revit anvands for att definiera elemen-tens olika egenskaper. Parametrarna anvands aven foratt kommunicera modellinformation for modifiering avelementen.

Vyer (Views) Genom vyer eller s.k. views kan Revit-anvandarenaskadliggora och dokumentera olika delar av byggpro-jektet.

Ritningar (Sheets) Revits digitala ritningar, vilka forses med vyer, ritnings-ramar och stamplar etc.

Mallfil (Templates) En mallfil tjanar ofta som en startpunkt i ett Revit-projekt. Mallfiler kan t.ex. inkludera installningar forvyer, grafiska filter och inladdade objektfamiljer. Detkan aven vara fordefinierade enheter, fyllmonster, lin-jetjocklekar, skalor etc.

Open Source Oppen kallkod vilken mojliggor for privata anvandareoch externa kodare (andra an utgivaren) att skapa egnaskript och modifiera programmet.

Programmeringssprak Textbaserade kommandon som styr datorprogram.Nagra av de sprak som behandlas i rapporten ar Python,C#, DesignScript, VB.Net och Ruby.

ix

Page 10: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Innehall

Forord vii

Ordlista ix

1 Inledning 11.1 Bakgrund . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.1 Nulagesbeskrivning . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.2 Ramboll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.3 Rambolls behov . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Malformulering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Syfte och Fragestallningar . . . . . . . . . . . . . . . . . . . . . . . . . 21.4 Avgransningar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Metod 32.1 Validitet och tillforlitlighet . . . . . . . . . . . . . . . . . . . . . . . . . 3

3 Teoretisk referensram 53.1 CAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53.2 Parametrisk modellering . . . . . . . . . . . . . . . . . . . . . . . . . . 53.3 BIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.4 Ritningsframstallning med BIM-verktyg . . . . . . . . . . . . . . . . . 73.5 Autodesk Revit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.5.1 Revits uppbyggnad . . . . . . . . . . . . . . . . . . . . . . . . . 83.5.2 Views & Sheets i Revit . . . . . . . . . . . . . . . . . . . . . . 113.5.3 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.6 Grafisk programmering . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.7 Dynamo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.7.1 Exempel pa noder . . . . . . . . . . . . . . . . . . . . . . . . . 153.7.2 Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.7.3 Pythonskript . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.8 Dynamo Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4 Genomforandet 214.1 Faktainsamling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.1.1 Rambolls arbetssatt . . . . . . . . . . . . . . . . . . . . . . . . 214.1.2 Dynamos funktioner . . . . . . . . . . . . . . . . . . . . . . . . 214.1.3 Omraden att effektivisera . . . . . . . . . . . . . . . . . . . . . 21

4.2 Dynamo-skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.2.1 Skript for ny anvandare . . . . . . . . . . . . . . . . . . . . . . 224.2.2 Skript for skapande av nya ritningar . . . . . . . . . . . . . . . 254.2.3 Skript for justering av vyplacering . . . . . . . . . . . . . . . . 304.2.4 Skript for uppdatering av Type Name och Type Mark . . . . . 324.2.5 Skript for View Range . . . . . . . . . . . . . . . . . . . . . . . 344.2.6 Skript for Approved . . . . . . . . . . . . . . . . . . . . . . . . 364.2.7 Skript for att styra ordning av kodlasning . . . . . . . . . . . . 384.2.8 Skript for modellering . . . . . . . . . . . . . . . . . . . . . . . 38

4.3 Python-Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.4 Svarigheter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

x

Page 11: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

5 Resultat 45

6 Analys 476.1 Tidsbesparingar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

6.1.1 Approved . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486.1.2 Skript for nya ritningar . . . . . . . . . . . . . . . . . . . . . . 496.1.3 View Range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506.1.4 Kommentar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

7 Slutsatser 537.1 Sammanfattande kommentar . . . . . . . . . . . . . . . . . . . . . . . 55

8 Rekommendationer 57

9 Referenser 599.1 Tryckta kallor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599.2 Databaser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599.3 Tidigare gjorde examensarbeten inom amnesomradet . . . . . . . . . . 619.4 Personlig kommunikation . . . . . . . . . . . . . . . . . . . . . . . . . 619.5 Bildreferenser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

Figurer 64

xi

Page 12: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till
Page 13: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

1 Inledning

1.1 Bakgrund

En kvalificerad majoritet av de storre byggprojekt som initieras idag tillampar nagonform av BIM-teknologi i projekteringsskedet. BIM eller Building Information Mode-ling innebar att en eller flera virtuella modeller upprattas digitalt for att designa ochdokumentera byggprojektet. En fullstandig modell innehaller precisa och fullt defi-nierade geometrier samt all tankbar data for att stodja processer inom projektering,produktion, upphandling etc. En viktig styrka med BIM ar mojligheten till koordine-ring mellan samtliga aktorer i projektet. BIM-verktygen bygger pa parametriseringvilket innebar att modellens ingaende data relativt enkelt kan nas och styras av ex-terna program. Det ar i detta syfte som implementeringen av grafisk programmeringfyller en viktig funktion.

1.1.1 Nulagesbeskrivning

Autodesk Revit ar ett av de verktyg som dominerar BIM-marknaden och program-met anvands av merparten av arkitektkontoren och konstruktionsfirmorna i landet.Sedan nagra ar tillbaka finns det ett tillagg till programmet som heter Dynamo. Fle-ra foretag inom byggprojektering har visat ett okat intresse for programvaror liktDynamo for att effektivisera sitt dagliga arbetsflode och darmed uppna okad ekono-misk hallbarhet. Dynamo tillater anvandaren att styra Revit med hjalp av skript i enanvandarvanlig grafisk miljo. Med Dynamos hjalp skulle flera tidskravande operatio-ner, som annars maste goras manuellt, istallet kunna automatiseras. Detta innebar isin tur att vardefull tid istallet kan laggas pa andra, mer centrala, arbetsmoment.

1.1.2 Ramboll

Detta examensarbete har utforts pa uppdrag av teknikkonsultfirman Ramboll AB paavdelningen for husbyggnad. Ramboll ar ett multinationellt teknikkonsultforetag in-om infrastruktur och samhallsbyggnad med 13 000 medarbetare i 35 lander. Rambollssvenska huvudkontor ligger pa Krukmakargatan i Stockholm. I Sverige finns cirka2000 medarbetare pa ett 30-tal kontor fran norr till soder (Ramboll, 2018). Rambollags av Rambollstiftelsen, med sate i Danmark, dar Rambollgruppen ocksa har sitthuvudkontor (i Ørestad, Kopenhamn) (Wikipedia, 2018). I den svenska verksamhe-ten ingar Ramboll Sverige med divisionerna Buildings, Transport och Project Ma-nagement. I Sverige finns ocksa dotterbolaget Ramboll Management Consulting ochGlobal Practices for Environment & Health, Water och Energy (Ramboll, 2018).

1.1.3 Rambolls behov

Ramboll anvander Revit for modellering, samordning och ritningsframstallning ge-nom hela projekteringsprocessen. Det finns redan kunskaper om grafiska programme-ringssprak och verktyg liknande Dynamo. Daremot har det endast funnits begransadtid och resurser for att utveckla dessa delar av verksamheten och det ar inte hellerrealistiskt att varje enskild anstalld ska ha insikt i grafisk programmering i framtiden.Icke desto mindre finns det ett klart intresse och ett behov av att utnyttja styrkor-na med grafisk programmering for att effektivisera arbetsflodet. Slutprodukten somlevereras till kund ar konstruktionsritningar och darfor stalls hoga krav pa en effek-tiv och korrekt ritningshantering (Soderman 2018a). Om ritningsframstallningen och

1

Page 14: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

omgardande moment kan utforas enklare och snabbare, leder detta till ekonomiskavinster.

1.2 Malformulering

Malet med examensarbetet ar att urskilja ett antal arbetsmoment inom byggprojek-tering som ar lampliga att effektivisera med hjalp av grafisk programmering. Arbetetskall ocksa resultera i praktiska exempel pa hur detta kan goras. Darutover skall ge-nerella slutsatser rorande programvarans potential, med avseende pa effektivisering,dras.

1.3 Syfte och Fragestallningar

Det overgripande syftet med detta examensarbete ar att undersoka mojligheten tilleffektivisering av byggprojektering med hjalp av inforandet av grafisk programme-ring. I forsta hand med avseende pa ritningshantering, men aven en utvardering avandra mojligheter, t.ex hantering av mallfiler och modellering.

Fragestallningar:

Hur kan grafisk programmering tillampas for att effektivisera byggprojekteringspro-cessen och vilka mojligheter medfor det?

Vilka svarigheter finns det i handhavandet av programmeringsverktyget?

Inom vilka arbetsmoment finns de storsta vinsterna med grafisk programmering ibyggprojektering?

1.4 Avgransningar

I detta examensarbete begransas tillampningen till grafisk programmering som etteffektiviseringshjalpmedel inom BIM och da i synnerhet vid moment kopplade till rit-ningsframstallning. Arbetet avgransas ytterligare av att forfattarna empiriskt endastkommer att undersoka tillampningen vid kombination av Autodesk Revit och Dyna-mo. Det finns flera andra programvaror (sasom Grasshopper for Rhino) med liknandefunktioner, men dessa kommer inte att avhandlas i denna text. Motivet till dennaavgransning styrs framst av efterfragan pa den svenska projekteringsmarknaden, ochframforallt av uppdragsgivarens (Rambolls) onskemal.Autodesk Revit ar idag det program som har storst spridning inom BIM-faltet (av-seende husbyggnad) och anvands av de flesta konstruktions- och arkitektfirmorna ilandet. Dynamo har profilerats for att fungera som plugin for Autodeskprodukternasa det ar ett naturligt val att undersoka just denna applikation.

2

Page 15: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

2 Metod

Litteraturstudie: Information rorande programvaran Dynamos anvandningsom-raden, dess begransningar och potential kan sokas i tryckt litteratur samt via hand-bocker och instruktionsfilmer pa internet.

Empirisk studie: Detta examensarbete innefattar aven en empirisk studie darforfattarna praktiskt tillampar programvaran Dynamo for att hamta och styra para-metrar i Autodesk Revit samt att lanka information mellan Revit och Excel.

Personlig kommunikation: Under arbetets gang kommer det aterkommande atthallas muntlig kontakt med yrkesverksamma BIM-samordnare och konstruktorer lo-kalt pa Ramboll. Detta ger erforderlig information om vilka problem som onskaslosas, nya uppslag samt konstruktiv kritik pa de uppnadda resultaten.

2.1 Validitet och tillforlitlighet

Det finns vissa risker knutna till avgransningen samt metodvalet i examensarbe-tet. Den empiriska undersokningen ar begransad da den framst kommer att avspeglaRambolls specifika behov och arbetsmetoder. De skript forfattarna soker utveckla foreffektivisering av byggprojektering kommer kanske inte omedelbart att gagna andraaktorer an Ramboll.

Den eventuella tidsbesparande aspekten av att ha ett fungerande skript som t.ex.underlattar ritningsframstallningen ar visserligen hogst matbar i liten skala men detfinns svarigheter i att forutspa nyttan for byggbranschen i stort. Med andra ord kandet finnas vissa svarigheter i att tolka det resultat som framkommit.

3

Page 16: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

4

Page 17: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

3 Teoretisk referensram

I detta kapitel presenteras teoretisk bakgrundsinformation och forskning vilken arnodvandig for att forsta kontexten for examensarbetet.

3.1 CAD

CAD eller Computer Aided Design fick fotfaste inom byggprojektering under 1970-talet (Eastman 2011, 36). I borjan anvandes tekniken primart for att efterlikna hand-ritade byggnadsritningar och utvecklingen kan saledes betraktas som ett led i endigitaliseringsprocess dar informationsinnehallet initialt var oforandrat (se figur 1)(Eastman 2011, 15). I detta skede anvandes inte parameterstyrning. Denna typ avtraditionell direktmodellering via CAD bygger istallet pa att ett enskilt objekt medstatiska egenskaper (sasom matt) skapas. Om matten sedan skall andras maste var-je enskilt objekt av denna typ uppdateras individuellt (Eastman 2011, 41). Dettamedfor som regel ocksa att intilliggande objekt maste ritas om for att anpassas efterde andringar som gjorts; annars uppstar oonskade krockar och liknande komplikatio-ner.

Direktmodellering i CAD skapar darmed geometrier och grafiska former snarare anintelligenta, egenskapsbarande objekt och relationer. De modellerade objekten barinte pa mer information an det rent visuella uttrycket (Eastman 2011, 19). I etthusprojekt med en modell forestallande en fullstandig byggnad med hundratusentalskomponenter blir da aven sma andringar ofrankomligen mycket tidskravande attgenomfora (Eastman 2011, 39). CAD utan parameterstyrning fyller dock fortfarandeen vardefull funktion vid snabb framtagning av friformsmodellerade designkoncept,skisser och visualiseringar med ett begransat antal komponenter (Brunelli 2018). Ettexempel pa ett i grunden icke-parametriskt 3D-CAD-program ar Google Sketchup(Eastman 2011, 19).

3.2 Parametrisk modellering

De tidigaste exemplen pa parametrisk modellering utvecklades under 80-talet och ha-de da sin huvudsakliga tillampning inom tillverkningsindustrin (Eastman 2011, 31).Utmarkande for parametrisk modellering ar i korthet att objekten i modellen, tillskillnad fran CAD-modeller, saknar fixerad geometri och egenskaper. Geometrin ochegenskaperna kan istallet definieras och uppdateras genom uppstallning av paramet-rar, relationer och regler. Dessa parametrar kan t.ex. styras av andra geometrier ochparametrar vilket innebar att objekten i modellen uppdateras adaptivt i forhallandetill varandra (Eastman 2011, 41).

Vid parametrisk modellering inleds arbetet ofta med att anvandaren definierar enelementklass eller en familj med vissa forutbestamda parametrar och regler for ska-pandet av komponenten. Dessa regler kan exempelvis vara att komponenten enbartska kunna placeras ut pa en viss typ av yta. Sa lange de fordefinierade reglernauppfylls kan varje enskild komponent (t.ex. ett fonster) formas och justeras enligtanvandarens onskemal men det ar aven mojligt att stalla in parametrar for samtligakomponenter som tillhor samma familj. Vid utplacering av ett fonster pa en vaggskapas en komponentrelation mellan de tva. Darmed kommer vaggen att anpassa sin

5

Page 18: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

form till fonstret, dvs. en fonsteroppning skapas automatiskt i vaggen (Mengana &Mousiadis 2016, 14).

Sammanfattningsvis kan det sagas att parameterstyrd modellering ger mojlighet tillen okad grad av automation och tidseffektivisering i modelleringsforfarandet vilketar sarskilt onskvart vid storskaliga projekt. Da parameterstyrd modellering applice-ras vid projektering av en hel byggnad brukar modelleringsformen benamnas BIM,Building Information Modeling.

Figur 1: Den tekniska utvecklingen av digitala verktyg inom AEC fran 1950-taletoch framat.

3.3 BIM

BIM eller Building Information Modeling ar ett av de falt inom byggprojekterings-sektorn som haft starkast utveckling de senaste aren. BIM innebar att en eller fleravirtuella modeller upprattas digitalt for att designa och dokumentera ett byggprojekt.Modellen ar helt dynamisk och kan uppdateras i byggandets alla faser. En fullstandigmodell innehaller precisa och fullt definierade geometrier samt all tankbar data foratt stodja processer inom projektering, produktion, upphandling etc. Modellen kanaven anvandas genom byggnadens hela livscykel (Eastman 2011, 1).

En viktig styrka med BIM ar mojligheten till koordinering mellan samtliga aktorer iprojektet. Eftersom alla discipliner har tillgang till ingaende information i projektetsolika faser mojliggors okad transparens och kommunikation mellan de inblandade.Darmed okar ocksa flexibiliteten och tidseffektiviteten eftersom andringar kan utforasmed kortare varsel (Mengana & Mousiadis 2016, 8).

6

Page 19: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Historiskt sett har ingenjorer, arkitekter och byggforetag haft sina egna ritnings-underlag som sedan sammanstallts for att sakerstalla koordination. Med detta ar-betssatt blir dock risken stor att det uppstar fysiska och tidsmassiga krockar somsedan ar tidskravande och kostsamma att losa pa plats. Med BIM finns forutsattningfor flera aktorer att arbeta i en och samma centralmodell. Darmed kan krockar ochkonflikter uppmarksammas och losas redan i projekteringsskedet, langt innan pro-duktionen paborjats (se figur 2) (Mengana & Mousiadis 2016, 9).

Figur 2: Fordelar med BIM.

3.4 Ritningsframstallning med BIM-verktyg

Aven om digitala 3d-modeller tillfor alltmer information rorande byggnadens geome-tri och strukturella system kommer tvadimensionella ritningar sannolikt att fortsattaanvandas under en tid framover. Byggprojekteringsprocessen med dess etableradestandarder ar fortfarande i hog grad centrerad kring ritningsframstallning, oavsettom det ror sig om elektroniska eller pappersbaserade ritningar. Detta medfor atthoga krav stalls pa BIM-verktygens formaga att extrahera ritningar. Om ritnings-framstallningen kraver for mycket manuella installningar och inte kan automatiseraspa ett effektivt satt sa reduceras fordelarna med BIM-verktygen avsevart (Eastman2011, 60).

I ett BIM-projekt finns det, i sin renaste form, endast en skarp modell och alla bygge-lement, dess former, egenskaper och placering representeras darmed endast en gang.Baserat pa modellen kan sedan ritningar, rapporter och data extraheras. Aven omritningarna visar olika delar och utsnitt av byggnaden ar det fortfarande samma mo-dell som aterspeglas. Detta medfor att alla ritningar innehaller sammanhangande,konsekventa data. Tanken ar saledes att alla forandringar som gors i modellen au-tomatiskt ska sla igenom pa de handlingar som ar kopplade till den (Eastman 2011,60).

7

Page 20: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

3.5 Autodesk Revit

Autodesk Revit ar en komplett BIM-programvara for framstallning av parametriska3D-modeller (Kim, Kirby & Krygiel 2017, 22). Namnet kommer fran uttrycket ”reviseinstantly”, vilket anspelar pa programmets formaga att enkelt hantera forandringar(Ostman 2017, 13). Utvecklingen av Revit initierades av medarbetare pa mjukva-ruforetaget Parametric Technology Corporation (PTC) som bl.a. gjort sig kanda ge-nom berakningsprogrammet Mathcad (Mengana & Mousiadis 2016, 18). Den forstaversionen av Revit slapptes ar 2000 (Kim, Kirby & Krygiel 2017, XXVI).Programmet genererar geometrier med inbaddad information for design och kon-struktion av byggnader och anlaggningar. Ur en modell kan planer, sektioner, eleva-tioner, perspektivvyer, detaljer och mangdforteckningar skapas, vilka ar nodvandigafor att dokumentera bygget. Eftersom all information ar kopplad till modellen kom-mer eventuella uppdateringar av denna att sla igenom i projektets samtliga vyer(Kim, Kirby & Krygiel 2017, 22).

3.5.1 Revits uppbyggnad

For att forsta hur Dynamoskripten kan anvandas for att hamta information och ma-nipulera parametrar i Revit ar det viktigt att kanna till nagra grundlaggande begreppi programmets struktur.

Samtliga objekt i Revit ar uppdelade i en struktur av fyra klasser: Kategori(Category),Familj(Family), Typ(Type) och Instans(Instance).

Kategorierna ar den overgripande indelningen av byggnadselement. Ett exempelpa kategori ar Vaggar (Walls).

Familjerna ar nasta undergruppering och grupperar element som har gemensam-ma parametrar, identisk anvandning och liknande grafiska egenskaper. Exempel pafamiljer i kategorin vaggar ar Basic Wall och Curtain Wall. Det gar att skapa nyaegna familjer och manga byggvarutillverkare tillhandahaller fardiga familjer med sinarespektive produkter.

Typerna bestar av alla de olika varianter som finns i varje familj. Exempel pa ty-per som kan finnas under familjen Basic Wall ar Innervagg 120 mm och Yttervaggtraregelstomme 400 mm. Typerna gar enkelt att kopiera och forandra och i varjeprojekt skapas de typer som behovs.

8

Page 21: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Instanser ar den lagsta nivan i strukturen och varje instans beskriver ett unikt ob-jekt. Exempelvis sa skulle en instans av en yttervagg kunna vara placerad i punkt Aoch vara 3000 mm lang i en viss given riktning (Autodesk 2018d).

Strukturen som beskrivits askadliggors lattast med ett schema enligt nedan (se figur3).

Figur 3: Revits struktur med avseende pa kategorier, familjer och typer.

Parametrar

Parametrar i Revit anvands for att definiera och modifiera element samt for attkommunicera modellinformation. Fran och med en senare version av Revit 2016 de-las parametrar in i fyra olika kategorier; instans, typ, global och projekt (“instance”,“type”, “global” & “project”).

Instansparametrar (se figur 4)ar kopplade till specifika objekt och de kan saledesvariera individuellt helt oberoende av typ.Typparametrar (se figur 5) ar kopplade till familjetyp och om en typparameter andrasmedfor detta att alla objekt som tillhor den familjetypen paverkas (Ostman 2017, 14).

Projektparametrar ar specifika for en enskild projektfil och kan anvandas for att lista,sortera och filtrera information i projektet. De tillskrivs olika element i projektet pabasis av kategori. En projektparameter kan exempelvis anvandas for att kategoriseravyer i projektet. Information som lagrats i projektparametrarna kan inte delas tillandra projekt (Autodesk 2018b).Globala parametrar ar ocksa projektspecifika men tillskrivs inte till kategorier. Dekan styra och rapportera varden och anvands t.ex. for att satta positionen pa ettelement relativt storleken pa ett annat element (Autodesk 2018b).

9

Page 22: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Figur 4: Revits properties-meny for installning av instansparametrar.

Figur 5: Revits dialogruta for installning av typparametrar.

10

Page 23: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

I Revit delas alla element in i de tva kategorierna ”model” och ”annotation”. Modell-element anvands for att definiera tredimensionella geometrier i projektet. Nar ettmodellelement placerats ut sa askadliggors det omgaende i samtliga vyer. Annotati-va element ar vyspecifika element som anvands for att dokumentera modellen genomexempelvis matt, taggar, symboler och anteckningar. De kan ocksa anvandas for attlagga till extra detaljer som inte autogenererats av modellgeometrierna (Autodesk2017).

3.5.2 Views & Sheets i Revit

Genom vyer (views) kan Revit-anvandaren askadliggora och dokumentera olika delarav byggprojektet. Det finns bade tvadimensionella och tredimensionella vyer samtscheman och listor for att overblicka projektinformationen. De tvadimensionella vy-erna ar orienterade enligt specifika koordinater sasom plan, elevation och sektion. Detredimensionella vyerna ar antingen ortografiska eller perspektivvyer (t.ex. kamera-vyer). Vyerna innehaller instans- och typ-parametrar (se foregaende rubrik) vilkareglerar egenskaper sasom namn, skala, detaljniva, grafikalternativ och byggnations-fas (Kim, Kirby & Krygiel 2017, 56).

For att vyerna ska kunna skrivas ut eller exporteras till standardiserat pappersfor-mat maste de laggas ut pa en ritning (sheet) i Revit (se figur 6). Sheets kan skapasgenom en lista (sheet list schedule) som anvandaren upprattar. Da genereras flerasheets samtidigt enligt de data som angivits i listan. Det gar aven att skapa enstakasheets. I samband med skapandet valjs ett s.k. titleblock som innehaller eventuellritningsram och stampel (Kim, Kirby & Krygiel 2017, 793).

Figur 6: En lista over de befintliga vyerna och ritningarna syns i Revits ProjectBrowser.

11

Page 24: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

3.5.3 Macros

I Autodesk Revit finns mojligheten att automatisera och styra programmets funk-tioner genom nagot som kallas macros. Ett macro skapas av anvandaren och ar etttextbaserat skript som utfor en funktion eller en serie funktioner. Exempelvis kanmacros skapas for att utfora aterkommande uppgifter dar utforandet ar identiskt ochdet onskade resultatet valdefinierat(Kilkelly 2015). Macros skapas direkt i Revit i ettinbyggt program som kallas SharpDevelop. Programmet accepterar kod i programme-ringsspraken C#, VB.Net, Python och Ruby(Kilkelly 2016). Hjalpfiler som beskriverRevits API(Application Program Interface) finns tillgangliga, och med hjalp av dessakan enskilda anvandare programmera macros som lagger till onskvarda funktioner.Dessa funktioner kan goras tillgangliga genom nya ikoner som laggs till under flikenAdd-ins(Kilkelly 2015). Ett macro kan ocksa skapas sa att anvandaren interaktivtgenom popup-fonster styr vilka element som skall paverkas och vilka operationer somskall utforas.

12

Page 25: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

3.6 Grafisk programmering

Grafisk programmering innebar att anvandare genom ett programs visuella layoutges mojlighet att programmera kodskript utan att manuellt skriva koden i text-form. Det visuella granssnittet gor att grafisk programmering ofta uppfattas som ettmer anvandarvanligt alternativ till traditionella textbaserade skriptsprak, da dessakraver att anvandaren beharskar programmeringsspraket for att uppna onskat resul-tat. Grafisk programmering tillgangliggor pa detta satt anvandandet av kodskripttill en bredare grupp anvandare.

Vid grafisk programmering kan skript-funktionerna representeras av sma visuella ele-ment (noder, se figur 7) vilka kopplas samman med tradar i ett schema. I nodernaprocessas alltsa data som sedan skickas vidare till nasta funktion. Darmed definierasrelationer och sekvenser av operationer som tillsammans formar en skraddarsydd al-goritm (Mengana & Mousiadis 2016, 17).

Exempel pa andra program forutom Dynamo som tillampar grafisk programmeringar LabView och Grasshopper(for Tekla/Rhino).

Figur 7: Exempel pa noder.

3.7 Dynamo

Dynamo ar en kostnadsfri open source-applikation, initierad av Autodesk, som kananvandas enskilt eller som ett plug-in till Autodesk Revit (se figur 8). Det ar ettprogrammeringsverktyg och anvander det visuella granssnitt som beskrivits underforegaende rubrik (Mengana & Mousiadis 2016, 19). For att utfora en operationvaljs en prefabricerad nod (innehallande ett skript) ur Dynamos bibliotek. Externautvecklare har aven tagit fram egna paket med skraddarsydda noder som latt kanladdas in i programmet.Varje nod utfor en operation - ibland kan det vara nagot sa enkelt som att sparaett numeriskt varde men det kan ocksa vara en funktion som modellerar en komplexgeometri. Noderna kopplas samman och kombineras enligt anvandarens onskemal.Dynamo bygger i grunden pa programmeringsspraket C# men det ar aven mojligtatt kombinera flera olika traditionella skriptsprak, vilket ger okad funktionalitet (Dy-namo Primer 2017d).

13

Page 26: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Figur 8: Dynamoikonens position under fliken “Manage” i Revit.

En viktig skillnad mellan Dynamo och traditionell textbaserad programmering ar attkoden i Dynamo inte per automatik lases uppifran och ned; har finns ingen absolutdefinierad kronologi. Kodflodet lases fran vanster till hoger men flera operationerkan startas samtidigt oberoende av position i schemat. For att sakert styra ordningoch flodesriktning maste detta definieras i noderna. Exempel pa hur detta kan goraspresenteras under avsnitt 4.2.7.

Figuren nedan visar ett exempel pa ett grafiskt skript skapat i Dynamo samt detkorresponderande textbaserade skriptet.

Figur 9: Ett exempel pa ett grafiskt skript skapat i Dynamo samt det korresponde-rande textbaserade skriptet.

14

Page 27: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

3.7.1 Exempel pa noder

Flera av Dynamos noder benamns och beskrivs till sin funktion under kapitel 4.2.Nedan foljer en kort beskrivning av nagra av Dynamos vanligast anvanda standard-noder.

Code Block

En av de mest anvanda noderna i Dynamo kallas for Code Block (se figur 10). No-den behover inte valjas, utan placeras ut automatiskt genom ett dubbelklick paarbetsytan. Code Block skiljer sig fran ovriga noder genom att den inte innehallerforprogrammerad kod. Istallet skrivs text direkt i noden och den genererar sedan ettresultat baserat pa texten. Flera olika typer av inmatad text accepteras av noden. Isin enklaste form genererar noden ett numeriskt varde eller en text-slinga (DynamoPrimer 2017g). Noden kan ocksa anvandas for att skriva kod i Dynamos egna pro-grammeringssprak DesignScript eller for att definiera matematiska formler. Genomatt koda textbaserat kan olika operationer kombineras med formler och definitionervilket ger fler mojligheter att skapa onskvarda funktioner (Dynamobim 2018a).

DesignScriptets syntax ar densamma som de forprogrammerade nodernas namngiv-ning vilket underlattar inlarning av spraket. Ytterligare en funktion som underlattarinlarning av DesignScript ar nagot som Dynamo kallar Node to Code. Genom attmarkera en eller flera forprogrammerade noder, hogerklicka och valja Node to Code,omvandlas noderna till ett Code Block med motsvarande skript i textformat (DynamoPrimer 2017b).

Figur 10: Exempel pa skript med Code Block -noder. Samma operation utfors patva olika satt: Med noden Circle.ByCenterPointRadius och med ett Code Block.

15

Page 28: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

List-noder

Da Dynamo bygger pa att forandra parametervarden finns ett stort behov av attkunna styra och behandla informationsfloden. For att kunna definiera hur paramet-rar skall forandras behovs funktioner for att hantera och strukturera information. IDynamo sker en stor del av informationshanteringen i sa kallade list-nodes (Dyna-mo Primer 2017a). Dessa noder sorterar, filtrerar och kombinerar olika listor medinformation (se figur 11).

Figur 11: Exempel pa filtrering av lista i Dynamo.

Watch

Noden som heter Watch ar skapad for att ge Dynamo-anvandaren feedback pa hurskriptet fungerar. Noden kan kopplas till alla andra typer av noder och ger en be-skrivning av utdatan fran respektive nod. Detta ar till stor hjalp da man exempelvisfelsoker ett skript och vill veta vad som har hant i varje nod. Det ar ocksa anvandbartnar ett skript byggs upp, sarskilt for nya Dynamo-anvandare om osakerhet raderkring en nods funktion.Det kan tillaggas att en visningsfunktion for utdata redan finns inbyggd i varje nodom man haller muspekaren over dem. Det ar dock en fordel att fa informationentill en egen nod som latt kan lasas och jamforas med annan information. I figur 11finns exempel pa Watch-noder som visar utdatan fran noden List.FilterByBoolMask.Den vita rutan under noden String.Contains ar den inbyggda visningsfunktionen fornoden.

16

Page 29: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

3.7.2 Packages

Da Dynamo ar ett open source-projekt styrs dess utveckling inte enbart av ett enskiltforetags programmerare. Istallet har samtliga anvandare mojlighet att programmeraegna noder och dela med varandra. Dessa anvandar-producerade noder laddas nerdirekt i Dynamo och kallas for packages (se figur 12). Varje package kan innehallaalltifran en enskild nod upp till hela bibliotek av noder och de mest nedladdade no-derna blir ofta efter en tid inforlivade i Dynamos standardbibliotek.Nagra av de packages som ar mest nedladdade och som vi kommer att anvanda ivara skript ar archi-lab, Clockwork, Rhythm och LunchBox.

Figur 12: Dynamos dialogruta “Manage Packages”.

17

Page 30: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

3.7.3 Pythonskript

Dynamo stodjer aven programmeringsspraket Python. Genom en nod som heter Pyt-hon Script ges mojlighet att fora in textbaserad python-kod i Dynamo (se figur 13).Fordelen med Python gentemot DesignScript ar att Python inte ar begransat till deforprogrammerade skript som finns i Dynamos karna. Med pythonscript ges direktaccess till Revits API (Application Program Interface) dvs till Revits alla funktioner.For att kunna utnyttja dessa noder till fullo kravs en hel del forkunskaper. Forutomatt beharska Python kravs att man ar insatt i hur Revits API ar uppbyggd (SanFrancisco Dynamo User Group 2017). Autodesk har dock en utforlig hjalpsida sombeskriver Revits API och alla dess klasser och metoder (se figur 15). Hjalpsidan finnstillganglig pa natet (revitapidocs.com) men det gar aven att ladda ner en utforligareversion (Revit SDK)(Talarico 2018).

Figur 13: Pythonskripten integrerar textbaserad programmering i Dynamos grafiskagranssnitt. Detta skript hamtar alla vyer av typen legend ur ett projekt.

Genom att integrera textbaserad programmering i grafisk programmering skapasforutsattningar for att fa ut det basta ur tva varldar. Aven om pythonskriptenkraver mer forkunskaper sa kan enklare skript relativt enkelt skapas aven av ovanaanvandare. Da Dynamo ar ett open source-projekt finns det mycket hjalp att fa paforum pa internet, och ofta gar det att hitta ett mer eller mindre fardigt pythonskriptsom gor det man vill astadkomma. Utan att ha stora kunskaper i programmering kananvandare genom Dynamo i kombination med Python fa tillgang till storre delen avRevits funktioner (se figur 14).

18

Page 31: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Figur 14: Koden bakom python-noden i figur 13.

Figur 15: Exempel pa information fran revitapidocs.com: Syntaxen for anvandandetav metoden OfCategory inom klassen FilteredElementCollector. Jamfor figur 14.

19

Page 32: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

3.8 Dynamo Player

Dynamo Player ar ett plugin som i likhet med Dynamo kommer forinstallerat pa desenaste utgavorna av Autodesk Revit. Dynamo Player tillfor ett enklare handhavan-de av Dynamo-skripten. I en dialogruta har anvandaren mojlighet att bladdra blandde tillgangliga skripten och att starta ett skript utan att oppna Dynamos grafiskamiljo (se figur 16). Detta ger ett an mer lattillgangligt granssnitt. Om anvandarenanda onskar redigera skriptet finns en lank-knapp som oppnar det fullstandiga skrip-tet i Dynamo.

Figur 16: Menyn i Dynamo Player samt dialogrutan for input-data.

Manga skript kraver dock olika former av indata (textstrangar, numeriska vardeneller sokvagar etc.) for att fungera. I och med slappet av Revit version 2018.1 harDynamo player darfor utokats med en input-dialogruta dar anvandaren ser de er-forderliga parametrarna som behover definieras. Nar falten ar ifyllda kan skriptetsedan koras som vanligt. For att Dynamo Player skall veta vilka indata som skallefterfragas i dialogrutan maste noderna ha klassats med tillagget “Is Input” i skriptet(Autodesk 2018c).

20

Page 33: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

4 Genomforandet

4.1 Faktainsamling

4.1.1 Rambolls arbetssatt

Baskunskaper om Rambolls uppdrag, arbetssatt och behov erholls genom munt-lig kontakt med medarbetarna pa kontoret. For att fa grundlaggande insikt i detdagliga arbetsflodet fran projektstart till modellering och ritningsframstallning harforfattarna tagit del av Rambolls interna metodblad som bl.a. beskriver vissa mo-ment och funktioner i Revit. Metodbladen beskriver ocksa hur Rambolls mallfiler aruppbyggda och hur de i dessa anvander projektparametrar for att styra anvandaresamt sortera och gruppera ritningar och vyer.For att evaluera funktionaliteten hos de skript som producerats i den empiriska delenav detta examensarbete har flertalet tester utforts pa befintliga projekt uppbyggdaenligt foretagets praxis.

4.1.2 Dynamos funktioner

Vid insamlandet av information om hur Dynamo fungerar och vad programmet kangora fanns en mangd funktioner av intresse att testa. Exempel pa funktioner somtestades var skapande av ritningar, hamtning och sortering av planvyer och skapandeav vyfilter. Utifran dessa funktioner sammanstalldes sedan enkla skript, dels genomatt soka sjalva bland Dynamos noder men framst genom att soka information paforum och YouTube-kanaler om hur dessa funktioner enklast kan utforas. Detta varett effektivt satt att satta sig in i hur programmet fungerar och vilka begransningaroch svarigheter som uppstar vid anvandandet.

Exempel pa kallor som anvants kontinuerligt:https://forum.dynamobim.comhttp://dynamoprimer.comhttp://archsmarter.comhttp://www.youtube.com/user/MrKlon15/

4.1.3 Omraden att effektivisera

Genom samtal och moten med medarbetare pa Ramboll avgransades omradena darpotential for effektivisering bedomdes vara som storst. Dessa omraden kannetecknadesav att liknande eller identiska moment utfordes upprepade ganger, samt att dessaarbetsmoment ar aterkommande i manga projekt. Under projektets gang uppkomnya potentiella effektiviseringsomraden allteftersom de skapade skriptforslagen pre-senterades. Effektiviseringsomradena presenteras langre fram i detta kapitel.

21

Page 34: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

4.2 Dynamo-skript

I detta avsnitt beskrivs arbetet med skapandet av Dynamoskripten. Har redogors forhur skripten ar uppbyggda och vad skripten har for grundlaggande funktion. For attunderlatta ett eventuellt aterskapandet av liknande skript anges aven namnen pa deviktigaste noderna som anvants i varje skript. Inom parentes anges vilket packagenoderna ar hamtade fran i de fall de inte finns i standardutbudet.

4.2.1 Skript for ny anvandare

I Revit-projekt arbetar ett flertal anvandare samtidigt i samma modellfil. Varje unikanvandare har sina egna vyer och mallfiler vilket avsevart underlattar arbetet i mo-dellen, da olika anvandare kan gora egna installningar utifran sitt arbetsomrade.

Ramboll organiserar olika anvandare genom projektparametrar som aterfinns i denmallfil som alla projekt utgar fran. Detta innebar att alla projekt har dessa paramet-rar och de kan sedan anvandas for att skapa strukturer for ritningar och anvandare.Genom att Revit tillater anvandaren att sjalv definiera hur projektbrowsern skall ord-na och gruppera vyer och ritningar sa kan Rambolls projektparametrar anvandas fordetta syfte. Ramboll anvander sig av tva egna parametrar, dar den forsta bestammervilken typ av vy eller ritning det ror sig om och den andra parametern ar unik forvarje anvandare (Saxberg 2015). De olika ritningstyperna foljer svensk standard forbenamningar av ritningar och kan exempelvis vara ”K-15”, konstruktionsritning forgrundkonstruktioner.

Figur 17: En viewtemplate styr en mangd parametrar for de vyer den ar koppladtill.

22

Page 35: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Tillvagagangssattet for att lagga till en ny anvandare i ett projekt har tidigare va-rit relativt omstandligt och kravt ett flertal operationer. Varje anvandare har varittvungen att skapa vymallar for planvyer, sektioner samt detaljer. Till vymallarnaskapas unika viewtemplates samt vyfilter for att reglera vad som ar synligt i respek-tive vy.

Vi har skapat ett forslag pa skript som utfor alla operationer i skapandet av nyaanvandare. Det enda som behover anges ar den nya anvandarens initialer.

Dynamoskriptet ar uppbyggt enligt foljande:

1. Forst hamtas och kopieras projektets viewtemplates for foljande vytyper: De-taljer, Sektioner och Planvyer. Kopiorna som skapats dops om och Rambollsprojektparameter som motsvarar den unika anvandarens initialer andras.

Anvanda noder:

· ViewTemplate.Duplicate (archilab)

· Element.SetParameterByName

2. Darefter skapas ett vyfilter som styr sa att varje anvandare endast ser sina egnasektioner och detaljer. For att gora detta skapas forst de regler som styr filtretoch sedan sjalva filtret, som reglerar pa vilka element reglerna skall appliceras.Detta filter appliceras sedan pa de nya viewtemplates (se figur 18).

Figur 18: Del av dynamoskript som applicerar vyfilter pa valda vyer.

Anvanda noder:

· FilterRule.ByRuleType

· ParameterFilterElement.ByRules

· View.AddFilter

· View.SetFilterOverrides

23

Page 36: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

3. Nya anvandarspecifika vytyper(View Types) skapas. Varje anvandare skaparsedan nya vy-instanser utifran dessa typer. Det skriptet egentligen gor ar attkopiera de vytyper som finns i mallfilen/projektet. Darefter dops vytyperna omoch den nya anvandarens viewtemplate appliceras.

Anvanda noder:

· FamilyType.Duplicate (Clockwork)

· Element.SetParameterByName

4. Till sist skapas en planvy (Structural Plan) utifran den skapade vytypen medkorrekt viewtemplate (se figur 19).

Figur 19: Parametrar for den skapade planvyn (Structural Plan) med de angiv-na initialerna “PGD”. Planvyn ar skapad av typen “ARBETSPLAN (PGD)” ochViewtemplate “ARBETSVY PLAN (PGD)”.

Anvanda noder:

· StructuralPlanView.ByLevel

24

Page 37: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

4.2.2 Skript for skapande av nya ritningar

Det skapas i ett projekt valdigt manga ritningar och ofta ar omfattningen pa dessapreciserade redan pa ett tidigt stadium. Arbetsgangen med att skapa sheets (ritning-ar) i Revit ar ofta manuell och innehaller flertalet moment da de skall numreras,namnges, och ges korrekta projektparametrar. De skall aven forses med en s.k. slips(en forklarande text med hanvisningar) samt ges korrekt titleblock (ritningsram)(Soderman 2018b). Detta ar moment som kan ta valdigt mycket tid i ansprak ochvart skript-forslag skapar dessa ritningar ur ett Excel-underlag. Skriptet forser interitningarna med vyer, utan detta far goras i efterhand. Skriptet bestar av tva delaroch dessa kan koras direkt i Dynamo Player da de inte har nagon indata forutom detExcel-blad som anvands.

Det forsta skriptet skapar ett Excel-blad samt samlar in data fran projektet:

Figur 20: Det forsta skriptet samlar in data och skapar ett Excel-blad.

1. Forst hamtas information fran det aktuella Revit-projektet med avseende patillgangliga ritningsramar och slipsar.

2. Den inhamtade informationen sorteras och skrivs till Excel (se figur 21).

Figur 21: Excelblad med tillgangliga ritningsramar och slipsar.

25

Page 38: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Anvanda noder:

· View Type (archilab)

· View.GetByType (archilab)

· All Families Of Category (Clockwork)

· List.Sort

· List.Transpose

· Data.ExportExcel

Det andra skriptet anvander sig av det Excelblad som det forsta skriptet skapat. Idetta blad finns mojlighet att fora in en lista pa de ritningar som skall skapas, ochde kan aven forses med ritningsram och slips ur det aktuella projektet (se figur 22).Det andra skriptet utfor foljande operationer:

1. Forst lases den inmatade informationen in fran Excel-bladet. Datan rensas ochsorteras sedan utefter ritningsnummer (Sheet Number):

Anvanda noder:

· Data.ImportExcel

· List.Clean

· List.Count

· List.SortListOfLists (Clockwork)

Figur 22: Excelblad med de ritningar som skall skapas.

2. De ritningar som redan finns i det aktuella projektet samlas in for att undvikadubblering.

26

Page 39: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Anvanda noder:

· Categories

· All Elements of Category

· Element.GetParameterValueByName

· List.ContainsItem

3. Dessa ritningar sorteras bort fran den lista av ritningar som skall skapas.

Anvanda noder:

· List.ContainsItem (Python-skript)

· List.FilterByBoolMask

· Manage.ReplaceNulls (LunchBox)

4. Dynamoskriptet laser sedan av Rambolls egen projektparameter RSE VIEW-GROUP 2. Detta gors for att matcha ritningsnamnet mot projektets specifikaparametrar for att sorteringen av ritningar skall bli korrekt.

Anvanda noder:

· String.StartsWith

· String.Length

· String.Substring

5. Nu skapas alla de ritningar fran Excelbladet som inte redan fanns i projektet.Ritningarna skapas utifran ritningsramen och darefter justeras parametrarnanummer, namn samt projektparametrar (se figur 23).

Anvanda noder:

· FamilyType.ByName

· Sheet.Create (Rhythm)

· Element.SetParameterByName

27

Page 40: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Figur 23: Del av skript som skapar ritningar samt andrar deras parametrar.

6. Slips placeras ut pa de ritningar dar denna specificerats. Slipsen ar i Revitdefinierad som en vy. Vyn placeras ut i ritningens nollpunkt och flyttas sedantill ratt plats.

Anvanda noder:

· Viewport.Create (Rhythm)

· Point.ByCoordinates

· Viewport.LocationData (Rhythm)

· Points.DeconstructPoint (LunchBox)

· Vector.ByCoordinates

· Element.MoveByVector

7. Slutligen skapas ett Popup-fonster som berattar vilka ritningar som blivit ska-pade samt vilka som redan fanns i projektet (se figur 24). Popup-fonstret skapasmed hjalp av ett pythonskript och anvander sig av Revits egna fonster (Task-Dialog) (se figur 25).

28

Page 41: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Figur 24: Dialogbox som ger feedback pa vilka ritningar som skapats.

Figur 25: Pythonskript for skapande av Popup-fonstret i figur 24.

29

Page 42: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

4.2.3 Skript for justering av vyplacering

Nar vyer placeras pa ritningar i Revit ar det viktigt att varje vy ligger pa exakt sam-ma plats som korresponderande vyer for andra vaningsplan. Pa Ramboll anvands enAdd-In som heter Naviate for att lagga in vyerna och de hamnar da i ratt positionautomatiskt. I de fall da ingen lamplig Add-In finns installerad, eller om nagon vyav misstag blivit flyttad och inte langre ligger i position (se figur 26) kan det varaintressant med ett skript som justerar vyplaceringen enligt en vald mall-ritning. Detar just vad detta skript gor. I skriptet far anvandaren valja en ritning som skall varamall for hur vyn skall ligga, och sedan valja de ritningar som skall justeras:

Figur 26: Fore: Vyn pa den undre ritningen ligger fel.

30

Page 43: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

1. Forst valjs den ritning som skall vara mall. Skriptet laser sedan av var ritnings-vyns centrumpunkt ar placerad pa ritningen.

2. Darefter valjs den ritning vilken skall modifieras. Skriptet laser av ritningsvynscentrumpunkt och utifran differensen for centrumpunkterna flyttas den ena vyn(se figur 27).

Figur 27: Efter: Placeringen av vyn har justerats.

31

Page 44: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Anvanda noder:

· Sheets (Rhythm)

· Sheets.GetViewportsAndViews (Rhythm)

· Viewport.GetView(Rhythm)

· Viewport.LocationData (Rhythm)

· Points.DeconstructPoint (LunchBox)

· Vector.ByCoordinates

· Element.MoveByVector

4.2.4 Skript for uppdatering av Type Name och Type Mark

Typer i Revit bestar av alla de olika varianter som finns av varje objektfamilj. Underrespektive typ finns mojligheten att ange vardet pa en parameter som heter TypeMark. Denna parameter anvands i flera aktiva projekt for att ange byggdelens s.k.BIP-kod (Soderman 2018c). BIP, Building Information Properties, ger effektivareinformationsflode mellan projektorer, byggare, installatorer, drift och forvaltning ge-nom gemensamma beteckningar och egenskapsbeskrivningar.Ramboll efterfragar ett skript som kan anpassa befintliga Type Marks for samtligabyggdelar i ett projekt efter en lista i Excel-format. Ett skript som byter vardet pasamtliga Type Mark-parametrar skulle forutom att spara tid aven ge mojlighet attha battre kontroll over vilka parametervarden som respektive typ har.

Vi har skapat ett skript som erbjuder mojligheten att snabbt byta ut flera TypeMarks i projektet. Indatan med de nya parametervardena kan t.ex. lasas in fran enExcellista. Detta kan t.ex. vara vardefullt da flera projekt ska samkoras och namnenska korrelera mellan de olika byggnaderna.

Skriptet ar uppdelat i tva delar:

1. Den forsta delen samlar in data om vilka typer det aktuella projektet innehallersamt vilka varden pa parametern Type Mark dessa har. Informationen skrivstill ett Excel-dokument som bestar av tva kolumner, en for Type Name och enfor Type Mark (se figur 28). Detta Excelblad anvands sedan i skriptets andradel.

Figur 28: Utdrag ur Excelblad genererad av skriptet.

32

Page 45: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

2. I skriptets andra del fyller anvandaren forst i de onskade vardena pa TypeMark-parametrarna i det genererade Excel-bladet. Da skriptets andra del korslases datan fran Excelbladet in och de Type Names som angivits matchas motde typer som finns i det oppna Revit-projektet. Dessa typer justeras sedan medavseende pa Type Mark i enlighet med Excelbladet.

I figur 28 ses ett utdrag ur Excellistan dar det bl.a. forekommer en stalpelare av typVKR100x100x8. I projektet saknar denna ursprungligen varde for Type Mark vilketmedfor att rutan i den kolumnen ar tom. Excellistan fylls sedan i (se figur 30).

Figur 29: Stalpelaren i projektet.

Figur 30: Ifylld Excellista.

Efter att de onskade vardena ar ifyllda och skriptets andra del korts har Revit-projektet uppdaterats. I Type Properties-rutan ses nu att vardet i Type Mark-parametern har andrats i enlighet med Excellistan (se figur 31).

Figur 31: Type Mark efter att skriptet korts.

33

Page 46: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Anvanda noder:

· Data.ImportExcel

· List.ContainsItem (Python-skript)

· Element.GetParameterValueByName

· List.UniqueItems

· List.SortByFunction

· List.GetItemAtIndex

· Element.SetParameterByName

4.2.5 Skript for View Range

I varje vy finns en parameter kallad View Range och en knapp markt edit. Omanvandaren klickar pa knappen nas underparametrarna Top, Cut plane, Bottom ochView Depth (se figur 32). Dessa styr det betraktningsbara djupet (offset) i den ak-tuella vyn med utgangspunkt fran ett givet plan. View Range kan stallas in for varjeenskild vy men normalt sett vill Ramboll ha bestamda View Range-varden for allavyer som tillhor en och samma anvandare (Soderman 2018d). Skriptet gor saledes saatt offset-vardet kan stallas in pa samtliga anvandarspecifika vyer i projektet pa engang.

Figur 32: Revits dialogruta for installning av View Range.

34

Page 47: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Skriptet inleds med att befintliga planvyer (Structural Plans) hamtas ur projektet.Anvandaren kan hitta sina specifika vyer genom att gora en filtrerad sokning pa si-na initialer (se figur 33). Nar vyerna valts ut matar anvandaren in sina individuellaoffset-varden for Top, Cut plane, Bottom och View Depth (se figur 34). Tva nodermarkta “A” och “B” kopplas ihop.

Figur 33: Anvandaren kan hitta sina specifika vyer genom att gora en filtreradsokning pa sina initialer.

Figur 34: Nar vyerna valts ut matar anvandaren in sina individuella offset-varden.

Darefter skall skriptet hitta och justera de efterfragade parametrarna. Detta ar svartatt astadkomma med Dynamos noder. For detta anvands istallet ett pythonskript.Om inmatade varden medfor att “view depth plane” hamnar ovanfor “bottom clipplane” eller om “top clip plane” hamnar under “cut plane” erhalls automatiskt ettfelmeddelande, och vardena kan justeras.

Anvanda noder:

· Element.GetParameterValueByName

· Object.IsNull

· Set.ViewRange (Python-skript)

· If

· Equal x to y?

35

Page 48: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

4.2.6 Skript for Approved

For att minska risken for att preliminara ritningar skall forvaxlas med slutgiltigainnehaller ritningsramar i Revit ofta en parameter som heter Approved alternativtGodkand handling (se figur 35). Da Approved-rutan inte annu ar forbockad ar vissinformation i ritningsramen overstruken for att visa att det ror sig om en preliminarhandling. Forst nar ritningen ar godkand bockas rutan i och ritningen far sitt slut-giltiga utseende.Eftersom Ramboll hanterar ett stort antal ritningar i varje projekt och manga ritning-ar i praktiken blir godkanda samtidigt ar det ett tidskravande moment att justeradenna parameter for varje enskild ritning (Soderman 2018c).

Figur 35: Parameter for godkannande av ritningen i Revits Properties-meny.

Vart skriptforslag gor sa att flertalet (eller samtliga) ritningar i projektet kan godkannaspa samma gang. Skriptet ar utformat enligt foljande:

1. I ett forsta skede filtrerar anvandaren projektets befintliga ritningar for att faut en lista over de ritningar som skall godkannas (se figur 36 och 37). Filtrering-en kan t.ex. goras pa basis av “Sheet name”, “Sheet number” eller “Revisiondate”. Det ar aven mojligt att gora sorteringen pa andra parametrar.

Figur 36: Anvandaren filtrerar projektets befintliga ritningar for att fa ut en listaover vilka ritningar som skall godkannas.

36

Page 49: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Figur 37: Lista over de ritningar som valts.

2. Nasta steg ar att valja det exakta namnet pa Approved-parametern samt detvarde man vill att parametern skall ha (yes/no). Eftersom parametern ar unikfor den specifika ritningsram som anvands kan namnet skilja sig nagot at i olikaprojekt (se figur 38).

Figur 38: I Dynamo valjs parameterns namn och dess varde (True eller False) stallsin.

3. Nar ritningarna valts ut och parameterns namn ar angett kopplas den ge-nererade ritningslistan ihop med en nod som heter Sheet.Titleblock. Dennanod hamtar ritningarnas ritningsramar. Det ar ritningsramen som ar barareav godkannande-parametern. Datan matas in i noden Element.SetParameter-ByName. Denna utfor sedan operationen som byter varde pa parametern ochdarmed uppdateras status for samtliga ritningar som anvandaren valt ut.

Anvanda noder:

· Element.SetParameterByName

· Sheet.Titleblock (Rhythm)

· String.Contains (Archilab)

· Boolean

37

Page 50: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

4.2.7 Skript for att styra ordning av kodlasning

Dynamo laser in de olika noderna, dvs koden, fran vanster till hoger. Om ett skriptinnehaller flera nod-floden laser Dynamo in samtliga floden parallellt. I de flesta fallskapar detta inte problem utan kan vara en tillgang da samtliga floden utfors obe-roende av varandra. I vissa fall ar det dock viktigt att kunna styra ordningen somflodena utfors (Dynamobim 2014). Det kan till exempel vara i fall da flera olika ope-rationer skall utforas pa samma objekt i en given ordning.Dynamo har ingen inbyggd funktion for att styra utforandeordningen, men ett enkeltsatt ar att anvanda en grundlaggande regel for hur Dynamos noder ar uppbyggda:En nod samlar data fran input-sidan (till vanster), utfor darefter den nodens spe-cifika operation och levererar resultatet pa output-sidan (till hoger). Operationenutfors alltsa inte forran samtliga input-data ar insamlade. Detta kan utnyttjas ge-nom att anvanda en nod vars kodskript skapar en lista av den inkommande datan(List.Create). Denna nod levererar en lista pa de olika input data som ar kopplade tillnoden. I nasta steg kan en nod skapas som aterigen separerar datan for att darefterga vidare i flodet. En utforandeordning har da skapats (se figur 39).

Figur 39: Genom att skapa en lista vantar Dynamo pa operation 1 innan operation2 utfors.

4.2.8 Skript for modellering

Dynamo kan anvandas for att skapa nya avancerade geometrier i Revit. I grundenkan geometriska former beskrivas som siffror, relationer och formler inom ett givetkoordinatsystem. For att forsta uppbyggnaden av former kan foljande forenklade hi-erarkiska uppdelning av dess bestandsdelar goras (se figur 40).

1. En punkt definieras av dess koordinater (i x-, y- och z-led) och den ar dimen-sionslos, utan utstrackning i rymden.

2. En linje definieras av tva punkter (en start- och en slutpunkt), den har saledesen langd och tva mojliga riktningar. Linjen utgor en endimensionell geometri.

3. Ett plan eller en yta definieras utifran tva linjer och utgor en tvadimensionellgeometri.

4. En solid (t.ex. en kub) definieras av tva plan och den utgor en tredimensionellgeometri.

38

Page 51: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Figur 40: Geometriers uppbyggnad i Revit.

Utover enkla linjer finns mojligheten att skapa mer avancerade kurvor. Kurvornabestar av en startpunkt, en slutpunkt samt mellanliggande kontrollpunkter (Dyna-mo Primer 2017c).

Modellering i Dynamo ar inte kopplat till Revits inbyggda elementkategorier, dvs deformer som skapas i Dynamo ar inte fordefinierade byggelement med givna restrik-tioner. Darmed ar mojligheterna avseende formskapande nastintill obegransade. Attmanuellt modellera en form bestaende av tusentals komponenter i Revit kan varatidskravande. I Dynamo gar det att skapa komplexa former och manipulera dessamed nagra fa knapptryckningar.

Det modelleringsskript som skapats tjanar som ett enkelt exempel pa Dynamos mo-delleringspotential. Skriptet gar ut pa att anvandaren snabbt ska kunna skapa engeometriskt komplex yta for att t.ex. bygga upp ett tak eller en fasad. Anvandarendefinierar forst tva linjer i den befintliga Revitmodellen mellan vilka denne onskarskapa ytan. Linjerna behover inte vara parallella och ej heller lika langa. Dynamo-skriptet skapar pa basis av de definierade kanterna en plan yta genom en funktionsom heter loft. Ytan oversatts sedan till en uppsattning kontrollpunkter med definie-rade koordinater. For att ga fran en plan yta till en valvd (konvex eller konkav) formkopplas punkternas postion i hojdled till en matematisk funktion vilket far punkter-na att folja en kurva. I detta exempel anvandes en sinusfunktion. Anvandaren kandefiniera gradtal, frekvens och amplitud pa kurvan for att reglera kurvans form (sefigur 41). Ytan delas sedan in i rektangulara sektioner/ett rutmonster i U- och V-led. Som fortydligande kan sagas att U och V ar parametriska koordinater som angerpunkternas position relativt den givna yta. Punkternas position kan aven anges en-ligt varldskoordinatsystemet (utgaende fran origo) och de heter da X, Y resp Z.

Sektionerna ar till for att de ska kunna fyllas med paneler i den fardiga modellen.Antalet sektioner styrs via number sliders (nummer-reglage). I detta skede existeraringen fysisk Revit-modell av den skapade ytan, utan ytan tjanar endast som en ab-strakt referens; en databaserad instruktion som styr formen.

39

Page 52: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Figur 41: Formeln som omformar den plana ytan till en tredimensionell kurvad yta.

Figur 42: Den adaptiva familjen.

For att bygga upp den slutgiltiga formen i Revit maste sektionerna i ytan tillskrivasen Revit-komponent. For att astadkomma detta skapades en adaptiv familj i formav ett fackverk med en glasyta pa toppen (se figur 42). Det faktum att familjen aradaptiv medfor att dess form anpassar sig efter ytans kurvatur nar formen andras (sefigur 43). Det bor inflikas att enheterna som matas in i Dynamo ska vara desammasom i Revit-filen om onskat resultat ska kunna uppnas.

40

Page 53: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Figur 43: Skriptet applicerat pa en exempelmodell. Rendering i Revit.

Anvanda noder:

· Select Edge

· Surface.ByLoft

· Surface.Offset

· Surface.PointAtParameter

· Surface.UVParameterAtPoint

· Geometry.Translate

· NurbsSurface.ByPoints

· LunchBox Quad Grid by Face (LunchBox)

· AdaptiveComponent.ByPoints

41

Page 54: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

4.3 Python-Skript

Ett litet antal av noderna i de skript som ar beskrivna ovan (avsnitt 4.2) ar upp-byggda av ar sk python-skript. De python-skript som anvants ar foljande:

1. Skript for insamlande av vyer, t.ex Legends views och Viewtemplates. Python-skript som samlar in en viss typ av element ur Revit-modellen ar relativt enklaatt gora aven for anvandare som inte kan programmera. Samma skript kanocksa modifieras sa att onskad vy samlas in. Motsvarande funktioner gar attfinna i fardiga noder, men dessa finns inte med i Dynamos standardutbud.Dessutom fanns vissa problem med att kora noderna i den senaste utgavanav Dynamo. Sammantaget overvagde fordelarna med att istallet anvanda ettpythonskript.

2. Skript som ger feedback pa vad som utforts genom anvandandet av Revitspopup-fonster (Taskdialog). Detta ar en funktion som inte finns i Dynamosbasutbud eller i nagot standard-package.

3. Skript som ger atkomst till underparametrarna under View Range. Detta arocksa en funktion som saknas i basutbudet.

4. Skript som jamfor tva listor och ger mojlighet att sortera ut de objekt somfinns med pa bada listorna. Detta ar ett ganska vanligt scenario da en listamed indata skall matchas mot objekt i ett projekt.

Generellt kan sagas att det ofta ar mojligt att hitta specialnoder som ger atkomst tillde funktioner man soker som inte finns i basutbudet. En anledning att anda anvandaett pythonskript ar att de kan koras oberoende av packages och det ar att foredra ide fall Dynamoskriptet ar tankt att delas med andra anvandare.

42

Page 55: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

4.4 Svarigheter

Har berors svarigheter som observerats i samband med genomforandet, dvs. vidprogrammeringen av skripten. Under avsnittet “Analys” aterfinns istallet eventuellabegransningar i handhavandet av de fardiga skripten.

· En av de svarigheter som nya anvandare av Dynamo kan uppleva ar att hitta rattbland alla de hundratals noder som ar inkluderade i basutbudet. Detta forsvarasganska mycket av att den sokfunktion som finns inte fungerar sarskilt val.

· Da ett dynamoskript av nagon anledning inte fungerar som det ska sa ger program-met ibland feedback i form av gula eller roda noder med tillhorande felmeddelande.Denna funktion ar dock langt ifran hundraprocentig och ofta uteblir feedbacken.Detta kan forsvara felsokningen avsevart.

· Dynamos noder ar beroende av att de far input i korrekt form. Da en nod blirmatad med fel typ av indata sa fungerar inte skriptet. Informationen om vilkentyp av indata som kravs kan vara knapphandig och ofta ges ingen feedback pavilken indata som ar fel, endast att nagot ar fel.

· Benamningen av Revits familjer, typer och instanser skiljer sig nagot at i Dynamo.De familjer som i Revit kallas System Family Type kallas i Dynamo Element Type.Ovriga familjer, sa kallade Placeable Families kallas i Dynamo for Family Type(Sgambelluri 2014). Detta kan vara ganska forvirrande da noderna inte fungerarom fel typ av familj avses.

· Dessutom ar inte benamningarna konsekventa i Dynamo utan de kan skilja sigat mellan olika noder. Som ett exempel avser standardnoden Element Types intetyper ur systemfamiljer, utan istallet pekar den pa Revits olika klasser (Classes)som beskrivs i Revits API.

De inkonsekvenser och olikheter i feedback och anvandarvanlighet som Dynamos no-der uppvisar kan tankas ha sitt ursprung i deras tillkomst. Eftersom flertalet av Dy-namos noder programmerats av externa anvandare som inte ar knutna till Autodesksa har inte nomenklaturen och funktionaliteten kunnat samordnas.

43

Page 56: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

44

Page 57: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

5 Resultat

Nedan foljer en lista som kort sammanfattar resultatet, dvs. skriptskapandet, franforegaende avsnitt.

Skript: Funktion:

Skript for att styraordning av kodlasning

Skript i Dynamo lases normalt fran vanster till hogeroch samtliga delar av operationer startar simultant omej annat anges. I vissa fall ar det viktigt att kunna styrautforandeordningen. Det kan till exempel vara i fall daflera olika operationer skall utforas pa samma objekti en given ordning. Detta skript kontrollerar sa att enspecificerad operation startar forst efter att en annanhar slutforts.

Skript for ny anvandare Anvandaren matar in sina initialer (t.ex. NSAR) ochklickar pa “Run”. Skriptet skapar anvandarspecifikavyer och grafiska filter som kan anvandas da en nyanvandare startar upp eller ansluter till ett projekt iRevit.

Skript for nya ritningar Tva skript mojliggor for anvandaren att simultant ska-pa flera ritningar med erforderlig information i ritnings-stampel och slips utifan en Excellista. Det forsta skrip-tet hamtar information avssende ritningsramar och slip-sar fran projektet och skriver datan till en Excelfil.Anvandaren kan darefter lagga till nya ritningar i dennalista och valja tillgangliga ramar och slipsar fran pro-jektet. Det andra skriptet skapar sedan de nya ritningarutifran Excelfilen.

Skript for uppdateringav Type name och Ty-pe Mark

Typer i Revit bestar av alla de olika varianter somfinns av varje objektfamilj. Under respektive typ finnsmojligheten att namnge en parameter som heter TypeMark. Skriptet erbjuder mojligheten att snabbt byta utflera Type Name och Type Mark i projektet. Indatanmed de nya parametervardena kan t.ex. lasas in franen Excellista. Detta kan vara vardefullt da flera projektska samkoras och namnen ska korrelera mellan de olikabyggnaderna.

Skript for modellering Skriptets syfte ar att anvandaren snabbt ska kunnaskapa en geometriskt komplex yta for att t.ex. byg-ga upp ett tak eller en fasad. Anvandaren definierartva linjer i den befintliga Revitmodellen mellan vil-ka denne onskar skapa ytan och anger parametrar foratt styra hur ytan ska formas. Dynamo utfor darefterberakningar for ytans punkter och modellerar upp for-men i Revit.

45

Page 58: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Skript for View Range I varje enskild vy finns en parameter kallad View Rangeoch en knapp markt edit. Om anvandaren klickar paknappen nas underparametrarna Top, Cut plane, Bot-tom och View Depth. Dessa styr det betraktningsbaradjupet (offset) i den aktuella vyn med utgangspunktfran ett givet plan. Skriptet gor sa att offset-vardet kanstallas in pa samtliga anvandarspecifika vyer i projektetpa en gang.

Skript for Approved Varje ritning innehaller en stampel med ett falt daranvandaren kan meddela att ritningen blivit godkand.Faltet styrs av en instansparameter som heter “Ap-proved” eller “Godkand handling”. Skriptet gor saatt flertalet (eller samtliga) ritningar i projektet kangodkannas pa samma gang. Filtreringen av vilka rit-ningar som skall godkannas kan t.ex. goras pa basis avrevisionsdatum.

Skript for Vyplacering Nar vyer placeras pa ritningar i Revit ar det viktigtatt varje vy ligger pa exakt samma plats som korre-sponderande vyer for andra vaningsplan. I de fall daingen lamplig Add-In finns installerad, eller om nagonvy av misstag blivit flyttad och inte langre ligger i posi-tion kan det vara intressant med ett skript som justerarvyplaceringen enligt en vald mall-ritning. Det ar justvad detta skript gor.

46

Page 59: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

6 Analys

En viktig del i analysskedet ar tester av de skapade skripten pa olika projekt. Ofta ardet forst nar forutsattningarna andras och nya projekt infors som flertalet problemupptacks.

Skripten har testats pa flera av Rambolls aktuella projektfiler. Sammantaget kansagas att skripten fungerar val med avseende pa deras formaga att styra parametrari Revit och automatisera flertalet repetitiva moment. Eftersom skripten ror sadanamoment som standigt aterkommer i det vardagliga arbetet pa foretaget finns detvardefull tid att spara pa tillampning av Dynamo for manga av Revitanvandarna.

En annan viktig analysfraga blir huruvida tillampningen av Dynamo i projekterings-sammanhang ar anvandarvanlig och hallbar pa langre sikt. Vid skripttester utfordapa datorer med andra versioner av Dynamo installerat observeras vissa kansligheter iskripten. For att skripten ska behalla sin funktionalitet maste de generellt sett koraspa samma version av Dynamo som de skapats i. Noder byts successivt ut och/ellerbyter namn beroende pa Dynamo-version. Vidare maste anvandaren ha ratt externanode-packages (med icke-standardiserade noder) installerade och dessa ska dessutomvara av ratt utgava. Ett satt att minska kansligheten for ickekompatibla packagesar att bryta upp noderna i deras bestandsdelar och se till att i mojligaste mananvanda sig av standardnoder. Det kan aven i vissa fall vara en fordel att anvandapythonskript-baserade noder, da de inte ar beroende av packages. Detta kraver dockinsikt i python, som ar ett icke-grafiskt programmeringssprak.

Forutsatt att ovanstaende villkor, avseende korrekta versioner och nod-paket, upp-fylls ar skripten relativt latthanterade och kraver sallan nagon djupare forstaelse fordet grafiska programmeringsspraket. Manga skript behover endast enstaka input-data och kan sedan koras med ett klick pa knappen “Run”. Enstaka skript kraver inagot skede att anvandaren kopplar ihop noder i skriptet, vilket kan uppfattas somlite mera omstandligt for den oinvigde.

For att underlatta handhavandet av skripten ar det viktigt att de kompletteras medskriftliga instruktioner samt att noderna grupperas pa ett intuitivt satt. EftersomDynamo ar foranderligt med en snabb utvecklingspotential ar det aven viktigt attskripten foljs av dokumentation rorande tillampade programversioner och nodpaket.

Det mest anvandarvanliga granssnittet uppnas om skripten kan koras i Dynamoplayer. Da visas ingen redundant information utan endast falt for indata och start-knappen.

47

Page 60: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

6.1 Tidsbesparingar

Kopplat till analysen gjordes en enkel fallstudie dar skriptens styrkor omsattes i verk-ligheten. Fokus ligger pa tidsbesparingar vid applikation av exempelskript. Detta aren jamforande studie dar ett antal operationer forst utfors manuellt i Revit. I nastasteg anvands Dynamoskript for att automatiskt utfora samma uppsattning operatio-ner. Tidsskillnaden mats och en generell slutsats dras om metodens tidsbesparandepotential. Hansyn tas inte till den tid det tog att framstalla skripten, utan utgar franfardiga skript.

Valet av skript och tillampning gjordes pa basis av att operationerna ar av sadankaraktar att de bygger pa upprepning. De skript som analyserats ar Approved, CreateSheets och View Range.

6.1.1 Approved

Som tidigare namnts ar Approved en instansparameter som ligger i ritningsramenpa respekive ritning. For att godkanna handlingen maste anvandaren normalt settga in i varje ritningsram och bocka av denna parameter. Dynamo kan gora dettaautomatiskt om anvandaren specificerar vilka ritningar som skall beroras. I dettatest valdes ett projekt innehallande ett storre antal ritningar och sedan gjordes etturval om 50 st ritningar.

Under tidtagning gicks de 50 ritningarna forst igenom manuellt och Approved-para-metern justerades ritning for ritning. Detta tog ca 5,5 minuter att genomfora. Darefteroppnades skriptet, samma ritningsurval gjordes och skriptet startades. Med Dyna-moskriptet tog det 54 sekunder att filtrera ut och godkanna de 50 ritningarna (sefigur 44). Detta inkluderar aven uppstart av program och laddning av skript. Enkontroll gjordes sa att operationerna var korrekt utforda, dvs att andringen slagitigenom.

Resultatet av matningen sammanfattas i nedanstaende tabell.

Beskrivning av operation: Godkannande av 50 st ritningar.

Tillampat skript: Approved (se 4.2.6)

Tid (min:s):

Manuellt (utan skript) 05:27

Med Dynamo-skript 00:54

Tidsbesparing 04:33

Tidsbesparing(%) 83%

48

Page 61: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Figur 44: Tidsbesparing Approvedskript.

6.1.2 Skript for nya ritningar

Har testas skriptet for skapande av nya ritningar. Forutsattningen var att 50 stritningar forsedda med korrekta namn, ritningsnummer, ritningsramar och slipsarskulle skapas i ett exempelprojekt.

Forst anvandes Revits inbyggda funktioner for att skapa de 50 ritningarna. Det fannstre varianter av ritningsramar och tre olika slipsar att valja bland i projektet. Rit-ningsnamn och ritningsnummer angavs i Sheet list schedule. Ritningarna ordnadesgruppvis sa att de ritningar som skulle forses med samma ritningsramar skapadessamtidigt. Darefter genererades ritningarna. Dessa forsags sedan manuellt med olikaslipsar. Ovanstaende forfarande tog 27 minuter att genomfora.

Samma uppsattning ritningar med ritningsramar och slipsar skapades sedan medDynamos hjalp. Forst anvandes ett skript for att hamta de befintliga ritningsramar-na och slipsarna ur projektet. Dessa skrevs automatiskt till en excelfil. Excellistanfylldes sedan i av anvandaren sa att de 50 ritningarna skulle forses med individu-ella parametervarden och kombinationer av ramar/slipsar. Darefter kordes skriptetCreateSheets som skapar nya ritningar baserat pa de data som anvandaren skriviti Excellistan. Sammantaget tog det drygt 3 minuter att skapa de 50 ritningarna,inklusive uppstart av Dynamo och laddning av skript (se figur 45).

Resultatet av matningen sammanfattas i nedanstaende tabell.

Beskrivning av operation: Skapa 50 st ritningar.

Tillampat skript: Skript for skapande av nya rit-ningar (se 4.2.2)

Tid (min:s):

Manuellt (utan skript) 27:02

Med Dynamo-skript 03:12

Tidsbesparing 23:50

Tidsbesparing(%) 88%

49

Page 62: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Figur 45: Tidsbesparing CreateSheetsskript.

Just ritningsframstallningen innehaller flera olika moment av varierande komplexitetoch darfor ar det svart att konkret saga hur mycket tid det tar i ansprak att manuelltutfora operationerna som beskrivits ovan. Enligt en medarbetare pa foretaget kandet vara rimligt att avsatta ca tva timmar for att skapa de 50 ritningarna (Tornblom2018). Utover den effektiva tiden som anvands for att sammanstalla listorna och ge-nerera ritningarna tillkommer tid for kontroller och justeringar.

Eftersom forutsattningarna varierar mellan olika projekt gar det inte att saga sakertexakt hur stor vinsten ar att anvanda skriptet. Enstaka ritningar kan snabbt och en-kelt skapas i Revits standardmiljo. Mycket talar dock for att Dynamo ar ett vardefulltverktyg for de operationer som upprepas manga ganger, vilket var fallet i detta ex-empel. Vidare ar listhanteringsfunktionerna och kopplingen till Excel nagot som un-derlattar overskadligheten for anvandaren. Detta bidrar i hog grad till okad kontroll.

6.1.3 View Range

Forfarandet i detta test ar detsamma som for ovanstaende. I detta fall ar det ViewRange-parametrarna som stalls in.

I ett projekt fanns 20 st vyer tillhorande samma anvandare. Det betraktningsbaradjupet skulle stallas in sa att det var identiskt i samtliga vyer. Forst gjordes det-ta manuellt. Vyerna oppnades, en i taget, och parametrarna justerades till dess attView Range-vardena var desamma i alla vyer tillhorande den specifika anvandaren.Operationerna tog totalt ca 5,5 minuter att utfora. I nasta steg anvandas Dynamofor att utfora samma moment. Anvandarens vyer filtrerades ut baserat pa dennesinitialer och skriptet startades. Det tog 42 sekunder att justera de aktuella paramet-rarna med Dynamos hjalp. Detta inkluderade uppstart av Dynamo och laddning avskriptet. (se figur 46).

Resultatet av matningen sammanfattas i nedanstaende tabell.

50

Page 63: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Beskrivning av operation: Installning av View Range i 20st vyer.

Tillampat skript: View Range (se 4.2.5)

Tid (min:s):

Manuellt (utan skript) 05:27

Med Dynamo-skript 00:42

Tidsbesparing 04:45

Tidsbesparing(%) 87%

Figur 46: Tidsbesparing ViewRangeskript.

6.1.4 Kommentar

Tillampningen av Dynamo har inte bara en funktion i att snabbt utfora repetiti-va operationer. Listnings- och filtreringsfunktionerna ger ofta aven en okad kontrollover att samtliga onskvarda parametrar kan nas och justeras med storre precision.Att manuellt justera ett hundratal instansparametrar ar t.ex. inte bara tidskravandeutan det medfor aven en pataglig risk att nagon parameter missas av anvandaren.Eventuella missar som pa detta satt ar kopplade till den manskliga faktorn ar interedovisade i tidsmatningen. I verkligheten kan saledes behallningen med skripten va-ra annu storre an vad som pavisats i dessa tester.

51

Page 64: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

52

Page 65: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

7 Slutsatser

I detta avsnitt dras slutsatser om Dynamos styrkor och svagheter. Har redogors avenfor inom vilka arbetsmoment som optimeringspotentialen med denna typ av gra-fisk programmering kan anses vara som storst. Slutsatserna gors mot bakgrund avmalformuleringen och fragestallningarna i kapitel 1.

BIM-verktygen bygger pa parametrisering vilket innebar att modellens ingaende da-ta relativt enkelt kan nas och styras av externa program. Det ar i detta syfte somimplementeringen av grafisk programmering fyller en viktig funktion. Dynamo ar enkostnadsfri open source-applikation, initierad av Autodesk, som kan anvandas enskilteller som ett plug-in till Autodesk Revit. Det ar ett grafiskt programmeringsverk-tyg vilket innebar att anvandaren ges mojlighet att programmera kodskript utanatt manuellt skriva koden i textform. Det visuella granssnittet gor att grafisk pro-grammering ofta uppfattas som ett mer anvandarvanligt alternativ till traditionellatextbaserade skriptsprak. Dynamo kraver inte forkunskaper i programmering. Denoppna kallkoden gor att externa, oberoende utvecklare kan bidra till att forbattraprogrammets funktioner och utvecklingen gar snabbt framat.Dynamo mojliggor lasning, extrahering och styrning av parametrar i Revit. Det araven ett kraftfullt verktyg for berakningar, listning och annan hantering av data.

Nedan foljer ett antal exempel pa situationer i byggprojekteringsprocessen da Dyna-mo kan vara ett effektivt hjalpmedel. Genom att anvanda Dynamo kan operationersom utfors upprepade ganger, och som ar tidskravande att utfora manuellt, istalletautomatiseras. Detta kan t.ex. vara att skapa ett stort antal ritningar och forse des-sa med ritningsstamplar och slipsar. Dynamo kan ocksa anvandas for att exporteraoch importera parameterdata mellan Revit och andra program, sasom MicrosoftExcel. Exporterad data kan da redigeras i Excel for att sedan skickas tillbaka tillRevit, dar andringarna slar igenom. En annan applikation ar installning av indivi-duella anvandargranssnitt for att skraddarsy arbetsflodet i Revit. Vidare kan fleradesignforslag tas fram och stallas mot varandra, baserat pa anvandarens specifikakriterier. Designforslagen kan sedan autogenereras ur Dynamo. Dynamo kan avenutfora tester och simuleringar av hur val en byggnad kommer att fungera och preste-ra (t.ex. med avseende pa klimatkrav). I modelleringsskedet ger Dynamo anvandarenmojligheten att skapa komplexa, icke-konventionella former/geometrier som ar svaraatt astadkomma med Revits standardverktyg (Kilkelly 2018b). Ovanstaende medfori forlangningen att flera vitala moment i byggprojektorens vardagliga arbetsflode kaneffektiviseras.

Salange forutsattningarna ar de ratta och en lamplig applikation identifierats ar effek-tiviseringspotentialen stor. Begransningarna ar istallet kopplade till vissa kansligheteri programvaran samt anvandarens forkunskaper. Eftersom Dynamo bygger pa styr-ning av parametrar i Revit kravs initialt goda kunskaper i Revits elementstruktur.Dynamos snabba utveckling och oppna kallkod innebar allt som oftast en patagligstyrka. Standiga uppdateringar och nya externa nodpaket gor dock programmetkansligt for versioner. Det galler att halla standig uppsikt over vilka noder somanvands (utgivare och utgava). Fardigstallda skript kan bli obrukbara da aktuellanodbibliotek (packages) saknas.

53

Page 66: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Dynamos grafiska granssnitt ar forhallandevis anvandarvanligt men det kan andauppfattas som icke-intuitivt for den oinvigde. Anvandarvanligheten kan paverkasnegativt av det faktum att felkoderna i Dynamo ar knapphandiga, saledes kanfelsokning i programmeringsskedet ta tid. En annan aspekt ar att sokfunktionen iDynamos nod-bibliotek kan uppfattas som otillfredsstallande. Det tar ofrankomligentid att sammanstalla skripten om anvandaren saknar tidigare erfarenheter av gra-fisk programmering. Hur stor tidsatgangen blir ar dock helt avhangigt komplexite-ten i den operation som skriptet skall utfora. Avslutningsvis kan sagas att flertaletsvagheter rorande anvandarvanlighet och instabilitet torde kunna klassas som barn-sjukdomar vilka med tiden kommer att kunna elimineras. I tabellerna nedan har ettantal styrkor och svagheter sammanstallts. Det faktum att antalet svagheter ar fleran styrkorna i dessa tabeller implicerar inte att Dynamo ar ett ofordelaktigt verktygatt anvanda. Flera av fordelarna vager tyngre an nackdelarna.

Dynamos styrkor:+ Kraver ej forkunskaper i programmering.+ Kostnadsfritt+ Direkt anpassat for Revit.+ Forbattras standigt; blir mer stabilt.+ Tidseffektivt vid automatisering av operationer som utfors manga ganger.+ Mojliggor lasning, extrahering och styrning av parametrar i Revit.+ Kraftfull listhantering och kalkylering av data.+ Medfor okad kontroll av informationsflodet.

Dynamos svagheter:- Tidskravande i etableringsfas.- Kan vara icke-intuitivt for nyborjaren.- Foranderligt; inaktuella noder och packages.- Icke-fungerande skript da nodbibliotek/packages saknas.- Noder kan vara ologiskt/ickesystematiskt namngivna.- Kraver goda kunskaper om Revits elementstruktur.- Ej helt bakatkompatibelt.- Dynamo Player tillater input-data endast fran 2018 och framat.- Otillfredsstallande sokfunktion i Dynamos bibliotek.- Knapphandiga felkoder da noderna inte fungerar; felsokning kan ta tid.

54

Page 67: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

7.1 Sammanfattande kommentar

Potentialen avseende implementering av grafisk programmering, i effektiviserings-syfte vid byggprojektering, ar relativt tydlig. Med effektivisering avses i detta fallprimart tidsbesparingar som bidrar till okad ekonomisk hallbarhet for byggprojek-teringsforetaget. Genom en enkel knapptryckning kan vyer och hundratals ritningarskapas inom loppet av nagra sekunder. Likasa kan komplexa geometriska former vilkabestar av orakneliga komponenter numera modelleras upp pa ett ogonblick (Kilkelly2018b). Oavsett vad applikationen ar kan parameterstyrning genom grafisk program-mering effektivisera processen. Forutsattningen ar dock att metoden implementeraspa ratt satt i det system som arbetsplatsen anvander. Det ar anpassningen till bygg-projekteringsforetagets unika plattform och arbetssatt som tar tid att utveckla ochfinslipa. Sakert ar dock att efterfragan pa denna typ av applikationer har okat dras-tiskt pa den svenska marknaden och med forbattrad anvandarvanlighet kommer alltfler att kunna utnyttja dem.

55

Page 68: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

56

Page 69: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

8 Rekommendationer

Dynamo ar ett kraftfullt verktyg som med fordel kan anvandas for att effektivise-ra de arbetsuppgifter i Autodesk Revit som ar av upprepande karaktar. Mycket tidkan sparas da uppgifter som ar aterkommande i manga projekt kan automatiseras.Forutom att tid sparas minskar aven risken for att fel uppstar pa grund av denmanskliga faktorn.Da Dynamo ar kansligt for versioner och beroende av ratt externa package rekom-menderar vi att samma version av Dynamo med valda packages installeras i sambandmed installationen av Revit. Infor varje ny utgava av Revit bor Dynamo-skriptenuppdateras och testkoras sa att funktionaliteten kan sakerstallas for versionen. Vi-dare bor det till varje skript folja med en textfil med instruktioner och informationom anvanda programversioner.

Ett tankbart komplement till Dynamo ar anvandningen av macros i Revit. Macroskraver textbaserad programmering men erbjuder stabilare funktionalitet. Macroskan integreras i Revit och kan vara lampligt for en del funktioner som anvands i storomfattning.

57

Page 70: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

58

Page 71: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

9 Referenser

9.1 Tryckta kallor

Eastman, Charles M. (2011). BIM handbook: a guide to building information mode-ling for owners, managers designers, engineers, and contractors . 2. ed. Hoboken,NJ: Wiley

Kim, Marcus, Kirby, Lance & Krygiel, Eddy (2017). Mastering Autodesk Revit 2018. Indianapolis: John Wiley & Sons

Saxberg, Dennis (2015). RSE-METODBLAD STARTA MODELL. Ramboll.

9.2 Databaser

Allen, Bill. 2016. The Future of BIM Will Not Be BIM—and It’s Coming Fasterthan You Think. Autodesk University.http://au.autodesk.com/au-online/classes-on-demand/class-catalog/

2016/revit/it22329#chapter=0 (Hamtad 2018-05-07).

Autodesk, 2017. Model Versus Annotation Elements - Essential Skill. Autodesk.https://knowledge.autodesk.com/support/revit-products/getting-

started/caas/CloudHelp/cloudhelp/2016/ENU/Revit-GetStarted/files/

GUID-467CAA75-D380-48AB-B00F-0C47F21E15E7-htm.html (Hamtad 2018-05-09).

Autodesk, 2018a. About Macros. Autodesk.https://knowledge.autodesk.com/support/revit-products/learn-

explore/caas/CloudHelp/cloudhelp/2017/ENU/Revit-Customize/files/GUID-

EFF4E5A3-16EB-4CB4-AD6A-5EEE823CCE76-htm.html (Hamtad 2018-05-07).

Autodesk, 2018b. About Parameters. Autodeskhttps://knowledge.autodesk.com/support/revit-products/learn-explore/

caas/CloudHelp/cloudhelp/2016/ENU/Revit-Model/files/GUID-AEBA08ED-

BDF1-4E59-825A-BF9E4A871CF5-htm.html (Hamtad 2018-05-09)

Autodesk, 2018c. Dynamo Player. Autodesk.http://help.autodesk.com/view/RVT/2017/ENU/?guid=GUID-BFCE20D2-86D4-

4591-8CF3-5405D26DB825 (Hamtad 2018-05-07).

Autodesk, 2018d. Understanding Revit Terms. Autodesk.https://knowledge.autodesk.com/support/revit-products/learn-explore/

caas/CloudHelp/cloudhelp/2014/ENU/Revit/files/GUID-2480CA33-C0B9-

46FD-9BDD-FDE75B513727-htm.html (Hamtad 2018-05-07).

Brunelli, Mark. 2018. Parametric vs. Direct Modeling: Which Side Are You On?.PTC.https://www.ptc.com/en/cad-software-blog/parametric-vs-direct-

modeling-which-side-are-you-on (Hamtad 2018-05-07).

59

Page 72: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Dynamo Primer, 2017a. Designing with Lists. Dynamo Primerhttp://dynamoprimer.com/en/06_Designing-with-Lists/6_designing-with-

lists.html (Hamtad 2018-05-07).

Dynamo Primer, 2017b. DesignScript Syntax. Dynamo Primerhttp://dynamoprimer.com/en/07_Code-Block/7-2_Design-Script-syntax.

html (Hamtad 2018-05-07).

Dynamo Primer, 2017c. Geometry Overview. Dynamo Primerhttp://dynamoprimer.com/en/05_Geometry-for-Computational-Design/5-

1_geometry-overview.html (Hamtad 2018-05-07).

Dynamo Primer, 2017d. Nodes. Dynamo Primer.http://dynamoprimer.com/en/03_Anatomy-of-a-Dynamo-Definition/3-

1_dynamo_nodes.html (Hamtad 2018-05-07).

Dynamo Primer, 2017e. The Dynamo Primer. Dynamo Primer.http://dynamoprimer.com/en/ (Hamtad 2018-05-07).

Dynamo Primer, 2017f. What is Dynamo? Dynamo Primerhttp://dynamoprimer.com/en/01_Introduction/1-2_what_is_dynamo.html

(Hamtad 2018-05-07).

Dynamo Primer, 2017g. What is a code block? Dynamo Primerhttp://dynamoprimer.com/en/07_Code-Block/7-1_what-is-a-code-

block.html (Hamtad 2018-05-07).

Dynamobim, 2014. Force Order Of Operations. Dynamobimhttp://dynamobim.org/forums/topic/force-order-of-operations/ (Hamtad2018-05-07).

Dynamobim, 2018a. DesignScript Documentation. Dynamobimhttp://dynamobim.org/wp-content/links/DesignScriptDocumentation.pdf

(Hamtad 2018-05-07).

Dynamobim, 2018b. DesignScript Guide. Dynamobimhttp://dynamobim.org/wp-content/links/DesignScriptGuide.pdf (Hamtad2018-05-07).

Kilkelly, Michael. 2015. Mastering Revit Macros - Lesson 1. Archsmarter.https://www.youtube.com/watch?v=XmNVKaZ4psA (Hamtad 2018-05-07).

Kilkelly, Michael. 2016. How to Write Your First Revit Macro in 7 Easy Steps.http://archsmarter.com/first-revit-macro/ (Hamtad 2018-05-07).

Kilkelly, Michael. 2018a. Cooking with Dynamo – Workshop Recording. Archsmar-ter.http://archsmarter.com/cooking-dynamo-workshop-recording/ (Hamtad2018-05-07).

60

Page 73: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Kilkelly, Michael. 2018b. What Is Dynamo and 5 Reasons You Should be Using It.Archsmarter.http://archsmarter.com/what-is-dynamo-revit/ (Hamtad 2018-05-07).

Ramboll, 2018. Organisation. Ramboll.http://www.ramboll.se/om-oss/organisation (Hamtad 2018-05-07).

San Francisco Dynamo User Group, 2017. Beginner’s Guide to Python for DynamoUsers. SFDUGhttps://www.youtube.com/watch?v=2e6tKofKsSo&t=860s (Hamtad 2018-05-07).

Sgambelluri, Marcello. 2014. Selecting type vs placeable family in Dynamo. Sgam-belluri, Marcello.https://www.youtube.com/watch?v=dfCiy0Ov1UI (Hamtad 2018-05-08)

Talarico, Gui. 2018. Revit API Docs.http://www.revitapidocs.com (Hamtad 2018-05-07).

9.3 Tidigare gjorde examensarbeten inom amnesomradet

Abed, Mohamad Samir & Hosseinzade, Azita. 2017. Parameterstyrd projektering avbroar: Koppling mellan Rhinoceros-Grasshopper och Tekla Structures. Kandidatupp-sats, Kungliga Tekniska Hogskolan.

Mengana, Sinan & Mousiadis, Tassos. 2016. Parametric BIM: Energy PerformanceAnalysis Using Dynamo for Revit. Masteruppsats, Kungliga Tekniska Hogskolan.

9.4 Personlig kommunikation

Soderman, Lilian; Konstruktor vid Ramboll. 2018a. Mote 8 mars.

Soderman, Lilian; Konstruktor vid Ramboll. 2018b. Mote 3 april.

Soderman, Lilian; Konstruktor vid Ramboll. 2018c. Mote 19 april.

Soderman, Lilian; Konstruktor vid Ramboll. 2018d. Mote 27 april.

Tornblom, Kent; Konstruktor vid Ramboll. 2018. Mote 22 maj.

61

Page 74: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

9.5 Bildreferenser

Figurer som inte forekommer i nedanstaende lista ar skapade av uppsatsens forfattare.

Figur 1. Den teknisk utveckling av digitala verktyg inom AEC fran 1950-talet ochframat.Kalla: Allen, Bill. 2016. The Future of BIM Will Not Be BIM—and It’s ComingFaster than You Think. [Illustration]. http://au.autodesk.com/au-online/classes-on-demand/class-catalog/2016/revit/it22329#chapter=0 (Hamtad 2018-05-07).

Figur 2. Fordelar med BIM.Kalla: BluEnt, 2018. Benefits of BIM [Illustration].http://www.bluentcad.com/services/revit-bim-services/ (Hamtad 2018-05-14).

Figur 3. Revits struktur med avseende pa kategorier, familjer och typer.Kalla: Autodesk, 2014. Understanding Revit Terms [Illustra-tion]. https://knowledge.autodesk.com/support/revit-products/learn-explore/caas/CloudHelp/cloudhelp/2014/ENU/Revit/files/GUID-2480CA33-C0B9-46FD-9BDD-FDE75B513727-htm.html (Hamtad 2018-05-14).

Figur 9. Ett exempel pa ett grafiskt skript skapat i Dynamo samt det korresponde-rande textbaserade skriptet.Kalla: Dynamoprimer, 2018. What is Visual Programming?[Illustration]. http://dynamoprimer.com/en/01 Introduction/1-1 what is visual programming.html (Hamtad 2018-05-14).

Figur 12.Pa revitapidocs.com finns information om bl.a klasser, metoder och syntax.I figuren beskrivs syntaxen for anvandandet av metoden Create inom klassen Wall,samt vilka parametrar som kravs inom parenteserna. Kalla: Revitapidocs, 2018.Syntax [Illustration]. http://www.revitapidocs.com/2018.1/d2848332-daca-2bf1-4aca-21ea21937758.htm (Hamtad 2018-05-14).

Figur 23. Geometriers uppbyggnad i Revit.Kalla: Dynamo Primer, 2018. Stepping through the Hierarchy [Illustra-tion]. http://dynamoprimer.com/en/05 Geometry-for-Computational-Design/5-1 geometry-overview.html (Hamtad 2018-05-14).

62

Page 75: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

Figurer

1 Den tekniska utvecklingen av digitala verktyg inom AEC fran 1950-talet och framat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Fordelar med BIM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Revits struktur med avseende pa kategorier, familjer och typer. . . . . 94 Revits properties-meny for installning av instansparametrar. . . . . . . 105 Revits dialogruta for installning av typparametrar. . . . . . . . . . . . 106 En lista over de befintliga vyerna och ritningarna syns i Revits Project

Browser. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Exempel pa noder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Dynamoikonens position under fliken “Manage” i Revit. . . . . . . . . 149 Ett exempel pa ett grafiskt skript skapat i Dynamo samt det korre-

sponderande textbaserade skriptet. . . . . . . . . . . . . . . . . . . . . 1410 Exempel pa skript med Code Block -noder. Samma operation utfors

pa tva olika satt: Med noden Circle.ByCenterPointRadius och medett Code Block. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

11 Exempel pa filtrering av lista i Dynamo. . . . . . . . . . . . . . . . . . 1612 Dynamos dialogruta “Manage Packages”. . . . . . . . . . . . . . . . . 1713 Pythonskripten integrerar textbaserad programmering i Dynamos gra-

fiska granssnitt. Detta skript hamtar alla vyer av typen legend ur ettprojekt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

14 Koden bakom python-noden i figur 13. . . . . . . . . . . . . . . . . . . 1915 Exempel pa information fran revitapidocs.com: Syntaxen for

anvandandet av metoden OfCategory inom klassen FilteredEle-mentCollector. Jamfor figur 14. . . . . . . . . . . . . . . . . . . . . . . 19

16 Menyn i Dynamo Player samt dialogrutan for input-data. . . . . . . . 2017 En viewtemplate styr en mangd parametrar for de vyer den ar kopplad

till. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2218 Del av dynamoskript som applicerar vyfilter pa valda vyer. . . . . . . 2319 Parametrar for den skapade planvyn (Structural Plan) med de angiv-

na initialerna “PGD”. Planvyn ar skapad av typen “ARBETSPLAN(PGD)” och Viewtemplate “ARBETSVY PLAN (PGD)”. . . . . . . . 24

20 Det forsta skriptet samlar in data och skapar ett Excel-blad. . . . . . 2521 Excelblad med tillgangliga ritningsramar och slipsar. . . . . . . . . . . 2522 Excelblad med de ritningar som skall skapas. . . . . . . . . . . . . . . 2623 Del av skript som skapar ritningar samt andrar deras parametrar. . . . 2824 Dialogbox som ger feedback pa vilka ritningar som skapats. . . . . . . 2925 Pythonskript for skapande av Popup-fonstret i figur 24. . . . . . . . . 2926 Fore: Vyn pa den undre ritningen ligger fel. . . . . . . . . . . . . . . . 3027 Efter: Placeringen av vyn har justerats. . . . . . . . . . . . . . . . . . 3128 Utdrag ur Excelblad genererad av skriptet. . . . . . . . . . . . . . . . 3229 Stalpelaren i projektet. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3330 Ifylld Excellista. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3331 Type Mark efter att skriptet korts. . . . . . . . . . . . . . . . . . . . . 3332 Revits dialogruta for installning av View Range. . . . . . . . . . . . . 3433 Anvandaren kan hitta sina specifika vyer genom att gora en filtrerad

sokning pa sina initialer. . . . . . . . . . . . . . . . . . . . . . . . . . . 3534 Nar vyerna valts ut matar anvandaren in sina individuella offset-varden. 3535 Parameter for godkannande av ritningen i Revits Properties-meny. . . 36

63

Page 76: E ektivisering av Byggprojektering med hj alp av Gra sk ...1223046/FULLTEXT01.pdf · Gra sk programmering Programmering i gra sk milj o, utan textbaserade skript. Dynamo Plug-in till

36 Anvandaren filtrerar projektets befintliga ritningar for att fa ut enlista over vilka ritningar som skall godkannas. . . . . . . . . . . . . . . 36

37 Lista over de ritningar som valts. . . . . . . . . . . . . . . . . . . . . . 3738 I Dynamo valjs parameterns namn och dess varde (True eller False)

stalls in. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3739 Genom att skapa en lista vantar Dynamo pa operation 1 innan ope-

ration 2 utfors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3840 Geometriers uppbyggnad i Revit. . . . . . . . . . . . . . . . . . . . . . 3941 Formeln som omformar den plana ytan till en tredimensionell kurvad

yta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4042 Den adaptiva familjen. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4043 Skriptet applicerat pa en exempelmodell. Rendering i Revit. . . . . . . 4144 Tidsbesparing Approvedskript. . . . . . . . . . . . . . . . . . . . . . . 4945 Tidsbesparing CreateSheetsskript. . . . . . . . . . . . . . . . . . . . . 5046 Tidsbesparing ViewRangeskript. . . . . . . . . . . . . . . . . . . . . . 51

64