-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathtest_ResultCombination.py
More file actions
93 lines (76 loc) · 4.15 KB
/
Copy pathtest_ResultCombination.py
File metadata and controls
93 lines (76 loc) · 4.15 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
91
92
93
import os
import sys
PROJECT_ROOT = os.path.abspath(os.path.join(
os.path.dirname(__file__),
os.pardir)
)
sys.path.append(PROJECT_ROOT)
from RSTAB.enums import NodalSupportType, NodalLoadDirection, OperatorType, ResultCombinationType
from RSTAB.enums import ActionLoadType, DesignSituationType, ResultCombinationExtremeValueSign
from RSTAB.initModel import Model
from RSTAB.BasicObjects.node import Node
from RSTAB.Loads.nodalLoad import NodalLoad
from RSTAB.TypesForNodes.nodalSupport import NodalSupport
from RSTAB.LoadCasesAndCombinations.staticAnalysisSettings import StaticAnalysisSettings
from RSTAB.LoadCasesAndCombinations.loadCase import LoadCase
from RSTAB.LoadCasesAndCombinations.loadCasesAndCombinations import LoadCasesAndCombinations
from RSTAB.LoadCasesAndCombinations.resultCombination import ResultCombination
from RSTAB.LoadCasesAndCombinations.designSituation import DesignSituation
if Model.clientModel is None:
Model()
def test_resultCombination():
Model.clientModel.service.delete_all()
Model.clientModel.service.begin_modification()
Node(1, 0.0, 0.0, 0.0)
Node(2, 5, 0.0, 0.0)
NodalSupport(1, '1', NodalSupportType.FIXED)
StaticAnalysisSettings.GeometricallyLinear(1, "Linear")
LoadCasesAndCombinations({
"current_standard_for_combination_wizard": 6207,
"combination_wizard_and_classification_active": True,
"combination_wizard_active": False,
"result_combinations_active": True,
"result_combinations_parentheses_active": False,
"result_combinations_consider_sub_results": True,
"combination_name_according_to_action_category": False
},
model= Model)
LoadCase(1, 'Self-Weight', [True, 0.0, 0.0,1.0])
NodalLoad(1, 1, '2', NodalLoadDirection.LOAD_DIRECTION_GLOBAL_Z_OR_USER_DEFINED_W, 1000)
DesignSituation(1, DesignSituationType.DESIGN_SITUATION_TYPE_SLS_CHARACTERISTIC)
ResultCombination(2, 1, ResultCombinationType.COMBINATION_TYPE_GENERAL, [[1, OperatorType.OPERATOR_NONE, 1.1, ActionLoadType.LOAD_TYPE_TRANSIENT]], False, [True, ResultCombinationExtremeValueSign.EXTREME_VALUE_SIGN_NEGATIVE], 'Res Comb')
Model.clientModel.service.finish_modification()
config = Model.clientModel.service.get_result_combination(2)
assert config.no == 2
assert config.name == 'Res Comb'
assert config.design_situation == 1
assert config.combination_type == ResultCombinationType.COMBINATION_TYPE_GENERAL.name
assert config.srss_combination == True
assert config.generate_subcombinations == False
def test_resultCombination2():
Model.clientModel.service.delete_all()
Model.clientModel.service.begin_modification()
LoadCasesAndCombinations({
"current_standard_for_combination_wizard": 6207,
"combination_wizard_and_classification_active": True,
"combination_wizard_active": False,
"result_combinations_active": True,
"result_combinations_parentheses_active": True,
"result_combinations_consider_sub_results": True,
"combination_name_according_to_action_category": False
},
model= Model)
LoadCase(1)
LoadCase(2)
LoadCase(3)
LoadCase(4)
ResultCombination(1, combination_items= [
[1, OperatorType.OPERATOR_OR, 1, ActionLoadType.LOAD_TYPE_TRANSIENT, True, False, 1.0, None],
[2, OperatorType.OPERATOR_AND, 1.1, ActionLoadType.LOAD_TYPE_TRANSIENT, False, True, None, ActionLoadType.LOAD_TYPE_TRANSIENT],
[3, OperatorType.OPERATOR_OR, 1.5, ActionLoadType.LOAD_TYPE_TRANSIENT, True, False, 2.0, None],
[4, OperatorType.OPERATOR_NONE, 1.8, ActionLoadType.LOAD_TYPE_TRANSIENT, False, True, None, ActionLoadType.LOAD_TYPE_TRANSIENT]
])
Model.clientModel.service.finish_modification()
resCom = Model.clientModel.service.get_result_combination(1)
assert resCom.no == 1
assert resCom.name == '(LC1 or 1.10 * LC2) + 2.00 * (1.50 * LC3 or 1.80 * LC4)'