Ja, je leest het goed: Dynamo voor AutoCAD in plaats van Revit of Civil 3D. Het was fantastisch geweest als Autodesk zelf Dynamo beschikbaar had gesteld voor AutoCAD, maar gelukkig zijn er meer wegen die naar Rome leiden. Zo ben ik de afgelopen tijd tussendoor bezig geweest om te kijken of ik Dynamo aan de praat kon krijgen in een AutoCAD omgeving.

Wie regelmatig op Tweakers komt, leest af en toe ook verhalen zoals programmeurs die het spel Doom op een tandenborstel weten te porten. Ja serieus, een tandenborstel! Wel eentje met een display natuurlijk. Veel programmeurs doen in hun vrije tijd dingen die niet persé nuttig zijn maar wel leuk. Nu probeerde ik iets uit wat absoluut leuk is en misschien zelfs nuttig! Het heeft wel wat vrije tijd gekost maar ik heb Dynamo in AutoCAD weten te activeren. En het bleek achteraf nog niet eens zo heel ingewikkeld ook.

Zoals je kunt zien draait Dynamo keurig binnen AutoCAD 2026.

De stap ernaar toe

Al lange tijd speelde het idee om Dynamo in AutoCAD te krijgen, rond in mijn hoofd. Dynamo is gewoon een fantastische applicatie, en het zou absoluut een meerwaarde zijn als deze functionaliteit in AutoCAD beschikbaar komt. Maar het is niet eenvoudig om van scratch een implementatie te doen. De Dynamo Core is beschikbaar als Sandbox omgeving maar hoe krijg je deze gekoppeld aan de actieve tekening in AutoCAD als host? De broncode van Dynamo for Civil 3D is niet beschikbaar dus ik kon ook niet kijken hoe Autodesk dit deed. Dus het idee verdween wat op de achtergrond, tot Jacob Small me een tip gaf om eens te kijken naar Dynamo for Advance Steel. Hiervan is de code publiek beschikbaar. Jacob is één van de meest onderlegde technische Autodesk’ers die zo goed als alles weet wat er rondom Dynamo te weten valt. Een echte Dynamo-saur dus.

Vol goede moed ben ik begonnen met dit project. De meest tijd heb ik gebruikt om de broncode te snappen. Wat doet elke stap, voor welke onderdelen is er code en hoe werkt dit samen. Zo bevat de Solution meerdere Projects, namelijk voor de applicatie zelf als voor de Nodes en de UI Nodes, en dan nog een paar hulp-projecten. Veel functionaliteit zit gewoon prima in elkaar maar het is toch altijd even puzzelen als je andermans code moet doorspitten. En soms snap je de code wel maar is de werking niet zoals verwacht, maar daarover verderop meer.

Code ombouwen

Om te beginnen had ik niet alleen de code nodig voor Dynamo for Advance Steel, maar ook de runtime van de Dynamo Core. Deze zijn gelukkig ook publiek beschikbaar. Maar sufneus die ik ben, op dit moment (februari 2026) is AutoCAD 2026 de meest recente versie en die ondersteunt alleen .NET 8 terwijl de meest recente versie v4 van Dynamo Core op .NET 10 is gebaseerd. Dus al vrij snel kwam ik erachter dat ik een oudere versie van Dynamo Core moest gebruiken.

Daarna ben ik begonnen met een Search and Rename, waarbij alle verwijzingen naar Advance Steel werden vervangen door een verwijzing naar AutoCAD. Verder zijn alle verwijzingen naar libraries en applicatiepaden aangepast, configuatiebestanden doorgenomen en veranderd, en overbodige Projects verwijderd. Daarna heb ik een opschoonronde gedaan door de meegeleverde Nodes, want die waren gebaseerd op Advance Steel functionaliteit. Er was niets specifiek voor AutoCAD beschikbaar, dus als test heb ik een Node toegevoegd om een Point te plaatsen in de tekening. Van de UI Nodes heb ik de twee Nodes intact gelaten, eentje die een locatie in de tekening opvraagt en een ander die een selectie maakt van objecten.

Langzamerhand kom je op het punt waarop je denkt dat het gaat werken! Totdat je bij een testronde waarbij AutoCAD daadwerkelijk start en je de applicatie gaat laden, een MissingManifestResourceException foutmelding krijgt. Na wat zoekwerk blijkt dit te maken te hebben met het bouwen van localized applicaties. Maar wat dan de relatie is met AutoCAD? Dat was niet makkelijk te achterhalen, tot één bericht op het AutoCAD forum me een hint gaf. Als je bij het registreren van een nieuw AutoCAD Command de Localized Command Name parameter niet toepast dan zou dit probleem niet moeten voorkomen (of anders localized resources maken natuurlijk). En ja, toen kon ik weer verder.

Kromme code

Soms kom je code tegen die je wel snapt maar die niet werkt. Zo bleek de applicatie vast te lopen op een niet te vinden Library. De code moest namelijk Dynamo Core Geometry Libraries laden, maar die staan in een sub-map met een versienummer. Dit is in de gebruikte Dynamo Core versie 231.0 en dus niet vergelijkbaar met de AutoCAD versie, ook niet de interne 25.1 of iets dergelijks. Daarom zocht de code in de applicatiefolder van AutoCAD naar een bestand met de naam ASMAHL*.dll die dezelfde versie hanteerde, om op basis daarvan door te kunnen zoeken naar de juiste Libraries. Of het toeval is dat beide dezelfde versie hebben of dat het een work-around is die werkt zolang het werkt, dat is me nog niet duidelijk. Wat wel een probleem was, is dat dit bestand sinds AutoCAD 2026 niet meer in de applicatiefolder meegeleverd wordt maar in een of andere gebruikersmap op een hele andere plek. En laat AutoCAD 2026 nu net de versie zijn waarop ik dit probeerde te activeren! Had ik maar getest met AutoCAD 2025…

Maar goed, op zich is het voor een test prima aan te pakken door even de versie hard-coded mee te geven, of een andere folder als zoek-basis in te stellen of een andere Library te vinden die deze versie bevat. Op meerdere plekken zijn hard-coded verwijzingen ingesteld dus waarom voor deze zo’n bijzondere constructie? Toen dat alles gedaan was, werkte het en startte Dynamo keurig op binnen AutoCAD!

Dynamo for AutoCAD

De UI Nodes werden direct gevonden en in de Node Library getoond. Ook het selecteren van een locatie in de actieve tekening werkt prima. Het gekke is dat ik in tegenstelling tot Dynamo for Civil 3D gewoon van tekening kan wisselen, maar daar moet ik denk ik zelf nog onderscheppings-code voor schrijven (of Nodes voorbereiden op een eventuele tekening-wisseling).

De Node om een punt te plaatsen in de tekening staat niet in de Node Library maar kan wel worden gevonden via de rechter muisknop. Ik weet waar dit aan ligt en is eenvoudig aan te passen maar voor een Proof of Concept vond ik het mooi genoeg zo.

De Node lijkt te werken maar plaatst helaas nog geen object in de tekening. Maar nu ik zover ben, denk ik dat ik dat laatste stukje ook wel rond krijg.

En nu verder

Het is een POC, dus voor mij was het belangrijk om te zien of het zou slagen. Maar ga ik ermee verder?

Ik denk het niet. Het kost ongelofelijk veel tijd om dit project te verbeteren, want alle AutoCAD Nodes moeten nog worden geschreven. Ik zou dan bij voorkeur opnieuw beginnen van scratch, nu ik eenmaal weet hoe het werkt. Ook is er geen Dynamo Player, wat een project op zichzelf is. Daarnaast zal het werk voor AutoCAD 2027 opnieuw gedaan moeten worden met de Dynamo Core v4.0 want die ondersteunen beiden .NET 10. En ga ik dan Dynamo for AutoCAD maken voor alleen 2027 of ook eerdere versies? Die dan ook nog eens compatible (voor zover mogelijk) moeten zijn met Dynamo for Civil 3D? Voor een hobbyist in mijn eentje is dit gewoonweg niet te doen. Ik kan er ook geen geld mee verdienen om het alsnog te bekostigen, om nog maar te zwijgen of Autodesk op dezelfde manier tegen het hergebruik van Advance Steel code aankijkt als ik het doe. Dus helaas, het was leuk om te doen, maar voor mij eindigt het hier!

Maar wie weet gaat Autodesk het licht zien en zelf Dynamo for AutoCAD uitbrengen! Als het mij als hobbyist al in een paar dagen aan man-uren lukte, dan moet het voor hen geen probleem zijn. Het zal duizenden, miljoenen gebruikers serieus blij maken, dat weet ik zeker!


Deze blog is ook gepubliceerd op het Dynamo BIM Forum.

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.