mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-19 14:41:25 +00:00
ifcopenshell-python - fix 3.9 support (replace match statements)
This commit is contained in:
@@ -393,22 +393,22 @@ def map_alignment_cant_segment(
|
|||||||
if not segment.is_a(expected_type):
|
if not segment.is_a(expected_type):
|
||||||
raise TypeError(f"Expected to see type '{expected_type}', instead received '{segment.is_a()}'.")
|
raise TypeError(f"Expected to see type '{expected_type}', instead received '{segment.is_a()}'.")
|
||||||
|
|
||||||
match segment.DesignParameters.PredefinedType:
|
predefined_type = segment.DesignParameters.PredefinedType
|
||||||
case "CONSTANTCANT":
|
if predefined_type == "CONSTANTCANT":
|
||||||
result = _map_constant_cant(file, segment.DesignParameters, rail_head_distance)
|
result = _map_constant_cant(file, segment.DesignParameters, rail_head_distance)
|
||||||
case "LINEARTRANSITION":
|
elif predefined_type == "LINEARTRANSITION":
|
||||||
result = _map_linear_transition(file, segment.DesignParameters, rail_head_distance)
|
result = _map_linear_transition(file, segment.DesignParameters, rail_head_distance)
|
||||||
case "HELMERTCURVE":
|
elif predefined_type == "HELMERTCURVE":
|
||||||
result = _map_helmert_curve(file, segment.DesignParameters, rail_head_distance)
|
result = _map_helmert_curve(file, segment.DesignParameters, rail_head_distance)
|
||||||
case "BLOSSCURVE":
|
elif predefined_type == "BLOSSCURVE":
|
||||||
result = _map_bloss_curve(file, segment.DesignParameters, rail_head_distance)
|
result = _map_bloss_curve(file, segment.DesignParameters, rail_head_distance)
|
||||||
case "COSINECURVE":
|
elif predefined_type == "COSINECURVE":
|
||||||
result = _map_cosine_curve(file, segment.DesignParameters, rail_head_distance)
|
result = _map_cosine_curve(file, segment.DesignParameters, rail_head_distance)
|
||||||
case "SINECURVE":
|
elif predefined_type == "SINECURVE":
|
||||||
result = _map_sine_curve(file, segment.DesignParameters, rail_head_distance)
|
result = _map_sine_curve(file, segment.DesignParameters, rail_head_distance)
|
||||||
case "VIENNESEBEND":
|
elif predefined_type == "VIENNESEBEND":
|
||||||
result = _map_viennese_bend(file, segment.DesignParameters, rail_head_distance)
|
result = _map_viennese_bend(file, segment.DesignParameters, rail_head_distance)
|
||||||
case _:
|
else:
|
||||||
raise TypeError("Unexpected predefined type")
|
raise TypeError(f"Unexpected predefined type: '{predefined_type}'.")
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|||||||
+21
-21
@@ -412,26 +412,26 @@ def map_alignment_horizontal_segment(file: ifcopenshell.file, segment: entity_in
|
|||||||
if not segment.is_a(expected_type):
|
if not segment.is_a(expected_type):
|
||||||
raise TypeError(f"Expected to see type '{expected_type}', instead received '{segment.is_a()}'.")
|
raise TypeError(f"Expected to see type '{expected_type}', instead received '{segment.is_a()}'.")
|
||||||
|
|
||||||
match segment.DesignParameters.PredefinedType:
|
predefined_type = segment.DesignParameters.PredefinedType
|
||||||
case "LINE":
|
if predefined_type == "LINE":
|
||||||
result = _map_line(file, segment.DesignParameters)
|
result = _map_line(file, segment.DesignParameters)
|
||||||
case "CIRCULARARC":
|
elif predefined_type == "CIRCULARARC":
|
||||||
result = _map_circular_arc(file, segment.DesignParameters)
|
result = _map_circular_arc(file, segment.DesignParameters)
|
||||||
case "CLOTHOID":
|
elif predefined_type == "CLOTHOID":
|
||||||
result = _map_clothoid(file, segment.DesignParameters)
|
result = _map_clothoid(file, segment.DesignParameters)
|
||||||
case "CUBIC":
|
elif predefined_type == "CUBIC":
|
||||||
result = _map_cubic(file, segment.DesignParameters)
|
result = _map_cubic(file, segment.DesignParameters)
|
||||||
case "HELMERTCURVE":
|
elif predefined_type == "HELMERTCURVE":
|
||||||
result = _map_helmert_curve(file, segment.DesignParameters)
|
result = _map_helmert_curve(file, segment.DesignParameters)
|
||||||
case "BLOSSCURVE":
|
elif predefined_type == "BLOSSCURVE":
|
||||||
result = _map_bloss_curve(file, segment.DesignParameters)
|
result = _map_bloss_curve(file, segment.DesignParameters)
|
||||||
case "COSINECURVE":
|
elif predefined_type == "COSINECURVE":
|
||||||
result = _map_cosine_curve(file, segment.DesignParameters)
|
result = _map_cosine_curve(file, segment.DesignParameters)
|
||||||
case "SINECURVE":
|
elif predefined_type == "SINECURVE":
|
||||||
result = _map_sine_curve(file, segment.DesignParameters)
|
result = _map_sine_curve(file, segment.DesignParameters)
|
||||||
case "VIENNESEBEND":
|
elif predefined_type == "VIENNESEBEND":
|
||||||
result = _map_viennese_bend(file, segment.DesignParameters)
|
result = _map_viennese_bend(file, segment.DesignParameters)
|
||||||
case _:
|
else:
|
||||||
raise TypeError("Unexpected predefined type")
|
raise TypeError(f"Unexpected predefined type: '{predefined_type}'.")
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|||||||
+12
-11
@@ -199,20 +199,21 @@ def map_alignment_vertical_segment(file: ifcopenshell.file, segment: entity_inst
|
|||||||
if not segment.is_a(expected_type):
|
if not segment.is_a(expected_type):
|
||||||
raise TypeError(f"Expected to see type '{expected_type}', instead received '{segment.is_a()}'.")
|
raise TypeError(f"Expected to see type '{expected_type}', instead received '{segment.is_a()}'.")
|
||||||
|
|
||||||
match segment.DesignParameters.PredefinedType:
|
predefined_type = segment.DesignParameters.PredefinedType
|
||||||
case "CONSTANTGRADIENT":
|
|
||||||
result = _map_constant_gradient(file, segment.DesignParameters)
|
|
||||||
|
|
||||||
case "PARABOLICARC":
|
if predefined_type == "CONSTANTGRADIENT":
|
||||||
result = _map_parabolic_arc(file, segment.DesignParameters)
|
result = _map_constant_gradient(file, segment.DesignParameters)
|
||||||
|
|
||||||
case "CIRCULARARC":
|
elif predefined_type == "PARABOLICARC":
|
||||||
result = _map_circular_arc(file, segment.DesignParameters)
|
result = _map_parabolic_arc(file, segment.DesignParameters)
|
||||||
|
|
||||||
case "CLOTHOID":
|
elif predefined_type == "CIRCULARARC":
|
||||||
result = _map_clothoid(file, segment.DesignParameters)
|
result = _map_circular_arc(file, segment.DesignParameters)
|
||||||
|
|
||||||
case _:
|
elif predefined_type == "CLOTHOID":
|
||||||
raise TypeError(f"Unexpected predefined type - got {segment.DesignParameters.PredefinedType}")
|
result = _map_clothoid(file, segment.DesignParameters)
|
||||||
|
|
||||||
|
else:
|
||||||
|
raise TypeError(f"Unexpected predefined type - got {segment.DesignParameters.PredefinedType}")
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|||||||
Reference in New Issue
Block a user