Looking for suggestions on editing a CAD converted dataset we've received. All of the polygons that contain holes in them (donut), the holes are connected with a line to the exterior polygon something like the image below. In other words, these are a single part, and not a multipart polygon.
Is there a workflow/tool to easily update or fix these so they are a true multipart polygons?
I do understand that the following would work:
But that's not a very appealing thought for editing 1000's of these bad polygons.
Thanks for any tips/suggestions
Solved! Go to Solution.
Buffer the polygons by a tiny amount, say 0.1 feet. If those lines are contiguous, it'll "erase" them. And if the 0.1 feet mattered, then do a second buffer of the same amount, but negative.
Edit: adding images.
Original shapes:
0.1 ft buffer:
Hooray!
Try this:
- Feature To Point with INSIDE option to produce "label points" that carry the original polygon attributes. Call it Label_pts.
- Polygon To Line on the polygons with default option; call the output Lines.
- Select Layer By Attributes to select from Lines with Left_FID = Right_FID; these are the interior lines.
- Delete Features to delete the selected from Lines.
- Feature To Polygon using Lines and Label_pts, uncheck "Preserve attributes", to reconstruct polygon and retrieve the attributes.
Buffer the polygons by a tiny amount, say 0.1 feet. If those lines are contiguous, it'll "erase" them. And if the 0.1 feet mattered, then do a second buffer of the same amount, but negative.
Edit: adding images.
Original shapes:
0.1 ft buffer:
Hooray!
Thanks Josh, that worked perfectly!
Hi, is there a way to produce the opposite of this process? I want to create small cuts to open the holes in a shapefile, while the cuts should be contiguous without affecting the main shape and size of the polygons. The goal is not to have any true holes in a polygon to avoid issues when importing the shapefiles into other softwares that does not understand true holes in the polygon and fills and overlap any polygons that may be in the hole.