mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-16 13:46:54 +00:00
Minor fix. See #1616.
This commit is contained in:
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user