In case of any questions or problems, we are here for you. In addition to personal support (for example, via email or chat), you can find useful resources available 24/7 on our website.
Frequently Asked Questions (FAQ)
Search FAQ
Further Information
Customer Support 24/7
-
Answer
One possibility is to call this URL while RFEM is running:
This shows the definition of the entire API as XML (see also WSDL https://en.wikipedia.org/wiki/Web_Services_Description_Language).
A pragmatic way to determine the parameters is, for example, to first compile the desired material in RFEM and then read out the properties. The following program shows the procedure:
- code.python #
from RFEM.initModel import *
Model (True, ' Material.rf6 ') Model.clientModel.service.begin_modification ()
m = Model.clientModel.service.get_material (1) print (m)
Model.clientModel.service.finish_modification () Model.clientModel.service.close_connection ()
- /#
This method can be used for all objects in RFEM.
-
Answer
A function for nonlinear line hinges is currently not available in the Python High Level Library. However, since user-defined parameters can be used as usual in the method for line hinges, it is not a problem to also generate nonlinear line hinges.
In the example program, 2 rectangular surfaces with nodal supports are first created, which are connected on line 6.
The definition of the nonlinear line hinge begins from line 39. First, a dictionary
p
is created with the parameters. 3 degrees of freedom of displacement and one degree of freedom of rotation must be defined. The value0.0
means that the Count of Freedom is free. If a numerical value is written instead, it is interpreted as a spring. Make sure that SI basic units are used here. Withinf
the degree of freedom is defined as fixed.The y-direction should be given a non-linearity. This is set with the key
translational_release_u_y_nonlinearity
. This article describes how necessary values such asNONLINEARITY_TYPE_FAILURE_IF_POSITIVE
can be determined.[Link to article]
- code.python #
from RFEM.enums import * from RFEM.initModel import * from RFEM.BasicObjects.node import Node from RFEM.BasicObjects.line import Line from RFEM.BasicObjects.material import material from RFEM.BasicObjects.thickness import Thickness from RFEM.BasicObjects.surface import Surface from RFEM.TypesForNodes.nodalSupport import NodalSupport from RFEM.TypesForLines.lineHinge import LineHinge from RFEM.dataTypes import inf
Model (True, "Line Hinge") Model.clientModel.service.begin_modification ()
Node (1, 0.0, 0.0, 0.0) Node (2, 5.0, 0.0, 0.0) Node (3, 10.0, 0.0, 0.0) Node (4, 0.0, 4.0, 0.0) Node (5, 5.0, 4.0, 0.0) Node (6, 10.0, 4.0, 0.0)
Line (1, ' 1 2 ') Line (2, ' 2 3 ') Line (3, ' 4 5 ') Line (4, ' 5 6 ') Line (5, ' 1 4 ') Line (6, ' 2 5 ') Line (7, ' 3 6 ')
Material (1, ' S235 ')
Thickness (1, material_no = 1, uniform_thickness_d = 0.050)
Surface (1, ' 1 6 3 5 ') Surface (2, ' 2 7 4 6 ')
NodalSupport (1, ' 1-3 4-6 ')
p = {
- ' translational_release_u_x ': 0.0,
- ' translational_release_u_y ': 0.0,
- ' translational_release_u_y_nonlinearity ': ' NONLINEARITY_TYPE_FAILURE_IF_POSITIVE ',
- ' translational_release_u_z ': inf,
- ' rotational_release_phi_x ': inf
} LineHinge (1, ' 1/6 ', params = p)
Model.clientModel.service.finish_modification () Model.clientModel.service.close_connection ()
- /#
-
Answer
In the example program, a cantilever is first created from an IPE 200. This is loaded with a member load of 3.5 kN and the calculation is carried out.
This table is accessed in line 34:
[Image 5910]
The
ResultTables.NodesDeformations ()
method requires 3 arguments. First, it is determined which type of results are to be read out. Results of- Load cases
- Load combinations
- Result Combinations
- Design Situations
- Construction Stages
be.
Then the number of the load case, load combination, etc. is given. For the shot, the node number is transferred to the method.
The return value
d
of the method is a list that contains a dictonary. In line 37,d
is displayed in full. Line 40 shows how a specific value can be accessed.[0]
is the list index and[' displacement_z ']
is the key of the dictionary.- code.python #
from RFEM.enums import * from RFEM.initModel import * from RFEM.BasicObjects.material import material from RFEM.BasicObjects.section import Section from RFEM.BasicObjects.node import Node from RFEM.BasicObjects.member import member from RFEM.TypesForNodes.nodalSupport import NodalSupport from RFEM.LoadCasesAndCombinations.staticAnalysisSettings import StaticAnalysisSettings from RFEM.LoadCasesAndCombinations.loadCase import LoadCase from RFEM.Loads.memberLoad import MemberLoad from RFEM.Results.resultTables import ResultTables
Model (True, "Beam.rf6") Model.clientModel.service.delete_all () Model.clientModel.service.begin_modification ()
Material (1, ' S235 ') Section (1, ' IPE 200 ')
Node (1, 0.0, 0.0, 0.0) Node (2, 5.0, 0.0, 0.0)
Member.Beam (1, 1, 2, start_section_no = 1, end_section_no = 1)
NodalSupport (1, ' 1 ', NodalSupportType.FIXED)
StaticAnalysisSettings.GeometricallyLinear (1, "Linear") LoadCase (1, ' Load ', [True, 0.0, 0.0, 1.0])
MemberLoad (1, 1, ' 1 ', magnitude = 3500)
Calculate_all ()
d = ResultTables.NodesDeformations (CaseObjectType.E_OBJECT_TYPE_LOAD_CASE, 1, 2)
- all:
print (d)
- displacement in Z
print (d [0] [' displacement_z '])
Model.clientModel.service.finish_modification ()
- /#
-
Answer
The example program shows two different methods of creating nodal supports. The enumeration type
NodalSupportType
is used for the first nodal support.Alternatively, a list can also be transferred. The list must contain 6 values. The first three values define the degrees of freedom of movement, the last three the degrees of freedom of torsion.
The value
inf
means that the degree of freedom is fixed. With0
the degree of freedom is not maintained. A numerical value defines a spring.- code.python #
from RFEM.enums import * from RFEM.initModel import * from RFEM.BasicObjects.node import Node from RFEM.TypesForNodes.nodalSupport import NodalSupport from RFEM.dataTypes import inf
Model (True, ' Nodal_support.rf6 ')
Model.clientModel.service.begin_modification ()
Node (1, 0.0, 0.0, 0.0) Node (2, 5.0, 0.0, 0.0)
NodalSupport (1, ' 1 ', NodalSupportType.HINGED) NodalSupport (2, ' 2 ', [inf, inf, inf, 0, 234000, 0])
Model.clientModel.service.finish_modification () Model.clientModel.service.close_connection ()
- /#
-
Answer
In the Python High Level Library there is no direct function for the generation of orthotropic material. However, it is possible to transfer user-defined parameters for all methods. This means that such a material can easily be produced. This example shows the procedure:
- code.python #
from RFEM.enums import * from RFEM.initModel import * from RFEM.BasicObjects.material import material
Model (True, ' Material.rf6 ') Model.clientModel.service.begin_modification ()
p = {
- "material_type": "TYPE_TIMBER",
- "material_model": "MODEL_ORTHOTROPIC_2D",
- "application_context": "TIMBER_DESIGN",
- "stiffness_modification": True,
- "stiffness_modification_type": "STIFFNESS_MODIFICATION_TYPE_DIVISION"
} Material (1, ' C24 | EN 338: 2016-04 ', params = p)
Model.clientModel.service.finish_modification () Model.clientModel.service.close_connection ()
- /#
The user-defined parameter is first defined as Dictonary
p
and then transferred toparams
when creating the material. This article shows the possibilities:[Link to article]
-
Answer
With
SetAddonStatus (Model.clientModel, AddOn.timber_design_active, True)
the add-on multi-layer structure is activated first.In the next step, an orthotropic material is created. To do this, it is necessary to use user-defined parameters when creating the material. They are first saved in the dictionary
p
and then passed as the parameter params.With
Thickness.Layers(1, 'CLT', [[0, 1, 0.012, 0.0], [0, 1, 0.010, 90]])
the Thickness applied. A nested list is passed as parameters after the number and the name. Each entry in the list represents a layer. If isotropic material is created, the list must contain 3 entries for a layer, the type of layer, material number and layer thickness. If the material is orthotropic, as in this case, then the list must also include a 4th Entry contain the angle of rotation. Watch out! The angle of rotation is given in DEG and not in RAD as is usual.- code.python #
from RFEM.initModel import * from RFEM.BasicObjects.material import material from RFEM.BasicObjects.thickness import Thickness
Model (new_model = True, model_name = "MyModel") Model.clientModel.service.begin_modification () Model.clientModel.service.delete_all ()
SetAddonStatus (Model.clientModel, AddOn.timber_design_active, True) addonLst = Model.clientModel.service.get_addon_statuses () addonLst ["multilayer_surfaces_design_active"] = True Model.clientModel.service.set_addon_statuses (addonLst)
p = {
- "material_type": "TYPE_TIMBER",
- "material_model": "MODEL_ORTHOTROPIC_2D",
- "application_context": "TIMBER_DESIGN",
- "stiffness_modification": True,
- "stiffness_modification_type": "STIFFNESS_MODIFICATION_TYPE_DIVISION"
} Material (1, ' CL26E11.8 | Hasslacher ', params = p)
Thickness.Layers(1, 'CLT', 1, 0.012, 0.0], [0, 1, 0.010, 90)
Model.clientModel.service.finish_modification () Model.clientModel.service.close_connection ()
- /#
-
Answer
Requirements:
Two conditions must be met so that support forces can be adopted from other models:
- Both models must be in the same project (same project ID)
- Both models must have different model ID ' s.
So that models have different ID ' s, each model must be created via "File> New ...". Alternatively, an existing model can also be saved as a copy via "File> Save As ..."; this then also has a different ID. The ID ' s can be viewed in the general information of a model.
Procedure
If the requirements are met, the "From support reaction ..." checkmark can be activated in the menu for a nodal load in the "Child" model. In the corresponding new tab, the "mother" model (model from which the load is to be taken), the load (load case/load combination) and the node of the nodal support must be specified.
It should be noted that loads can be applied more than once. The position of the node does not have to be the same as that in the "mother" model. When the load has been applied, the value "??" appears first. The correct value is only displayed once the respective load case has been calculated. This calculation also triggers the calculation in the "mother" model.
Changes in the source model
If changes are made in the "mother" model, the load in the "child" model is reverted to "??" set if the "mother" model has been saved. A recalculation of the load case in the "child" model adopts the new values.
-
Answer
During the creation of a new member hinge, it is required to specify a Global Coordinate System for the hinge, for the Scissor Hinge option to be available. After selecting the function, new tab of options becomes available where you can define exactly the directions in which the scissor hinge is supposed to work.
In the example shown below there are two substructures. The left model shows behaviour of a system, where moments are transferred in a continuous direction between two elements with a scissor hinge defined.
The right model shows behaviour of a system, where only one of the elements has a scissor hinge.
-
Answer
It is possible to display local axis systems for Lines, Members, Surfaces and Solids. The selection of display is available for example in Project Navigator, Display tab.
For surfaces the X and Y axis fit in the plane of the surface and the Z axis is perpendicular to it. The direction of local Z for a surface is not dependent on Global direction of Z Axis.
For members the X axis by default is located along the member, and the Y and Z axes are perpendicular. For most of the profiles, the Z axis is located along the stronger axis of inertia of an element.
The local axis system can be reversed by the option in the context menu of a given element, or in the case of Surfaces, by the element options of Specific axes.
-
Answer
It is possible to display local axis systems for Lines, Members, Surfaces and Solids. The selection of display is available for example in Project Navigator, Display tab.
For surfaces the X and Y axis fit in the plane of the surface and the Z axis is perpendicular to it. The direction of local Z for a surface is not dependent on Global direction of Z Axis.
For members the X axis by default is located along the member, and the Y and Z axes are perpendicular. For most of the profiles, the Z axis is located along the stronger axis of inertia of an element.
The local axis system can be reversed by the option in the context menu of a given element, or in the case of Surfaces, by the element options of Specific axes.
Contact Us
Unable to find the answer to your question? Contact us via phone, email, chat or forum or send us your question directly through our online form.
Submit Individual QuestionFirst Steps
Check out these tips to help you get started with the RFEM and RSTAB programs.
Wind Simulation & Wind Load Generation
It's getting windy here! Send your structures to the digital wind tunnel using the stand-alone program RWIND 2. It simulates wind flows around structures, regardless of whether they are simple or complex.
You can easily import the generated wind loads acting on these objects into RFEM or RSTAB and use them for your further calculations.
Your support is by far the best
“Thank you very much for the useful information.
I would like to pay a compliment to your support team. I am always impressed how quickly and professionally the questions are answered. In the industry of structural analysis, I use several software including service contract, but your support is by far the best.”