Slimme ingenieurs zijn al jaren bezig met parametrisch ontwerpen. Ze maken prachtige ontwerpen met Grasshopper of Dynamo en sturen de modellen naar rekensoftware voor analyses. Maar hoe worden parametrisch opgezette constructiemodellen aan rekensoftware gekoppeld? In dit artikel wordt een beeld geschetst.
26
thema
Parametrisch
model gekoppeld
aan reken-
programma
Slimme ingenieurs zijn al jaren bezig met parametrisch
ontwerpen. Ze maken prachtige ontwerpen met Grasshop
per of Dynamo en sturen de modellen naar rekensoftware
voor analyses. Maar hoe worden parametrisch opgezette
constructiemodellen aan rekensoftware gekoppeld?
In dit artikel wordt een beeld geschetst. Een techniek die helpt bij het visualiseren van data, is het zoge-
noemde visueel programmeren. Het verschil met gewoon
programmeren is dat er niet alleen naar computercode wordt
gekeken, maar dat die code ook direct een visuele representatie
heeft. Deze manier van programmeren is mogelijk met software
als Dynamo of Grasshopper. Daarin kunnen geometrieën, belas-
tingen en randvoorwaarden als parametrisch script worden
opgezet. Door de data te visualiseren, is meteen te zien of het
script goed werkt. En door een koppeling te maken met een
rekenpakket kan een constructieberekening worden uitgevoerd
zonder dat de constructeur nog handmatig data moet toevoegen.
Voor de meeste constructeurs is het maken van zo'n script,
dankzij een goed getraind analytisch denkvermogen, een prima
aan te leren vaardigheid. Een vliegende start is mogelijk door
gebruik te maken van de primers van Grasshopper en Dynamo.
Een primer is de door de ontwikkelaars aangehouden bena-
ming voor de handleiding. Beide programma's hebben een
duidelijke userinterface en wijzen zich daardoor bovendien
bijna vanzelf. Hierdoor kan vrij snel een eerste geometrie als
parametrisch model worden opgezet.
Parametrisch model koppelen aan rekensoftware
Met het opzetten van een parametrisch constructiemodel
is het constructief ontwerpproces nog niet klaar. Voor een bere-
Voorbeeld van koppeling tussen Dynamo en RFEM
Parametrisch ontwerpen bestaat als techniek al vele jaren en er
zijn veel vormen van parametrisch ontwerpen mogelijk. Het
ontwerpen van constructieonderdelen met zelfgemaakte Excel -
bladen kan ook worden gezien als een manier van parametrisch
ontwerpen. Daarbij zijn via de Visual Basic-editor in Excel op
eenvoudige wijze scripts te maken om data te genereren en uit
te wisselen met andere programma's. Alleen herkennen we dat
mogelijk niet als parametrisch ontwerpen, omdat er in ieder
geval twee dingen aan ontbreken. Ten eerste is in Excel een
directe visuele presentatie van data, zoals geometrie en schema-
tisatie, niet zomaar mogelijk. Ten tweede wordt een koppeling
tussen Excel en een rekenpakket niet standaard meegeleverd. Je
zult die zelf moeten maken om echt serieuze (EEM-)berekenin-
gen uit te kunnen voeren.
thema
Parametrisch model gekoppeld aan rekenprogramma
6 2018
27
paramedisch modelrekenmodel aanmaken
rekenmodel
BIM model
BIM model sturen naar...
snelle uitwisseling van gegevens
parametrisch ontwerpen
leerd als Structural Analysis for Dynamo. Deze plug-in koppelt
Dynamo aan rekenpakket Robot, dat ook een programma is
van Autodesk.
Het grootste voordeel van een kant-en-klare plug-in is dat er
geen programmeerkennis nodig is om de koppeling te maken.
De nadelen zijn onder andere dat het onmogelijk is zelf wijzi-
gingen te maken aan de functionaliteit van de plug-in, dat er
een afhankelijkheid is van de ontwikkelaar en dat er mogelijk
geen beschikbare plug-in is voor het programma waarmee
wordt gewerkt.
Tijdens een recent onderzoek bij Arcadis naar de mogelijkheden
van andere rekenpakketten, bleek dat er bij de standaard
gebruikte programma's (Dynamo en rekenpakket SCIA Engi-
neer) nog geen directe koppeling bestaat en dat het ook niet
gemakkelijk is deze op te zetten tussen die programma's. Om het
zelf op te zetten, moet een rekenpakket namelijk de beschikking
hebben over een API. Daarmee heeft een programma de moge-
lijkheid data direct door te geven aan andere applicaties. Een
workflow met een wisselbestand tussen Dynamo en SCIA Engi-
neer is overigens wel mogelijk, maar leidt door eerdergenoemde
redenen niet tot de gewenste workflow.
In het onderzoek was er interesse in rekenprogramma's RFEM
(vanwege de gebruiksvriendelijkheid en de beschikbare API) en
Robot (omdat hiervoor een directe koppeling al beschikbaar is
zonder dit zelf te programmeren). Om een gevoel te krijgen
van de benodigde investering voor het maken van een koppe-
ling, werd er gekozen een koppeling met RFEM op te zetten.
De meeste modelgegevens van RFEM zijn uitwisselbaar via de
API en er is veel documentatie beschikbaar over hoe de uitwis-
seling is te realiseren. Omdat Dynamo ook bruikbaar is in
combinatie met Revit, werd besloten de koppeling te maken
tussen Dynamo en RFEM.
ir. Michael van Telgen
Arcadis, Structural Design & Engineering
1
Mogelijke koppelingen met rekenpakket
kening is het nodig het model naar het rekenprogramma te
sturen. Een dergelijke koppeling wordt niet 'standaard' meege-
leverd. Daarvoor zijn te veel verschillende programma's op de
markt. Omdat het toch wenselijk is een constructief rekenmo-
del aan te maken op basis van het parametrische model, zijn
hier enkele opties voor: indirecte en directe koppelingen.
Indirecte koppeling
Een Dynamo-model is via Revit naar een rekenpakket te
sturen, zie hiervoor de rode route in figuur 1. Voor de koppe-
ling tussen Revit en een rekenpakket zijn er al plug-ins,
bijvoorbeeld CADS voor Scia Engineer. RFEM heeft een
koppeling beschikbaar in het pakket zelf. Een tussenstap blijkt
wel vertragend en omslachtig te werken en sommige data
gaan verloren tijdens het overzetten van het model. Boven-
dien is het terughalen van gegevens uit Revit naar Dynamo
niet mogelijk. Data terugschrijven van het rekenpakket naar
Revit gaat vaak nog wel, maar heeft een beperkte waarde in de
constructieve analyse-workflow. Hierdoor beperkt deze
mogelijkheid zich effectief tot éénrichtingsverkeer.
Op dezelfde manier kan een wisselbestand worden ingezet.
Dit is niet getoond in figuur 1, maar volgt ook de rode route
met in plaats van Revit het wisselbestand.
Directe koppeling
Grasshopper en Dynamo zijn ook direct te koppelen aan een
rekenpakket, zie de groene route in figuur 1. Bij deze directe
koppeling kunnen constructies met de hoogste snelheid en
mate van kwaliteit worden beoordeeld, omdat er geen snel-
heid en data verloren gaan door een tussenstap te maken.
Ook is het mogelijk om zo een gevoel te krijgen voor het
ontwerp door eindeloos simulaties te draaien en te kijken wat
er gebeurt. Het is niet per se nodig de resultaten te bekijken in
het rekenpakket, omdat de resultaten ook zijn terug te halen
naar Dynamo of Grasshopper. Deze vorm van tweerichtings-
verkeer van data maakt daarbij ook de weg vrij voor geauto-
matiseerde ontwerpoptimalisaties.
Dynamo kent overigens ook een standalone-versie (Dynamo
Sandbox) die gratis beschikbaar is en verder niet leunt op de
functionaliteiten van Revit. Grasshopper is alleen bruikbaar
in combinatie met Rhino en hiervoor is een betaalde licentie
nodig.
Vergelijking van rekenpakketten
Om een directe koppeling te krijgen, is het nodig in Gras-
shopper of Dynamo een plug-in te hebben die het parametri-
sche model naar het rekenpakket stuurt. Voor Grasshopper
zijn er onder andere de tools van GeometryGym die dit
kunnen. In Dynamo kunnen ook packages worden geïnstal-
1
Parametrisch model gekoppeld aan rekenprogramma6 2018
282
De tool is zichtbaar bij het
opstarten van Dynamo
in te pluggen door het verbinden van de draden in Dynamo.
Dit project kan het beste worden opgezet als Zero Touch Node-
project. Een Zero Touch Node is een type Dynamo-node waar
alle standaardfunctionaliteiten al in zitten die Dynamo-nodes
nodig hebben om überhaupt te functioneren. Doordat de stan-
daardfunctionaliteiten erin zitten, kan de programmeur zich
focussen op de handelingen die moeten worden verricht in die
node. Matteo Cominetti heeft een goede tutorial voor het
opzetten van een Zero Touch Node-project geschreven [1].
Andere hulpbronnen voor ontwikkelaars kunnen natuurlijk
ook worden gebruikt [2].
Om de koppeling met RFEM te maken, is het nodig dat het
script weet welke commando's er beschikbaar zijn in RFEM.
Hiervoor is een soort bibliotheek nodig die in het Visual
Studio-project moet worden geladen. Dat gebeurt door een
extra 'reference' in te voegen, namelijk een referentie naar de
'Dlubal.RFEM5.dll' library. Hierdoor zijn de functionaliteiten
van RFEM benaderbaar via de programmacode. In de docu-
mentatie van de RFEM SDK [3] is uitgebreid beschreven hoe
gestart kan worden met programmeren voor RFEM. Ook zijn
daar veel voorbeelden in opgenomen.
Voorbeeld: exporteer een lijn
Op Cementonline.nl staat bij dit artikel de programmacode van
een voorbeeldscript van het naar RFEM schrijven van in Dynamo
gegenereerde lijnen (Zie het kader 'Downloaden voorbeeld
package'). Dit script wordt in de Dynamo-package weergegeven
als een Dynamo Node. Hiervoor gaan we uit van een eenvoudig
Dynamo-model dat bestaat uit lijnen en knopen (fig. 2).
Belangrijke aandachtspunten zijn:
1 Een verbinding tussen RFEM en Dynamo moet eerst worden
gemaakt. RFEM begrijpt dan dat er via een ander programma
instructies binnenkomen die moeten worden verwerkt. Om
vervelende misstappen te voorkomen, wordt RFEM voor de
gebruiker tijdelijk geblokkeerd. Dan kan niet per ongeluk een
handeling in het programma worden verricht waardoor het
script niet goed loopt. In de RFEM-handleiding is beschreven
hoe het leggen van de verbinding werkt.
2 Er moet een variabele worden aangemaakt van het type
'RFEM-knoop' en 'RFEM-lijn'. Deze variabelen zijn een soort
doosjes waarin data van een bepaald type kunnen worden
opgeslagen. Door hierin de knoopcoördinaat en lijngegevens
op te slaan, kan RFEM respectievelijk de knoop en de lijn
tekenen, omdat het programma begrijpt dat het om gegevens
van dat type gaat.
3 Dan begint de loop waarin eerst het beginpunt en eindpunt
van de lijn worden bepaald. De eigenschappen van de punten
Koppeling maken
Wanneer de gewenste combinatie van visueel programmeer -
programma en rekenpakket er nog niet is, kan ervoor worden
gekozen een plug-in te ontwikkelen. De plug-in is feitelijk een
computerprogramma en kan worden gemaakt in een program-
meeromgeving. Hiervoor is Microsoft Visual Studio een uitste-
kende keuze en hier is ook een gratis versie van. De API van
RFEM kan met de programmeertalen C# of Visual Basic
overweg. Het heeft de voorkeur de plug-in te maken in C#,
omdat deze taal ook wordt gebruikt voor packages in Dynamo.
Voor de ontwikkelaar zelf is het noodzakelijk op enig niveau te
kunnen programmeren. Dat wil echter niet zeggen dat een
formele opleiding nodig is, omdat iedereen met voldoende tijd
en doorzettingsvermogen het kan. Of het is aan te raden hier
als constructeur in te duiken, hangt af van de hoeveelheid
beschikbare tijd en interesse vanuit de persoon.
In dit voorbeeld is het het doel een Dynamo-package te maken.
Wie eerder met Dynamo heeft gewerkt, weet dat de blokjes die
op het werkveld worden toegevoegd ook wel nodes worden
genoemd. De functionaliteiten van de koppeling, in het onder -
staande geval is dat het exporteren van geometrie, worden aan
een zelfgemaakte node toegevoegd. De node heeft dan als input
de geometrie van Dynamo nodig. Deze moet dan in de node zijn
Terminologie
Application Program
ming Interface (API)
Communicatiepoort
waarmee een computer -
programma kan commu-
niceren met een ander
programma
loop
Serie herhalingen in de
programmacode waarin
hetzelfde gebeurt maar
voor een ander element
in de serie
nodes (Dynamo) /
components (Grass
hopper)
Objecten waarin model-
bewerkingen plaatsvin-
den. Deze objecten zijn
aan elkaar te koppelen packages
Toevoegingen op
Dynamo (feitelijk ook
plug-ins) die te down-
loaden zijn via het
programma zelf
plugin
Een stuk software wat
samen werkt met een
bepaald programma om
bepaalde functionalitei-
ten mogelijk te maken
primers
Handleidingen om te
starten met Grasshopper
en Dynamo
script
Set instructies voor een
programma om tot een
resultaat te komen,
bijvoorbeeld een
constructief ontwerpuserinterface (UI)
Datgene wat de gebrui-
ker ziet van de tool. De
programmacode is
meestal niet zichtbaar
Zero Touch Node
Een type node met alle
standaardfunctionalitei-
ten die Dynamo-nodes
nodig hebben om te
functioneren, zodat
deze niet door de
gebruiker zelf hoeven te
worden gemaakt. De
functionaliteit die de
node wordt gewenst uit
te voeren, kan de
programmeur hierin
programmeren
Voor meer begrippen zie
begrippenlijst in artikel
thema
Parametrisch model gekoppeld aan rekenprogramma
6 2018
29
worden toegekend in de loop, bijvoorbeeld dat het om een poly-
lijn type gaat. Door op de juiste manier oplopend te nummeren,
komt de knoopnummering voor de lijnstukken goed uit in
RFEM. Daarna wordt de lijn weggeschreven naar RFEM,
doordat de eigenschappen van de lijn in de variabele van het type
RFEM-line wordt gestopt en aan het programma wordt verteld
dat deze lijn moet worden overgenomen in het model.
4 Tot slot moet de bewerking van het RFEM-model worden afge-
sloten. Het model wordt vervolgens vrijgegeven aan de gebrui-
ker, zodat er mee verder kan worden gewerkt.
In dit script is een simpele overdracht van lijnen mogelijk. Om
het script flexibeler te maken, kan worden overwogen bijvoor -
beeld modellen opnieuw aan te maken of te overschrijven, want
nu moet, tussen het exporteren vanuit Dynamo door, steeds het
RFEM-model worden geleegd. Andere mogelijkheden zijn er
natuurlijk ook, zoals het los exporteren van de knopen, of het
overbrengen van lijnelementen of vlakken. Alles wat in de API-
interface beschikbaar is van RFEM kan worden aangeroepen via
de programmacode. Omdat de interface vrij compleet is, is bijna
alles wel aan te sturen vanuit Dynamo.
Hoe nu verder?
Met dit artikel is getoond hoe een koppeling tussen een visuele
programmeertool en een rekenprogramma kan worden opgezet.
De vraag of we nu allemaal dit soort projecten moeten gaan opzet-
ten, blijft echter nog over. Mijn antwoord zou 'nee' zijn. Dit is
slechts een Proof of Concept en door duidelijk te laten zien dat het
maken van de koppeling mogelijk is, kan de kracht uit zowel
Dynamo als het rekenpakket optimaal worden benut.
? ?
REFERENTIES
1
Zero touch nodes (Dynamo unchained): http://teocomi.com/dynamo-
unchained-1-learn-how-to-develop-zero-touch-nodes-in-csharp/
2
Hulpbronnen voor Dynamo package ontwikkeling: http://developer.
dynamobim.org/
3
RF-COM (RFEM API interface): https://www.dlubal.com/en/products/
rfem-and-rstab-add-on-modules/others/rf-com
Downloaden voorbeeld package
Op Cementonline staat de programmacode van een voor -
beeldscript van het naar RFEM schrijven van in Dynamo gege -
nereerde lijnen. Ook is de package met de lijn-export-node uit het voorbeeld te
downloaden op www.cementonline.nl. Om dit uit te proberen, moet de inhoud
naar de package-map van Dynamo worden geschreven. Dit is meestal de map:
'C:\Users\"gebruikersnaam"\AppData\Roaming\Dynamo\Dynamo Core\2.1\
packages', waarbij de gebruikersnaam varieert per gebruiker. De benaming
'Users' kan ook in het Nederlands zijn, afhankelijk van de taal van de Windows-
installatie. De Dynamo-versie bepaalt het getal onder 2.1. Voor het gebruiken
van deze package is minimaal Dynamo versie 2.1 nodig en RFEM 5.12 of
nieuwer. Het kan nodig zijn administratieve rechten toe te kennen aan
programma's en het bestand Dlubal.RFEM5.dll moet wellicht worden gedeblok -
keerd door er rechts op te klikken en 'eigenschappen' te kiezen. Dat bestand
staat in de map van de Cement Package. Bij het opstarten van Dynamo moet vervolgens de tool beschikbaar zijn
in het menu, zoals is te zien in figuur
2. De tool wordt enkel beschikbaar
gesteld voor demonstratiedoel-
einden.
2
Parametrisch model gekoppeld aan rekenprogramma6 2018
Parametrisch ontwerpen bestaat als techniek al vele jaren en er zijn veel vormen van parametrisch ontwerpen mogelijk. Het ontwerpen van constructieonderdelen met zelfgemaakte Excelbladen kan ook worden gezien als een manier van parametrisch ontwerpen. Daarbij zijn via de Visual Basic-editor in Excel op eenvoudige wijze scripts te maken om data te genereren en uit te wisselen met andere programma’s. Alleen herkennen we dat mogelijk niet als parametrisch ontwerpen, omdat er in ieder geval twee dingen aan ontbreken. Ten eerste is in Excel een directe visuele presentatie van data, zoals geometrie en schematisatie, niet zomaar mogelijk. Ten tweede wordt een koppeling tussen Excel en een rekenpakket niet standaard meegeleverd. Je zult die zelf moeten maken om echt serieuze (EEM-)berekeningen uit te kunnen voeren.
Een techniek die helpt bij het visualiseren van data, is het zogenoemde visueel programmeren. Het verschil met gewoon programmeren is dat er niet alleen naar computercode wordt gekeken, maar dat die code ook direct een visuele representatie heeft. Deze manier van programmeren is mogelijk met software als Dynamo of Grasshopper. Daarin kunnen geometrieën, belastingen en randvoorwaarden als parametrisch script worden opgezet. Door de data te visualiseren, is meteen te zien of het script goed werkt. En door een koppeling te maken met een rekenpakket kan een constructieberekening worden uitgevoerd zonder dat de constructeur nog handmatig data moet toevoegen.
Voor de meeste constructeurs is het maken van zo’n script, dankzij een goed getraind analytisch denkvermogen, een prima aan te leren vaardigheid. Een vliegende start is mogelijk door gebruik te maken van de primers van Grasshopper en Dynamo. Een primer is de door de ontwikkelaars aangehouden benaming voor de handleiding. Beide programma’s hebben een duidelijke userinterface en wijzen zich daardoor bovendien bijna vanzelf. Hierdoor kan vrij snel een eerste geometrie als parametrisch model worden opgezet.
Reacties