Defining Beam Element Types


We (Geometry Gym) are looking to make improvements on exporting Karamba3d models to structural analysis packages. Specifically improving the nomination of specific elements to their associated category in output programs. I.E Cables and Frame elements are separate in SAP2000.

Is it possible to know if an element type is trying to be defined as a cable? I see if you turn off bending the beam will change to a Truss element which is great. But I can’t see an option type to set as a tension/compression only member which generally would relate to a cable definition (not always, but we can get around it). Or do I need to set a beam Identifier to mark these ‘truss’ elements as cables for the time being??

Any help appreciated.



Dear Nathan,
in Karamba3D 1.3.1 there are no tension-only elements available.
A workaround for ropes would be to use truss elements and prestress them, so that they are always under tension.

Hi Clemens (@karamba3d) ,

Have you ever considered permitting users to store user text on Karamba elements?
This would allow nomination of a concept such as exporting as a cable in downstream workflows.



Hi Clemens, (sorry for hijacking this thread a bit, Nathan, Jon) I just wanted to ask about cables as well. I apologise in advance if this is a confusing question.

Right now I’m attempting to set up a model that can be parametrically optimised to minimise deflection. The design is for a somewhat unorthodox tied arch bridge. So far, I’ve done what Nathan did above–I nominated the cables and modified the beams by removing bending (and buckling). When I removed the cables from the model, the displacement increased, meaning that the cables are doing something. However, the displacement is to the tune of 1700cm, which seems unlikely… also, when I tried applying an Initial Strain to the cables, there was absolutely no change to the maximum displacement, regardless of how much strain I added. When I tried using the Non-Linear WIP tool, 0 Lambda values were reached, and max displacement was 0cm. When I used the large deformation tool, max displacement was ~900cm.

Does that suggest that there is something wrong with my model, or that there is another element governing the displacement?


Hi Jon (@jonm),

I am not sure about this. Wouldn’t this establish an informal, secondary type system?
At the moment the object inside an element wrapper is BuilderElement from this the classes BuilderShell and BuilderStraightLine derive, from the latter BuilderBeam.

If one wanted to add a text property it could be done by deriving e.g. BuilderBeamAnnotated (with text) from BuilderBeam.

For expressing the fact that one wants to simulate a cable a class BuilderCable which e.g. derives from BuilderStraightLine would be better I think. For example at the moment there is no BuilderTruss-class because it is possible to switch between truss and beam by setting the ‘Bending’ to true or false. This gives some flexibility on the one hand but causes quite some complications on the side of software architecture.


Hi Claire,

did you use second order theory analysis?

Is your structure maybe too flexible so that no axial forces result from the pre-strain? You can check this by enabling ‘NII’ in the ‘ModelView’-component which displays the second order theory forces that cause the geometric stiffness effects.