How to get imaginary intersect point of elements

I am trying to develop a Dynamo graph that will get the imaginary intersection between a sloping pipe curve and a hanger point. See image for example of what I am referring to. The end goal for me is to ultimately find the bottom elevation of the pipe at the imaginary intersection point between the pipe and the hangers, even if the hangers are for whatever reason not perfectly aligned with the pipe like they should be. I am not sure how to start this. I feel like I need to start by getting the curve of the pipe and the insert point of the hanger, but after that I am quickly lost and unsure how to even move forward to achieve my goal. Any assistance would be greatly appreciated.

You could try to create/extract a plane from your hangers (front/back or left right, depending on how the family is built) and find the intersection of the planes and the pipe curve. There are plenty of posts on the forum around finding the intersection of elements and references. I will post a small example on Monday, if no other users chime in :wink:

Hi @jmmiller,

You are along the right track. I would do something similar to @Ewan_Opie with planes, but it doesn’t matter too much about how the family is built…

  1. You can create a vertical plane though the pipe easy enough by using the location line and a point that sits vertically off that line, just grab an endpoint and move it up a unit and use that to create a plane by point and line (this is assuming you have straight pipes, if the pipes are curved, using vetically lofted surfaces is a better route).

  2. Get the line or point reference of the hangar family instance (clockworks Element.Location works a treat for this) and then pull that line/point to the vertical plane of the pipe. There’s a node for the pulling part, maybe project to plane or something, but I’m too scared to turn on my pc as my gf is sleeping.

  3. With the point on Plane now (if it’s a line then use the lowest point in case it’s unintentionally raking), you can do vertical line from that point and get the intersection between that new vertical line and line of the pipe since now the lines are coplanar.

  4. Finally, you just need to set the location of the hanger by using the set location node and passing in the hanger element and point/line.

The method above ensures that the hanger reference is always vertical and along the pipe. There are plenty of other ways to do this though. Have a play around and see if you can think of others. Hope this helps you on your way.


1 Like

Thank you @Ewan_Opie . Creating a plane was the way to go.