mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-09 21:53:40 +00:00
Add list of BCF topics in UI
This commit is contained in:
@@ -103,6 +103,7 @@ if bpy is not None:
|
|||||||
operator.ExecuteIfcDiff,
|
operator.ExecuteIfcDiff,
|
||||||
operator.AssignContext,
|
operator.AssignContext,
|
||||||
operator.SetViewPreset1,
|
operator.SetViewPreset1,
|
||||||
|
prop.BcfTopic,
|
||||||
prop.Subcontext,
|
prop.Subcontext,
|
||||||
prop.BIMProperties,
|
prop.BIMProperties,
|
||||||
prop.DocProperties,
|
prop.DocProperties,
|
||||||
@@ -135,6 +136,7 @@ if bpy is not None:
|
|||||||
ui.BIM_PT_mesh,
|
ui.BIM_PT_mesh,
|
||||||
ui.BIM_PT_object,
|
ui.BIM_PT_object,
|
||||||
ui.BIM_PT_camera,
|
ui.BIM_PT_camera,
|
||||||
|
ui.BIM_UL_topics,
|
||||||
)
|
)
|
||||||
|
|
||||||
def menu_func_export(self, context):
|
def menu_func_export(self, context):
|
||||||
|
|||||||
@@ -393,7 +393,11 @@ class GetBcfTopics(bpy.types.Operator):
|
|||||||
import bcfplugin
|
import bcfplugin
|
||||||
bcfplugin.openProject(bpy.context.scene.BIMProperties.bcf_file)
|
bcfplugin.openProject(bpy.context.scene.BIMProperties.bcf_file)
|
||||||
topics = bcfplugin.getTopics()
|
topics = bcfplugin.getTopics()
|
||||||
print(topics)
|
while len(bpy.context.scene.BIMProperties.bcf_topics) > 0:
|
||||||
|
bpy.context.scene.BIMProperties.bcf_topics.remove(0)
|
||||||
|
for topic in topics:
|
||||||
|
new = bpy.context.scene.BIMProperties.bcf_topics.add()
|
||||||
|
new.name = topic[0]
|
||||||
return {'FINISHED'}
|
return {'FINISHED'}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -358,6 +358,12 @@ class BIMCameraProperties(PropertyGroup):
|
|||||||
diagram_scale: EnumProperty(items=getDiagramScales, name='Diagram Scale')
|
diagram_scale: EnumProperty(items=getDiagramScales, name='Diagram Scale')
|
||||||
|
|
||||||
|
|
||||||
|
class BcfTopic(PropertyGroup):
|
||||||
|
name: StringProperty(name='Name')
|
||||||
|
# TODO: Make this not wrong
|
||||||
|
target_view: StringProperty(name='Target View')
|
||||||
|
|
||||||
|
|
||||||
class BIMProperties(PropertyGroup):
|
class BIMProperties(PropertyGroup):
|
||||||
schema_dir: StringProperty(default=os.path.join(cwd ,'schema') + os.path.sep, name="Schema Directory")
|
schema_dir: StringProperty(default=os.path.join(cwd ,'schema') + os.path.sep, name="Schema Directory")
|
||||||
data_dir: StringProperty(default=os.path.join(cwd, 'data') + os.path.sep, name="Data Directory")
|
data_dir: StringProperty(default=os.path.join(cwd, 'data') + os.path.sep, name="Data Directory")
|
||||||
@@ -418,7 +424,9 @@ class BIMProperties(PropertyGroup):
|
|||||||
available_contexts: EnumProperty(items=[('Model', 'Model', ''), ('Plan', 'Plan', '')], name="Available Contexts")
|
available_contexts: EnumProperty(items=[('Model', 'Model', ''), ('Plan', 'Plan', '')], name="Available Contexts")
|
||||||
available_subcontexts: EnumProperty(items=getSubcontexts, name="Available Subcontexts")
|
available_subcontexts: EnumProperty(items=getSubcontexts, name="Available Subcontexts")
|
||||||
available_target_views: EnumProperty(items=getTargetViews, name="Available Target Views")
|
available_target_views: EnumProperty(items=getTargetViews, name="Available Target Views")
|
||||||
bcf_file: StringProperty(default='', name="BCF File")
|
bcf_file: StringProperty(default='', name='BCF File')
|
||||||
|
bcf_topics: CollectionProperty(name='BCF Topics', type=BcfTopic)
|
||||||
|
active_bcf_topic_index: IntProperty(name='Active BCF Topic Index')
|
||||||
|
|
||||||
|
|
||||||
class MapConversion(PropertyGroup):
|
class MapConversion(PropertyGroup):
|
||||||
|
|||||||
@@ -544,6 +544,9 @@ class BIM_PT_bcf(Panel):
|
|||||||
row = layout.row()
|
row = layout.row()
|
||||||
row.operator("bim.get_bcf_topics")
|
row.operator("bim.get_bcf_topics")
|
||||||
|
|
||||||
|
props = bpy.context.scene.BIMProperties
|
||||||
|
layout.template_list('BIM_UL_topics', '', props, 'bcf_topics', props, 'active_bcf_topic_index')
|
||||||
|
|
||||||
|
|
||||||
class BIM_PT_qa(Panel):
|
class BIM_PT_qa(Panel):
|
||||||
bl_label = "BIMTester Quality Auditing"
|
bl_label = "BIMTester Quality Auditing"
|
||||||
@@ -721,3 +724,12 @@ class BIM_PT_mvd(Panel):
|
|||||||
row.prop(bim_properties, 'import_should_ignore_building_coordinates')
|
row.prop(bim_properties, 'import_should_ignore_building_coordinates')
|
||||||
row = layout.row()
|
row = layout.row()
|
||||||
row.prop(bim_properties, 'import_should_treat_styled_item_as_material')
|
row.prop(bim_properties, 'import_should_treat_styled_item_as_material')
|
||||||
|
|
||||||
|
|
||||||
|
class BIM_UL_topics(bpy.types.UIList):
|
||||||
|
def draw_item(self, context, layout, data, item, icon, active_data, active_propname):
|
||||||
|
ob = data
|
||||||
|
if item:
|
||||||
|
layout.prop(item, 'name', text='', emboss=False)
|
||||||
|
else:
|
||||||
|
layout.label(text="", translate=False)
|
||||||
|
|||||||
Reference in New Issue
Block a user