Let’s be clear: this isn’t a stab at the all-new, singing and dancing Esri software. This post is meant to help those who are using the software on a regular basis but finding issues with using the fields with multipatch data.
Recently I’ve been working with calculating volumes of buildings that are multipatch data. For simple extruded footprint data, it has worked really well. Using the 3D Analyst “Add Z information” tool, I’ve been able to iterate through whole cities and automatically add height, volume, perimeters, and even roof slopes.
The problem occurred when I went to use more complex data. I thought I’d look at adding volumes for models from SketchUp and Google Earth, but to my surprise they failed. The reason behind this has something to do with requiring an ENCLOSED multipatch.
From a technical viewpoint, I can understand why, as without polygon limits, how can you calculate the volume? Some would say that the process should take into account the ground to enclose the multipatch, but which datum is that? How do you know that there aren’t any small slithers that cannot be estimated?
There are tools to overcome these problems, like the “Enclose multipatch” tool that will average the triangles until the multipatch is enclosed—but more often than not, for complex buildings it will simplify it too much. So, I had to find an alternate way of calculating missing heights and volumes where this issue was occurring.
This involved going back to good old ArcGIS Desktop.
First thing to note is that you need to be using a projected coordinate system to enable the “Calculate Geometry” tool. Not used it before? Open ArcGIS Desktop, open your attribute table, and right-click on a field. Underneath the option for “Field Calculator” you will see the geometry option.
If, as above, you are using a geodesic coordinate system, it will tell you a lot of the tools are disabled but, don’t go re-projecting any data. Instead, change your data frame to a projected coordinate system (applying correct transformation). This enables the tool to use the data frame coordinate system for applying the information.
Now you are ready to go! I thought that using a multipatch within ArcGIS Desktop would provide me with inconsistent results or less accuracy, but how wrong could I be? Comparing heights calculated from using the Min Z and Max Z tools provides the exact same results as those obtained directly from the surface and lidar data, so where ArcGIS Pro couldn’t fill this data (I had inconsistency with Google Earth models), using this method would get it spot-on every time.
Volume calculation isn’t 100% accurate, as you will have to use the old fashioned “area x height” method, but having something in the ball park is better than nothing, or at least it is better than exploding the multipatch into all its rudimentary parts, calculating the volumes based on area x height, and then summing it all together.
One useful thing to note is that you do not need the 3D Analyst tools to use the “Calculate Geometry” method, so maybe what you lose in the accuracy you gain in your pocket.