Pagina's op IkLeerBIM

vrijdag 30 juni 2017

Automatiseren met Dynamo

De laatste tijd zijn we ons bij RoosRos architecten meer en meer in Dynamo aan het verdiepen.
Behalve dat het gewoon erg leuk is, kan Dynamo ook erg behulpzaam zijn om arbeidsintensieve en eenvoudige taken in Revit te automatiseren. Hoe dommer hoe beter zou je kunnen zeggen.

Hieronder een voorbeeld van hoe ik en mijn collega Pieter Schipper onderdelen uit het proces om tot verkooptekeningen te komen, hebben geautomatiseerd. Natuurlijk zijn er altijd de laatste puntjes die je even na moet lopen, maar een groot deel automatiseren geeft een goed gevoel.

 

Zonder alle 5 scripts helemaal uit te spitten per script toch een paar "wistjedatjes".

01 Area from Room
Het koste best wat moeite om de Rooms samen te voegen tot 1 contour en de binnenste lijnen te verwijderen. Ik was prettig verrast dat native Dynamo Nodes in staat waren uit zichzelf Room Boundaries op basis van de Wall Centre Line aan te leveren. En deze lijnen ook nog op te splitsen als er een andere wand op aan sloot. Daarnaast bleek het opschonen van de inwendige lijnen het meest soepel te lopen door van alle Curves een String te maken en deze met elkaar te vergelijken. Ik had niet gedacht dat Dynamo sneller met een String om kon gaan dan met harde geometrie. Maar het werkt.
Wensen voor verbetering zijn er natuurlijk ook. Want de contour van het gebouw klopt natuurlijk om meerdere redenen niet. En ik heb ook weinig moeite gedaan voor een mooie plaatsing van de Area zelf. Uiteindelijk was een correcte Area voor dit proces niet het belangrijkste aangezien ik het vooral wil gebruiken om per woning een View Crop met offset te maken.

02 Area to View on Sheet
Bij het maken kwam ik erachter dat de onzichtbare binding van door Dynamo gemaakte Revit elementen erg lastig is als je er niet op verdacht bent. Dynamo verwijderd doodleuk zaken die bij de vorige keer gemaakt zijn. Gelukkig zijn er oplossingen: Custom Nodes die niet binden, Dynamo afsluiten zonder op te slaan, Dynamo Primer gebruiken, of de Bake Node van Beaker.
Het uitlijnen van een View op een Sheet vraagt wat rekenwerk maar het kan.
En ik weet nu ook dat als je een Revit Boolean Parameter wilt wijzigen je een 0 of een 1 gebruikt.
Mijn collega Pieter Schipper heeft zelf een mooi stukje Python script samengesteld om de Annotation Crop in te regelen.
Verder zat er een rare bug in die Views hoger dan de Sheet hoogte niet wilde plaatsen. Dan de Sheet eerst maar hoger maken en later weer terug. Als het niet kan zoals het moet, dan moet het maar zoals het kan!
Wensen voor verbetering zijn er ook. Ik heb niet heel veel extra energie gestopt in de naamgeving van de nieuw aangemaakte Views en Sheets. Maar het is allemaal uniek en je kan het in Revit zo recht zetten waar nodig.

03 Ruimtemaatvoering plaatsen
Dit was best een zoektocht om een acceptabele oplossing te vinden. Maatvoering voor verkooptekeningen zijn doorgaans iets kleiner dan wat de aannemer gaat maken. Dat is met reden, want in de bouw kunnen afwijkingen optreden en iedereen krijgt liever meer dan minder huis. Toch?
Het punt is alleen dat alle tekenpakketten exact zijn en voor zover ik weet, is Revit niet in staat om Dimensions naar beneden af te ronden op een zelfgekozen manier. Ook zijn onderdelen in een Multi Segment Dimension slecht aan te roepen in Dynamo. En tenslotte is het uiterlijk van een Dimension ook niet helemaal zoals wij dat graag zagen. Een Detail Item bleek hier de oplossing.
Voor de plaatsing hebben mijn collega Pieter Schipper en ik enkele getrapte mogelijkheden ingebouwd. Op die manier ontstaat er een mooi leesbaar resultaat.
Verbeteringen zijn ook hier. De laatste update van de Package Data-Shapes (die de UI Nodes heeft gemaakt) heeft de mogelijkheid om voorkeur keuzes aan een lijst toe te voegen. En eigenlijk zou je ook nog moeten kunnen filteren op ruimtegrootte.

04 Ruimtemaatvoering update
Hier wordt ik pas echt enthousiast! Geweldig hoe Dynamo in staat is om een RayBounce te maken. Ook hier was de Data-Shapes Package onmisbaar. Hierdoor konden we de RayBounce ook laten reageren op Linked Models, wat natuurlijk standaard is.
Het doorgeven van waardes aan gedraaide en gespiegelde Detail Items was even puzzelen (vector nachtmerrie ;-) Maar het is gelukt.
Verbeteringen hier: Tja. Als een RayBounce tegen een Window aankomt, kunnen we die gevonden waarde dan niet corrigeren naar de Wall waar de Window in zit? Gaat wel erg ver denk ik... En je moet toch ook blijven nadenken.

05 Print PDF
Yes. Eindelijk een betere manier om te kunnen printen. Niet alleen het selecteren van de te printen Sheets, maar ook het printen zonder elke keer het formaat op te moeten geven als die wijzigt. Door het formaat van de Sheet te koppelen aan een Printersetting loopt het allemaal heel soepel. En naamgeving van PDF bestanden kan op veel manieren en leek niet ons grootste probleem.
We hebben hier ook echt gebruik moeten maken van de Archi-Lab_Grimshaw package. Helaas moesten we nog wel flink op internet op zoek, om de laatste aanscherpingen aan zijn Python script te doen, om het echt werkend te krijgen. Maar het is gelukt.
Ook hier heeft mijn collega Pieter Schipper intensief meegeholpen om met name het selectie gedeelte en de UI in te regelen.
Verbeteringen hier: We zouden meer werk kunnen maken om de pdf bestanden op de juiste plek en met de juiste naam op te slaan. En in elk project zitten wel een paar uitzonderingen die op een bijzondere manier geprint moeten worden. Daarom zouden we graag alle printersettings die in een project zitten in 1 lijst te kunnen inlezen, om deze te kunnen gebruiken in Dynamo.

Populaire berichten

Zoeken in deze blog