Select to view content in your preferred language

Transform CAD Layers in ArcGIS Pro

4874
2
11-11-2021 08:09 PM
TimHodson
Esri Contributor
4 2 4,874

An add-in is available that provides expanded functionality for the spatial placement of CAD data sets that are in modified projections. (See below "What is a modified projection?")

The add-in is called Transform CAD Layer, and is available here.

It is used to transform a CAD layer by entering a scale factor, rotation, local coordinates and corresponding grid coordinates.

Using the Transform CAD tool

After you’ve installed the add-in, follow the steps below to use the tool to transform the CAD dataset.

1. In the Catalog pane, select and drag-and-drop the Polyline class onto the map.TimHodson_0-1636687632051.png

2. The projection for the CAD layer needs to be defined if it is not already. This must be the projection that the transformation parameters are based on, otherwise the CAD Layer will not be correctly placed. To do this select one of the CAD layers in the CAD group layer in the table of contents.TimHodson_1-1636687632054.png

3. The contextual ribbon for the CAD Layer becomes available, and presents the CAD Data tab.

TimHodson_0-1681497865674.png

4. Click the Define Projection button and use the GP tool that appears to set the projection for the CAD file.

5. If the add-in was successfully installed, then a button called “Transform” will be present in the Alignment group on the CAD Data tab.

TimHodson_1-1681497954326.png

6. Click the Transform button.

7. The Transform CAD Layer dialog appears.

8. Enter the parameters for local coordinates, grid coordinates, scale and rotation values.TimHodson_0-1636688504587.png

9. Check the box Update ground to grid corrections if you want to use the scale and rotation values as the map's ground to grid correction settings.

10. Click the OK button to transform the CAD layer based on your entered transformation parameters.

Note: The values that you type are remembered the next time you use the dialog.

Click the Reset button to set all the transformation parameters back to starting values.

What is a modified projection?

You may not recognize the term “modified projection” and may be more familiar with one of its other names: local datum plane, engineering coordinate system, ground coordinate system or simply “surface” or “ground”.

When receiving a CAD file from a surveyor or engineer, it is common to find that it does not spatially align with the rest of your GIS data. It may be offset a few thousand feet to the north east, or it may be miles away to the south west and may seem to be in an arbitrary local coordinate system. However, if the surveyor is using a modified projection then this information is usually provided as transformation parameters that indicate how the projection is modified, making it possible to use these parameters to place the CAD drawing in its projected grid location without the need for manually picking out geo-referencing links.

Here’s an example of a simple modification in the notes of a subdivision plat from Houston, Texas:

TimHodson_5-1636687632059.png

In this note all the criteria are present for converting between ground coordinates and grid coordinates. There is the reference to the projection that is being modified and information that the coordinates are “Surface” coordinates. The combined scale factor is provided, and there is no rotation mentioned, and no origin specified.

Since the note does not explicitly provide the origin, the 0,0 origin of the State Plane coordinate system is implied. For this particular description above, the corresponding CAD file location in its original ground coordinates is located to the north east of the projected grid coordinate location. Since the add-in uses the convention of multiplying by the scale factor, for this example the scale to use would be the inverse, since the wording calls for "dividing"; hence 1/1.00013 = 0.99987, and it's entered as follows:

TimHodson_6-1636687632061.png

Here is another example, showing the drawing settings used for some AutoCAD data.

TimHodson_7-1636687632063.png

For this drawing, the equivalent entries to convert to the grid location using the Transform CAD Layer add-in are as follows:

TimHodson_8-1636687632064.png

Why are modified projections used?

Modified projections like these are used for large scale low distortion projections. Distances measured on the ground match the distances in the digital coordinate space of the mapping software environment without having to apply a scale factor and rotation.

The reason they are successful is that they cover an area of a comparatively much smaller surface of the earth compared to the projection that they are derived from, and so using a flat plane for modeling a ground-based coordinate system is useful and practical for small site locations such as an engineering site, or a parcel subdivision.

The combined scale factor is based on two components, the distortion caused by the projection and the scale caused by the elevation, as more fully described in the help topic Ground to grid correction.

Code

The CAD transformation functionality uses a similarity transformation. The code for this add-in is available on GitHub from the community samples repository, Transform CAD Layer code.

Here’s a code snippet of the similarity transformation used to generate the vectors written to the world file:

 

 

 

 

var pFrom1 = new Coordinate2D(dOriginX, dOriginY);
var pTo1 = new Coordinate2D(dGridX, dGridY);
var dDeltaX = dGridX - dOriginX;
var dDeltaY = dGridY - dOriginY;
var pFrom2 = new Coordinate2D(pFrom1.X + (10000 / dMetersPerUnit), 
          pFrom1.Y + (10000 / dMetersPerUnit));
var Rotated = GeometryEngine.Instance.Rotate(pFrom2.ToMapPoint(),
          pFrom1.ToMapPoint(), dRotation * Math.PI / 180);
MapPoint RotatedAndScaled = (MapPoint)GeometryEngine.Instance.Scale(Rotated,
         pFrom1.ToMapPoint(), dScaleFactor, dScaleFactor);
var RotatedScaledTranslated = new Coordinate2D(RotatedAndScaled.X + dDeltaX,
         RotatedAndScaled.Y + dDeltaY);

if (WriteWorldFile(sTargetWldFile, pFrom1, pTo1, pFrom2,
RotatedScaledTranslated))
{ ...

 

 

 

 

Video demonstration:  Using the Transform CAD Add-in 

 

References

Format of world files used for CAD datasets: World files for CAD datasets.

CAD coordinates systems: CAD geospatial coordinates

Ground to grid correction: Ground to grid correction

Transform features: Transform features

 

Add-in Releases

https://arcg.is/0qru58 (3.2 and higher)

https://arcg.is/1bb9Lq (3.0 and higher)

https://arcg.is/1vnymX (2.6, 2.7, 2.8, and 2.9)

 

Thank you to the Esri Community

Thanks to those who sent their CAD datasets and transformation parameters:

@Geographic_Mythos, @StevenLowman , @Mark_Hotz, @Matt_Trebesch  @LaurenConnor , HeatherWidlund

 

2 Comments
About the Author
Esri product engineer since 1998. Early career as a cadastral, topographic, and engineering surveyor in Southern Africa and later, after immigrating in 1995, as a construction surveyor in Washington State.