mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-26 18:21:59 +00:00
WIP port BCF to new refactored approach. See #1222.
This commit is contained in:
@@ -1161,9 +1161,10 @@ class IfcImporter:
|
|||||||
self.openings[element.GlobalId] = obj
|
self.openings[element.GlobalId] = obj
|
||||||
|
|
||||||
def load_existing_rooted_elements(self):
|
def load_existing_rooted_elements(self):
|
||||||
|
# TODO: consider how this impacts file reloading, for now we assume you only ever load the same file again
|
||||||
for obj in bpy.data.objects:
|
for obj in bpy.data.objects:
|
||||||
if hasattr(obj, "BIMObjectProperties") and obj.BIMObjectProperties.attributes.get("GlobalId"):
|
if hasattr(obj, "BIMObjectProperties") and obj.BIMObjectProperties.ifc_definition_id:
|
||||||
self.existing_elements[obj.BIMObjectProperties.attributes.get("GlobalId").string_value] = obj
|
self.existing_elements[self.file.by_id(obj.BIMObjectProperties.ifc_definition_id).GlobalId] = obj
|
||||||
|
|
||||||
def load_diff(self):
|
def load_diff(self):
|
||||||
if not self.ifc_import_settings.diff_file:
|
if not self.ifc_import_settings.diff_file:
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import os
|
|||||||
import bpy
|
import bpy
|
||||||
import bcf
|
import bcf
|
||||||
from . import bcfstore
|
from . import bcfstore
|
||||||
|
from blenderbim.bim.ifc import IfcStore
|
||||||
from math import radians, degrees, atan, tan, cos, sin
|
from math import radians, degrees, atan, tan, cos, sin
|
||||||
from mathutils import Vector, Matrix, Euler, geometry
|
from mathutils import Vector, Matrix, Euler, geometry
|
||||||
|
|
||||||
@@ -624,6 +625,7 @@ class ActivateBcfViewpoint(bpy.types.Operator):
|
|||||||
bl_label = "Activate BCF Viewpoint"
|
bl_label = "Activate BCF Viewpoint"
|
||||||
|
|
||||||
def execute(self, context):
|
def execute(self, context):
|
||||||
|
self.file = IfcStore.get_file()
|
||||||
bcfxml = bcfstore.BcfStore.get_bcfxml()
|
bcfxml = bcfstore.BcfStore.get_bcfxml()
|
||||||
props = bpy.context.scene.BCFProperties
|
props = bpy.context.scene.BCFProperties
|
||||||
blender_topic = props.topics[props.active_topic_index]
|
blender_topic = props.topics[props.active_topic_index]
|
||||||
@@ -713,10 +715,9 @@ class ActivateBcfViewpoint(bpy.types.Operator):
|
|||||||
global_id_colours.setdefault(component.ifc_guid, coloring.color)
|
global_id_colours.setdefault(component.ifc_guid, coloring.color)
|
||||||
|
|
||||||
for obj in bpy.data.objects:
|
for obj in bpy.data.objects:
|
||||||
global_id = obj.BIMObjectProperties.attributes.get("GlobalId")
|
if not obj.BIMObjectProperties.ifc_definition_id:
|
||||||
if not global_id:
|
|
||||||
continue
|
continue
|
||||||
global_id = global_id.string_value
|
global_id = self.file.by_id(obj.BIMObjectProperties.ifc_definition_id).GlobalId
|
||||||
is_visible = viewpoint.components.visibility.default_visibility
|
is_visible = viewpoint.components.visibility.default_visibility
|
||||||
if global_id in exception_global_ids:
|
if global_id in exception_global_ids:
|
||||||
is_visible = not is_visible
|
is_visible = not is_visible
|
||||||
@@ -724,9 +725,9 @@ class ActivateBcfViewpoint(bpy.types.Operator):
|
|||||||
obj.hide_set(True)
|
obj.hide_set(True)
|
||||||
continue
|
continue
|
||||||
if "IfcSpace" in obj.name:
|
if "IfcSpace" in obj.name:
|
||||||
is_visible = viewpoint.components.viewSetuphints.spacesVisible
|
is_visible = viewpoint.components.view_setup_hints.spaces_visible
|
||||||
elif "IfcOpeningElement" in obj.name:
|
elif "IfcOpeningElement" in obj.name:
|
||||||
is_visible = viewpoint.components.viewSetuphints.openingsVisible
|
is_visible = viewpoint.components.view_setup_hints.openings_visible
|
||||||
obj.hide_set(not is_visible)
|
obj.hide_set(not is_visible)
|
||||||
if not is_visible:
|
if not is_visible:
|
||||||
continue
|
continue
|
||||||
|
|||||||
Reference in New Issue
Block a user