3D Dissolve

11-25-2021 05:04 AM
Status: Needs Clarification
Labels (1)
New Contributor II

We need a 3D Dissolve tool that correctly handles 3D feature geometry. In my case, I need it for polygon features with z-coordinates (i.e. PolygonZ which have hasZ=True).

The current Dissolve tool will handle PolygonZ features, but all Z-coordinates will come out as zero values (which could be tagged as a bug, but it is currently handled as a feature).

This is what should happen:

2021-11-25 13_50_07-.png

We have four PolygonZ features. Polygons 1+2 are coplanair and adjacent, so are 3+4.

The coplanair adjacent polygons are dissolved into single features, which leaves use with two output PolygonZ features:

2021-11-25 13_50_23-.png

Tags (3)
Status changed to: Needs Clarification

We'd like to gather real world use cases for this. What is the application? What real world features are being modeled (e.g., building shells) and what is the application domain (e.g., city planning)? What workflow is impossible to achieve unless this functionality is available? Also, what is used to produce the co-planar geometry in the first place?


We use arcpy as part of our work flow to generate virtual worlds for simulation applications. We generate large (in our case e.g. 100 km x 100 km) virtual worlds that are used in the defense and security domain to support training, planning, rehearsal and decision support. The particular case where we ran into a problem with the 3D dissolve, was the modelling of bridge infrastructure. We create 3D polygons that we integrate into the terrain surface on locations where bridges meet the terrain surface. Those surfaces need to be at a specified height and with a specific height profile, hence 3D geometry, to make sure that the bridge model attaches seamlessly to the terrain.

More in general: a 3D dissolve would be useful in work flows that create 3D terrain/city models.

For us, the need for a 3D dissolve arises in particular from the fact that we use our own distributed processing architecture (Python based) to speed-up the processing of large datasets. This architecture splits the terrain into tiles and distributes the processing across compute nodes on this tile basis. Tiles are defined with a bit of overlap to avoid boundary problems. After tiles have been processed, the tiles (with overlap) are clipped against the true tile borders and the clip results are then merged and dissolved. Here comes the need: if such a 3D polygon, e.g. such a bridge entry polygon as mentioned above, intersects with a tile border, we will have this feature split into two adjacent parts. The 3D dissolve should then merge the clipped parts into a single feature that looks like as if it was processed without tiling. Our architecture does all this automatically and it works fine for 2D features, but when applying the standard dissolve to 3D features, the z-coordinates become collapsed to z=0. So the architecture fails for 3D features without a 3D dissolve.

As an illustration, a sample of two bridge entry 3D features (a bridge model would attach between these two 3D features) that are intersected by a tile boundary:


In pink the 3D polygon features, the left-to-right edges in the middle originate from a tile boundary, so these edges are not intrinsically part of the features. This sample illustrates how our co-planar geometry is produced: it is a result of clipping tiles, followed by a merge of the resulting 3D features.

The 3D polygon features should look like this after the 3D dissolve (having the hand drawn geometry (yellow edges, red vertices) in the graphic above) :