Property Set Definitions in Civil 3D zijn van nature al complex, maar Formula Property Definitions helemaal. Daar komt een stukje scripten bij kijken in VBScript, of VBS. Dat is een light variant van VB, Visual Basic. Het wordt (of werd) veel gebruikt om taken te automatiseren in Windows of in websites maar kan ook worden toegepast in Formula Property Definitions. Zo zijn er al meerdere blogs geschreven over het toepassen van Property Sets waarbij ook Formula Property Definitions zijn benoemd. Het valt niet mee, want domweg wat kopiëren werkt meestal niet. Verwijzingen naar objecten zoals een Handle moeten een echt object zijn en niet een tekstuele verwijzing. Ook is het erg versie-afhankelijk, hoewel daar een work-around voor te vinden is. En je wordt ook niet echt geholpen om de eigenschappen van een Civil 3D object via hun API-aanroepen te vinden. Maar aan de andere kant kun je ook weer eenvoudige dingen doen zoals het opsplitsen van een NLCS laagnaam, of het beheren van percelen.
VBScript functies
Voor het voorbeeld waar de NLCS laagnaam wordt gesplitst, zodat je eigenschappen zoals het object of de status kunt uitschrijven, wordt gebruik gemaakt van wat VBS code, zoals een if-then-else. In het Formula Property Definition venster kun je normaal gesproken voorbeeld-code zien voor de beschikbare VBS functies, maar na een verse installatie van Civil 3D is dit vak meestal leeg.

Als je niet beter weet, dan geeft het niet, maar soms zie je voorbeelden van anderen waarbij in dit vak allerlei hulp wordt aangeboden waarvan je denkt: “Waarom heb ik dat niet?”
Dat komt omdat in Civil 3D vergeten wordt om de data hiervoor mee te installeren. Property Sets zijn niet echt een Civil 3D uitvinding maar worden wel intensief gebruikt. Wil je hier wel voorbeeld-code zien, dan moet je een XML bestand met de naam ‘ADT_VBScript.xml’ toevoegen aan de map waar AutoCAD is geïnstalleerd. Voor AutoCAD 2026 is dit normaal gesproken ‘C:\Program Files\Autodesk\AutoCAD 2026\’.
Je kunt dit XML bestand hier in gezipte vorm downloaden. Na het toevoegen op de juiste locatie zul je wel voorbeeld-code zien in dit veld.

Je kunt nu door alle functies bladeren of de Keywords bekijken. Via de rechter muisknop kun je een stuk code invoegen waarna je van alles kunt toevoegen, maar ook een stukje online help opvragen.

Het maakt het werken met Formula Property Definitions wel wat makkelijker als je een beetje op weg wordt geholpen. Ondanks dat het erg complex blijft.
Toekomst
Microsoft heeft al enige tijd geleden aangegeven dat VBScript volledig gaat verdwijnen. Dit gaat ook gevolgen hebben voor Property Sets. Oudere scripts die niet meer werken, nieuwe scripts die je niet meer aan de praat krijgt. Autodesk heeft nog niet aangegeven in welke richting ze een oplossing gaan zoeken. Wat het ook wel lastig maakt is dat Property Sets van oorsprong niet een Civil 3D toevoeging zijn maar uit AutoCAD Architecture komen. Als daar geen actief ontwikkel-team op zit dan gaat het in Civil 3D ook niet veranderen.
Ergens is de keuze voor VBScript in het verleden ook wel wat vreemd geweest. Dit is de enige plek waar VBScript wordt toegepast. Was Lisp bijvoorbeeld niet logischer geweest? Niet dat Lisp makkelijk is… Hopelijk kiest Autodesk voor een goede, gebruiksvriendelijke oplossing. Bijvoorbeeld Python. Dat wordt ook al toegepast in Dynamo en steeds meer beginnende programmeurs zetten hun eerste stappen in deze taal.
Hoe dan ook, vanwege de complexiteit en de onzekerheid, is de beste oplossing om Dynamo te gebruiken. Dan zijn je Property Sets misschien niet dynamisch maar wel razendsnel up to date en is er veel meer mogelijk. En al je Property Sets blijven werken, wat er ook gebeurt.
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.
