Create Beams using a Given Distance & Spacing

Hello all,

I am trying to create a graph that will create beams hosted to a User Selected Surface & a User Selected Gridline as a starting point centerline. The graph will then place beams using a given spacing to fill the leftover distance of the surface. Essentially this graph would work similar to the Beam System Placement Tool in Revit.

I am able to place a beam at the starting gridline and get the total distance I would like to place my beams at; however I am stuck as to how I am supposed to “space the beams and fill the distance”. I was thinking a loop, but I have not had much luck in making loops work correctly for Dynamo. If anyone could help me take a step in the right direction, it would be greatly appreciated. Any and all suggestions/criticism are welcome! Thank you!

Try LunchBox Grid Element Collector to get a list of your grids and then isolate the ones you want using list techniques such as List.GetItematIndex
Its cumbersome but it works.
That lunchbox node above directly outputs the curves too…

Once you have the length of your curve and the spacing you can easily calculate a parameter which is a ratio of the total distance along the curve.
You can then get a point at that parameter.

To get a list of those points you could use a range node which give you a sequence.

You can just plug this in to the Curve.PointAtParameter Node.


Have you also solved the hosting to a surface with this graph? The big advantage of the built in beam system tool is that when the surface moves (say the slab thickens or the architects drop it to accommodate a thicker finish) your beams move with it.

This might work…but I have not tested it…

The main purpose behind this graph was for the placement of beams under a warped floor/roof, so I do not think I would need to address that issue.

Thanks for the help @spireup! I took parts of what you showed previously and messed around with it more and the graph is working as I wanted! Now all I want to do is perhaps clean it up and streamline the graph better if possible.