9

I'm on ArcGIS 10. According to all the documentation I've read, 3D Analyst should be able to do what I am trying to get it to do, but I am running into problem after problem and I'm almost ready to give up and find a simpler way to answer the question I'm being asked.

In a nutshell, I have several layers I need to intersect or union in 3D. Some are points (thousands of them, which each represent a 3D volume, either a cube or a sphere, the dimensions of which are attribute values), some are polygons. I'm pretty sure the 3D Union and 3D Intersect tools only work on Multipatch features so I need to convert all of them to Multipatch features first.

The main problem I'm having so far is that the 3D Analyst Union and Intersect tools refuse to operate on Multipatch features that are not "closed", and I can't seem to force ArcGIS to create Multipatches that are closed. I've tried converting my one polygon layer (8 features) to a Multipatch both by extruding it in Arcscene using its height and converting that to multipatch and also using the "Extrude Between" tool, and they both produce some multipatches that are closed and some that aren't. I tried converting my points to spheres, using an example I found on ESRI's site here:

http://www.esri.com/news/arcuser/1010/3danalysis.html

Which tells you to symbolize the points as spheres, using an attribute as the radius, then use the "Layer 3D To Feature Class" tool to make them into multipatches. That also produces multipatches that are not closed and therefore useless. I haven't tackled converting points to 3D cubes yet.

So if anyone knows a way to reliably create closed multipatches from 2D polygon layers and/or center points (with attributes describing the dimensions), let me know. Any alternative software solutions would be great too, I'm not tied to ESRI. Indeed, after mucking about with this for the last few days and realizing that ESRI's own tools create multipatches that can't be used with many 3D Analyst tools, an alternative would be preferable.

ETA: What I'm ultimately after is to calculate the volume of space that is occupied by (for example) cubes with a an attribute value of X where they intersect spheres with a value of Y (of course, I have lots and lots of values of X and Y to run).

4
  • Good question. The spheres are not closed? Can you get a volume from the sphere multipatches created with the 3D To FC technique? Commented Oct 2, 2011 at 2:08
  • I can calculate volumes (using the Add Z Information tool) for closed multipatches, though I haven't tried it with the spheres yet. The deal-breaking problem I'm having is that there doesn't seem to be a reliable way to create multipatches that are "closed", or to force ArcGIS to close ones that are open. Which is maddening, because I'm using ESRI's tools to create them in the first place. You would think that their own tools would create features that are properly constructed (apparently, in order for a multipatch to be "closed", its vertices have to be created in a certain order).
    – Dan C
    Commented Oct 3, 2011 at 16:19
  • i believe only a multipatch that has a volume can be closed. You cannot close a polygon multipatch for example but an extruded polygon multipatch should be closed. The reason i was asking about the spheres is because only closed multipatches can be unioned/intersected. You can also only obtain volume (Add Z Information) from a closed multipatch so technically speaking if you can get a volume it can be intersected and union-ed with another multipatch that is closed. Commented Oct 3, 2011 at 17:43
  • Right, that's the problem I'm having: I'm extruding polygons but when I convert them to multipatches they aren't all closed. And there doesn't seem to be a way to close them.
    – Dan C
    Commented Oct 3, 2011 at 18:34

2 Answers 2

8

To close a multipatch feature, it must completely enclose a volume. Multipatch features created with the Interpolate multipatch to polygon (using a surface) tool can likely not be closed. (Unless you extrude between 2 TIN surfaces which should produce a closed multipatch. Personally, I have not had a lot of success using "Extrude Between" with complex surfaces)

I tried running an example with spheres and created 2 intersecting multipatch feature classes. The spheres are closed. I was also able to calculate volume of the spheres. Intersection succeeded without errors and produced expected results. (See screen captures below) I then created some circular polygons, extruded them and converted them to multipatch features. Intersection also succeeded without errors.

I suspect your polygon multipatches do not fully enclose a volume. Exactly how were they created? Can you provide some screen captures? (You might need to create more complex 3D solid object features in a 3rd party 3D drawing software as ArcGIS is very limited in this area. You could try editing the multipatch in SketchUp by the way of Collada then replacing the model when you are finished editing) ArcScene 3D Editor --> Replace with Model (This should be possible according to documentation but I have not tried.)

  1. Two multipatch features. (Spheres created using a technique similar to what you've described) enter image description here

  2. Resulting Intersection of the above (features are closed - also calculated volume): enter image description here enter image description here

  3. Same as above but using multipatch features created from extruding polygons: enter image description here

  4. Resulting intersection (extruded polygons converted to multipatch features): enter image description here The "polygon" features are closed

2
  • Thanks! I think I have it working now with spheres and extruded polygon layers as my multipatch inputs. However, having completed a 3D Intersect just now, it looks like the resulting multipatch layer does not retain the fields and attribute data associated with the input features, the way a normal Intersect does. I just have the ObjectID and Shape fields. Is that normal? That will be a problem. I'll get another comment together with details on the errors I was making (mainly that the extruded polygons that weren't being closed upon conversion to multipatches had overlapping sections).
    – Dan C
    Commented Oct 6, 2011 at 16:42
  • Intersect 3D (3D Analyst) - All attributes of the input features will be lost. Union 3D (3D Analyst) - The output feature class will not have any of the attributes on the input feature class. An optional table can be created recording which features where unioned together to create a new feature. These are new concepts in 3D Analyst only introduced in version 9. In prior version we could not even calculate multipatch volume. Unless ESRI puts a lot of energy into improving 3D modelling it will always be the weak link. Commented Oct 6, 2011 at 17:24
0

OK, here are the two problems I was having converting extruded polygons to multipatches:

  1. Your polygons must be in a projected coordinate system. I thought all of mine were but somewhere along the way I missed a step and was trying to convert polygons that were in lat/long WGS84. Projecting it to UTM solved that problem and allowed me to move on, which is when I discovered #2:

  2. Your polygons must completely enclose a space as Jakub says, but additionally, they must apparently only enclose one space. I had a few "dangles" on my polygons where they intersect themselves:

so when I extruded them one feature had two separate enclosed volumes. That failed to convert to a closed multipatch. Cutting the polygon at the point it overlaps itself (where the arrow is pointing) and deleting the part on the left fixed it. It probably would have worked if I'd kept both parts as separate features and extruded them separately but the part on the left was a mistake in my case.

Once those things were done, I was able to take a polygon with a height value, extrude it using its height in ArcScene, and then use the Layer 3D To Feature Class tool to convert it to multipatch, and they are all closed.

1
  • 1
    Another little problem I had, being new to 3D Analyst, is that when symbolizing points as spheres, there is a "sphere" symbol in the ArcScene Basic symbol set, but that's the wrong one to use for a 3D sphere. The right one is in the 3D Basic symbol set.
    – Dan C
    Commented Oct 15, 2011 at 16:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.