From 9dcf44fbea18c023834951f615c5499eff50ff3d Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 13 Dec 2020 16:35:51 +1100 Subject: [PATCH] You can now view and edit the BCF project name --- src/ifcblenderexport/blenderbim/bim/__init__.py | 2 +- src/ifcblenderexport/blenderbim/bim/operator.py | 7 ++++--- src/ifcblenderexport/blenderbim/bim/prop.py | 6 ++++++ src/ifcblenderexport/blenderbim/bim/ui.py | 14 +++++++++++--- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/ifcblenderexport/blenderbim/bim/__init__.py b/src/ifcblenderexport/blenderbim/bim/__init__.py index 6aa9c7f1b8..6c908b6078 100644 --- a/src/ifcblenderexport/blenderbim/bim/__init__.py +++ b/src/ifcblenderexport/blenderbim/bim/__init__.py @@ -25,8 +25,8 @@ if bpy is not None: operator.UnassignClass, operator.SelectClass, operator.SelectType, + operator.LoadBcfProject, operator.SaveBcfProject, - operator.GetBcfTopics, operator.ViewBcfTopic, operator.ActivateBcfViewpoint, operator.OpenBcfFileReference, diff --git a/src/ifcblenderexport/blenderbim/bim/operator.py b/src/ifcblenderexport/blenderbim/bim/operator.py index d59c3f4217..b5476da13b 100644 --- a/src/ifcblenderexport/blenderbim/bim/operator.py +++ b/src/ifcblenderexport/blenderbim/bim/operator.py @@ -507,15 +507,16 @@ class RejectElement(bpy.types.Operator): return {"FINISHED"} -class GetBcfTopics(bpy.types.Operator): - bl_idname = "bim.get_bcf_topics" - bl_label = "Get BCF Topics" +class LoadBcfProject(bpy.types.Operator): + bl_idname = "bim.load_bcf_project" + bl_label = "Load BCF Project" filepath: bpy.props.StringProperty(subtype="FILE_PATH") def execute(self, context): import bcfplugin bcfplugin.openProject(self.filepath) + bpy.context.scene.BCFProperties.name = bcfplugin.getProjectName() bcf.BcfStore.topics = bcfplugin.getTopics() while len(bpy.context.scene.BCFProperties.topics) > 0: bpy.context.scene.BCFProperties.topics.remove(0) diff --git a/src/ifcblenderexport/blenderbim/bim/prop.py b/src/ifcblenderexport/blenderbim/bim/prop.py index 7763c7ba0d..89ce641e59 100644 --- a/src/ifcblenderexport/blenderbim/bim/prop.py +++ b/src/ifcblenderexport/blenderbim/bim/prop.py @@ -947,6 +947,11 @@ def refreshBcfTopic(self, context): RefreshBcfTopic.refresh(context) +def setBcfProjectName(self, context): + import bcfplugin + bcfplugin.setProjectName(self.name) + + class RefreshBcfTopic: props: None topic: None @@ -1599,6 +1604,7 @@ class BIMProperties(PropertyGroup): class BCFProperties(PropertyGroup): + name: StringProperty(default="", name="Project Name", update=setBcfProjectName) topics: CollectionProperty(name="BCF Topics", type=BcfTopic) active_topic_index: IntProperty(name="Active BCF Topic Index", update=refreshBcfTopic) viewpoints: EnumProperty(items=getBcfViewpoints, name="BCF Viewpoints") diff --git a/src/ifcblenderexport/blenderbim/bim/ui.py b/src/ifcblenderexport/blenderbim/bim/ui.py index c2ed78824a..8a898ee347 100644 --- a/src/ifcblenderexport/blenderbim/bim/ui.py +++ b/src/ifcblenderexport/blenderbim/bim/ui.py @@ -1660,11 +1660,19 @@ class BIM_PT_bcf(Panel): scene = context.scene props = bpy.context.scene.BCFProperties - row = layout.row() - row.operator("bim.get_bcf_topics") + row = layout.row(align=True) + row.operator("bim.load_bcf_project") + + if not props.topics: + return + + row.operator("bim.save_bcf_project") row = layout.row() - row.operator("bim.save_bcf_project") + row.prop(props, "name") + + if not props.topics: + return props = bpy.context.scene.BCFProperties layout.template_list("BIM_UL_topics", "", props, "topics", props, "active_topic_index")