mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-26 02:07:36 +00:00
Fix #1465. Bump BCF to new namespace.
This commit is contained in:
@@ -44,9 +44,7 @@ class BcfXml:
|
|||||||
self.edit_project()
|
self.edit_project()
|
||||||
self.edit_version()
|
self.edit_version()
|
||||||
|
|
||||||
def get_project(self, filepath=None):
|
def get_project(self):
|
||||||
if not filepath:
|
|
||||||
return self.project
|
|
||||||
if os.path.isfile(os.path.join(self.filepath, "project.bcfp")):
|
if os.path.isfile(os.path.join(self.filepath, "project.bcfp")):
|
||||||
data = self._read_xml("project.bcfp", "project.xsd")
|
data = self._read_xml("project.bcfp", "project.xsd")
|
||||||
self.project.extension_schema = data["ExtensionSchema"]
|
self.project.extension_schema = data["ExtensionSchema"]
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import bcf
|
import bcf
|
||||||
import bcf.bcfxml
|
import bcf.v2.bcfxml
|
||||||
|
|
||||||
class BcfStore:
|
class BcfStore:
|
||||||
bcfxml = None
|
bcfxml = None
|
||||||
@@ -7,5 +7,5 @@ class BcfStore:
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def get_bcfxml():
|
def get_bcfxml():
|
||||||
if not BcfStore.bcfxml:
|
if not BcfStore.bcfxml:
|
||||||
BcfStore.bcfxml = bcf.bcfxml.BcfXml()
|
BcfStore.bcfxml = bcf.v2.bcfxml.BcfXml()
|
||||||
return BcfStore.bcfxml
|
return BcfStore.bcfxml
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
import os
|
import os
|
||||||
import bpy
|
import bpy
|
||||||
import bcf
|
import bcf
|
||||||
|
import bcf.bcfxml
|
||||||
|
import bcf.v2.data
|
||||||
from . import bcfstore
|
from . import bcfstore
|
||||||
from blenderbim.bim.ifc import IfcStore
|
from blenderbim.bim.ifc import IfcStore
|
||||||
from math import radians, degrees, atan, tan, cos, sin
|
from math import radians, degrees, atan, tan, cos, sin
|
||||||
@@ -26,9 +28,10 @@ class LoadBcfProject(bpy.types.Operator):
|
|||||||
|
|
||||||
def execute(self, context):
|
def execute(self, context):
|
||||||
bpy.context.scene.BCFProperties.is_loaded = False
|
bpy.context.scene.BCFProperties.is_loaded = False
|
||||||
bcfxml = bcfstore.BcfStore.get_bcfxml()
|
|
||||||
if self.filepath:
|
if self.filepath:
|
||||||
bcfxml.get_project(self.filepath)
|
bcfstore.BcfStore.bcfxml = bcf.bcfxml.load(self.filepath)
|
||||||
|
bcfxml = bcfstore.BcfStore.get_bcfxml()
|
||||||
|
bcfxml.get_project()
|
||||||
bpy.context.scene.BCFProperties.name = bcfxml.project.name
|
bpy.context.scene.BCFProperties.name = bcfxml.project.name
|
||||||
bpy.ops.bim.load_bcf_topics()
|
bpy.ops.bim.load_bcf_topics()
|
||||||
bpy.context.scene.BCFProperties.is_loaded = True
|
bpy.context.scene.BCFProperties.is_loaded = True
|
||||||
@@ -250,7 +253,7 @@ class AddBcfBimSnippet(bpy.types.Operator):
|
|||||||
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]
|
||||||
topic = bcfxml.topics[blender_topic.name]
|
topic = bcfxml.topics[blender_topic.name]
|
||||||
bim_snippet = bcf.data.BimSnippet()
|
bim_snippet = bcf.v2.data.BimSnippet()
|
||||||
bim_snippet.reference = blender_topic.bim_snippet_reference
|
bim_snippet.reference = blender_topic.bim_snippet_reference
|
||||||
bim_snippet.reference_schema = blender_topic.bim_snippet_schema
|
bim_snippet.reference_schema = blender_topic.bim_snippet_schema
|
||||||
bim_snippet.snippet_type = blender_topic.bim_snippet_type
|
bim_snippet.snippet_type = blender_topic.bim_snippet_type
|
||||||
@@ -270,7 +273,7 @@ class AddBcfRelatedTopic(bpy.types.Operator):
|
|||||||
related_topic = None
|
related_topic = None
|
||||||
for topic in bcfxml.topics.values():
|
for topic in bcfxml.topics.values():
|
||||||
if topic.title == blender_topic.related_topic:
|
if topic.title == blender_topic.related_topic:
|
||||||
related_topic = bcf.data.RelatedTopic()
|
related_topic = bcf.v2.data.RelatedTopic()
|
||||||
related_topic.guid = topic.guid
|
related_topic.guid = topic.guid
|
||||||
break
|
break
|
||||||
if not related_topic:
|
if not related_topic:
|
||||||
@@ -291,7 +294,7 @@ class AddBcfHeaderFile(bpy.types.Operator):
|
|||||||
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]
|
||||||
topic = bcfxml.topics[blender_topic.name]
|
topic = bcfxml.topics[blender_topic.name]
|
||||||
header_file = bcf.data.HeaderFile()
|
header_file = bcf.v2.data.HeaderFile()
|
||||||
header_file.reference = blender_topic.file_reference
|
header_file.reference = blender_topic.file_reference
|
||||||
if not os.path.exists(header_file.reference):
|
if not os.path.exists(header_file.reference):
|
||||||
header_file.filename = header_file.reference
|
header_file.filename = header_file.reference
|
||||||
@@ -327,14 +330,14 @@ class AddBcfViewpoint(bpy.types.Operator):
|
|||||||
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]
|
||||||
topic = bcfxml.topics[blender_topic.name]
|
topic = bcfxml.topics[blender_topic.name]
|
||||||
viewpoint = bcf.data.Viewpoint()
|
viewpoint = bcf.v2.data.Viewpoint()
|
||||||
|
|
||||||
if bpy.context.scene.camera.data.type == "ORTHO":
|
if bpy.context.scene.camera.data.type == "ORTHO":
|
||||||
camera = bcf.data.OrthogonalCamera()
|
camera = bcf.v2.data.OrthogonalCamera()
|
||||||
camera.view_to_world_scale = bpy.context.scene.camera.data.ortho_scale
|
camera.view_to_world_scale = bpy.context.scene.camera.data.ortho_scale
|
||||||
viewpoint.orthogonal_camera = camera
|
viewpoint.orthogonal_camera = camera
|
||||||
elif bpy.context.scene.camera.data.type == "PERSP":
|
elif bpy.context.scene.camera.data.type == "PERSP":
|
||||||
camera = bcf.data.PerspectiveCamera()
|
camera = bcf.v2.data.PerspectiveCamera()
|
||||||
camera.field_of_view = degrees(bpy.context.scene.camera.data.angle)
|
camera.field_of_view = degrees(bpy.context.scene.camera.data.angle)
|
||||||
viewpoint.perspective_camera = camera
|
viewpoint.perspective_camera = camera
|
||||||
camera.camera_view_point.x = bpy.context.scene.camera.location.x
|
camera.camera_view_point.x = bpy.context.scene.camera.location.x
|
||||||
@@ -422,7 +425,7 @@ class AddBcfDocumentReference(bpy.types.Operator):
|
|||||||
topic = bcfxml.topics[blender_topic.name]
|
topic = bcfxml.topics[blender_topic.name]
|
||||||
if not blender_topic.document_reference:
|
if not blender_topic.document_reference:
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
document_reference = bcf.data.DocumentReference()
|
document_reference = bcf.v2.data.DocumentReference()
|
||||||
document_reference.referenced_document = blender_topic.document_reference
|
document_reference.referenced_document = blender_topic.document_reference
|
||||||
document_reference.description = blender_topic.document_reference_description or None
|
document_reference.description = blender_topic.document_reference_description or None
|
||||||
bcfxml.add_document_reference(topic, document_reference)
|
bcfxml.add_document_reference(topic, document_reference)
|
||||||
@@ -609,10 +612,10 @@ class AddBcfComment(bpy.types.Operator):
|
|||||||
topic = bcfxml.topics[blender_topic.name]
|
topic = bcfxml.topics[blender_topic.name]
|
||||||
if not blender_topic.comment:
|
if not blender_topic.comment:
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
comment = bcf.data.Comment()
|
comment = bcf.v2.data.Comment()
|
||||||
comment.comment = blender_topic.comment
|
comment.comment = blender_topic.comment
|
||||||
if blender_topic.has_related_viewpoint and blender_topic.viewpoints:
|
if blender_topic.has_related_viewpoint and blender_topic.viewpoints:
|
||||||
comment.viewpoint = bcf.data.Viewpoint()
|
comment.viewpoint = bcf.v2.data.Viewpoint()
|
||||||
comment.viewpoint.guid = blender_topic.viewpoints
|
comment.viewpoint.guid = blender_topic.viewpoints
|
||||||
bcfxml.add_comment(topic, comment)
|
bcfxml.add_comment(topic, comment)
|
||||||
bpy.ops.bim.load_bcf_comments(topic_guid = topic.guid)
|
bpy.ops.bim.load_bcf_comments(topic_guid = topic.guid)
|
||||||
|
|||||||
Reference in New Issue
Block a user