Coordinates are vital, but Revit does not give you many ways to access them. To show them on sheets, you have the Spot Coordinates tool, but if you want to schedule them you are out of luck.
Fortunately, PropertyWizard makes it easy to access coordinates. This is a quick walkthrough.
Elements in Revit have a Location property in the Revit API. For a normal family that’s placed using a single point, this Location property will contain a LocationPoint object (shown here in Revit Lookup):
The LocationPoint object has a Point property that contains an XYZ, which actually contains the X, Y and Z coordinate values:
So this simple formula will push a text representation of the whole XYZ into the Comments parameter of my elements. In this case, I’m using Structural Foundations, but this would apply to any Category where you have point-placed elements:
And here is a coordinate showing up in the Comments parameter:
Now, these coordinates are in Revit’s Internal coordinate system, not in Shared coordinates. So you need to use PropertyWizard’s internaltoshared() function:
To access the X-component, we just add .X:
Finally, these values are in Revit’s internal units, which are feet, but they are just stored as a number not as a proper length value. You can multiply by 1 ft to convert from a ‘number of feet’ to a proper ‘length’, so that PropertyWizard can format the value using your current Revit Units setting:
Just set up three formulas, one each for X, Y and Z, and you can then schedule the coordinates of all your elements:
And of course, being PropertyWizard, these values are kept up-to-date all the time as you edit your model. There’s no need to remember to run a script to update anything: