This commit is contained in:
Andrej730
2025-08-28 10:57:26 +05:00
parent 39100b7c97
commit 43fbdf57c8
20 changed files with 57 additions and 47 deletions
@@ -68,10 +68,10 @@ def test_add_segment_to_layout():
_add_segment_to_layout(file, horizontal_alignment, alignment_segment)
assert len(horizontal_alignment.IsNestedBy) == 2
referent_nest = ifcopenshell.api.alignment.get_referent_nest(file,horizontal_alignment)
referent_nest = ifcopenshell.api.alignment.get_referent_nest(file, horizontal_alignment)
segment_nest = ifcopenshell.api.alignment.get_alignment_segment_nest(horizontal_alignment)
assert (len(segment_nest.RelatedObjects) == 2)
assert (len(referent_nest.RelatedObjects) == 2)
assert len(segment_nest.RelatedObjects) == 2
assert len(referent_nest.RelatedObjects) == 2
test_add_segment_to_layout()
@@ -33,8 +33,8 @@ def test_add_vertical_alignment():
assert len(alignment.IsDecomposedBy) == 0 # no child alignments
assert len(alignment.IsNestedBy) == 2 # nests for layout and referents
assert len(alignment.IsNestedBy[0].RelatedObjects) == 1
assert ifcopenshell.api.alignment.get_referent_nest(file,alignment).RelatedObjects[0].is_a("IfcReferent")
assert len(alignment.IsNestedBy[0].RelatedObjects) == 1
assert ifcopenshell.api.alignment.get_referent_nest(file, alignment).RelatedObjects[0].is_a("IfcReferent")
assert alignment.IsNestedBy[0].RelatedObjects[0].is_a("IfcAlignmentHorizontal")
curve = ifcopenshell.api.alignment.get_curve(alignment)
assert curve.is_a("IfcCompositeCurve")
@@ -43,7 +43,7 @@ def test_add_vertical_alignment():
assert len(alignment.IsDecomposedBy) == 0 # no child alignments
assert len(alignment.IsNestedBy) == 2
assert (len(alignment.IsNestedBy[0].RelatedObjects) == 2)
assert len(alignment.IsNestedBy[0].RelatedObjects) == 2
assert alignment.IsNestedBy[0].RelatedObjects[0].is_a("IfcAlignmentHorizontal")
assert alignment.IsNestedBy[0].RelatedObjects[1].is_a("IfcAlignmentVertical")
curve = ifcopenshell.api.alignment.get_curve(alignment)
@@ -53,7 +53,7 @@ def test_add_vertical_alignment():
vertical_layout = ifcopenshell.api.alignment.add_vertical_layout(file, alignment)
assert len(alignment.IsDecomposedBy) == 1 # 1 IfcRelAggreates relationship for the child algiments
assert (len(alignment.IsDecomposedBy[0].RelatedObjects) == 2)
assert len(alignment.IsDecomposedBy[0].RelatedObjects) == 2
for child_alignment in alignment.IsDecomposedBy[0].RelatedObjects:
assert child_alignment.is_a("IfcAlignment")
@@ -49,19 +49,19 @@ def test_create_by_pi_method():
assert len(alignment.IsNestedBy) == 2
layout_nest = ifcopenshell.api.alignment.get_alignment_layout_nest(alignment)
assert (len(layout_nest.RelatedObjects) == 2)
assert len(layout_nest.RelatedObjects) == 2
horizontal_layout = ifcopenshell.api.alignment.get_horizontal_layout(alignment)
horizontal_segment_nest = ifcopenshell.api.alignment.get_alignment_segment_nest(horizontal_layout)
assert (len(horizontal_segment_nest.RelatedObjects) == 8)
horizontal_referent_nest = ifcopenshell.api.alignment.get_referent_nest(file,horizontal_layout)
assert (len(horizontal_referent_nest.RelatedObjects) == 8)
assert len(horizontal_segment_nest.RelatedObjects) == 8
horizontal_referent_nest = ifcopenshell.api.alignment.get_referent_nest(file, horizontal_layout)
assert len(horizontal_referent_nest.RelatedObjects) == 8
vertical_layout = ifcopenshell.api.alignment.get_vertical_layout(alignment)
vertical_segment_nest = ifcopenshell.api.alignment.get_alignment_segment_nest(vertical_layout)
assert (len(vertical_segment_nest.RelatedObjects) == 10)
vertical_referent_nest = ifcopenshell.api.alignment.get_referent_nest(file,vertical_layout)
assert (len(vertical_referent_nest.RelatedObjects) == 10)
assert len(vertical_segment_nest.RelatedObjects) == 10
vertical_referent_nest = ifcopenshell.api.alignment.get_referent_nest(file, vertical_layout)
assert len(vertical_referent_nest.RelatedObjects) == 10
test_create_by_pi_method()
@@ -29,7 +29,7 @@ def test_create_no_geometry():
ifcopenshell.api.unit.assign_unit(file, units=[length])
# creates an IfcAlignment with an IfcAlignmentHorizontal layout containing only the zero length segment
ali = ifcopenshell.api.alignment.create(file, "A1", include_vertical=True,include_geometry=False)
ali = ifcopenshell.api.alignment.create(file, "A1", include_vertical=True, include_geometry=False)
# append a segment to the horizontal layout
horizontal_alignment = ifcopenshell.api.alignment.get_horizontal_layout(ali)
@@ -46,12 +46,12 @@ def test_horizontal_layout_by_pi_method():
assert len(alignment.IsDecomposedBy) == 0 # no child alignments
assert len(alignment.IsNestedBy) == 2
referent_nest = ifcopenshell.api.alignment.get_referent_nest(file,alignment)
referent_nest = ifcopenshell.api.alignment.get_referent_nest(file, alignment)
layout_nest = ifcopenshell.api.alignment.get_alignment_layout_nest(alignment)
assert referent_nest.RelatedObjects[0].is_a("IfcReferent")
assert layout_nest.RelatedObjects[0].is_a("IfcAlignmentHorizontal")
segment_nest = ifcopenshell.api.alignment.get_alignment_segment_nest(layout_nest.RelatedObjects[0])
assert (len(segment_nest.RelatedObjects) == 3) # segments in horizontal layout
assert len(segment_nest.RelatedObjects) == 3 # segments in horizontal layout
test_horizontal_layout_by_pi_method()
@@ -55,4 +55,5 @@ def test_name_segments():
assert f"Q{i}" == segment.Name
i += 1
test_name_segments()
test_name_segments()
@@ -98,7 +98,7 @@ def callback_alignment():
def test_with_default_names(default_names_alignment):
hlayout = ifcopenshell.api.alignment.get_horizontal_layout(default_names_alignment)
referent_nest = ifcopenshell.api.alignment.get_referent_nest(None,hlayout)
referent_nest = ifcopenshell.api.alignment.get_referent_nest(None, hlayout)
assert "P.O.B." in referent_nest.RelatedObjects[0].Name
assert "P.C." in referent_nest.RelatedObjects[1].Name
@@ -106,7 +106,7 @@ def test_with_default_names(default_names_alignment):
assert "P.O.E." in referent_nest.RelatedObjects[-1].Name
vlayout = ifcopenshell.api.alignment.get_vertical_layout(default_names_alignment)
referent_nest = ifcopenshell.api.alignment.get_referent_nest(None,vlayout)
referent_nest = ifcopenshell.api.alignment.get_referent_nest(None, vlayout)
assert "V.P.O.B." in referent_nest.RelatedObjects[0].Name
assert "P.V.C." in referent_nest.RelatedObjects[1].Name
@@ -116,7 +116,7 @@ def test_with_default_names(default_names_alignment):
def test_with_callbacks(callback_alignment):
hlayout = ifcopenshell.api.alignment.get_horizontal_layout(callback_alignment)
referent_nest = ifcopenshell.api.alignment.get_referent_nest(None,hlayout)
referent_nest = ifcopenshell.api.alignment.get_referent_nest(None, hlayout)
assert "A" in referent_nest.RelatedObjects[0].Name
assert "Q" in referent_nest.RelatedObjects[1].Name
@@ -124,10 +124,9 @@ def test_with_callbacks(callback_alignment):
assert "Z" in referent_nest.RelatedObjects[-1].Name
vlayout = ifcopenshell.api.alignment.get_vertical_layout(callback_alignment)
referent_nest = ifcopenshell.api.alignment.get_referent_nest(None,vlayout)
referent_nest = ifcopenshell.api.alignment.get_referent_nest(None, vlayout)
assert "a" in referent_nest.RelatedObjects[0].Name
assert "q" in referent_nest.RelatedObjects[1].Name
assert "q" in referent_nest.RelatedObjects[2].Name
assert "z" in referent_nest.RelatedObjects[-1].Name
@@ -59,12 +59,12 @@ def test_vertical_layout_by_pi_method():
assert len(alignment.IsDecomposedBy) == 0 # no child alignments
assert len(alignment.IsNestedBy) == 2
referent_nest = ifcopenshell.api.alignment.get_referent_nest(file,alignment)
referent_nest = ifcopenshell.api.alignment.get_referent_nest(file, alignment)
layout_nest = ifcopenshell.api.alignment.get_alignment_layout_nest(alignment)
assert(len(referent_nest.RelatedObjects) == 1)
assert(len(layout_nest.RelatedObjects) == 2)
assert len(referent_nest.RelatedObjects) == 1
assert len(layout_nest.RelatedObjects) == 2
segment_nest = ifcopenshell.api.alignment.get_alignment_segment_nest(vlayout)
assert(len(segment_nest.RelatedObjects) == 3)
assert len(segment_nest.RelatedObjects) == 3
test_vertical_layout_by_pi_method()