Minor fix. See #1616.

This commit is contained in:
Dion Moult
2021-08-08 20:24:44 +10:00
parent 2c66fbf1c4
commit b696d302f9
2 changed files with 12 additions and 12 deletions
+4 -5
View File
@@ -1,6 +1,5 @@
import ifcopenshell import ifcopenshell
import ifcopenshell.api import ifcopenshell.api
import ifcopenshell.util.element
class LibraryGenerator: class LibraryGenerator:
@@ -66,16 +65,16 @@ class LibraryGenerator:
def create_layer_type(self, ifc_class, name, thickness): def create_layer_type(self, ifc_class, name, thickness):
element = ifcopenshell.api.run("root.create_entity", self.file, ifc_class=ifc_class, name=name) element = ifcopenshell.api.run("root.create_entity", self.file, ifc_class=ifc_class, name=name)
ifcopenshell.api.run("material.assign_material", self.file, product=element, type="IfcMaterialLayerSet") rel = ifcopenshell.api.run("material.assign_material", self.file, product=element, type="IfcMaterialLayerSet")
layer_set = ifcopenshell.util.element.get_material(element) layer_set = rel.RelatingMaterial
layer = ifcopenshell.api.run("material.add_layer", self.file, layer_set=layer_set, material=self.material) layer = ifcopenshell.api.run("material.add_layer", self.file, layer_set=layer_set, material=self.material)
layer.LayerThickness = thickness layer.LayerThickness = thickness
ifcopenshell.api.run("project.assign_declaration", self.file, definition=element, relating_context=self.project) ifcopenshell.api.run("project.assign_declaration", self.file, definition=element, relating_context=self.project)
def create_profile_type(self, ifc_class, name, profile): def create_profile_type(self, ifc_class, name, profile):
element = ifcopenshell.api.run("root.create_entity", self.file, ifc_class=ifc_class, name=name) element = ifcopenshell.api.run("root.create_entity", self.file, ifc_class=ifc_class, name=name)
ifcopenshell.api.run("material.assign_material", self.file, product=element, type="IfcMaterialProfileSet") rel = ifcopenshell.api.run("material.assign_material", self.file, product=element, type="IfcMaterialProfileSet")
profile_set = ifcopenshell.util.element.get_material(element) profile_set = rel.RelatingMaterial
material_profile = ifcopenshell.api.run( material_profile = ifcopenshell.api.run(
"material.add_profile", self.file, profile_set=profile_set, material=self.material "material.add_profile", self.file, profile_set=profile_set, material=self.material
) )
@@ -16,13 +16,13 @@ class Usecase:
if material: if material:
ifcopenshell.api.run("material.unassign_material", self.file, product=self.settings["product"]) ifcopenshell.api.run("material.unassign_material", self.file, product=self.settings["product"])
if self.settings["type"] == "IfcMaterial": if self.settings["type"] == "IfcMaterial":
self.assign_ifc_material() return self.assign_ifc_material()
elif self.settings["type"] == "IfcMaterialConstituentSet": elif self.settings["type"] == "IfcMaterialConstituentSet":
material_set = self.file.create_entity(self.settings["type"]) material_set = self.file.create_entity(self.settings["type"])
self.create_material_association(material_set) return self.create_material_association(material_set)
elif self.settings["type"] == "IfcMaterialLayerSet": elif self.settings["type"] == "IfcMaterialLayerSet":
material_set = self.file.create_entity(self.settings["type"]) material_set = self.file.create_entity(self.settings["type"])
self.create_material_association(material_set) return self.create_material_association(material_set)
elif self.settings["type"] == "IfcMaterialLayerSetUsage": elif self.settings["type"] == "IfcMaterialLayerSetUsage":
element_type = ifcopenshell.util.element.get_type(self.settings["product"]) element_type = ifcopenshell.util.element.get_type(self.settings["product"])
if element_type: if element_type:
@@ -34,10 +34,10 @@ class Usecase:
else: else:
material_set = self.file.create_entity("IfcMaterialLayerSet") material_set = self.file.create_entity("IfcMaterialLayerSet")
material_set_usage = self.create_layer_set_usage(material_set) material_set_usage = self.create_layer_set_usage(material_set)
self.create_material_association(material_set_usage) return self.create_material_association(material_set_usage)
elif self.settings["type"] == "IfcMaterialProfileSet": elif self.settings["type"] == "IfcMaterialProfileSet":
material_set = self.file.create_entity(self.settings["type"]) material_set = self.file.create_entity(self.settings["type"])
self.create_material_association(material_set) return self.create_material_association(material_set)
elif self.settings["type"] == "IfcMaterialProfileSetUsage": elif self.settings["type"] == "IfcMaterialProfileSetUsage":
element_type = ifcopenshell.util.element.get_type(self.settings["product"]) element_type = ifcopenshell.util.element.get_type(self.settings["product"])
if element_type: if element_type:
@@ -51,11 +51,11 @@ class Usecase:
self.update_representation_profile(material_set) self.update_representation_profile(material_set)
material_set_usage = self.create_profile_set_usage(material_set) material_set_usage = self.create_profile_set_usage(material_set)
self.create_material_association(material_set_usage) return self.create_material_association(material_set_usage)
elif self.settings["type"] == "IfcMaterialList": elif self.settings["type"] == "IfcMaterialList":
material_set = self.file.create_entity(self.settings["type"]) material_set = self.file.create_entity(self.settings["type"])
material_set.Materials = [self.settings["material"]] material_set.Materials = [self.settings["material"]]
self.create_material_association(material_set) return self.create_material_association(material_set)
def update_representation_profile(self, material_set): def update_representation_profile(self, material_set):
profile = material_set.CompositeProfile profile = material_set.CompositeProfile
@@ -93,6 +93,7 @@ class Usecase:
related_objects = list(rel.RelatedObjects) related_objects = list(rel.RelatedObjects)
related_objects.append(self.settings["product"]) related_objects.append(self.settings["product"])
rel.RelatedObjects = related_objects rel.RelatedObjects = related_objects
return rel
def create_material_association(self, relating_material): def create_material_association(self, relating_material):
return self.file.create_entity( return self.file.create_entity(