Sommige vragen triggeren me om er vol in te duiken. Bijvoorbeeld een recente vraag van iemand die een tekening had gekregen van een derde partij. Hierin hebben Cogo Points gezeten, maar op de een of andere manier waren deze geëxplodeerd tot basis objecten als een symbool en een tekst, wat een hoogte voor moest stellen. De objecten hadden zelf geen hoogte meer. Hoe kun je (afgezien van het vragen om de oorspronkelijke tekening) de symbolen en hoogte-teksten weer herstellen naar Cogo Points?

BIM, CIM, intelligentie, bedrijfsgeheimen

Dat objecten in een tekening zijn geëxplodeerd, hoeft niet altijd met opzet te zijn gebeurd. In het verleden heb ik wel meegemaakt dat een bedrijf alles explodeerde want ze wilden niet dat een volgende partij ‘gratis’ gebruik konden maken van intelligente objecten waar ze veel tijd ingestoken hadden. Bijvoorbeeld handige dynamische blokken. Of een Corridor-model met complexe Assemblies, je wilt toch niet dat een ander daar mee aan de haal gaat?

In de bouw is het delen van een BIM model al wat gebruikelijker, in de civiele wereld nog niet zo. Een BIM model in Civil 3D, wat ook wel een CIM wordt genoemd, is vaak het resultaat van veel inspanning en vaak gebaseerd op eigen Assemblies, templates en kennis. Soms is het opzetten van een CIM gedaan vanwege het eigen gemak, bijvoorbeeld voor het berekenen van volumes of maken van uitzettekeningen, en niet ten behoeve van de opdrachtgever voor class detection. Dan voelt het wat ongemakkelijk om zo’n model gratis weg te gaan geven.

Een CIM model bevat intelligentie, en dat wordt vaak beschouwd als het geheim van de smid, een soort van bedrijfsgeheim dat beschermd moet worden. Door het model te exploderen, zorg je ervoor dat een ander evenveel moeite moet doen als jij zelf gedaan hebt, dat voelt eerlijker. Maar ik denk dat je bedrijfsproces niet op orde is als je dat doet. Zorg er dan voor dat je het maken van zo’n model in opdracht doet, en er voor betaald krijgt. Dan is het model van de opdrachtgever en mag die beslissen waar het heen gaat. Zo heeft iedereen tijdens het werk er gemak aan.

Maar het kan ook zijn dat degene die jou zo’n tekening heeft gestuurd, deze ook maar op die wijze heeft gekregen. Of uit onwetendheid door een tekenaar is aangeleverd die zelf altijd met AutoCAD werkt en geen weet heeft van de Civil 3D objecten in de tekening. Er wellicht vanuit gaat dat hij een goede daad verricht door dat stomme Proxy object alvast voor je op te breken in herkenbare objecten. Anyway, je zit er intussen maar mooi mee in je maag. Hoe krijg je die objecten weer terug als Cogo Points?

Verzamelen gegevens met Dynamo

Uiteraard begin je eerst met het analyseren van de objecten die je nog wel hebt. Heb je een symbool met een losse hoogte erbij geschreven? Of is het symbool ook geëxplodeerd tot losse lijnen? Is de tekst een MText of een Text object?

Gelukkig zit er genoeg variatie in de objecten. De symbolen zijn in dit geval blokken en met Dynamo best eenvoudig te filteren. Ze staan op een aparte laag, dus je zou kunnen filteren op laag, maar ook op object-type. Als het losse lijnen zijn dan kun je nog filteren op de cirkels. De teksten zijn eveneens op aparte lagen, maar anders kun je nog steeds filteren op object-kleur, en in noodgevallen zelfs of een tekst een punt bevat, om zo de hoogten te filteren.

Met Dynamo filter je eenvoudig de hoogten en de symbolen. In dit voorbeeld staan de teksten op de laag ‘Elevations’ en de blokken op de laag ‘Symbols’.

Zoals in bovenstaande tekening te zien is, zijn sommige teksten verplaatst vanwege de leesbaarheid. De teksten staan sowieso niet op het invoegpunt van het symbool. Wil je Cogo Points plaatsen op het invoegpunt van het symbool, dan heb je alleen die nodig, maar omdat er geen hoogte aan het blok zit, zul je het dichtstbijzijnde tekst-object moeten zoeken en daar de hoogte uit zien te vissen. Nu is het handig om het invoegpunt van beide te bepalen en dan de kortste afstand te berekenen, om zo een lijstje met symbolen en bijbehorende teksten te vinden.

Je hebt hiervoor een node uit de Arkance Systems Node Library nodig. Vervolgens vergelijk je elke tekst met de hele set symbolen.

Je kunt evenveel lijsten dupliceren van de symbolenlijst als dat er teksten zijn. Ik heb het niet getest, maar na dit te hebben uitgewerkt, bedacht ik me dat je een directe vergelijking ook zou kunnen doen met een Cross Product Lacing. Dan hoef je de lijst met symbolen niet te dupliceren. Maar zoals vaak het geval is, met Dynamo kun je zo drie of vier verschillende richtingen op om in Rome aan te komen.

Het resultaat is in dit geval lijsten met afstanden, evenveel lijsten als dat er teksten zijn. Elke lijst hoort bij één tekst. Uit die lijst met afstanden moet je de kortste afstand filteren. Maar omdat je uiteindelijk niet de afstand nodig hebt, maar het symbool dat bij die afstand hoort, zoek je eerst de kortste afstand, dan de index in de lijst waar deze in de lijst staat, en met die index zoek je het symbool op.

Je hebt nu de locatie van het dichtstbijzijnde symbool bij elke tekst. Je hebt niet de garantie dat dit ook werkelijk zo hoorde te zijn, want de hoogten zijn soms verschoven, en zodanig dat ze misschien wel dichter bij een ander symbool kwamen te liggen. Je zult dan wat checks moeten inbouwen. Bijvoorbeeld een hulplijntje tekenen tussen tekst en gevonden symbool.

Dat gaat dus vaak wel goed. Maar soms niet.

Een ander optie is om de gebruikte symbolen te voorzien van een andere kleur, je houdt dan vanzelf wat symbolen over die niet zijn gekleurd. Als het er niet teveel zijn dan kun je nog handmatig de teksten bij die symbolen verschuiven zodat ze wel dichterbij liggen, of na afloop de gegenereerde Cogo Points aanpassen die niet goed zijn gegaan. Als het wel veel zijn waar je nog werk aan hebt, dan zul je mogelijk een andere benadering moeten zoeken.

Met de numerieke waarde van de hoogte en de X en Y van het symbool, heb je nu een combinatie om Cogo Points op te plaatsen. En zo heb je de tekening weer voorzien van Cogo Points, met de juiste hoogte. Wel even checken natuurlijk!

Dit artikel is ook in het Engels gepubliceerd, in het AUGI World magazine, uitgave september 2024.

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.