mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-16 21:42:19 +00:00
IfcDiff can now visualise across linked IFCs
This commit is contained in:
@@ -336,8 +336,15 @@ class SelectIfcClashResults(bpy.types.Operator):
|
|||||||
else:
|
else:
|
||||||
element_file = self.file
|
element_file = self.file
|
||||||
|
|
||||||
element = element_file.by_id(obj.BIMObjectProperties.ifc_definition_id)
|
try:
|
||||||
if element.GlobalId in global_ids:
|
element = element_file.by_id(obj.BIMObjectProperties.ifc_definition_id)
|
||||||
|
except:
|
||||||
|
continue
|
||||||
|
|
||||||
|
global_id = getattr(element, "GlobalId", None)
|
||||||
|
if not global_id:
|
||||||
|
continue
|
||||||
|
if global_id in global_ids:
|
||||||
obj.select_set(True)
|
obj.select_set(True)
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import ifccsv
|
|||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
import blenderbim.bim.handler
|
import blenderbim.bim.handler
|
||||||
import blenderbim.tool as tool
|
import blenderbim.tool as tool
|
||||||
|
from blenderbim.bim.ifc import IfcStore
|
||||||
|
|
||||||
|
|
||||||
class SelectDiffJsonFile(bpy.types.Operator):
|
class SelectDiffJsonFile(bpy.types.Operator):
|
||||||
@@ -51,8 +52,27 @@ class VisualiseDiff(bpy.types.Operator):
|
|||||||
diff = json.load(file)
|
diff = json.load(file)
|
||||||
for obj in context.visible_objects:
|
for obj in context.visible_objects:
|
||||||
obj.color = (1.0, 1.0, 1.0, 1.0)
|
obj.color = (1.0, 1.0, 1.0, 1.0)
|
||||||
element = tool.Ifc.get_entity(obj)
|
|
||||||
if not element:
|
if not obj.BIMObjectProperties.ifc_definition_id:
|
||||||
|
continue
|
||||||
|
|
||||||
|
ifc_file = ""
|
||||||
|
for scene in obj.users_scene:
|
||||||
|
if scene.BIMProperties.ifc_file:
|
||||||
|
ifc_file = scene.BIMProperties.ifc_file
|
||||||
|
if scene.library:
|
||||||
|
break
|
||||||
|
|
||||||
|
if ifc_file:
|
||||||
|
if ifc_file not in IfcStore.session_files:
|
||||||
|
IfcStore.session_files[ifc_file] = ifcopenshell.open(ifc_file)
|
||||||
|
element_file = IfcStore.session_files[ifc_file]
|
||||||
|
else:
|
||||||
|
element_file = ifc_file
|
||||||
|
|
||||||
|
try:
|
||||||
|
element = element_file.by_id(obj.BIMObjectProperties.ifc_definition_id)
|
||||||
|
except:
|
||||||
continue
|
continue
|
||||||
global_id = getattr(element, "GlobalId", None)
|
global_id = getattr(element, "GlobalId", None)
|
||||||
if not global_id:
|
if not global_id:
|
||||||
|
|||||||
Reference in New Issue
Block a user