How to select points that are inside a surface

geometry
dynamo

#1

Hi all,

I have a surface that looks like the one below. After dividing it, there are still points outside of the surface. How do I remove them and select only the points that are on or inside the surface?

It would also be very nice if you could tell me how to isolate the series of first 2 points running along the surface perimeters, as I am planning to put a family instance at these points. Thank you so much!

I tried the Polygon containment but it doesn’t accept arrays of points…


#2

You might be able to use the OOTB Geometry.Intersect?

Edit:


#3

Hi @archjahzzy

We have discussed this many times on forum, you could use forum search on top right. Here is one of them:

http://dynamobim.org/forums/topic/point-by-parameter-on-multi-sided-surface/


#4

Hi @Kulkul, sorry, I did try to search but didn’t find the answer here. I probably used wrong keywords.

But I did find it in another forum.

Solution is to use Geometry.DoesIntersect to isolate them.

So is there a way to get just the perimeter points and the next point closest to it? Because I don’t want the entire volume to be filled with my modules like below:

Thank youu!


#5

@archjahzzy Try using Geoemetry.ClosestPointTo node.

image


#6

Thanks @Kulkul.

For some reason, that node didn’t work, however, Geometry.ClosestTo from Clockwork did!

So… Now I’m at the final stage of my project, where I need to add the modules (revit families). Earlier, it worked when I generated the mass in Revit and picked the surfaces - but the ClosestTo Node gave me funny points so I just used the surface in Dynamo.

After that, I tried doing it again, but it doesn’t seem to recognize the family anymore! Gives me this error:


image

The family is loaded in Revit. So I am not sure what’s causing the problem. Could you perhaps see what’s wrong?:DynamoScript-Jahzzy.dyn (91.9 KB)

And the Revit family I used: RotatingModule.rfa (460 KB)

Thank youuu!


#7

@archjahzzy It works for me :slight_smile:

Try this place the family some where in project and run again.


#8

Dear all,

Thank you so much for helping.

Here was the solution (thanks @Kulkul!) :