From f5031035c7f7fe0ca9edc4762ab502c4d549d004 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Fri, 30 Jun 2023 13:27:00 +0500 Subject: [PATCH] Shape builder - avoid duplicated indices in polylines For example IfcLineIndex((1,2,3,4,1)) instead of IfcLineIndex((1,2,2,3,3,4,4,1)) --- src/ifcopenshell-python/ifcopenshell/util/shape_builder.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ifcopenshell-python/ifcopenshell/util/shape_builder.py b/src/ifcopenshell-python/ifcopenshell/util/shape_builder.py index daf8f06018..c49c06b3f8 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/shape_builder.py +++ b/src/ifcopenshell-python/ifcopenshell/util/shape_builder.py @@ -75,7 +75,8 @@ class ShapeBuilder: last_segment = len(segments) - 1 for seg_i, segment in enumerate(segments): if len(segment) == 2: - current_line_segment += segment + # check if `current_line_segment` is empty to avoid duplicated indices like `IfcLineIndex((1,2,2,3,3,4,4,1))` + current_line_segment += segment if not current_line_segment else segment[1:] if current_line_segment and (len(segment) == 3 or seg_i == last_segment): ifc_segments.append(self.file.createIfcLineIndex(current_line_segment))