How would I go about creating a surface everywhere except the box in the top right. The image is showing a preview of area.boundries (curves) when I have selected 1 area which happens to have another area inside of it.
I cannot simply create solids from both and difference boolean them because I may want to select multiple areas rather than just one.
I am trying to find all elements of a certain category which intersect within the selected areas. Currently I am pulling the area boundaries and creating solids and then using a node from Bimorph to find any that intersect with the solid.
In the second image I should be able to select either the red area, blue area or both and have it work.
In this snip I have just the red area selected however it creates two solids because it is connecting both curves (exterior and interior)
Thanks for the swift response. I am not sure this solution will help. My goal is to select 1 area or multiple and find the data devices which are intersecting and then give them a parameter based on whether this is true or not. The following script works for areas which do not have areas inside of them but in the example I showed above that is sometimes the case.
I am able to do a solid difference but this would only work In the specific example where the first area selected has an area inside of it and not all use cases.
For example I may select the area with the area inside (1 selection) or I may select both (2 selection (or more)). The script needs to handle both situations. The current problem is that if an area with an area inside is selected it creates a solid for the first area boundary (the whole rectangle which is too big) and also the interior boundary (which was not specifically selected in the first place.
I believe the ideal solution would be for the script to create a solid based on the exterior area boundary and the inner area boundary but not the interior of the inner boundary.
hi, we can also classify polycurves by perimeter length
Oulalala the dumpling, did not take into account the message, I keep to assume my stupidity, it will make Mr. Jacob laugh
Cordially
christian.stan
Perimeter does not indicate if a curve loop of a surface is the exterior loop or an interior one.
Case in point: go find a tile and measure it’s perimeter. Then cut a length of string that is 2x the perimeter measurement and tie the ends together. Now try and layout the string on the tile so it doesn’t overlap itself and doesn’t spill outside of the tile’s extents. If you can do this, perimeter isn’t always useful for identifying the edge loops.
Thanks for this Jacob. I’ll give it a try when I have some time. Just wondering, would this work if there were more than 2 areas? Ideally it should be able to handle something like below
If you imagine each colour was a different area it should work the same if I select 1 area or all 4 areas. The initial problem above is just a particular edge case (albeit a common one) that I am trying to resolve.
I can’t remember if when I select 1 area with an area inside of it, if it produces a nested list or just a list after each other. If I could apply your solution to just the nested lists I think this would work for all cases?
Just guessing at the moment though, will give it a shot when I have some time.
Thanks Jacob, might take me a while to give it a shot but lets see if I can figure it out first with your suggestion from earlier. I am pretty new to Dynamo so would like to learn as much as possible without people on the forums solving it for me! Obviously if I am lost I will share a sample .RVT at a later date.
Thanks Jacob I actually solved this before reading this but thank you anyways!
Now the script runs as intended when only the outside areas are selected (because it boolean differences the inside areas) but I dont want to do this when all are selected.
Basically in this image if the list.counts are the same (which there are in this example) I dont want to run the solid.difference and instead I can plug the list.takeitems directly into the next part.