Frequently Asked Questions (FAQ)

Search FAQ

Show Filter Hide Filter

Customer Support 24/7

Knowledge Base

In addition to our technical support (e.g. via chat), you’ll find resources on our website that may help you with your design using Dlubal Software.


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

  • Answer

    The following VBA macro shows the creation of two member eccentricities. The source code can be downloaded under Downloads.

    '------------------------------------------------- -------------------------------------------------
    Sub SetEccs ()
    '------------------------------------------------- -------------------------------------------------
    Dim model As RSTAB8.model
    Dim data As IModelData
    Dim ecc (1) As RSTAB8.MemberEccentricity

    'Get interface for model
    Set model = GetObject (, "RSTAB8.Model")
    'Block COM license and program access

        On Error GoTo e
    'Get interface for model data
        Set data = model.GetModelData

    'Define eccentricity 1
    ecc (0) .No = 1
    ecc (0) .ReferenceSystem = LocalSystemType
    ecc (0) .Start.X = 0.01
    ecc (0) .Start.Y = 0.02
    ecc (0) .Start.Z = 0.03
    ecc (0) .End.X = -0.01
    ecc (0) .End.Y = -0.02
    ecc (0) .End.Z = -0.03
    ecc (0) .Comment = "eccentricity 1"
    'Define eccentricity 2
    ecc (1) .No = 2
    ecc (1) .ReferenceSystem = GlobalSystemType
    ecc (1) .Start.X = -0.07
    ecc (1) .Start.Y = -0.08
    ecc (1) .Start.Z = -0.09
    ecc (1) .End.X = 0.07
    ecc (1) .End.Y = 0.08
    ecc (1) .End.Z = 0.09
    ecc (1) .Comment = "eccentricity 2"
    'Transfer member eccentricities
    data.SetMemberEccentricities ecc

    e: data.FinishModification
    If Err.Number <> 0 Then MsgBox Err.Description,, Err.Source
    'COM license is unlocked, program access possible again

    End Sub
  • Answer

    Yes, it is possible to exchange data between the LayPLAN software by Layher and RSTAB. The "LayPLAN TO RSTAB" tool allows you this.

    You can easily transfer scaffolding structures to RSTAB. The "LayPLAN TO RSTAB" interface transfers geometry data as well as statically relevant information, such as cross-section and material data, member types, eccentricities, and nonlinear joint definitions according to the approval.

    To operate this interface, an active license of RS‑COM to RSTAB is required.

    A perpetual license or a rental license is available for RS‑COM.
  • Answer

    You can use the COM interface to define nonlinear support conditions. The attached video and code shows an example of the support failure.
  • Answer

    By initializing a variable of the Application (interface) type with "new", RFEM/RSTAB is started in the background. With this variable, you can also create a new model using the "CreateModel" method, or close the program using the "Close" command.

    The following example shows how to start RSTAB, create a model with a node in the program, and close the program:

    Sub RSTAB_open_close()

    Dim filename As String
    filename = Application.ActiveSheet.Cells(7, 3)

    '   start rfem
    Dim iApp As RSTAB8.Application
    Set iApp = New RSTAB8.Application


    On Error GoTo E

        '   create model
        Dim iMod As RSTAB8.IModel2
        Set iMod = iApp.CreateModel(filename)
        '   add data to model
        Dim nd As RSTAB8.Node = 10
        nd.X = 1
        nd.Y = 2
        nd.Z = 3
        Dim iModdata As RSTAB8.iModelData
        Set iModdata = iMod.GetModelData
        iModdata.SetNode nd
        iMod.Save filename

    E:  If Err.Number <> 0 Then MsgBox Err.description, , Err.Source
        Set iModdata = Nothing
        Set iMod = Nothing
        Set iApp = Nothing
    End Sub

    The "iApp.Show" command is optional. This allows for displaying the program normally, not in the background.

    Under Downloads, you can find an Excel macro with the subroutines for RFEM and RSTAB.

    Please note that the folder, where the file is created, must exist.

  • Answer

    The *.dll and *.tlb files were probably not updated correctly on your computer. Please proceed as follows:

    1. Rename the following folders in Dlubal.bak:

         C:\Program Files (x86)\Common Files\Dlubal

         C:\Program Files\Common Files\Dlubal

    2. Reinstall RFEM or RSTAB.

    3. Move the files from the newly created Dlubal folders to the respective Dlubal.bak folders (overwrite all).

    4. Rename the Dlubal.bak folder to Dlubal.

  • Answer

    In order to only calculate specific load cases, load combinations, or result combinations in the same way as the "To Calculate..." command (see Figure 01), you can use the CalculateBatch method of the ICalculation interface. For the transfer, the method expects a field with the load type of Loading. This Loading includes the number of the load, and the type (for example, a load combination):

    Sub batch_test()
    '   get interface from the opened model and lock the licence/program
        Dim iModel As RFEM5.IModel3
        Set iModel = GetObject(, "RFEM5.Model")

    On Error GoTo e
        '   get interface for calculation
        Dim iCalc As ICalculation2
        Set iCalc = iModel.GetCalculation
        '   create array with loading types
        Dim loadings(3) As Loading
        loadings(0).no = 1
        loadings(0).Type = LoadCaseType
        loadings(1).no = 4
        loadings(1).Type = LoadCaseType
        loadings(2).no = 4
        loadings(2).Type = LoadCombinationType
        '   calculate all loadings from the array at once
        iCalc.CalculateBatch loadings

    e:  If Err.Number <> 0 Then MsgBox Err.description, , Err.Source
        Set iModelData = Nothing
        Set iModel = Nothing

    End Sub
  • Answer

    An imperfection is considered as a load and is transferred via the interface of the load case. Provided that the interface to the model has already been imported, the interface to the loads (ILoads) followed by the interface to Load Case 1 (ILoadCase) will subsequently be imported, if it has already been created before:

            '   set loadcases
            Dim iLoads As iLoads
            Set iLoads = model.GetLoads
            '   get load case
            Dim iLc1 As ILoadCase
            Set iLc1 = iLoads.GetLoadCase(1, AtNo)
            '   define imperfection
            Dim imperf As Imperfection
            imperf.Comment = "test"
            imperf.Direction = LocalZType
            imperf.Inclination = 200
   = 1
            imperf.ObjectList = 1
            imperf.Precamber = 300
            imperf.PrecamberActivity = ActivityAccording_EN_1993_1_1
            '   set imperfection
            iLc1.SetImperfection imperf

    The data of the imperfection is then filled out first, here for Member 1, and then transferred within the Prepare-/FinishModification block of the Interfaces load case.

  • Answer

    To modify an existing element, you have to get the interface to the corresponding element, in this case on an example of a member:

        Dim iModel As RSTAB8.model
        Set iModel = GetObject(, "RSTAB8.Model")
        Dim iModData As IModelData
        Set iModData = iModel.GetModelData
        Dim iMem As RSTAB8.IMember
        Set iMem = iModData.GetMember(1, AtNo)

    Use this code to get the interface to Member 1, which should already be created. Then, you can use the .GetData () method of the interface to get the member data.

    If you want to modify the data (such as the member rotation here), you can subsequently transfer it to the program within the Prepare-/FinishModification block with the method .SetData ().

        Dim mem As RSTAB8.Member
        mem = iMem.GetData
        mem.Rotation.Angle = 0.5
        mem.Rotation.Type = RSTAB8.Angle
        iMem.SetData mem
  • Answer

    The following code shows how to get different calculation parameters via the COM interface. It also shows how to specify the setting for deactivating shear stiffness:

        '   get model interface
        Set iApp = iModel.GetApplication()
        '   get calculation interface
        Dim iCalc As RFEM5.ICalculation2
        Set iCalc = iModel.GetCalculation
        '   get surface bending theory
        Dim calc_bend As RFEM5.BendingTheoryType
        calc_bend = iCalc.GetBendingTheory
        '   get settings for nonlinearities
        Dim calc_nl As RFEM5.CalculationNonlinearities
        calc_nl = iCalc.GetNonlinearities
        '   get precision and tolerance settings
        Dim calc_prec As RFEM5.PrecisionAndTolerance
        calc_prec = iCalc.GetPrecisionAndTolerance
        '   get calculation settings
        Dim calc_sets As RFEM5.CalculationSettings
        calc_sets = iCalc.GetSettings
    'get calculate options
        Dim calc_opts As RFEM5.CalculationOptions
        calc_opts = iCalc.GetOptions
        '   set ShearStiffness to false
        calc_opts.ShearStiffness = False
        iCalc.SetOptions calc_opts

    Under Downloads, you can find the EXCEL macro.
  • Answer

    Friction is a nonlinearity and can therefore only be modified via the interface to the member hinge.

    For this, it is first necessary to create the member hinge, if not already available. Then, the IMemberHinge interface is brought to the member hinge and then to the nonlinearity (here IFriction). Then, you can use the methods GetData and SetData to modify the data (here Friction):

    Sub SetMemberHingeFriction ()

        Dim model As RFEM5.model
        Set model = GetObject(, "RFEM5.Model")

        On Error GoTo e

        Dim data As IModelData
        Set data = model.GetModelData

        Dim hinge(0 To 0) As RFEM5.MemberHinge

        hinge(0).No = 1
        hinge(0).RotationalConstantX = 1
        hinge(0).RotationalConstantY = 2
        hinge(0).RotationalConstantZ = 3
        hinge(0).TranslationalConstantX = 4
        hinge(0).TranslationalConstantY = 5
        hinge(0).TranslationalConstantZ = 6
        hinge(0).Comment = "Member Hinge 1"
        hinge(0).TranslationalNonlinearityX = FrictionAType

        data.SetMemberHinges hinge
        ' get interface for member hinge
        Dim imemhing As IMemberHinge
        Set imemhing = data.GetMemberHinge(1, AtNo)
        ' get interface for nonlinearity 'friction'
        Dim iFric As IFriction
        Set iFric = imemhing.GetNonlinearity(AlongAxisX)
        ' get friction data
        Dim fric As Friction
        fric = iFric.GetData
        fric.Coefficient1 = 0.3
        ' set friction data
        iFric.SetData fric
    e:  If Err.Number <> 0 Then MsgBox Err.Description, , Err.Source

        Set data = Nothing
        Set model = Nothing

    End Sub

    In the case of the friction Vy + Vz, the Coefficient2 is used to set the second coefficient. The spring constant in the Friction dialog box is controlled by the translational spring of the member hinge. In this particular case, this is TranslationalConstantX for the X‑direction (see Figure 01).

1 - 10 of 25

Contact us

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

+49 9673 9203 0

First Steps

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. ”