Allow user option to export without representations

This commit is contained in:
Dion Moult
2019-10-07 22:23:31 +11:00
parent 0ebb33da18
commit fc44b4e0d4
4 changed files with 28 additions and 1 deletions
@@ -21,6 +21,7 @@ classes = (
operator.ExportIFC,
ui.BIMProperties,
ui.BIMPanel,
ui.MVDPanel,
)
def menu_func(self, context):
@@ -1342,6 +1342,8 @@ class IfcExporter():
self.ifc_parser.psets[relating_property_key]['ifc'])
def relate_objects_to_materials(self):
if not self.ifc_export_settings.has_representations:
return
for relating_material_key, related_objects in self.ifc_parser.rel_associates_material.items():
self.file.createIfcRelAssociatesMaterial(
ifcopenshell.guid.new(), self.owner_history, None, None,
@@ -1349,6 +1351,8 @@ class IfcExporter():
self.ifc_parser.materials[relating_material_key]['ifc'])
def relate_objects_to_material_layer_sets(self):
if not self.ifc_export_settings.has_representations:
return
for product_index, related_materials in self.ifc_parser.rel_associates_material_layer_set.items():
material_layer_set = self.file.create_entity('IfcMaterialLayerSet', **{
'MaterialLayers': [self.ifc_parser.materials[m]['layer_ifc'] for m in related_materials]
@@ -1359,6 +1363,8 @@ class IfcExporter():
material_layer_set)
def relate_objects_to_material_constituent_sets(self):
if not self.ifc_export_settings.has_representations:
return
for product_index, related_materials in self.ifc_parser.rel_associates_material_constituent_set.items():
material_constituent_set = self.file.create_entity('IfcMaterialConstituentSet', **{
'MaterialConstituents': [self.ifc_parser.materials[m]['constituent_ifc'] for m in related_materials]
@@ -27,6 +27,7 @@ class ExportIFC(bpy.types.Operator):
ifc_export_settings.data_dir = bpy.context.scene.BIMProperties.data_dir
ifc_export_settings.schema_dir = bpy.context.scene.BIMProperties.schema_dir
ifc_export_settings.output_file = bpy.path.ensure_ext(self.filepath, '.ifc')
ifc_export_settings.has_representations = bpy.context.scene.BIMProperties.export_has_representations
ifc_parser = export.IfcParser(ifc_export_settings)
ifc_schema = export.IfcSchema(ifc_export_settings)
qto_calculator = export.QtoCalculator()
+20 -1
View File
@@ -32,10 +32,11 @@ class BIMProperties(bpy.types.PropertyGroup):
items = getIfcPredefinedTypes,
name="Predefined Type", default=None)
ifc_userdefined_type: bpy.props.StringProperty(name="Userdefined Type")
export_has_representations: bpy.props.BoolProperty(name="Export Representations", default=True)
class BIMPanel(bpy.types.Panel):
bl_label = "Building Information Modeling"
bl_idname = "SCENE_PT_layout"
bl_idname = "bim.panel"
bl_space_type = 'PROPERTIES'
bl_region_type = 'WINDOW'
bl_context = "scene"
@@ -68,3 +69,21 @@ class BIMPanel(bpy.types.Panel):
row.prop(bim_properties, "ifc_userdefined_type")
row = layout.row()
row.operator("bim.assign_class")
class MVDPanel(bpy.types.Panel):
bl_label = "Model View Definitions"
bl_idname = "mvd.panel"
bl_space_type = 'PROPERTIES'
bl_region_type = 'WINDOW'
bl_context = "scene"
def draw(self, context):
layout = self.layout
scene = context.scene
bim_properties = bpy.context.scene.BIMProperties
layout.label(text="Custom MVD:")
row = layout.row()
row.prop(bim_properties, "export_has_representations")