• No results found

Effektivisering av byggprojektering med hjälp av grafisk programmering

N/A
N/A
Protected

Academic year: 2022

Share "Effektivisering av byggprojektering med hjälp av grafisk programmering"

Copied!
76
0
0

Loading.... (view fulltext now)

Full text

(1)

Effektivisering av Byggprojektering med hj¨alp av

Grafisk programmering

Improving the Efficiency of Building Design using Graphic Programming

F¨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

(2)
(3)

Sammanfattning

BIM (Building Information Modeling) ¨ ar idag ett vedertaget begrepp inom byggpro- jektering. En viktig styrka med BIM ¨ ar m¨ ojligheten till koordinering mellan samtliga akt¨ orer i projektet. BIM-verktygen bygger p˚ a parametrisering vilket inneb¨ ar att mo- dellens objekt har en stor upps¨ attning data kopplad till sig. Objektens egenskaper kan ¨ andras genom att justera parameterdatan. Parametriseringen medf¨ or ocks˚ a att data relativt enkelt kan n˚ as, extraheras och styras av externa program. Det ¨ ar i detta syfte som implementeringen av grafisk programmering fyller en viktig funktion. Med hj¨ alp av grafisk programmering kan flera operationer i BIM-arbetet automatiseras.

D¨ armed finns potentialen att spara v¨ ardefull tid f¨ or byggprojekt¨ oren.

Autodesk Revit ¨ ar ett av de verktyg som dominerar BIM-marknaden. I Revit kan anv¨ andaren designa och dokumentera ett byggprojekt i alla dess faser. Sedan n˚ agra

˚ ar tillbaka finns det ett till¨ agg till programmet som heter Dynamo. Dynamo till˚ ater anv¨ andaren att styra Revit med hj¨ alp av skript i en anv¨ andarv¨ anlig grafisk milj¨ o.

I denna uppsats redog¨ ors f¨ or Dynamos m¨ ojligheter och begr¨ ansningar applicerat p˚ a v¨ aletablerade arbetsmoment inom byggprojektering. H¨ ar redog¨ ors f¨ or optimerings- potentialen och l¨ ampliga anv¨ andningsomr˚ aden. Slutsatser som dragits grundar sig i h¨ og grad p˚ a en empirisk unders¨ okning d¨ ar ett antal grafiska skript har skapats och utv¨ arderats.

Resultatet visar p˚ a att flera vitala moment i byggprojekt¨ orens vardagliga arbetsfl¨ ode kan effektiviseras med hj¨ alp av inf¨ orandet av grafisk programmering. Med effekti- visering avses i detta fall prim¨ art tidsbesparingar som bidrar till ¨ okad ekonomisk h˚ allbarhet f¨ or byggprojekteringsf¨ oretaget.

Nyckelord: BIM, Autodesk Revit, Dynamo, Grafisk programmering, Parameterstyr-

ning, Byggprojektering, Ritningshantering.

(4)
(5)

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 all actors in the project. The BIM tools are based on parameterization, which means that the model’s object has a large set of data attached to it. The properties of the objects can be changed by adjusting the parameter data. Parameterization also means that data can be easily accessed, extracted and controlled by external appli- cations. It is for this purpose that the implementation of graphic programming plays an important role. With the help of graphical programming, several operations in the BIM work can be automated. Thus, there is the potential to save valuable time for the construction projector.

Autodesk Revit is one of the tools that dominates the BIM market. In Revit, the user can design and document a construction project in all its phases. For a few years back, there is an addition to the program called Dynamo. Dynamo allows the user to control Revit using scripts in a user-friendly graphical environment.

This essay explains Dynamo’s possibilities and limitations applied to work processes in building design. It describes the optimization potential and appropriate applica- tions. Conclusions are mainly drawn based upon the generation and evaluation of graphical scripts.

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

Keywords: BIM, Autodesk Revit, Dynamo, Graphic Programming, Parameter Con-

trol, Construction Design, Drawing Handling

(6)
(7)

F¨ orord

Vi vill rikta ett tack till Carl ˚ Akerhielm, avdelningschef, som visat oss f¨ ortroende och givit oss m¨ ojligheten att utf¨ ora detta examensarbete p˚ a Ramb¨ oll. Stort tack till v˚ ar externa handledare Lilian S¨ oderman, konstrukt¨ or, f¨ or alla v¨ ardefulla ¨ amnesuppslag samt granskning och ˚ aterkoppling under arbetets g˚ ang. Vi vill ¨ aven tacka v˚ ar akade- miska handledare Ahmad Reza Roozbeh som visat stort intresse f¨ or uppsats¨ amnet, granskat uppsatsen och bidragit med konstruktiv kritik.

Stockholm, maj 2018 Nils Ahlner

Gunnar Dahl

(8)
(9)

Ordlista

BIM Building information Modeling

AEC Architecture, Engineering & Construction

API Application Program Interface

BIP Building Information Properties

Autodesk Revit BIM-programvara f¨ or framst¨ allning av parametriska 3D-modeller

Skript Text som inneh˚ aller instruktioner och kommandon till datorprogram

Grafisk programmering Programmering i grafisk milj¨ o, utan textbaserade skript.

Dynamo Plug-in till Autodesk Revit f¨ or skapande av grafiska skript.

Noder (Nodes) De grafiska block som processar information och utf¨ or operationer i Dynamo.

Kontakttr˚ adar (Wires) Signalb¨ arare som sammankopplar noderna i Dynamo.

Element Element ¨ ar ben¨ amningen p˚ a objekt i Autodesk Revit.

Det finns tre typer av element: modellelement, datume- lement och vyspecifika element.

Parameter Parametrar i Revit anv¨ ands f¨ or att definiera elemen- tens olika egenskaper. Parametrarna anv¨ ands ¨ aven f¨ or att kommunicera modellinformation f¨ or modifiering av elementen.

Vyer (Views) Genom vyer eller s.k. views kan Revit-anv¨ andaren

˚ ask˚ adligg¨ ora och dokumentera olika delar av byggpro- jektet.

Ritningar (Sheets) Revits digitala ritningar, vilka f¨ orses med vyer, ritnings- ramar och st¨ amplar etc.

Mallfil (Templates) En mallfil tj¨ anar ofta som en startpunkt i ett Revit- projekt. Mallfiler kan t.ex. inkludera inst¨ allningar f¨ or vyer, grafiska filter och inladdade objektfamiljer. Det kan ¨ aven vara f¨ ordefinierade enheter, fyllm¨ onster, lin- jetjocklekar, skalor etc.

Open Source Oppen k¨ ¨ allkod vilken m¨ ojligg¨ or f¨ or privata anv¨ andare och externa kodare (andra ¨ an utgivaren) att skapa egna skript och modifiera programmet.

Programmeringsspr˚ ak Textbaserade kommandon som styr datorprogram.

N˚ agra av de spr˚ ak som behandlas i rapporten ¨ ar Python,

C#, DesignScript, VB.Net och Ruby.

(10)

Inneh˚ all

F¨ orord vii

Ordlista ix

1 Inledning 1

1.1 Bakgrund . . . . 1

1.1.1 Nul¨ agesbeskrivning . . . . 1

1.1.2 Ramb¨ oll . . . . 1

1.1.3 Ramb¨ olls behov . . . . 1

1.2 M˚ alformulering . . . . 2

1.3 Syfte och Fr˚ agest¨ allningar . . . . 2

1.4 Avgr¨ ansningar . . . . 2

2 Metod 3 2.1 Validitet och tillf¨ orlitlighet . . . . 3

3 Teoretisk referensram 5 3.1 CAD . . . . 5

3.2 Parametrisk modellering . . . . 5

3.3 BIM . . . . 6

3.4 Ritningsframst¨ allning med BIM-verktyg . . . . 7

3.5 Autodesk Revit . . . . 8

3.5.1 Revits uppbyggnad . . . . 8

3.5.2 Views & Sheets i Revit . . . 11

3.5.3 Macros . . . 12

3.6 Grafisk programmering . . . 13

3.7 Dynamo . . . 13

3.7.1 Exempel p˚ a noder . . . 15

3.7.2 Packages . . . 17

3.7.3 Pythonskript . . . 18

3.8 Dynamo Player . . . 20

4 Genomf¨ orandet 21 4.1 Faktainsamling . . . 21

4.1.1 Ramb¨ olls arbetss¨ att . . . 21

4.1.2 Dynamos funktioner . . . . 21

4.1.3 Omr˚ aden att effektivisera . . . . 21

4.2 Dynamo-skript . . . 22

4.2.1 Skript f¨ or ny anv¨ andare . . . 22

4.2.2 Skript f¨ or skapande av nya ritningar . . . 25

4.2.3 Skript f¨ or justering av vyplacering . . . 30

4.2.4 Skript f¨ or uppdatering av Type Name och Type Mark . . . 32

4.2.5 Skript f¨ or View Range . . . 34

4.2.6 Skript f¨ or Approved . . . 36

4.2.7 Skript f¨ or att styra ordning av kodl¨ asning . . . 38

4.2.8 Skript f¨ or modellering . . . . 38

4.3 Python-Skript . . . . 42

4.4 Sv˚ arigheter . . . . 43

(11)

5 Resultat 45

6 Analys 47

6.1 Tidsbesparingar . . . 48

6.1.1 Approved . . . 48

6.1.2 Skript f¨ or nya ritningar . . . 49

6.1.3 View Range . . . 50

6.1.4 Kommentar . . . 51

7 Slutsatser 53 7.1 Sammanfattande kommentar . . . 55

8 Rekommendationer 57 9 Referenser 59 9.1 Tryckta k¨ allor . . . . 59

9.2 Databaser . . . . 59

9.3 Tidigare gjorde examensarbeten inom ¨ amnesomr˚ adet . . . . 61

9.4 Personlig kommunikation . . . . 61

9.5 Bildreferenser . . . . 62

Figurer 64

(12)
(13)

1 Inledning

1.1 Bakgrund

En kvalificerad majoritet av de st¨ orre byggprojekt som initieras idag till¨ ampar n˚ agon form av BIM-teknologi i projekteringsskedet. BIM eller Building Information Mode- ling inneb¨ ar att en eller flera virtuella modeller uppr¨ attas digitalt f¨ or att designa och dokumentera byggprojektet. En fullst¨ andig modell inneh˚ aller precisa och fullt defi- nierade geometrier samt all t¨ ankbar data f¨ or att st¨ odja processer inom projektering, produktion, upphandling etc. En viktig styrka med BIM ¨ ar m¨ ojligheten till koordine- ring mellan samtliga akt¨ orer i projektet. BIM-verktygen bygger p˚ a parametrisering vilket inneb¨ ar att modellens ing˚ aende data relativt enkelt kan n˚ as och styras av ex- terna program. Det ¨ ar i detta syfte som implementeringen av grafisk programmering fyller en viktig funktion.

1.1.1 Nul¨ agesbeskrivning

Autodesk Revit ¨ ar ett av de verktyg som dominerar BIM-marknaden och program- met anv¨ ands av merparten av arkitektkontoren och konstruktionsfirmorna i landet.

Sedan n˚ agra ˚ ar tillbaka finns det ett till¨ agg till programmet som heter Dynamo. Fle- ra f¨ oretag inom byggprojektering har visat ett ¨ okat intresse f¨ or programvaror likt Dynamo f¨ or att effektivisera sitt dagliga arbetsfl¨ ode och d¨ armed uppn˚ a ¨ okad ekono- misk h˚ allbarhet. Dynamo till˚ ater anv¨ andaren att styra Revit med hj¨ alp av skript i en anv¨ andarv¨ anlig grafisk milj¨ o. Med Dynamos hj¨ alp skulle flera tidskr¨ avande operatio- ner, som annars m˚ aste g¨ oras manuellt, ist¨ allet kunna automatiseras. Detta inneb¨ ar i sin tur att v¨ ardefull tid ist¨ allet kan l¨ aggas p˚ a andra, mer centrala, arbetsmoment.

1.1.2 Ramb¨ oll

Detta examensarbete har utf¨ orts p˚ a uppdrag av teknikkonsultfirman Ramb¨ oll AB p˚ a avdelningen f¨ or husbyggnad. Ramb¨ oll ¨ ar ett multinationellt teknikkonsultf¨ oretag in- om infrastruktur och samh¨ allsbyggnad med 13 000 medarbetare i 35 l¨ ander. Ramb¨ olls svenska huvudkontor ligger p˚ a Krukmakargatan i Stockholm. I Sverige finns cirka 2000 medarbetare p˚ a ett 30-tal kontor fr˚ an norr till s¨ oder (Ramb¨ oll, 2018). Ramb¨ oll

¨

ags av Ramb¨ ollstiftelsen, med s¨ ate i Danmark, d¨ ar Ramb¨ ollgruppen ocks˚ a har sitt huvudkontor (i Ørestad, K¨ openhamn) (Wikipedia, 2018). I den svenska verksamhe- ten ing˚ ar Ramb¨ oll Sverige med divisionerna Buildings, Transport och Project Ma- nagement. I Sverige finns ocks˚ a dotterbolaget Ramboll Management Consulting och Global Practices f¨ or Environment & Health, Water och Energy (Ramb¨ oll, 2018).

1.1.3 Ramb¨ olls behov

Ramb¨ oll anv¨ ander Revit f¨ or modellering, samordning och ritningsframst¨ allning ge- nom hela projekteringsprocessen. Det finns redan kunskaper om grafiska programme- ringsspr˚ ak och verktyg liknande Dynamo. D¨ aremot har det endast funnits begr¨ ansad tid och resurser f¨ or att utveckla dessa delar av verksamheten och det ¨ ar inte heller realistiskt att varje enskild anst¨ alld 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 f¨ or att effektivisera arbetsfl¨ odet. Slutprodukten som

levereras till kund ¨ ar konstruktionsritningar och d¨ arf¨ or st¨ alls h¨ oga krav p˚ a en effek-

tiv och korrekt ritningshantering (S¨ oderman 2018a). Om ritningsframst¨ allningen och

(14)

omg¨ ardande moment kan utf¨ oras enklare och snabbare, leder detta till ekonomiska vinster.

1.2 M˚ alformulering

M˚ alet med examensarbetet ¨ ar att urskilja ett antal arbetsmoment inom byggprojek- tering som ¨ ar l¨ ampliga att effektivisera med hj¨ alp av grafisk programmering. Arbetet skall ocks˚ a resultera i praktiska exempel p˚ a hur detta kan g¨ oras. D¨ arut¨ over skall ge- nerella slutsatser r¨ orande programvarans potential, med avseende p˚ a effektivisering, dras.

1.3 Syfte och Fr˚ agest¨ allningar

Det ¨ overgripande syftet med detta examensarbete ¨ ar att unders¨ oka m¨ ojligheten till effektivisering av byggprojektering med hj¨ alp av inf¨ orandet av grafisk programme- ring. I f¨ orsta hand med avseende p˚ a ritningshantering, men ¨ aven en utv¨ ardering av andra m¨ ojligheter, t.ex hantering av mallfiler och modellering.

Fr˚ agest¨ allningar:

Hur kan grafisk programmering till¨ ampas f¨ or att effektivisera byggprojekteringspro- cessen och vilka m¨ ojligheter medf¨ or det?

Vilka sv˚ arigheter finns det i handhavandet av programmeringsverktyget?

Inom vilka arbetsmoment finns de st¨ orsta vinsterna med grafisk programmering i byggprojektering?

1.4 Avgr¨ ansningar

I detta examensarbete begr¨ ansas till¨ ampningen till grafisk programmering som ett effektiviseringshj¨ alpmedel inom BIM och d˚ a i synnerhet vid moment kopplade till rit- ningsframst¨ allning. Arbetet avgr¨ ansas ytterligare av att f¨ orfattarna empiriskt endast kommer att unders¨ oka till¨ ampningen vid kombination av Autodesk Revit och Dyna- mo. Det finns flera andra programvaror (s˚ asom Grasshopper f¨ or Rhino) med liknande funktioner, men dessa kommer inte att avhandlas i denna text. Motivet till denna avgr¨ ansning styrs fr¨ amst av efterfr˚ agan p˚ a den svenska projekteringsmarknaden, och framf¨ orallt av uppdragsgivarens (Ramb¨ olls) ¨ onskem˚ al.

Autodesk Revit ¨ ar idag det program som har st¨ orst spridning inom BIM-f¨ altet (av-

seende husbyggnad) och anv¨ ands av de flesta konstruktions- och arkitektfirmorna i

landet. Dynamo har profilerats f¨ or att fungera som plugin f¨ or Autodeskprodukterna

s˚ a det ¨ ar ett naturligt val att unders¨ oka just denna applikation.

(15)

2 Metod

Litteraturstudie: Information r¨ orande programvaran Dynamos anv¨ andningsom- r˚ aden, dess begr¨ ansningar och potential kan s¨ okas i tryckt litteratur samt via hand- b¨ ocker och instruktionsfilmer p˚ a internet.

Empirisk studie: Detta examensarbete innefattar ¨ aven en empirisk studie d¨ ar f¨ orfattarna praktiskt till¨ ampar programvaran Dynamo f¨ or att h¨ amta och styra para- metrar i Autodesk Revit samt att l¨ anka information mellan Revit och Excel.

Personlig kommunikation: Under arbetets g˚ ang kommer det ˚ aterkommande att h˚ allas muntlig kontakt med yrkesverksamma BIM-samordnare och konstrukt¨ orer lo- kalt p˚ a Ramb¨ oll. Detta ger erforderlig information om vilka problem som ¨ onskas l¨ osas, nya uppslag samt konstruktiv kritik p˚ a de uppn˚ adda resultaten.

2.1 Validitet och tillf¨ orlitlighet

Det finns vissa risker knutna till avgr¨ ansningen samt metodvalet i examensarbe- tet. Den empiriska unders¨ okningen ¨ ar begr¨ ansad d˚ a den fr¨ amst kommer att avspegla Ramb¨ olls specifika behov och arbetsmetoder. De skript f¨ orfattarna s¨ oker utveckla f¨ or effektivisering av byggprojektering kommer kanske inte omedelbart att gagna andra akt¨ orer ¨ an Ramb¨ oll.

Den eventuella tidsbesparande aspekten av att ha ett fungerande skript som t.ex.

underl¨ attar ritningsframst¨ allningen ¨ ar visserligen h¨ ogst m¨ atbar i liten skala men det

finns sv˚ arigheter i att f¨ orutsp˚ a nyttan f¨ or byggbranschen i stort. Med andra ord kan

det finnas vissa sv˚ arigheter i att tolka det resultat som framkommit.

(16)
(17)

3 Teoretisk referensram

I detta kapitel presenteras teoretisk bakgrundsinformation och forskning vilken ¨ ar n¨ odv¨ andig f¨ or att f¨ orst˚ a kontexten f¨ or examensarbetet.

3.1 CAD

CAD eller Computer Aided Design fick fotf¨ aste inom byggprojektering under 1970- talet (Eastman 2011, 36). I b¨ orjan anv¨ andes tekniken prim¨ art f¨ or att efterlikna hand- ritade byggnadsritningar och utvecklingen kan s˚ aledes betraktas som ett led i en digitaliseringsprocess d¨ ar informationsinneh˚ allet initialt var of¨ or¨ andrat (se figur 1) (Eastman 2011, 15). I detta skede anv¨ andes inte parameterstyrning. Denna typ av traditionell direktmodellering via CAD bygger ist¨ allet p˚ a att ett enskilt objekt med statiska egenskaper (s˚ asom m˚ att) skapas. Om m˚ atten sedan skall ¨ andras m˚ aste var- je enskilt objekt av denna typ uppdateras individuellt (Eastman 2011, 41). Detta medf¨ or som regel ocks˚ a att intilliggande objekt m˚ aste ritas om f¨ or att anpassas efter de ¨ andringar som gjorts; annars uppst˚ ar o¨ onskade krockar och liknande komplikatio- ner.

Direktmodellering i CAD skapar d¨ armed geometrier och grafiska former snarare ¨ an intelligenta, egenskapsb¨ arande objekt och relationer. De modellerade objekten b¨ ar inte p˚ a mer information ¨ an det rent visuella uttrycket (Eastman 2011, 19). I ett husprojekt med en modell f¨ orest¨ allande en fullst¨ andig byggnad med hundratusentals komponenter blir d˚ a ¨ aven sm˚ a ¨ andringar ofr˚ ankomligen mycket tidskr¨ avande att genomf¨ ora (Eastman 2011, 39). CAD utan parameterstyrning fyller dock fortfarande en v¨ ardefull funktion vid snabb framtagning av friformsmodellerade designkoncept, skisser och visualiseringar med ett begr¨ ansat antal komponenter (Brunelli 2018). Ett exempel p˚ a ett i grunden icke-parametriskt 3D-CAD-program ¨ ar Google Sketchup (Eastman 2011, 19).

3.2 Parametrisk modellering

De tidigaste exemplen p˚ a parametrisk modellering utvecklades under 80-talet och ha- de d˚ a sin huvudsakliga till¨ ampning inom tillverkningsindustrin (Eastman 2011, 31).

Utm¨ arkande f¨ or parametrisk modellering ¨ ar i korthet att objekten i modellen, till skillnad fr˚ an CAD-modeller, saknar fixerad geometri och egenskaper. Geometrin och egenskaperna kan ist¨ allet definieras och uppdateras genom uppst¨ allning av paramet- rar, relationer och regler. Dessa parametrar kan t.ex. styras av andra geometrier och parametrar vilket inneb¨ ar att objekten i modellen uppdateras adaptivt i f¨ orh˚ allande till varandra (Eastman 2011, 41).

Vid parametrisk modellering inleds arbetet ofta med att anv¨ andaren definierar en

elementklass eller en familj med vissa f¨ orutbest¨ amda parametrar och regler f¨ or ska-

pandet av komponenten. Dessa regler kan exempelvis vara att komponenten enbart

ska kunna placeras ut p˚ a en viss typ av yta. S˚ a l¨ ange de f¨ ordefinierade reglerna

uppfylls kan varje enskild komponent (t.ex. ett f¨ onster) formas och justeras enligt

anv¨ andarens ¨ onskem˚ al men det ¨ ar ¨ aven m¨ ojligt att st¨ alla in parametrar f¨ or samtliga

komponenter som tillh¨ or samma familj. Vid utplacering av ett f¨ onster p˚ a en v¨ agg

skapas en komponentrelation mellan de tv˚ a. D¨ armed kommer v¨ aggen att anpassa sin

(18)

form till f¨ onstret, dvs. en f¨ onster¨ oppning skapas automatiskt i v¨ aggen (Mengana &

Mousiadis 2016, 14).

Sammanfattningsvis kan det s¨ agas att parameterstyrd modellering ger m¨ ojlighet till en ¨ okad grad av automation och tidseffektivisering i modelleringsf¨ orfarandet vilket

¨ ar s¨ arskilt ¨ onskv¨ art vid storskaliga projekt. D˚ a parameterstyrd modellering applice- ras vid projektering av en hel byggnad brukar modelleringsformen ben¨ amnas BIM, Building Information Modeling.

Figur 1: Den tekniska utvecklingen av digitala verktyg inom AEC fr˚an 1950-talet och fram˚at.

3.3 BIM

BIM eller Building Information Modeling ¨ ar ett av de f¨ alt inom byggprojekterings- sektorn som haft starkast utveckling de senaste ˚ aren. BIM inneb¨ ar att en eller flera virtuella modeller uppr¨ attas digitalt f¨ or att designa och dokumentera ett byggprojekt.

Modellen ¨ ar helt dynamisk och kan uppdateras i byggandets alla faser. En fullst¨ andig modell inneh˚ aller precisa och fullt definierade geometrier samt all t¨ ankbar data f¨ or att st¨ odja processer inom projektering, produktion, upphandling etc. Modellen kan

¨ aven anv¨ andas genom byggnadens hela livscykel (Eastman 2011, 1).

En viktig styrka med BIM ¨ ar m¨ ojligheten till koordinering mellan samtliga akt¨ orer i projektet. Eftersom alla discipliner har tillg˚ ang till ing˚ aende information i projektets olika faser m¨ ojligg¨ ors ¨ okad transparens och kommunikation mellan de inblandade.

D¨ armed ¨ okar ocks˚ a flexibiliteten och tidseffektiviteten eftersom ¨ andringar kan utf¨ oras

med kortare varsel (Mengana & Mousiadis 2016, 8).

(19)

Historiskt sett har ingenj¨ orer, arkitekter och byggf¨ oretag haft sina egna ritnings- underlag som sedan sammanst¨ allts f¨ or att s¨ akerst¨ alla koordination. Med detta ar- betss¨ att blir dock risken stor att det uppst˚ ar fysiska och tidsm¨ assiga krockar som sedan ¨ ar tidskr¨ avande och kostsamma att l¨ osa p˚ a plats. Med BIM finns f¨ oruts¨ attning f¨ or flera akt¨ orer att arbeta i en och samma centralmodell. D¨ armed kan krockar och konflikter uppm¨ arksammas och l¨ osas redan i projekteringsskedet, l˚ angt innan pro- duktionen p˚ ab¨ orjats (se figur 2) (Mengana & Mousiadis 2016, 9).

Figur 2: F¨ordelar med BIM.

3.4 Ritningsframst¨ allning med BIM-verktyg

Aven om digitala 3d-modeller tillf¨ ¨ or alltmer information r¨ orande byggnadens geome- tri och strukturella system kommer tv˚ adimensionella ritningar sannolikt att forts¨ atta anv¨ andas under en tid fram¨ over. Byggprojekteringsprocessen med dess etablerade standarder ¨ ar fortfarande i h¨ og grad centrerad kring ritningsframst¨ allning, oavsett om det r¨ or sig om elektroniska eller pappersbaserade ritningar. Detta medf¨ or att h¨ oga krav st¨ alls p˚ a BIM-verktygens f¨ orm˚ aga att extrahera ritningar. Om ritnings- framst¨ allningen kr¨ aver f¨ or mycket manuella inst¨ allningar och inte kan automatiseras p˚ a ett effektivt s¨ att s˚ a reduceras f¨ ordelarna med BIM-verktygen avsev¨ art (Eastman 2011, 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 d¨ armed endast en g˚ ang.

Baserat p˚ a modellen kan sedan ritningar, rapporter och data extraheras. ¨ Aven om

ritningarna visar olika delar och utsnitt av byggnaden ¨ ar det fortfarande samma mo-

dell som ˚ aterspeglas. Detta medf¨ or att alla ritningar inneh˚ aller sammanh¨ angande,

konsekventa data. Tanken ¨ ar s˚ aledes att alla f¨ or¨ andringar som g¨ ors i modellen au-

tomatiskt ska sl˚ a igenom p˚ a de handlingar som ¨ ar kopplade till den (Eastman 2011,

60).

(20)

3.5 Autodesk Revit

Autodesk Revit ¨ ar en komplett BIM-programvara f¨ or framst¨ allning av parametriska 3D-modeller (Kim, Kirby & Krygiel 2017, 22). Namnet kommer fr˚ an uttrycket ”revise instantly”, vilket anspelar p˚ a programmets f¨ orm˚ aga att enkelt hantera f¨ or¨ andringar ( ¨ Ostman 2017, 13). Utvecklingen av Revit initierades av medarbetare p˚ a mjukva- ruf¨ oretaget Parametric Technology Corporation (PTC) som bl.a. gjort sig k¨ anda ge- nom ber¨ akningsprogrammet Mathcad (Mengana & Mousiadis 2016, 18). Den f¨ orsta versionen av Revit sl¨ apptes ˚ ar 2000 (Kim, Kirby & Krygiel 2017, XXVI).

Programmet genererar geometrier med inb¨ addad information f¨ or design och kon- struktion av byggnader och anl¨ aggningar. Ur en modell kan planer, sektioner, eleva- tioner, perspektivvyer, detaljer och m¨ angdf¨ orteckningar skapas, vilka ¨ ar n¨ odv¨ andiga f¨ or att dokumentera bygget. Eftersom all information ¨ ar kopplad till modellen kom- mer eventuella uppdateringar av denna att sl˚ a igenom i projektets samtliga vyer (Kim, Kirby & Krygiel 2017, 22).

3.5.1 Revits uppbyggnad

F¨ or att f¨ orst˚ a hur Dynamoskripten kan anv¨ andas f¨ or att h¨ amta information och ma- nipulera parametrar i Revit ¨ ar det viktigt att k¨ anna till n˚ agra grundl¨ aggande begrepp i 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 exempel p˚ a kategori ¨ ar V¨ aggar (Walls).

Familjerna ¨ ar n¨ asta undergruppering och grupperar element som har gemensam- ma parametrar, identisk anv¨ andning och liknande grafiska egenskaper. Exempel p˚ a familjer i kategorin v¨ aggar ¨ ar Basic Wall och Curtain Wall. Det g˚ ar att skapa nya egna familjer och m˚ anga byggvarutillverkare tillhandah˚ aller f¨ ardiga familjer med sina respektive produkter.

Typerna best˚ ar av alla de olika varianter som finns i varje familj. Exempel p˚ a ty-

per som kan finnas under familjen Basic Wall ¨ ar Innerv¨ agg 120 mm och Ytterv¨ agg

tr¨ aregelstomme 400 mm. Typerna g˚ ar enkelt att kopiera och f¨ or¨ andra och i varje

projekt skapas de typer som beh¨ ovs.

(21)

Instanser ¨ ar den l¨ agsta niv˚ an i strukturen och varje instans beskriver ett unikt ob- jekt. Exempelvis s˚ a skulle en instans av en ytterv¨ agg kunna vara placerad i punkt A och vara 3000 mm l˚ ang i en viss given riktning (Autodesk 2018d).

Strukturen som beskrivits ˚ ask˚ adligg¨ ors l¨ attast med ett schema enligt nedan (se figur 3).

Figur 3: Revits struktur med avseende p˚a kategorier, familjer och typer.

Parametrar

Parametrar i Revit anv¨ ands f¨ or att definiera och modifiera element samt f¨ or att kommunicera modellinformation. Fr˚ an 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 s˚ aledes variera individuellt helt oberoende av typ.

Typparametrar (se figur 5) ¨ ar kopplade till familjetyp och om en typparameter ¨ andras medf¨ or detta att alla objekt som tillh¨ or den familjetypen p˚ averkas ( ¨ Ostman 2017, 14).

Projektparametrar ¨ ar specifika f¨ or en enskild projektfil och kan anv¨ andas f¨ or att lista, sortera och filtrera information i projektet. De tillskrivs olika element i projektet p˚ a basis av kategori. En projektparameter kan exempelvis anv¨ andas f¨ or att kategorisera vyer i projektet. Information som lagrats i projektparametrarna kan inte delas till andra projekt (Autodesk 2018b).

Globala parametrar ¨ ar ocks˚ a projektspecifika men tillskrivs inte till kategorier. De

kan styra och rapportera v¨ arden och anv¨ ands t.ex. f¨ or att s¨ atta positionen p˚ a ett

element relativt storleken p˚ a ett annat element (Autodesk 2018b).

(22)

Figur 4: Revits properties-meny f¨or inst¨allning av instansparametrar.

Figur 5: Revits dialogruta f¨or inst¨allning av typparametrar.

(23)

I Revit delas alla element in i de tv˚ a kategorierna ”model” och ”annotation”. Modell- element anv¨ ands f¨ or att definiera tredimensionella geometrier i projektet. N¨ ar ett modellelement placerats ut s˚ a ˚ ask˚ adligg¨ ors det omg˚ aende i samtliga vyer. Annotati- va element ¨ ar vyspecifika element som anv¨ ands f¨ or att dokumentera modellen genom exempelvis m˚ att, taggar, symboler och anteckningar. De kan ocks˚ a anv¨ andas f¨ or att l¨ agga till extra detaljer som inte autogenererats av modellgeometrierna (Autodesk 2017).

3.5.2 Views & Sheets i Revit

Genom vyer (views) kan Revit-anv¨ andaren ˚ ask˚ adligg¨ ora och dokumentera olika delar av byggprojektet. Det finns b˚ ade tv˚ adimensionella och tredimensionella vyer samt scheman och listor f¨ or att ¨ overblicka projektinformationen. De tv˚ adimensionella vy- erna ¨ ar orienterade enligt specifika koordinater s˚ asom plan, elevation och sektion. De tredimensionella vyerna ¨ ar antingen ortografiska eller perspektivvyer (t.ex. kamera- vyer). Vyerna inneh˚ aller instans- och typ-parametrar (se f¨ oreg˚ aende rubrik) vilka reglerar egenskaper s˚ asom namn, skala, detaljniv˚ a, grafikalternativ och byggnations- fas (Kim, Kirby & Krygiel 2017, 56).

F¨ or att vyerna ska kunna skrivas ut eller exporteras till standardiserat pappersfor- mat m˚ aste de l¨ aggas ut p˚ a en ritning (sheet) i Revit (se figur 6). Sheets kan skapas genom en lista (sheet list schedule) som anv¨ andaren uppr¨ attar. D˚ a genereras flera sheets samtidigt enligt de data som angivits i listan. Det g˚ ar ¨ aven att skapa enstaka sheets. I samband med skapandet v¨ aljs ett s.k. titleblock som inneh˚ aller eventuell ritningsram och st¨ ampel (Kim, Kirby & Krygiel 2017, 793).

Figur 6: En lista ¨over de befintliga vyerna och ritningarna syns i Revits Project Browser.

(24)

3.5.3 Macros

I Autodesk Revit finns m¨ ojligheten att automatisera och styra programmets funk- tioner genom n˚ agot som kallas macros. Ett macro skapas av anv¨ andaren och ¨ ar ett textbaserat skript som utf¨ or en funktion eller en serie funktioner. Exempelvis kan macros skapas f¨ or att utf¨ ora ˚ aterkommande uppgifter d¨ ar utf¨ orandet ¨ ar identiskt och det ¨ onskade resultatet v¨ aldefinierat(Kilkelly 2015). Macros skapas direkt i Revit i ett inbyggt program som kallas SharpDevelop. Programmet accepterar kod i programme- ringsspr˚ aken C#, VB.Net, Python och Ruby(Kilkelly 2016). Hj¨ alpfiler som beskriver Revits API(Application Program Interface) finns tillg¨ angliga, och med hj¨ alp av dessa kan enskilda anv¨ andare programmera macros som l¨ agger till ¨ onskv¨ arda funktioner.

Dessa funktioner kan g¨ oras tillg¨ angliga genom nya ikoner som l¨ aggs till under fliken

Add-ins(Kilkelly 2015). Ett macro kan ocks˚ a skapas s˚ a att anv¨ andaren interaktivt

genom popup-f¨ onster styr vilka element som skall p˚ averkas och vilka operationer som

skall utf¨ oras.

(25)

3.6 Grafisk programmering

Grafisk programmering inneb¨ ar att anv¨ andare genom ett programs visuella layout ges m¨ ojlighet att programmera kodskript utan att manuellt skriva koden i text- form. Det visuella gr¨ anssnittet g¨ or att grafisk programmering ofta uppfattas som ett mer anv¨ andarv¨ anligt alternativ till traditionella textbaserade skriptspr˚ ak, d˚ a dessa kr¨ aver att anv¨ andaren beh¨ arskar programmeringsspr˚ aket f¨ or att uppn˚ a ¨ onskat resul- tat. Grafisk programmering tillg¨ angligg¨ or p˚ a detta s¨ att anv¨ andandet av kodskript till en bredare grupp anv¨ andare.

Vid grafisk programmering kan skript-funktionerna representeras av sm˚ a visuella ele- ment (noder, se figur 7) vilka kopplas samman med tr˚ adar i ett schema. I noderna processas allts˚ a data som sedan skickas vidare till n¨ asta funktion. D¨ armed definieras relationer och sekvenser av operationer som tillsammans formar en skr¨ addarsydd al- goritm (Mengana & Mousiadis 2016, 17).

Exempel p˚ a andra program f¨ orutom Dynamo som till¨ ampar grafisk programmering

¨ ar LabView och Grasshopper (f¨ or Tekla/Rhino).

Figur 7: Exempel p˚a noder.

3.7 Dynamo

Dynamo ¨ ar en kostnadsfri open source-applikation, initierad av Autodesk, som kan anv¨ andas enskilt eller som ett plug-in till Autodesk Revit (se figur 8). Det ¨ ar ett programmeringsverktyg och anv¨ ander det visuella gr¨ anssnitt som beskrivits under f¨ oreg˚ aende rubrik (Mengana & Mousiadis 2016, 19). F¨ or att utf¨ ora en operation v¨ aljs en prefabricerad nod (inneh˚ allande ett skript) ur Dynamos bibliotek. Externa utvecklare har ¨ aven tagit fram egna paket med skr¨ addarsydda noder som l¨ att kan laddas in i programmet.

Varje nod utf¨ or en operation - ibland kan det vara n˚ agot s˚ a enkelt som att spara ett numeriskt v¨ arde men det kan ocks˚ a vara en funktion som modellerar en komplex geometri. Noderna kopplas samman och kombineras enligt anv¨ andarens ¨ onskem˚ al.

Dynamo bygger i grunden p˚ a programmeringsspr˚ aket C# men det ¨ ar ¨ aven m¨ ojligt

att kombinera flera olika traditionella skriptspr˚ ak, vilket ger ¨ okad funktionalitet (Dy-

namo Primer 2017d).

(26)

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

En viktig skillnad mellan Dynamo och traditionell textbaserad programmering ¨ ar att koden i Dynamo inte per automatik l¨ ases uppifr˚ an och ned; h¨ ar finns ingen absolut definierad kronologi. Kodfl¨ odet l¨ ases fr˚ an v¨ anster till h¨ oger men flera operationer kan startas samtidigt oberoende av position i schemat. F¨ or att s¨ akert styra ordning och fl¨ odesriktning m˚ aste detta definieras i noderna. Exempel p˚ a hur detta kan g¨ oras presenteras under avsnitt 4.2.7.

Figuren nedan visar ett exempel p˚ a ett grafiskt skript skapat i Dynamo samt det korresponderande textbaserade skriptet.

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

(27)

3.7.1 Exempel p˚ a noder

Flera av Dynamos noder ben¨ amns och beskrivs till sin funktion under kapitel 4.2.

Nedan f¨ oljer en kort beskrivning av n˚ agra av Dynamos vanligast anv¨ anda standard- noder.

Code Block

En av de mest anv¨ anda noderna i Dynamo kallas f¨ or Code Block (se figur 10). No- den beh¨ over inte v¨ aljas, utan placeras ut automatiskt genom ett dubbelklick p˚ a arbetsytan. Code Block skiljer sig fr˚ an ¨ ovriga noder genom att den inte inneh˚ aller f¨ orprogrammerad kod. Ist¨ allet skrivs text direkt i noden och den genererar sedan ett resultat baserat p˚ a texten. Flera olika typer av inmatad text accepteras av noden. I sin enklaste form genererar noden ett numeriskt v¨ arde eller en text-slinga (Dynamo Primer 2017g). Noden kan ocks˚ a anv¨ andas f¨ or att skriva kod i Dynamos egna pro- grammeringsspr˚ ak DesignScript eller f¨ or att definiera matematiska formler. Genom att koda textbaserat kan olika operationer kombineras med formler och definitioner vilket ger fler m¨ ojligheter att skapa ¨ onskv¨ arda funktioner (Dynamobim 2018a).

DesignScriptets syntax ¨ ar densamma som de f¨ orprogrammerade nodernas namngiv- ning vilket underl¨ attar inl¨ arning av spr˚ aket. Ytterligare en funktion som underl¨ attar inl¨ arning av DesignScript ¨ ar n˚ agot som Dynamo kallar Node to Code. Genom att markera en eller flera f¨ orprogrammerade noder, h¨ ogerklicka och v¨ alja Node to Code, omvandlas noderna till ett Code Block med motsvarande skript i textformat (Dynamo Primer 2017b).

Figur 10: Exempel p˚a skript med Code Block -noder. Samma operation utf¨ors p˚a tv˚a olika s¨att: Med nodenCircle.ByCenterPointRadius och med ett Code Block.

(28)

List-noder

D˚ a Dynamo bygger p˚ a att f¨ or¨ andra parameterv¨ arden finns ett stort behov av att kunna styra och behandla informationsfl¨ oden. F¨ or att kunna definiera hur paramet- rar skall f¨ or¨ andras beh¨ ovs funktioner f¨ or att hantera och strukturera information. I Dynamo sker en stor del av informationshanteringen i s˚ a kallade list-nodes (Dyna- mo Primer 2017a). Dessa noder sorterar, filtrerar och kombinerar olika listor med information (se figur 11).

Figur 11: Exempel p˚a filtrering av lista i Dynamo.

Watch

Noden som heter Watch ¨ ar skapad f¨ or att ge Dynamo-anv¨ andaren feedback p˚ a hur skriptet fungerar. Noden kan kopplas till alla andra typer av noder och ger en be- skrivning av utdatan fr˚ an respektive nod. Detta ¨ ar till stor hj¨ alp d˚ a man exempelvis fels¨ oker ett skript och vill veta vad som har h¨ ant i varje nod. Det ¨ ar ocks˚ a anv¨ andbart n¨ ar ett skript byggs upp, s¨ arskilt f¨ or nya Dynamo-anv¨ andare om os¨ akerhet r˚ ader kring en nods funktion.

Det kan till¨ aggas att en visningsfunktion f¨ or utdata redan finns inbyggd i varje nod om man h˚ aller muspekaren ¨ over dem. Det ¨ ar dock en f¨ ordel att f˚ a informationen till en egen nod som l¨ att kan l¨ asas och j¨ amf¨ oras med annan information. I figur 11 finns exempel p˚ a Watch-noder som visar utdatan fr˚ an noden

List.FilterByBoolMask.

Den vita rutan under noden

String.Contains

¨ ar den inbyggda visningsfunktionen f¨ or

noden.

(29)

3.7.2 Packages

D˚ a Dynamo ¨ ar ett open source-projekt styrs dess utveckling inte enbart av ett enskilt f¨ oretags programmerare. Ist¨ allet har samtliga anv¨ andare m¨ ojlighet att programmera egna noder och dela med varandra. Dessa anv¨ andar-producerade noder laddas ner direkt i Dynamo och kallas f¨ or packages (se figur 12). Varje package kan inneh˚ alla alltifr˚ an en enskild nod upp till hela bibliotek av noder och de mest nedladdade no- derna blir ofta efter en tid inf¨ orlivade i Dynamos standardbibliotek.

N˚ agra av de packages som ¨ ar mest nedladdade och som vi kommer att anv¨ anda i v˚ ara skript ¨ ar archi-lab, Clockwork, Rhythm och LunchBox.

Figur 12: Dynamos dialogruta “Manage Packages”.

(30)

3.7.3 Pythonskript

Dynamo st¨ odjer ¨ aven programmeringsspr˚ aket Python. Genom en nod som heter Pyt- hon Script ges m¨ ojlighet att f¨ ora in textbaserad python-kod i Dynamo (se figur 13).

F¨ ordelen med Python gentemot DesignScript ¨ ar att Python inte ¨ ar begr¨ ansat till de f¨ orprogrammerade skript som finns i Dynamos k¨ arna. Med pythonscript ges direkt access till Revits API (Application Program Interface) dvs till Revits alla funktioner.

F¨ or att kunna utnyttja dessa noder till fullo kr¨ avs en hel del f¨ orkunskaper. F¨ orutom att beh¨ arska Python kr¨ avs att man ¨ ar insatt i hur Revits API ¨ ar uppbyggd (San Francisco Dynamo User Group 2017). Autodesk har dock en utf¨ orlig hj¨ alpsida som beskriver Revits API och alla dess klasser och metoder (se figur 15). Hj¨ alpsidan finns tillg¨ anglig p˚ a n¨ atet (revitapidocs.com) men det g˚ ar ¨ aven att ladda ner en utf¨ orligare version (Revit SDK)(Talarico 2018).

Figur 13: Pythonskripten integrerar textbaserad programmering i Dynamos grafiska gr¨anssnitt. Detta skript h¨amtar alla vyer av typen legend ur ett projekt.

Genom att integrera textbaserad programmering i grafisk programmering skapas

f¨ oruts¨ attningar f¨ or att f˚ a ut det b¨ asta ur tv˚ a v¨ arldar. ¨ Aven om pythonskripten

kr¨ aver mer f¨ orkunskaper s˚ a kan enklare skript relativt enkelt skapas ¨ aven av ovana

anv¨ andare. D˚ a Dynamo ¨ ar ett open source-projekt finns det mycket hj¨ alp att f˚ a p˚ a

forum p˚ a internet, och ofta g˚ ar det att hitta ett mer eller mindre f¨ ardigt pythonskript

som g¨ or det man vill ˚ astadkomma. Utan att ha stora kunskaper i programmering kan

anv¨ andare genom Dynamo i kombination med Python f˚ a tillg˚ ang till st¨ orre delen av

Revits funktioner (se figur 14).

(31)

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

Figur 15: Exempel p˚a information fr˚an revitapidocs.com: Syntaxen f¨or anv¨andandet av metoden OfCategory inom klassen FilteredElementCollector. J¨amf¨or figur 14.

(32)

3.8 Dynamo Player

Dynamo Player ¨ ar ett plugin som i likhet med Dynamo kommer f¨ orinstallerat p˚ a de senaste utg˚ avorna av Autodesk Revit. Dynamo Player tillf¨ or ett enklare handhavan- de av Dynamo-skripten. I en dialogruta har anv¨ andaren m¨ ojlighet att bl¨ addra bland de tillg¨ angliga skripten och att starta ett skript utan att ¨ oppna Dynamos grafiska milj¨ o (se figur 16). Detta ger ett ¨ an mer l¨ attillg¨ angligt gr¨ anssnitt. Om anv¨ andaren

¨ and˚ a ¨ onskar redigera skriptet finns en l¨ ank-knapp som ¨ oppnar det fullst¨ andiga skrip- tet i Dynamo.

Figur 16: Menyn i Dynamo Player samt dialogrutan f¨or input-data.

M˚ anga skript kr¨ aver dock olika former av indata (textstr¨ angar, numeriska v¨ arden

eller s¨ okv¨ agar etc.) f¨ or att fungera. I och med sl¨ appet av Revit version 2018.1 har

Dynamo player d¨ arf¨ or ut¨ okats med en input-dialogruta d¨ ar anv¨ andaren ser de er-

forderliga parametrarna som beh¨ over definieras. N¨ ar f¨ alten ¨ ar ifyllda kan skriptet

sedan k¨ oras som vanligt. F¨ or att Dynamo Player skall veta vilka indata som skall

efterfr˚ agas i dialogrutan m˚ aste noderna ha klassats med till¨ agget “Is Input” i skriptet

(Autodesk 2018c).

(33)

4 Genomf¨ orandet

4.1 Faktainsamling 4.1.1 Ramb¨ olls arbetss¨ att

Baskunskaper om Ramb¨ olls uppdrag, arbetss¨ att och behov erh¨ olls genom munt- lig kontakt med medarbetarna p˚ a kontoret. F¨ or att f˚ a grundl¨ aggande insikt i det dagliga arbetsfl¨ odet fr˚ an projektstart till modellering och ritningsframst¨ allning har f¨ orfattarna tagit del av Ramb¨ olls interna metodblad som bl.a. beskriver vissa mo- ment och funktioner i Revit. Metodbladen beskriver ocks˚ a hur Ramb¨ olls mallfiler ¨ ar uppbyggda och hur de i dessa anv¨ ander projektparametrar f¨ or att styra anv¨ andare samt sortera och gruppera ritningar och vyer.

F¨ or att evaluera funktionaliteten hos de skript som producerats i den empiriska delen av detta examensarbete har flertalet tester utf¨ orts p˚ a befintliga projekt uppbyggda enligt f¨ oretagets praxis.

4.1.2 Dynamos funktioner

Vid insamlandet av information om hur Dynamo fungerar och vad programmet kan g¨ ora fanns en m¨ angd funktioner av intresse att testa. Exempel p˚ a funktioner som testades var skapande av ritningar, h¨ amtning och sortering av planvyer och skapande av vyfilter. Utifr˚ an dessa funktioner sammanst¨ alldes sedan enkla skript, dels genom att s¨ oka sj¨ alva bland Dynamos noder men fr¨ amst genom att s¨ oka information p˚ a forum och YouTube-kanaler om hur dessa funktioner enklast kan utf¨ oras. Detta var ett effektivt s¨ att att s¨ atta sig in i hur programmet fungerar och vilka begr¨ ansningar och sv˚ arigheter som uppst˚ ar vid anv¨ andandet.

Exempel p˚ a k¨ allor som anv¨ ants kontinuerligt:

https://forum.dynamobim.com http://dynamoprimer.com http://archsmarter.com

http://www.youtube.com/user/MrKlon15/

4.1.3 Omr˚ aden att effektivisera

Genom samtal och m¨ oten med medarbetare p˚ a Ramb¨ oll avgr¨ ansades omr˚ adena d¨ ar

potential f¨ or effektivisering bed¨ omdes vara som st¨ orst. Dessa omr˚ aden k¨ annetecknades

av att liknande eller identiska moment utf¨ ordes upprepade g˚ anger, samt att dessa

arbetsmoment ¨ ar ˚ aterkommande i m˚ anga projekt. Under projektets g˚ ang uppkom

nya potentiella effektiviseringsomr˚ aden allteftersom de skapade skriptf¨ orslagen pre-

senterades. Effektiviseringsomr˚ adena presenteras l¨ angre fram i detta kapitel.

(34)

4.2 Dynamo-skript

I detta avsnitt beskrivs arbetet med skapandet av Dynamoskripten. H¨ ar redog¨ ors f¨ or hur skripten ¨ ar uppbyggda och vad skripten har f¨ or grundl¨ aggande funktion. F¨ or att underl¨ atta ett eventuellt ˚ aterskapandet av liknande skript anges ¨ aven namnen p˚ a de viktigaste noderna som anv¨ ants i varje skript. Inom parentes anges vilket package noderna ¨ ar h¨ amtade fr˚ an i de fall de inte finns i standardutbudet.

4.2.1 Skript f¨ or ny anv¨ andare

I Revit-projekt arbetar ett flertal anv¨ andare samtidigt i samma modellfil. Varje unik anv¨ andare har sina egna vyer och mallfiler vilket avsev¨ art underl¨ attar arbetet i mo- dellen, d˚ a olika anv¨ andare kan g¨ ora egna inst¨ allningar utifr˚ an sitt arbetsomr˚ ade.

Ramb¨ oll organiserar olika anv¨ andare genom projektparametrar som ˚ aterfinns i den mallfil som alla projekt utg˚ ar fr˚ an. Detta inneb¨ ar att alla projekt har dessa paramet- rar och de kan sedan anv¨ andas f¨ or att skapa strukturer f¨ or ritningar och anv¨ andare.

Genom att Revit till˚ ater anv¨ andaren att sj¨ alv definiera hur projektbrowsern skall ord- na och gruppera vyer och ritningar s˚ a kan Ramb¨ olls projektparametrar anv¨ andas f¨ or detta syfte. Ramb¨ oll anv¨ ander sig av tv˚ a egna parametrar, d¨ ar den f¨ orsta best¨ ammer vilken typ av vy eller ritning det r¨ or sig om och den andra parametern ¨ ar unik f¨ or varje anv¨ andare (Saxberg 2015). De olika ritningstyperna f¨ oljer svensk standard f¨ or ben¨ amningar av ritningar och kan exempelvis vara ”K-15”, konstruktionsritning f¨ or grundkonstruktioner.

Figur 17: En viewtemplate styr en m¨angd parametrar f¨or de vyer den ¨ar kopplad till.

(35)

Tillv¨ agag˚ angss¨ attet f¨ or att l¨ agga till en ny anv¨ andare i ett projekt har tidigare va- rit relativt omst¨ andligt och kr¨ avt ett flertal operationer. Varje anv¨ andare har varit tvungen att skapa vymallar f¨ or planvyer, sektioner samt detaljer. Till vymallarna skapas unika viewtemplates samt vyfilter f¨ or att reglera vad som ¨ ar synligt i respek- tive vy.

Vi har skapat ett f¨ orslag p˚ a skript som utf¨ or alla operationer i skapandet av nya anv¨ andare. Det enda som beh¨ over anges ¨ ar den nya anv¨ andarens initialer.

Dynamoskriptet ¨ ar uppbyggt enligt f¨ oljande:

1. F¨ orst h¨ amtas och kopieras projektets viewtemplates f¨ or f¨ oljande vytyper: De- taljer, Sektioner och Planvyer. Kopiorna som skapats d¨ ops om och Ramb¨ olls projektparameter som motsvarar den unika anv¨ andarens initialer ¨ andras.

Anv¨ anda noder:

·

ViewTemplate.Duplicate

(archilab)

·

Element.SetParameterByName

2. D¨ arefter skapas ett vyfilter som styr s˚ a att varje anv¨ andare endast ser sina egna sektioner och detaljer. F¨ or att g¨ ora detta skapas f¨ orst de regler som styr filtret och sedan sj¨ alva filtret, som reglerar p˚ a vilka element reglerna skall appliceras.

Detta filter appliceras sedan p˚ a de nya viewtemplates (se figur 18).

Figur 18: Del av dynamoskript som applicerar vyfilter p˚a valda vyer.

Anv¨ anda noder:

·

FilterRule.ByRuleType

·

ParameterFilterElement.ByRules

·

View.AddFilter

·

View.SetFilterOverrides

(36)

3. Nya anv¨ andarspecifika vytyper(View Types) skapas. Varje anv¨ andare skapar sedan nya vy-instanser utifr˚ an dessa typer. Det skriptet egentligen g¨ or ¨ ar att kopiera de vytyper som finns i mallfilen/projektet. D¨ arefter d¨ ops vytyperna om och den nya anv¨ andarens viewtemplate appliceras.

Anv¨ anda noder:

·

FamilyType.Duplicate

(Clockwork)

·

Element.SetParameterByName

4. Till sist skapas en planvy (Structural Plan) utifr˚ an den skapade vytypen med korrekt viewtemplate (se figur 19).

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

Anv¨ anda noder:

·

StructuralPlanView.ByLevel

(37)

4.2.2 Skript f¨ or skapande av nya ritningar

Det skapas i ett projekt v¨ aldigt m˚ anga ritningar och ofta ¨ ar omfattningen p˚ a dessa preciserade redan p˚ a ett tidigt stadium. Arbetsg˚ angen med att skapa sheets (ritning- ar) i Revit ¨ ar ofta manuell och inneh˚ aller flertalet moment d˚ a de skall numreras, namnges, och ges korrekta projektparametrar. De skall ¨ aven f¨ orses med en s.k. slips (en f¨ orklarande text med h¨ anvisningar) samt ges korrekt titleblock (ritningsram) (S¨ oderman 2018b). Detta ¨ ar moment som kan ta v¨ aldigt mycket tid i anspr˚ ak och v˚ art skript-f¨ orslag skapar dessa ritningar ur ett Excel-underlag. Skriptet f¨ orser inte ritningarna med vyer, utan detta f˚ ar g¨ oras i efterhand. Skriptet best˚ ar av tv˚ a delar och dessa kan k¨ oras direkt i Dynamo Player d˚ a de inte har n˚ agon indata f¨ orutom det Excel-blad som anv¨ ands.

Det f¨ orsta skriptet skapar ett Excel-blad samt samlar in data fr˚ an projektet:

Figur 20: Det f¨orsta skriptet samlar in data och skapar ett Excel-blad.

1. F¨ orst h¨ amtas information fr˚ an det aktuella Revit-projektet med avseende p˚ a tillg¨ angliga ritningsramar och slipsar.

2. Den inh¨ amtade informationen sorteras och skrivs till Excel (se figur 21).

Figur 21: Excelblad med tillg¨angliga ritningsramar och slipsar.

(38)

Anv¨ anda noder:

·

View Type

(archilab)

·

View.GetByType

(archilab)

·

All Families Of Category

(Clockwork)

·

List.Sort

·

List.Transpose

·

Data.ExportExcel

Det andra skriptet anv¨ ander sig av det Excelblad som det f¨ orsta skriptet skapat. I detta blad finns m¨ ojlighet att f¨ ora in en lista p˚ a de ritningar som skall skapas, och de kan ¨ aven f¨ orses med ritningsram och slips ur det aktuella projektet (se figur 22).

Det andra skriptet utf¨ or f¨ oljande operationer:

1. F¨ orst l¨ ases den inmatade informationen in fr˚ an Excel-bladet. Datan rensas och sorteras sedan utefter ritningsnummer (Sheet Number ):

Anv¨ anda 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 f¨ or att undvika

dubblering.

(39)

Anv¨ anda noder:

·

Categories

·

All Elements of Category

·

Element.GetParameterValueByName

·

List.ContainsItem

3. Dessa ritningar sorteras bort fr˚ an den lista av ritningar som skall skapas.

Anv¨ anda noder:

·

List.ContainsItem

(Python-skript)

·

List.FilterByBoolMask

·

Manage.ReplaceNulls

(LunchBox)

4. Dynamoskriptet l¨ aser sedan av Ramb¨ olls egen projektparameter RSE VIEW- GROUP 2. Detta g¨ ors f¨ or att matcha ritningsnamnet mot projektets specifika parametrar f¨ or att sorteringen av ritningar skall bli korrekt.

Anv¨ anda noder:

·

String.StartsWith

·

String.Length

·

String.Substring

5. Nu skapas alla de ritningar fr˚ an Excelbladet som inte redan fanns i projektet.

Ritningarna skapas utifr˚ an ritningsramen och d¨ arefter justeras parametrarna nummer, namn samt projektparametrar (se figur 23).

Anv¨ anda noder:

·

FamilyType.ByName

·

Sheet.Create

(Rhythm)

·

Element.SetParameterByName

(40)

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

6. Slips placeras ut p˚ a de ritningar d¨ ar denna specificerats. Slipsen ¨ ar i Revit definierad som en vy. Vyn placeras ut i ritningens nollpunkt och flyttas sedan till r¨ att plats.

Anv¨ anda noder:

·

Viewport.Create

(Rhythm)

·

Point.ByCoordinates

·

Viewport.LocationData

(Rhythm)

·

Points.DeconstructPoint

(LunchBox)

·

Vector.ByCoordinates

·

Element.MoveByVector

7. Slutligen skapas ett Popup-f¨ onster som ber¨ attar vilka ritningar som blivit ska-

pade samt vilka som redan fanns i projektet (se figur 24). Popup-f¨ onstret skapas

med hj¨ alp av ett pythonskript och anv¨ ander sig av Revits egna f¨ onster (Task-

Dialog) (se figur 25).

(41)

Figur 24: Dialogbox som ger feedback p˚a vilka ritningar som skapats.

Figur 25: Pythonskript f¨or skapande av Popup-f¨onstret i figur 24.

(42)

4.2.3 Skript f¨ or justering av vyplacering

N¨ ar vyer placeras p˚ a ritningar i Revit ¨ ar det viktigt att varje vy ligger p˚ a exakt sam- ma plats som korresponderande vyer f¨ or andra v˚ aningsplan. P˚ a Ramb¨ oll anv¨ ands en Add-In som heter Naviate f¨ or att l¨ agga in vyerna och de hamnar d˚ a i r¨ att position automatiskt. I de fall d˚ a ingen l¨ amplig Add-In finns installerad, eller om n˚ agon vy av misstag blivit flyttad och inte l¨ angre ligger i position (se figur 26) kan det vara intressant med ett skript som justerar vyplaceringen enligt en vald mall-ritning. Det

¨ ar just vad detta skript g¨ or. I skriptet f˚ ar anv¨ andaren v¨ alja en ritning som skall vara mall f¨ or hur vyn skall ligga, och sedan v¨ alja de ritningar som skall justeras:

Figur 26: F¨ore: Vyn p˚a den undre ritningen ligger fel.

(43)

1. F¨ orst v¨ aljs den ritning som skall vara mall. Skriptet l¨ aser sedan av var ritnings- vyns centrumpunkt ¨ ar placerad p˚ a ritningen.

2. D¨ arefter v¨ aljs den ritning vilken skall modifieras. Skriptet l¨ aser av ritningsvyns centrumpunkt och utifr˚ an differensen f¨ or centrumpunkterna flyttas den ena vyn (se figur 27).

Figur 27: Efter: Placeringen av vyn har justerats.

(44)

Anv¨ anda noder:

·

Sheets

(Rhythm)

·

Sheets.GetViewportsAndViews

(Rhythm)

·

Viewport.GetView

(Rhythm)

·

Viewport.LocationData

(Rhythm)

·

Points.DeconstructPoint

(LunchBox)

·

Vector.ByCoordinates

·

Element.MoveByVector

4.2.4 Skript f¨ or uppdatering av Type Name och Type Mark

Typer i Revit best˚ ar av alla de olika varianter som finns av varje objektfamilj. Under respektive typ finns m¨ ojligheten att ange v¨ ardet p˚ a en parameter som heter Type Mark. Denna parameter anv¨ ands i flera aktiva projekt f¨ or att ange byggdelens s.k.

BIP-kod (S¨ oderman 2018c). BIP, Building Information Properties, ger effektivare informationsfl¨ ode mellan projekt¨ orer, byggare, installat¨ orer, drift och f¨ orvaltning ge- nom gemensamma beteckningar och egenskapsbeskrivningar.

Ramb¨ oll efterfr˚ agar ett skript som kan anpassa befintliga Type Marks f¨ or samtliga byggdelar i ett projekt efter en lista i Excel-format. Ett skript som byter v¨ ardet p˚ a samtliga Type Mark-parametrar skulle f¨ orutom att spara tid ¨ aven ge m¨ ojlighet att ha b¨ attre kontroll ¨ over vilka parameterv¨ arden som respektive typ har.

Vi har skapat ett skript som erbjuder m¨ ojligheten att snabbt byta ut flera Type Marks i projektet. Indatan med de nya parameterv¨ ardena kan t.ex. l¨ asas in fr˚ an en Excellista. Detta kan t.ex. vara v¨ ardefullt d˚ a flera projekt ska samk¨ oras och namnen ska korrelera mellan de olika byggnaderna.

Skriptet ¨ ar uppdelat i tv˚ a delar:

1. Den f¨ orsta delen samlar in data om vilka typer det aktuella projektet inneh˚ aller samt vilka v¨ arden p˚ a parametern Type Mark dessa har. Informationen skrivs till ett Excel-dokument som best˚ ar av tv˚ a kolumner, en f¨ or Type Name och en f¨ or Type Mark (se figur 28). Detta Excelblad anv¨ ands sedan i skriptets andra del.

Figur 28: Utdrag ur Excelblad genererad av skriptet.

(45)

2. I skriptets andra del fyller anv¨ andaren f¨ orst i de ¨ onskade v¨ ardena p˚ a Type Mark-parametrarna i det genererade Excel-bladet. D˚ a skriptets andra del k¨ ors l¨ ases datan fr˚ an Excelbladet in och de Type Names som angivits matchas mot de typer som finns i det ¨ oppna Revit-projektet. Dessa typer justeras sedan med avseende p˚ a Type Mark i enlighet med Excelbladet.

I figur 28 ses ett utdrag ur Excellistan d¨ ar det bl.a. f¨ orekommer en st˚ alpelare av typ VKR100x100x8. I projektet saknar denna ursprungligen v¨ arde f¨ or Type Mark vilket medf¨ or att rutan i den kolumnen ¨ ar tom. Excellistan fylls sedan i (se figur 30).

Figur 29: St˚alpelaren i projektet.

Figur 30: Ifylld Excellista.

Efter att de ¨ onskade v¨ ardena ¨ ar ifyllda och skriptets andra del k¨ orts har Revit- projektet uppdaterats. I Type Properties-rutan ses nu att v¨ ardet i Type Mark- parametern har ¨ andrats i enlighet med Excellistan (se figur 31).

Figur 31: Type Mark efter att skriptet k¨orts.

(46)

Anv¨ anda noder:

·

Data.ImportExcel

·

List.ContainsItem

(Python-skript)

·

Element.GetParameterValueByName

·

List.UniqueItems

·

List.SortByFunction

·

List.GetItemAtIndex

·

Element.SetParameterByName

4.2.5 Skript f¨ or View Range

I varje vy finns en parameter kallad View Range och en knapp m¨ arkt edit. Om anv¨ andaren klickar p˚ a knappen n˚ as underparametrarna Top, Cut plane, Bottom och View Depth (se figur 32). Dessa styr det betraktningsbara djupet (offset) i den ak- tuella vyn med utg˚ angspunkt fr˚ an ett givet plan. View Range kan st¨ allas in f¨ or varje enskild vy men normalt sett vill Ramb¨ oll ha best¨ amda View Range-v¨ arden f¨ or alla vyer som tillh¨ or en och samma anv¨ andare (S¨ oderman 2018d). Skriptet g¨ or s˚ aledes s˚ a att offset-v¨ ardet kan st¨ allas in p˚ a samtliga anv¨ andarspecifika vyer i projektet p˚ a en g˚ ang.

Figur 32: Revits dialogruta f¨or inst¨allning av View Range.

(47)

Skriptet inleds med att befintliga planvyer (Structural Plans) h¨ amtas ur projektet.

Anv¨ andaren kan hitta sina specifika vyer genom att g¨ ora en filtrerad s¨ okning p˚ a si- na initialer (se figur 33). N¨ ar vyerna valts ut matar anv¨ andaren in sina individuella offset-v¨ arden f¨ or Top, Cut plane, Bottom och View Depth (se figur 34). Tv˚ a noder m¨ arkta “A” och “B” kopplas ihop.

Figur 33: Anv¨andaren kan hitta sina specifika vyer genom att g¨ora en filtrerad s¨okning p˚a sina initialer.

Figur 34: N¨ar vyerna valts ut matar anv¨andaren in sina individuella offset-v¨arden.

D¨ arefter skall skriptet hitta och justera de efterfr˚ agade parametrarna. Detta ¨ ar sv˚ art att ˚ astadkomma med Dynamos noder. F¨ or detta anv¨ ands ist¨ allet ett pythonskript.

Om inmatade v¨ arden medf¨ or att “view depth plane” hamnar ovanf¨ or “bottom clip plane” eller om “top clip plane” hamnar under “cut plane” erh˚ alls automatiskt ett felmeddelande, och v¨ ardena kan justeras.

Anv¨ anda noder:

·

Element.GetParameterValueByName

·

Object.IsNull

·

Set.ViewRange

(Python-skript)

·

If

·

Equal x to y?

(48)

4.2.6 Skript f¨ or Approved

F¨ or att minska risken f¨ or att prelimin¨ ara ritningar skall f¨ orv¨ axlas med slutgiltiga inneh˚ aller ritningsramar i Revit ofta en parameter som heter Approved alternativt Godk¨ and handling (se figur 35). D˚ a Approved-rutan inte ¨ annu ¨ ar f¨ orbockad ¨ ar viss information i ritningsramen ¨ overstruken f¨ or att visa att det r¨ or sig om en prelimin¨ ar handling. F¨ orst n¨ ar ritningen ¨ ar godk¨ and bockas rutan i och ritningen f˚ ar sitt slut- giltiga utseende.

Eftersom Ramb¨ oll hanterar ett stort antal ritningar i varje projekt och m˚ anga ritning- ar i praktiken blir godk¨ anda samtidigt ¨ ar det ett tidskr¨ avande moment att justera denna parameter f¨ or varje enskild ritning (S¨ oderman 2018c).

Figur 35: Parameter f¨or godk¨annande av ritningen i Revits Properties-meny.

V˚ art skriptf¨ orslag g¨ or s˚ a att flertalet (eller samtliga) ritningar i projektet kan godk¨ annas p˚ a samma g˚ ang. Skriptet ¨ ar utformat enligt f¨ oljande:

1. I ett f¨ orsta skede filtrerar anv¨ andaren projektets befintliga ritningar f¨ or att f˚ a ut en lista ¨ over de ritningar som skall godk¨ annas (se figur 36 och 37). Filtrering- en kan t.ex. g¨ oras p˚ a basis av “Sheet name”, “Sheet number” eller “Revision date”. Det ¨ ar ¨ aven m¨ ojligt att g¨ ora sorteringen p˚ a andra parametrar.

Figur 36: Anv¨andaren filtrerar projektets befintliga ritningar f¨or att f˚a ut en lista

¨over vilka ritningar som skall godk¨annas.

(49)

Figur 37: Lista ¨over de ritningar som valts.

2. N¨ asta steg ¨ ar att v¨ alja det exakta namnet p˚ a Approved-parametern samt det v¨ arde man vill att parametern skall ha (yes/no). Eftersom parametern ¨ ar unik f¨ or den specifika ritningsram som anv¨ ands kan namnet skilja sig n˚ agot ˚ at i olika projekt (se figur 38).

Figur 38: I Dynamo v¨aljs parameterns namn och dess v¨arde (True eller False) st¨alls in.

3. N¨ ar ritningarna valts ut och parameterns namn ¨ ar angett kopplas den ge- nererade ritningslistan ihop med en nod som heter

Sheet.Titleblock. Denna

nod h¨ amtar ritningarnas ritningsramar. Det ¨ ar ritningsramen som ¨ ar b¨ arare av godk¨ annande-parametern. Datan matas in i noden

Element.SetParameter- ByName. Denna utf¨

or sedan operationen som byter v¨ arde p˚ a parametern och d¨ armed uppdateras status f¨ or samtliga ritningar som anv¨ andaren valt ut.

Anv¨ anda noder:

·

Element.SetParameterByName

·

Sheet.Titleblock

(Rhythm)

·

String.Contains

(Archilab)

·

Boolean

(50)

4.2.7 Skript f¨ or att styra ordning av kodl¨ asning

Dynamo l¨ aser in de olika noderna, dvs koden, fr˚ an v¨ anster till h¨ oger. Om ett skript inneh˚ aller flera nod-fl¨ oden l¨ aser Dynamo in samtliga fl¨ oden parallellt. I de flesta fall skapar detta inte problem utan kan vara en tillg˚ ang d˚ a samtliga fl¨ oden utf¨ ors obe- roende av varandra. I vissa fall ¨ ar det dock viktigt att kunna styra ordningen som fl¨ odena utf¨ ors (Dynamobim 2014). Det kan till exempel vara i fall d˚ a flera olika ope- rationer skall utf¨ oras p˚ a samma objekt i en given ordning.

Dynamo har ingen inbyggd funktion f¨ or att styra utf¨ orandeordningen, men ett enkelt s¨ att ¨ ar att anv¨ anda en grundl¨ aggande regel f¨ or hur Dynamos noder ¨ ar uppbyggda:

En nod samlar data fr˚ an input-sidan (till v¨ anster), utf¨ or d¨ arefter den nodens spe- cifika operation och levererar resultatet p˚ a output-sidan (till h¨ oger). Operationen utf¨ ors allts˚ a inte f¨ orr¨ an samtliga input-data ¨ ar insamlade. Detta kan utnyttjas ge- nom att anv¨ anda en nod vars kodskript skapar en lista av den inkommande datan (List.Create). Denna nod levererar en lista p˚ a de olika input data som ¨ ar kopplade till noden. I n¨ asta steg kan en nod skapas som ˚ aterigen separerar datan f¨ or att d¨ arefter g˚ a vidare i fl¨ odet. En utf¨ orandeordning har d˚ a skapats (se figur 39).

Figur 39: Genom att skapa en lista v¨antar Dynamo p˚a operation 1 innan operation 2 utf¨ors.

4.2.8 Skript f¨ or modellering

Dynamo kan anv¨ andas f¨ or att skapa nya avancerade geometrier i Revit. I grunden kan geometriska former beskrivas som siffror, relationer och formler inom ett givet koordinatsystem. F¨ or att f¨ orst˚ a uppbyggnaden av former kan f¨ oljande f¨ orenklade hi- erarkiska uppdelning av dess best˚ andsdelar g¨ oras (se figur 40).

1. En punkt definieras av dess koordinater (i x-, y- och z-led) och den ¨ ar dimen- sionsl¨ os, utan utstr¨ ackning i rymden.

2. En linje definieras av tv˚ a punkter (en start- och en slutpunkt), den har s˚ aledes en l¨ angd och tv˚ a m¨ ojliga riktningar. Linjen utg¨ or en endimensionell geometri.

3. Ett plan eller en yta definieras utifr˚ an tv˚ a linjer och utg¨ or en tv˚ adimensionell geometri.

4. En solid (t.ex. en kub) definieras av tv˚ a plan och den utg¨ or en tredimensionell

geometri.

(51)

Figur 40: Geometriers uppbyggnad i Revit.

Ut¨ over enkla linjer finns m¨ ojligheten att skapa mer avancerade kurvor. Kurvorna best˚ ar av en startpunkt, en slutpunkt samt mellanliggande kontrollpunkter (Dyna- mo Primer 2017c).

Modellering i Dynamo ¨ ar inte kopplat till Revits inbyggda elementkategorier, dvs de former som skapas i Dynamo ¨ ar inte f¨ ordefinierade byggelement med givna restrik- tioner. D¨ armed ¨ ar m¨ ojligheterna avseende formskapande n¨ astintill obegr¨ ansade. Att manuellt modellera en form best˚ aende av tusentals komponenter i Revit kan vara tidskr¨ avande. I Dynamo g˚ ar det att skapa komplexa former och manipulera dessa med n˚ agra f˚ a knapptryckningar.

Det modelleringsskript som skapats tj¨ anar som ett enkelt exempel p˚ a Dynamos mo- delleringspotential. Skriptet g˚ ar ut p˚ a att anv¨ andaren snabbt ska kunna skapa en geometriskt komplex yta f¨ or att t.ex. bygga upp ett tak eller en fasad. Anv¨ andaren definierar f¨ orst tv˚ a linjer i den befintliga Revitmodellen mellan vilka denne ¨ onskar skapa ytan. Linjerna beh¨ over inte vara parallella och ej heller lika l˚ anga. Dynamo- skriptet skapar p˚ a basis av de definierade kanterna en plan yta genom en funktion som heter loft. Ytan ¨ overs¨ atts sedan till en upps¨ attning kontrollpunkter med definie- rade koordinater. F¨ or att g˚ a fr˚ an en plan yta till en v¨ alvd (konvex eller konkav) form kopplas punkternas postion i h¨ ojdled till en matematisk funktion vilket f˚ ar punkter- na att f¨ olja en kurva. I detta exempel anv¨ andes en sinusfunktion. Anv¨ andaren kan definiera gradtal, frekvens och amplitud p˚ a kurvan f¨ or att reglera kurvans form (se figur 41). Ytan delas sedan in i rektangul¨ ara sektioner/ett rutm¨ onster i U- och V- led. Som f¨ ortydligande kan s¨ agas att U och V ¨ ar parametriska koordinater som anger punkternas position relativt den givna yta. Punkternas position kan ¨ aven anges en- ligt v¨ arldskoordinatsystemet (utg˚ aende fr˚ an origo) och de heter d˚ a X, Y resp Z.

Sektionerna ¨ ar till f¨ or att de ska kunna fyllas med paneler i den f¨ ardiga modellen.

Antalet sektioner styrs via number sliders (nummer-reglage). I detta skede existerar

ingen fysisk Revit-modell av den skapade ytan, utan ytan tj¨ anar endast som en ab-

strakt referens; en databaserad instruktion som styr formen.

(52)

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

Figur 42: Den adaptiva familjen.

F¨ or att bygga upp den slutgiltiga formen i Revit m˚ aste sektionerna i ytan tillskrivas

en Revit-komponent. F¨ or att ˚ astadkomma detta skapades en adaptiv familj i form

av ett fackverk med en glasyta p˚ a toppen (se figur 42). Det faktum att familjen ¨ ar

adaptiv medf¨ or att dess form anpassar sig efter ytans kurvatur n¨ ar formen ¨ andras (se

figur 43). Det b¨ or inflikas att enheterna som matas in i Dynamo ska vara desamma

som i Revit-filen om ¨ onskat resultat ska kunna uppn˚ as.

(53)

Figur 43: Skriptet applicerat p˚a en exempelmodell. Rendering i Revit.

Anv¨ anda noder:

·

Select Edge

·

Surface.ByLoft

·

Surface.Offset

·

Surface.PointAtParameter

·

Surface.UVParameterAtPoint

·

Geometry.Translate

·

NurbsSurface.ByPoints

·

LunchBox Quad Grid by Face

(LunchBox)

·

AdaptiveComponent.ByPoints

(54)

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 anv¨ ants ¨ ar f¨ oljande:

1. Skript f¨ or insamlande av vyer, t.ex Legends views och Viewtemplates. Python- skript som samlar in en viss typ av element ur Revit-modellen ¨ ar relativt enkla att g¨ ora ¨ aven f¨ or anv¨ andare som inte kan programmera. Samma skript kan ocks˚ a modifieras s˚ a att ¨ onskad vy samlas in. Motsvarande funktioner g˚ ar att finna i f¨ ardiga noder, men dessa finns inte med i Dynamos standardutbud.

Dessutom fanns vissa problem med att k¨ ora noderna i den senaste utg˚ avan av Dynamo. Sammantaget ¨ overv¨ agde f¨ ordelarna med att ist¨ allet anv¨ anda ett pythonskript.

2. Skript som ger feedback p˚ a vad som utf¨ orts genom anv¨ andandet av Revits popup-f¨ onster (Taskdialog). Detta ¨ ar en funktion som inte finns i Dynamos basutbud eller i n˚ agot standard-package.

3. Skript som ger ˚ atkomst till underparametrarna under View Range. Detta ¨ ar ocks˚ a en funktion som saknas i basutbudet.

4. Skript som j¨ amf¨ or tv˚ a listor och ger m¨ ojlighet att sortera ut de objekt som finns med p˚ a b˚ ada listorna. Detta ¨ ar ett ganska vanligt scenario d˚ a en lista med indata skall matchas mot objekt i ett projekt.

Generellt kan s¨ agas att det ofta ¨ ar m¨ ojligt att hitta specialnoder som ger ˚ atkomst till

de funktioner man s¨ oker som inte finns i basutbudet. En anledning att ¨ and˚ a anv¨ anda

ett pythonskript ¨ ar att de kan k¨ oras oberoende av packages och det ¨ ar att f¨ oredra i

de fall Dynamoskriptet ¨ ar t¨ ankt att delas med andra anv¨ andare.

References

Related documents

Till sist, s˚ a ¨ ar slutsatsen att regressionsanalys kan vara ett anv¨ andbart kom- plement till bolagsv¨ ardering, men b¨ or inte anv¨ andas f¨ or att v¨ ardera

Detta g¨aller alla tal vars dyadiska utveckling ¨ar ¨andlig; man beh¨over inte kasta fler kast ¨an vad som anges av den position d¨ar sista ettan finns i utvecklingen.. Det betyder

Till exempel fick jag inte med n˚ agot Ljus- och Optikland i f¨ orsta f¨ ors¨ oket, och pilen mot Kosmologi, som ligger utanf¨ or den h¨ ar kartan, borde peka mer upp˚ at,

[Tips: Faktorisera polyno-

Rutinen som anv¨ands f¨ or att definiera operatorn, kan ha antingen ett eller tv˚ a argument, men eftersom funktionen normalt definieras i samma modul som inneh˚

Detta l˚ ater inte anv¨ andaren direkt lyssna p˚ a musik fr˚ an sin samling utan l˚ ater anv¨ andaren lyssna p˚ a rekommendationer ba- serade p˚ a dennes musiksamling.. Anv¨

Det enklaste t¨ ankbara s¨ attet att h¨ arleda hela kapaciteten skulle vara att anta att alla N atomer i en kristall har samma vibrationsfrekvens, och sedan helt enkelt

Resonemang, inf¨ orda beteck- ningar och utr¨ akningar f˚ ar inte vara s˚ a knapph¨ andigt presenterade att de blir sv˚ ara att f¨ olja.. ¨ Aven endast delvis l¨ osta problem kan