diff --git a/src/ifcblenderexport/blenderbim/bim/__init__.py b/src/ifcblenderexport/blenderbim/bim/__init__.py index 2912567d05..e778acf274 100644 --- a/src/ifcblenderexport/blenderbim/bim/__init__.py +++ b/src/ifcblenderexport/blenderbim/bim/__init__.py @@ -41,6 +41,7 @@ if bpy is not None: operator.RemoveBcfComment, operator.RemoveBcfReferenceLink, operator.EditBcfReferenceLinks, + operator.RemoveBcfLabel, operator.EditBcfComment, operator.AddBcfComment, operator.ActivateBcfViewpoint, diff --git a/src/ifcblenderexport/blenderbim/bim/operator.py b/src/ifcblenderexport/blenderbim/bim/operator.py index ae66656b95..7cb91ca828 100644 --- a/src/ifcblenderexport/blenderbim/bim/operator.py +++ b/src/ifcblenderexport/blenderbim/bim/operator.py @@ -893,6 +893,22 @@ class RemoveBcfReferenceLink(bpy.types.Operator): return {"FINISHED"} +class RemoveBcfLabel(bpy.types.Operator): + bl_idname = "bim.remove_bcf_label" + bl_label = "Remove BCF Label" + index: bpy.props.IntProperty() + + def execute(self, context): + bcfxml = bcfstore.BcfStore.get_bcfxml() + props = bpy.context.scene.BCFProperties + blender_topic = props.topics[props.active_topic_index] + topic = bcfxml.topics[blender_topic.name] + del topic.labels[self.index] + bcfxml.edit_topic(topic) + blender_topic.labels.remove(self.index) + return {"FINISHED"} + + class RemoveBcfComment(bpy.types.Operator): bl_idname = "bim.remove_bcf_comment" bl_label = "Remove BCF Comment" diff --git a/src/ifcblenderexport/blenderbim/bim/ui.py b/src/ifcblenderexport/blenderbim/bim/ui.py index a411f6b90a..e08745fe6b 100644 --- a/src/ifcblenderexport/blenderbim/bim/ui.py +++ b/src/ifcblenderexport/blenderbim/bim/ui.py @@ -1795,11 +1795,11 @@ class BIM_PT_bcf_metadata(Panel): row = layout.row() row.operator("bim.add_bcf_reference_link") - if topic.labels: - layout.label(text="Labels:") - for index, label in enumerate(topic.labels): - row = layout.row(align=True) - row.prop(label, "name", text="") + layout.label(text="Labels:") + for index, label in enumerate(topic.labels): + row = layout.row(align=True) + row.prop(label, "name", text="") + row.operator("bim.remove_bcf_label", icon="X", text="").index = index if topic.bim_snippet.schema: layout.label(text="BIM Snippet:")