Geometry.DoesIntersect Problem

Hello everyone,

I’ve been having a deep trouble with Geometry.DoesIntersect problem for a week and realized Dynamo is not as flexible as Grasshopper - however need to finish this task in Dynamo.

Please take a look at the image below.

I have bunch of extrusions and there are three furniture objects that are intersecting with the extrusion. All I want to do is to find the extrusions that are intersecting with the furniture elements (notated with blue pen 1,2,3) and exclude those from the entire selection of all extrusions.

I’ve tried doing select all false and use filter by Boolmask but wasn’t working.

Any advice or guide would be very helpful. thank you in advance.

You need to use lacing or list levels to check all objects against all other objects.

1 Like

You’re on the right track.

doesIntersect.dyn (28.9 KB)


Thank you very much!
It seemed to work. Quick question though. Why does the updated version show on watch 3d window but doesn’t show on Dynamo window?

1 Like

never mind! I had to turn of other nodes’ preview. thank you once again for your help.

1 Like

Hello Vikram, I have a quick question

Is there a way to deconstruct the solids (extrusions)?
I am planning on getting the sum of srf area of only the top surface of the solid.

Lunchbox decon solid node gives me null.

thank you very much in advance. Any advice would be helpful


Thank you very much Vikram.

I just copied your advice and seems like I am getting something but with warning or error.

Polysurface.BySolid : Warning : Operation Failed
Surface. Area : Internal Error, please report dereferencing a non pointer

Not sure if Polysurface.BySolid is grabbing all the solids while I only want to select the top surfaces of each extrusion and their areas.

thank you very much in advance

Using deconstructpolysurface to get the surfaces. Is there way to only choose top surfaces from here? Like list item function from Grasshopper?

thank you in advance.

What is happening before the code block with [c,d]?
You don’t need that code block if you aren’t feeding in both inputs (the yellow error nodes are because of that)

It will get all surfaces. You can use Geometry.Explode to get the component surfaces and then figure out a way to get the top surface (sort the surfaces by their elevation (Z value) and extract the highest)

No idea, but Dynamo has its ways to do so. Please give it a shot based on the above suggestion

1 Like

Vikram - thank you for your advice, it was very helpful.

I am currently using your advice to create a script that makes a set of lines to go through two filters and only show the ones that intersect both. For example, it starts with a set of line around the periphery of a shape, it firsts finds set of lines intersecting with window and then from there, it finds remaining set of lines that are intersecting with tree (circle beneath it).

as you can see in the image, i was able to get the first part done (window) however it seems like the second part of the script is not working correctly where it grabs a set of lines that are not intersecting with the tree also.

I wanted to see if there is something wrong with those circular geometries (perhaps z-axis are not matching), however they do and when I only made the script for the intersection with trees it worked.

do you possibly have any idea why double filtering is not workng?

thank you very very much in advance for your time and effort

@mrkpkimEMSRM See if the graph below helps resolve your issue

intersect.dyn (28.6 KB)

1 Like

Vikram - you are a champion! thank you for your time to explain.

This is probably the last question but I tried to get the start points of the lines that passed two filters. From those points, extend the lines in the same direction until either it hits an obstacle or max 40ft.

I tried this process but all the nodes are giving me a warning.
Do you perhaps have any thought on this?

I know Geometry.Line is coming out from the Code Block node but not sure why it is giving me errors.

Once again thank you very very much for your precious time.
Thank you for teaching this dynamo noob.

1 Like

In the example below the max extension is set to 8

extend.dyn (43.4 KB)