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!
Solved! Go to Solution.
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.
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.
Thank you very much!!
Although the solution appears so simple, it is not easy to think through!
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!
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?
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