Placing multiple objects to real world coordinates

Hi, I have an excel spreadsheet with x,y,z coordinates for hundreds of objects. i would like to place a family at each location. I have a script that works but the coordinates are way off in the revit model. For instance the coordinates in the spreadsheet are 252230566.07, 2712806992.72, but when i actually place the family and take a spot coordinate the coordinates are 5425613925.76, 504461157.04. i’ve tried some math to try to get the difference between the coordinate systems but it seems that it’s not that easy. Any idea how to fix this?

Hi not sure whats goin on but when i look at these numbers without check…seems these is multiplied by 2 ??

The values are likely relative to the survey point, or project base point; not the internal origin of the Revit file. You’ll need to transform them accordingly.

Yes it is multiplied by 2. i tried to do the math in the excel worksheet, but that didn’t seem to work. I’ll try it again. Would there be a simple way to do this in Dynamo instead? Can i take the coordinates from the Point.ByCoordinates node and transform them?

Dynamo must be using the PBP, which i can’t move, because i tried moving the survey point and that didn’t change anything.

The node Geometry.Transfrom will do the trick.

The hard part will be understanding what coordinate system you’re working with, and only you are in position to identify that as only you have a complete dataset.

The coordinates you’re receiving seem to be real-world UTM coordinates. You’ll need to make sure your model is correctly geolocated (placed on the correct position in the world). Where is your project located? I may be able to help you with that.

Here are the three possible ways to place families depending on the coordinate system

1 Like

This is really helpful Mike. Thanks!!

Thanks for all the suggestions! I think the PBP should work but the geometry is not moving. Did I use the Geometry transform node correctly? Also are the Coordinates.BasePoint and CoordinateSystem.ByOrigin essentially making the PBP 0,0,0?

Might want a CoordinateSystem.Inverse after the CoordinateSystem.ByOrigin.

IT looks like you’re currently transforming from the internal origin tot he project base point, but your points are in the coordiante system for the project base point and need to be transformed to the project origin.

You may also have to account for rotation.

The Project Base Point defines the origin coordinate [0, 0] for the project coordinate system, the coordinate readout on the base point is in survey coordinates - hence the ‘doubling’ which is actually a translation.

Use the method for placing a point with survey coordinates to place correctly

Thanks again Mike! It finally worked. In this project the survey point and PBP were in the same location, once i moved the survey point to 0,0,0 the transform worked.