-
Notifications
You must be signed in to change notification settings - Fork 39
Expand file tree
/
Copy pathtest_concreteDesignConfig.py
More file actions
90 lines (65 loc) · 2.89 KB
/
test_concreteDesignConfig.py
File metadata and controls
90 lines (65 loc) · 2.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import sys
import os
PROJECT_ROOT = os.path.abspath(os.path.join(
os.path.dirname(__file__),
os.pardir)
)
sys.path.append(PROJECT_ROOT)
from RFEM.enums import AddOn, NodalSupportType, NodalLoadDirection
from RFEM.initModel import Model
from RFEM.BasicObjects.material import Material
from RFEM.BasicObjects.crossSection import CrossSection
from RFEM.BasicObjects.node import Node
from RFEM.BasicObjects.member import Member
from RFEM.TypesForNodes.nodalSupport import NodalSupport
from RFEM.LoadCasesAndCombinations.loadCase import LoadCase
from RFEM.Loads.nodalLoad import NodalLoad
from RFEM.initModel import SetAddonStatus
from RFEM.ConcreteDesign.ConcreteUltimateConfigurations import ConcreteUltimateConfiguration
from RFEM.ConcreteDesign.ConcreteServiceabilityConfigurations import ConcreteServiceabilityConfiguration
if Model.clientModel is None:
Model()
def test_concrete_design_uls():
Model.clientModel.service.delete_all()
SetAddonStatus(Model.clientModel, AddOn.concrete_design_active)
Model.clientModel.service.begin_modification()
Material(1, 'C30/37')
CrossSection(1, 'IPE 200', 1)
Node(1, 0.0, 0.0, 0.0)
Node(2, 10, 0.0, 0.0)
Node(3, 15, 0, 0)
Member(1, 1, 2, 0, 1, 1)
Member(2, 2, 3, 0, 1, 1)
NodalSupport(1, '1', NodalSupportType.FIXED)
LoadCase(1, 'Self-Weight', [True, 0.0, 0.0, 1.0])
NodalLoad(1, 1, '2', NodalLoadDirection.LOAD_DIRECTION_GLOBAL_Z_OR_USER_DEFINED_W, 1*1000)
Model.clientModel.service.finish_modification()
ConcreteUltimateConfiguration(1, 'ULS', '1')
ConcreteUltimateConfiguration(2, 'ULS2', '2')
uls1 = Model.clientModel.service.get_concrete_design_uls_configuration(1)
uls2 = Model.clientModel.service.get_concrete_design_uls_configuration(2)
assert uls1.name == 'ULS'
assert uls1.assigned_to_members == '1'
assert uls2.assigned_to_members == '2'
def test_concrete_design_sls():
Model.clientModel.service.delete_all()
SetAddonStatus(Model.clientModel, AddOn.concrete_design_active)
Model.clientModel.service.begin_modification()
Material(1, 'C30/37')
CrossSection(1, 'IPE 200', 1)
Node(1, 0.0, 0.0, 0.0)
Node(2, 10, 0.0, 0.0)
Node(3, 15, 0, 0)
Member(1, 1, 2, 0, 1, 1)
Member(2, 2, 3, 0, 1, 1)
NodalSupport(1, '1', NodalSupportType.FIXED)
LoadCase(1, 'Self-Weight', [True, 0.0, 0.0, 1.0])
NodalLoad(1, 1, '2', NodalLoadDirection.LOAD_DIRECTION_GLOBAL_Z_OR_USER_DEFINED_W, 1*1000)
Model.clientModel.service.finish_modification()
ConcreteServiceabilityConfiguration(1, 'SLS', '1')
ConcreteServiceabilityConfiguration(2, 'SLS2', '2')
sls1 = Model.clientModel.service.get_concrete_design_sls_configuration(1)
sls2 = Model.clientModel.service.get_concrete_design_sls_configuration(2)
assert sls1.name == 'SLS'
assert sls1.assigned_to_members == '1'
assert sls2.assigned_to_members == '2'