Import representation items for curve representations too

https://i.imgur.com/TeITxa0.png
This commit is contained in:
Andrej730
2024-09-25 17:09:49 +05:00
parent dd9de98290
commit 95e9b8aeef
2 changed files with 10 additions and 1 deletions
@@ -2307,7 +2307,10 @@ class ImportRepresentationItems(bpy.types.Operator, tool.Ifc.Operator):
tool.Loader.load_settings()
for item_id in set(obj.data["ios_item_ids"]):
data = obj.data
assert data
item_ids = data["ios_item_ids"] if "ios_item_ids" in data else data["ios_edges_item_ids"]
for item_id in set(item_ids):
item = tool.Ifc.get().by_id(item_id)
item_mesh = bpy.data.meshes.new(f"Item/{item.is_a()}/{item_id}")
item_mesh.BIMMeshProperties.ifc_definition_id = item_id
+6
View File
@@ -940,6 +940,12 @@ class Loader(bonsai.core.tool.Loader):
vertices = [[v[i], v[i + 1], v[i + 2]] for i in range(0, len(v), 3)]
edges = [[e[i], e[i + 1]] for i in range(0, len(e), 2)]
mesh.from_pydata(vertices, edges, [])
# TODO: remove error handling after we update build in Bonsai.
try:
edges_item_ids = ifcopenshell.util.shape.get_edges_representation_item_ids(geometry).tolist()
except AttributeError:
edges_item_ids = []
mesh["ios_edges_item_ids"] = edges_item_ids
mesh["ios_materials"] = [m.instance_id() for m in geometry.materials]
mesh["ios_material_ids"] = geometry.material_ids