LearnRevitAPI

⏹️How-To Convert Internal/Survey/Project Coordinates with Revit API?

Feb 28, 2025

Coordinate Systems with API

Coordinates are confusing, especially in the Revit API.

You probably think that there is a simple method in API to convert coordinates from one system to another. At least that's what I expected until I realized there isn't one... I checked 10+ times before going down this rabbit hole🐇.

But don’t worry, I’ve already created a solution. So, there is no need for you to spend countless evenings trying to make it work.

✅ Let me share my solution with you.

You can watch Video Tutorial Here

⏺️ Coordinate Systems

Firstly, let me remind you the coordinate systems in Revit.

  • Internal (Used in Internally and in Revit API)

  • Project (Based on Project Base Point)

  • Survey (Based on Survey Point)


If you are new to coordinates, then I suggest create multiple tags to track each system and tag multiple points like this:

This will help you understand very quick what's going on with your coordinates when you move certain anchor points or rotate True north. (check the video above)

✅Solution: PointConverter

Back to Revit API.

I won't go into details of the code, but instead, I will provide you a Class that you can copy-paste and explain how to use it.

Class Remarks:

Notice: you provide x,y,z coordinates in meters and specify the coordinate system. It will calculate the same point across all coordinate systems.

If you want to provide values in internal units (ft), then you can remove 3 lines of code where I define X,Y,Z with convert_internal_units function.

Here is the PointConverter Class.

You will also need this function to convert units. You already know how it works from previous email, right?

P.S. Copy Snippets from here.

💪How to use it?

The Class is very simple to use. But please, pay attention to units used in your Revit Project and inside your Code! That's where majority of confusion will come from.

This is why I created print_coord_in_m function to keep myself sane. Otherwise you might think that you are doing something wrong.

P.S.

It might look like a lot of code, but it's actually very simple to use.

Just copy-paste the code and see how I use it in this video. Then, you will be able to do the same and finally convert your values across all coordinate systems.

I hope you find it useful.

Enjoyed Newsletter?

Leave a Testimonial Here.

⌨️ Happy Coding!
Erik Frits

Join Newsletter

📩 You will be added to Revit API Newsletter

Join Us!

which is already read by 9500+ people!