Continuous Beam Support Reactions Karamba3D

Hi all,
I am modelling a continuous beam using Karamba3D in Grasshopper. The purpose of this exercise is for me to be able to extract the resultant support reactions. I, however, am getting multiple reaction values at each support.


I only applied one load to the beam. Naturally, I would have expected to see a total reaction force at each support. I tried extracting the support reactions through the “Reaction Force” component and there are 9 in total forces in “Z” direction for 3 supports. Would somebody be able let me know if I have built the model correctly?

Thanks in advance.

Continuous Beam.gh (20.8 KB)

UPDATE: I found the solution. I had to flatten the output data from “Beam Loads” component before connecting to “Assemble Model” component. I assume the applied load has been created as three separate cases on each beam.

I would appreciate if someone has better explanation and suggest efficient ways of overseeing these type of issues for future use.

There is no secret here, it’s just the way Grasshopper works. Study Grasshopper DataTrees more thoroughly to learn more and more.

If you pass in Karamba Loads or Elements or whatever in separate DataTree branches, you will get multiple FEM models and solutions as well. The cool thing is you can use this to your benefit and have multiple models or whatever at once.

By using Flatten you cut down your beautiful trees and branches and that’s why avoiding Flatten is wise and you should use Shift Paths instead.

Hi @TuomasLehtonen,

Thank you for the useful reply.

Here is why I am confused. My intention was to only have 1 FEM model. I went and created multiple nodes and then created a polyline from the nodes. Then I used “Line to Beam” component and plugged the polyline to it. The output from the “Line to Beam” component is a single list data. Then using “Beam Loads” component I added 1 load to the created beams. The output from “Beam Loads” component is now a multi list data. Looking at this from entirely user’s perspective, I would have expected if I am adding one value to a single list of many values - the output still to be a single list.

For a reason I don’t understand, Karamba’s Beam Loads component works as “one-to-many” type of component when it comes to DataTree handling (there might be a perfectly good explanation to this). But, if you are creating Point loads, they work in the “one-to-one” way. Please see the fantastic DataTree video by @andheum:

You can see from the mouse-hovering description that Beam Loads component outputs a list whereas the Point Load outputs a single item

All in all, with various plugins and components available, the only trick to command your DataTrees is by paying attention to them. If some component outputs the data in a way that you did not expect, handle the trees using DataTree operations such as Shift Paths and Graft.

And as an addition: from the look of the wires you can see if the outputs have a mismatch, such as a list (double line wire) trying to match a DataTree (dashed wire).

If this is the case, such as in your Karamba example, then the different branches get matched to all of the list items which returns in “too many” outputs or results. You would want the inputs to have the same amount of branches.

the reason for this is that currently Karamba3D explodes your polylines into separate curves and generates a separate beam load for each individual beam. We know about this issue, but currently it is not possible to set a beam load on the original polyline beam.

@TuomasLehtonen @matttam

Thank you both for your replies. Much appreciated.