Hello, I am trying to write a script to place points on conduit runs, while assigning what the referenced level should be. However, although everything is working properly the element.geometry node is taking the xyz locations from the internal coordinate system instead of the project base point like I need it to, and the offsetting it the internal z value above the reference level that I selected instead of just using the project base point coordinates and value and overwriting the reference value like it should. I am pretty experience but I cant remember having this problem before but I havent used dynamo in a couple years. did they change the element.geometry node? how do I pull from basepoint instead? Please advise.
All geometry has always been built about the internal origin, to get things into the project coordinates you’ll need to extract the coordinate system and transform from the internal origin to the base point - this can be done in a variety of ways, the best option for which will depend on what you’re doing - reporting XYZ values from the model in the project base points or creating objects in the project using the project base point.
im extracting model data directly from the project and trying to place some additional elements back in the ‘same’ place but they are coming off. Is there a way to ‘extract’ the information in the first step to be from project base point and the paste it back in as project base point or do i have to pull in the origin, the base point, math out the transform vector and the add my vector mechanics at the end before exporting it back out to revit?
When you read and when you write you need to do so relative to the internal origin, transforming should not enter the equation.
As an example:
- Start a new project using none as the template and select imperial ad the unit type.
- Set your project base point and survey point to something reasonable but not a standard dimension.
- Load the standard desk into the project using ‘load Autodesk family’.
- Place a single instance of the student desk at a reasonable location.
- Launch Dynamo, select the desk with a select model element node, pull it’s location with a get location node, and translate that by 10 units on the Y axis.
- Create a new instance of the student desk family at the new location.
- Back in Revit, strike a dimension from the front face of once desk to the front face of the other.
The dimension should read 10 feet.
Hi Jacob. as you can see, the internal coordinates has these points at 37’ above the internal origin, but i need to be able to set the reference level for these points. they are on underground conduits and should be somewhere reading like -3’-0” (below level 1, hence the need to associate to level 1) however, instead of changing the points z dimension as it associates it to level 1. it offsets it from level 1 instead:
There is too much noise to see what you have going on here in the model view, and no way to understand the context of what you have built in Dynamo.
Create a detached copy of the model. Delete all elements except for a single instance of the family in question and an hosting element. Be sure to catch levels (leave the one associated to the element) and scope boxes and links when you do this. Delete all materials in the materials browser. Purge everything 4x. Delete every view but the default 3D view.
Then build a Dynamo graph which uses a select model element mode to grab the single instance, and then uses a get location mode to return its point.
Now translate that point up 100 units, and use a FamolyInstance.ByPoint node to create a new point based instance.
Now measure the distance between the two instances in a new elevation view or in the 3D view (check your work plane). The result distance should be 100.
If so, then something else is wrong with your graph.
If not, post the model and the simplified graphs.
Some slightly dubious advice since I’m relying on some pretty vague memories here, but I think there are a few nodes (probably 3rd party ones) that input/output coordinates differently on the Z-axis only.
I think in these cases if your project base point isn’t at 0, you may need to modify your Z-axis coordinate by how much the base point is up/down from 0, change the nodes you’re using, or modify your base point to suit. Or it might have been related to the survey point? I can’t really remember, I just recall many years ago doing a couple of janky workarounds subtracting the Z value of one of the points from my Z coordinates to get something working.
No idea if you’re seeing something similar or not, but could be worth checking. If they’re popping in 37m too high, and your base point is +37m, -37m or correlates in some other way, then that might be your answer.

