Point of geometry intersection

There was this node that generates a point of intersection between a vector and a plane, and now I can’t I remember the name… Wasted hours trying to remember…

Vector’s don’t have an origin so projecting a vector onto a plane is projecting the internal origin point along a vector until it hits a plane. For any random plane less than 1/2 of all vectors will ever intersect so you will usually will receive a null. Perhaps you are after Point.Project?

Trying to get the location of intersections, so that I can place void families to cut holes through the walls. Bakery node “Revit Elements Clash Detection” doesn’t help me because MEP and HVAC are links. I’m building the geometry from linked elements, I select a wall, discover geometries in clash, I just need the point (location of the clash)… There are more that 1000 clashes in this project. If I don’t build this script, I’m going to grow old working on this execution project…

Where does the vector come from? And the plane?

Sounds like Revit’s built in Interference Checker is built for exactly this use…

The plane can be generated by wall, and the vector can be a product of startpoint/endpoint pipe or duct location (the line).

Revit interference checker is just a report. I can’t pull that data into dynamo in order to place the void families.

The report can be consumed so you have matching ‘wall/duct’ element IDs. Then you can get the geometry of each and intersect just those. Or the curve of the duct and the wall solid. Or… multiple options at a simpler level this way.

I don’t have an issue with pairing elements that intersect. I need the point of intersection…

I sketched some lines in my notebook. I’m under impression its some heavy math that I’m not able to do. Remembered that node I saw earlier today and wondering if someone else knows about it…

The problem is you can’t force a wall to be a plane. Soon as you have a curved wall you’re in trouble. Geometry.ClosestPointTo is likely your best bet in terms of speed, where the geometry input is the wall geometry, and the other input is the curve of the duct/pipe. As you already have the paired elements this ought to be quite fast since it’s a 1:1 mapping. The result will be a point on the wall which intersects the curve. Might be front side, might be back side, but in all cases it’ll be a face of the wall which should get you what you need to host the void family.

Vector.IntersectWithPlane is from Clockwork. I’d better use Bimorph and Curve.SolidIntersection.

1 Like

Yes @Vladimir ! Thank you! Tested! It works!