mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-25 17:57:02 +00:00
Implement delete BCF viewpoint
This commit is contained in:
+16
-7
@@ -206,6 +206,8 @@ class BcfXml:
|
|||||||
self.document = minidom.Document()
|
self.document = minidom.Document()
|
||||||
root = self._create_element(self.document, "Markup")
|
root = self._create_element(self.document, "Markup")
|
||||||
|
|
||||||
|
self.write_header(topic.header, root)
|
||||||
|
|
||||||
topic_el = self._create_element(
|
topic_el = self._create_element(
|
||||||
root,
|
root,
|
||||||
"Topic",
|
"Topic",
|
||||||
@@ -216,10 +218,22 @@ class BcfXml:
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
for reference_link in topic.reference_links:
|
||||||
|
self._create_element(topic_el, "ReferenceLink", text=reference_link)
|
||||||
|
|
||||||
text_map = {
|
text_map = {
|
||||||
"Title": topic.title,
|
"Title": topic.title,
|
||||||
"Priority": topic.priority,
|
"Priority": topic.priority,
|
||||||
"Index": topic.index,
|
"Index": topic.index,
|
||||||
|
}
|
||||||
|
for key, value in text_map.items():
|
||||||
|
if value:
|
||||||
|
self._create_element(topic_el, key, text=value)
|
||||||
|
|
||||||
|
for label in topic.labels:
|
||||||
|
self._create_element(topic_el, "Labels", text=label)
|
||||||
|
|
||||||
|
text_map = {
|
||||||
"CreationDate": topic.creation_date,
|
"CreationDate": topic.creation_date,
|
||||||
"CreationAuthor": topic.creation_author,
|
"CreationAuthor": topic.creation_author,
|
||||||
"ModifiedDate": topic.modified_date,
|
"ModifiedDate": topic.modified_date,
|
||||||
@@ -233,10 +247,6 @@ class BcfXml:
|
|||||||
if value:
|
if value:
|
||||||
self._create_element(topic_el, key, text=value)
|
self._create_element(topic_el, key, text=value)
|
||||||
|
|
||||||
for reference_link in topic.reference_links:
|
|
||||||
self._create_element(topic_el, "ReferenceLink", text=reference_link)
|
|
||||||
for label in topic.labels:
|
|
||||||
self._create_element(topic_el, "Labels", text=label)
|
|
||||||
if topic.bim_snippet:
|
if topic.bim_snippet:
|
||||||
bim_snippet = self._create_element(
|
bim_snippet = self._create_element(
|
||||||
topic_el,
|
topic_el,
|
||||||
@@ -254,7 +264,6 @@ class BcfXml:
|
|||||||
for related_topic in topic.related_topics:
|
for related_topic in topic.related_topics:
|
||||||
self._create_element(topic_el, "RelatedTopic", {"Guid": related_topic.guid})
|
self._create_element(topic_el, "RelatedTopic", {"Guid": related_topic.guid})
|
||||||
|
|
||||||
self.write_header(topic.header, root)
|
|
||||||
self.write_comments(topic.comments, root)
|
self.write_comments(topic.comments, root)
|
||||||
self.write_viewpoints(topic.viewpoints, root, topic)
|
self.write_viewpoints(topic.viewpoints, root, topic)
|
||||||
|
|
||||||
@@ -334,7 +343,7 @@ class BcfXml:
|
|||||||
|
|
||||||
def write_viewpoint(self, viewpoint, topic):
|
def write_viewpoint(self, viewpoint, topic):
|
||||||
document = minidom.Document()
|
document = minidom.Document()
|
||||||
root = self._create_element(document, "VisualizationInfo")
|
root = self._create_element(document, "VisualizationInfo", { "Guid": viewpoint.guid })
|
||||||
self.write_viewpoint_components(viewpoint, root)
|
self.write_viewpoint_components(viewpoint, root)
|
||||||
self.write_viewpoint_orthogonal_camera(viewpoint, root)
|
self.write_viewpoint_orthogonal_camera(viewpoint, root)
|
||||||
self.write_viewpoint_perspective_camera(viewpoint, root)
|
self.write_viewpoint_perspective_camera(viewpoint, root)
|
||||||
@@ -354,7 +363,7 @@ class BcfXml:
|
|||||||
"ViewSetupHints",
|
"ViewSetupHints",
|
||||||
{
|
{
|
||||||
"SpacesVisible": viewpoint.components.view_setup_hints.spaces_visible,
|
"SpacesVisible": viewpoint.components.view_setup_hints.spaces_visible,
|
||||||
"SpaceBoundiresVisible": viewpoint.components.view_setup_hints.space_boundaries_visible,
|
"SpaceBoundariesVisible": viewpoint.components.view_setup_hints.space_boundaries_visible,
|
||||||
"OpeningsVisible": viewpoint.components.view_setup_hints.openings_visible,
|
"OpeningsVisible": viewpoint.components.view_setup_hints.openings_visible,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ if bpy is not None:
|
|||||||
operator.SaveBcfProject,
|
operator.SaveBcfProject,
|
||||||
operator.AddBcfTopic,
|
operator.AddBcfTopic,
|
||||||
operator.ViewBcfTopic,
|
operator.ViewBcfTopic,
|
||||||
|
operator.RemoveBcfViewpoint,
|
||||||
operator.ActivateBcfViewpoint,
|
operator.ActivateBcfViewpoint,
|
||||||
operator.OpenUri,
|
operator.OpenUri,
|
||||||
operator.OpenBcfReferenceLink,
|
operator.OpenBcfReferenceLink,
|
||||||
|
|||||||
@@ -737,6 +737,22 @@ class ViewBcfTopic(bpy.types.Operator):
|
|||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
|
|
||||||
|
|
||||||
|
class RemoveBcfViewpoint(bpy.types.Operator):
|
||||||
|
bl_idname = "bim.remove_bcf_viewpoint"
|
||||||
|
bl_label = "Remove BCF Viewpoint"
|
||||||
|
|
||||||
|
def execute(self, context):
|
||||||
|
bcfxml = bcfstore.BcfStore.get_bcfxml()
|
||||||
|
props = bpy.context.scene.BCFProperties
|
||||||
|
blender_topic = props.topics[props.active_topic_index]
|
||||||
|
viewpoint_guid = blender_topic.viewpoints
|
||||||
|
topic = bcfxml.topics[blender_topic.name]
|
||||||
|
bcfxml.delete_viewpoint(viewpoint_guid, topic)
|
||||||
|
props.active_topic_index = props.active_topic_index # Refreshes the BCF Topic
|
||||||
|
print(bcfxml.filepath)
|
||||||
|
return {"FINISHED"}
|
||||||
|
|
||||||
|
|
||||||
class ActivateBcfViewpoint(bpy.types.Operator):
|
class ActivateBcfViewpoint(bpy.types.Operator):
|
||||||
bl_idname = "bim.activate_bcf_viewpoint"
|
bl_idname = "bim.activate_bcf_viewpoint"
|
||||||
bl_label = "Activate BCF Viewpoint"
|
bl_label = "Activate BCF Viewpoint"
|
||||||
@@ -745,7 +761,7 @@ class ActivateBcfViewpoint(bpy.types.Operator):
|
|||||||
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]
|
||||||
topic = bcfxml.topics[blender_topic.guid]
|
topic = bcfxml.topics[blender_topic.name]
|
||||||
if not topic.viewpoints:
|
if not topic.viewpoints:
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
|
|
||||||
|
|||||||
@@ -1696,6 +1696,7 @@ class BIM_PT_bcf(Panel):
|
|||||||
row = layout.row()
|
row = layout.row()
|
||||||
row.prop(topic, "viewpoints")
|
row.prop(topic, "viewpoints")
|
||||||
row.operator("bim.activate_bcf_viewpoint", icon="SCENE", text="")
|
row.operator("bim.activate_bcf_viewpoint", icon="SCENE", text="")
|
||||||
|
row.operator("bim.remove_bcf_viewpoint", icon="X", text="")
|
||||||
|
|
||||||
col = layout.column(align=True)
|
col = layout.column(align=True)
|
||||||
if topic.type:
|
if topic.type:
|
||||||
@@ -2199,14 +2200,16 @@ class BIM_UL_clash_sets(bpy.types.UIList):
|
|||||||
else:
|
else:
|
||||||
layout.label(text="", translate=False)
|
layout.label(text="", translate=False)
|
||||||
|
|
||||||
|
|
||||||
class BIM_UL_smart_groups(bpy.types.UIList):
|
class BIM_UL_smart_groups(bpy.types.UIList):
|
||||||
def draw_item(self, context, layout, data, item, icon, active_data, active_propname):
|
def draw_item(self, context, layout, data, item, icon, active_data, active_propname):
|
||||||
ob = data
|
ob = data
|
||||||
if item:
|
if item:
|
||||||
layout.label(text=str(item.number), translate=False, icon='NONE', icon_value=0)
|
layout.label(text=str(item.number), translate=False, icon="NONE", icon_value=0)
|
||||||
else:
|
else:
|
||||||
layout.label(text="", translate=False)
|
layout.label(text="", translate=False)
|
||||||
|
|
||||||
|
|
||||||
class BIM_UL_constraints(bpy.types.UIList):
|
class BIM_UL_constraints(bpy.types.UIList):
|
||||||
def draw_item(self, context, layout, data, item, icon, active_data, active_propname):
|
def draw_item(self, context, layout, data, item, icon, active_data, active_propname):
|
||||||
ob = data
|
ob = data
|
||||||
@@ -2469,6 +2472,7 @@ class BIM_PT_qto_utilities(Panel):
|
|||||||
row = layout.row(align=True)
|
row = layout.row(align=True)
|
||||||
row.operator("bim.calculate_object_volumes")
|
row.operator("bim.calculate_object_volumes")
|
||||||
|
|
||||||
|
|
||||||
class BIM_PT_clash_manager(Panel):
|
class BIM_PT_clash_manager(Panel):
|
||||||
bl_idname = "BIM_PT_clash_manager"
|
bl_idname = "BIM_PT_clash_manager"
|
||||||
bl_label = "Clash Manager"
|
bl_label = "Clash Manager"
|
||||||
@@ -2503,11 +2507,12 @@ class BIM_PT_clash_manager(Panel):
|
|||||||
row = layout.row(align=True)
|
row = layout.row(align=True)
|
||||||
row.operator("bim.load_smart_groups_for_active_clash_set")
|
row.operator("bim.load_smart_groups_for_active_clash_set")
|
||||||
|
|
||||||
layout.template_list('BIM_UL_smart_groups', '', props, 'smart_clash_groups', props, 'active_smart_group_index')
|
layout.template_list("BIM_UL_smart_groups", "", props, "smart_clash_groups", props, "active_smart_group_index")
|
||||||
|
|
||||||
row = layout.row(align=True)
|
row = layout.row(align=True)
|
||||||
row.operator("bim.select_smart_group")
|
row.operator("bim.select_smart_group")
|
||||||
|
|
||||||
|
|
||||||
class BIM_PT_misc_utilities(Panel):
|
class BIM_PT_misc_utilities(Panel):
|
||||||
bl_idname = "BIM_PT_misc_utilities"
|
bl_idname = "BIM_PT_misc_utilities"
|
||||||
bl_label = "Miscellaneous"
|
bl_label = "Miscellaneous"
|
||||||
|
|||||||
Reference in New Issue
Block a user