In AutoCAD is het al lang mogelijk om objecten te vinden op basis van de eigenschappen, met Quick Select. Een fantastisch hulpmiddel om bijvoorbeeld Alignments te vinden die langer zijn dan zoveel meter. Of arceringen met een oppervlak kleiner dan zoveel en ook nog eens donkergroen. Maar objecten met Property Sets kun je niet zomaar op zoeken. Gelukkig is er Dynamo.

Dynamo gebruiken om Property Set data te vinden

Over Property Sets is al veel geschreven. Dan vooral hoe je de data áán een object krijgt. Maar hoe kun je nu alle objecten zoeken die een bepaalde waarde hebben? Daarvoor maak je natuurlijk een Dynamo script, en om het nog beter te maken, eentje die in de Player zijn werk kan doen. Bijvoorbeeld een script die op zowel een numerieke waarde als tekstwaarde kan zoeken.

Eerst laat je de gebruiker kiezen welke objecten gevonden moeten worden. Bijvoorbeeld Alignments. De combobox moet wel ingesteld zijn als “Is Input”, anders wordt deze niet getoond in de Player.

De Property Sets worden uitgelezen en platgeslagen, anders krijg je een geneste lijst met Property Sets. Daarvan lees je weer de Properties en daarvan de Values. De lijst met Values vergelijk je vervolgens met een numerieke waarde. De invoernode hiervoor stel je ook in als “Is Input” en met een gekoppelde Note krijg je in de Player straks een mooie omschrijving.

Omdat niet alle waarden een nummer zijn, krijg je ook veel null-waarden. Deze kun je met een Code Block eenvoudig omzetten naar een ‘false’. Uiteindelijk hou je een lijstje met booleans over, die als Mask gebruikt kan worden om de Property Sets te vinden die horen bij een ’true’ waarde.

En daarmee kun je dan weer de objecten vinden die deze Property Sets gekoppeld hebben. Om teksten te vinden, pas je ongeveer hetzelfde toe. Het eenvoudigst is de node String.Contains om te zoeken op teksten in een tekst.

Om ze vervolgens in Civil 3D te selecteren, kun je natuurlijk een Command Line aanroep doen, maar nog eenvoudiger is de node “ImpliedSelection” uit The Civil Nodes package. En daarna kun je het script in de Player starten, een numerieke waarde of zoektekst in te voeren, en voilá. Alle objecten die deze waarde bevatten zijn geselecteerd.

Erg basic allemaal, en natuurlijk een hoop tekortkomingen. Zo zoek je op een numerieke waarde én een tekstwaarde tegelijk, als het tekstveld leeg is dan is er een match met alle velden die geen waarde hebben, wordt een foutmelding onderaan getoond als waarden niet-numeriek zijn en dus een null opleveren, en je kunt niet op veldnaam zoeken. Er is dus ruimte voor verbetering, maar zoiets simpels werkt al snel, en hopelijk heb je hier inspiratie gevonden om het te kunnen verbeteren!

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.