Transform Features without scaling or skewing them

902
4
07-19-2021 10:48 PM
martin_fugro
New Contributor

On ArcGIS Pro 2.8.1, I'm using the Transform Features geoprocessing tool to align a z-enabled 3D multipatch feature to a Las Dataset point cloud. I have created four links. I want to transform my multipatch feature to best-fit the point cloud but I don't want to scale or skew my multipatch feature; I only want to move and rotate it.

Affine and Similarity transformations scale my input multipatch feature during the transform.

The projective transformation fails with the error "ERROR 160306: The server was not found."

I'm looking for an algorithm that will best-fit my multipatch to my point cloud while retaining its relative shape. Are there any tools within ArcGIS Pro to perform this task?

4 Replies
Tim_McGinnes
Occasional Contributor III

The Transform Features tool will do what you need - I use it all the time for correctly locating BIM multipatches. If you only want to move and rotate and don't want any scaling or skewing then the distances\dimensions\angles of the from points must be exactly the same as the distances\dimensions\angles of the to points. It's a bit hard to explain, but the picture should give you the idea. In fact all you really need is a single from\to point and the rotation and a bit of trigonometry will give you the other 2 links.

Tim_McGinnes_1-1626788313264.png

 

 

0 Kudos
DanLee
by Esri Regular Contributor
Esri Regular Contributor

Hi Martin,

What Tim said is correct. If you are sure your data is only moved and rotated, you can just generate three links between known matching locations and run the tool. 

I am also concerned about the ERROR you got using the Projective method. Would you be able to share a repro data so I can investigate? Thanks!

Tim, it's nice to know that you are using the tool all the time and get the expected results.  🙂

martin_fugro
New Contributor

Thanks for the suggestions, I guess I was hoping that ArcGIS Pro would do a best-fit while keeping the dimensions of the incoming object for me during the transform, but I understand if this fitting should be done externally, bring the new points in and then perform the alignment based on these matching points.

Dan, to help repeat the error message I've created a sample to illustrate what I'm trying to do, if you extract the geopackage and then attempt the following command:

arcpy.edit.TransformFeatures("Cube", "Links", "PROJECTIVE", r"projective_transform")

it should throw the ERROR160306: The server was not found.

0 Kudos
DanLee
by Esri Regular Contributor
Esri Regular Contributor

Thanks Martin for the test data. We have reproduced the error and will fix it as soon as we can. Thanks for your feedback!