Arrangement of elements at the point of intersection of a plane and a straight line

Good afternoon Dynamo monsters!

I wondered whether it is possible to arrange the fastening clamps of pipelines mounted under the embedded metal structure in automatic mode.

The idea is the following. We lay pipelines in the model. We place embedded metal structures over pipelines. A general view of this is shown in the screenshot from the model on the left.

On the right, in the same screenshot, it shows how it should, in theory, turn out in the end.

I tried, therefore, to write the code in Dynamo, which I also attach.

The code first contains the coordinates of the beginning and end of the pipelines, the same with the coordinates of the metal structures. Based on the coordinates of the latter and an arbitrary point (with a modified Z coordinate), a plane is built. As a result, the Geometry.IntersectAll node finds the intersection points of the constructed planes and lines from pipelines. Based on the received coordinate, a yoke is placed by the FamilyInstance.ByPoint node.

It would seem that everything is fine, BUT:

  1. Geometry.IntersectAll only works with the intersect cross product. And this means that if I lay others under some pipelines (on different floors, for example), then absolutely all points of intersection of all pipelines with all planes of all metal structures are located. The same will happen if the pipes are built next to or on top. In this connection, I would like to know whether it is possible to build a rectangular plane using 4 points (2 of which will be the coordinates of the metal structure) so that it is not infinite and the search for intersections is carried out only for a specific pipe with a specific plane (shown in screenshot 3)? And this node most likely will no longer fit.

  2. Let’s say the 1st point is decided. Is it possible to determine which pipe is being crossed at the intersection point? This is necessary in order to put a clamp of a certain diameter in the future, since only one type of clamp is installed in my node (in this case, for a pipe with DN40). That is, so that the dynamo itself determines the diameter of the pipe, on the straight line of which the intersection point is located and put a clamp of the corresponding diameter.

  3. The clamp is placed in the position in which this family was designed. But the pipe can conditionally go not only from north to south, but also from west to east. In both cases, the clamp is placed for north-south. Is it possible to make the clamp change its direction and always be placed along the pipe, and not across?

I’ve been scratching my head for three weeks now… I would be grateful for your help!




Расстановка Ρ…ΠΎΠΌΡƒΡ‚ΠΎΠ².dyn (43.6 KB)

Hello…not sure, but i would try something here…if i understand right :wink:

1 Like

Hi sovitek! Thanks for taking the time and answering! Surface solution is great! But your Geometry.Intersect node only finds one point of intersection with one of the pipes. And in some cases it doesn’t search at all. Having tried the Geomentra.Intersect.All node, I encountered the fact that the node eventually produces an empty list and does not look for intersections.
I apply what I ended up with in Dynamo and Revit

Try to set your lacing to cross product in the intersect node

2 Likes

The result is the same

alright could you zoom in your image or share your graph ? cant really see whats goin on :wink:

Yes, of course, I’m sorry!
Weave in the intersection node is set to Auto


Расстановка Ρ…ΠΎΠΌΡƒΡ‚ΠΎΠ².dyn (41.9 KB)

No worries :wink: try something here
forum.dyn (32.2 KB)

PS you still need set lacing to cross product

Exactly what is needed! Item #1 solved! Thank you very much!
Is it possible to somehow determine that the intersection goes exactly with the pipe, so that in the future it would be possible to take the parameters of a particular pipe?

1 Like

I love to use bimorph for that task… :wink:

Thank you very much! Thanks to you, point number 2 was also decided! :slight_smile:
Pipes can conditionally run from north to south and from west to east. And the clamp is placed only in the position in which the family was developed. How can it be placed along the pipeline? The screenshot showed the correct and incorrect position of the clamps.