Select to view content in your preferred language

ArcGIS Pro 3D analysis

2959
5
Jump to solution
03-11-2021 10:52 AM
PengGao1
Emerging Contributor

I want to intersect a group of 3D objects (e.g., buildings) at a certain height and then get their 2D footprint at that height. How to do this?

Many thanks for your input!

0 Kudos
1 Solution

Accepted Solutions
Tim_McGinnes
Frequent Contributor

You can use the Intersect 3D tool to intersect multipatches.

1. Create a thin multipatch at the required intersection elevation (like the purple one in the attached screenshot). Easiest way is to create a polygon, load into scene, set elevation, extrude a bit (0.1m?) then use Layer 3D to Feature Class tool to export as multipatch: https://pro.arcgis.com/en/pro-app/latest/tool-reference/3d-analyst/layer-3d-to-feature-class.htm 

2. Run the Intersect 3D tool to create the intersection - try the Output Geometry Type as LINE which will give you 3d lines at the elevation where they intersect: https://pro.arcgis.com/en/pro-app/latest/tool-reference/3d-analyst/intersect-3d-3d-analyst-.htm 

3. You can also get 2d lines of the intersection by choosing the Output Geometry Type as SOLID above, then use the Multipatch Footprint tool to create 2d polylines of the intersection: https://pro.arcgis.com/en/pro-app/latest/tool-reference/3d-analyst/multipatch-footprint.htm 

The screenshot shows the different intersection results - you may prefer one over the other.

View solution in original post

5 Replies
Tim_McGinnes
Frequent Contributor

You can use the Intersect 3D tool to intersect multipatches.

1. Create a thin multipatch at the required intersection elevation (like the purple one in the attached screenshot). Easiest way is to create a polygon, load into scene, set elevation, extrude a bit (0.1m?) then use Layer 3D to Feature Class tool to export as multipatch: https://pro.arcgis.com/en/pro-app/latest/tool-reference/3d-analyst/layer-3d-to-feature-class.htm 

2. Run the Intersect 3D tool to create the intersection - try the Output Geometry Type as LINE which will give you 3d lines at the elevation where they intersect: https://pro.arcgis.com/en/pro-app/latest/tool-reference/3d-analyst/intersect-3d-3d-analyst-.htm 

3. You can also get 2d lines of the intersection by choosing the Output Geometry Type as SOLID above, then use the Multipatch Footprint tool to create 2d polylines of the intersection: https://pro.arcgis.com/en/pro-app/latest/tool-reference/3d-analyst/multipatch-footprint.htm 

The screenshot shows the different intersection results - you may prefer one over the other.

PengGao1
Emerging Contributor

Thank you very much!! 

Although the solution appears so simple, it is not easy to think through!

0 Kudos
PengGao1
Emerging Contributor

Tim,

I tried to create a multipatch from a 2D polygon by extruding the polygon to 3 feet. However, as you can see from the attached result, there is a patch (white color). I feel that it is because the base elevation in the white-color area is relatively high, but not sure how to fix this problem. I set the base height for the 2D polygon before converting it to a multipatch. I thought this would allow the extruded height to be based on the base elevation. How can I fix this problem? 

Thank you very much!

0 Kudos
Tim_McGinnes
Frequent Contributor

Correct, that is a high point in the ground surface. If you want to intersect at 3 feet above ground level over a large area like that then you will have to look at creating a surface, then doing the intersect. This would involve a lot more work.

Your building models look very simple and there doesn't seem to be be any real change in the outlines as you move up in z value. Just running the Multipatch Footprint tool might be sufficient by itself. What's the idea behind intersecting at 3 feet above ground?

0 Kudos
PengGao1
Emerging Contributor

Yes, you are correct. I can simply use building heights to get the cross section information of these buildings at different heights. I am trying this method for the future task when buildings have variable sizes along the z-axis. For the problem I mentioned, I found a relatively easier way of doing it: I created a fishnet with a number of grids covering the whole area. Then, I extrude this fishnet. This will fix the problem I was running into.

Thanks for your help!!

Peng

0 Kudos