Karamba - Utilization of elements components not working

I’m studying a fairly simple structure of lattice girder.
Everything works fine except the “utilization of elements” components , who tells me the following error:

  1. Iteration pattern # 0: the entry point ‘CSharp_feb_new_VectSizeT__SWIG_0’ can not be found in the ‘karamba’ DLL. May cause errors in exported templates.

I do not understand the problem …

I am using Rhino5 and Karamba3d 1.3.1 build 181001

Here is the model

test treillis1.gh (37.2 KB)

Thanks for your help

Hello Jacques,
it seems like something went wrong during the installation of Karamba3D: the versions of the C# and the C++ part of the program do not fit together.
Try this:

  1. Uninstall Karamba3D manually.
  2. Search your harddisk for files named ‘karamba.gha’, ‘karambaCommon.gha’ and ‘karamba.dll’ and delete them.
  3. Install the current build of Karamba3D.


Thanks you Clemens i will try.

I think there is a bug in the utlization of elements componets.
I use the lastest version and rhino 6.
I have a 3 mts beam, I use the utilization tool with a HEA180 cross section. The beam is divided in 6 sections. In the utilization tool the details output is displaying that some elements are considering a cross sections resistance lower than the real one, is this a bug or why is this happening?

Thank you a lot for your time01_SimpleBeam.gh (50.6 KB)

Hello @a01138514,

the utilization returned by the ‘BeamView’-component is the ratio between the normal stress in a point and the stength of the material.

The utilization calculated by the ‘Utilization of Elements’-component calculates for beams the utilization based on Eurocode 3 and considers the cross section as a whole. This includes buckling, torsional buckling and the interaction of shear forces and bending moments. For details please see the manual.

In your system the maximum bending moment My coincides with the maximum shear Vz. Therefore the overall utilization is larger than that based on the ratio of shear stress and material strangth alone (see 01_SimpleBeam_cp.gh (50.0 KB) ).


Thank you for your answer Clemens!

I think that I explain myself wrong. What I mean is that the utilization calculated by ‘Utilization of Element’- component is using different values of axial resistance for elements with exactly the same cross section. In this case the resistance should be 1063.38 kN and for another element with exact the same cross section is taking a value of 815.08 kN.

Thanks for your time Clemens

Good morning clemens @karamba3d , @a01138514
Very good questions.

It may be better if we open a new topic to talk about this problem

I do not understand why we have different chi.y and ch.z for both end beam element.

I agree on the values ​​chi.y: 0.9144 and chi.z: 0.7205 for a buckling length of 3m of a hea 180 beam.

But when i calculate the Nrd i dont find the same values as Karamba.
With a Gam0=1 fy=235MPa and A=45.30cm2 i find Nb.rd.zz = 766.9 kN and Nb.rd.yy 973.49 kN
So less than the Nbrd given by Karamba (Nbrd Karamaba = 1063 kN)

Edit : But good news, in the karamba exemple there was not a load who generate compression in the beam.
So i tried with a unique point load who generate uniform compression along the beam
And the result of chi.y and chi.z factors are the same in all beams elements.

But i always have the same misunderstanding about the final Nb.rd calculated by Karamba.01_SimpleBeam_cp-Jac.gh (67.3 KB)

1 Like

Hello @a01138514,
it would be more clear if instead of ‘N_Rd’ I would have written ‘N_Rd_red’. The reduction of ‘N_Rd’ comes from the presence of shear forces. The corresponding part of the design procedure looks like this:

		// account for shear and bending moment
		// according to EN 1993-1-1, 6.2.8 (4)
		real rhoY = 1.0;
		real rhoZ = 1.0;
		if (Vy_pl_T_Rd != 0) {
			util_element_.shear.fac_Vy = Vy / Vy_pl_T_Rd;
			if (Vy <= 0.5*Vy_pl_T_Rd) {
				rhoY = 0.0;
			else {
				rhoY = SQR(2 * Vy / Vy_pl_T_Rd - 1);
		else {
			util_element_.shear.fac_Vy = 1000;

		if (Vz_pl_T_Rd != 0) {
			util_element_.shear.fac_Vz = Vz / Vz_pl_T_Rd;
			if (Vz <= 0.5*Vz_pl_T_Rd) {
				rhoZ = 0.0;
			else {
				rhoZ = SQR(2 * Vz / Vz_pl_T_Rd - 1);
		else {
			util_element_.shear.fac_Vz = 1000;

		// simplification: largest rho is used for both directions Y and Z
		real rho = rhoY > rhoZ ? rhoY : rhoZ;
		// when set to 1 rho causes N_Rd, My_Rd and Mz_Rd to be zero which leads to 
                    // util = 3000 which is hard to interpret
		rho = rho < 1.0 ? rho : 0.99;

		// reduction factor according to EN 1993-1-1, 6.2.8 (3), equation 6.29
		real red_fac = 1.0 - rho;
		real fy_red = red_fac * fy;

		real N_Rd_red = N_Rd * red_fac; 


1 Like

Dear @keuj.84,
could you please open a new discussion regarding the chi-values?

Thank you Clemens

Hello Clemens @karamba3d

As you say, it will be more understandable if we replace N_Rd term by N_byy_Rd, N_bzz_Rd or N_V_Rd as the case.

And the same for My_Rd (and others), who could be remplace by My_C_Rd, My_N_Rd, My_V_Rd, My_B_Rd…ect

I do not know if it’s difficult to code, but it will be easier for us to understand the limit values.

it’s just a suggestion :slight_smile:


Another point.
Can we have access to the design procedure you specify in Karamba ?


Hallo Jacques,

here is the current version of the procedure used in Karamba3d 1.3.2. for calculating the utilization of beams according to EC3: UtilChecker_EC3.cpp (19.1 KB) .
It can also be downloaded without implementation details from here.


1 Like