Structural analysis

3 min read

Karamba is an interactive, parametric finite element program that lets you analyse the response of 3-dimensional beam and shell structures under arbitrary loads within Grasshopper. Clemens Preisinger is developing Karamba in cooperation with Bollinger-Grohmann-Schneider ZTGmbH Vienna.


Karamba has a fixed set of units – either SI or Imperial. For SI units it expects the model geometry to be in metres (m), the structural member dimensions in centimetres (cm) and loads in kilonewton (kN). Displacement is returned in meters (m). This mixing of units can be confusing. The kind of physical units that Karamba components expect to receive show up in the tool-tip which appears when the mouse pointer hovers over an input-plug. 

Karamba_Tool tip


There are six basic steps in using Karamba:

  1. Create wire-frame geometry
  2. Convert wire-frame geometry to Karamba beams
  3. Define which points are supports and which receive loads
  4. Assemble the structural model with points, elements, supports and loads
  5. Analyse the structural model
  6. View the analysed model

Lateral displacement example

In this example, we were interested in optimising the size and rotation of the ‘structural tubes’ based on minimising the lateral displacement. (For more information on the geometric setup of the diagrid structure, refer to this tutorial).


Computational logic

  • The centre line geometry of the diagrid is first fed into the ‘LineToBeam’ component. 
  • The bottom points of the diagrid are extracted and used as the supports. 
  • The loads are then calculated. Since this script is only interested in lateral displacement and not say gravity, a wind load of 2750kN is applied evenly over the analytical points/nodes. This force is a vector in the Y-axis.
  • The cross-sections and material properties of the structural tubes are defined. In this instance, we are using a 35.5 CHS with 1.2cm thickness. Attention is required to ensure the correct units are entered into the ‘MatProps’ component.
  • The structural model is then assembled and visualised.
  • The maximum lateral displacement is then extracted and analysed to determine the fitness of the solution.  
Karamba_Structural tubes3

Note that with the ‘ModelView’ component, the display scales can be modified. In the example below, the deformation scale is set to 4.0 to exaggerate the displacement for clarity.

Karamba_Structural tubes1


For more information about Karamba, you can download the manual here.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Add Revision to sheets

Add revisions to multiple sheets

A simple Dynamo workflow for adding or removing a revision to multiple sheets simultaneously in Revit 2022 or lower.

Create Internal Elevations with Dynamo

Create internal elevations

Generate elevation markers and corresponding internal elevation views using Dynamo based on rooms and their bounding wall’s orientation.

Sync Room Parameters

Sync room parameters

A Dynamo workflow to synchronise instance-based room parameters, such as apartment number, nested within a Revit model group.

Rhino Inside Revit for Dynamo users

Rhino.Inside Revit for Dynamo users

Learn some of the key differences between Dynamo and Rhino.Inside Revit and discover the benefits of migrating certain Dynamo workflows to Rhino.Inside Revit.


© 2023 Parametric Monkey
Parametric Monkey and the Parametric Monkey logo are trademarks of Parametric Monkey Pty Ltd.


Drop us a message and someone from our team will be in touch with you shortly.


Thank you for your interest. Someone from our team will be in touch soon.


To find out about upcoming public workshops or to organise a private workshop, please submit the following contact form and we’ll be in touch soon.