AutoCAD heeft verschillende methodes om data aan objecten te koppelen. Zo is er XData en Xrecords binnen AutoCAD naast het koppelen via een Data Link (wat volgens mij niemand gebruikt), in Civil 3D is er dan nog Property Sets en Custom Properties van Parcels en Cogo Points, en in Map 3D en Civil 3D is er nog zoiets als Object Data. Ongetwijfeld ben ik er nog wat vergeten. Zo staat me iets bij van LData wat heel vroeger gebruikt werd in combinatie met Lisp (LData = Lisp Data?). Of bijvoorbeeld een Hyperlink die je aan objecten kunt koppelen.

XData en Xrecords kun je niet via dialoogvensters configureren of vullen. Property Sets en Object Data kun je wel configureren via een dialoogvenster, en de data van een object kun je weer vullen via de Properties Palette. De laatste twee zijn ook prima met Dynamo te verwerken. Dat geldt ook voor XData trouwens.

XData via Dynamo

Met de Civil3DToolkit van Paolo Serra beschik je over nodes waarmee je XData kunt koppelen, uitlezen of verwijderen. 

Wat heb je voor XData nodig? Een applicatienaam, een waarde type en de waarde zelf.

Een applicatienaam is eigenlijk een groepnaam, zodat je snel XData kunt filteren die bij jouw applicatie hoort. Zo kunnen meerdere applicaties hun data koppelen aan een object, zonder elkaar in de weg te zitten. Of erger, data te overschrijven. Een applicatienaam is gewoon tekst, en het handigst is om iets unieks te verzinnen wat je altijd opnieuw gaat gebruiken. 

Als je tekst wilt toevoegen, dan gebruik je Type Code 1000, een getal heeft Type Code 1040 en zo zijn er nog een paar. Als je dus een getal wilt koppelen, dan doe je het volgende:

Zoals je ziet heb je een numerieke waarde gekoppeld aan een object onder de ingestelde applicatie naam. Cool! Maar als je nu tien verschillende getallen wilt koppelen? Je kunt niet terugzien waar de waarde bij hoort. Hetzelfde geldt voor tekst. Tien losse teksten zonder veldnaam.

Om nog even terug te komen op de hyperlink, ook die maakt stiekem gebruik van XData. Na het toevoegen kun je de waarde uitlezen en zie je dit:

Door er vanuit te gaan dat de eerste tekst altijd een link is en de tweede tekst altijd een omschrijving, kun je deze methode prima gebruiken. De logica zit dus in de software, niet in de data.

Wat vaak gedaan wordt, om de logica toch in de data op te slaan, is gebruik maken van alleen teksten die een combi zijn tussen veldnaam en waarde. Bijvoorbeeld dit:

straatnaam:Burg. Huyzinghalaan
huisnummer:246

Op deze wijze maakt het ook niet uit in welke volgorde de data wordt opgeslagen en of er velden kunnen ontbreken.

Je moet alleen zorgen dat je bij het uitlezen de teksten splitst op het gebruikte scheidingsteken en dat je eventuele numerieke teksten weer omzet naar getallen.

Best wel wat werk om dit via Dynamo te doen. Als je toch al gebruik maakt van Dynamo, dan heb je ook Civil 3D en dan zijn Property Sets logischer. Maar als de tekening vervolgens naar een andere tekenaar gaat die alleen AutoCAD heeft, of als je XData wilt opslaan of uitlezen wat gebruikt wordt door een plugin, dan is Dynamo een prima tool.

XData in de tekening

Je kunt XData niet lezen of bewerken via de Properties Palette. Maar je kunt de data wel lezen met een Command Line functie, genaamd XDLIST. Dit toont de waarden die aan een object zijn gekoppeld.

Command: XDLIST
Select object:
Enter application name <*>:
* Registered Application Name: Huiz Apps
* Code 1000, ASCII string: straatnaam:Burg. Huyzinghalaan
* Code 1000, ASCII string: huisnummer:246
Object has 16286 bytes of Xdata space available.

In het dagelijks gebruik kun je hier niet veel mee. Ben je een beetje handig met Lisp dan kun je nog een filter maken van objecten die horen bij de opgegeven applicatienaam, maar helaas kun je niet rechtstreeks zoeken op een bepaalde veldnaam of waarde, zonder een uitgebreide Lisp-routine te schrijven. Maar dan kun je zo’n zoekfilter ook net zo goed in Dynamo maken…

 

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 available in English only.