Karamba3D Assemble model

Hi, I am new to Rhino and I am trying to create a model that can optimize the cross section of a steel design. I am stuck on the assemble model because when i plug in my support and my elements the an error message “1. Solution exception:Could not find node at (0/0/0) where support index 0 is attached.” . If I flatten my elements the mesh load that I applied to to my “roof” is incorrect.

Here my script:
Model reduit.gh (38.5 KB)

Can someone please help me?

Thank you!

Hi, you need to flatten the Element inputs


Hi Matthew,

Thanks for the response. For the same model, I’m trying to optimize the cross section of different groups of elements (beams, columns, joist) when I change my loads. I need my beams to be selected in a list with certain sections W and my columns to be selected amongst another list of HSS. I put 2 OptiCroSec in my model and I connected beams in the element IDS in one and the other the columns. However when i change my loads it looks like it creates a copy of the elements instead of changing the cross section.

Here’s my script:
Model reduit sans double.gh (78.9 KB)


you need to perform the optimisation in one component. If you have separate optimisation, it is not performing it in the same model.

Karamba3D will automatically optimise those cross sections within the same familty - for example W and HSS

Model reduit sans double-mt.gh (72.2 KB)

Hi, I have now upgraded my model so I can change the parameters to increases the numbers of bays. This is the result when I illustrate the My in BeamView:

I put supports on the top of my model where you see the points in orange with restraint in Tz. I have alose an error message : 1. There are 34 rigid body modes in the system. This means some parts can move freely without causing deformation.
Try to use the ‘Eigen Modes’-component and activate the display of local coordinate axes: The first eigen-mode will be the rigid body motion.
If this does not help, check whether you have a pinned support directly attached to a hinge. A hinge introduces an extra node which may cause the problem.
When analyzing a flat shell structure one has to lock the rotation perpendicular to the plate in at least one node.

I read on this problem on the forum and i used the eigen Modes and the connected parts. The connected Parts component tells me that I have 11 branches. I think I have to put it in one branch for it to work but I can’t figure out how to do that.

Can someone help me so that my loads are applied correctly to the model ?

Also, if I disconnect the analyze component the My gives me this :

It acts as as continuous beam, however there are 2 seperate beams.

It should be like this:

Thank you!

I forgot to join my file:
Design optimize cross section.gh (123.9 KB)

Thank you!

Hi, from this image, I can see that the output of your Connected Parts shows multiple branches. Therefore your curves are not connected in one model. Check these curves.

Please refer to 3.1.4: Connected Parts - Karamba3D 2.2.0

Hi Matthew,

Even if I have one branch, I still have the issue where Karamba analyzes my model as a continuous beam even if you can clearly see that there are 2 separate beams that intersect at the middle column. I tried adding a hinge in the middle but it did not change anything. I need the moment to be like the picture for both spans instead of having a positive moment peak at the column.

Thank you!

Hi, you need to make sure to use the BeamJoints or BeamJointAgents component to apply a proper hinge connection between your beams and columns. Otherwise bending moments will be transferred from the main beams to other elements and your moment diagram will be false.

Thank you! Is there a way to use different utilization ratios? For example I want my beam to have a maximum utilization ratio of 0.8 and my beam a ratio of 1.

You can do so by optimising one element with one utilisation and then just plugged the optimised model into another optimisation component and optimise those other elements. You cant do this in one single step.