Dynamo; wat is het en wat kan ik er mee?

 

Door: Teun Renders

Tijdens mijn dagelijkse modelleerwerk heb ik wel vaker het Dynamo knopje gezien in Revit maar pas sinds kort ben ik er dieper op in gegaan. Wat is Dynamo en hoe kunnen we dynamo inzetten om werk sneller, beter of makkelijker te maken? Nadat ik me daarin verdiept heb denk ik dat Dynamo de leukste en in potentie de krachtigste toevoeging aan Revit is. Met enkele voorbeelden wil ik jullie enthousiast te maken.

Wat is Dynamo

Dynamo is een open source visuele programmeeromgeving in Revit. Open source wil zeggen dat de broncode vrij is, deze is beschikbaar en aanpasbaar voor iedereen. Visueel programmeren is een vereenvoudigde manier van programmeren, in plaats van het schrijven van code maak je een script met blokken (nodes) en lijntjes om ze te koppelen. Hieronder een eenvoudig voorbeeld.

Dit script maakt een raster van punten, de node Point.ByCoordinates zorgt voor de punten. Deze moet gevoed worden met een lijst met waardes, in dit geval 0 t/m 18, daarvoor staat de Sequence node. Deze heeft 3 cijfers nodig als input, een startnummer (start), een aantal (amount) en een interval (step). De zwarte lijntjes verbinden de elementen en geven de relatie weer tussen de ‘nodes’. Zo hebben we de lijst met getallen bij X en Y ingevuld, waardoor een vierkant raster ontstaat van punten. Dit zie je op de achtergrond.

De ervaring leert dat het soms makkelijker is om te beginnen met het eindresultaat en dan teruguit te denken, vandaar de uitleg van achter naar voren.

Het raster kun je manipuleren door de input van Point.ByCoordinates te wijzigen, door een kortere reeks in te vullen wordt het een rechthoekig raster, zie bovenstaande afbeelding. Voor meer voorbeelden en een goede introductie raad ik de Dynamo primer aan; te vinden op http://dynamoprimer.com/en/. Dit is een gratis cursus waarin de basis uitgelegd wordt.

Waar kun je Dynamo voor gebruiken?

De toepassingen van Dynamo zijn eindeloos. Dit komt doordat het open source is, iedereen kan bijdragen aan de ontwikkeling van de programmatuur. Op internet zijn verschillende sites en fora te vinden over Dynamo, vol met tips en informatie. Sommige sites hebben hun eigen nodes gemaakt en gepubliceerd, deze zijn te downloaden als package. Enkele packages die ik veel heb gebruikt zijn die van archi-lab.net, Clockword for Dynamo 1.x, Lunchbox for Dynamo en Prorubim Dyno.

Het doel van mijn eerste script was om bladnummer en revisie te combineren tot één bladnummer; Bladnummer B01 met revisie A wordt dan B01A. Voorwaarde is dat revisies aangemaakt worden met de Revision functie van Revit.

Om te beginnen hebben we twee parameters van het blad nodig, het bladnummer en de huidige revisie.

  1. Als eerste selecteren we de categorie, deze corresponderen met de categorieën in Revit. (Categories)
  2. Van deze categorie hebben we alle elementen nodig. (All Elements of Category)
  3. Daarna selecteren we de twee parameters met “Element.GetParameterValueByName”. Dit element heeft twee invoeren nodig, ten eerste de sheets (2), en ten tweede de naam van de parameter die weergegeven moet worden (A) en schrijft dan een lijst met de parameters. (Sheet Nr is een project parameter die speciaal voor dit script aangemaakt is) De lijst is te zien in de witte vakken onder de node.

We hebben nu twee lijsten met parameters, deze willen we wegschrijven naar een lijst met daarin de gecombineerde parameter. Dat gaan we in het volgende gedeelte doen;

4. De twee lijsten combineren we met ‘List.Create’. In het witte vak is altijd de bewerking van de node te zien. De twee lijsten komen onder elkaar in twee lijsten, lijst 0 met de sheetnummers en lijst 1 met de revisies.

5. De node ‘List.Transpose’ combineert de waarde 0 van lijst 0 en lijst 1 tot een nieuwe lijst 0 met daarin B01 en A.

6. Met de node ‘String From List’ wordt de lijst van (5) verwerkt naar een nieuwe lijst met daarin de gecombineerde parameter. Deze node komt uit de package van archi-lab.net.

7. De laatste stap is het instellen van de Sheet Number parameter. De invoer van (element) haal ik van stap (2), op deze manier heb ik altijd de goede elementen. Bij (parameterName) geef ik aan welke parameter gewijzigd moet worden, en value verbind ik met de list uit (6).

  1. Met dit script verandert het Sheet Number automatisch wanneer er revisies op de tekeningen worden gezet, super handig natuurlijk. Het script is niet helemaal foutloos, wanneer Dynamo een fout detecteert kleurt de node geel en geeft een foutcode. De fout krijg ik er nog niet uit, misschien kan een van jullie mij helpen.
    Een ander script heb ik geschreven om een in een keer een aantal sheets aan te maken en meteen datum, tekenaar, constructeur, schaal en de goede map aan te passen. Zie onderstaande links:
    Link 1
    Link 2
    Ik hoop is dat een aantal van jullie enthousiast zijn geworden en de potentie ziet die Dynamo biedt. Schroom niet om vragen te stellen, of verbeterpunten te benoemen. Mijn e-mailadres is t.renders@bolwerkweekers.nl of bel op 0493 315 438.
Deel dit

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *