Skip to content
9 changes: 2 additions & 7 deletions Examples/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,8 @@ def main(hall_width_L, hall_height_h_o, hall_height_h_m, number_frames, frame_sp

# -------------------------------------------------------------
# Member Hinges
MemberHinge(1, "Local", inf, inf, inf, inf, 0, inf, "Rotational Release My")
MemberHinge(1, "Local", rotational_release_mz=inf)


# -------------------------------------------------------------
# Members
Expand Down Expand Up @@ -199,12 +200,6 @@ def main(hall_width_L, hall_height_h_o, hall_height_h_m, number_frames, frame_sp
# Solids
Solid(1, "2 3 4 5 6 7", 2)

# -------------------------------------------------------------
# Sets
LineSet()
MemberSet()
SurfaceSet()

# -------------------------------------------------------------
print('Load Cases/Loads...')

Expand Down
21 changes: 7 additions & 14 deletions RFEM/BasicObjects/thickness.py
Original file line number Diff line number Diff line change
Expand Up @@ -372,7 +372,7 @@ def Variable_Circle(
def Layers(
no: int = 1,
name: str = None,
layers = [[0, 1, 0.2, 0.0, '']],
layers = [[0, 1, 0.2]],
comment: str = '',
params: dict = None,
model = Model):
Expand All @@ -385,7 +385,6 @@ def Layers(
name (str): Thickness Name
material_no (int): Tag of Material assigned to Thickness
properties (list): Nested List of Layer Properties
properties: [[thickness_type, material, thickness, rotation, comment], ...]
comment (str, optional): Comments
params (dict, optional): Any WS Parameter relevant to the object and its value in form of a dictionary
'''
Expand Down Expand Up @@ -415,18 +414,12 @@ def Layers(
clientObject.layers_reference_table = model.clientModel.factory.create('ns0:thickness.layers_reference_table')

for i,j in enumerate(layers):
tlrt = model.clientModel.factory.create('ns0:thickness_layers_reference_table')
tlrt.no = no
tlrt.layer_no = i+1
tlrt.layer_type = None
tlrt.thickness_type = layers[i][0]
tlrt.material = layers[i][1]
tlrt.thickness = layers[i][2]
tlrt.angle = layers[i][3] * (pi/180)
tlrt.connection_with_other_topological_elements = False
tlrt.comment = layers[i][4]
tlrt.specific_weight = 0
tlrt.weight = 0
tlrt = model.clientModel.factory.create('ns0:thickness_layers_reference_table_row')
tlrt.no = i+1
tlrt.row.layer_no = i+1
tlrt.row.thickness_type = layers[i][0]
tlrt.row.material = layers[i][1]
tlrt.row.thickness = layers[i][2]

clientObject.layers_reference_table.thickness_layers_reference_table.append(tlrt)

Expand Down
50 changes: 25 additions & 25 deletions RFEM/LoadCasesAndCombinations/loadCombination.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,32 +64,32 @@ def __init__(self,
clientObject.items = model.clientModel.factory.create('ns0:load_combination.items')

for i,j in enumerate(combination_items):
mlvlp = model.clientModel.factory.create('ns0:load_combination_items')
mlvlp = model.clientModel.factory.create('ns0:load_combination_items_row')
mlvlp.no = i+1
mlvlp.factor = combination_items[i][0]
mlvlp.load_case = combination_items[i][1]
mlvlp.action = combination_items[i][2]
mlvlp.is_leading = combination_items[i][3]
mlvlp.gamma=0
mlvlp.psi=0
mlvlp.xi=0
mlvlp.k_fi=0
mlvlp.c_esl=0
mlvlp.k_def=0
mlvlp.psi_0=0
mlvlp.psi_1=0
mlvlp.psi_2=0
mlvlp.fi=0
mlvlp.gamma_0=0
mlvlp.alfa=0
mlvlp.k_f=0
mlvlp.phi=0
mlvlp.rho=0
mlvlp.omega_0=0
mlvlp.gamma_l_1=0
mlvlp.k_creep=0
mlvlp.shift=0
mlvlp.amplitude_function_type = "CONSTANT"
mlvlp.row.factor = combination_items[i][0]
mlvlp.row.load_case = combination_items[i][1]
mlvlp.row.action = combination_items[i][2]
mlvlp.row.is_leading = combination_items[i][3]
mlvlp.row.gamma=0
mlvlp.row.psi=0
mlvlp.row.xi=0
mlvlp.row.k_fi=0
mlvlp.row.c_esl=0
mlvlp.row.k_def=0
mlvlp.row.psi_0=0
mlvlp.row.psi_1=0
mlvlp.row.psi_2=0
mlvlp.row.fi=0
mlvlp.row.gamma_0=0
mlvlp.row.alfa=0
mlvlp.row.k_f=0
mlvlp.row.phi=0
mlvlp.row.rho=0
mlvlp.row.omega_0=0
mlvlp.row.gamma_l_1=0
mlvlp.row.k_creep=0
mlvlp.row.shift=0
mlvlp.row.amplitude_function_type = "CONSTANT"


clientObject.items.load_combination_items.append(mlvlp)
Expand Down
54 changes: 27 additions & 27 deletions RFEM/Loads/freeLoad.py
Original file line number Diff line number Diff line change
Expand Up @@ -278,10 +278,10 @@ def RectangularLoad(
clientObject.load_varying_in_z_parameters = model.clientModel.factory.create('ns0:free_rectangular_load.load_varying_in_z_parameters')
varying_in_z = load_location_parameter[4]
for i,j in enumerate(varying_in_z):
frllvp = model.clientModel.factory.create('ns0:free_rectangular_load_load_varying_in_z_parameters')
frllvp = model.clientModel.factory.create('ns0:free_rectangular_load_load_varying_in_z_parameters_row')
frllvp.no = i+1
frllvp.distance = varying_in_z[i][0]
frllvp.factor = varying_in_z[i][1]
frllvp.row.distance = varying_in_z[i][0]
frllvp.row.factor = varying_in_z[i][1]
clientObject.load_varying_in_z_parameters.free_rectangular_load_load_varying_in_z_parameters.append(frllvp)

elif load_distribution.name == 'LOAD_DISTRIBUTION_VARYING_ALONG_PERIMETER':
Expand All @@ -302,10 +302,10 @@ def RectangularLoad(
clientObject.load_varying_along_perimeter_parameters = model.clientModel.factory.create('ns0:free_rectangular_load.load_varying_along_perimeter_parameters')
varying_along_perimeter = load_location_parameter[7]
for i,j in enumerate(varying_along_perimeter):
frllvapp = model.clientModel.factory.create('ns0:free_rectangular_load_load_varying_along_perimeter_parameters')
frllvapp = model.clientModel.factory.create('ns0:free_rectangular_load_load_varying_along_perimeter_parameters_row')
frllvapp.no = i+1
frllvapp.alpha = varying_along_perimeter[i][0] * (pi/180)
frllvapp.factor = varying_along_perimeter[i][1]
frllvapp.row.alpha = varying_along_perimeter[i][0] * (pi/180)
frllvapp.row.factor = varying_along_perimeter[i][1]
clientObject.load_varying_along_perimeter_parameters.free_rectangular_load_load_varying_along_perimeter_parameters.append(frllvapp)

elif load_distribution.name == 'LOAD_DISTRIBUTION_VARYING_IN_Z_AND_ALONG_PERIMETER':
Expand All @@ -319,10 +319,10 @@ def RectangularLoad(
clientObject.load_varying_in_z_parameters = model.clientModel.factory.create('ns0:free_rectangular_load.load_varying_in_z_parameters')
varying_in_z = load_location_parameter[4]
for i,j in enumerate(varying_in_z):
frllvp = model.clientModel.factory.create('ns0:free_rectangular_load_load_varying_in_z_parameters')
frllvp = model.clientModel.factory.create('ns0:free_rectangular_load_load_varying_in_z_parameters_row')
frllvp.no = i+1
frllvp.distance = varying_in_z[i][0]
frllvp.factor = varying_in_z[i][1]
frllvp.row.distance = varying_in_z[i][0]
frllvp.row.factor = varying_in_z[i][1]
clientObject.load_varying_in_z_parameters.free_rectangular_load_load_varying_in_z_parameters.append(frllvp)

clientObject.axis_definition_p1_x = load_location_parameter[5][0]
Expand All @@ -336,10 +336,10 @@ def RectangularLoad(
clientObject.load_varying_along_perimeter_parameters = model.clientModel.factory.create('ns0:free_rectangular_load.load_varying_along_perimeter_parameters')
varying_along_perimeter = load_location_parameter[8]
for i,j in enumerate(varying_along_perimeter):
frllvapp = model.clientModel.factory.create('ns0:free_rectangular_load_load_varying_along_perimeter_parameters')
frllvapp = model.clientModel.factory.create('ns0:free_rectangular_load_load_varying_along_perimeter_parameters_row')
frllvapp.no = i+1
frllvapp.alpha = varying_along_perimeter[i][0] * (pi/180)
frllvapp.factor = varying_along_perimeter[i][1]
frllvapp.row.alpha = varying_along_perimeter[i][0] * (pi/180)
frllvapp.row.factor = varying_along_perimeter[i][1]
clientObject.load_varying_along_perimeter_parameters.free_rectangular_load_load_varying_along_perimeter_parameters.append(frllvapp)

elif load_location.name == 'LOAD_LOCATION_RECTANGLE_CENTER_AND_SIDES':
Expand All @@ -364,10 +364,10 @@ def RectangularLoad(
clientObject.load_varying_in_z_parameters = model.clientModel.factory.create('ns0:free_rectangular_load.load_varying_in_z_parameters')
varying_in_z = load_location_parameter[4]
for i,j in enumerate(varying_in_z):
frllvp = model.clientModel.factory.create('ns0:free_rectangular_load_load_varying_in_z_parameters')
frllvp = model.clientModel.factory.create('ns0:free_rectangular_load_load_varying_in_z_parameters_row')
frllvp.no = i+1
frllvp.distance = varying_in_z[i][0]
frllvp.factor = varying_in_z[i][1]
frllvp.row.distance = varying_in_z[i][0]
frllvp.row.factor = varying_in_z[i][1]
clientObject.load_varying_in_z_parameters.free_rectangular_load_load_varying_in_z_parameters.append(frllvp)

elif load_distribution.name == 'LOAD_DISTRIBUTION_VARYING_ALONG_PERIMETER':
Expand All @@ -388,10 +388,10 @@ def RectangularLoad(
clientObject.load_varying_along_perimeter_parameters = model.clientModel.factory.create('ns0:free_rectangular_load.load_varying_along_perimeter_parameters')
varying_along_perimeter = load_location_parameter[7]
for i,j in enumerate(varying_along_perimeter):
frllvapp = model.clientModel.factory.create('ns0:free_rectangular_load_load_varying_along_perimeter_parameters')
frllvapp = model.clientModel.factory.create('ns0:free_rectangular_load_load_varying_along_perimeter_parameters_row')
frllvapp.no = i+1
frllvapp.alpha = varying_along_perimeter[i][0] * (pi/180)
frllvapp.factor = varying_along_perimeter[i][1]
frllvapp.row.alpha = varying_along_perimeter[i][0] * (pi/180)
frllvapp.row.factor = varying_along_perimeter[i][1]
clientObject.load_varying_along_perimeter_parameters.free_rectangular_load_load_varying_along_perimeter_parameters.append(frllvapp)

elif load_distribution.name == 'LOAD_DISTRIBUTION_VARYING_IN_Z_AND_ALONG_PERIMETER':
Expand All @@ -405,10 +405,10 @@ def RectangularLoad(
clientObject.load_varying_in_z_parameters = model.clientModel.factory.create('ns0:free_rectangular_load.load_varying_in_z_parameters')
varying_in_z = load_location_parameter[4]
for i,j in enumerate(varying_in_z):
frllvp = model.clientModel.factory.create('ns0:free_rectangular_load_load_varying_in_z_parameters')
frllvp = model.clientModel.factory.create('ns0:free_rectangular_load_load_varying_in_z_parameters_row')
frllvp.no = i+1
frllvp.distance = varying_in_z[i][0]
frllvp.factor = varying_in_z[i][1]
frllvp.row.distance = varying_in_z[i][0]
frllvp.row.factor = varying_in_z[i][1]
clientObject.load_varying_in_z_parameters.free_rectangular_load_load_varying_in_z_parameters.append(frllvp)

clientObject.axis_definition_p1_x = load_location_parameter[5][0]
Expand All @@ -422,10 +422,10 @@ def RectangularLoad(
clientObject.load_varying_along_perimeter_parameters = model.clientModel.factory.create('ns0:free_rectangular_load.load_varying_along_perimeter_parameters')
varying_along_perimeter = load_location_parameter[8]
for i,j in enumerate(varying_along_perimeter):
frllvapp = model.clientModel.factory.create('ns0:free_rectangular_load_load_varying_along_perimeter_parameters')
frllvapp = model.clientModel.factory.create('ns0:free_rectangular_load_load_varying_along_perimeter_parameters_row')
frllvapp.no = i+1
frllvapp.alpha = varying_along_perimeter[i][0] * (pi/180)
frllvapp.factor = varying_along_perimeter[i][1]
frllvapp.row.alpha = varying_along_perimeter[i][0] * (pi/180)
frllvapp.row.factor = varying_along_perimeter[i][1]
clientObject.load_varying_along_perimeter_parameters.free_rectangular_load_load_varying_along_perimeter_parameters.append(frllvapp)

# Comment
Expand Down Expand Up @@ -589,10 +589,10 @@ def PolygonLoad(
# Load Location
clientObject.load_location = model.clientModel.factory.create('ns0:free_polygon_load.load_location')
for i,j in enumerate(load_location):
fplld = model.clientModel.factory.create('ns0:free_polygon_load_load_location')
fplld = model.clientModel.factory.create('ns0:free_polygon_load_load_location_row')
fplld.no = i+1
fplld.first_coordinate = load_location[i][0]
fplld.second_coordinate = load_location[i][1]
fplld.row.first_coordinate = load_location[i][0]
fplld.row.second_coordinate = load_location[i][1]
clientObject.load_location.free_polygon_load_load_location.append(fplld)

# Load Parameter
Expand Down
40 changes: 20 additions & 20 deletions RFEM/Loads/lineLoad.py
Original file line number Diff line number Diff line change
Expand Up @@ -227,12 +227,12 @@ def Force(
for i,j in enumerate(load_parameter):
if len(load_parameter[i]) != 3:
raise Exception('WARNING: The load parameter sub-lists need to be of length 3. Kindly check sub-list inputs for completeness and correctness.')
mlvlp = model.clientModel.factory.create('ns0:line_load_varying_load_parameters')
mlvlp = model.clientModel.factory.create('ns0:line_load_varying_load_parameters_row')
mlvlp.no = i+1
mlvlp.distance = load_parameter[i][0]
mlvlp.delta_distance = load_parameter[i][1]
mlvlp.magnitude = load_parameter[i][2]
mlvlp.note = None
mlvlp.row.distance = load_parameter[i][0]
mlvlp.row.delta_distance = load_parameter[i][1]
mlvlp.row.magnitude = load_parameter[i][2]
mlvlp.row.note = None

clientObject.varying_load_parameters.line_load_varying_load_parameters.append(mlvlp)

Expand Down Expand Up @@ -293,12 +293,12 @@ def Force(
for i,j in enumerate(load_parameter):
if len(load_parameter[i]) != 3:
raise Exception('WARNING: The load parameter sub-lists need to be of length 3. Kindly check sub-list inputs for completeness and correctness.')
mlvlp = model.clientModel.factory.create('ns0:line_load_varying_load_parameters')
mlvlp = model.clientModel.factory.create('ns0:line_load_varying_load_parameters_row')
mlvlp.no = i+1
mlvlp.distance = load_parameter[i][0]
mlvlp.delta_distance = load_parameter[i][1]
mlvlp.magnitude = load_parameter[i][2]
mlvlp.note = None
mlvlp.row.distance = load_parameter[i][0]
mlvlp.row.delta_distance = load_parameter[i][1]
mlvlp.row.magnitude = load_parameter[i][2]
mlvlp.row.note = None

clientObject.varying_load_parameters.line_load_varying_load_parameters.append(mlvlp)

Expand Down Expand Up @@ -480,12 +480,12 @@ def Moment(
for i,j in enumerate(load_parameter):
if len(load_parameter[i]) != 3:
raise Exception('WARNING: The load parameter sub-lists need to be of length 3. Kindly check sub-list inputs for completeness and correctness.')
mlvlp = model.clientModel.factory.create('ns0:line_load_varying_load_parameters')
mlvlp = model.clientModel.factory.create('ns0:line_load_varying_load_parameters_row')
mlvlp.no = i+1
mlvlp.distance = load_parameter[i][0]
mlvlp.delta_distance = load_parameter[i][1]
mlvlp.magnitude = load_parameter[i][2]
mlvlp.note = None
mlvlp.row.distance = load_parameter[i][0]
mlvlp.row.delta_distance = load_parameter[i][1]
mlvlp.row.magnitude = load_parameter[i][2]
mlvlp.row.note = None

clientObject.varying_load_parameters.line_load_varying_load_parameters.append(mlvlp)

Expand Down Expand Up @@ -546,12 +546,12 @@ def Moment(
for i,j in enumerate(load_parameter):
if len(load_parameter[i]) != 3:
raise Exception('WARNING: The load parameter sub-lists need to be of length 3. Kindly check sub-list inputs for completeness and correctness.')
mlvlp = model.clientModel.factory.create('ns0:line_load_varying_load_parameters')
mlvlp = model.clientModel.factory.create('ns0:line_load_varying_load_parameters_row')
mlvlp.no = i+1
mlvlp.distance = load_parameter[i][0]
mlvlp.delta_distance = load_parameter[i][1]
mlvlp.magnitude = load_parameter[i][2]
mlvlp.note = None
mlvlp.row.distance = load_parameter[i][0]
mlvlp.row.delta_distance = load_parameter[i][1]
mlvlp.row.magnitude = load_parameter[i][2]
mlvlp.row.note = None

clientObject.varying_load_parameters.line_load_varying_load_parameters.append(mlvlp)

Expand Down
Loading