mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-16 13:46:54 +00:00
Fix bug where toggled openings didn't properly appear in the dedicated opening collection
This commit is contained in:
@@ -103,7 +103,7 @@ class Collector(bonsai.core.tool.Collector):
|
|||||||
project_obj = tool.Ifc.get_object(tool.Ifc.get().by_type("IfcProject")[0])
|
project_obj = tool.Ifc.get_object(tool.Ifc.get().by_type("IfcProject")[0])
|
||||||
project_obj.BIMObjectProperties.collection.children.link(collection)
|
project_obj.BIMObjectProperties.collection.children.link(collection)
|
||||||
if layer_collection := tool.Blender.get_layer_collection(collection):
|
if layer_collection := tool.Blender.get_layer_collection(collection):
|
||||||
layer_collection.hide_viewport = True
|
cls.set_layer_collection_visibility(layer_collection)
|
||||||
return collection
|
return collection
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@@ -147,6 +147,20 @@ class Collector(bonsai.core.tool.Collector):
|
|||||||
return
|
return
|
||||||
collection.children.link(obj_or_col)
|
collection.children.link(obj_or_col)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def set_layer_collection_visibility(cls, layer_collection):
|
||||||
|
name = layer_collection.collection.name
|
||||||
|
if name in (
|
||||||
|
"IfcTypeProduct",
|
||||||
|
"IfcStructuralItem",
|
||||||
|
"Unsorted",
|
||||||
|
):
|
||||||
|
layer_collection.hide_viewport = True
|
||||||
|
elif name.startswith("IfcAnnotation"):
|
||||||
|
layer_collection.hide_viewport = True
|
||||||
|
else:
|
||||||
|
layer_collection.hide_viewport = False
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def reset_default_visibility(cls):
|
def reset_default_visibility(cls):
|
||||||
project = tool.Ifc.get_object(tool.Ifc.get().by_type("IfcProject")[0])
|
project = tool.Ifc.get_object(tool.Ifc.get().by_type("IfcProject")[0])
|
||||||
@@ -154,15 +168,4 @@ class Collector(bonsai.core.tool.Collector):
|
|||||||
for layer_collection in bpy.context.view_layer.layer_collection.children:
|
for layer_collection in bpy.context.view_layer.layer_collection.children:
|
||||||
if layer_collection.collection == project_collection:
|
if layer_collection.collection == project_collection:
|
||||||
for layer_collection2 in layer_collection.children:
|
for layer_collection2 in layer_collection.children:
|
||||||
name = layer_collection2.collection.name
|
cls.set_layer_collection_visibility(layer_collection2)
|
||||||
if name in (
|
|
||||||
"IfcTypeProduct",
|
|
||||||
"IfcOpeningElement",
|
|
||||||
"IfcStructuralItem",
|
|
||||||
"Unsorted",
|
|
||||||
):
|
|
||||||
layer_collection2.hide_viewport = True
|
|
||||||
elif name.startswith("IfcAnnotation"):
|
|
||||||
layer_collection2.hide_viewport = True
|
|
||||||
else:
|
|
||||||
layer_collection2.hide_viewport = False
|
|
||||||
|
|||||||
@@ -456,7 +456,7 @@ class Model(bonsai.core.tool.Model):
|
|||||||
ifc_importer.material_creator.load_existing_materials()
|
ifc_importer.material_creator.load_existing_materials()
|
||||||
ifc_importer.create_generic_elements(set(openings))
|
ifc_importer.create_generic_elements(set(openings))
|
||||||
for opening_obj in ifc_importer.added_data.values():
|
for opening_obj in ifc_importer.added_data.values():
|
||||||
bpy.context.scene.collection.objects.link(opening_obj)
|
tool.Collector.assign(opening_obj, should_clean_users_collection=False)
|
||||||
return ifc_importer.added_data.values()
|
return ifc_importer.added_data.values()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|||||||
Reference in New Issue
Block a user