Further Information

In addition to our technical support (e.g. via email, chat), we also offer an extensive range of free online services available 24/7 on our website.

Receive information including news, useful tips, scheduled events, special offers, and vouchers on a regular basis.

1 - 10 of 92

Sort by:

Items:

• How can I change the details and the National Annex in the STEEL EC3 add-on module by using the COM interface?

The following code displays all elements of the STEEL EC3 add-on module that can be modified via the COM interface:

//  get interface to active modeliModel = iApp.GetActiveModel();//  get interface to STEEL EC3 moduleIModule module = iModel.GetModule("STEEL_EC3") as Dlubal.STEEL_EC3.IModule;//  get interface to module caseICase iStEC3case = module.moGetCase(1, Dlubal.STEEL_EC3.ITEM_AT.AT_NO);//  get ultimate limit state options (Details > Ultimate Limit State)ULS_OPTIONS optsULS = iStEC3case.moGetULSOptions();//  get options for stability design (Details > Stability)STABILITY_OPTIONS optsStab = iStEC3case.moGetStabilityOptions();//  get options for serviceability design (Details > Serviceabiltiy)SERVICEABILITY_DEFORMATION_TYPE optsServDef = iStEC3case.moGetServiceabilityOptions();//  get fire resistance options (Details > Fire Resistance)FIRE_RESISTANCE_OPTIONS optsFire = iStEC3case.moGetFireResistanceOptions();//  get other options (Details > General)OTHER_OPTIONS optsOther = iStEC3case.moGetOtherOptions();//  get national annex (e.g. DIN, CEN, ...)NATIONAL_ANNEX natAn = iStEC3case.moGetNationalAnnex();//  get interface for national annex detailsINationalAnnex iNatAn =  iStEC3case.moGetNationalAnnexOptions();//  get base data for national annexNATIONAL_ANNEX_OPTIONS_BASE natAnBase = iNatAn.moGetBaseOptions();//  get data for general method from national annexNATIONAL_ANNEX_OPTIONS_GM natAnGM = iNatAn.moGetGMOptions();//  get data for lateral-torsional buckling from national annexNATIONAL_ANNEX_OPTIONS_LTB natAnLTB = iNatAn.moGetLTBOptions();//  get data for stainless steel from national annexNATIONAL_ANNEX_OPTIONS_STEEL natAnSTEEL = iNatAn.moGetSteelOptions();

The corresponding elements in the parameter dialog box of the add-on module are shown in Figure 02.

• Is a load considered within the surface for "Nodal support with column"?

New

004802

The load within this area is not taken into account, which can be clearly seen in the example in Figure 01. Here, a homogeneous temperature load (Tc only) was applied, which leads to stress peaks, although the surface can freely strain.

If it is important to consider the load, you can also model the support manually. To do this, simply create an opening of the size of the column and create a new surface corresponding to the surrounding surface (see Figure 02). The values for the spring stiffnesses can be found in the dialog box (see Figure 03).

A surface loaded in this way is then also without stress in the case of a temperature load, as shown in Figure 04.

• How can I transfer the effective lengths of members by using the COM interface?

New

004797

The factors for the effective lengths are transferred by using the interface for the member (IMember), which is called SetEffectiveLengths(). Use GetEffectiveLengths() to read out the data:

// get interface to running RFEM application.iApp = Marshal.GetActiveObject("RFEM5.Application") as IApplication;iApp.LockLicense();// get interface to active RFEM model.iModel = iApp.GetActiveModel();// get interface to model data.IModelData2 iModData = iModel.GetModelData() as IModelData2;// get interface to member 1IMember iMem = iModData.GetMember(1, ItemAt.AtNo);MemberEffectiveLengths memEffLen = iMem.GetEffectiveLengths();memEffLen.No = 1;memEffLen.CheckBucklingLoad = true;memEffLen.Enabled = true;memEffLen.FactorU = 1.1;memEffLen.FactorV = 1.2;memEffLen.FactorY = 1.3;memEffLen.FactorZ = 1.4;// set new effective lengths dataiModData.PrepareModification();iMem.SetEffectiveLengths(memEffLen);iModData.FinishModification();

Please note that it is only possible to read out the properties for the effective lengths (for example, EffectiveLengthY) of the MemberEffectiveLengths structure and the CriticalBucklingLoad property.

• How can I additionally model welds for the connection of two surfaces with a contact solid?

Since the boundary surfaces of contact solids can only be of the Null Surface type, it is necessary to model additional surfaces with a section. The following is an example for this.

There is a reinforcement of a plate with an additional plate. Both plates are connected by means of a contact solid:

In order to simulate a weld, borders are required on both plates:

You can simply create the bottom border by inserting a new rectangular surface. In this case, the program asks whether the surface should be integrated into the base surface, which must be confirmed by clicking Yes. There are then two openings in the bottom surface; one in the outermost surface where lies the surface for the border, and another in the surface for the border where lies the bottom surface of the contact solid:

For the upper border, it is also necessary to create a new surface, and the opening to the upper surface of the contact solid must be inserted manually:

After creating the borders, you can insert the actual surfaces for the weld:

If the reinforcing plate is subjected to tension now, the modeled weld transfers the tension stresses:

• How can I create a user-defined coordinate system via the COM interface and then assign it to a nodal support?

New

004789

For the programming using the COM interface, a nodal support has the "ReferenceSystem" and "UserDefinedReferenceSystem" properties. "ReferenceSystem" allows you to define the type of the user-defined coordinate system (for example, "Rotated" or "Coordinate System"), and depending on which type has been selected, this type is then defined via "UserDefinedReferenceSystem."

In the following example, the "Coordinate system" was set as the type and a user-defined coordinate system was also created for it:

//  create user defined coordinate systemIGuideObjects iGuide = iModel.GetGuideObjects();//  delete cosy No 2UserCoordinateSystem[] csList = iGuide.GetCoordinateSystems();if (csList.Length > 1){    for (int i = 0; i < csList.Length; ++i)    {        if (csList[i].No == 2)        {            iGuide.PrepareModification();            iGuide.DeleteObjects(GuideObjectType.CoordinateSystemObject, "2");            iGuide.FinishModification();        }    }}//  define new cosy No 2UserCoordinateSystem uCs = new UserCoordinateSystem();uCs.Name = "test";uCs.Comment = "test";uCs.No = 2;uCs.IsValid = true;uCs.Origin.X = 1;uCs.Origin.Y = 0;uCs.Origin.Z = 1;uCs.Point1.X = 2;uCs.Point1.Y = 0;uCs.Point1.Z = 1;uCs.Point2.X = 1;uCs.Point2.Y = 1;uCs.Point2.Z = 2;//  set cosy No 2iGuide.PrepareModification();iGuide.SetCoordinateSystem(uCs);iGuide.FinishModification();//  create nodal support with user defined cosyNodalSupport ns = new NodalSupport();ns.SupportConstantX = -1;ns.SupportConstantY = -1;ns.SupportConstantZ = -1;ns.RestraintConstantX = -1;ns.RestraintConstantY = 0;ns.RestraintConstantZ = -1;ns.Comment = "user defined cosy";ns.NodeList = "1";ns.ReferenceSystem = ReferenceSystemType.UserDefinedSystemType;ns.UserDefinedReferenceSystem.ObjectNo = 2;ns.UserDefinedReferenceSystem.Type = UserDefinedAxisSystemType.DefinedCoordinateSystemType;iModData.PrepareModification();iModData.SetNodalSupport(ns);iModData.FinishModification();

To be able to create the coordinate system, the interface for the guide objects is required: 'IGuideObjects'. With the "DeleteObjects()" function, an existing coordinate system of Number 2 is first deleted and a new one is created with "SetCoordinateSystem()." Please note the "Prepare/Finish-Modification" block to be able to transfer the new element.

The nodal support is transferred via the "IModelData" interface. Again, the "Prepare/Finish-Modification" block is required.

• I would like to perform a stability analysis of the upper flange in a long truss. What is the best way to proceed?

According to DIN EN 1993‑1‑1:2010‑12 [1], Annex BB.1.1, the buckling length may be used in the individual bracing under certain conditions. This means that in this case, the individual members, not a set of members, can be applied with the effective length factors specified in the standard.

Since this approach only considers the local failure, it is necessary to analyze the global failure of the entire structure. For this design, the set of members must have the corresponding imperfection. Under certain conditions, the design can be performed on single members, depending on the model (for example, a tower), or the set of members must be analyzed for a failure from the plane (the truss), as in the attached example.

• How can I display the deformation in the current construction stage and in relation to the initial system in RF‑STAGES?

The reference system can be changed both in the graphical display in the Project Navigator (see Figure 01) or in the tabular results in the add-on module (Figure 02).

Figure 03 shows the different deformations of a structural system. On both sides, Construction Stages 2 to 4 are displayed from top to bottom, referring to the undeformed system (initial state) on the left and to the respective construction stage on the right.

• What are the StandardID and AnnexID of various National Annexes for the processing using the COM interface?

StandardID and AnnexID can be easily displayed at any time by using the following macro:

cominterfaces-en\SDK\Examples\Modules\Excel\RF-STEEL_EC3.xls

You can find this macro in the archive of the product website (see Links).

Here is an overview of the current attachments:

StandardID AnnexID Name

DIN 0 Germany

ÖNORM 1 Austria

CSN 2 Czech Republic

STN 3 Slovakia

PN 4 Poland

SIST 5 Slovenia

DK 6 Denmark

UNI 7 Italy

NEN 8 Netherlands

SFS 9 Finland

SS 10 Sweden

NF 11 France

BS 12 United Kingdom

CEN 13 European Union

BDS 14 Bulgaria

CYS 15 Cyprus

LST 16 Lithuania

SR 17 Romania

SS 18 Singapore

NBN 19 Belgium

NP 20 Portugal

UNE 21 Spain

MAL 22 Malaysia

NS 23 Norway

LU 24 Luxembourg

ELOT 25 Greece

• Is it possible to create visibilities using the COM interface?

Yes, it is possible to create visibilities via the COM interface (RF‑COM3 / RS‑COM6). In the following code, the elements are first selected for a visibility. This is done via Selections. First, activate them with "rfEnableSelections," then you can use "rfSelectObjects" to select the objects:

Sub set_visibility() ' get interface from the opened model and lock the licence/programDim iModel As RFEM3.IrfStructure3Set iModel = GetObject(, "RFEM3.Structure")iModel.rfGetApplication.rfLockLicence On Error GoTo e ' get interface for modeldataDim iModdata As RFEM3.IrfStructuralData4Set iModdata = iModel.rfGetStructuralData iModdata.rfEnableSelections True iModdata.rfSelectObjects STR_MEMBER, "1-2"'iModdata.rfSelectObjects STR_MEMBERS_SET, "1"'iModdata.rfSelectObjects STR_NODE_SUPPORT, "1" ' get interface for viewDim iView As RFEM3.IrfView2Set iView = iModel.rfGetActiveView iView.rfSetPartialView "test|view"'iView.rfSelectPartialView "test|view", PVM_SHOW, True, True e: If Err.Number <> 0 Then MsgBox Err.description, , Err.Source iModel.rfGetApplication.rfUnlockLicenceSet iModel = NothingEnd Sub

You can use the "iView" interface and the "rfSetPartialView" command to create a visibility. The description is especially important here. The separator "|" ensures that the visibility with the "view" name is created in the "test" group.

In the code, you can find further alternative commented commands. Please note the "rfSelectPartialView" command, which allows you to activate the visibility. This visibility is then displayed, for example, directly in RFEM (PVM_SHOW), depending on the set command.

• How can I select objects via the COM interface?

For selecting objects, there is the "SelectObjects" function in the IModelData interface (or IModeldata2 and the like). The function expects the object type and the object number(s) as a string. Here is a short example:

Sub select_objects()Dim model As RFEM5.modelSet model = GetObject(, "RFEM5.Model")model.GetApplication.LockLicenseOn Error GoTo e        Dim iModdata As IModelData2    Set iModdata = model.GetModelData        '   enable Selections    iModdata.EnableSelections True        '   select nodes 2-3 and lines 1 and 3    iModdata.SelectObjects ModelObjectType.NodeObject, "2-3"    iModdata.SelectObjects ModelObjectType.LineObject, "1,3"        '   deselect nodes and lines    iModdata.SelectObjects ModelObjectType.NodeObject, ""    iModdata.SelectObjects ModelObjectType.LineObject, ""        e:  If Err.Number <> 0 Then MsgBox Err.description, , Err.Sourcemodel.GetApplication.UnlockLicenseSet iModdata = NothingSet model = NothingEnd Sub

In the upper part, the selections are activated, and then Nodes 2 to 3 and Lines 1 and 3 are selected. Then, the lines and nodes are deselected by an empty string.

If you want to read or modify selected objects, you need the "IModelData.EnableSelections" function (can also be found above in the code). If the function is retrieved with "True," only the selected nodes are obtained with the "IModelData.GetNodes ()" function, for example.

1 - 10 of 92

If not, contact us via our free e-mail, chat, or forum support, or send us your question via the online form.

First Steps

We provide hints and tips to help you get started with the main programs RFEM and RSTAB.

Wind Simulation & Wind Load Generation

With the stand-alone program RWIND Simulation, wind flows around simple or complex structures can be simulated by means of a digital wind tunnel.

The generated wind loads acting on these objects can be imported to RFEM or RSTAB.

Your support is by far the best

“Thank you for the valuable information.

I would like to pay a compliment to your support team. I am always impressed how quickly and professionally the questions are answered. I have used a lot of software with a support contract in the field of structural analysis, but your support is by far the best. ”