In Dynamo voor Civil 3D kun je geometrie vanuit de tekening overhalen naar de werkomgeving zodat je daar bewerkingen op kunt doen. Dit kan geometrie zijn uit de ModelSpace maar met een paar tussenstapjes ook uit een External Reference. Bijvoorbeeld uit onderstaande tekening:

De dikgedrukte weg is een nieuw ontwerp, de rest komt uit een XRef met de naam ‘Bestaande situatie’.

Om ModelSpace geometrie over te halen naar Dynamo gebruik je een aantal nodes:

Dit kan op meerdere manieren maar uiteindelijk gaat het om de node Object.Geometry welke de geometrie van bekende objecten overneemt als Dynamo geometrie. Om XRef geometrie op te halen, zul je de XRef als BlockReference moeten beschouwen. Met een paar nodes haal je daar ook de geometrie van op:

Dan kom je erachter dat de XRef verschoven en verdraaid ligt, hoewel dat niet in AutoCAD zichtbaar is. Waarom je dit nu wel in Dynamo ziet komt omdat je niet de geometrie uit de Reference haalt maar uit de Definition. De XRef is zelf een BlockReference en bevat van zichzelf geen geometrie. Het verwijst slechts naar de  BlockDefinition waarin de objecten op een andere plaats liggen. Zie het als een symbool van een boom, als je deze opent in de Block Editor dan ligt de geometrie rondom de locatie 0,0 terwijl elke boom in de situatietekening als BlockReference op een andere plaats kan liggen. Nu komt het in Nederland gelukkig niet vaak voor dat een ondergrond verdraaid ligt omdat we allemaal netjes in RD werken.

Kun je dit verhelpen? Dat kan en is niet moeilijk. Je kunt namelijk geometrie transformeren met behulp van een CoordinateSystem. En die kun je weer opvragen van de BlockReference (de XRef dus). 

Nu ligt de geometrie naar wens op de juiste plek en kun je er iets mee gaan doen.

Je kunt nog eens kijken naar de Origin van de BlockReference.CoordinateSystem en die vergelijken met het invoegpunt van de XRef in AutoCAD. Je zult zien dat die gelijk zijn aan elkaar.