Nu Civil 3D 2025 uitgekomen is, en de daarbij behorende Dynamo v3.0, hebben oplettende gebruikers geconstateerd dat de Formula Node verdwenen is. Deze was in voorgaande versies van Dynamo wel beschikbaar, maar vanaf Dynamo v3.0 niet meer. Eerlijkheidshalve, ik wist dat die node bestond en ik had een vaag idee om er ooit een blog over te schrijven, maar ik heb ‘m nooit gebruikt. Nu de node niet meer bestaat hoeft er eigenlijk niet meer over geschreven worden. Dat ik er nu toch over schrijf, is omdat het eigenlijk wel goed is om even terug te blikken op wat die node deed, en hoe je het vanaf nu zou oplossen (als je fan was van die node natuurlijk).

NCalc Formula Node

De Formula Node was gebaseerd op NCalc, een module voor wiskundige berekeningen. Ik heb het even moeten opzoeken, en ook hoe de node gebruikt zou moeten worden. Want als je in Civil 3D Dynamo 2024 zo’n node plaatst, word je op geen enkele wijze geholpen wat je kunt invoeren. Een beetje fröbelen met ‘2+2’ geeft een resultaat van 4. Maar zodra je ‘a+2’ invoert, krijg je ineens een invoerpoort voor de waarde van ‘a’.

Na wat speuren blijkt er een hele pagina aan gewijd op de Dynamo BIM website. En daar wordt uitgelegd wat je zou kunnen doen, met de focus dat het vele malen overzichtelijker is dan de Math Nodes van Dynamo zelf. Bijvoorbeeld dit:

kun je met een Formula Node schrijven als:

Als je nu goed oplet op het resultaat, zie je dat het resultaat niet gelijk is. Dat klopt, na heel wat puzzelen en rekenen blijkt dat de Formula Node werkt met Radians en de Math Nodes met Degrees. Dus… gelukkig checkt iedereen die met Dynamo werkt, altijd het resultaat en controleert of de output klopt, toch?

Code Block

Ik heb de Formula Nodes nooit gebruikt, want ik had de Code Block Node al eerder ontdekt. En daarmee kun je net zoveel, zonder de vervelende omrekening van Degrees naar Radians, of terug.

Dit levert hetzelfde resultaat op.

Dat de Formula Node vanaf nu dus niet meer beschikbaar is, geeft me nu een goede reden om er alsnog even over te schrijven. En feitelijk lijkt het me de beste beslissing ooit, omdat deze Formula Node heel andere resultaten geeft dan de Math Nodes of een Code Block.

Formules definiëren in een Code Block

In een Code Block kun je zelfs nog meer. Je kunt ook eigen functies definiëren die je dan kunt hergebruiken op andere plekken. Dat doe je met DesignScript, de taal waarin je werkt in een Code Block.

De volgende code:

def MijnBerekening(x, a)
{
  return Math.Sin(x) + Math.Cos(x * a);
};

in een Code Block definieert een nieuwe functie. Deze kun je vervolgens in alle andere Code Blocks toepassen met de benodigde waarden. En zo maak je in een handomdraai je eigen wiskundige formules, als ze nog niet al bestaan in Dynamo.

Wil je complexe of repetitieve taken automatiseren in Civil 3D? Dit boek helpt je alles te leren over de design automating tool Dynamo voor Civil 3D. Je wordt een professional in visueel programmeren, en binnenkort zijn al je saaie of complexe taken geautomatiseerd!

This book is only available in English.