copy_class to prevent duplicating profiles #6261

This commit is contained in:
Andrej730
2025-03-06 16:54:31 +05:00
parent 79940641b2
commit b5260d3005
@@ -17,6 +17,7 @@
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>. # along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
import ifcopenshell import ifcopenshell
import ifcopenshell.api.material
import ifcopenshell.api.root import ifcopenshell.api.root
import ifcopenshell.api.system import ifcopenshell.api.system
import ifcopenshell.api.geometry import ifcopenshell.api.geometry
@@ -159,9 +160,7 @@ class Usecase:
inverse.RelatedObjects = [to_element] inverse.RelatedObjects = [to_element]
elif inverse.is_a("IfcRelAssociatesMaterial") and "Set" in inverse.RelatingMaterial.is_a(): elif inverse.is_a("IfcRelAssociatesMaterial") and "Set" in inverse.RelatingMaterial.is_a():
inverse = ifcopenshell.util.element.copy(self.file, inverse) inverse = ifcopenshell.util.element.copy(self.file, inverse)
inverse.RelatingMaterial = ifcopenshell.util.element.copy_deep( inverse.RelatingMaterial = ifcopenshell.api.material.copy_material(self.file, inverse.RelatingMaterial)
self.file, inverse.RelatingMaterial, exclude=["IfcMaterial"]
)
inverse.RelatedObjects = [to_element] inverse.RelatedObjects = [to_element]
else: else:
for i, value in enumerate(inverse): for i, value in enumerate(inverse):