Place beams at grids

Hi there,
I’m trying to place beams at grids in Dynamo, by selecting the grids and getting the intersections between them as points which I use to split the grid lines geometry and then using such sub-lines to create the 3D beams.
Function works fine but beams are created also outside my structure perimeter (in other words, the splitting of grid lines produces also the outer segments exceeding the structure perimeter).
How can I remove them?
Attached are the geometry created and my Dynamo graph.
Thank you.

P.S. note, in the Dynamo graph I’m also creating the columns at grids

out of curiosity, why not just use the already existing “On Grids” option when placing beams in Revit?

Three ideas:

  • Filter curves by length (assuming your grids will not end well outside the crossing grids).
  • Filter U axis grids that only have one V axis grid they touch, and vice versa for V and U.
  • Alter the original lines of the U and V fords by pulling endpoints to a polysurface built from the adjacent grids.

Hi Jacob,
thanks for your contribute.
Due to my very basic knowledge of Dynamo, I followed your 1st idea, filtering our the curves which length is less than 1mt and it works (see graph below)!

Of course, the method I adopted works if I have short grid extremities but would fail in several other situations.
As I’m eager to learn and make my script more flexible, I kindly ask you how would I perform either one of the other two options you mentioned.
In your 2nd idea you advised to somehow check how many intersections happen between each horizontal and vertical grid lines. I guess I have to connect to the geomety.intersect node, but I can’t figure out how.
Thanks again.


Eliminate the first and last from the list of curves obtained after splitting by intersection points

structuralFramingGrid.dyn (158.9 KB)


Hi Vikram,
thank you for your hint.
Unfortunately your method doesn’t work for me as some of the nodes act quite different in my Dynamo (I’m using 2.5.0 for Revit 2021).
For instance your Code Block on 5th node (0…c-1) removes all the data from the list of grid elements, so List.RemoveAtIndex produce empty list.
Thank you.