diff --git a/.vscode/settings.json b/.vscode/settings.json index 6b4aa530..139211b3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,24 +3,25 @@ "editor.tabSize": 4, "editor.insertSpaces": true, "python.linting.pylintEnabled": true, - "python.linting.pylintArgs": [ - "--enable=W0614" - ], - "python.linting.enabled": true, + "python.linting.pylintArgs": [], + "python.linting.enabled": false, "python.linting.pydocstyleEnabled": false, "python.testing.unittestEnabled": false, - "python.testing.nosetestsEnabled": false, "python.testing.pytestEnabled": true, "python.testing.pytestArgs": [ "--html=UnitTests\\report.html", "--self-contained-html", ], - "markdownlint.config": { - "MD028": false, - "MD025": { - "front_matter_title": "" - } - }, "esbonio.server.enabled": false, - "restructuredtext.languageServer.disabled": true + // Controls if quick suggestions should show up while typing + "editor.quickSuggestions": { + "other": true, + "comments": false, + "strings": false + }, + "editor.formatOnSave": true, + "python.analysis.completeFunctionParens": true, + "python.disableInstallationCheck": true, + "python.linting.banditEnabled": true, + "python.languageServer": "Pylance" } \ No newline at end of file diff --git a/RFEM/LoadCasesAndCombinations/designSituation.py b/RFEM/LoadCasesAndCombinations/designSituation.py index 24638914..15e58cff 100644 --- a/RFEM/LoadCasesAndCombinations/designSituation.py +++ b/RFEM/LoadCasesAndCombinations/designSituation.py @@ -1,53 +1,23 @@ -from RFEM.initModel import Model,clearAtributes +from RFEM.initModel import Model, clearAtributes +from RFEM.enums import DesignSituationType class DesignSituation(): def __init__(self, no: int = 1, - user_defined_name: bool = False, - name = None, + design_situation_type = DesignSituationType.DESIGN_SITUATION_TYPE_A_ACCIDENTAL, active: bool = True, - design_situation_type: int = 6122, + name = None, comment: str = '', params: dict = None): """ Args: no (int): Design Situation Tag - user_defined_name (bool): Enable/Disable User-Defined Name - name (str, optional): User-Defined Name (Applicable when user_defined_name = TRUE) + design_situation_type (enum): Design Situation Type active (bool): Enable/Disable Design Situation Activity - design_situation_type (int): Design Situation Numeric Code (Variable key inputs, dependant on Standards defined in the model) - Applicable to Standard Group EN 1990 with National Annex CEN | 2010-04 (See Model Base Data > Standards I) - 6122 = ULS (EQU) - Permanent and transient, - 6993 = ULS (EQU) - Accidental - psi-1,1, - 6994 = ULS (EQU) - Accidental - psi-2,1, - 6997 = ULS (EQU) - Seismic, - 7007 = ULS (STR/GEO) - Permanent and transient - Eq. 6.10, - 7008 = ULS (STR/GEO) - Permanent and transient - Eq. 6.10a and 6.10b, - 7010 = ULS (STR/GEO) - Accidental - psi-1,1, - 7011 = ULS (STR/GEO) - Accidental - psi-2,1, - 7014 = ULS (STR/GEO) - Seismic, - 6193 = SLS - Characteristic, - 6194 = SLS - Frequent, - 6195 = SLS - Quasi-permanent. - Applicable to Standard Group EN 1990 with National Annex DIN | 2012-08 (See Model Base Data > Standards I) - 6122 = ULS (EQU) - Permanent and transient, - 6993 = ULS (EQU) - Accidental - psi-1,1, - 6994 = ULS (EQU) - Accidental - psi-2,1, - 6995 = ULS (EQU) - Accidental - Snow - psi-1,1, - 6996 = ULS (EQU) - Accidental - Snow - psi-2,1, - 6997 = ULS (EQU) - Seismic, - 7007 = ULS (STR/GEO) - Permanent and transient - Eq. 6.10, - 7010 = ULS (STR/GEO) - Accidental - psi-1,1, - 7011 = ULS (STR/GEO) - Accidental - psi-2,1, - 7012 = ULS (STR/GEO) - Accidental - Snow - psi-1,1, - 7013 = ULS (STR/GEO) - Accidental - Snow - psi-2,1, - 7014 = ULS (STR/GEO) - Seismic, - 6193 = SLS - Characteristic, - 6194 = SLS - Frequent, - 6195 = SLS - Quasi-permanent. + name (str, optional): User-Defined Name comment (str, optional): Comments - params (dict, optional): Any WS Parameter relevant to the object and its value in form of a dictionary + params (dict, optional): Parameters """ # Client model | Design Situation @@ -60,17 +30,15 @@ def __init__(self, clientObject.no = no # Design Situation Name - clientObject.user_defined_name_enabled = user_defined_name - if user_defined_name: - if name is None: - raise Exception('WARNING: A user defined design situation name was requested. As such, the name parameter cannot be empty.') + if name: + clientObject.user_defined_name_enabled = True clientObject.name = name # Design Situation Active clientObject.active = active # Design Situation Type - clientObject.design_situation_type = design_situation_type + clientObject.design_situation_type = design_situation_type.name # Design Situation Comment clientObject.comment = comment diff --git a/RFEM/LoadCasesAndCombinations/loadCase.py b/RFEM/LoadCasesAndCombinations/loadCase.py index 66e28807..951a40ee 100644 --- a/RFEM/LoadCasesAndCombinations/loadCase.py +++ b/RFEM/LoadCasesAndCombinations/loadCase.py @@ -1,13 +1,6 @@ from RFEM.initModel import Model, clearAtributes -from RFEM.enums import AnalysisType +from RFEM.enums import AnalysisType, ActionCategoryType -DIN_Action_Category = {'1A': 'Permanent | G', '1B': 'Permanent - small fluctuations | G*', '1C': 'Permanent/Imposed | Gq', '2': 'Prestress | P', - '3A': 'Imposed loads - category A: domestic, residential areas | QI A', '3B': 'Imposed loads - category B: office areas | QI B', - '3C': 'Imposed loads - category C: congregation areas | QI C', '3D': 'Imposed loads - category D: shopping areas | QI D', - '3E': 'Imposed loads - category E: storage areas | QI E', '3F': 'Imposed loads - category F: traffic area - vehicle weight <= 30 kN | QI F', - '3G': 'Imposed loads - category G: traffic area - vehicle weight <= 160 kN | QI G', '3H': 'Imposed loads - category H: roofs | QI H', - '4A': 'Snow / Ice loads - H <= 1000 m | Qs', '4B': 'Snow / Ice loads - H > 1000 m | Qs', '5': 'Wind | Qw', '6': 'Temperature (non-fire) | QT', - '7': 'Foundation subsidence | Qf', '8': 'Other actions | Qo', '9': 'Accidental actions | A', '10': 'Seismic actions | AE', 'None': 'None | None'} class LoadCase(): @@ -47,21 +40,24 @@ def __init__(self, clientObject.static_analysis_settings = 1 # Action Category - clientObject.action_category = 'Permanent | G' + clientObject.action_category = ActionCategoryType.ACTION_CATEGORY_PERMANENT_G.name # Self-weight Considerations clientObject.self_weight_active = self_weight[0] if not isinstance(self_weight[0], bool): - raise Exception('WARNING: Entry at index 0 of Self-Weight parameter to be of type bool') + raise Exception( + 'WARNING: Entry at index 0 of Self-Weight parameter to be of type bool') if self_weight[0]: if len(self_weight) != 4: - raise Exception('WARNING: Self-weight is activated and therefore requires a list definition of length 4. Kindly check list inputs for completeness and correctness.') + raise Exception( + 'WARNING: Self-weight is activated and therefore requires a list definition of length 4. Kindly check list inputs for completeness and correctness.') clientObject.self_weight_factor_x = self_weight[1] clientObject.self_weight_factor_y = self_weight[2] clientObject.self_weight_factor_z = self_weight[3] else: if len(self_weight) != 1: - raise Exception('WARNING: Self-weight is deactivated and therefore requires a list definition of length 1. Kindly check list inputs for completeness and correctness.') + raise Exception( + 'WARNING: Self-weight is deactivated and therefore requires a list definition of length 1. Kindly check list inputs for completeness and correctness.') # Comment clientObject.comment = comment @@ -76,14 +72,14 @@ def __init__(self, @staticmethod def StaticAnalysis( - no: int = 1, - name: str = 'Self-weight', - to_solve: bool = True, - analysis_settings_no: int = 1, - action_category= DIN_Action_Category['1A'], - self_weight = [True, 0.0, 0.0, 10.0], - comment: str = 'Comment', - params: dict = None): + no: int = 1, + name: str = 'Self-weight', + to_solve: bool = True, + analysis_settings_no: int = 1, + action_category=ActionCategoryType.ACTION_CATEGORY_PERMANENT_G, + self_weight=[True, 0.0, 0.0, 10.0], + comment: str = 'Comment', + params: dict = None): ''' Args: no (int): Load Case Tag @@ -91,28 +87,7 @@ def StaticAnalysis( to_solve (bool): Enable/Disbale Load Case Solver Status analysis_type (enum): Analysis Type Enumeration analysis_settings_no (int): Analysis Settings Number - action_category (dict): Action Category Key - 1A = Permanent | G - 1B = Permanent - small fluctuations | G* - 1C = Permanent/Imposed | Gq - 2 = Prestress | P - 3A = Imposed loads - category A: domestic, residential areas | QI A - 3B = Imposed loads - category B: office areas | QI B - 3C = Imposed loads - category C: congregation areas | QI C - 3D = Imposed loads - category D: shopping areas | QI D - 3E = Imposed loads - category E: storage areas | QI E - 3F = Imposed loads - category F: traffic area - vehicle weight <= 30 kN | QI F - 3G = Imposed loads - category G: traffic area - vehicle weight <= 160 kN | QI G - 3H = Imposed loads - category H: roofs | QI H - 4A = Snow / Ice loads - H <= 1000 m | Qs - 4B = Snow / Ice loads - H > 1000 m | Qs - 5 = Wind | Qw - 6 = Temperature (non-fire) | QT - 7 = Foundation subsidence | Qf - 8 = Other actions | Qo - 9 = Accidental actions | A - 10 = Seismic actions | AE - None = None | None + action_category (enum): Action Category enum self_weight (list): Self-weight Considerations for self-weight considerations; self_weight = [True, self_weight_factor_x, self_weight_factor_y, self_weight_factor_z] @@ -142,21 +117,24 @@ def StaticAnalysis( clientObject.static_analysis_settings = analysis_settings_no # Action Category - clientObject.action_category = action_category + clientObject.action_category = action_category.name # Self-weight Considerations clientObject.self_weight_active = self_weight[0] if not isinstance(self_weight[0], bool): - raise Exception('WARNING: Entry at index 0 of Self-Weight parameter to be of type bool') + raise Exception( + 'WARNING: Entry at index 0 of Self-Weight parameter to be of type bool') if self_weight[0]: if len(self_weight) != 4: - raise Exception('WARNING: Self-weight is activated and therefore requires a list definition of length 4. Kindly check list inputs for completeness and correctness.') + raise Exception( + 'WARNING: Self-weight is activated and therefore requires a list definition of length 4. Kindly check list inputs for completeness and correctness.') clientObject.self_weight_factor_x = self_weight[1] clientObject.self_weight_factor_y = self_weight[2] clientObject.self_weight_factor_z = self_weight[3] else: if len(self_weight) != 1: - raise Exception('WARNING: Self-weight is deactivated and therefore requires a list definition of length 1. Kindly check list inputs for completeness and correctness.') + raise Exception( + 'WARNING: Self-weight is deactivated and therefore requires a list definition of length 1. Kindly check list inputs for completeness and correctness.') # Comment clientObject.comment = comment diff --git a/RFEM/enums.py b/RFEM/enums.py index 0992c203..061a75b9 100644 --- a/RFEM/enums.py +++ b/RFEM/enums.py @@ -1384,4 +1384,135 @@ class SteelBoundaryConditionsEccentricityTypeZ(Enum): Steel Boundary Conditions Eccentricity Type Z Type ''' ECCENTRICITY_TYPE_AT_LOWER_FLANGE, ECCENTRICITY_TYPE_AT_UPPER_FLANGE, ECCENTRICITY_TYPE_NONE, ECCENTRICITY_TYPE_USER_VALUE = range(4) - +class ActionCategoryType(Enum): + ''' + Load Case Action Category + ''' + ACTION_CATEGORY_ACCIDENTAL_ACTIONS_A, ACTION_CATEGORY_ACCIDENTAL_ACTION_A, ACTION_CATEGORY_ACCIDENTAL_LOAD_AL, ACTION_CATEGORY_ACTIONS_DUE_TO_CRANES_HORIZONTAL_AND_VERTICAL_Q_CR, \ + ACTION_CATEGORY_ACTIONS_DURING_EXECUTION_Q_EX, ACTION_CATEGORY_ACTIONS_WITH_LIMITED_MAXIMUM_VALUES_Q_LI, ACTION_CATEGORY_ACTION_FROM_SOIL_PERMANENT_EARTH_LOADS_GS, \ + ACTION_CATEGORY_ACTION_FROM_SOIL_PERMANENT_EARTH_PRESSURE_GS, ACTION_CATEGORY_ACTION_FROM_SOIL_PERMANENT_WATER_PRESSURE_GS, ACTION_CATEGORY_ACTION_FROM_SOIL_VARIABLE_EARTH_PRESSURE_GS, \ + ACTION_CATEGORY_ACTION_FROM_SOIL_VARIABLE_WATER_PRESSURE_GS, ACTION_CATEGORY_ASH_LOAD_ON_ROOFINGS_ADJACENT_TO_BLAST_FURNACE_TABLE_5_4_1_2_Q_AS, ACTION_CATEGORY_ASH_LOAD_ON_ROOFINGS_TABLE_5_4_1_1_Q_AS, \ + ACTION_CATEGORY_CIVIL_BUILDINGS_ASSEMBLY_HALL_THEATER_CINEMA_Q_CB, ACTION_CATEGORY_CIVIL_BUILDINGS_AUTOMOBILE_PASSAGE_AND_GARAGE_ONE_WAY_SLAB_FLOOR_BUS_Q_CB, ACTION_CATEGORY_CIVIL_BUILDINGS_AUTOMOBILE_PASSAGE_AND_GARAGE_ONE_WAY_SLAB_FLOOR_FIRE_ENGINE_Q_CB, \ + ACTION_CATEGORY_CIVIL_BUILDINGS_AUTOMOBILE_PASSAGE_AND_GARAGE_TWO_WAY_SLAB_FLOOR_FIRE_ENGINE_Q_CB, ACTION_CATEGORY_CIVIL_BUILDINGS_AUTOMOBILE_PASSAGE_AND_GARAGE_TWO_WAY_SLAB_ROOF_BUS_Q_CB, ACTION_CATEGORY_CIVIL_BUILDINGS_BALCONY_OTHER_Q_CB, \ + ACTION_CATEGORY_CIVIL_BUILDINGS_BALCONY_POPULATION_MAY_BE_CONCENTRATED_Q_CB, ACTION_CATEGORY_CIVIL_BUILDINGS_BATHROOM_TOILET_AND_WASHROOM_BUILDINGS_IN_ITEM_NO_1_Q_CB, ACTION_CATEGORY_CIVIL_BUILDINGS_BATHROOM_TOILET_AND_WASHROOM_FOR_OTHER_BUILDINGS_Q_CB, \ + ACTION_CATEGORY_CIVIL_BUILDINGS_CANTEEN_DINING_HALL_ORDINARY_ARCHIVES_Q_CB, ACTION_CATEGORY_CIVIL_BUILDINGS_CLASSROOM_LABORATORY_READING_ROOM_MEETING_ROOM_Q_CB, ACTION_CATEGORY_CIVIL_BUILDINGS_DANCE_HALL_Q_CB, \ + ACTION_CATEGORY_CIVIL_BUILDINGS_DWELLING_HOSTEL_HOTEL_OFFICE_HOSPITAL_WARD_Q_CB, ACTION_CATEGORY_CIVIL_BUILDINGS_GYMNASIUM_ARENA_Q_CB, ACTION_CATEGORY_CIVIL_BUILDINGS_KITCHEN_FOR_DINING_HALL_Q_CB, ACTION_CATEGORY_CIVIL_BUILDINGS_KITCHEN_OTHER_Q_CB, \ + ACTION_CATEGORY_CIVIL_BUILDINGS_LAUNDRY_Q_CB, ACTION_CATEGORY_CIVIL_BUILDINGS_PASSAGE_ENTRANCE_HALL_STAIRCASE_HOSTEL_HOTEL_NURSERY_Q_CB, ACTION_CATEGORY_CIVIL_BUILDINGS_PASSAGE_ENTRANCE_HALL_STAIRCASE_OFFICE_CLASSROOM_Q_CB, \ + ACTION_CATEGORY_CIVIL_BUILDINGS_PASSAGE_ENTRANCE_HALL_STAIRCASE_THICK_STREAM_OF_PEOPLE_Q_CB, ACTION_CATEGORY_CIVIL_BUILDINGS_STAIRS_APARTMENT_HOUSE_Q_CB, ACTION_CATEGORY_CIVIL_BUILDINGS_STAIRS_OTHER_Q_CB, ACTION_CATEGORY_CIVIL_BUILDINGS_STANDS_WITHOUT_FIXED_SEAT_Q_CB, \ + ACTION_CATEGORY_CIVIL_BUILDINGS_STOREHOUSE_FOR_COLLECTING_BOOKS_ARCHIVES_STOREROOMS_Q_CB, ACTION_CATEGORY_CIVIL_BUILDINGS_STORES_AND_SHOPS_EXHIBITION_HALLS_STATION_PORT_AIRPORT_Q_CB, ACTION_CATEGORY_CIVIL_BUILDINGS_VENTILATOR_MOTOR_ROOM_ELEVATOR_MOTOR_ROOM_Q_CB, \ + ACTION_CATEGORY_CIVIL_BUILDINGS_WAREHOUSE_WITH_A_DENSE_CONCENTRATION_OF_SHELVING_Q_CB, ACTION_CATEGORY_CONCENTRATED_AND_RAILING_LOADS_Q_CO, ACTION_CATEGORY_CONCRETE_PRESSURE_Q4_2, ACTION_CATEGORY_CONSTRUCTION_AND_MAINTENANCE_LOADS_AND_HORIZONTAL_LOAD_ON_RAILINGS_ACC_TO_5_5_3_Q_CM, \ + ACTION_CATEGORY_CONSTRUCTION_LOADS_DUE_TO_WORKING_PERSONNEL_Q_CP, ACTION_CATEGORY_CONSTRUCTION_OPERATIONS_LOADING_Q2_3, ACTION_CATEGORY_CRANE_LOADS_LIFTING_HOOK_CRANES_OF_WORKING_GRADE_A8_Q_CR, ACTION_CATEGORY_CRANE_LOADS_WORKING_GRADES_A1_A3_Q_CR, \ + ACTION_CATEGORY_CRANE_LOADS_WORKING_GRADES_A4_A5_Q_CR, ACTION_CATEGORY_CRANE_LOADS_WORKING_GRADES_A6_A7_Q_CR, ACTION_CATEGORY_CRANE_LOAD_CL, ACTION_CATEGORY_DEAD_LOAD_D, ACTION_CATEGORY_DEAD_LOAD_DL, ACTION_CATEGORY_DEAD_LOAD_GK, ACTION_CATEGORY_DEAD_LOAD_SOIL_DLS, \ + ACTION_CATEGORY_DEAD_LOAD_SOIL_DS, ACTION_CATEGORY_DEAD_LOAD_SOIL_GKS, ACTION_CATEGORY_DEBRIS_EFFECT_Q6_2, ACTION_CATEGORY_EARTHQUAKE_LOAD_E, ACTION_CATEGORY_EARTHQUAKE_LOAD_EL, ACTION_CATEGORY_EARTHQUAKE_LOAD_HORIZONTAL_EH, ACTION_CATEGORY_EARTHQUAKE_LOAD_VERTICAL_EV, \ + ACTION_CATEGORY_EARTH_PRESSURE_FE, ACTION_CATEGORY_EFFECTS_OF_HORIZONTAL_EARTHQUAKE_FORCES_QE, ACTION_CATEGORY_EQUIPMENT_CHARGES_OF_CONTAINERS_LIQUID_Q_E3, ACTION_CATEGORY_EQUIPMENT_CHARGES_OF_CONTAINERS_LOOSE_Q_E4, ACTION_CATEGORY_EQUIPMENT_FORKLIFTS_AND_ELECTRIC_TRUCKS_Q_E5, \ + ACTION_CATEGORY_EQUIPMENT_ISOLATION_OF_EQUIPMENT_Q_E2, ACTION_CATEGORY_EQUIPMENT_PERMANENT_EQUIPMENT_Q_E1, ACTION_CATEGORY_EQUIPMENT_STORED_MATERIALS_AND_PRODUCTS_Q_M, ACTION_CATEGORY_ERECTION_LOAD_ER, ACTION_CATEGORY_EXCEPTIONAL_EXC, ACTION_CATEGORY_FLOOD_LOAD_FA, \ + ACTION_CATEGORY_FOUNDATION_SUBSIDENCE_QF, ACTION_CATEGORY_GENERAL_CONSTRUCTION_ELEMENTS_AND_EQUIPMENT_G_GE, ACTION_CATEGORY_GENERAL_VARIABLE_ACTIONS_Q_GE, ACTION_CATEGORY_GEOTECHNICAL_LOADS_PERMANENT_GEP, ACTION_CATEGORY_GEOTECHNICAL_LOADS_VARIABLE_GEV, \ + ACTION_CATEGORY_GR1A_LM1_PEDESTRIAN_CYCLE_TRACK_GR1A, ACTION_CATEGORY_GR1B_SINGLE_AXLE_GR1B, ACTION_CATEGORY_GR2_HORIZONTAL_FORCES_LM1_GR2, ACTION_CATEGORY_GR3_PEDESTRIAN_LOAD_GR3, ACTION_CATEGORY_GR4_CROWD_LOADING_PEDESTRIAN_LOAD_GR4, ACTION_CATEGORY_GR5_SPECIAL_VEHICLES_LM1_GR5, \ + ACTION_CATEGORY_GR6_LOADS_FOR_BEARINGS_EXCHANGE_GR6, ACTION_CATEGORY_GROUND_WATER_FGW, ACTION_CATEGORY_HORIZONTAL_EARTHQUAKE_ACTION_EH, ACTION_CATEGORY_ICE_ACTION_FICE, ACTION_CATEGORY_ICE_LOADINGS_Q_I, ACTION_CATEGORY_ICE_QI, ACTION_CATEGORY_IMPOSED_ACTION_Q, \ + ACTION_CATEGORY_IMPOSED_DEFORMATIONS_DUE_TO_PRE_STRESSING_P, ACTION_CATEGORY_IMPOSED_LOADS_ACCESSIBLE_FLAT_ROOFS_EXCLUDING_CATEGORIES_A_TO_D_Q_J, ACTION_CATEGORY_IMPOSED_LOADS_ACCESSIBLE_FLAT_ROOFS_WITH_OCCUPANCY_A_Q_KA, \ + ACTION_CATEGORY_IMPOSED_LOADS_ACCESSIBLE_FLAT_ROOFS_WITH_OCCUPANCY_B_Q_KB, ACTION_CATEGORY_IMPOSED_LOADS_ACCESSIBLE_FLAT_ROOFS_WITH_OCCUPANCY_C_Q_KC, ACTION_CATEGORY_IMPOSED_LOADS_ACCESSIBLE_FLAT_ROOFS_WITH_OCCUPANCY_D_Q_KD, ACTION_CATEGORY_IMPOSED_LOADS_AREAS_WHERE_PEOPLE_CAN_CONGREGATE_Q_C, \ + ACTION_CATEGORY_IMPOSED_LOADS_CATEGORY_A_DOMESTIC_RESIDENTIAL_AREAS_QI_A, ACTION_CATEGORY_IMPOSED_LOADS_CATEGORY_B_OFFICE_AREAS_QI_B, ACTION_CATEGORY_IMPOSED_LOADS_CATEGORY_C_CONGREGATION_AREAS_QI_C, ACTION_CATEGORY_IMPOSED_LOADS_CATEGORY_D_SHOPPING_AREAS_QI_D, \ + ACTION_CATEGORY_IMPOSED_LOADS_CATEGORY_E_STORAGE_AREAS_QI_E, ACTION_CATEGORY_IMPOSED_LOADS_CATEGORY_E_TRAFFIC_AREA_VEHICLE_WEIGHT_LESS_OR_EQUAL_TO_30_KN_QI_E, ACTION_CATEGORY_IMPOSED_LOADS_CATEGORY_F_ROOFS_ACCESSIBLE_ONLY_PRIVATELY_QI_F, \ + ACTION_CATEGORY_IMPOSED_LOADS_CATEGORY_F_TRAFFIC_AREA_VEHICLE_WEIGHT_LESS_OR_EQUAL_TO_30_KN_QI_F, ACTION_CATEGORY_IMPOSED_LOADS_CATEGORY_G1_ROOFS_SLOPE_LESS_THAN_20_Q_G1, ACTION_CATEGORY_IMPOSED_LOADS_CATEGORY_G2_ROOFS_SLOPE_MORE_THAN_40_Q_G2, \ + ACTION_CATEGORY_IMPOSED_LOADS_CATEGORY_G_TRAFFIC_AREA_VEHICLE_WEIGHT_LESS_OR_EQUAL_TO_160_KN_QI_G, ACTION_CATEGORY_IMPOSED_LOADS_CATEGORY_H_INACCESSIBLE_ROOFS_QI_H, ACTION_CATEGORY_IMPOSED_LOADS_CATEGORY_H_ROOFS_ACCESSIBLE_ONLY_FOR_MAINTENANCE_QI_H, \ + ACTION_CATEGORY_IMPOSED_LOADS_CATEGORY_H_ROOFS_QI_H, ACTION_CATEGORY_IMPOSED_LOADS_CATEGORY_I_ROOFS_ACCESSIBLE_QI_I, ACTION_CATEGORY_IMPOSED_LOADS_CATEGORY_I_ROOFS_HELICOPTER_QI_I, ACTION_CATEGORY_IMPOSED_LOADS_CATEGORY_J_ROOFS_HELIPORT_EQUIPMENT_QI_J, \ + ACTION_CATEGORY_IMPOSED_LOADS_CATEGORY_K_FLAT_ROOFS_HELICOPTER_QI_K, ACTION_CATEGORY_IMPOSED_LOADS_CATEGORY_K_FLAT_ROOFS_OTHER_QI_K, ACTION_CATEGORY_IMPOSED_LOADS_CATEGORY_K_ROOFS_FOR_SPECIAL_USES_HELIPORTS_QI_K, ACTION_CATEGORY_IMPOSED_LOADS_DOMESTIC_AND_RESIDENTIAL_AREAS_Q_A, \ + ACTION_CATEGORY_IMPOSED_LOADS_FORK_LIFTS_Q_FL, ACTION_CATEGORY_IMPOSED_LOADS_FROM_CRANES_CLASS_11_12_13_Q_CR, ACTION_CATEGORY_IMPOSED_LOADS_FROM_CRANES_CLASS_1_7_Q_CR, ACTION_CATEGORY_IMPOSED_LOADS_FROM_CRANES_CLASS_8_Q_CR, ACTION_CATEGORY_IMPOSED_LOADS_FROM_CRANES_CLASS_9_10_Q_CR, \ + ACTION_CATEGORY_IMPOSED_LOADS_FROM_CRANES_SUPPORT_FORCES_Q_CR, ACTION_CATEGORY_IMPOSED_LOADS_HELICOPTER_LOAD_Q_HC, ACTION_CATEGORY_IMPOSED_LOADS_INACCESSIBLE_ROOFS_Q_H, ACTION_CATEGORY_IMPOSED_LOADS_INDUSTRIAL_USE_Q_E2, ACTION_CATEGORY_IMPOSED_LOADS_LIGHT_INDUSTRIAL_USE_Q_E1, \ + ACTION_CATEGORY_IMPOSED_LOADS_LIVE_LOADS_LL, ACTION_CATEGORY_IMPOSED_LOADS_PUBLIC_AREAS_NOT_SUSCEPTIBLE_TO_CROWDING_Q_B, ACTION_CATEGORY_IMPOSED_LOADS_SHOPPING_AREAS_Q_D, ACTION_CATEGORY_IMPOSED_LOADS_STORAGE_AREAS_Q_E3, \ + ACTION_CATEGORY_IMPOSED_LOADS_TRAFFIC_AND_PARKING_AREAS_FOR_VEHICLES_25_KN_Q_F, ACTION_CATEGORY_IMPOSED_LOADS_TRAFFIC_AND_PARKING_AREAS_FOR_VEHICLES_25_KN_TO_160_KN_Q_G, ACTION_CATEGORY_IMPOSED_LOAD_QK, ACTION_CATEGORY_INDUSTRIALIZED_CONSTRUCTION_ELEMENTS_G_IN, \ + ACTION_CATEGORY_INDUSTRIALIZED_CONSTRUCTION_ELEMENTS_WITH_ADDITION_ON_SITE_G_IS, ACTION_CATEGORY_INDUSTRIAL_BUILDINGS_COTTON_MILLING_WORKSHOP_TABLE_D_0_1_4_Q_IB, ACTION_CATEGORY_INDUSTRIAL_BUILDINGS_GRAIN_PROCESSING_WORKSHOP_TABLE_D_0_1_6_Q_IB, \ + ACTION_CATEGORY_INDUSTRIAL_BUILDINGS_MANUFACTURING_WORKSHOP_TABLE_D_0_1_2_ITEM_NO_1_2_4_6_Q_IB, ACTION_CATEGORY_INDUSTRIAL_BUILDINGS_MANUFACTURING_WORKSHOP_TABLE_D_0_1_2_ITEM_NO_3_5_Q_IB, ACTION_CATEGORY_INDUSTRIAL_BUILDINGS_MANUFACTURING_WORKSHOP_TABLE_D_0_1_2_ITEM_NO_7_Q_IB, \ + ACTION_CATEGORY_INDUSTRIAL_BUILDINGS_METAL_WORKING_WORKSHOP_TABLE_D_0_1_1_Q_IB, ACTION_CATEGORY_INDUSTRIAL_BUILDINGS_PREPARATORY_WORKSHOP_FOR_TIRE_PLANT_TABLE_D_0_1_5_Q_IB, ACTION_CATEGORY_INDUSTRIAL_BUILDINGS_SEMICONDUCTOR_PRODUCTION_WORKSHOP_TABLE_D_0_1_3_Q_IB, \ + ACTION_CATEGORY_INFLUENCES_RESULTING_FROM_TEMPERATURE_CHANGES_SHRINKAGE_OR_CREEP_ETC_T, ACTION_CATEGORY_IN_SITU_CONCRETE_LOADING_ALLOWANCE_Q4_1, ACTION_CATEGORY_LATERAL_EARTH_PRESSURE_H, ACTION_CATEGORY_LIQUID_PRESSURE_FLP, \ + ACTION_CATEGORY_LIVE_LOADS_ON_ROOFS_HELICOPTER_ON_THE_ROOF_ACC_TO_5_3_2_Q_LR, ACTION_CATEGORY_LIVE_LOADS_ON_ROOFS_MANNED_ROOF_Q_LR, ACTION_CATEGORY_LIVE_LOADS_ON_ROOFS_ROOF_GARDEN_Q_LR, ACTION_CATEGORY_LIVE_LOADS_ON_ROOFS_ROOF_SPORTS_GROUND_Q_LR, \ + ACTION_CATEGORY_LIVE_LOADS_ON_ROOFS_UNMANNED_ROOF_Q_LR, ACTION_CATEGORY_LIVE_LOAD_DUE_TO_EARTHQUAKE_E, ACTION_CATEGORY_LIVE_LOAD_DUE_TO_WIND_W, ACTION_CATEGORY_LIVE_LOAD_L, ACTION_CATEGORY_LOADS_FROM_CRANES_GROUP_6K_Q_C4, ACTION_CATEGORY_LOADS_FROM_CRANES_GROUP_7K_Q_C3, \ + ACTION_CATEGORY_LOADS_FROM_CRANES_GROUP_8K_ELASTIC_Q_C2, ACTION_CATEGORY_LOADS_FROM_CRANES_GROUP_8K_RIGID_Q_C1, ACTION_CATEGORY_LOADS_FROM_CRANES_IN_GENERAL_Q_C1, ACTION_CATEGORY_LOADS_FROM_CRANES_OTHER_GROUPS_Q_C5, ACTION_CATEGORY_LOADS_FROM_VEHICLES_Q_V, \ + ACTION_CATEGORY_LOADS_PRODUCED_BY_FLOWING_WATER_Q6_1, ACTION_CATEGORY_LOAD_ARISING_FROM_EXTRAORDINARY_EVENT_AK, ACTION_CATEGORY_LOAD_DUE_TO_FLUIDS_WITH_WELL_DEFINED_PRESSURES_AND_MAXIMUM_HEIGHTS_F, ACTION_CATEGORY_LOAD_DUE_TO_LATERAL_EARTH_PRESSURE_GROUND_WATER_PRESSURE_H,\ + ACTION_CATEGORY_MAXIMUM_WIND_Q5_1, ACTION_CATEGORY_NONE_NONE, ACTION_CATEGORY_NOTIONAL_HORIZONTAL_FORCES_ACCORDING_TO_BS_5950_NK, ACTION_CATEGORY_NOTIONAL_LOAD_FOR_STRUCTURAL_INTEGRITY_N, ACTION_CATEGORY_OTHER_ACTIONS_QO, ACTION_CATEGORY_OTHER_CONSTRUCTION_LOADS_Q_CO, \ + ACTION_CATEGORY_OTHER_IMPOSED_PERMANENT_DEFORMATIONS_FOR_EXAMPLE_SETTLEMENT_G_OT, ACTION_CATEGORY_OTHER_LIVE_LOADS_QO, ACTION_CATEGORY_OTHER_LOADS_Q9, ACTION_CATEGORY_OTHER_TYPES_OF_VARIABLE_LOADS_Q_OT, ACTION_CATEGORY_PERMANENT_EARTH_PRESSURE_G_E, \ + ACTION_CATEGORY_PERMANENT_FROM_CRANES_G_CR, ACTION_CATEGORY_PERMANENT_G, ACTION_CATEGORY_PERMANENT_G1, ACTION_CATEGORY_PERMANENT_GEOTECHNICAL_ACTIONS_SOIL_PARAMETERS_FACTORED_G_GF, ACTION_CATEGORY_PERMANENT_GEOTECHNICAL_ACTIONS_SOIL_PARAMETERS_UN_FACTORED_G_GU, \ + ACTION_CATEGORY_PERMANENT_IMPOSED_GQ, ACTION_CATEGORY_PERMANENT_IMPOSED_NON_STRUCTURAL_G2, ACTION_CATEGORY_PERMANENT_LOADS_FROM_FLUIDS_G_FL, ACTION_CATEGORY_PERMANENT_NON_STRUCTURAL_G2, ACTION_CATEGORY_PERMANENT_SELF_WEIGHT_SELF_WEIGHT_OF_SOIL_G, \ + ACTION_CATEGORY_PERMANENT_SMALL_FLUCTUATIONS_G_ASTERISK, ACTION_CATEGORY_PERMANENT_SOIL_GS, ACTION_CATEGORY_PERMANENT_WATER_PRESSURE_G_W, ACTION_CATEGORY_PLACEMENT_LOADS_QP, ACTION_CATEGORY_PREMISES_OF_BUILDINGS_UNIFORM_LOADS_2_KN_M2_AND_MORE_Q_U2, \ + ACTION_CATEGORY_PREMISES_OF_BUILDINGS_UNIFORM_LOADS_LESS_THAN_2_KN_M2_Q_U1, ACTION_CATEGORY_PRESTRESSING_Q8_3, ACTION_CATEGORY_PRESTRESS_P, ACTION_CATEGORY_RAINWATER_PONDING_FPND, ACTION_CATEGORY_RAIN_LOAD_QR, ACTION_CATEGORY_RAIN_LOAD_R, ACTION_CATEGORY_ROOF_LIVE_LOAD_LR, \ + ACTION_CATEGORY_SEISMIC_ACTIONS_AE, ACTION_CATEGORY_SEISMIC_AE, ACTION_CATEGORY_SEISMIC_EFFECTS_Q7, ACTION_CATEGORY_SELF_STRAINING_FORCE_T, ACTION_CATEGORY_SELF_WEIGHT_CONCRETE_1600_KG_M3_AND_LESS_ON_BUILDING_SITE_G_C3, ACTION_CATEGORY_SELF_WEIGHT_CONCRETE_1600_KG_M3_AND_LESS_PREFABRICATED_G_C2, \ + ACTION_CATEGORY_SELF_WEIGHT_CONCRETE_MORE_THAN_1600_KG_M3_STONE_TIMBER_G_C1, ACTION_CATEGORY_SELF_WEIGHT_G, ACTION_CATEGORY_SELF_WEIGHT_OF_METAL_STRUCTURES_G_ME, ACTION_CATEGORY_SELF_WEIGHT_OF_PREFABRICATED_STRUCTURES_G_PR, ACTION_CATEGORY_SELF_WEIGHT_OF_STRUCTURES_BUILT_ON_SITE_G_SI, \ + ACTION_CATEGORY_SELF_WEIGHT_Q1_1, ACTION_CATEGORY_SELF_WEIGHT_SOIL_MODIFIED_G_SM, ACTION_CATEGORY_SELF_WEIGHT_SOIL_NATURAL_G_SN, ACTION_CATEGORY_SELF_WEIGHT_STEEL_CONSTRUCTIONS_G_S1, ACTION_CATEGORY_SELF_WEIGHT_STEEL_CONSTRUCTIONS_OVER_50_OF_TOTAL_LOAD_G_S2, \ + ACTION_CATEGORY_SERVICEABILITY_EARTHQUAKE_ACTION_ES, ACTION_CATEGORY_SERVICEABILITY_WIND_ACTION_WS, ACTION_CATEGORY_SETTLEMENTS_OF_SUPPORTS_SHRINKAGE_SETT, ACTION_CATEGORY_SETTLEMENT_Q8_2, ACTION_CATEGORY_SNOW_ACTION_FSN, ACTION_CATEGORY_SNOW_AND_ICE_Q2_4, \ + ACTION_CATEGORY_SNOW_ICE_AND_RAIN_S, ACTION_CATEGORY_SNOW_ICE_LOADS_1_LESS_OR_EQUAL_TO_SK_LESSER_THAN_2_KN_M2_QS, ACTION_CATEGORY_SNOW_ICE_LOADS_2_LESS_OR_EQUAL_TO_SK_LESSER_THAN_3_KN_M2_QS, ACTION_CATEGORY_SNOW_ICE_LOADS_FINLAND_ICELAND_QS, \ + ACTION_CATEGORY_SNOW_ICE_LOADS_H_GREATER_THAN_1000_M_QS, ACTION_CATEGORY_SNOW_ICE_LOADS_H_LESS_OR_EQUAL_TO_1000_M_QS, ACTION_CATEGORY_SNOW_ICE_LOADS_OUTDOOR_TERRACES_AND_BALCONIES_SK_GREATER_THAN_2_75_KN_M2_QS, \ + ACTION_CATEGORY_SNOW_ICE_LOADS_OUTDOOR_TERRACES_AND_BALCONIES_SK_LESS_OR_EQUAL_TO_2_75_KN_M2_QS, ACTION_CATEGORY_SNOW_ICE_LOADS_QS, ACTION_CATEGORY_SNOW_ICE_LOADS_SK_GREATER_OR_EQUAL_TO_3_KN_M2_QS, ACTION_CATEGORY_SNOW_ICE_LOADS_SK_GREATER_THAN_2_75_KN_M2_QS, \ + ACTION_CATEGORY_SNOW_ICE_LOADS_SK_LESS_OR_EQUAL_TO_2_75_KN_M2_QS, ACTION_CATEGORY_SNOW_LOADINGS_Q_S, ACTION_CATEGORY_SNOW_LOAD_S, ACTION_CATEGORY_SNOW_LOAD_ZONE_III_S, ACTION_CATEGORY_SNOW_LOAD_ZONE_II_S, ACTION_CATEGORY_SNOW_LOAD_ZONE_I_S, \ + ACTION_CATEGORY_SNOW_REGION_SAINT_PIERRE_AND_MIQUELON_QS, ACTION_CATEGORY_SOIL_Q1_2, ACTION_CATEGORY_SPECIAL_LOADINGS_PS, ACTION_CATEGORY_STORAGE_AREAS_Q2_2, ACTION_CATEGORY_SUPPORTED_CONSTRUCTION_Q2_1, ACTION_CATEGORY_TEMPERATURE_CLIMATIC_INFLUENCES_Q_T, \ + ACTION_CATEGORY_TEMPERATURE_NON_FIRE_QT, ACTION_CATEGORY_TEMPERATURE_Q8_1, ACTION_CATEGORY_TEMPERATURE_SHRINKAGE_CREEP_ETC_T, ACTION_CATEGORY_THERMAL_ACTIONS_ARISING_FROM_THE_FIRE_T, ACTION_CATEGORY_THERMAL_ACTIONS_QT, ACTION_CATEGORY_THERMAL_ACTION_ACCORDING_TO_9_1_3_T, \ + ACTION_CATEGORY_ULTIMATE_EARTHQUAKE_ACTION_EU, ACTION_CATEGORY_ULTIMATE_WIND_ACTION_WU, ACTION_CATEGORY_UNEVEN_SETTLEMENTS_G_US, ACTION_CATEGORY_UNIT_LOADS_QU, ACTION_CATEGORY_VARIABLE_GEOTECHNICAL_ACTIONS_SOIL_PARAMETERS_FACTORED_GROUNDWATER_GEF1, \ + ACTION_CATEGORY_VARIABLE_GEOTECHNICAL_ACTIONS_SOIL_PARAMETERS_FACTORED_GROUND_WATER_FLUIDS_GEF2, ACTION_CATEGORY_VARIABLE_GEOTECHNICAL_ACTIONS_SOIL_PARAMETERS_FACTORED_OTHER_ACTIONS_GEF3, ACTION_CATEGORY_VARIABLE_GEOTECHNICAL_ACTIONS_SOIL_PARAMETERS_UN_FACTORED_GROUNDWATER_GEU1, \ + ACTION_CATEGORY_VARIABLE_GEOTECHNICAL_ACTIONS_SOIL_PARAMETERS_UN_FACTORED_GROUND_WATER_FLUIDS_GEU2, ACTION_CATEGORY_VARIABLE_GEOTECHNICAL_ACTIONS_SOIL_PARAMETERS_UN_FACTORED_OTHER_ACTIONS_GEU3, ACTION_CATEGORY_VARIABLE_LOADS_FROM_FLUIDS_Q_FL, \ + ACTION_CATEGORY_VARIABLE_PERSISTENT_HORIZONTAL_IMPOSED_ACTIONS_Q3, ACTION_CATEGORY_VARIABLE_Q, ACTION_CATEGORY_VERTICAL_EARTHQUAKE_ACTION_EV, ACTION_CATEGORY_WEIGHT_OF_ICE_DI, ACTION_CATEGORY_WIND_LOADINGS_Q_W, ACTION_CATEGORY_WIND_LOADS_FWK_EXECUTION_QWE, \ + ACTION_CATEGORY_WIND_LOADS_FWK_PERSISTENT_DESIGN_SITUATIONS_QWP, ACTION_CATEGORY_WIND_LOADS_FW_QW, ACTION_CATEGORY_WIND_LOAD_ACCORDING_TO_8_1_4_W, ACTION_CATEGORY_WIND_LOAD_W, ACTION_CATEGORY_WIND_LOAD_WK, ACTION_CATEGORY_WIND_LOAD_WL,ACTION_CATEGORY_WIND_ON_ICE_DETERMINED_IN_ACCORDANCE_WITH_SECTION_10_WI, \ + ACTION_CATEGORY_WIND_QW, ACTION_CATEGORY_WORKING_WIND_Q5_2 = range(278) + +class DesignSituationType(Enum): + ''' + Design Situation Type + ''' + DESIGN_SITUATION_TYPE_ACCIDENTAL_SANS, DESIGN_SITUATION_TYPE_APPENDIX_C, DESIGN_SITUATION_TYPE_APPENDIX_C_08, DESIGN_SITUATION_TYPE_APPENDIX_C_1, DESIGN_SITUATION_TYPE_APPENDIX_C_1_08, DESIGN_SITUATION_TYPE_ACCIDENTAL, DESIGN_SITUATION_TYPE_APPENDIX_C_2, DESIGN_SITUATION_TYPE_APPENDIX_C_2_08, \ + DESIGN_SITUATION_TYPE_APPENDIX_C_3, DESIGN_SITUATION_TYPE_APPENDIX_C_3_08,DESIGN_SITUATION_TYPE_APPENDIX_C_4, DESIGN_SITUATION_TYPE_APPENDIX_C_4_08, DESIGN_SITUATION_TYPE_APPENDIX_C_5, DESIGN_SITUATION_TYPE_APPENDIX_C_5_08,DESIGN_SITUATION_TYPE_APPENDIX_C_6, DESIGN_SITUATION_TYPE_APPENDIX_C_6_08, \ + DESIGN_SITUATION_TYPE_A_ACCIDENTAL, DESIGN_SITUATION_TYPE_CHAPTER_5, DESIGN_SITUATION_TYPE_CHAPTER_5_A, DESIGN_SITUATION_TYPE_CHAPTER_5_B, DESIGN_SITUATION_TYPE_CHAPTER_5_C, DESIGN_SITUATION_TYPE_CHAPTER_5_D, DESIGN_SITUATION_TYPE_CHAPTER_5_E, DESIGN_SITUATION_TYPE_CHAPTER_5_F, DESIGN_SITUATION_TYPE_CHAPTER_5_G, \ + DESIGN_SITUATION_TYPE_CHAPTER_5_P, DESIGN_SITUATION_TYPE_CHAPTER_5_P_A, DESIGN_SITUATION_TYPE_CHAPTER_5_P_B, DESIGN_SITUATION_TYPE_CHAPTER_5_P_C, DESIGN_SITUATION_TYPE_CHAPTER_5_P_D, DESIGN_SITUATION_TYPE_CHAPTER_5_P_E, DESIGN_SITUATION_TYPE_CHAPTER_5_P_F, DESIGN_SITUATION_TYPE_CHAPTER_5_P_G, \ + DESIGN_SITUATION_TYPE_CHAPTER_9, DESIGN_SITUATION_TYPE_CHAPTER_9_08, DESIGN_SITUATION_TYPE_CHAPTER_9_1, DESIGN_SITUATION_TYPE_CHAPTER_9_1_08, DESIGN_SITUATION_TYPE_CHAPTER_9_2, DESIGN_SITUATION_TYPE_CHAPTER_9_2_08, DESIGN_SITUATION_TYPE_CHAPTER_9_3, DESIGN_SITUATION_TYPE_CHAPTER_9_3_08, \ + DESIGN_SITUATION_TYPE_CHAPTER_9_4, DESIGN_SITUATION_TYPE_CHAPTER_9_4_08, DESIGN_SITUATION_TYPE_CHAPTER_9_5, DESIGN_SITUATION_TYPE_CHAPTER_9_5_08, DESIGN_SITUATION_TYPE_CHAPTER_9_6, DESIGN_SITUATION_TYPE_CHAPTER_9_6_08, DESIGN_SITUATION_TYPE_CHAPTER_9_7, DESIGN_SITUATION_TYPE_CHAPTER_9_7_08, \ + DESIGN_SITUATION_TYPE_CLAUSE_7_2_2, DESIGN_SITUATION_TYPE_CLAUSE_7_2_6_A, DESIGN_SITUATION_TYPE_CLAUSE_7_2_6_B, DESIGN_SITUATION_TYPE_CLAUSE_7_2_6_C, DESIGN_SITUATION_TYPE_EARTHQUAKE_LIMIT_STATE_AISC341_ASD, DESIGN_SITUATION_TYPE_EARTHQUAKE_LIMIT_STATE_AISC341_ASD_OVERSTRENGTH, \ + DESIGN_SITUATION_TYPE_EARTHQUAKE_LIMIT_STATE_AISC341_LRFD, DESIGN_SITUATION_TYPE_EARTHQUAKE_LIMIT_STATE_AISC341_LRFD_OVERSTRENGTH, DESIGN_SITUATION_TYPE_EARTHQUAKE_LIMIT_STATE_CSA_S16, DESIGN_SITUATION_TYPE_EFFECTIVE_SEISMIC_WEIGHT, DESIGN_SITUATION_TYPE_EQUILIBRIUM_ACCIDENTAL, \ + DESIGN_SITUATION_TYPE_EQUILIBRIUM_FUNDAMENTAL, DESIGN_SITUATION_TYPE_EQUILIBRIUM_SEISMIC, DESIGN_SITUATION_TYPE_EQU_ACCIDENTAL_FIRE, DESIGN_SITUATION_TYPE_EQU_ACCIDENTAL_PSI_1_1, DESIGN_SITUATION_TYPE_EQU_ACCIDENTAL_PSI_2_1, DESIGN_SITUATION_TYPE_EQU_ACCIDENTAL_SNOW_PSI_1_1, \ + DESIGN_SITUATION_TYPE_EQU_ACCIDENTAL_SNOW_PSI_2_1, DESIGN_SITUATION_TYPE_EQU_ACCIDENTAL_TWO_STARS, DESIGN_SITUATION_TYPE_EQU_EXCEPTIONAL_SNOW, DESIGN_SITUATION_TYPE_EQU_LOAD_CASE_1, DESIGN_SITUATION_TYPE_EQU_LOAD_CASE_2, DESIGN_SITUATION_TYPE_EQU_LOAD_CASE_3, DESIGN_SITUATION_TYPE_EQU_LOAD_CASE_4, \ + DESIGN_SITUATION_TYPE_EQU_PERMANENT_AND_TRANSIENT, DESIGN_SITUATION_TYPE_EQU_PERMANENT_FUNDAMENTAL, DESIGN_SITUATION_TYPE_EQU_PERMANENT_TRANSIENT_BEARINGS_EXCHANGE, DESIGN_SITUATION_TYPE_EQU_SEISMIC, DESIGN_SITUATION_TYPE_E_SEISMIC, DESIGN_SITUATION_TYPE_FAILURE_OF_STRUCTURE_ACCIDENTAL, \ + DESIGN_SITUATION_TYPE_FAILURE_OF_STRUCTURE_FUNDAMENTAL, DESIGN_SITUATION_TYPE_FAILURE_OF_STRUCTURE_SEISMIC, DESIGN_SITUATION_TYPE_FATIGUE, DESIGN_SITUATION_TYPE_FIRE_LIMIT_STATE_AISC360, DESIGN_SITUATION_TYPE_FIRE_LIMIT_STATE_NDS, DESIGN_SITUATION_TYPE_FUNDAMENTAL_PERMANENT, \ + DESIGN_SITUATION_TYPE_FUNDAMENTAL_VARIABLE, DESIGN_SITUATION_TYPE_GEO_1_1_ACCIDENTAL_PSI_1_1, DESIGN_SITUATION_TYPE_GEO_1_1_ACCIDENTAL_PSI_2_1, DESIGN_SITUATION_TYPE_GEO_1_1_PERMANENT_AND_TRANSIENT_6_10, DESIGN_SITUATION_TYPE_GEO_1_1_PERMANENT_AND_TRANSIENT_6_10A_AND_6_10B, \ + DESIGN_SITUATION_TYPE_GEO_1_1_SEISMIC, DESIGN_SITUATION_TYPE_GEO_1_2_ACCIDENTAL_PSI_1_1, DESIGN_SITUATION_TYPE_GEO_1_2_ACCIDENTAL_PSI_2_1, DESIGN_SITUATION_TYPE_GEO_1_2_PERMANENT_AND_TRANSIENT_6_10, DESIGN_SITUATION_TYPE_GEO_1_2_PERMANENT_AND_TRANSIENT_6_10A_AND_6_10B, \ + DESIGN_SITUATION_TYPE_GEO_1_2_SEISMIC, DESIGN_SITUATION_TYPE_GEO_2_ACCIDENTAL_PSI_1_1, DESIGN_SITUATION_TYPE_GEO_2_ACCIDENTAL_PSI_2_1, DESIGN_SITUATION_TYPE_GEO_2_PERMANENT_AND_TRANSIENT_6_10, DESIGN_SITUATION_TYPE_GEO_2_PERMANENT_AND_TRANSIENT_6_10A_AND_6_10B, DESIGN_SITUATION_TYPE_GEO_2_SEISMIC, \ + DESIGN_SITUATION_TYPE_GEO_3_ACCIDENTAL_PSI_1_1, DESIGN_SITUATION_TYPE_GEO_3_ACCIDENTAL_PSI_2_1, DESIGN_SITUATION_TYPE_GEO_3_PERMANENT_AND_TRANSIENT_6_10, DESIGN_SITUATION_TYPE_GEO_3_PERMANENT_AND_TRANSIENT_6_10A_AND_6_10B, DESIGN_SITUATION_TYPE_GEO_3_SEISMIC, DESIGN_SITUATION_TYPE_GEO_ACCIDENTAL_PSI_1_1, \ + DESIGN_SITUATION_TYPE_GEO_ACCIDENTAL_PSI_2_1, DESIGN_SITUATION_TYPE_GEO_PERMANENT_AND_TRANSIENT_SANS, DESIGN_SITUATION_TYPE_GEO_PERMANENT_FUNDAMENTAL, DESIGN_SITUATION_TYPE_GEO_PERMANENT_TRANSIENT, DESIGN_SITUATION_TYPE_GEO_SEISMIC, DESIGN_SITUATION_TYPE_HYD_ACCIDENTAL_PSI_1_1, \ + DESIGN_SITUATION_TYPE_HYD_ACCIDENTAL_PSI_2_1, DESIGN_SITUATION_TYPE_HYD_PERMANENT_AND_TRANSIENT, DESIGN_SITUATION_TYPE_HYD_SEISMIC, DESIGN_SITUATION_TYPE_IRREVERSIBLE_SANS, DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_FIRE, DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_SERVICEABILITY, \ + DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_SERVICEABILITY_1, DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_SERVICEABILITY_2, DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_SERVICEABILITY_3, DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_SERVICEABILITY_CASE, DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_SERVICEABILITY_CASE_1, \ + DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_SERVICEABILITY_CASE_2, DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_SERVICEABILITY_CASE_3, DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_SERVICEABILITY_LIVE_LOAD, DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_SERVICEABILITY_PERMANENT_LOAD, DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_SERVICEABILITY_TOTAL_LOAD, \ + DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_STRENGTH, DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_STRENGTH_1, DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_STRENGTH_2, DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_STRENGTH_3, DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_STRENGTH_4, DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_STRENGTH_5, \ + DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_STRENGTH_6, DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_STRENGTH_CASE, DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_STRENGTH_CASE_1, DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_STRENGTH_CASE_2, DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_STRENGTH_CASE_3, DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_STRENGTH_CASE_4, \ + DESIGN_SITUATION_TYPE_LIMIT_STATE_OF_STRENGTH_CASE_5, DESIGN_SITUATION_TYPE_REVERSIBLE_SANS, DESIGN_SITUATION_TYPE_SECTION_1604_3_SERVICEABILITY, DESIGN_SITUATION_TYPE_SECTION_1604_3_SERVICEABILITY_D_L, DESIGN_SITUATION_TYPE_SECTION_1604_3_SERVICEABILITY_KCR_D_L, DESIGN_SITUATION_TYPE_SECTION_1604_3_SERVICEABILITY_L, \ + DESIGN_SITUATION_TYPE_SECTION_1604_3_SERVICEABILITY_L_OR_LR, DESIGN_SITUATION_TYPE_SECTION_1604_3_SERVICEABILITY_S_W, DESIGN_SITUATION_TYPE_SECTION_1605_2_LRFD, DESIGN_SITUATION_TYPE_SECTION_1605_2_LRFD_16_1, DESIGN_SITUATION_TYPE_SECTION_1605_2_LRFD_16_2, DESIGN_SITUATION_TYPE_SECTION_1605_2_LRFD_16_3, \ + DESIGN_SITUATION_TYPE_SECTION_1605_2_LRFD_16_4, DESIGN_SITUATION_TYPE_SECTION_1605_2_LRFD_16_5, DESIGN_SITUATION_TYPE_SECTION_1605_2_LRFD_16_6, DESIGN_SITUATION_TYPE_SECTION_1605_2_LRFD_16_7, DESIGN_SITUATION_TYPE_SECTION_1605_3_1_ASD, DESIGN_SITUATION_TYPE_SECTION_1605_3_1_ASD_16_10, \ + DESIGN_SITUATION_TYPE_SECTION_1605_3_1_ASD_16_11, DESIGN_SITUATION_TYPE_SECTION_1605_3_1_ASD_16_12, DESIGN_SITUATION_TYPE_SECTION_1605_3_1_ASD_16_13, DESIGN_SITUATION_TYPE_SECTION_1605_3_1_ASD_16_14, DESIGN_SITUATION_TYPE_SECTION_1605_3_1_ASD_16_15, DESIGN_SITUATION_TYPE_SECTION_1605_3_1_ASD_16_16, \ + DESIGN_SITUATION_TYPE_SECTION_1605_3_1_ASD_16_8, DESIGN_SITUATION_TYPE_SECTION_1605_3_1_ASD_16_9, DESIGN_SITUATION_TYPE_SECTION_1605_3_2_ASD, DESIGN_SITUATION_TYPE_SECTION_1605_3_2_ASD_16_17, DESIGN_SITUATION_TYPE_SECTION_1605_3_2_ASD_16_18, DESIGN_SITUATION_TYPE_SECTION_1605_3_2_ASD_16_19, \ + DESIGN_SITUATION_TYPE_SECTION_1605_3_2_ASD_16_20, DESIGN_SITUATION_TYPE_SECTION_1605_3_2_ASD_16_21, DESIGN_SITUATION_TYPE_SECTION_1605_3_2_ASD_16_22, DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD, DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_1, DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_2, DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_3, \ + DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_4, DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_5, DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_5_OVERSTRENGTH, DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_6, DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_7, DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_7_10, DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_7_10_1, \ + DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_7_10_2, DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_7_10_3, DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_7_10_4, DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_7_10_5, DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_7_10_5_OVERSTRENGTH, DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_7_10_6, \ + DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_7_10_7, DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_7_10_7_OVERSTRENGTH, DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_7_16, DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_7_16_5, DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_7_16_6, DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_7_16_6_OVERSTRENGTH, \ + DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_7_16_7, DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_7_16_7_OVERSTRENGTH, DESIGN_SITUATION_TYPE_SECTION_2_3_LRFD_7_OVERSTRENGTH, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_1, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_2, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_3, \ + DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_4, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_5, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_5_OVERSTRENGTH, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_6, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_6_OVERSTRENGTH, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7_10, \ + DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7_10_1, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7_10_2, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7_10_3, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7_10_4, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7_10_5, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7_10_5_OVERSTRENGTH, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7_10_6A, \ + DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7_10_6B, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7_10_6B_OVERSTRENGTH, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7_10_7, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7_10_8, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7_10_8_OVERSTRENGTH, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7_16, \ + DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7_16_10, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7_16_10_OVERSTRENGTH, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7_16_5, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7_16_6, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7_16_8, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7_16_8_OVERSTRENGTH, \ + DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7_16_9, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_7_16_9_OVERSTRENGTH, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_8, DESIGN_SITUATION_TYPE_SECTION_2_4_ASD_8_OVERSTRENGTH, DESIGN_SITUATION_TYPE_SECTION_2_5_EXTRAORDINARY_7_10, DESIGN_SITUATION_TYPE_SECTION_2_5_EXTRAORDINARY_7_10_1, \ + DESIGN_SITUATION_TYPE_SECTION_2_5_EXTRAORDINARY_7_10_2, DESIGN_SITUATION_TYPE_SECTION_2_6_1_STR_INT_7_16, DESIGN_SITUATION_TYPE_SECTION_2_6_1_STR_INT_7_16_1, DESIGN_SITUATION_TYPE_SECTION_2_6_1_STR_INT_7_16_2, DESIGN_SITUATION_TYPE_SECTION_2_6_2_STR_INT_7_16, DESIGN_SITUATION_TYPE_SECTION_2_6_2_STR_INT_7_16_1, \ + DESIGN_SITUATION_TYPE_SECTION_2_6_2_STR_INT_7_16_2, DESIGN_SITUATION_TYPE_SECTION_2_6_2_STR_INT_7_16_3, DESIGN_SITUATION_TYPE_SEIO_SEISMIC_DESIGN_OVERSTRENGTH_LRFD, DESIGN_SITUATION_TYPE_SEISMIC_MASS, DESIGN_SITUATION_TYPE_SEISMIC_MASS_NTC, DESIGN_SITUATION_TYPE_SEISMIC_WEIGHT_IS, DESIGN_SITUATION_TYPE_SEI_SEISMIC_DESIGN_LRFD, \ + DESIGN_SITUATION_TYPE_SERVICEABILITY_LIMIT_STATE, DESIGN_SITUATION_TYPE_SERVICEABILITY_LIMIT_STATES, DESIGN_SITUATION_TYPE_SERVICEABILITY_LIMIT_STATES_1, DESIGN_SITUATION_TYPE_SERVICEABILITY_LIMIT_STATES_2, DESIGN_SITUATION_TYPE_SERVICEABILITY_LIMIT_STATES_3, DESIGN_SITUATION_TYPE_SERVICEABILITY_LIMIT_STATES_VIBRATION, \ + DESIGN_SITUATION_TYPE_SERVICEABILITY_LIMIT_STATE_1, DESIGN_SITUATION_TYPE_SERVICEABILITY_LIMIT_STATE_2, DESIGN_SITUATION_TYPE_SERVICEABILITY_LIMIT_STATE_3, DESIGN_SITUATION_TYPE_SERVICEABILITY_LIMIT_STATE_4, DESIGN_SITUATION_TYPE_SERVICEABILITY_LIMIT_STATE_ADM, DESIGN_SITUATION_TYPE_SERVICEABILITY_LIMIT_STATE_AISC360, \ + DESIGN_SITUATION_TYPE_SERVICEABILITY_LIMIT_STATE_LONG_TERM_EFFECT, DESIGN_SITUATION_TYPE_SERVICEABILITY_LIMIT_STATE_NDS, DESIGN_SITUATION_TYPE_SERVICEABILITY_LIMIT_STATE_SHORT_TERM_EFFECT, DESIGN_SITUATION_TYPE_SER_SERVICEABILITY_DESIGN, DESIGN_SITUATION_TYPE_SLS_ALL_VARIABLE_ACTIONS_STORAGE, \ + DESIGN_SITUATION_TYPE_SLS_CHARACTERISTIC, DESIGN_SITUATION_TYPE_SLS_CHARACTERISTIC_1, DESIGN_SITUATION_TYPE_SLS_CHARACTERISTIC_2, DESIGN_SITUATION_TYPE_SLS_CHARACTERISTIC_BEARINGS_EXCHANGE, DESIGN_SITUATION_TYPE_SLS_CHARACTERISTIC_COMFORT, DESIGN_SITUATION_TYPE_SLS_CHARACTERISTIC_GB_50011, \ + DESIGN_SITUATION_TYPE_SLS_CHARACTERISTIC_INTEGRITY, DESIGN_SITUATION_TYPE_SLS_CHARACTERISTIC_NTC, DESIGN_SITUATION_TYPE_SLS_CHARACTERISTIC_QUASI_PERMANENT, DESIGN_SITUATION_TYPE_SLS_CHARACTERISTIC_WITH_DIRECT_LOAD, DESIGN_SITUATION_TYPE_SLS_CHARACTERISTIC_WITH_IMPOSED_DEFORMATION, DESIGN_SITUATION_TYPE_SLS_CSA_A23_3, \ + DESIGN_SITUATION_TYPE_SLS_EARTHQUAKE, DESIGN_SITUATION_TYPE_SLS_FREQUENT, DESIGN_SITUATION_TYPE_SLS_FREQUENT_FUNCTIONALITY_COMFORT, DESIGN_SITUATION_TYPE_SLS_FREQUENT_NTC, DESIGN_SITUATION_TYPE_SLS_G_NZS, DESIGN_SITUATION_TYPE_SLS_G_PSI_L_Q_NZS, DESIGN_SITUATION_TYPE_SLS_G_PSI_S_Q_NZS, DESIGN_SITUATION_TYPE_SLS_G_PSI_S_Q_OR_W_S_NZS, \ + DESIGN_SITUATION_TYPE_SLS_NON_FREQUENT, DESIGN_SITUATION_TYPE_SLS_ONE_VARIABLE_ACTION_STORAGE, DESIGN_SITUATION_TYPE_SLS_PERMANENT_AND_VARIABLE_GB50, DESIGN_SITUATION_TYPE_SLS_QUASI_PERMANENT, DESIGN_SITUATION_TYPE_SLS_QUASI_PERMANENT_1, DESIGN_SITUATION_TYPE_SLS_QUASI_PERMANENT_2, DESIGN_SITUATION_TYPE_SLS_QUASI_PERMANENT_NTC, \ + DESIGN_SITUATION_TYPE_SLS_RARE, DESIGN_SITUATION_TYPE_SLS_SCAFFOLDING, DESIGN_SITUATION_TYPE_SLS_SERVICEABILITY_NZS, DESIGN_SITUATION_TYPE_SLS_SNIP, DESIGN_SITUATION_TYPE_SLS_SP63_13330, DESIGN_SITUATION_TYPE_SLS_SP63_13330_LONG_TERM_EFFECT, DESIGN_SITUATION_TYPE_SLS_SP63_13330_SHORT_TERM_EFFECT, DESIGN_SITUATION_TYPE_SLS_VARIABLE_GB50, \ + DESIGN_SITUATION_TYPE_SLS_VIBRATION, DESIGN_SITUATION_TYPE_SLS_W_S_NZS, DESIGN_SITUATION_TYPE_SLS_W_S_OR_E_S_NZS, DESIGN_SITUATION_TYPE_STABILITY_II_NZS, DESIGN_SITUATION_TYPE_STABILITY_IV_NZS, DESIGN_SITUATION_TYPE_STABILITY_I_NZS, DESIGN_SITUATION_TYPE_STABILITY_VI_NZS, DESIGN_SITUATION_TYPE_STABILITY_V_NZS, \ + DESIGN_SITUATION_TYPE_STRENGTH_AND_STABILITY, DESIGN_SITUATION_TYPE_STRENGTH_AND_STABILITY_1, DESIGN_SITUATION_TYPE_STRENGTH_AND_STABILITY_2, DESIGN_SITUATION_TYPE_STRENGTH_AND_STABILITY_3, DESIGN_SITUATION_TYPE_STRENGTH_AND_STABILITY_4, DESIGN_SITUATION_TYPE_STRENGTH_AND_STABILITY_LIMIT_STATES, DESIGN_SITUATION_TYPE_STRENGTH_A_NZS, \ + DESIGN_SITUATION_TYPE_STRENGTH_B_NZS, DESIGN_SITUATION_TYPE_STRENGTH_C_NZS, DESIGN_SITUATION_TYPE_STRENGTH_D_NZS, DESIGN_SITUATION_TYPE_STRENGTH_E_NZS, DESIGN_SITUATION_TYPE_STRENGTH_F_NZS, DESIGN_SITUATION_TYPE_STRENGTH_G_NZS, DESIGN_SITUATION_TYPE_STRENGTH_LIMIT_STATE_ADM_ASD, DESIGN_SITUATION_TYPE_STRENGTH_LIMIT_STATE_ADM_LRFD, \ + DESIGN_SITUATION_TYPE_STRENGTH_LIMIT_STATE_AISC360_ASD, DESIGN_SITUATION_TYPE_STRENGTH_LIMIT_STATE_AISC360_LRFD, DESIGN_SITUATION_TYPE_STRENGTH_LIMIT_STATE_NDS_ASD, DESIGN_SITUATION_TYPE_STRENGTH_LIMIT_STATE_NDS_LRFD, DESIGN_SITUATION_TYPE_STR_ACCIDENTAL_FIRE, DESIGN_SITUATION_TYPE_STR_ACCIDENTAL_ONE_STAR, \ + DESIGN_SITUATION_TYPE_STR_ACCIDENTAL_PSI_1_1, DESIGN_SITUATION_TYPE_STR_ACCIDENTAL_PSI_2_1, DESIGN_SITUATION_TYPE_STR_ACCIDENTAL_SNOW_PSI_1_1, DESIGN_SITUATION_TYPE_STR_ACCIDENTAL_SNOW_PSI_2_1, DESIGN_SITUATION_TYPE_STR_EXCEPTIONAL_SNOW, DESIGN_SITUATION_TYPE_STR_PERMANENT_AND_TRANSIENT_6_10, \ + DESIGN_SITUATION_TYPE_STR_PERMANENT_AND_TRANSIENT_6_10AMOD_6_10B, DESIGN_SITUATION_TYPE_STR_PERMANENT_AND_TRANSIENT_6_10A_6_10B, DESIGN_SITUATION_TYPE_STR_PERMANENT_AND_TRANSIENT_6_10_G_1, DESIGN_SITUATION_TYPE_STR_PERMANENT_AND_TRANSIENT_6_10_G_2, DESIGN_SITUATION_TYPE_STR_PERMANENT_AND_TRANSIENT_6_10_G_3, \ + DESIGN_SITUATION_TYPE_STR_PERMANENT_AND_TRANSIENT_SANS, DESIGN_SITUATION_TYPE_STR_PERMANENT_FUNDAMENTAL, DESIGN_SITUATION_TYPE_STR_PERMANENT_TRANSIENT_BEARINGS_EXCHANGE, DESIGN_SITUATION_TYPE_STR_P_PERMANENT_AND_TRANSIENT_SANS, DESIGN_SITUATION_TYPE_STR_SEISMIC, DESIGN_SITUATION_TYPE_STR_STRENGTH_DESIGN_LRFD, \ + DESIGN_SITUATION_TYPE_TYPE_1_ACCIDENTAL_PSI_1_1, DESIGN_SITUATION_TYPE_TYPE_1_ACCIDENTAL_PSI_2_1, DESIGN_SITUATION_TYPE_TYPE_1_FUNDAMENTAL, DESIGN_SITUATION_TYPE_TYPE_2_ACCIDENTAL_PSI_1_1, DESIGN_SITUATION_TYPE_TYPE_2_ACCIDENTAL_PSI_2_1, DESIGN_SITUATION_TYPE_TYPE_2_FUNDAMENTAL, DESIGN_SITUATION_TYPE_TYPE_3_ACCIDENTAL_PSI_1_1, \ + DESIGN_SITUATION_TYPE_TYPE_3_ACCIDENTAL_PSI_2_1, DESIGN_SITUATION_TYPE_TYPE_3_FUNDAMENTAL, DESIGN_SITUATION_TYPE_ULS_ACCIDENTAL_GB_50068, DESIGN_SITUATION_TYPE_ULS_ACCIDENTAL_STORAGE, DESIGN_SITUATION_TYPE_ULS_ALL_VARIABLE_ACTIONS_STORAGE, DESIGN_SITUATION_TYPE_ULS_CSA_A23_3, DESIGN_SITUATION_TYPE_ULS_EXCEPTIONAL, \ + DESIGN_SITUATION_TYPE_ULS_FUNDAMENTAL_EARTHQUAKE_GB_50011, DESIGN_SITUATION_TYPE_ULS_FUNDAMENTAL_GB_50068, DESIGN_SITUATION_TYPE_ULS_LOAD_CASE_1, DESIGN_SITUATION_TYPE_ULS_LOAD_CASE_2, DESIGN_SITUATION_TYPE_ULS_LOAD_CASE_3, DESIGN_SITUATION_TYPE_ULS_LOAD_CASE_4, DESIGN_SITUATION_TYPE_ULS_NORMAL, \ + DESIGN_SITUATION_TYPE_ULS_ONE_VARIABLE_ACTION_STORAGE, DESIGN_SITUATION_TYPE_ULS_SNIP_BASIC, DESIGN_SITUATION_TYPE_ULS_SNIP_SPECIAL, DESIGN_SITUATION_TYPE_ULS_SP63_13330, DESIGN_SITUATION_TYPE_ULS_SPECIAL, DESIGN_SITUATION_TYPE_ULS_STABILITY_AS_NZS, DESIGN_SITUATION_TYPE_ULS_STRENGTH_AS_NZS, DESIGN_SITUATION_TYPE_ULS_STRENGTH_FIRE_NZS, \ + DESIGN_SITUATION_TYPE_ULS_STR_GEO_PERMANENT_AND_TRANSIENT, DESIGN_SITUATION_TYPE_ULTIMATE_LIMIT_STATE, DESIGN_SITUATION_TYPE_ULTIMATE_LIMIT_STATE_1, DESIGN_SITUATION_TYPE_ULTIMATE_LIMIT_STATE_2, DESIGN_SITUATION_TYPE_ULTIMATE_LIMIT_STATE_3, DESIGN_SITUATION_TYPE_ULTIMATE_LIMIT_STATE_4, DESIGN_SITUATION_TYPE_ULTIMATE_LIMIT_STATE_5, \ + DESIGN_SITUATION_TYPE_UPL_ACCIDENTAL_PSI_1_1, DESIGN_SITUATION_TYPE_UPL_ACCIDENTAL_PSI_2_1, DESIGN_SITUATION_TYPE_UPL_PERMANENT_AND_TRANSIENT, DESIGN_SITUATION_TYPE_UPL_SEISMIC = range(387) diff --git a/UnitTests/test_DesignSituations.py b/UnitTests/test_DesignSituations.py index ed452614..9e8fe0af 100644 --- a/UnitTests/test_DesignSituations.py +++ b/UnitTests/test_DesignSituations.py @@ -11,6 +11,7 @@ from RFEM.initModel import Model from RFEM.LoadCasesAndCombinations.staticAnalysisSettings import StaticAnalysisSettings from RFEM.LoadCasesAndCombinations.designSituation import DesignSituation +from RFEM.enums import DesignSituationType if Model.clientModel is None: Model() @@ -23,41 +24,20 @@ def test_design_situation(): StaticAnalysisSettings() # Testing: Automatic naming, design situation keys and manual comments - DesignSituation(no= 1, user_defined_name= False, design_situation_type= 6122, comment= 'ULS (EQU) - Permanent and transient') + DesignSituation(1, DesignSituationType.DESIGN_SITUATION_TYPE_EQU_PERMANENT_AND_TRANSIENT, True, 'ULS (EQU) - Permanent and transient', 'ULS (EQU) - Permanent and transient') ds = Model.clientModel.service.get_design_situation(1) assert ds.no == 1 - DesignSituation(no= 2, user_defined_name= False, design_situation_type= 6993, comment= 'ULS (EQU) - Accidental - psi-1,1') + DesignSituation(2, DesignSituationType.DESIGN_SITUATION_TYPE_EQU_ACCIDENTAL_PSI_1_1, comment='ULS (EQU) - Accidental - psi-1,1') ds = Model.clientModel.service.get_design_situation(2) assert ds.no == 2 - DesignSituation(no= 3, user_defined_name= False, design_situation_type= 6994, comment= 'ULS (EQU) - Accidental - psi-2,1') + DesignSituation(3, DesignSituationType.DESIGN_SITUATION_TYPE_EQU_ACCIDENTAL_PSI_2_1, comment='ULS (EQU) - Accidental - psi-2,1') ds = Model.clientModel.service.get_design_situation(3) assert ds.no == 3 # Testing: Manual naming, design situation keys - DesignSituation(no= 4, user_defined_name= True, name= 'MANUAL NAME: ULS (EQU) - Seismic', design_situation_type= 6997) + DesignSituation(4, DesignSituationType.DESIGN_SITUATION_TYPE_EQU_SEISMIC, comment='MANUAL NAME: ULS (EQU) - Seismic') ds = Model.clientModel.service.get_design_situation(4) assert ds.no == 4 - # Testing: Design situation keys - DesignSituation(5, design_situation_type= 7007) - ds = Model.clientModel.service.get_design_situation(5) - assert ds.no == 5 - DesignSituation(6, design_situation_type= 7010) - ds = Model.clientModel.service.get_design_situation(6) - assert ds.no == 6 - DesignSituation(7, design_situation_type= 7011) - ds = Model.clientModel.service.get_design_situation(7) - assert ds.no == 7 - # Testing: Active toggle and design situation keys - DesignSituation(8, design_situation_type= 7014, active= True) - ds = Model.clientModel.service.get_design_situation(8) - assert ds.no == 8 - DesignSituation(9, design_situation_type= 6193, active= True) - ds = Model.clientModel.service.get_design_situation(9) - assert ds.no == 9 - DesignSituation(10, design_situation_type= 6194, active= False) - ds = Model.clientModel.service.get_design_situation(10) - assert ds.no == 10 - DesignSituation(11, design_situation_type= 6195, active= False) - ds = Model.clientModel.service.get_design_situation(11) - assert ds.no == 11 + assert ds.design_situation_type == DesignSituationType.DESIGN_SITUATION_TYPE_EQU_SEISMIC.name + Model.clientModel.service.finish_modification() diff --git a/UnitTests/test_LoadCases_Test.py b/UnitTests/test_LoadCases_Test.py index 558c6035..19869bdc 100644 --- a/UnitTests/test_LoadCases_Test.py +++ b/UnitTests/test_LoadCases_Test.py @@ -6,26 +6,23 @@ ) sys.path.append(PROJECT_ROOT) -import pytest from RFEM.initModel import Model from RFEM.LoadCasesAndCombinations.staticAnalysisSettings import StaticAnalysisSettings -from RFEM.LoadCasesAndCombinations.loadCase import LoadCase, DIN_Action_Category +from RFEM.LoadCasesAndCombinations.loadCase import LoadCase +from RFEM.enums import ActionCategoryType if Model.clientModel is None: Model() -@pytest.mark.skip("all tests still WIP") def test_load_case(): Model.clientModel.service.delete_all() Model.clientModel.service.begin_modification() StaticAnalysisSettings() - # TODO: DIN_Action_Category will only work with German localization - # The action cat. is language dependent, which needs to be corrected. - LoadCase.StaticAnalysis(1, 'SW', True, 1, DIN_Action_Category['1A'], [True, 0, 0, 1]) - LoadCase.StaticAnalysis(2, 'SDL', True, 1, DIN_Action_Category['1C'], [True, 0.1, 0.1, 0]) - LoadCase.StaticAnalysis(3, 'Snow', True, 1, DIN_Action_Category['4A'], [False]) - LoadCase.StaticAnalysis(4, 'Wind', False, 1, DIN_Action_Category['5'], [False]) + LoadCase.StaticAnalysis(1, 'SW', True, 1, ActionCategoryType.ACTION_CATEGORY_PERMANENT_G, [True, 0, 0, 1]) + LoadCase.StaticAnalysis(2, 'SDL', True, 1, ActionCategoryType.ACTION_CATEGORY_PERMANENT_IMPOSED_GQ, [True, 0.1, 0.1, 0]) + LoadCase.StaticAnalysis(3, 'Snow', True, 1, ActionCategoryType.ACTION_CATEGORY_SNOW_ICE_LOADS_H_LESS_OR_EQUAL_TO_1000_M_QS, [False]) + LoadCase.StaticAnalysis(4, 'Wind', False, 1, ActionCategoryType.ACTION_CATEGORY_WIND_QW, [False]) Model.clientModel.service.finish_modification() diff --git a/UnitTests/test_Member_test.py b/UnitTests/test_Member_test.py index 3c72c912..3924137e 100644 --- a/UnitTests/test_Member_test.py +++ b/UnitTests/test_Member_test.py @@ -28,7 +28,6 @@ def test_all_member_types(): Section(1, 'IPE 300', 1) Section(2, 'IPE 500', 1) - Section(3, 'R_M1 500/500') Thickness(1, '180 mm', 2, 0.18) diff --git a/UnitTests/test_basic_objects.py b/UnitTests/test_basic_objects.py index 5e312aaf..72851cef 100644 --- a/UnitTests/test_basic_objects.py +++ b/UnitTests/test_basic_objects.py @@ -335,7 +335,7 @@ def test_section(): section = Model.clientModel.service.get_section(1) assert section.no == 1 - assert section.name == 'IPE 300' + assert section.name == 'IPE 300 | -- | British Steel' ## Solid Class should be updated. diff --git a/pylintrc b/pylintrc index 4f17287b..9ade4bbb 100644 --- a/pylintrc +++ b/pylintrc @@ -52,7 +52,7 @@ confidence= # --enable=similarities". If you want to run only the classes checker, but have # no Warning level messages displayed, use"--disable=all --enable=classes # --disable=W" -disable=W0614, W0401, W0622, C0103, C0114, C0115, C0116, C0301, C0413, R0912, R0913, R0914, R0915, C0305, C0411, W0102, W0702, E0602, E0401, W1405 +--disable=W0614, W0401, W0622, C0103, C0114, C0115, C0116, C0301, C0413, R0912, R0913, R0914, R0915, C0305, C0411, W0102, W0702, E0602, E0401, W1405 [REPORTS]