Posted in xyHt Jan 18th 2018: http://www.xyht.com/spatial-itgis/calculating-geometry-outside-arcgis-pro/
Let’s be clear, this isn’t a stab at the new all singing and dancing Esri software, this post is 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 which 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 some more complex data, I thought I’d look at adding volumes for models from Sketchup and Google Earth, to my surprise, they failed. The reason behind this is 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 which cannot be estimated?
There are tools to overcome these problems like the “Enclose multipatch” tool which 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 & Max Z tools provide 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 it’s 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.