New in Karamba3D 3.1

We regularly release service updates on GitHub and through Rhino's YAK package manager. Each service release includes a list of new features and bug fixes.

Karamba3D 3.1.51222

New Features:

  • Disassemble Support Component: Introduced a component that retrieves the properties of supports.

  • Load Case Properties Component: Load cases can now be defined independently of loads. In addition to the load-case name, one can specify the load duration type and action type. The load-case durations determine those of the load combinations (adresses request #139).

  • Automatic Obsolete Component Update: Added a menu item under Grasshopper → Karamba3D → Components → Update Obsolete Components to automatically replace outdated Karamba3D components with their updated versions. This applies to components deprecated in this release (adresses request #135).

  • Cross Section Range Selector: Added a drop-down menu for selecting a specific cross-section within a family.

  • Cross Section Database: Included Japanese H, CHS, and RHS sections.

  • Element Guids: GUIDs are now linked to element creation components. Updating a component preserves the sequence of GUIDs, making it easier to manage element identities in C# scripts.

  • ModelView Enhancements: Annotation text now stacks when multiple options are selected and is displayed as 3D text for improved visibility. Under Annotations, a new slider allows scaling the offset of text from elements.

  • Hierarchical Element Identifiers: Element names can now include dots (.) to represent hierarchical levels. For example, an element named level1.level2.level3 can be referenced as level1, level1.level2, or level1.level2.level3.

  • HUD Legend Component: Added an input for adjusting text size.

Bug Fixes:

  • Bending Moment Diagrams: Diagrams generated by the BeamView component now display on the side corresponding to tensile stresses (fixes issue #143)

  • Colors of Elements, Cross Sections and Materials: now show correctly (fixes issue #145).

  • Missing HUD Legend: was readded (fixes issue #144).

  • MeshLoad Component: accepts again regular expressions (fixes issue #138).

Karamba3D 3.1.50925

New Features:

  • AnalyseThII Component: Introduced the NoComNII option, which restricts compressive normal or in-plane forces to small positive values in the geometric stiffness calculation. This enables stabilization of structures with localized compressive regions, such as membranes.

  • KeyListener Component: Utility component that triggers recomputation when the user presses Shift + F1–F12 within Rhino or Grasshopper. Facilitates rapid switching between Karamba3D model visualization modes.

  • Cross-Section Database: Updated and refined Japanese steel section data; introduced cross-section type H corresponding to I-profiles.

  • Material Database: Updated Japanese steel material properties.

  • HUD Legend Component: Added TextSize input parameter.

  • Element Query Component: Added Axis output to provide element axes.

Bug Fixes:

  • Second-Order Theory: Corrected omission of stabilizing effects from tensile normal and in-plane forces, which previously resulted in overly conservative buckling load factors and overestimated displacements in ThII analyses.

  • Load Case Combination: Eliminated duplicate load case generation; dead weight from multiple load cases can now be combined like other load types.

  • Beam Rendering: Enhanced beam mesh visualization by implementing independent caps as mesh parts.

  • Component Labels: Removed duplicate nicknames in English-language mode.

  • Node Forces Component: Elems output can now be used to derive element axes.

Karamba3D 3.1.50730

Bug Fixes:

  • Implemented a workaround to ensure Karamba3D updates properly on YAK.

  • Support Component: Resultant support reactions are now correctly transformed into global directions.

  • SurfaceToTruss Component: Subdivision count of 1 no longer causes an error.

  • New Mesher: Improved performance when intersecting a large number of surfaces.

  • BeamModifier: Resolved issue where the buckling length changed despite no input modifications.

  • LineToBeam Component: Buckling length can now be explicitly set to zero.

Karamba3D 3.1.50707

New Features:

  • Introduced the WIP "Report" component for exporting calculation results to Excel files.

  • Implemented a compatibility check for conflicting versions of "libiomp5md.dll" that may interfere with Karamba3D.

  • Relocated the language settings from "Show Components" to the "Settings" section of the Karamba3D Grasshopper menu.

  • Added a new "Number Format Digits" option under "Settings" in the Karamba3D menu for adjusting numeric precision of graphical outputs.

  • Updated the "Material Selection" component to include a country selector for filtering materials by region.

  • Standardized the "Surface To Truss" component output so that all typologies now generate the same number of geometry output branches.

  • Introduced a new legend component for heads-up display.

Bug Fixes:

  • Corrected the numeric labels on line-load symbols. (Fixes issue #119)

  • Nodal loads are now properly deactivated when all connected elements are inactive. (Fixes issue #120)

  • Disabled Trace.Listener output in the Rhino command window. (Fixes issue #122)

  • It is now possible to feed elements into the MeshLoad-component so that they get loaded. (Fixes issue #125)

  • Duplicate load cases are now properly removed from load case combinations. (Fixes issue #126)

  • The Tension/Compression component now supports individual load cases defined by 'loadCaseCombinationName/idx1/idx2/…', using specified indices for tension/compression elimination checks. (Fixes issue #127)

  • The WIP mesher now handles additional edge cases in Brep geometry.

  • Fixed the placement of concentrated beam loads on eccentric beam axes.

Karamba3D 3.1.50414

Bug Fixes:

  1. Resolved an error in calculating support reactions based on the second-order theory for shell and membrane elements. (Fixes issue #103)

  2. Removed a memory leak in the cross-section optimizer. (Fixes issue #102)

  3. Addressed issues in the cross-section optimizer related to optimization with displacement limits. (Fixes issues #101 and #100)

  4. Buckling length can now be set at the "LinearElement"-component. (Fixes issue #99)

  5. In the LineLineIntersection component, the "LDist" input now correctly sets the maximum distance for line intersections. Minimum intersection segment length is now allowed to be smaller. (Fixes issue #116)

  6. The "SurfaceToTruss" component now generates equal numbers of line segments for the upper and lower chords when set to "Warren Truss." (Fixes issue #115)

  7. Corrected a bug in the result selection logic. Numerical result components with "LCC/0" now correctly select only the first load case in a load case combination, rather than all. (Fixes issue #111)

  8. Updated the help texts for all "LCase" input parameters to clarify default behaviors. (Fixes issue #110)

Karamba3D 3.1.50129

Bug Fixes:

  1. Fixed bugs in the ReactionView-component: Now the legend colors and tags show up again.

  2. Added a ribbon icon for Karamba3D in RH8.

Karamba3D 3.1.50121

New Features

  1. Load-case and Load-case Combination Ordering:

    • Load-cases and their combinations are now ordered as they are input into the Assemble component.

    • Breaking Change: Older definitions relying on alphabetical ordering may be affected.

  2. Numerical Result Ordering:

    • Element results are now structured based on selection order at the corresponding component input.

    • Breaking Change: Previously, results were structured by tree-branches indexed by element index.

  3. String Input for Load-Containers: Allows the creation of a dummy load to facilitate ordering of load-cases within the Assemble component.

  4. Prediscribed Displacements at Supports: Now included within the 'Load' component.

  5. Enhanced Support Capabilities: Supports can now incorporate attached spring stiffnesses.

  6. BeamView Enhancements: Additional display options, including utilization visualization according to EC3 standards via colored lines, buckling lengths, and more.

  7. ModelView Improvements:

    • The "View" input plug now accepts planes and base-lines to define visibility settings.

    • Example available: "ModelView_SelectView_BaseLine.gh" in folder 07_Results of installed examples.

  8. "karamba.ini" Configuration: The parameter MinNumberOfSegmentsForResults can now be set to "1" to allow mesh faces spanning the entire beam length.

  9. LineJoint Component Usability: Simplified operation with no requirement for Y- and Z-direction definitions when working with naked edges and single-surface joints.

  10. Cross Section Optimizer Enhancements: Differentiates between elements reaching maximum size (warning issued) and elements where cross-section selection did not converge (remark issued).

  11. Element Utilization Calculation:

    • If no capacity exists to resist a specific cross-section force component, a value of 1E6 is added to utilization.

    • Utilization resulting predominantly from compression is now returned as a negative number.

  12. Parametric UI Rendering: Improved symbol display for better visualization.

Bug Fixes:

  1. Resolved memory leak issues.

  2. Fixed calculation bug in user-defined circular cross-section (Wt computation).

  3. Corrected "$" notation functionality for load-case selection in load-case combinations.

  4. Addressed a bug in static license activation.

  5. Fixed symbol scaling issues when switching units from meters to millimeters.

Karamba3D 3.1.41125

New Features:

  1. Async-Enabled Components: The following components are now fully asynchronous (async) compatible: AssembleModel, all Algorithms components, ModelView, BeamView, ShellView, LineResultsOnShells, MeshBreps and Shell Section. For details see section 2.6.

  2. Load Case Combinations: When defining combinations using the "Load-Case-Combinator" component, load case names containing special characters (e.g., +, -, *, etc.) can now be enclosed in quotation marks (" or ') to ensure proper handling as a single entity.

  3. Warning for Incomplete Load-Case Combinations: The Assemble component now issues a warning if load cases referenced in load-case combinations do not have associated loads.

  4. Rhino8 YAK-Installer Enhancements: The installer now includes support for both .NETCore 7 and .NET Framework versions.

Bug Fixes:

  1. Line-Load Annotations: Resolved an issue where annotations were missing on line loads applied to beams when combined with non-unit load factors.

  2. Connected Parts Component: Addressed missing paths in the "Connected Parts" component for models that include both shells and beams.

Karamba3D 3.1.41024

What's New:

The following components are now asynchronous (async) capable: AssembleModel, all Algorithms components, ModelView, BeamView, ShellView, LineResultsOnShells, and MeshBreps.

  • These components can operate without blocking the UI thread.

  • New context menu options include "Cancel" and "Parallel Execution."

  • Global async computation control is available under Karamba3D > Settings > Async Execution.

  • By default, async execution is turned off.

  • To prevent potential crashes, disable async execution when using loops or optimizers (e.g., Galapagos).

Karamba3D is now thread safe.

Fixed Bugs:

  • Resolved a crash that occurred when using Eigenmodes, NaturalVibes, or Buckling components before running any prior analysis.

Karamba3D 3.1.40918

What's New:

  • Load cases and load case combinations can now be excluded from the default set (e.g., for "Analyse") by adding an underscore ("_") at the start or end of their names.

  • Added an example script for retrieving the system stiffness matrix.

  • Improved the performance of the CroSecOpti routine.

  • Introduced safeguards against large models that would lead to long render times (configurable via the MaxEvaluationPointsInModel parameter in the karamba.ini file), which may occur due to incorrect length units.

Fixed Bugs:

  • Fixed a memory leak in the NaturalVibes calculation.

  • Corrected export issues for box cross-sections in Speckle.

  • Ensured the outline of trapezoid cross-sections is closed during Speckle export.

  • Fixed an exception when retrieving beam forces at positions defined by maximum distance.

  • Help text units now correctly update when the length unit setting in the GH definition differs from local user settings.

  • CroSecOpti: Displacement optimization now handles cases where elements exhibit negative virtual work.

  • Added safeguards for element identifiers against number-only names when using the "name1|name2|..." format, where multiple names can be assigned per element.

  • AnalyzeNonLin: Resolved crashes when working with multiple load cases.

  • Corrected display of prestrain load values.

  • Fixed scaling issues with load symbols when different length units are applied.

Karamba3D 3.1.40718

What's New:

  • Added Speckle structural model import- and export-component. It is work in progress. Enable "View WIP components" in the Karamba3D menu to see it.

Fixed Bugs:

  • Fixed a memory leak.

  • Fixed a bug in the displacement control part of the cross section optimizer.

  • SAF export: fixed signs of cross section forces and moments to correspond to IDEA StatiCa.

  • Fixed a units conversion bug regarding the stiffness values of the JointAgent-component.

  • Fixed a bug in the internalization of Karamba3D models.

New in Karamba3D 3.1.4

  • "Reaction View" component: This new component simplifies the rendering of reaction forces and moments at supports. A corresponding parametric user interface component, "Reaction View pui", is also available.

  • "Export Model to SAF" component: This component exports Karamba3D models to the SAF format, compatible with many traditional AEC applications. The export includes surfaces and certain types of surface loads.

  • "Create Linear Element" component: Consolidates functionality from the previous "Line to Beam", "Connectivity to Beam", and "Index to Beam" components into a single component.

  • "Optimize Cross Section" component: Now allows virtual force load-cases to be directly supplied, enabling finer control over displacement.

  • "Assemble Model" component: The "Points" input plug has been moved to the "Options" submenu to reduce confusion regarding required inputs for model assembly.

  • Changing the language or physical units in the Grasshopper/Karamba3D model now instantly updates component help texts and annotations.

  • Base physical units (force, length, mass) are now stored within the Grasshopper definition, making model exchange smoother and preventing unexpected changes.

  • MSI-installers are now available for Rhino 8 for both .NET Framework and .NET Core. The .NET Core version of Karamba3D is installed when using the package manager in Rhino 8.

  • Enhanced accuracy in representing discontinuities in beam section force diagrams.

  • Version numbering now reflects the build's year, month, and day (last five digits).

  • "Disassemble Mesh Load" component: Improved for exporting mesh loads as line loads on elements.

Bug Fixes:

  • Inclusion of the Spanish language version for user interface texts in the MSI-installer.

  • The "Element Felting" component now supports springs as connection elements.

New in Karamba3D 3.0.0.5

  • "Optimize Cross Section"-component:

    • Different load-case-combinations can be used for ultimate limit state (ULS) and serviceability limit state (SLS) design optimization.

    • Displacement optimization for SLS is now done using a virtual forces approach for more economic results.

    • Elements with insufficient cross sections in ULS and SLS can be highlighted using the "ModelView"-component.

  • The "ModelView"-component:

    • "Annotation/NII" option now outputs the NII force of the currently visible load-case.

    • A "Result Selection" submenu was added to the "ModelView"-component. This allows to quickly select the display of minimum and/or maximum results for load-case combinations of a specific load-case of a combination.

    • The "Annotations" submenu now contains a slider to quickly adapt display text-heights.

    • It is possible to display single shell sub-elements by providing "Shell-Index/Meshface-Index" at the "View" input-plug.

  • The "Line-Line Intersection"-component:

    • Has been refined: it is now possible to define intersecting lines and lines to intersect.

    • Can intersect parallel lines which lie on each other.

  • The grammar for defining load case combinations has been made more flexible.

  • The order of load cases and load case combinations in the model adheres to the order of defining load case combinations and feeding load cases into the assemble component.

  • The order of loads after disassembling a model now corresponds to the order of input at the "Assemble"-component.

  • When using Karamba3D's "Mesh Breps"-component the underlying surface gets attached to the mesh as custom data.

  • "Point-Mass"-component: added scaling factors for mass for translational inertia in global directions.

  • Added the "Analyse ThII"-component to have a shortcut for specifying second order theory analysis steps. This represents an alternative to applying the "Load Case Combination Settings"-component.

  • The "Buckling Modes"- and "Natural Vibes"-components now have an input-plug for specifying the load-case-combination from which second order theory forces NII are to be taken.

  • "Joint Agent"-component:

    • fixed bug that caused hinges to be added to beams when the beam-identifier of the second beam did not exist.

    • made limit-distance of joint agent for testing points for vicinity dependent on the limit-distance of the 'Assemble'-component.

  • Changed handling of materials with different absolute values of tensile and compressive strength in EC3 design procedure: sign of normal force decides whether the tensile or compressive strength shall be applied.

  • Added joint colors to the "karamba.ini"-file.

  • Added a warning in case Karamba3D detects another Grasshopper plug-in which might come with its own version of the OpenMP-library "libiomp5md.dll" since this can cause crashes.

  • Made "Shell Section"-component work with breps as intersecting geometries.

Bug fixes:

  • Fixed bug in serialization of locally oriented supports.

  • Fixed a bug in the retrieval of shell-section results which resulted in partial result display.

  • Parametric UI: made arrow heads scale with the forces and moments.

  • Fixed bug in definition of Tsai-Wu factor for orthotropic materials.

  • "LineToBeam"-component did not convert linear-curves. Now it does.

  • Material table: compressive strength of glulam timber was positive.

  • Fixed problem with coloring of results with small positive and large negative range.

  • Fixed bug in setting the color range via the "ModelView"-component.

New in Karamba3D 3.0.0.4

There are two big new features:

  • Load case combinations

  • Interoperability via BHoM (see section "BHom" of this manual and the Github repository here) which will be included in the official BHoM release in the next few days.

The current version 3.0.0 is work in progress:

  • Load-case combinations haven't yet been integrated into the cross-section optimizer. The "Optimize Cross Section"-component results are based on all load-cases present in the model.

  • The NIIN^{II}-forces used for cross section optimization, eigenmodes-, eigen frequency- and buckling-calculations are taken as the smallest value encountered in a previous analyze step.

  • Result combinations will be included to provide spectral analysis for earthquake loads.

  • Not all of the examples in this manual have not yet been updated to version 3.

Load Case Combinations

Up to now Karamba3D provided the possibility to work with load-cases. These were defined at the components for creating loads by specifying their name. With version 3.0.0 Karamba3D offers load case combinations.

These components help in creating and handling load case combinations:

  • "Load-Case-Combinator"-component: Takes a list of combination rules expressed as text and converts them into load-case combinations.

  • "Load-Case-Disassemble"-component: Reveals details of a load-case combination: which load-cases contribute with what factors.

  • "Load-Case-Combination Options"-component: Specifies details with regards to how the load-case-combination needs to be evaluated: first order theory, second order theory with possibility of linear superposition or second order theory for each load-case individually.

  • "Analyze"-component: Load-case combinations know about their calculation type. The "Analyze"-component uses this information to treat them accordingly. The user can specify the load-case-combinations of interest and limit analysis to these.

  • "Load-Case Selector"-component: Load case combinations can contain large sets of load-cases. The "Load-Case Selector"-component helps to select the results of interest for each point of a structure. It is possible to select the envelope of specific response properties, results of a load case of interest, or the set of results that accompany a leading property (e.g., maximum moment and other cross section forces that come along with it). The component outputs a query string which can be used as input for specifying the load-case in all result components of Karamba3D.

Depending on the given load-case selection result-components output values for multiple load-cases. This works now via Grasshopper's Data-Tree-objects. The outmost branches correspond to load-cases, then come positions along an element (if applicable), then the level of elements. Branch indexes at element-level correspond to element-indexes in the model. This eliminates the necessity to introduce dummy values in case a result-component does not apply to all types of elements.

Without the definition of load-case combinations the handling of Karamba3D models does not change as compared to previous versions of Karamba3D - with the exception of Data-Tree output at the result-components. Flattening these eliminates the difference between new and old version.

Last updated