Select to view content in your preferred language

Importing multiple donut features from CAD

337
9
2 weeks ago
Labels (1)
SimonCrutchley
Frequent Contributor

Hi there, I've looked for similar queries and done some general Googling, but without success. I have a number of legacy files created in CAD, many of which contain donuts, but they were created as separate features, since they only had to look right. Unfortunately, when I export these from CAD they naturally come in as two separate features, no a donut.

Using a ‘self contained’ location search I can find these, but I then have to edit them manually adding a new element to the outer line and then deleting the inner. I want to know if there is a way to do this automatically, but I rather suspect that because they are two separate features that it would be impossible without some clever programming.

SimonCrutchley_0-1755612963745.jpeg

SimonCrutchley_1-1755612990016.jpeg

 

 

0 Kudos
9 Replies
DanPatterson
MVP Esteemed Contributor

if the features are indeed stacked (aka, the inner donut ring is now a new feature), you

could try 

Symmetrical Difference (Analysis)—ArcGIS Pro | Documentation

Test on a copy of course


... sort of retired...
0 Kudos
SimonCrutchley
Frequent Contributor

Hi Dan,

Thanks for that, but I don't fully understand how it works; it appears to require a different input and update feature set and I've only got one dataset. I tried using it for both, but that just gave me a null export.

What am I missing.

Sorry

0 Kudos
DanPatterson
MVP Esteemed Contributor

ahh.  Are the features being represented as multipart polygons with an inner and outer ring?  If so see if you can get them to singlepart first

Multipart To Singlepart (Data Management)—ArcGIS Pro | Documentation

You would then want to remove the part with the smaller area based on the common original id


... sort of retired...
0 Kudos
SimonCrutchley
Frequent Contributor

Unfortunately they're not; they are all separate.

SimonCrutchley_0-1755618353974.jpeg

 

I've symbolised each feature by a random number; these are displayed with no fill, but once filled they are just a series of single concentric blobs 😞

0 Kudos
AlfredBaldenweck
MVP Regular Contributor

If they're different by attribute, you can make 2 layers with definition queries showing which ones are the inner circle and which are the outer circle, then feed those two layers into Erase or Symmetric Difference.

AlfredBaldenweck
MVP Regular Contributor

Oh wait. You could also make the two layers with definition queries and then use a mask if you want something that doesn't create new data.

 

Mask.gif

0 Kudos
SimonCrutchley
Frequent Contributor

Hi Alfred,

Unfortunately, I just added those attributes to make them stand out visually; the rest of the data don't differ apart from their spatial data obviously. I'm not sure what sort of query I could use to find the inner and outer; I guess I could try to find those with the same monument UID which have different areas, but that would also find other unrelated features, or indeed multiples. In my example, all the features have the same UID, so there would be c20 features all with the same UID, all with different areas, but no way of knowing which relate to each other, or is there?

0 Kudos
AlfredBaldenweck
MVP Regular Contributor

Try this:

  1. Use select by Location with Completely contains and invert the selection.AlfredBaldenweck_1-1755789636153.png

    This will get you the inner polygons.

  2. Turn on your edit session
  3. Under tools, find "Clip"
    AlfredBaldenweck_2-1755789663508.png
  4. Your inputs are already selected. Click "Target Features"
    AlfredBaldenweck_3-1755789759860.pngAlfredBaldenweck_4-1755789774396.png
  5. Run your select by location again, this time without inverting. This will get you your outer features.AlfredBaldenweck_5-1755789809490.png
  6. Make sure the clip type is still set to "Discard Remainder" and hit clip.clipinner.gif

You can reverse some of the order here (switch steps 1 and 5 and change the clip type to "Contain"), but this is the way I did it.

 

If you do it this way, it will get super slow the more features you have. It might be better to just feed those selections into the standard Clip or Erase tools and just be cool with the duplicated data.

For the multiple rings, I think you're going to have to do those manually.

SimonCrutchley
Frequent Contributor

Hi Alfred,

Thanks for that. It works on those with just  one donut, but as you said it doesn't on more complex ones. Unfortunately, if there are an odd number of elements e.g. outer side of ditch, inner side of ditch and a pit, it removes the wrong part. Since I can't think of a way to find those features with only two parts, since they're all actually just one part, I don't think I can risk it, as I'd still have to check them all manually. I suspect I'm stuck with a long manual process.

Thanks for your help.

Simon

0 Kudos