Working with Multiple Coordinate Systems
These days, projection-based “grid” coordinate systems like State Plane or UTM are being used a lot more frequently. And often, we need to convert data from one coordinate system to another. In particular, we often need to convert COGO points from one form to another.
Many people use programs such as Corpscon for this task, but you can also do it with AutoCAD® Civil® 3D. This article will provide a demonstration of how we can perform this conversion, as well as illustrate one way to get coordinates for multiple coordinate systems into our COGO Point Labels and Tables.
For our demonstration, we’ll start with some control points that are in Colorado Central Zone, NAD 83 US Foot, which we’ll call our source system. We also want to see our coordinates in UTM Zone 13, NAD 83 Meters, which we’ll call our target system.
Getting Started – The Drawing Settings
We’ll start with our control points in a drawing. These control points are in our source system, Colorado Central Zone, NAD 83 US Foot. So the first thing we need to do is go into Drawing Settings, on the Units and Zone tab, and select zone CO83-CF as our coordinate zone. Figure 1 shows the coordinates we’re starting with in our example.
Figure 1: Our starting coordinates in our source coordinate system (CO83-CF).
The Point File Format
In order to perform a coordinate conversion, we must first create a custom Point File Format for that conversion. Typically, we are importing or exporting points to a .txt or .csv (comma-separated value) file, which introduces a problem. Unlike a LandXML file, these older file formats do not contain coordinate system information inside of them, so we somehow need to tell Civil 3D which coordinate system is being used in the .txt or .csv file. We do this in the Point File Format.
In this example, our target coordinate system is UTM Zone 13, NAD83 Meters (UTM83-13). So we select the option for “Coordinate zone transform,” then select our target system.
Figure 2: The Point File Format for our conversion.
There’s one other important detail. Note how the columns in the Point File Format in Figure 1 use the “Grid Northing” and “Grid Easting” instead of the “Northing” and “Easting.” In order to perform a coordinate conversion, we must use the “Grid Northing” and “Grid Easting” in the Point File Format. This is the most common error people make when trying to use Civil 3D for coordinate conversions.
Also, in this article, I’ll be using the PNEZD format, dumped to a .csv file. You can feel free to use any other format, such as a PENZD file, or use a tab-delimited .txt file, or any similar format. Just make sure that, whatever format you choose, you set up everything consistently.
Performing the Conversion
Now that we have our Point File Format setup, it is very easy to convert our coordinates. All we have to do is use the “Export Points…” option in Civil 3D, select our new Point File Format, and make sure the option for “Do coordinate transformation if possible” is selected, as shown in Figure 3.
Figure 3: The “Export Points” dialog for our export.
That’s all there is to it! If we open up our new .csv file, we’ll see the converted coordinates, as shown in Figure 4.
Figure 4: Our coordinates converted to our target system (UTM83-13).
Note that we can also use Civil 3D to convert COGO oints that are not within our drawing. In order to do this, we need two Point File Formats—one for our source system and one for our target system.
User-Defined Properties
Okay, we have our converted coordinates. But now we want to display those coordinates in our drawing, in both Point Labels and Tables. How can we do that?
One way is to use User-Defined Properties on our COGO points. In order to create User-Defined Properties, we first go to Prospector -> Settings tab -> Points, and create a new User- Defined Property Classification. In this case, we’ll just call the new Classification “Coordinates.”
Once we create the new Classification, we need to add some properties to it. We’ll create two new parameters, “Northing_UTM” and “Easting_UTM.” When we create the new parameters, we can keep the default values, except select “Coordinate” as the “Property field type.”
Figure 5: Creating the User-Defined Properties.
If we now select any of our COGO points in the drawing, we can scroll to the bottom of its Properties and we’ll now see our new UDPs. We can also see our new UDPs in Prospector, and if we select some points and run “Edit Points…” we’ll also see our new properties in the Panorama view.
Populating the UDPs
We have our new UDPs, but they’re all set to 0. So how do we get the converted coordinates into them? Obviously, we don’t want to type the coordinates one at a time into all our control points.
And, unfortunately, at least in plain Civil 3D with no custom programming or third-party add-ons, there isn’t a great way to do it. But we can manage it via an Excel trick.
Earlier, we created a .csv file that contains our coordinates in our target system (UTM83-13). Now, we’ll want to create another .csv file, except this time we’ll just dump the coordinates out in our source system (CO83-CF). Finally, we’ll combine the two files in Excel, ending up with a result like that seen in Figure 6. This is basically a .csv dump of our points, but with our UTM Northing and Easting placed into Columns F and G.
Figure 6: The combined Excel file.
Next, we’ll create another Point File Format to import this combined file, as seen in Figure 7. Once we create UDPs, those properties become available for use in other places within Civil 3D. So now we can select “Northing_UTM” and “Easting_UTM” as columns in our Point File Format.
Figure 7: Our Point File Format for importing our combined coordinate file.
Finally, we’ll use this new Point File Format to import our combined file, overwriting the points currently in the drawing. We should then see our UTM coordinates in the custom fields for each COGO point. After rearranging some columns in the display, Figure 8 shows what we see in Panorama if we select all the points and “Edit Points…”.
Figure 8: The results in Panorama.
One thing to note is that these values are exactly what we imported from Excel. Our UTM coordinates are actually meters, even though our drawing settings and the other coordinates are in US Survey Feet. (This will be important in a moment, when we go to display the data.)
These values are not dynamic. If we were to move control points or add new ones, we’d need to repeat the export/import process to update our UDPs. But our UDPs are now populated with the correct values, so we can get on with displaying them.
Displaying the Data
Just as with the Point File Formats, once we create custom UDPs in our drawing, we can select those UDPs in our Table and Label Styles. Since we specified that they were “Coordinate” values when we created our UDPs, we get all the typical formatting controls for coordinates in the Label Composer, as seen in Figure 9.
Figure 9: The Text Component Editor.
Something to note in Figure 9 is that the Unit is set to “foot,” even though the coordinate is for UTM Zone 13 Meters. This is because we imported the value in Meters directly into the UDP, but our Drawing Settings are set to Feet, so Civil 3D thinks the value is in feet. If we were to select “meter” in our Label units, then C3D would apply a feet-to-meters conversion on the value in the UDP, and we’d end up with an incorrect value in our display. Figure 10 shows some sample results in a COGO Point Label Style.
Figure 10: A sample COGO Point Label.
But since these values are in UDPs, we can also create COGO Point Tables that display the UDPs as well. So by creating a new Table Style and adding columns for our UTM Northing and Easting, we can also create a Point Table that displays coordinates in multiple coordinate zones.
The Next Step
This article illustrated how to use some basic functionality in AutoCAD Civil 3D to perform a specific task. However, these techniques can also be used for a wide variety of other purposes. So anytime you need to display complex data in Civil 3D tables, keep in mind how you can extend COGO points with User- Defined Properties, import data from Excel to fill those properties, and then create tables and labels to display that data in your Civil 3D drawing. It can be quite useful!
Richard Sincovec is a Registered Land Survey Intern in the State of Colorado, and a user of Civil 3D since 2006. He is also the founder of Quux Software, provider of custom and plug-in software that extends and enhances the built-in capabilities of Civil 3D. He can be reached at sinc@quuxsoft.com.