mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-10-02 21:12:07 +00:00
Implement delete BCF topic BIM snippet
This commit is contained in:
@@ -513,6 +513,16 @@ class BcfXml:
|
|||||||
os.remove(filepath)
|
os.remove(filepath)
|
||||||
self.edit_topic(topic)
|
self.edit_topic(topic)
|
||||||
|
|
||||||
|
def delete_bim_snippet(self, topic):
|
||||||
|
if not topic.bim_snippet:
|
||||||
|
return
|
||||||
|
if topic.bim_snippet.reference and not topic.bim_snippet.is_external:
|
||||||
|
filepath = os.path.join(self.filepath, topic.guid, topic.bim_snippet.reference)
|
||||||
|
if os.path.exists(filepath):
|
||||||
|
os.remove(filepath)
|
||||||
|
topic.bim_snippet = None
|
||||||
|
self.edit_topic(topic)
|
||||||
|
|
||||||
def add_file(self, topic, header_file):
|
def add_file(self, topic, header_file):
|
||||||
if os.path.exists(header_file.reference):
|
if os.path.exists(header_file.reference):
|
||||||
topic_filepath = os.path.join(self.filepath, topic.guid)
|
topic_filepath = os.path.join(self.filepath, topic.guid)
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ if bpy is not None:
|
|||||||
operator.AddBcfLabel,
|
operator.AddBcfLabel,
|
||||||
operator.ViewBcfTopic,
|
operator.ViewBcfTopic,
|
||||||
operator.RemoveBcfComment,
|
operator.RemoveBcfComment,
|
||||||
|
operator.RemoveBcfBimSnippet,
|
||||||
operator.RemoveBcfReferenceLink,
|
operator.RemoveBcfReferenceLink,
|
||||||
operator.EditBcfReferenceLinks,
|
operator.EditBcfReferenceLinks,
|
||||||
operator.EditBcfLabels,
|
operator.EditBcfLabels,
|
||||||
|
|||||||
@@ -945,6 +945,22 @@ class RemoveBcfLabel(bpy.types.Operator):
|
|||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
|
|
||||||
|
|
||||||
|
class RemoveBcfBimSnippet(bpy.types.Operator):
|
||||||
|
bl_idname = "bim.remove_bcf_bim_snippet"
|
||||||
|
bl_label = "Remove BCF BIM Snippet"
|
||||||
|
|
||||||
|
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]
|
||||||
|
bcfxml.delete_bim_snippet(topic)
|
||||||
|
blender_topic.bim_snippet.schema = ""
|
||||||
|
blender_topic.bim_snippet.reference = ""
|
||||||
|
blender_topic.bim_snippet.type = ""
|
||||||
|
return {"FINISHED"}
|
||||||
|
|
||||||
|
|
||||||
class RemoveBcfComment(bpy.types.Operator):
|
class RemoveBcfComment(bpy.types.Operator):
|
||||||
bl_idname = "bim.remove_bcf_comment"
|
bl_idname = "bim.remove_bcf_comment"
|
||||||
bl_label = "Remove BCF Comment"
|
bl_label = "Remove BCF Comment"
|
||||||
|
|||||||
@@ -1807,20 +1807,21 @@ class BIM_PT_bcf_metadata(Panel):
|
|||||||
row = layout.row()
|
row = layout.row()
|
||||||
row.operator("bim.add_bcf_label")
|
row.operator("bim.add_bcf_label")
|
||||||
|
|
||||||
|
layout.label(text="BIM Snippet:")
|
||||||
if topic.bim_snippet.schema:
|
if topic.bim_snippet.schema:
|
||||||
layout.label(text="BIM Snippet:")
|
|
||||||
row = layout.row(align=True)
|
row = layout.row(align=True)
|
||||||
row.prop(topic.bim_snippet, "type")
|
row.prop(topic.bim_snippet, "type", emboss=False)
|
||||||
if topic.bim_snippet.schema:
|
if topic.bim_snippet.schema:
|
||||||
row.operator("bim.open_uri", icon="URL", text="").uri = topic.bim_snippet.schema
|
row.operator("bim.open_uri", icon="URL", text="").uri = topic.bim_snippet.schema
|
||||||
|
|
||||||
row = layout.row(align=True)
|
row = layout.row(align=True)
|
||||||
row.prop(topic.bim_snippet, "reference")
|
row.prop(topic.bim_snippet, "reference", emboss=False)
|
||||||
if topic.bim_snippet.is_external:
|
if topic.bim_snippet.is_external:
|
||||||
row.operator("bim.open_uri", icon="URL", text="").uri = topic.bim_snippet.reference
|
row.operator("bim.open_uri", icon="URL", text="").uri = topic.bim_snippet.reference
|
||||||
else:
|
else:
|
||||||
op = row.operator("bim.open_uri", icon="FILE_FOLDER", text="")
|
op = row.operator("bim.open_uri", icon="FILE_FOLDER", text="")
|
||||||
op.uri = os.path.join(bcfxml.filepath, topic.name, topic.bim_snippet.reference)
|
op.uri = os.path.join(bcfxml.filepath, topic.name, topic.bim_snippet.reference)
|
||||||
|
row.operator("bim.remove_bcf_bim_snippet", icon="X", text="")
|
||||||
|
|
||||||
if topic.document_references:
|
if topic.document_references:
|
||||||
layout.label(text="Document References:")
|
layout.label(text="Document References:")
|
||||||
|
|||||||
Reference in New Issue
Block a user