Skip to content

Commit ad985a4

Browse files
Added TimberDesignFireConfiguration
1 parent 908bbfc commit ad985a4

2 files changed

Lines changed: 113 additions & 0 deletions

File tree

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
from RFEM.initModel import Model, clearAttributes, deleteEmptyAttributes, ConvertToDlString
2+
3+
class TimberDesignFireConfigurations():
4+
5+
def __init__(self,
6+
no: int = 1,
7+
name: str = 'SLS1',
8+
members_no: str = 'All',
9+
member_sets_no: str = 'All',
10+
comment: str = '',
11+
params: dict = None,
12+
model = Model):
13+
14+
"""
15+
Args:
16+
no (int): Timber Design Fire Configuration Tag
17+
name (str): User Defined Configuration Name
18+
members_no (str): Assign Configuration to Selected Members
19+
member_sets_no (str): Assign Configuration to Selected Member Sets
20+
comment (str, optional): Comment
21+
params (dict, optional): Any WS Parameter relevant to the object and its value in form of a dictionary
22+
model (RFEM Class, optional): Model to be edited
23+
"""
24+
25+
# Client Model | Timber Design Fire Configurations
26+
clientObject = model.clientModel.factory.create('ns0:timber_design_fr_configuration')
27+
28+
# Clears object atributes | Sets all atributes to None
29+
clearAttributes(clientObject)
30+
31+
# FR Configuration No.
32+
clientObject.no = no
33+
34+
# User Defined Name
35+
if name:
36+
clientObject.user_defined_name_enabled = True
37+
clientObject.name = name
38+
39+
# Assigned Members
40+
if members_no == 'All':
41+
clientObject.assigned_to_all_members = True
42+
43+
else:
44+
clientObject.assigned_to_all_members = False
45+
clientObject.assigned_to_members = ConvertToDlString(members_no)
46+
47+
# Assigned Member Sets
48+
if member_sets_no == 'All':
49+
clientObject.assigned_to_all_member_sets = True
50+
51+
else:
52+
clientObject.assigned_to_all_member_sets = False
53+
clientObject.assigned_to_member_sets = ConvertToDlString(member_sets_no)
54+
55+
# Comment
56+
clientObject.comment = comment
57+
58+
# Adding optional parameters via dictionary
59+
if params:
60+
for key in params:
61+
clientObject[key] = params[key]
62+
63+
# Delete None attributes for improved performance
64+
deleteEmptyAttributes(clientObject)
65+
66+
# Add Global Parameters to Client Model
67+
model.clientModel.service.set_timber_design_fr_configuration(clientObject)
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import os
2+
import sys
3+
PROJECT_ROOT = os.path.abspath(os.path.join(
4+
os.path.dirname(__file__),
5+
os.pardir)
6+
)
7+
sys.path.append(PROJECT_ROOT)
8+
9+
from RFEM.enums import AddOn, NodalSupportType
10+
from RFEM.initModel import Model, SetAddonStatus
11+
from RFEM.BasicObjects.material import Material
12+
from RFEM.BasicObjects.section import Section
13+
from RFEM.BasicObjects.node import Node
14+
from RFEM.BasicObjects.member import Member
15+
from RFEM.TypesForNodes.nodalSupport import NodalSupport
16+
from RFEM.TimberDesign.timberFireConfiguration import TimberDesignFireConfigurations
17+
18+
if Model.clientModel is None:
19+
Model()
20+
21+
def test_timberDesignFireConfigurations():
22+
23+
Model.clientModel.service.delete_all()
24+
Model.clientModel.service.begin_modification()
25+
26+
SetAddonStatus(Model.clientModel, addOn=AddOn.timber_design_active, status=True)
27+
28+
Material(1, 'C24 | EN 338:2016-04')
29+
30+
Section(1, 'R_M1 0.18/0.36')
31+
32+
Node(1, 0.0, 0.0, 0.0)
33+
Node(2, 5, 0.0, 0.0)
34+
35+
Member(1, 1, 2, 0.0, 1, 1)
36+
37+
NodalSupport(1, '1', NodalSupportType.FIXED)
38+
39+
TimberDesignFireConfigurations(1, name="myConfig")
40+
41+
Model.clientModel.service.finish_modification()
42+
43+
config = Model.clientModel.service.get_timber_design_fr_configuration(1)
44+
45+
assert config.name == "myConfig"
46+
assert config.assigned_to_all_members == True

0 commit comments

Comments
 (0)