diff --git a/src/ifcblenderexport/blenderbim/export_ifc.py b/src/ifcblenderexport/blenderbim/export_ifc.py index 388bf8ac5b..5420d507b2 100644 --- a/src/ifcblenderexport/blenderbim/export_ifc.py +++ b/src/ifcblenderexport/blenderbim/export_ifc.py @@ -68,30 +68,6 @@ class QtoCalculator(): return volume -class IfcSchema(): - def __init__(self, ifc_export_settings): - self.schema_dir = ifc_export_settings.schema_dir - self.property_file = ifcopenshell.open(self.schema_dir + 'IFC4_ADD2.ifc') - self.psets = {} - self.qtos = {} - self.load() - - with open(self.schema_dir + 'ifc_types_IFC4.json') as f: - self.type_map = json.load(f) - - with open(self.schema_dir + 'ifc_elements_IFC4.json') as f: - self.elements = json.load(f) - - def load(self): - for property in self.property_file.by_type('IfcPropertySetTemplate'): - if property.Name[0:4] == 'Qto_': - # self.qtos.append({ }) - pass - else: - self.psets[property.Name] = { - 'HasPropertyTemplates': {p.Name: p for p in property.HasPropertyTemplates}} - - class IfcParser(): def __init__(self, ifc_export_settings): self.data_dir = ifc_export_settings.data_dir @@ -699,13 +675,13 @@ class IfcParser(): for product in self.selected_products + self.type_products: obj = product['raw'] if self.is_point_cloud(obj): - results['Model/Body/MODEL_VIEW/{}'.format(obj.name)] = self.get_representation( - obj.point_cloud_visualizer, obj, 'Model', 'Body', 'MODEL_VIEW') + self.append_point_cloud_representation(obj, results) continue elif obj.data is None or obj.data.name in results: continue self.append_default_representation(obj, results) + self.append_curve_axis_representation(obj, results) self.append_representation_per_context(obj, results) return results @@ -718,6 +694,15 @@ class IfcParser(): results['Model/Body/MODEL_VIEW/{}'.format(obj.data.name)] = self.get_representation( obj.data, obj, 'Model', 'Body', 'MODEL_VIEW') + def append_point_cloud_representation(self, obj, results): + results['Model/Body/MODEL_VIEW/{}'.format(obj.name)] = self.get_representation( + obj.point_cloud_visualizer, obj, 'Model', 'Body', 'MODEL_VIEW') + + def append_curve_axis_representation(self, obj, results): + if obj.type == 'CURVE': + results['Model/Axis/GRAPH_VIEW/{}'.format(obj.data.name)] = self.get_representation( + obj.data, obj, 'Model', 'Axis', 'GRAPH_VIEW') + def append_representation_per_context(self, obj, results): name = self.get_ifc_representation_name(obj.data.name) for context in self.ifc_export_settings.context_tree: @@ -890,6 +875,14 @@ class IfcParser(): for subcontext in context['subcontexts']: for target_view in subcontext['target_views']: mesh_name = '/'.join([context['name'], subcontext['name'], target_view, name]) + + if context['name'] == 'Model' \ + and subcontext['name'] == 'Axis' \ + and target_view == 'GRAPH_VIEW' \ + and obj.type == 'CURVE': + names.append(mesh_name) + continue + try: mesh = bpy.data.meshes[mesh_name] except: @@ -1650,6 +1643,12 @@ class IfcExporter(): elif representation['subcontext'] == 'CoG': return self.file.createIfcRepresentationMap(self.origin, self.create_cog_representation(representation)) + elif representation['is_curve'] \ + and representation['context'] == 'Model' \ + and representation['subcontext'] == 'Axis' \ + and representation['target_view'] == 'GRAPH_VIEW': + return self.file.createIfcRepresentationMap( + self.origin, self.create_axis_representation(representation)) elif representation['context'] == 'Plan' \ or representation['subcontext'] == 'Axis' \ or representation['is_wireframe']: @@ -1659,16 +1658,8 @@ class IfcExporter(): return self.file.createIfcRepresentationMap(self.origin, self.create_geometric_curve_set_representation(representation)) elif representation['is_curve']: - self.file.createIfcRepresentationMap(self.origin, + return self.file.createIfcRepresentationMap(self.origin, self.create_curve_representation(representation)) - if 'Model' in self.ifc_rep_context \ - and 'Axis' in self.ifc_rep_context['Model'] \ - and 'GRAPH_VIEW' in self.ifc_rep_context['Model']['Axis']: - representation['subcontext'] = 'Axis' - representation['target_view'] = 'GRAPH_VIEW' - self.file.createIfcRepresentationMap( - self.origin, self.create_axis_representation(representation)) - return elif representation['is_swept_solid']: return self.file.createIfcRepresentationMap(self.origin, self.create_swept_solid_representation(representation)) diff --git a/src/ifcblenderexport/blenderbim/import_ifc.py b/src/ifcblenderexport/blenderbim/import_ifc.py index fc974b75b7..a3405f5cb8 100644 --- a/src/ifcblenderexport/blenderbim/import_ifc.py +++ b/src/ifcblenderexport/blenderbim/import_ifc.py @@ -7,13 +7,7 @@ import time import mathutils import multiprocessing from .helper import SIUnitHelper - -cwd = os.path.dirname(os.path.realpath(__file__)) + os.path.sep - -class IfcSchema(): - def __init__(self): - with open('{}ifc_elements_IFC4.json'.format(cwd + 'schema/')) as f: - self.elements = json.load(f) +from .schema import IfcSchema ifc_schema = IfcSchema() diff --git a/src/ifcblenderexport/blenderbim/operator.py b/src/ifcblenderexport/blenderbim/operator.py index 95ebff65f7..68b96c181c 100644 --- a/src/ifcblenderexport/blenderbim/operator.py +++ b/src/ifcblenderexport/blenderbim/operator.py @@ -11,6 +11,7 @@ from . import sheeter from bpy_extras.io_utils import ImportHelper from itertools import cycle from mathutils import Vector +from .schema import IfcSchema class ExportIFC(bpy.types.Operator): bl_idname = "export.ifc" @@ -53,7 +54,7 @@ class ExportIFC(bpy.types.Operator): ] }) ifc_parser = export_ifc.IfcParser(ifc_export_settings) - ifc_schema = export_ifc.IfcSchema(ifc_export_settings) + ifc_schema = IfcSchema() qto_calculator = export_ifc.QtoCalculator() ifc_exporter = export_ifc.IfcExporter(ifc_export_settings, ifc_schema, ifc_parser, qto_calculator) ifc_exporter.export() diff --git a/src/ifcblenderexport/blenderbim/prop.py b/src/ifcblenderexport/blenderbim/prop.py index 20ec723f36..60f8e01b05 100644 --- a/src/ifcblenderexport/blenderbim/prop.py +++ b/src/ifcblenderexport/blenderbim/prop.py @@ -3,6 +3,7 @@ import os import csv from pathlib import Path from . import export_ifc +from .schema import IfcSchema import bpy from bpy.types import PropertyGroup from bpy.app.handlers import persistent @@ -17,14 +18,10 @@ from bpy.props import ( cwd = os.path.dirname(os.path.realpath(__file__)) -class IfcSchema(): - def __init__(self): - with open(os.path.join(cwd, 'schema', 'ifc_elements_IFC4.json')) as f: - self.elements = json.load(f) - ifc_schema = IfcSchema() diagram_scales_enum = [] +products_enum = [] classes_enum = [] types_enum = [] availablematerialpsets_enum = [] @@ -63,6 +60,12 @@ def getIfcPredefinedTypes(self, context): return types_enum +def refreshClasses(self, context): + global classes_enum + classes_enum.clear() + getIfcClasses(self, context) + + def refreshPredefinedTypes(self, context): global types_enum types_enum.clear() @@ -89,10 +92,18 @@ def getDiagramScales(self, context): return diagram_scales_enum +def getIfcProducts(self, context): + global products_enum + if len(products_enum) < 1: + products_enum.extend([(e, e, '') for e in + ['IfcElement', 'IfcSpatialStructureElement', 'IfcStructural']]) + return products_enum + + def getIfcClasses(self, context): global classes_enum if len(classes_enum) < 1: - classes_enum.extend([(e, e, '') for e in ifc_schema.elements]) + classes_enum.extend([(e, e, '') for e in getattr(ifc_schema, self.ifc_product)]) return classes_enum @@ -253,6 +264,7 @@ class BIMProperties(PropertyGroup): 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") audit_ifc_class: EnumProperty(items=getIfcClasses, name="Audit Class") + ifc_product: EnumProperty(items=getIfcProducts, name="Products", update=refreshClasses) ifc_class: EnumProperty(items=getIfcClasses, name="Class", update=refreshPredefinedTypes) ifc_predefined_type: EnumProperty( items = getIfcPredefinedTypes, diff --git a/src/ifcblenderexport/blenderbim/schema.py b/src/ifcblenderexport/blenderbim/schema.py new file mode 100644 index 0000000000..d29a084c2f --- /dev/null +++ b/src/ifcblenderexport/blenderbim/schema.py @@ -0,0 +1,33 @@ +import os +import json +import ifcopenshell + +cwd = os.path.dirname(os.path.realpath(__file__)) + +class IfcSchema(): + def __init__(self): + self.schema_dir = os.path.join(cwd, 'schema') # TODO: make configurable + self.products = ['IfcElement', 'IfcSpatialStructureElement', 'IfcStructural'] + self.elements = {} + print(os.path.join(self.schema_dir, 'IFC4_ADD2.ifc')) + self.property_file = ifcopenshell.open(os.path.join(self.schema_dir, 'IFC4_ADD2.ifc')) + self.psets = {} + self.qtos = {} + self.load() + + def load(self): + for product in self.products: + with open(os.path.join(self.schema_dir, f'{product}_IFC4.json')) as f: + setattr(self, product, json.load(f)) + self.elements.update(getattr(self, product)) + + with open(os.path.join(self.schema_dir, 'ifc_types_IFC4.json')) as f: + self.type_map = json.load(f) + + for property in self.property_file.by_type('IfcPropertySetTemplate'): + if property.Name[0:4] == 'Qto_': + # self.qtos.append({ }) + pass + else: + self.psets[property.Name] = { + 'HasPropertyTemplates': {p.Name: p for p in property.HasPropertyTemplates}} diff --git a/src/ifcblenderexport/blenderbim/schema/ifc_elements_IFC4.json b/src/ifcblenderexport/blenderbim/schema/IfcElement_IFC4.json similarity index 96% rename from src/ifcblenderexport/blenderbim/schema/ifc_elements_IFC4.json rename to src/ifcblenderexport/blenderbim/schema/IfcElement_IFC4.json index 96b22c363d..eb93857314 100644 --- a/src/ifcblenderexport/blenderbim/schema/ifc_elements_IFC4.json +++ b/src/ifcblenderexport/blenderbim/schema/IfcElement_IFC4.json @@ -834,110 +834,6 @@ ], "parent": "IfcEnergyConversionDevice" }, - "IfcBuilding": { - "attributes": [ - { - "enum_values": [], - "type": "IfcGloballyUniqueId", - "name": "GlobalId", - "is_enum": false - }, - { - "enum_values": [], - "type": "IfcLabel", - "name": "Name", - "is_enum": false - }, - { - "enum_values": [], - "type": "IfcText", - "name": "Description", - "is_enum": false - }, - { - "enum_values": [], - "type": "IfcLabel", - "name": "ObjectType", - "is_enum": false - }, - { - "enum_values": [], - "type": "IfcLabel", - "name": "LongName", - "is_enum": false - }, - { - "enum_values": [ - "COMPLEX", - "ELEMENT", - "PARTIAL" - ], - "type": "IfcElementCompositionEnum", - "name": "CompositionType", - "is_enum": true - }, - { - "enum_values": [], - "type": "IfcLengthMeasure", - "name": "ElevationOfRefHeight", - "is_enum": false - }, - { - "enum_values": [], - "type": "IfcLengthMeasure", - "name": "ElevationOfTerrain", - "is_enum": false - } - ], - "is_abstract": false, - "complex_attributes": [ - { - "type": "IfcOwnerHistory", - "name": "OwnerHistory" - }, - { - "type": "IfcRelNests", - "name": "IsNestedBy" - }, - { - "type": "IfcRelAggregates", - "name": "IsDecomposedBy" - }, - { - "type": "IfcRelDefinesByObject", - "name": "IsDeclaredBy" - }, - { - "type": "IfcRelDefinesByType", - "name": "IsTypedBy" - }, - { - "type": "IfcRelDefinesByProperties", - "name": "IsDefinedBy" - }, - { - "type": "IfcObjectPlacement", - "name": "ObjectPlacement" - }, - { - "type": "IfcProductRepresentation", - "name": "Representation" - }, - { - "type": "IfcRelContainedInSpatialStructure", - "name": "ContainsElements" - }, - { - "type": "IfcRelReferencedInSpatialStructure", - "name": "ReferencesElements" - }, - { - "type": "IfcPostalAddress", - "name": "BuildingAddress" - } - ], - "parent": "IfcSpatialStructureElement" - }, "IfcBuildingElement": { "attributes": [ { @@ -1197,100 +1093,6 @@ ], "parent": "IfcBuildingElement" }, - "IfcBuildingStorey": { - "attributes": [ - { - "enum_values": [], - "type": "IfcGloballyUniqueId", - "name": "GlobalId", - "is_enum": false - }, - { - "enum_values": [], - "type": "IfcLabel", - "name": "Name", - "is_enum": false - }, - { - "enum_values": [], - "type": "IfcText", - "name": "Description", - "is_enum": false - }, - { - "enum_values": [], - "type": "IfcLabel", - "name": "ObjectType", - "is_enum": false - }, - { - "enum_values": [], - "type": "IfcLabel", - "name": "LongName", - "is_enum": false - }, - { - "enum_values": [ - "COMPLEX", - "ELEMENT", - "PARTIAL" - ], - "type": "IfcElementCompositionEnum", - "name": "CompositionType", - "is_enum": true - }, - { - "enum_values": [], - "type": "IfcLengthMeasure", - "name": "Elevation", - "is_enum": false - } - ], - "is_abstract": false, - "complex_attributes": [ - { - "type": "IfcOwnerHistory", - "name": "OwnerHistory" - }, - { - "type": "IfcRelNests", - "name": "IsNestedBy" - }, - { - "type": "IfcRelAggregates", - "name": "IsDecomposedBy" - }, - { - "type": "IfcRelDefinesByObject", - "name": "IsDeclaredBy" - }, - { - "type": "IfcRelDefinesByType", - "name": "IsTypedBy" - }, - { - "type": "IfcRelDefinesByProperties", - "name": "IsDefinedBy" - }, - { - "type": "IfcObjectPlacement", - "name": "ObjectPlacement" - }, - { - "type": "IfcProductRepresentation", - "name": "Representation" - }, - { - "type": "IfcRelContainedInSpatialStructure", - "name": "ContainsElements" - }, - { - "type": "IfcRelReferencedInSpatialStructure", - "name": "ReferencesElements" - } - ], - "parent": "IfcSpatialStructureElement" - }, "IfcBurner": { "attributes": [ { @@ -10046,122 +9848,6 @@ ], "parent": "IfcBuildingElement" }, - "IfcSite": { - "attributes": [ - { - "enum_values": [], - "type": "IfcGloballyUniqueId", - "name": "GlobalId", - "is_enum": false - }, - { - "enum_values": [], - "type": "IfcLabel", - "name": "Name", - "is_enum": false - }, - { - "enum_values": [], - "type": "IfcText", - "name": "Description", - "is_enum": false - }, - { - "enum_values": [], - "type": "IfcLabel", - "name": "ObjectType", - "is_enum": false - }, - { - "enum_values": [], - "type": "IfcLabel", - "name": "LongName", - "is_enum": false - }, - { - "enum_values": [ - "COMPLEX", - "ELEMENT", - "PARTIAL" - ], - "type": "IfcElementCompositionEnum", - "name": "CompositionType", - "is_enum": true - }, - { - "enum_values": [], - "type": "List-IfcCompoundPlaneAngleMeasure", - "name": "RefLatitude", - "is_enum": false - }, - { - "enum_values": [], - "type": "List-IfcCompoundPlaneAngleMeasure", - "name": "RefLongitude", - "is_enum": false - }, - { - "enum_values": [], - "type": "IfcLengthMeasure", - "name": "RefElevation", - "is_enum": false - }, - { - "enum_values": [], - "type": "IfcLabel", - "name": "LandTitleNumber", - "is_enum": false - } - ], - "is_abstract": false, - "complex_attributes": [ - { - "type": "IfcOwnerHistory", - "name": "OwnerHistory" - }, - { - "type": "IfcRelNests", - "name": "IsNestedBy" - }, - { - "type": "IfcRelAggregates", - "name": "IsDecomposedBy" - }, - { - "type": "IfcRelDefinesByObject", - "name": "IsDeclaredBy" - }, - { - "type": "IfcRelDefinesByType", - "name": "IsTypedBy" - }, - { - "type": "IfcRelDefinesByProperties", - "name": "IsDefinedBy" - }, - { - "type": "IfcObjectPlacement", - "name": "ObjectPlacement" - }, - { - "type": "IfcProductRepresentation", - "name": "Representation" - }, - { - "type": "IfcRelContainedInSpatialStructure", - "name": "ContainsElements" - }, - { - "type": "IfcRelReferencedInSpatialStructure", - "name": "ReferencesElements" - }, - { - "type": "IfcPostalAddress", - "name": "SiteAddress" - } - ], - "parent": "IfcSpatialStructureElement" - }, "IfcSlab": { "attributes": [ { @@ -10524,114 +10210,6 @@ ], "parent": "IfcEnergyConversionDevice" }, - "IfcSpace": { - "attributes": [ - { - "enum_values": [], - "type": "IfcGloballyUniqueId", - "name": "GlobalId", - "is_enum": false - }, - { - "enum_values": [], - "type": "IfcLabel", - "name": "Name", - "is_enum": false - }, - { - "enum_values": [], - "type": "IfcText", - "name": "Description", - "is_enum": false - }, - { - "enum_values": [], - "type": "IfcLabel", - "name": "ObjectType", - "is_enum": false - }, - { - "enum_values": [], - "type": "IfcLabel", - "name": "LongName", - "is_enum": false - }, - { - "enum_values": [ - "COMPLEX", - "ELEMENT", - "PARTIAL" - ], - "type": "IfcElementCompositionEnum", - "name": "CompositionType", - "is_enum": true - }, - { - "enum_values": [ - "SPACE", - "PARKING", - "GFA", - "INTERNAL", - "EXTERNAL", - "USERDEFINED", - "NOTDEFINED" - ], - "type": "IfcSpaceTypeEnum", - "name": "PredefinedType", - "is_enum": true - }, - { - "enum_values": [], - "type": "IfcLengthMeasure", - "name": "ElevationWithFlooring", - "is_enum": false - } - ], - "is_abstract": false, - "complex_attributes": [ - { - "type": "IfcOwnerHistory", - "name": "OwnerHistory" - }, - { - "type": "IfcRelNests", - "name": "IsNestedBy" - }, - { - "type": "IfcRelAggregates", - "name": "IsDecomposedBy" - }, - { - "type": "IfcRelDefinesByObject", - "name": "IsDeclaredBy" - }, - { - "type": "IfcRelDefinesByType", - "name": "IsTypedBy" - }, - { - "type": "IfcRelDefinesByProperties", - "name": "IsDefinedBy" - }, - { - "type": "IfcObjectPlacement", - "name": "ObjectPlacement" - }, - { - "type": "IfcProductRepresentation", - "name": "Representation" - }, - { - "type": "IfcRelContainedInSpatialStructure", - "name": "ContainsElements" - }, - { - "type": "IfcRelReferencedInSpatialStructure", - "name": "ReferencesElements" - } - ], - "parent": "IfcSpatialStructureElement" - }, "IfcSpaceHeater": { "attributes": [ { diff --git a/src/ifcblenderexport/blenderbim/schema/IfcSpatialStructureElement_IFC4.json b/src/ifcblenderexport/blenderbim/schema/IfcSpatialStructureElement_IFC4.json new file mode 100644 index 0000000000..2d40d40c05 --- /dev/null +++ b/src/ifcblenderexport/blenderbim/schema/IfcSpatialStructureElement_IFC4.json @@ -0,0 +1,424 @@ +{ + "IfcBuilding": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "LongName", + "is_enum": false + }, + { + "enum_values": [ + "COMPLEX", + "ELEMENT", + "PARTIAL" + ], + "type": "IfcElementCompositionEnum", + "name": "CompositionType", + "is_enum": true + }, + { + "enum_values": [], + "type": "IfcLengthMeasure", + "name": "ElevationOfRefHeight", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLengthMeasure", + "name": "ElevationOfTerrain", + "is_enum": false + } + ], + "is_abstract": false, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + }, + { + "type": "IfcRelContainedInSpatialStructure", + "name": "ContainsElements" + }, + { + "type": "IfcRelReferencedInSpatialStructure", + "name": "ReferencesElements" + }, + { + "type": "IfcPostalAddress", + "name": "BuildingAddress" + } + ], + "parent": "IfcSpatialStructureElement" + }, + "IfcBuildingStorey": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "LongName", + "is_enum": false + }, + { + "enum_values": [ + "COMPLEX", + "ELEMENT", + "PARTIAL" + ], + "type": "IfcElementCompositionEnum", + "name": "CompositionType", + "is_enum": true + }, + { + "enum_values": [], + "type": "IfcLengthMeasure", + "name": "Elevation", + "is_enum": false + } + ], + "is_abstract": false, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + }, + { + "type": "IfcRelContainedInSpatialStructure", + "name": "ContainsElements" + }, + { + "type": "IfcRelReferencedInSpatialStructure", + "name": "ReferencesElements" + } + ], + "parent": "IfcSpatialStructureElement" + }, + "IfcSite": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "LongName", + "is_enum": false + }, + { + "enum_values": [ + "COMPLEX", + "ELEMENT", + "PARTIAL" + ], + "type": "IfcElementCompositionEnum", + "name": "CompositionType", + "is_enum": true + }, + { + "enum_values": [], + "type": "List-IfcCompoundPlaneAngleMeasure", + "name": "RefLatitude", + "is_enum": false + }, + { + "enum_values": [], + "type": "List-IfcCompoundPlaneAngleMeasure", + "name": "RefLongitude", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLengthMeasure", + "name": "RefElevation", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "LandTitleNumber", + "is_enum": false + } + ], + "is_abstract": false, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + }, + { + "type": "IfcRelContainedInSpatialStructure", + "name": "ContainsElements" + }, + { + "type": "IfcRelReferencedInSpatialStructure", + "name": "ReferencesElements" + }, + { + "type": "IfcPostalAddress", + "name": "SiteAddress" + } + ], + "parent": "IfcSpatialStructureElement" + }, + "IfcSpace": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "LongName", + "is_enum": false + }, + { + "enum_values": [ + "COMPLEX", + "ELEMENT", + "PARTIAL" + ], + "type": "IfcElementCompositionEnum", + "name": "CompositionType", + "is_enum": true + }, + { + "enum_values": [ + "SPACE", + "PARKING", + "GFA", + "INTERNAL", + "EXTERNAL", + "USERDEFINED", + "NOTDEFINED" + ], + "type": "IfcSpaceTypeEnum", + "name": "PredefinedType", + "is_enum": true + }, + { + "enum_values": [], + "type": "IfcLengthMeasure", + "name": "ElevationWithFlooring", + "is_enum": false + } + ], + "is_abstract": false, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + }, + { + "type": "IfcRelContainedInSpatialStructure", + "name": "ContainsElements" + }, + { + "type": "IfcRelReferencedInSpatialStructure", + "name": "ReferencesElements" + } + ], + "parent": "IfcSpatialStructureElement" + } +} \ No newline at end of file diff --git a/src/ifcblenderexport/blenderbim/schema/IfcStructural_IFC4.json b/src/ifcblenderexport/blenderbim/schema/IfcStructural_IFC4.json new file mode 100644 index 0000000000..e71b59915c --- /dev/null +++ b/src/ifcblenderexport/blenderbim/schema/IfcStructural_IFC4.json @@ -0,0 +1,1603 @@ +{ + "IfcStructuralAction": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + }, + { + "enum_values": [ + "GLOBAL_COORDS", + "LOCAL_COORDS" + ], + "type": "IfcGlobalOrLocalEnum", + "name": "GlobalOrLocal", + "is_enum": true + }, + { + "enum_values": [], + "type": "IfcBoolean", + "name": "DestabilizingLoad", + "is_enum": false + } + ], + "is_abstract": true, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + }, + { + "type": "IfcStructuralLoad", + "name": "AppliedLoad" + } + ], + "parent": "IfcStructuralActivity" + }, + "IfcStructuralConnection": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + } + ], + "is_abstract": true, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + }, + { + "type": "IfcBoundaryCondition", + "name": "AppliedCondition" + } + ], + "parent": "IfcStructuralItem" + }, + "IfcStructuralCurveAction": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + }, + { + "enum_values": [ + "GLOBAL_COORDS", + "LOCAL_COORDS" + ], + "type": "IfcGlobalOrLocalEnum", + "name": "GlobalOrLocal", + "is_enum": true + }, + { + "enum_values": [], + "type": "IfcBoolean", + "name": "DestabilizingLoad", + "is_enum": false + }, + { + "enum_values": [ + "PROJECTED_LENGTH", + "TRUE_LENGTH" + ], + "type": "IfcProjectedOrTrueLengthEnum", + "name": "ProjectedOrTrue", + "is_enum": true + }, + { + "enum_values": [ + "CONST", + "LINEAR", + "POLYGONAL", + "EQUIDISTANT", + "SINUS", + "PARABOLA", + "DISCRETE", + "USERDEFINED", + "NOTDEFINED" + ], + "type": "IfcStructuralCurveActivityTypeEnum", + "name": "PredefinedType", + "is_enum": true + } + ], + "is_abstract": false, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + }, + { + "type": "IfcStructuralLoad", + "name": "AppliedLoad" + } + ], + "parent": "IfcStructuralAction" + }, + "IfcStructuralCurveConnection": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + } + ], + "is_abstract": false, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + }, + { + "type": "IfcBoundaryCondition", + "name": "AppliedCondition" + }, + { + "type": "IfcDirection", + "name": "Axis" + } + ], + "parent": "IfcStructuralConnection" + }, + "IfcStructuralCurveMember": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + }, + { + "enum_values": [ + "RIGID_JOINED_MEMBER", + "PIN_JOINED_MEMBER", + "CABLE", + "TENSION_MEMBER", + "COMPRESSION_MEMBER", + "USERDEFINED", + "NOTDEFINED" + ], + "type": "IfcStructuralCurveMemberTypeEnum", + "name": "PredefinedType", + "is_enum": true + } + ], + "is_abstract": false, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + }, + { + "type": "IfcDirection", + "name": "Axis" + } + ], + "parent": "IfcStructuralMember" + }, + "IfcStructuralCurveMemberVarying": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + }, + { + "enum_values": [ + "RIGID_JOINED_MEMBER", + "PIN_JOINED_MEMBER", + "CABLE", + "TENSION_MEMBER", + "COMPRESSION_MEMBER", + "USERDEFINED", + "NOTDEFINED" + ], + "type": "IfcStructuralCurveMemberTypeEnum", + "name": "PredefinedType", + "is_enum": true + } + ], + "is_abstract": false, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + }, + { + "type": "IfcDirection", + "name": "Axis" + } + ], + "parent": "IfcStructuralCurveMember" + }, + "IfcStructuralCurveReaction": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + }, + { + "enum_values": [ + "GLOBAL_COORDS", + "LOCAL_COORDS" + ], + "type": "IfcGlobalOrLocalEnum", + "name": "GlobalOrLocal", + "is_enum": true + }, + { + "enum_values": [ + "CONST", + "LINEAR", + "POLYGONAL", + "EQUIDISTANT", + "SINUS", + "PARABOLA", + "DISCRETE", + "USERDEFINED", + "NOTDEFINED" + ], + "type": "IfcStructuralCurveActivityTypeEnum", + "name": "PredefinedType", + "is_enum": true + } + ], + "is_abstract": false, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + }, + { + "type": "IfcStructuralLoad", + "name": "AppliedLoad" + } + ], + "parent": "IfcStructuralReaction" + }, + "IfcStructuralLinearAction": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + }, + { + "enum_values": [ + "GLOBAL_COORDS", + "LOCAL_COORDS" + ], + "type": "IfcGlobalOrLocalEnum", + "name": "GlobalOrLocal", + "is_enum": true + }, + { + "enum_values": [], + "type": "IfcBoolean", + "name": "DestabilizingLoad", + "is_enum": false + }, + { + "enum_values": [ + "PROJECTED_LENGTH", + "TRUE_LENGTH" + ], + "type": "IfcProjectedOrTrueLengthEnum", + "name": "ProjectedOrTrue", + "is_enum": true + }, + { + "enum_values": [ + "CONST", + "LINEAR", + "POLYGONAL", + "EQUIDISTANT", + "SINUS", + "PARABOLA", + "DISCRETE", + "USERDEFINED", + "NOTDEFINED" + ], + "type": "IfcStructuralCurveActivityTypeEnum", + "name": "PredefinedType", + "is_enum": true + } + ], + "is_abstract": false, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + }, + { + "type": "IfcStructuralLoad", + "name": "AppliedLoad" + } + ], + "parent": "IfcStructuralCurveAction" + }, + "IfcStructuralMember": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + } + ], + "is_abstract": true, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + } + ], + "parent": "IfcStructuralItem" + }, + "IfcStructuralPlanarAction": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + }, + { + "enum_values": [ + "GLOBAL_COORDS", + "LOCAL_COORDS" + ], + "type": "IfcGlobalOrLocalEnum", + "name": "GlobalOrLocal", + "is_enum": true + }, + { + "enum_values": [], + "type": "IfcBoolean", + "name": "DestabilizingLoad", + "is_enum": false + }, + { + "enum_values": [ + "PROJECTED_LENGTH", + "TRUE_LENGTH" + ], + "type": "IfcProjectedOrTrueLengthEnum", + "name": "ProjectedOrTrue", + "is_enum": true + }, + { + "enum_values": [ + "CONST", + "BILINEAR", + "DISCRETE", + "ISOCONTOUR", + "USERDEFINED", + "NOTDEFINED" + ], + "type": "IfcStructuralSurfaceActivityTypeEnum", + "name": "PredefinedType", + "is_enum": true + } + ], + "is_abstract": false, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + }, + { + "type": "IfcStructuralLoad", + "name": "AppliedLoad" + } + ], + "parent": "IfcStructuralSurfaceAction" + }, + "IfcStructuralPointAction": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + }, + { + "enum_values": [ + "GLOBAL_COORDS", + "LOCAL_COORDS" + ], + "type": "IfcGlobalOrLocalEnum", + "name": "GlobalOrLocal", + "is_enum": true + }, + { + "enum_values": [], + "type": "IfcBoolean", + "name": "DestabilizingLoad", + "is_enum": false + } + ], + "is_abstract": false, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + }, + { + "type": "IfcStructuralLoad", + "name": "AppliedLoad" + } + ], + "parent": "IfcStructuralAction" + }, + "IfcStructuralPointConnection": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + } + ], + "is_abstract": false, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + }, + { + "type": "IfcBoundaryCondition", + "name": "AppliedCondition" + }, + { + "type": "IfcAxis2Placement3D", + "name": "ConditionCoordinateSystem" + } + ], + "parent": "IfcStructuralConnection" + }, + "IfcStructuralPointReaction": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + }, + { + "enum_values": [ + "GLOBAL_COORDS", + "LOCAL_COORDS" + ], + "type": "IfcGlobalOrLocalEnum", + "name": "GlobalOrLocal", + "is_enum": true + } + ], + "is_abstract": false, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + }, + { + "type": "IfcStructuralLoad", + "name": "AppliedLoad" + } + ], + "parent": "IfcStructuralReaction" + }, + "IfcStructuralReaction": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + }, + { + "enum_values": [ + "GLOBAL_COORDS", + "LOCAL_COORDS" + ], + "type": "IfcGlobalOrLocalEnum", + "name": "GlobalOrLocal", + "is_enum": true + } + ], + "is_abstract": true, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + }, + { + "type": "IfcStructuralLoad", + "name": "AppliedLoad" + } + ], + "parent": "IfcStructuralActivity" + }, + "IfcStructuralSurfaceAction": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + }, + { + "enum_values": [ + "GLOBAL_COORDS", + "LOCAL_COORDS" + ], + "type": "IfcGlobalOrLocalEnum", + "name": "GlobalOrLocal", + "is_enum": true + }, + { + "enum_values": [], + "type": "IfcBoolean", + "name": "DestabilizingLoad", + "is_enum": false + }, + { + "enum_values": [ + "PROJECTED_LENGTH", + "TRUE_LENGTH" + ], + "type": "IfcProjectedOrTrueLengthEnum", + "name": "ProjectedOrTrue", + "is_enum": true + }, + { + "enum_values": [ + "CONST", + "BILINEAR", + "DISCRETE", + "ISOCONTOUR", + "USERDEFINED", + "NOTDEFINED" + ], + "type": "IfcStructuralSurfaceActivityTypeEnum", + "name": "PredefinedType", + "is_enum": true + } + ], + "is_abstract": false, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + }, + { + "type": "IfcStructuralLoad", + "name": "AppliedLoad" + } + ], + "parent": "IfcStructuralAction" + }, + "IfcStructuralSurfaceConnection": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + } + ], + "is_abstract": false, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + }, + { + "type": "IfcBoundaryCondition", + "name": "AppliedCondition" + } + ], + "parent": "IfcStructuralConnection" + }, + "IfcStructuralSurfaceMember": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + }, + { + "enum_values": [ + "BENDING_ELEMENT", + "MEMBRANE_ELEMENT", + "SHELL", + "USERDEFINED", + "NOTDEFINED" + ], + "type": "IfcStructuralSurfaceMemberTypeEnum", + "name": "PredefinedType", + "is_enum": true + }, + { + "enum_values": [], + "type": "IfcPositiveLengthMeasure", + "name": "Thickness", + "is_enum": false + } + ], + "is_abstract": false, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + } + ], + "parent": "IfcStructuralMember" + }, + "IfcStructuralSurfaceMemberVarying": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + }, + { + "enum_values": [ + "BENDING_ELEMENT", + "MEMBRANE_ELEMENT", + "SHELL", + "USERDEFINED", + "NOTDEFINED" + ], + "type": "IfcStructuralSurfaceMemberTypeEnum", + "name": "PredefinedType", + "is_enum": true + }, + { + "enum_values": [], + "type": "IfcPositiveLengthMeasure", + "name": "Thickness", + "is_enum": false + } + ], + "is_abstract": false, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + } + ], + "parent": "IfcStructuralSurfaceMember" + }, + "IfcStructuralSurfaceReaction": { + "attributes": [ + { + "enum_values": [], + "type": "IfcGloballyUniqueId", + "name": "GlobalId", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "Name", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcText", + "name": "Description", + "is_enum": false + }, + { + "enum_values": [], + "type": "IfcLabel", + "name": "ObjectType", + "is_enum": false + }, + { + "enum_values": [ + "GLOBAL_COORDS", + "LOCAL_COORDS" + ], + "type": "IfcGlobalOrLocalEnum", + "name": "GlobalOrLocal", + "is_enum": true + }, + { + "enum_values": [ + "CONST", + "BILINEAR", + "DISCRETE", + "ISOCONTOUR", + "USERDEFINED", + "NOTDEFINED" + ], + "type": "IfcStructuralSurfaceActivityTypeEnum", + "name": "PredefinedType", + "is_enum": true + } + ], + "is_abstract": false, + "complex_attributes": [ + { + "type": "IfcOwnerHistory", + "name": "OwnerHistory" + }, + { + "type": "IfcRelNests", + "name": "IsNestedBy" + }, + { + "type": "IfcRelAggregates", + "name": "IsDecomposedBy" + }, + { + "type": "IfcRelDefinesByObject", + "name": "IsDeclaredBy" + }, + { + "type": "IfcRelDefinesByType", + "name": "IsTypedBy" + }, + { + "type": "IfcRelDefinesByProperties", + "name": "IsDefinedBy" + }, + { + "type": "IfcObjectPlacement", + "name": "ObjectPlacement" + }, + { + "type": "IfcProductRepresentation", + "name": "Representation" + }, + { + "type": "IfcStructuralLoad", + "name": "AppliedLoad" + } + ], + "parent": "IfcStructuralReaction" + } +} \ No newline at end of file diff --git a/src/ifcblenderexport/blenderbim/ui.py b/src/ifcblenderexport/blenderbim/ui.py index bc585f6483..851a595ed1 100644 --- a/src/ifcblenderexport/blenderbim/ui.py +++ b/src/ifcblenderexport/blenderbim/ui.py @@ -352,6 +352,8 @@ class BIM_PT_bim(Panel): layout.label(text="IFC Categorisation:") + row = layout.row() + row.prop(bim_properties, "ifc_product") row = layout.row() row.prop(bim_properties, "ifc_class") row = layout.row() diff --git a/src/ifcblenderexport/getIfcElements.py b/src/ifcblenderexport/getIfcElements.py index 1d12c2e53f..0b5528b63c 100644 --- a/src/ifcblenderexport/getIfcElements.py +++ b/src/ifcblenderexport/getIfcElements.py @@ -12,7 +12,9 @@ class IFC4Extractor: self.ns = {'xs': 'http://www.w3.org/2001/XMLSchema'} self.elements = {} #self.filters = ['IfcBuildingElement'] - self.filters = ['IfcElement', 'IfcSpatialStructureElement'] + #self.filters = ['IfcElement'] + #self.filters = ['IfcSpatialStructureElement'] + self.filters = ['IfcStructuralActivity', 'IfcStructuralItem'] self.filtered_elements = {} def extract(self):