From 839b5a269937c385777be30bba3160d62a7ca4ca Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 26 Jun 2019 13:50:46 +0200 Subject: [PATCH] Minor cleanups, 4x1 and 4x2 geom lib, granular schema macros --- cmake/CMakeLists.txt | 64 +- src/ifcexpressparser/bootstrap.py | 4 +- .../{enum_header.py => definitions.py} | 45 +- src/ifcexpressparser/templates.py | 2 - src/ifcgeom/IfcGeom.h | 5 +- src/ifcgeom/IfcGeomCurves.cpp | 8 +- src/ifcgeom/IfcGeomFaces.cpp | 34 +- src/ifcgeom/IfcGeomFunctions.cpp | 8 +- src/ifcgeom/IfcGeomShapes.cpp | 62 +- src/ifcgeom/IfcGeomWires.cpp | 2 +- src/ifcgeom/IfcRegister.h | 14 +- src/ifcparse/Argument.h | 10 - src/ifcparse/Ifc2x3-definitions.h | 2925 +++++++++++++ src/ifcparse/Ifc2x3.h | 637 ++- src/ifcparse/Ifc2x3enum.h | 35 - src/ifcparse/Ifc4-definitions.h | 3508 ++++++++++++++++ src/ifcparse/Ifc4.h | 875 ++-- src/ifcparse/Ifc4enum.h | 35 - src/ifcparse/Ifc4x1-definitions.h | 3607 ++++++++++++++++ src/ifcparse/Ifc4x1-schema.cpp | 2 +- src/ifcparse/Ifc4x1.cpp | 2 +- src/ifcparse/Ifc4x1.h | 5 +- src/ifcparse/Ifc4x1enum.h | 35 - src/ifcparse/Ifc4x2-definitions.h | 3647 +++++++++++++++++ src/ifcparse/Ifc4x2-schema.cpp | 1780 ++++---- src/ifcparse/Ifc4x2.cpp | 2 +- src/ifcparse/Ifc4x2.h | 877 ++-- src/ifcparse/Ifc4x2enum.h | 35 - src/ifcparse/IfcBaseClass.h | 10 - src/ifcparse/IfcEntityDescriptor.h | 137 - src/ifcparse/IfcEntityInstanceData.h | 1 + src/ifcparse/IfcSIPrefix.cpp | 4 + src/ifcparse/IfcSchema.cpp | 5 +- src/ifcparse/IfcSchema.h | 12 - src/ifcparse/parse_ifcxml.cpp | 23 +- .../schema_dependent/XmlSerializer.cpp | 2 +- 36 files changed, 15869 insertions(+), 2590 deletions(-) rename src/ifcexpressparser/{enum_header.py => definitions.py} (54%) create mode 100644 src/ifcparse/Ifc2x3-definitions.h delete mode 100644 src/ifcparse/Ifc2x3enum.h create mode 100644 src/ifcparse/Ifc4-definitions.h delete mode 100644 src/ifcparse/Ifc4enum.h create mode 100644 src/ifcparse/Ifc4x1-definitions.h delete mode 100644 src/ifcparse/Ifc4x1enum.h create mode 100644 src/ifcparse/Ifc4x2-definitions.h delete mode 100644 src/ifcparse/Ifc4x2enum.h delete mode 100644 src/ifcparse/IfcEntityDescriptor.h diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 12af5ea0bb..070f345e57 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -453,14 +453,18 @@ function(files_for_ifc_version IFC_VERSION RESULT_NAME) ) endfunction() +set(SCHEMA_VERSIONS "2x3" "4" "4x1" "4x2") + if(COMPILE_SCHEMA) + # @todo, this appears to be untested at the moment + find_package(PythonInterp) IF(NOT PYTHONINTERP_FOUND) MESSAGE(FATAL_ERROR "A Python interpreter is necessary when COMPILE_SCHEMA is enabled. Disable COMPILE_SCHEMA or fix Python paths to proceed.") ENDIF() - set(IFC_RELEASE_NOT_USED "2x3" "4") + set(IFC_RELEASE_NOT_USED ${SCHEMA_VERSIONS}) # Install pyparsing if necessary execute_process(COMMAND ${PYTHON_EXECUTABLE} -m pip freeze OUTPUT_VARIABLE PYTHON_PACKAGE_LIST) @@ -501,13 +505,11 @@ if(COMPILE_SCHEMA) OUTPUT_VARIABLE COMPILED_SCHEMA_NAME) # Prevent the schema that had just been compiled from being excluded - if("${COMPILED_SCHEMA_NAME}" STREQUAL "IFC2X3") - list(REMOVE_ITEM IFC_RELEASE_NOT_USED "2x3") - add_definitions(-DUSE_IFC2x3) - elseif("${COMPILED_SCHEMA_NAME}" STREQUAL "IFC4") - list(REMOVE_ITEM IFC_RELEASE_NOT_USED "4") - add_definitions(-DUSE_IFC4) - endif() + foreach(s ${SCHEMA_VERSIONS}) + if("${COMPILED_SCHEMA_NAME}" STREQUAL "${s}") + list(REMOVE_ITEM IFC_RELEASE_NOT_USED "${s}") + endif() + endforeach() endif() # Boost >= 1.58 requires BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE to build on some Linux distros. @@ -517,10 +519,16 @@ endif() set(IFCOPENSHELL_LIBRARIES IfcParse) if (BUILD_IFCGEOM) -set(IFCOPENSHELL_LIBRARIES ${IFCOPENSHELL_LIBRARIES} IfcGeom_ifc2x3 IfcGeom_ifc4 IfcGeom IfcGeom_ifc2x3 IfcGeom_ifc4 IfcGeom) + foreach(s ${SCHEMA_VERSIONS}) + set(IFCGEOM_SCHEMA_LIBRARIES ${IFCGEOM_SCHEMA_LIBRARIES} IfcGeom_ifc${s}) + endforeach() + set(IFCOPENSHELL_LIBRARIES ${IFCOPENSHELL_LIBRARIES} IfcGeom ${IFCGEOM_SCHEMA_LIBRARIES} IfcGeom ${IFCGEOM_SCHEMA_LIBRARIES}) endif() if (BUILD_CONVERT) -set(IFCOPENSHELL_LIBRARIES ${IFCOPENSHELL_LIBRARIES} Serializers_ifc2x3 Serializers_ifc4 Serializers Serializers_ifc2x3 Serializers_ifc4 Serializers) + foreach(s ${SCHEMA_VERSIONS}) + set(SERIALIZER_SCHEMA_LIBRARIES ${SERIALIZER_SCHEMA_LIBRARIES} Serializers_ifc${s}) + endforeach() + set(IFCOPENSHELL_LIBRARIES ${IFCOPENSHELL_LIBRARIES} Serializers ${SERIALIZER_SCHEMA_LIBRARIES}) endif() # IfcParse @@ -540,15 +548,11 @@ file(GLOB IFCGEOM_H_FILES ../src/ifcgeom/*.h) file(GLOB IFCGEOM_CPP_FILES ../src/ifcgeom/*.cpp) set(IFCGEOM_FILES ${IFCGEOM_CPP_FILES} ${IFCGEOM_H_FILES}) -add_library(IfcGeom_ifc2x3 STATIC ${IFCGEOM_FILES}) -add_library(IfcGeom_ifc4 STATIC ${IFCGEOM_FILES}) - -set_target_properties(IfcGeom_ifc2x3 PROPERTIES COMPILE_FLAGS "-DIFC_GEOM_EXPORTS -DIfcSchema=Ifc2x3") -# TODO: Detect based on IfcSchema -set_target_properties(IfcGeom_ifc4 PROPERTIES COMPILE_FLAGS "-DIFC_GEOM_EXPORTS -DIfcSchema=Ifc4 -DUSE_IFC4") - -TARGET_LINK_LIBRARIES(IfcGeom_ifc2x3 IfcParse ${OPENCASCADE_LIBRARIES}) -TARGET_LINK_LIBRARIES(IfcGeom_ifc4 IfcParse ${OPENCASCADE_LIBRARIES}) +foreach(s ${SCHEMA_VERSIONS}) + add_library(IfcGeom_ifc${s} STATIC ${IFCGEOM_FILES}) + set_target_properties(IfcGeom_ifc${s} PROPERTIES COMPILE_FLAGS "-DIFC_GEOM_EXPORTS -DIfcSchema=Ifc${s}") + TARGET_LINK_LIBRARIES(IfcGeom_ifc${s} IfcParse ${OPENCASCADE_LIBRARIES}) +endforeach() # IfcGeom (schema agnostic) file(GLOB SCHEMA_AGNOSTIC_H_FILES ../src/ifcgeom_schema_agnostic/*.h) @@ -557,7 +561,7 @@ set(SCHEMA_AGNOSTIC_FILES ${SCHEMA_AGNOSTIC_H_FILES} ${SCHEMA_AGNOSTIC_CPP_FILES add_library(IfcGeom ${SCHEMA_AGNOSTIC_FILES}) set_target_properties(IfcGeom PROPERTIES COMPILE_FLAGS -DIFC_GEOM_EXPORTS) -TARGET_LINK_LIBRARIES(IfcGeom IfcGeom_ifc2x3 IfcGeom_ifc4) +TARGET_LINK_LIBRARIES(IfcGeom ${IFCGEOM_SCHEMA_LIBRARIES}) endif(BUILD_IFCGEOM) @@ -571,20 +575,16 @@ file(GLOB SERIALIZERS_S_H_FILES ../src/serializers/schema_dependent/*.h) file(GLOB SERIALIZERS_S_CPP_FILES ../src/serializers/schema_dependent/*.cpp) set(SERIALIZERS_S_FILES ${SERIALIZERS_S_H_FILES} ${SERIALIZERS_S_CPP_FILES}) -add_library(Serializers_ifc2x3 STATIC ${SERIALIZERS_S_FILES}) -add_library(Serializers_ifc4 STATIC ${SERIALIZERS_S_FILES}) - -set_target_properties(Serializers_ifc2x3 PROPERTIES COMPILE_FLAGS "-DIFC_GEOM_EXPORTS -DIfcSchema=Ifc2x3 ${CONVERT_PRECISION}") -# TODO: Detect based on IfcSchema -set_target_properties(Serializers_ifc4 PROPERTIES COMPILE_FLAGS "-DIFC_GEOM_EXPORTS -DIfcSchema=Ifc4 -DUSE_IFC4 ${CONVERT_PRECISION}") - -TARGET_LINK_LIBRARIES(Serializers_ifc2x3 IfcGeom ${OPENCASCADE_LIBRARIES}) -TARGET_LINK_LIBRARIES(Serializers_ifc4 IfcGeom ${OPENCASCADE_LIBRARIES}) +foreach(s ${SCHEMA_VERSIONS}) + add_library(Serializers_ifc${s} STATIC ${SERIALIZERS_S_FILES}) + set_target_properties(Serializers_ifc${s} PROPERTIES COMPILE_FLAGS "-DIFC_GEOM_EXPORTS -DIfcSchema=Ifc${s} ${CONVERT_PRECISION}") + TARGET_LINK_LIBRARIES(Serializers_ifc${s} IfcGeom ${OPENCASCADE_LIBRARIES}) +endforeach() add_library(Serializers ${SERIALIZERS_FILES}) set_target_properties(Serializers PROPERTIES COMPILE_FLAGS "-DIFC_GEOM_EXPORTS ${CONVERT_PRECISION}") -TARGET_LINK_LIBRARIES(Serializers Serializers_ifc2x3 Serializers_ifc4) +TARGET_LINK_LIBRARIES(Serializers ${SERIALIZER_SCHEMA_LIBRARIES}) # IfcConvert file(GLOB IFCCONVERT_CPP_FILES ../src/ifcconvert/*.cpp) @@ -663,7 +663,7 @@ INSTALL(FILES ${SCHEMA_AGNOSTIC_H_FILES} DESTINATION ${INCLUDEDIR}/ifcgeom_schema_agnostic ) -INSTALL(TARGETS IfcGeom_ifc2x3 IfcGeom_ifc4 IfcGeom +INSTALL(TARGETS ${IFCGEOM_SCHEMA_LIBRARIES} IfcGeom ARCHIVE DESTINATION ${LIBDIR} LIBRARY DESTINATION ${LIBDIR} RUNTIME DESTINATION ${BINDIR} @@ -671,7 +671,7 @@ INSTALL(TARGETS IfcGeom_ifc2x3 IfcGeom_ifc4 IfcGeom endif() if(BUILD_CONVERT) -INSTALL(TARGETS Serializers Serializers_ifc2x3 Serializers_ifc4 +INSTALL(TARGETS Serializers ${SERIALIZER_SCHEMA_LIBRARIES} ARCHIVE DESTINATION ${LIBDIR} LIBRARY DESTINATION ${LIBDIR} RUNTIME DESTINATION ${BINDIR} diff --git a/src/ifcexpressparser/bootstrap.py b/src/ifcexpressparser/bootstrap.py index 40992c6910..6c0c6ac5ee 100644 --- a/src/ifcexpressparser/bootstrap.py +++ b/src/ifcexpressparser/bootstrap.py @@ -199,14 +199,14 @@ else: pickle.dump(mapping, f, protocol=0) import header -import enum_header import implementation import schema_class +import definitions header.Header(mapping).emit() -enum_header.EnumHeader(mapping).emit() implementation.Implementation(mapping).emit() schema_class.SchemaClass(mapping).emit() +definitions.Definitions(mapping).emit() sys.stdout.write(schema.name) """%('\n '.join(statements))) diff --git a/src/ifcexpressparser/enum_header.py b/src/ifcexpressparser/definitions.py similarity index 54% rename from src/ifcexpressparser/enum_header.py rename to src/ifcexpressparser/definitions.py index eb382a3e7a..87c23c071f 100644 --- a/src/ifcexpressparser/enum_header.py +++ b/src/ifcexpressparser/definitions.py @@ -17,23 +17,46 @@ # # ############################################################################### -import templates +import operator + +import nodes import codegen -class EnumHeader(codegen.Base): +from collections import defaultdict + +class Definitions(codegen.Base): def __init__(self, mapping): - enumerable_types = sorted(set([name for name, type in mapping.schema.types.items()] + [name for name, type in mapping.schema.entities.items()])) - self.str = templates.enum_header % { - 'schema_name_upper' : mapping.schema.name.upper(), - 'schema_name' : mapping.schema.name.capitalize(), - 'types' : ', '.join(enumerable_types) - } + schema_name = mapping.schema.name + self.schema_name = schema_name_title = schema_name.capitalize() + + statements = [''] - self.schema_name = mapping.schema.name.capitalize() - - self.file_name = '%senum.h'%self.schema_name + def write_entity(schema_name, name, type): + attribute_names = list(map(lambda t: (t.name, t.optional), type.attributes)) + for attr, is_optional in attribute_names: + statements.append("#define SCHEMA_%(name)s_HAS_%(attr)s" % locals()) + if is_optional: + statements.append("#define SCHEMA_%(name)s_%(attr)s_IS_OPTIONAL" % locals()) + + def write(name): + statements.append("#define SCHEMA_HAS_%(name)s" % locals()) + fn = None + if mapping.schema.is_entity(name): + fn = write_entity + + if fn is not None: + decl = mapping.schema[name] + if isinstance(decl, nodes.TypeDeclaration): + decl = decl.type.type + fn(schema_name, name, decl) is not False + for name in mapping.schema: + write(name) + + self.str = "\n".join(statements) + "\n" + self.file_name = '%s-definitions.h' % self.schema_name + def __repr__(self): return self.str diff --git a/src/ifcexpressparser/templates.py b/src/ifcexpressparser/templates.py index 74f7c51c78..1fee20d5d3 100644 --- a/src/ifcexpressparser/templates.py +++ b/src/ifcexpressparser/templates.py @@ -34,8 +34,6 @@ header = """ #include "../ifcparse/IfcException.h" #include "../ifcparse/Argument.h" -#include "../ifcparse/%(schema_name)senum.h" - struct %(schema_name)s { static const IfcParse::schema_definition& get_schema(); diff --git a/src/ifcgeom/IfcGeom.h b/src/ifcgeom/IfcGeom.h index 8b9a0c5a66..75add079a1 100644 --- a/src/ifcgeom/IfcGeom.h +++ b/src/ifcgeom/IfcGeom.h @@ -80,6 +80,9 @@ if ( it != cache.T.end() ) { e = it->second; return true; } #define INCLUDE_PARENT_DIR(x) STRINGIFY(../ifcparse/x.h) #include INCLUDE_PARENT_DIR(IfcSchema) +#undef INCLUDE_PARENT_DIR +#define INCLUDE_PARENT_DIR(x) STRINGIFY(../ifcparse/x-definitions.h) +#include INCLUDE_PARENT_DIR(IfcSchema) namespace IfcGeom { class IFC_GEOM_API geometry_exception : public std::exception { @@ -357,7 +360,7 @@ public: const SurfaceStyle* get_style(const IfcSchema::IfcMaterial*); template std::pair _get_surface_style(const IfcSchema::IfcStyledItem* si) { -#ifdef USE_IFC4 +#ifdef SCHEMA_HAS_IfcStyleAssignmentSelect IfcEntityList::ptr style_assignments = si->Styles(); for (IfcEntityList::it kt = style_assignments->begin(); kt != style_assignments->end(); ++kt) { if (!(*kt)->declaration().is(IfcSchema::IfcPresentationStyleAssignment::Class())) { diff --git a/src/ifcgeom/IfcGeomCurves.cpp b/src/ifcgeom/IfcGeomCurves.cpp index d2acb0523b..ea6ec0b051 100644 --- a/src/ifcgeom/IfcGeomCurves.cpp +++ b/src/ifcgeom/IfcGeomCurves.cpp @@ -77,12 +77,12 @@ #include -#ifdef USE_IFC4 +#include "../ifcgeom/IfcGeom.h" + +#ifdef SCHEMA_HAS_IfcBSplineCurveWithKnots #include #endif -#include "../ifcgeom/IfcGeom.h" - #define Kernel MAKE_TYPE_NAME(Kernel) bool IfcGeom::Kernel::convert(const IfcSchema::IfcCircle* l, Handle(Geom_Curve)& curve) { @@ -143,7 +143,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcLine* l, Handle(Geom_Curve)& c return true; } -#ifdef USE_IFC4 +#ifdef SCHEMA_HAS_IfcBSplineCurveWithKnots bool IfcGeom::Kernel::convert(const IfcSchema::IfcBSplineCurveWithKnots* l, Handle(Geom_Curve)& curve) { const bool is_rational = l->declaration().is(IfcSchema::IfcRationalBSplineCurveWithKnots::Class()); diff --git a/src/ifcgeom/IfcGeomFaces.cpp b/src/ifcgeom/IfcGeomFaces.cpp index 73a8570479..2e8d49c1dc 100644 --- a/src/ifcgeom/IfcGeomFaces.cpp +++ b/src/ifcgeom/IfcGeomFaces.cpp @@ -97,15 +97,15 @@ #include -#ifdef USE_IFC4 +#include "../ifcgeom/IfcGeom.h" + +#ifdef SCHEMA_HAS_IfcBSplineSurfaceWithKnots #include #include #include #include #endif -#include "../ifcgeom/IfcGeom.h" - #define Kernel MAKE_TYPE_NAME(Kernel) namespace { @@ -472,7 +472,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcRectangleProfileDef* l, TopoDS gp_Trsf2d trsf2d; bool has_position = true; -#ifdef USE_IFC4 +#ifdef SCHEMA_IfcParameterizedProfileDef_Position_IS_OPTIONAL has_position = l->hasPosition(); #endif if (has_position) { @@ -495,7 +495,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcRoundedRectangleProfileDef* l, gp_Trsf2d trsf2d; bool has_position = true; -#ifdef USE_IFC4 +#ifdef SCHEMA_IfcParameterizedProfileDef_Position_IS_OPTIONAL has_position = l->hasPosition(); #endif if (has_position) { @@ -529,7 +529,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcRectangleHollowProfileDef* l, gp_Trsf2d trsf2d; bool has_position = true; -#ifdef USE_IFC4 +#ifdef SCHEMA_IfcParameterizedProfileDef_Position_IS_OPTIONAL has_position = l->hasPosition(); #endif if (has_position) { @@ -575,7 +575,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcTrapeziumProfileDef* l, TopoDS gp_Trsf2d trsf2d; bool has_position = true; -#ifdef USE_IFC4 +#ifdef SCHEMA_IfcParameterizedProfileDef_Position_IS_OPTIONAL has_position = l->hasPosition(); #endif if (has_position) { @@ -620,7 +620,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcIShapeProfileDef* l, TopoDS_Sh gp_Trsf2d trsf2d; bool has_position = true; -#ifdef USE_IFC4 +#ifdef SCHEMA_IfcParameterizedProfileDef_Position_IS_OPTIONAL has_position = l->hasPosition(); #endif if (has_position) { @@ -659,7 +659,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcZShapeProfileDef* l, TopoDS_Sh gp_Trsf2d trsf2d; bool has_position = true; -#ifdef USE_IFC4 +#ifdef SCHEMA_IfcParameterizedProfileDef_Position_IS_OPTIONAL has_position = l->hasPosition(); #endif if (has_position) { @@ -692,7 +692,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcCShapeProfileDef* l, TopoDS_Sh gp_Trsf2d trsf2d; bool has_position = true; -#ifdef USE_IFC4 +#ifdef SCHEMA_IfcParameterizedProfileDef_Position_IS_OPTIONAL has_position = l->hasPosition(); #endif if (has_position) { @@ -767,7 +767,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcLShapeProfileDef* l, TopoDS_Sh gp_Trsf2d trsf2d; bool has_position = true; -#ifdef USE_IFC4 +#ifdef SCHEMA_IfcParameterizedProfileDef_Position_IS_OPTIONAL has_position = l->hasPosition(); #endif if (has_position) { @@ -815,7 +815,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcUShapeProfileDef* l, TopoDS_Sh gp_Trsf2d trsf2d; bool has_position = true; -#ifdef USE_IFC4 +#ifdef SCHEMA_IfcParameterizedProfileDef_Position_IS_OPTIONAL has_position = l->hasPosition(); #endif if (has_position) { @@ -904,7 +904,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcTShapeProfileDef* l, TopoDS_Sh gp_Trsf2d trsf2d; bool has_position = true; -#ifdef USE_IFC4 +#ifdef SCHEMA_IfcParameterizedProfileDef_Position_IS_OPTIONAL has_position = l->hasPosition(); #endif if (has_position) { @@ -926,7 +926,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcCircleProfileDef* l, TopoDS_Sh gp_Trsf2d trsf2d; bool has_position = true; -#ifdef USE_IFC4 +#ifdef SCHEMA_IfcParameterizedProfileDef_Position_IS_OPTIONAL has_position = l->hasPosition(); #endif if (has_position) { @@ -958,7 +958,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcCircleHollowProfileDef* l, Top gp_Trsf2d trsf2d; bool has_position = true; -#ifdef USE_IFC4 +#ifdef SCHEMA_IfcParameterizedProfileDef_Position_IS_OPTIONAL has_position = l->hasPosition(); #endif if (has_position) { @@ -996,7 +996,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcEllipseProfileDef* l, TopoDS_S gp_Trsf2d trsf2d; bool has_position = true; -#ifdef USE_IFC4 +#ifdef SCHEMA_IfcParameterizedProfileDef_Position_IS_OPTIONAL has_position = l->hasPosition(); #endif if (has_position) { @@ -1124,7 +1124,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcPlane* l, TopoDS_Shape& face) return true; } -#ifdef USE_IFC4 +#ifdef SCHEMA_HAS_IfcBSplineSurfaceWithKnots bool IfcGeom::Kernel::convert(const IfcSchema::IfcBSplineSurfaceWithKnots* l, TopoDS_Shape& face) { boost::shared_ptr< IfcTemplatedEntityListList > cps = l->ControlPointsList(); diff --git a/src/ifcgeom/IfcGeomFunctions.cpp b/src/ifcgeom/IfcGeomFunctions.cpp index 7d56cc7d0b..880f7d590c 100644 --- a/src/ifcgeom/IfcGeomFunctions.cpp +++ b/src/ifcgeom/IfcGeomFunctions.cpp @@ -1587,11 +1587,7 @@ IfcSchema::IfcRelVoidsElement::list::ptr IfcGeom::Kernel::find_openings(IfcSchem // Is the IfcElement a decomposition of an IfcElement with any IfcOpeningElements? IfcSchema::IfcObjectDefinition* obdef = product->as(); for (;;) { -#ifdef USE_IFC4 - IfcSchema::IfcRelAggregates::list::ptr decomposes = obdef->Decomposes(); -#else - IfcSchema::IfcRelDecomposes::list::ptr decomposes = obdef->Decomposes(); -#endif + auto decomposes = obdef->Decomposes(); if (decomposes->size() != 1) break; IfcSchema::IfcObjectDefinition* rel_obdef = (*decomposes->begin())->RelatingObject(); if ( rel_obdef->declaration().is(IfcSchema::IfcElement::Class()) && !rel_obdef->declaration().is(IfcSchema::IfcOpeningElement::Class()) ) { @@ -2175,7 +2171,7 @@ bool IfcGeom::Kernel::convert_layerset(const IfcSchema::IfcProduct* product, std gp_Trsf extrusion_position; bool has_position = true; -#ifdef USE_IFC4 +#ifdef SCHEMA_IfcSweptAreaSolid_Position_IS_OPTIONAL has_position = extrusion->hasPosition(); #endif if (has_position) { diff --git a/src/ifcgeom/IfcGeomShapes.cpp b/src/ifcgeom/IfcGeomShapes.cpp index fe587e50ba..2741a2d9f0 100644 --- a/src/ifcgeom/IfcGeomShapes.cpp +++ b/src/ifcgeom/IfcGeomShapes.cpp @@ -119,7 +119,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcExtrudedAreaSolid* l, TopoDS_S gp_Trsf trsf; bool has_position = true; -#ifdef USE_IFC4 +#ifdef SCHEMA_IfcSweptAreaSolid_Position_IS_OPTIONAL has_position = l->hasPosition(); #endif if (has_position) { @@ -166,7 +166,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcExtrudedAreaSolid* l, TopoDS_S return !shape.IsNull(); } -#ifdef USE_IFC4 +#ifdef SCHEMA_HAS_IfcExtrudedAreaSolidTapered bool IfcGeom::Kernel::convert(const IfcSchema::IfcExtrudedAreaSolidTapered* l, TopoDS_Shape& shape) { const double height = l->Depth() * getValue(GV_LENGTH_UNIT); if (height < getValue(GV_PRECISION)) { @@ -180,7 +180,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcExtrudedAreaSolidTapered* l, T gp_Trsf trsf; bool has_position = true; -#ifdef USE_IFC4 +#ifdef SCHEMA_IfcSweptAreaSolid_Position_IS_OPTIONAL has_position = l->hasPosition(); #endif if (has_position) { @@ -280,7 +280,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcSurfaceOfLinearExtrusion* l, T gp_Trsf trsf; bool has_position = true; -#ifdef USE_IFC4 +#ifdef SCHEMA_IfcSweptSurface_Position_IS_OPTIONAL has_position = l->hasPosition(); #endif if (has_position) { @@ -315,7 +315,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcSurfaceOfRevolution* l, TopoDS gp_Trsf trsf; bool has_position = true; -#ifdef USE_IFC4 +#ifdef SCHEMA_IfcSweptSurface_Position_IS_OPTIONAL has_position = l->hasPosition(); #endif if (has_position) { @@ -344,7 +344,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcRevolvedAreaSolid* l, TopoDS_S gp_Trsf trsf; bool has_position = true; -#ifdef USE_IFC4 +#ifdef SCHEMA_IfcSweptAreaSolid_Position_IS_OPTIONAL has_position = l->hasPosition(); #endif if (has_position) { @@ -376,7 +376,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcManifoldSolidBrep* l, IfcRepre if (l->declaration().is(IfcSchema::IfcFacetedBrepWithVoids::Class())) { voids = l->as()->Voids(); } -#ifdef USE_IFC4 +#ifdef SCHEMA_HAS_IfcAdvancedBrepWithVoids if (l->declaration().is(IfcSchema::IfcAdvancedBrepWithVoids::Class())) { voids = l->as()->Voids(); } @@ -545,27 +545,27 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcBooleanResult* l, TopoDS_Shape TopTools_ListOfShape second_operand_shapes; - for (auto& operand2 : second_operands) { + for (auto& op2 : second_operands) { TopoDS_Shape s2; bool shape2_processed = false; - bool is_halfspace = operand2->declaration().is(IfcSchema::IfcHalfSpaceSolid::Class()); - bool is_unbounded_halfspace = is_halfspace && !operand2->declaration().is(IfcSchema::IfcPolygonalBoundedHalfSpace::Class()); + bool is_halfspace = op2->declaration().is(IfcSchema::IfcHalfSpaceSolid::Class()); + bool is_unbounded_halfspace = is_halfspace && !op2->declaration().is(IfcSchema::IfcPolygonalBoundedHalfSpace::Class()); has_halfspace_operand |= is_halfspace; { - if (shape_type(operand2) == ST_SHAPELIST) { + if (shape_type(op2) == ST_SHAPELIST) { IfcRepresentationShapeItems items2; - shape2_processed = convert_shapes(operand2, items2) && flatten_shape_list(items2, s2, true); - } else if (shape_type(operand2) == ST_SHAPE) { - shape2_processed = convert_shape(operand2, s2); + shape2_processed = convert_shapes(op2, items2) && flatten_shape_list(items2, s2, true); + } else if (shape_type(op2) == ST_SHAPE) { + shape2_processed = convert_shape(op2, s2); if (shape2_processed) { TopoDS_Solid temp_solid; s2 = ensure_fit_for_subtraction(s2, temp_solid); } } else { - Logger::Message(Logger::LOG_ERROR, "Invalid representation item for boolean operation", operand2); + Logger::Message(Logger::LOG_ERROR, "Invalid representation item for boolean operation", op2); } } @@ -583,14 +583,14 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcBooleanResult* l, TopoDS_Shape } if (!shape2_processed) { - Logger::Message(Logger::LOG_ERROR, "Failed to convert SecondOperand:", operand2); + Logger::Message(Logger::LOG_ERROR, "Failed to convert SecondOperand:", op2); continue; } - if (operand2->declaration().is(IfcSchema::IfcHalfSpaceSolid::Class())) { + if (op2->declaration().is(IfcSchema::IfcHalfSpaceSolid::Class())) { const double second_operand_volume = shape_volume(s2); if (second_operand_volume <= ALMOST_ZERO) { - Logger::Message(Logger::LOG_WARNING, "Empty solid for:", operand2); + Logger::Message(Logger::LOG_WARNING, "Empty solid for:", op2); } } @@ -950,7 +950,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcSurfaceCurveSweptAreaSolid* l, gp_Trsf trsf; bool has_position = true; -#ifdef USE_IFC4 +#ifdef SCHEMA_IfcSweptAreaSolid_Position_IS_OPTIONAL has_position = l->hasPosition(); #endif if (has_position) { @@ -1152,7 +1152,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcSweptDiskSolid* l, TopoDS_Shap return true; } -#ifdef USE_IFC4 +#ifdef SCHEMA_HAS_IfcCylindricalSurface bool IfcGeom::Kernel::convert(const IfcSchema::IfcCylindricalSurface* l, TopoDS_Shape& face) { gp_Trsf trsf; @@ -1167,10 +1167,18 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcCylindricalSurface* l, TopoDS_ return true; } +#endif + +#ifdef SCHEMA_HAS_IfcAdvancedBrep + bool IfcGeom::Kernel::convert(const IfcSchema::IfcAdvancedBrep* l, TopoDS_Shape& shape) { return convert(l->Outer(), shape); } +#endif + +#ifdef SCHEMA_HAS_IfcTriangulatedFaceSet + bool IfcGeom::Kernel::convert(const IfcSchema::IfcTriangulatedFaceSet* l, TopoDS_Shape& shape) { IfcSchema::IfcCartesianPointList3D* point_list = l->Coordinates(); const std::vector< std::vector > coordinates = point_list->CoordList(); @@ -1231,18 +1239,18 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcTriangulatedFaceSet* l, TopoDS bool valid_shell = false; // @todo Do this more efficiently by creating proper half-edge pairs. - BRepOffsetAPI_Sewing builder; - builder.SetTolerance(getValue(GV_POINT_EQUALITY_TOLERANCE)); - builder.SetMaxTolerance(getValue(GV_POINT_EQUALITY_TOLERANCE)); - builder.SetMinTolerance(getValue(GV_POINT_EQUALITY_TOLERANCE)); + BRepOffsetAPI_Sewing sewing_builder; + sewing_builder.SetTolerance(getValue(GV_POINT_EQUALITY_TOLERANCE)); + sewing_builder.SetMaxTolerance(getValue(GV_POINT_EQUALITY_TOLERANCE)); + sewing_builder.SetMinTolerance(getValue(GV_POINT_EQUALITY_TOLERANCE)); for (std::vector::const_iterator it = faces.begin(); it != faces.end(); ++it) { - builder.Add(*it); + sewing_builder.Add(*it); } try { - builder.Perform(); - shape = builder.SewedShape(); + sewing_builder.Perform(); + shape = sewing_builder.SewedShape(); valid_shell = BRepCheck_Analyzer(shape).IsValid(); } catch(...) {} diff --git a/src/ifcgeom/IfcGeomWires.cpp b/src/ifcgeom/IfcGeomWires.cpp index fd4aee202b..64778fc9f9 100644 --- a/src/ifcgeom/IfcGeomWires.cpp +++ b/src/ifcgeom/IfcGeomWires.cpp @@ -849,7 +849,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcSubedge* l, TopoDS_Wire& resul } } -#ifdef USE_IFC4 +#ifdef SCHEMA_HAS_IfcIndexedPolyCurve bool IfcGeom::Kernel::convert(const IfcSchema::IfcIndexedPolyCurve* l, TopoDS_Wire& result) { diff --git a/src/ifcgeom/IfcRegister.h b/src/ifcgeom/IfcRegister.h index 36bed45ee0..c646e7827b 100644 --- a/src/ifcgeom/IfcRegister.h +++ b/src/ifcgeom/IfcRegister.h @@ -52,12 +52,20 @@ SHAPES(IfcMappedItem); SHAPES(IfcManifoldSolidBrep); SHAPES(IfcGeometricSet); -#ifdef USE_IFC4 +#ifdef SCHEMA_HAS_IfcCylindricalSurface SHAPE(IfcCylindricalSurface); +#endif +#ifdef SCHEMA_HAS_IfcAdvancedBrep SHAPE(IfcAdvancedBrep); +#endif // FIXME: Surfaces should have a shape type of their own +#ifdef SCHEMA_HAS_IfcBSplineSurfaceWithKnots SHAPE(IfcBSplineSurfaceWithKnots); +#endif +#ifdef SCHEMA_HAS_IfcTriangulatedFaceSet SHAPE(IfcTriangulatedFaceSet); +#endif +#ifdef SCHEMA_HAS_IfcExtrudedAreaSolidTapered SHAPE(IfcExtrudedAreaSolidTapered); #endif SHAPE(IfcPlane); @@ -114,14 +122,14 @@ WIRE(IfcPolyLoop); WIRE(IfcCompositeCurve); WIRE(IfcTrimmedCurve); WIRE(IfcArbitraryOpenProfileDef); -#ifdef USE_IFC4 +#ifdef SCHEMA_HAS_IfcIndexedPolyCurve WIRE(IfcIndexedPolyCurve) #endif CURVE(IfcCircle); CURVE(IfcEllipse); CURVE(IfcLine); -#ifdef USE_IFC4 +#ifdef SCHEMA_HAS_IfcBSplineCurveWithKnots // IfcRationalBSplineCurveWithKnots included CURVE(IfcBSplineCurveWithKnots); #endif diff --git a/src/ifcparse/Argument.h b/src/ifcparse/Argument.h index 3d0095b4cd..ce2da04206 100644 --- a/src/ifcparse/Argument.h +++ b/src/ifcparse/Argument.h @@ -28,16 +28,6 @@ #include "ifc_parse_api.h" -#ifdef USE_IFC4X2 -#include "../ifcparse/Ifc4x2enum.h" -#elif USE_IFC4X1 -#include "../ifcparse/Ifc4x1enum.h" -#elif USE_IFC4 -#include "../ifcparse/Ifc4enum.h" -#else -#include "../ifcparse/Ifc2x3enum.h" -#endif - #include "../ifcparse/IfcEntityList.h" #include diff --git a/src/ifcparse/Ifc2x3-definitions.h b/src/ifcparse/Ifc2x3-definitions.h new file mode 100644 index 0000000000..d33d620a20 --- /dev/null +++ b/src/ifcparse/Ifc2x3-definitions.h @@ -0,0 +1,2925 @@ +/******************************************************************************** + * * + * This file is part of IfcOpenShell. * + * * + * IfcOpenShell is free software: you can redistribute it and/or modify * + * it under the terms of the Lesser GNU General Public License as published by * + * the Free Software Foundation, either version 3.0 of the License, or * + * (at your option) any later version. * + * * + * IfcOpenShell is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * Lesser GNU General Public License for more details. * + * * + * You should have received a copy of the Lesser GNU General Public License * + * along with this program. If not, see . * + * * + ********************************************************************************/ + +/******************************************************************************** + * * + * This file has been generated from IFC2X3_TC1.exp. Do not make modifications * + * but instead modify the python script that has been used to generate this. * + * * + ********************************************************************************/ + +#define SCHEMA_HAS_IfcAbsorbedDoseMeasure +#define SCHEMA_HAS_IfcAccelerationMeasure +#define SCHEMA_HAS_IfcActionSourceTypeEnum +#define SCHEMA_HAS_IfcActionTypeEnum +#define SCHEMA_HAS_IfcActorSelect +#define SCHEMA_HAS_IfcActuatorTypeEnum +#define SCHEMA_HAS_IfcAddressTypeEnum +#define SCHEMA_HAS_IfcAheadOrBehind +#define SCHEMA_HAS_IfcAirTerminalBoxTypeEnum +#define SCHEMA_HAS_IfcAirTerminalTypeEnum +#define SCHEMA_HAS_IfcAirToAirHeatRecoveryTypeEnum +#define SCHEMA_HAS_IfcAlarmTypeEnum +#define SCHEMA_HAS_IfcAmountOfSubstanceMeasure +#define SCHEMA_HAS_IfcAnalysisModelTypeEnum +#define SCHEMA_HAS_IfcAnalysisTheoryTypeEnum +#define SCHEMA_HAS_IfcAngularVelocityMeasure +#define SCHEMA_HAS_IfcAppliedValueSelect +#define SCHEMA_HAS_IfcAreaMeasure +#define SCHEMA_HAS_IfcArithmeticOperatorEnum +#define SCHEMA_HAS_IfcAssemblyPlaceEnum +#define SCHEMA_HAS_IfcAxis2Placement +#define SCHEMA_HAS_IfcBSplineCurveForm +#define SCHEMA_HAS_IfcBeamTypeEnum +#define SCHEMA_HAS_IfcBenchmarkEnum +#define SCHEMA_HAS_IfcBoilerTypeEnum +#define SCHEMA_HAS_IfcBoolean +#define SCHEMA_HAS_IfcBooleanOperand +#define SCHEMA_HAS_IfcBooleanOperator +#define SCHEMA_HAS_IfcBoxAlignment +#define SCHEMA_HAS_IfcBuildingElementProxyTypeEnum +#define SCHEMA_HAS_IfcCableCarrierFittingTypeEnum +#define SCHEMA_HAS_IfcCableCarrierSegmentTypeEnum +#define SCHEMA_HAS_IfcCableSegmentTypeEnum +#define SCHEMA_HAS_IfcChangeActionEnum +#define SCHEMA_HAS_IfcCharacterStyleSelect +#define SCHEMA_HAS_IfcChillerTypeEnum +#define SCHEMA_HAS_IfcClassificationNotationSelect +#define SCHEMA_HAS_IfcCoilTypeEnum +#define SCHEMA_HAS_IfcColour +#define SCHEMA_HAS_IfcColourOrFactor +#define SCHEMA_HAS_IfcColumnTypeEnum +#define SCHEMA_HAS_IfcComplexNumber +#define SCHEMA_HAS_IfcCompoundPlaneAngleMeasure +#define SCHEMA_HAS_IfcCompressorTypeEnum +#define SCHEMA_HAS_IfcCondenserTypeEnum +#define SCHEMA_HAS_IfcConditionCriterionSelect +#define SCHEMA_HAS_IfcConnectionTypeEnum +#define SCHEMA_HAS_IfcConstraintEnum +#define SCHEMA_HAS_IfcContextDependentMeasure +#define SCHEMA_HAS_IfcControllerTypeEnum +#define SCHEMA_HAS_IfcCooledBeamTypeEnum +#define SCHEMA_HAS_IfcCoolingTowerTypeEnum +#define SCHEMA_HAS_IfcCostScheduleTypeEnum +#define SCHEMA_HAS_IfcCountMeasure +#define SCHEMA_HAS_IfcCoveringTypeEnum +#define SCHEMA_HAS_IfcCsgSelect +#define SCHEMA_HAS_IfcCurrencyEnum +#define SCHEMA_HAS_IfcCurtainWallTypeEnum +#define SCHEMA_HAS_IfcCurvatureMeasure +#define SCHEMA_HAS_IfcCurveFontOrScaledCurveFontSelect +#define SCHEMA_HAS_IfcCurveOrEdgeCurve +#define SCHEMA_HAS_IfcCurveStyleFontSelect +#define SCHEMA_HAS_IfcDamperTypeEnum +#define SCHEMA_HAS_IfcDataOriginEnum +#define SCHEMA_HAS_IfcDateTimeSelect +#define SCHEMA_HAS_IfcDayInMonthNumber +#define SCHEMA_HAS_IfcDaylightSavingHour +#define SCHEMA_HAS_IfcDefinedSymbolSelect +#define SCHEMA_HAS_IfcDerivedMeasureValue +#define SCHEMA_HAS_IfcDerivedUnitEnum +#define SCHEMA_HAS_IfcDescriptiveMeasure +#define SCHEMA_HAS_IfcDimensionCount +#define SCHEMA_HAS_IfcDimensionExtentUsage +#define SCHEMA_HAS_IfcDirectionSenseEnum +#define SCHEMA_HAS_IfcDistributionChamberElementTypeEnum +#define SCHEMA_HAS_IfcDocumentConfidentialityEnum +#define SCHEMA_HAS_IfcDocumentSelect +#define SCHEMA_HAS_IfcDocumentStatusEnum +#define SCHEMA_HAS_IfcDoorPanelOperationEnum +#define SCHEMA_HAS_IfcDoorPanelPositionEnum +#define SCHEMA_HAS_IfcDoorStyleConstructionEnum +#define SCHEMA_HAS_IfcDoorStyleOperationEnum +#define SCHEMA_HAS_IfcDoseEquivalentMeasure +#define SCHEMA_HAS_IfcDraughtingCalloutElement +#define SCHEMA_HAS_IfcDuctFittingTypeEnum +#define SCHEMA_HAS_IfcDuctSegmentTypeEnum +#define SCHEMA_HAS_IfcDuctSilencerTypeEnum +#define SCHEMA_HAS_IfcDynamicViscosityMeasure +#define SCHEMA_HAS_IfcElectricApplianceTypeEnum +#define SCHEMA_HAS_IfcElectricCapacitanceMeasure +#define SCHEMA_HAS_IfcElectricChargeMeasure +#define SCHEMA_HAS_IfcElectricConductanceMeasure +#define SCHEMA_HAS_IfcElectricCurrentEnum +#define SCHEMA_HAS_IfcElectricCurrentMeasure +#define SCHEMA_HAS_IfcElectricDistributionPointFunctionEnum +#define SCHEMA_HAS_IfcElectricFlowStorageDeviceTypeEnum +#define SCHEMA_HAS_IfcElectricGeneratorTypeEnum +#define SCHEMA_HAS_IfcElectricHeaterTypeEnum +#define SCHEMA_HAS_IfcElectricMotorTypeEnum +#define SCHEMA_HAS_IfcElectricResistanceMeasure +#define SCHEMA_HAS_IfcElectricTimeControlTypeEnum +#define SCHEMA_HAS_IfcElectricVoltageMeasure +#define SCHEMA_HAS_IfcElementAssemblyTypeEnum +#define SCHEMA_HAS_IfcElementCompositionEnum +#define SCHEMA_HAS_IfcEnergyMeasure +#define SCHEMA_HAS_IfcEnergySequenceEnum +#define SCHEMA_HAS_IfcEnvironmentalImpactCategoryEnum +#define SCHEMA_HAS_IfcEvaporativeCoolerTypeEnum +#define SCHEMA_HAS_IfcEvaporatorTypeEnum +#define SCHEMA_HAS_IfcFanTypeEnum +#define SCHEMA_HAS_IfcFillAreaStyleTileShapeSelect +#define SCHEMA_HAS_IfcFillStyleSelect +#define SCHEMA_HAS_IfcFilterTypeEnum +#define SCHEMA_HAS_IfcFireSuppressionTerminalTypeEnum +#define SCHEMA_HAS_IfcFlowDirectionEnum +#define SCHEMA_HAS_IfcFlowInstrumentTypeEnum +#define SCHEMA_HAS_IfcFlowMeterTypeEnum +#define SCHEMA_HAS_IfcFontStyle +#define SCHEMA_HAS_IfcFontVariant +#define SCHEMA_HAS_IfcFontWeight +#define SCHEMA_HAS_IfcFootingTypeEnum +#define SCHEMA_HAS_IfcForceMeasure +#define SCHEMA_HAS_IfcFrequencyMeasure +#define SCHEMA_HAS_IfcGasTerminalTypeEnum +#define SCHEMA_HAS_IfcGeometricProjectionEnum +#define SCHEMA_HAS_IfcGeometricSetSelect +#define SCHEMA_HAS_IfcGlobalOrLocalEnum +#define SCHEMA_HAS_IfcGloballyUniqueId +#define SCHEMA_HAS_IfcHatchLineDistanceSelect +#define SCHEMA_HAS_IfcHeatExchangerTypeEnum +#define SCHEMA_HAS_IfcHeatFluxDensityMeasure +#define SCHEMA_HAS_IfcHeatingValueMeasure +#define SCHEMA_HAS_IfcHourInDay +#define SCHEMA_HAS_IfcHumidifierTypeEnum +#define SCHEMA_HAS_IfcIdentifier +#define SCHEMA_HAS_IfcIlluminanceMeasure +#define SCHEMA_HAS_IfcInductanceMeasure +#define SCHEMA_HAS_IfcInteger +#define SCHEMA_HAS_IfcIntegerCountRateMeasure +#define SCHEMA_HAS_IfcInternalOrExternalEnum +#define SCHEMA_HAS_IfcInventoryTypeEnum +#define SCHEMA_HAS_IfcIonConcentrationMeasure +#define SCHEMA_HAS_IfcIsothermalMoistureCapacityMeasure +#define SCHEMA_HAS_IfcJunctionBoxTypeEnum +#define SCHEMA_HAS_IfcKinematicViscosityMeasure +#define SCHEMA_HAS_IfcLabel +#define SCHEMA_HAS_IfcLampTypeEnum +#define SCHEMA_HAS_IfcLayerSetDirectionEnum +#define SCHEMA_HAS_IfcLayeredItem +#define SCHEMA_HAS_IfcLengthMeasure +#define SCHEMA_HAS_IfcLibrarySelect +#define SCHEMA_HAS_IfcLightDistributionCurveEnum +#define SCHEMA_HAS_IfcLightDistributionDataSourceSelect +#define SCHEMA_HAS_IfcLightEmissionSourceEnum +#define SCHEMA_HAS_IfcLightFixtureTypeEnum +#define SCHEMA_HAS_IfcLinearForceMeasure +#define SCHEMA_HAS_IfcLinearMomentMeasure +#define SCHEMA_HAS_IfcLinearStiffnessMeasure +#define SCHEMA_HAS_IfcLinearVelocityMeasure +#define SCHEMA_HAS_IfcLoadGroupTypeEnum +#define SCHEMA_HAS_IfcLogical +#define SCHEMA_HAS_IfcLogicalOperatorEnum +#define SCHEMA_HAS_IfcLuminousFluxMeasure +#define SCHEMA_HAS_IfcLuminousIntensityDistributionMeasure +#define SCHEMA_HAS_IfcLuminousIntensityMeasure +#define SCHEMA_HAS_IfcMagneticFluxDensityMeasure +#define SCHEMA_HAS_IfcMagneticFluxMeasure +#define SCHEMA_HAS_IfcMassDensityMeasure +#define SCHEMA_HAS_IfcMassFlowRateMeasure +#define SCHEMA_HAS_IfcMassMeasure +#define SCHEMA_HAS_IfcMassPerLengthMeasure +#define SCHEMA_HAS_IfcMaterialSelect +#define SCHEMA_HAS_IfcMeasureValue +#define SCHEMA_HAS_IfcMemberTypeEnum +#define SCHEMA_HAS_IfcMetricValueSelect +#define SCHEMA_HAS_IfcMinuteInHour +#define SCHEMA_HAS_IfcModulusOfElasticityMeasure +#define SCHEMA_HAS_IfcModulusOfLinearSubgradeReactionMeasure +#define SCHEMA_HAS_IfcModulusOfRotationalSubgradeReactionMeasure +#define SCHEMA_HAS_IfcModulusOfSubgradeReactionMeasure +#define SCHEMA_HAS_IfcMoistureDiffusivityMeasure +#define SCHEMA_HAS_IfcMolecularWeightMeasure +#define SCHEMA_HAS_IfcMomentOfInertiaMeasure +#define SCHEMA_HAS_IfcMonetaryMeasure +#define SCHEMA_HAS_IfcMonthInYearNumber +#define SCHEMA_HAS_IfcMotorConnectionTypeEnum +#define SCHEMA_HAS_IfcNormalisedRatioMeasure +#define SCHEMA_HAS_IfcNullStyle +#define SCHEMA_HAS_IfcNumericMeasure +#define SCHEMA_HAS_IfcObjectReferenceSelect +#define SCHEMA_HAS_IfcObjectTypeEnum +#define SCHEMA_HAS_IfcObjectiveEnum +#define SCHEMA_HAS_IfcOccupantTypeEnum +#define SCHEMA_HAS_IfcOrientationSelect +#define SCHEMA_HAS_IfcOutletTypeEnum +#define SCHEMA_HAS_IfcPHMeasure +#define SCHEMA_HAS_IfcParameterValue +#define SCHEMA_HAS_IfcPermeableCoveringOperationEnum +#define SCHEMA_HAS_IfcPhysicalOrVirtualEnum +#define SCHEMA_HAS_IfcPileConstructionEnum +#define SCHEMA_HAS_IfcPileTypeEnum +#define SCHEMA_HAS_IfcPipeFittingTypeEnum +#define SCHEMA_HAS_IfcPipeSegmentTypeEnum +#define SCHEMA_HAS_IfcPlanarForceMeasure +#define SCHEMA_HAS_IfcPlaneAngleMeasure +#define SCHEMA_HAS_IfcPlateTypeEnum +#define SCHEMA_HAS_IfcPointOrVertexPoint +#define SCHEMA_HAS_IfcPositiveLengthMeasure +#define SCHEMA_HAS_IfcPositivePlaneAngleMeasure +#define SCHEMA_HAS_IfcPositiveRatioMeasure +#define SCHEMA_HAS_IfcPowerMeasure +#define SCHEMA_HAS_IfcPresentableText +#define SCHEMA_HAS_IfcPresentationStyleSelect +#define SCHEMA_HAS_IfcPressureMeasure +#define SCHEMA_HAS_IfcProcedureTypeEnum +#define SCHEMA_HAS_IfcProfileTypeEnum +#define SCHEMA_HAS_IfcProjectOrderRecordTypeEnum +#define SCHEMA_HAS_IfcProjectOrderTypeEnum +#define SCHEMA_HAS_IfcProjectedOrTrueLengthEnum +#define SCHEMA_HAS_IfcPropertySourceEnum +#define SCHEMA_HAS_IfcProtectiveDeviceTypeEnum +#define SCHEMA_HAS_IfcPumpTypeEnum +#define SCHEMA_HAS_IfcRadioActivityMeasure +#define SCHEMA_HAS_IfcRailingTypeEnum +#define SCHEMA_HAS_IfcRampFlightTypeEnum +#define SCHEMA_HAS_IfcRampTypeEnum +#define SCHEMA_HAS_IfcRatioMeasure +#define SCHEMA_HAS_IfcReal +#define SCHEMA_HAS_IfcReflectanceMethodEnum +#define SCHEMA_HAS_IfcReinforcingBarRoleEnum +#define SCHEMA_HAS_IfcReinforcingBarSurfaceEnum +#define SCHEMA_HAS_IfcResourceConsumptionEnum +#define SCHEMA_HAS_IfcRibPlateDirectionEnum +#define SCHEMA_HAS_IfcRoleEnum +#define SCHEMA_HAS_IfcRoofTypeEnum +#define SCHEMA_HAS_IfcRotationalFrequencyMeasure +#define SCHEMA_HAS_IfcRotationalMassMeasure +#define SCHEMA_HAS_IfcRotationalStiffnessMeasure +#define SCHEMA_HAS_IfcSIPrefix +#define SCHEMA_HAS_IfcSIUnitName +#define SCHEMA_HAS_IfcSanitaryTerminalTypeEnum +#define SCHEMA_HAS_IfcSecondInMinute +#define SCHEMA_HAS_IfcSectionModulusMeasure +#define SCHEMA_HAS_IfcSectionTypeEnum +#define SCHEMA_HAS_IfcSectionalAreaIntegralMeasure +#define SCHEMA_HAS_IfcSensorTypeEnum +#define SCHEMA_HAS_IfcSequenceEnum +#define SCHEMA_HAS_IfcServiceLifeFactorTypeEnum +#define SCHEMA_HAS_IfcServiceLifeTypeEnum +#define SCHEMA_HAS_IfcShearModulusMeasure +#define SCHEMA_HAS_IfcShell +#define SCHEMA_HAS_IfcSimpleValue +#define SCHEMA_HAS_IfcSizeSelect +#define SCHEMA_HAS_IfcSlabTypeEnum +#define SCHEMA_HAS_IfcSolidAngleMeasure +#define SCHEMA_HAS_IfcSoundPowerMeasure +#define SCHEMA_HAS_IfcSoundPressureMeasure +#define SCHEMA_HAS_IfcSoundScaleEnum +#define SCHEMA_HAS_IfcSpaceHeaterTypeEnum +#define SCHEMA_HAS_IfcSpaceTypeEnum +#define SCHEMA_HAS_IfcSpecificHeatCapacityMeasure +#define SCHEMA_HAS_IfcSpecularExponent +#define SCHEMA_HAS_IfcSpecularHighlightSelect +#define SCHEMA_HAS_IfcSpecularRoughness +#define SCHEMA_HAS_IfcStackTerminalTypeEnum +#define SCHEMA_HAS_IfcStairFlightTypeEnum +#define SCHEMA_HAS_IfcStairTypeEnum +#define SCHEMA_HAS_IfcStateEnum +#define SCHEMA_HAS_IfcStructuralActivityAssignmentSelect +#define SCHEMA_HAS_IfcStructuralCurveTypeEnum +#define SCHEMA_HAS_IfcStructuralSurfaceTypeEnum +#define SCHEMA_HAS_IfcSurfaceOrFaceSurface +#define SCHEMA_HAS_IfcSurfaceSide +#define SCHEMA_HAS_IfcSurfaceStyleElementSelect +#define SCHEMA_HAS_IfcSurfaceTextureEnum +#define SCHEMA_HAS_IfcSwitchingDeviceTypeEnum +#define SCHEMA_HAS_IfcSymbolStyleSelect +#define SCHEMA_HAS_IfcTankTypeEnum +#define SCHEMA_HAS_IfcTemperatureGradientMeasure +#define SCHEMA_HAS_IfcTendonTypeEnum +#define SCHEMA_HAS_IfcText +#define SCHEMA_HAS_IfcTextAlignment +#define SCHEMA_HAS_IfcTextDecoration +#define SCHEMA_HAS_IfcTextFontName +#define SCHEMA_HAS_IfcTextFontSelect +#define SCHEMA_HAS_IfcTextPath +#define SCHEMA_HAS_IfcTextStyleSelect +#define SCHEMA_HAS_IfcTextTransformation +#define SCHEMA_HAS_IfcThermalAdmittanceMeasure +#define SCHEMA_HAS_IfcThermalConductivityMeasure +#define SCHEMA_HAS_IfcThermalExpansionCoefficientMeasure +#define SCHEMA_HAS_IfcThermalLoadSourceEnum +#define SCHEMA_HAS_IfcThermalLoadTypeEnum +#define SCHEMA_HAS_IfcThermalResistanceMeasure +#define SCHEMA_HAS_IfcThermalTransmittanceMeasure +#define SCHEMA_HAS_IfcThermodynamicTemperatureMeasure +#define SCHEMA_HAS_IfcTimeMeasure +#define SCHEMA_HAS_IfcTimeSeriesDataTypeEnum +#define SCHEMA_HAS_IfcTimeSeriesScheduleTypeEnum +#define SCHEMA_HAS_IfcTimeStamp +#define SCHEMA_HAS_IfcTorqueMeasure +#define SCHEMA_HAS_IfcTransformerTypeEnum +#define SCHEMA_HAS_IfcTransitionCode +#define SCHEMA_HAS_IfcTransportElementTypeEnum +#define SCHEMA_HAS_IfcTrimmingPreference +#define SCHEMA_HAS_IfcTrimmingSelect +#define SCHEMA_HAS_IfcTubeBundleTypeEnum +#define SCHEMA_HAS_IfcUnit +#define SCHEMA_HAS_IfcUnitEnum +#define SCHEMA_HAS_IfcUnitaryEquipmentTypeEnum +#define SCHEMA_HAS_IfcValue +#define SCHEMA_HAS_IfcValveTypeEnum +#define SCHEMA_HAS_IfcVaporPermeabilityMeasure +#define SCHEMA_HAS_IfcVectorOrDirection +#define SCHEMA_HAS_IfcVibrationIsolatorTypeEnum +#define SCHEMA_HAS_IfcVolumeMeasure +#define SCHEMA_HAS_IfcVolumetricFlowRateMeasure +#define SCHEMA_HAS_IfcWallTypeEnum +#define SCHEMA_HAS_IfcWarpingConstantMeasure +#define SCHEMA_HAS_IfcWarpingMomentMeasure +#define SCHEMA_HAS_IfcWasteTerminalTypeEnum +#define SCHEMA_HAS_IfcWindowPanelOperationEnum +#define SCHEMA_HAS_IfcWindowPanelPositionEnum +#define SCHEMA_HAS_IfcWindowStyleConstructionEnum +#define SCHEMA_HAS_IfcWindowStyleOperationEnum +#define SCHEMA_HAS_IfcWorkControlTypeEnum +#define SCHEMA_HAS_IfcYearNumber +#define SCHEMA_HAS_Ifc2DCompositeCurve +#define SCHEMA_HAS_IfcActionRequest +#define SCHEMA_IfcActionRequest_HAS_RequestID +#define SCHEMA_HAS_IfcActor +#define SCHEMA_IfcActor_HAS_TheActor +#define SCHEMA_HAS_IfcActorRole +#define SCHEMA_IfcActorRole_HAS_Role +#define SCHEMA_IfcActorRole_HAS_UserDefinedRole +#define SCHEMA_IfcActorRole_UserDefinedRole_IS_OPTIONAL +#define SCHEMA_IfcActorRole_HAS_Description +#define SCHEMA_IfcActorRole_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcActuatorType +#define SCHEMA_IfcActuatorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAddress +#define SCHEMA_IfcAddress_HAS_Purpose +#define SCHEMA_IfcAddress_Purpose_IS_OPTIONAL +#define SCHEMA_IfcAddress_HAS_Description +#define SCHEMA_IfcAddress_Description_IS_OPTIONAL +#define SCHEMA_IfcAddress_HAS_UserDefinedPurpose +#define SCHEMA_IfcAddress_UserDefinedPurpose_IS_OPTIONAL +#define SCHEMA_HAS_IfcAirTerminalBoxType +#define SCHEMA_IfcAirTerminalBoxType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAirTerminalType +#define SCHEMA_IfcAirTerminalType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAirToAirHeatRecoveryType +#define SCHEMA_IfcAirToAirHeatRecoveryType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAlarmType +#define SCHEMA_IfcAlarmType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAngularDimension +#define SCHEMA_HAS_IfcAnnotation +#define SCHEMA_HAS_IfcAnnotationCurveOccurrence +#define SCHEMA_HAS_IfcAnnotationFillArea +#define SCHEMA_IfcAnnotationFillArea_HAS_OuterBoundary +#define SCHEMA_IfcAnnotationFillArea_HAS_InnerBoundaries +#define SCHEMA_IfcAnnotationFillArea_InnerBoundaries_IS_OPTIONAL +#define SCHEMA_HAS_IfcAnnotationFillAreaOccurrence +#define SCHEMA_IfcAnnotationFillAreaOccurrence_HAS_FillStyleTarget +#define SCHEMA_IfcAnnotationFillAreaOccurrence_FillStyleTarget_IS_OPTIONAL +#define SCHEMA_IfcAnnotationFillAreaOccurrence_HAS_GlobalOrLocal +#define SCHEMA_IfcAnnotationFillAreaOccurrence_GlobalOrLocal_IS_OPTIONAL +#define SCHEMA_HAS_IfcAnnotationOccurrence +#define SCHEMA_HAS_IfcAnnotationSurface +#define SCHEMA_IfcAnnotationSurface_HAS_Item +#define SCHEMA_IfcAnnotationSurface_HAS_TextureCoordinates +#define SCHEMA_IfcAnnotationSurface_TextureCoordinates_IS_OPTIONAL +#define SCHEMA_HAS_IfcAnnotationSurfaceOccurrence +#define SCHEMA_HAS_IfcAnnotationSymbolOccurrence +#define SCHEMA_HAS_IfcAnnotationTextOccurrence +#define SCHEMA_HAS_IfcApplication +#define SCHEMA_IfcApplication_HAS_ApplicationDeveloper +#define SCHEMA_IfcApplication_HAS_Version +#define SCHEMA_IfcApplication_HAS_ApplicationFullName +#define SCHEMA_IfcApplication_HAS_ApplicationIdentifier +#define SCHEMA_HAS_IfcAppliedValue +#define SCHEMA_IfcAppliedValue_HAS_Name +#define SCHEMA_IfcAppliedValue_Name_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_Description +#define SCHEMA_IfcAppliedValue_Description_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_AppliedValue +#define SCHEMA_IfcAppliedValue_AppliedValue_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_UnitBasis +#define SCHEMA_IfcAppliedValue_UnitBasis_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_ApplicableDate +#define SCHEMA_IfcAppliedValue_ApplicableDate_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_FixedUntilDate +#define SCHEMA_IfcAppliedValue_FixedUntilDate_IS_OPTIONAL +#define SCHEMA_HAS_IfcAppliedValueRelationship +#define SCHEMA_IfcAppliedValueRelationship_HAS_ComponentOfTotal +#define SCHEMA_IfcAppliedValueRelationship_HAS_Components +#define SCHEMA_IfcAppliedValueRelationship_HAS_ArithmeticOperator +#define SCHEMA_IfcAppliedValueRelationship_HAS_Name +#define SCHEMA_IfcAppliedValueRelationship_Name_IS_OPTIONAL +#define SCHEMA_IfcAppliedValueRelationship_HAS_Description +#define SCHEMA_IfcAppliedValueRelationship_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcApproval +#define SCHEMA_IfcApproval_HAS_Description +#define SCHEMA_IfcApproval_Description_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_ApprovalDateTime +#define SCHEMA_IfcApproval_HAS_ApprovalStatus +#define SCHEMA_IfcApproval_ApprovalStatus_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_ApprovalLevel +#define SCHEMA_IfcApproval_ApprovalLevel_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_ApprovalQualifier +#define SCHEMA_IfcApproval_ApprovalQualifier_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_Name +#define SCHEMA_IfcApproval_HAS_Identifier +#define SCHEMA_HAS_IfcApprovalActorRelationship +#define SCHEMA_IfcApprovalActorRelationship_HAS_Actor +#define SCHEMA_IfcApprovalActorRelationship_HAS_Approval +#define SCHEMA_IfcApprovalActorRelationship_HAS_Role +#define SCHEMA_HAS_IfcApprovalPropertyRelationship +#define SCHEMA_IfcApprovalPropertyRelationship_HAS_ApprovedProperties +#define SCHEMA_IfcApprovalPropertyRelationship_HAS_Approval +#define SCHEMA_HAS_IfcApprovalRelationship +#define SCHEMA_IfcApprovalRelationship_HAS_RelatedApproval +#define SCHEMA_IfcApprovalRelationship_HAS_RelatingApproval +#define SCHEMA_IfcApprovalRelationship_HAS_Description +#define SCHEMA_IfcApprovalRelationship_Description_IS_OPTIONAL +#define SCHEMA_IfcApprovalRelationship_HAS_Name +#define SCHEMA_HAS_IfcArbitraryClosedProfileDef +#define SCHEMA_IfcArbitraryClosedProfileDef_HAS_OuterCurve +#define SCHEMA_HAS_IfcArbitraryOpenProfileDef +#define SCHEMA_IfcArbitraryOpenProfileDef_HAS_Curve +#define SCHEMA_HAS_IfcArbitraryProfileDefWithVoids +#define SCHEMA_IfcArbitraryProfileDefWithVoids_HAS_InnerCurves +#define SCHEMA_HAS_IfcAsset +#define SCHEMA_IfcAsset_HAS_AssetID +#define SCHEMA_IfcAsset_HAS_OriginalValue +#define SCHEMA_IfcAsset_HAS_CurrentValue +#define SCHEMA_IfcAsset_HAS_TotalReplacementCost +#define SCHEMA_IfcAsset_HAS_Owner +#define SCHEMA_IfcAsset_HAS_User +#define SCHEMA_IfcAsset_HAS_ResponsiblePerson +#define SCHEMA_IfcAsset_HAS_IncorporationDate +#define SCHEMA_IfcAsset_HAS_DepreciatedValue +#define SCHEMA_HAS_IfcAsymmetricIShapeProfileDef +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_TopFlangeWidth +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_TopFlangeThickness +#define SCHEMA_IfcAsymmetricIShapeProfileDef_TopFlangeThickness_IS_OPTIONAL +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_TopFlangeFilletRadius +#define SCHEMA_IfcAsymmetricIShapeProfileDef_TopFlangeFilletRadius_IS_OPTIONAL +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_CentreOfGravityInY +#define SCHEMA_IfcAsymmetricIShapeProfileDef_CentreOfGravityInY_IS_OPTIONAL +#define SCHEMA_HAS_IfcAxis1Placement +#define SCHEMA_IfcAxis1Placement_HAS_Axis +#define SCHEMA_IfcAxis1Placement_Axis_IS_OPTIONAL +#define SCHEMA_HAS_IfcAxis2Placement2D +#define SCHEMA_IfcAxis2Placement2D_HAS_RefDirection +#define SCHEMA_IfcAxis2Placement2D_RefDirection_IS_OPTIONAL +#define SCHEMA_HAS_IfcAxis2Placement3D +#define SCHEMA_IfcAxis2Placement3D_HAS_Axis +#define SCHEMA_IfcAxis2Placement3D_Axis_IS_OPTIONAL +#define SCHEMA_IfcAxis2Placement3D_HAS_RefDirection +#define SCHEMA_IfcAxis2Placement3D_RefDirection_IS_OPTIONAL +#define SCHEMA_HAS_IfcBSplineCurve +#define SCHEMA_IfcBSplineCurve_HAS_Degree +#define SCHEMA_IfcBSplineCurve_HAS_ControlPointsList +#define SCHEMA_IfcBSplineCurve_HAS_CurveForm +#define SCHEMA_IfcBSplineCurve_HAS_ClosedCurve +#define SCHEMA_IfcBSplineCurve_HAS_SelfIntersect +#define SCHEMA_HAS_IfcBeam +#define SCHEMA_HAS_IfcBeamType +#define SCHEMA_IfcBeamType_HAS_PredefinedType +#define SCHEMA_HAS_IfcBezierCurve +#define SCHEMA_HAS_IfcBlobTexture +#define SCHEMA_IfcBlobTexture_HAS_RasterFormat +#define SCHEMA_IfcBlobTexture_HAS_RasterCode +#define SCHEMA_HAS_IfcBlock +#define SCHEMA_IfcBlock_HAS_XLength +#define SCHEMA_IfcBlock_HAS_YLength +#define SCHEMA_IfcBlock_HAS_ZLength +#define SCHEMA_HAS_IfcBoilerType +#define SCHEMA_IfcBoilerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcBooleanClippingResult +#define SCHEMA_HAS_IfcBooleanResult +#define SCHEMA_IfcBooleanResult_HAS_Operator +#define SCHEMA_IfcBooleanResult_HAS_FirstOperand +#define SCHEMA_IfcBooleanResult_HAS_SecondOperand +#define SCHEMA_HAS_IfcBoundaryCondition +#define SCHEMA_IfcBoundaryCondition_HAS_Name +#define SCHEMA_IfcBoundaryCondition_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoundaryEdgeCondition +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_LinearStiffnessByLengthX +#define SCHEMA_IfcBoundaryEdgeCondition_LinearStiffnessByLengthX_IS_OPTIONAL +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_LinearStiffnessByLengthY +#define SCHEMA_IfcBoundaryEdgeCondition_LinearStiffnessByLengthY_IS_OPTIONAL +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_LinearStiffnessByLengthZ +#define SCHEMA_IfcBoundaryEdgeCondition_LinearStiffnessByLengthZ_IS_OPTIONAL +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_RotationalStiffnessByLengthX +#define SCHEMA_IfcBoundaryEdgeCondition_RotationalStiffnessByLengthX_IS_OPTIONAL +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_RotationalStiffnessByLengthY +#define SCHEMA_IfcBoundaryEdgeCondition_RotationalStiffnessByLengthY_IS_OPTIONAL +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_RotationalStiffnessByLengthZ +#define SCHEMA_IfcBoundaryEdgeCondition_RotationalStiffnessByLengthZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoundaryFaceCondition +#define SCHEMA_IfcBoundaryFaceCondition_HAS_LinearStiffnessByAreaX +#define SCHEMA_IfcBoundaryFaceCondition_LinearStiffnessByAreaX_IS_OPTIONAL +#define SCHEMA_IfcBoundaryFaceCondition_HAS_LinearStiffnessByAreaY +#define SCHEMA_IfcBoundaryFaceCondition_LinearStiffnessByAreaY_IS_OPTIONAL +#define SCHEMA_IfcBoundaryFaceCondition_HAS_LinearStiffnessByAreaZ +#define SCHEMA_IfcBoundaryFaceCondition_LinearStiffnessByAreaZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoundaryNodeCondition +#define SCHEMA_IfcBoundaryNodeCondition_HAS_LinearStiffnessX +#define SCHEMA_IfcBoundaryNodeCondition_LinearStiffnessX_IS_OPTIONAL +#define SCHEMA_IfcBoundaryNodeCondition_HAS_LinearStiffnessY +#define SCHEMA_IfcBoundaryNodeCondition_LinearStiffnessY_IS_OPTIONAL +#define SCHEMA_IfcBoundaryNodeCondition_HAS_LinearStiffnessZ +#define SCHEMA_IfcBoundaryNodeCondition_LinearStiffnessZ_IS_OPTIONAL +#define SCHEMA_IfcBoundaryNodeCondition_HAS_RotationalStiffnessX +#define SCHEMA_IfcBoundaryNodeCondition_RotationalStiffnessX_IS_OPTIONAL +#define SCHEMA_IfcBoundaryNodeCondition_HAS_RotationalStiffnessY +#define SCHEMA_IfcBoundaryNodeCondition_RotationalStiffnessY_IS_OPTIONAL +#define SCHEMA_IfcBoundaryNodeCondition_HAS_RotationalStiffnessZ +#define SCHEMA_IfcBoundaryNodeCondition_RotationalStiffnessZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoundaryNodeConditionWarping +#define SCHEMA_IfcBoundaryNodeConditionWarping_HAS_WarpingStiffness +#define SCHEMA_IfcBoundaryNodeConditionWarping_WarpingStiffness_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoundedCurve +#define SCHEMA_HAS_IfcBoundedSurface +#define SCHEMA_HAS_IfcBoundingBox +#define SCHEMA_IfcBoundingBox_HAS_Corner +#define SCHEMA_IfcBoundingBox_HAS_XDim +#define SCHEMA_IfcBoundingBox_HAS_YDim +#define SCHEMA_IfcBoundingBox_HAS_ZDim +#define SCHEMA_HAS_IfcBoxedHalfSpace +#define SCHEMA_IfcBoxedHalfSpace_HAS_Enclosure +#define SCHEMA_HAS_IfcBuilding +#define SCHEMA_IfcBuilding_HAS_ElevationOfRefHeight +#define SCHEMA_IfcBuilding_ElevationOfRefHeight_IS_OPTIONAL +#define SCHEMA_IfcBuilding_HAS_ElevationOfTerrain +#define SCHEMA_IfcBuilding_ElevationOfTerrain_IS_OPTIONAL +#define SCHEMA_IfcBuilding_HAS_BuildingAddress +#define SCHEMA_IfcBuilding_BuildingAddress_IS_OPTIONAL +#define SCHEMA_HAS_IfcBuildingElement +#define SCHEMA_HAS_IfcBuildingElementComponent +#define SCHEMA_HAS_IfcBuildingElementPart +#define SCHEMA_HAS_IfcBuildingElementProxy +#define SCHEMA_IfcBuildingElementProxy_HAS_CompositionType +#define SCHEMA_IfcBuildingElementProxy_CompositionType_IS_OPTIONAL +#define SCHEMA_HAS_IfcBuildingElementProxyType +#define SCHEMA_IfcBuildingElementProxyType_HAS_PredefinedType +#define SCHEMA_HAS_IfcBuildingElementType +#define SCHEMA_HAS_IfcBuildingStorey +#define SCHEMA_IfcBuildingStorey_HAS_Elevation +#define SCHEMA_IfcBuildingStorey_Elevation_IS_OPTIONAL +#define SCHEMA_HAS_IfcCShapeProfileDef +#define SCHEMA_IfcCShapeProfileDef_HAS_Depth +#define SCHEMA_IfcCShapeProfileDef_HAS_Width +#define SCHEMA_IfcCShapeProfileDef_HAS_WallThickness +#define SCHEMA_IfcCShapeProfileDef_HAS_Girth +#define SCHEMA_IfcCShapeProfileDef_HAS_InternalFilletRadius +#define SCHEMA_IfcCShapeProfileDef_InternalFilletRadius_IS_OPTIONAL +#define SCHEMA_IfcCShapeProfileDef_HAS_CentreOfGravityInX +#define SCHEMA_IfcCShapeProfileDef_CentreOfGravityInX_IS_OPTIONAL +#define SCHEMA_HAS_IfcCableCarrierFittingType +#define SCHEMA_IfcCableCarrierFittingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCableCarrierSegmentType +#define SCHEMA_IfcCableCarrierSegmentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCableSegmentType +#define SCHEMA_IfcCableSegmentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCalendarDate +#define SCHEMA_IfcCalendarDate_HAS_DayComponent +#define SCHEMA_IfcCalendarDate_HAS_MonthComponent +#define SCHEMA_IfcCalendarDate_HAS_YearComponent +#define SCHEMA_HAS_IfcCartesianPoint +#define SCHEMA_IfcCartesianPoint_HAS_Coordinates +#define SCHEMA_HAS_IfcCartesianTransformationOperator +#define SCHEMA_IfcCartesianTransformationOperator_HAS_Axis1 +#define SCHEMA_IfcCartesianTransformationOperator_Axis1_IS_OPTIONAL +#define SCHEMA_IfcCartesianTransformationOperator_HAS_Axis2 +#define SCHEMA_IfcCartesianTransformationOperator_Axis2_IS_OPTIONAL +#define SCHEMA_IfcCartesianTransformationOperator_HAS_LocalOrigin +#define SCHEMA_IfcCartesianTransformationOperator_HAS_Scale +#define SCHEMA_IfcCartesianTransformationOperator_Scale_IS_OPTIONAL +#define SCHEMA_HAS_IfcCartesianTransformationOperator2D +#define SCHEMA_HAS_IfcCartesianTransformationOperator2DnonUniform +#define SCHEMA_IfcCartesianTransformationOperator2DnonUniform_HAS_Scale2 +#define SCHEMA_IfcCartesianTransformationOperator2DnonUniform_Scale2_IS_OPTIONAL +#define SCHEMA_HAS_IfcCartesianTransformationOperator3D +#define SCHEMA_IfcCartesianTransformationOperator3D_HAS_Axis3 +#define SCHEMA_IfcCartesianTransformationOperator3D_Axis3_IS_OPTIONAL +#define SCHEMA_HAS_IfcCartesianTransformationOperator3DnonUniform +#define SCHEMA_IfcCartesianTransformationOperator3DnonUniform_HAS_Scale2 +#define SCHEMA_IfcCartesianTransformationOperator3DnonUniform_Scale2_IS_OPTIONAL +#define SCHEMA_IfcCartesianTransformationOperator3DnonUniform_HAS_Scale3 +#define SCHEMA_IfcCartesianTransformationOperator3DnonUniform_Scale3_IS_OPTIONAL +#define SCHEMA_HAS_IfcCenterLineProfileDef +#define SCHEMA_IfcCenterLineProfileDef_HAS_Thickness +#define SCHEMA_HAS_IfcChamferEdgeFeature +#define SCHEMA_IfcChamferEdgeFeature_HAS_Width +#define SCHEMA_IfcChamferEdgeFeature_Width_IS_OPTIONAL +#define SCHEMA_IfcChamferEdgeFeature_HAS_Height +#define SCHEMA_IfcChamferEdgeFeature_Height_IS_OPTIONAL +#define SCHEMA_HAS_IfcChillerType +#define SCHEMA_IfcChillerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCircle +#define SCHEMA_IfcCircle_HAS_Radius +#define SCHEMA_HAS_IfcCircleHollowProfileDef +#define SCHEMA_IfcCircleHollowProfileDef_HAS_WallThickness +#define SCHEMA_HAS_IfcCircleProfileDef +#define SCHEMA_IfcCircleProfileDef_HAS_Radius +#define SCHEMA_HAS_IfcClassification +#define SCHEMA_IfcClassification_HAS_Source +#define SCHEMA_IfcClassification_HAS_Edition +#define SCHEMA_IfcClassification_HAS_EditionDate +#define SCHEMA_IfcClassification_EditionDate_IS_OPTIONAL +#define SCHEMA_IfcClassification_HAS_Name +#define SCHEMA_HAS_IfcClassificationItem +#define SCHEMA_IfcClassificationItem_HAS_Notation +#define SCHEMA_IfcClassificationItem_HAS_ItemOf +#define SCHEMA_IfcClassificationItem_ItemOf_IS_OPTIONAL +#define SCHEMA_IfcClassificationItem_HAS_Title +#define SCHEMA_HAS_IfcClassificationItemRelationship +#define SCHEMA_IfcClassificationItemRelationship_HAS_RelatingItem +#define SCHEMA_IfcClassificationItemRelationship_HAS_RelatedItems +#define SCHEMA_HAS_IfcClassificationNotation +#define SCHEMA_IfcClassificationNotation_HAS_NotationFacets +#define SCHEMA_HAS_IfcClassificationNotationFacet +#define SCHEMA_IfcClassificationNotationFacet_HAS_NotationValue +#define SCHEMA_HAS_IfcClassificationReference +#define SCHEMA_IfcClassificationReference_HAS_ReferencedSource +#define SCHEMA_IfcClassificationReference_ReferencedSource_IS_OPTIONAL +#define SCHEMA_HAS_IfcClosedShell +#define SCHEMA_HAS_IfcCoilType +#define SCHEMA_IfcCoilType_HAS_PredefinedType +#define SCHEMA_HAS_IfcColourRgb +#define SCHEMA_IfcColourRgb_HAS_Red +#define SCHEMA_IfcColourRgb_HAS_Green +#define SCHEMA_IfcColourRgb_HAS_Blue +#define SCHEMA_HAS_IfcColourSpecification +#define SCHEMA_IfcColourSpecification_HAS_Name +#define SCHEMA_IfcColourSpecification_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcColumn +#define SCHEMA_HAS_IfcColumnType +#define SCHEMA_IfcColumnType_HAS_PredefinedType +#define SCHEMA_HAS_IfcComplexProperty +#define SCHEMA_IfcComplexProperty_HAS_UsageName +#define SCHEMA_IfcComplexProperty_HAS_HasProperties +#define SCHEMA_HAS_IfcCompositeCurve +#define SCHEMA_IfcCompositeCurve_HAS_Segments +#define SCHEMA_IfcCompositeCurve_HAS_SelfIntersect +#define SCHEMA_HAS_IfcCompositeCurveSegment +#define SCHEMA_IfcCompositeCurveSegment_HAS_Transition +#define SCHEMA_IfcCompositeCurveSegment_HAS_SameSense +#define SCHEMA_IfcCompositeCurveSegment_HAS_ParentCurve +#define SCHEMA_HAS_IfcCompositeProfileDef +#define SCHEMA_IfcCompositeProfileDef_HAS_Profiles +#define SCHEMA_IfcCompositeProfileDef_HAS_Label +#define SCHEMA_IfcCompositeProfileDef_Label_IS_OPTIONAL +#define SCHEMA_HAS_IfcCompressorType +#define SCHEMA_IfcCompressorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCondenserType +#define SCHEMA_IfcCondenserType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCondition +#define SCHEMA_HAS_IfcConditionCriterion +#define SCHEMA_IfcConditionCriterion_HAS_Criterion +#define SCHEMA_IfcConditionCriterion_HAS_CriterionDateTime +#define SCHEMA_HAS_IfcConic +#define SCHEMA_IfcConic_HAS_Position +#define SCHEMA_HAS_IfcConnectedFaceSet +#define SCHEMA_IfcConnectedFaceSet_HAS_CfsFaces +#define SCHEMA_HAS_IfcConnectionCurveGeometry +#define SCHEMA_IfcConnectionCurveGeometry_HAS_CurveOnRelatingElement +#define SCHEMA_IfcConnectionCurveGeometry_HAS_CurveOnRelatedElement +#define SCHEMA_IfcConnectionCurveGeometry_CurveOnRelatedElement_IS_OPTIONAL +#define SCHEMA_HAS_IfcConnectionGeometry +#define SCHEMA_HAS_IfcConnectionPointEccentricity +#define SCHEMA_IfcConnectionPointEccentricity_HAS_EccentricityInX +#define SCHEMA_IfcConnectionPointEccentricity_EccentricityInX_IS_OPTIONAL +#define SCHEMA_IfcConnectionPointEccentricity_HAS_EccentricityInY +#define SCHEMA_IfcConnectionPointEccentricity_EccentricityInY_IS_OPTIONAL +#define SCHEMA_IfcConnectionPointEccentricity_HAS_EccentricityInZ +#define SCHEMA_IfcConnectionPointEccentricity_EccentricityInZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcConnectionPointGeometry +#define SCHEMA_IfcConnectionPointGeometry_HAS_PointOnRelatingElement +#define SCHEMA_IfcConnectionPointGeometry_HAS_PointOnRelatedElement +#define SCHEMA_IfcConnectionPointGeometry_PointOnRelatedElement_IS_OPTIONAL +#define SCHEMA_HAS_IfcConnectionPortGeometry +#define SCHEMA_IfcConnectionPortGeometry_HAS_LocationAtRelatingElement +#define SCHEMA_IfcConnectionPortGeometry_HAS_LocationAtRelatedElement +#define SCHEMA_IfcConnectionPortGeometry_LocationAtRelatedElement_IS_OPTIONAL +#define SCHEMA_IfcConnectionPortGeometry_HAS_ProfileOfPort +#define SCHEMA_HAS_IfcConnectionSurfaceGeometry +#define SCHEMA_IfcConnectionSurfaceGeometry_HAS_SurfaceOnRelatingElement +#define SCHEMA_IfcConnectionSurfaceGeometry_HAS_SurfaceOnRelatedElement +#define SCHEMA_IfcConnectionSurfaceGeometry_SurfaceOnRelatedElement_IS_OPTIONAL +#define SCHEMA_HAS_IfcConstraint +#define SCHEMA_IfcConstraint_HAS_Name +#define SCHEMA_IfcConstraint_HAS_Description +#define SCHEMA_IfcConstraint_Description_IS_OPTIONAL +#define SCHEMA_IfcConstraint_HAS_ConstraintGrade +#define SCHEMA_IfcConstraint_HAS_ConstraintSource +#define SCHEMA_IfcConstraint_ConstraintSource_IS_OPTIONAL +#define SCHEMA_IfcConstraint_HAS_CreatingActor +#define SCHEMA_IfcConstraint_CreatingActor_IS_OPTIONAL +#define SCHEMA_IfcConstraint_HAS_CreationTime +#define SCHEMA_IfcConstraint_CreationTime_IS_OPTIONAL +#define SCHEMA_IfcConstraint_HAS_UserDefinedGrade +#define SCHEMA_IfcConstraint_UserDefinedGrade_IS_OPTIONAL +#define SCHEMA_HAS_IfcConstraintAggregationRelationship +#define SCHEMA_IfcConstraintAggregationRelationship_HAS_Name +#define SCHEMA_IfcConstraintAggregationRelationship_Name_IS_OPTIONAL +#define SCHEMA_IfcConstraintAggregationRelationship_HAS_Description +#define SCHEMA_IfcConstraintAggregationRelationship_Description_IS_OPTIONAL +#define SCHEMA_IfcConstraintAggregationRelationship_HAS_RelatingConstraint +#define SCHEMA_IfcConstraintAggregationRelationship_HAS_RelatedConstraints +#define SCHEMA_IfcConstraintAggregationRelationship_HAS_LogicalAggregator +#define SCHEMA_HAS_IfcConstraintClassificationRelationship +#define SCHEMA_IfcConstraintClassificationRelationship_HAS_ClassifiedConstraint +#define SCHEMA_IfcConstraintClassificationRelationship_HAS_RelatedClassifications +#define SCHEMA_HAS_IfcConstraintRelationship +#define SCHEMA_IfcConstraintRelationship_HAS_Name +#define SCHEMA_IfcConstraintRelationship_Name_IS_OPTIONAL +#define SCHEMA_IfcConstraintRelationship_HAS_Description +#define SCHEMA_IfcConstraintRelationship_Description_IS_OPTIONAL +#define SCHEMA_IfcConstraintRelationship_HAS_RelatingConstraint +#define SCHEMA_IfcConstraintRelationship_HAS_RelatedConstraints +#define SCHEMA_HAS_IfcConstructionEquipmentResource +#define SCHEMA_HAS_IfcConstructionMaterialResource +#define SCHEMA_IfcConstructionMaterialResource_HAS_Suppliers +#define SCHEMA_IfcConstructionMaterialResource_Suppliers_IS_OPTIONAL +#define SCHEMA_IfcConstructionMaterialResource_HAS_UsageRatio +#define SCHEMA_IfcConstructionMaterialResource_UsageRatio_IS_OPTIONAL +#define SCHEMA_HAS_IfcConstructionProductResource +#define SCHEMA_HAS_IfcConstructionResource +#define SCHEMA_IfcConstructionResource_HAS_ResourceIdentifier +#define SCHEMA_IfcConstructionResource_ResourceIdentifier_IS_OPTIONAL +#define SCHEMA_IfcConstructionResource_HAS_ResourceGroup +#define SCHEMA_IfcConstructionResource_ResourceGroup_IS_OPTIONAL +#define SCHEMA_IfcConstructionResource_HAS_ResourceConsumption +#define SCHEMA_IfcConstructionResource_ResourceConsumption_IS_OPTIONAL +#define SCHEMA_IfcConstructionResource_HAS_BaseQuantity +#define SCHEMA_IfcConstructionResource_BaseQuantity_IS_OPTIONAL +#define SCHEMA_HAS_IfcContextDependentUnit +#define SCHEMA_IfcContextDependentUnit_HAS_Name +#define SCHEMA_HAS_IfcControl +#define SCHEMA_HAS_IfcControllerType +#define SCHEMA_IfcControllerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcConversionBasedUnit +#define SCHEMA_IfcConversionBasedUnit_HAS_Name +#define SCHEMA_IfcConversionBasedUnit_HAS_ConversionFactor +#define SCHEMA_HAS_IfcCooledBeamType +#define SCHEMA_IfcCooledBeamType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCoolingTowerType +#define SCHEMA_IfcCoolingTowerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCoordinatedUniversalTimeOffset +#define SCHEMA_IfcCoordinatedUniversalTimeOffset_HAS_HourOffset +#define SCHEMA_IfcCoordinatedUniversalTimeOffset_HAS_MinuteOffset +#define SCHEMA_IfcCoordinatedUniversalTimeOffset_MinuteOffset_IS_OPTIONAL +#define SCHEMA_IfcCoordinatedUniversalTimeOffset_HAS_Sense +#define SCHEMA_HAS_IfcCostItem +#define SCHEMA_HAS_IfcCostSchedule +#define SCHEMA_IfcCostSchedule_HAS_SubmittedBy +#define SCHEMA_IfcCostSchedule_SubmittedBy_IS_OPTIONAL +#define SCHEMA_IfcCostSchedule_HAS_PreparedBy +#define SCHEMA_IfcCostSchedule_PreparedBy_IS_OPTIONAL +#define SCHEMA_IfcCostSchedule_HAS_SubmittedOn +#define SCHEMA_IfcCostSchedule_SubmittedOn_IS_OPTIONAL +#define SCHEMA_IfcCostSchedule_HAS_Status +#define SCHEMA_IfcCostSchedule_Status_IS_OPTIONAL +#define SCHEMA_IfcCostSchedule_HAS_TargetUsers +#define SCHEMA_IfcCostSchedule_TargetUsers_IS_OPTIONAL +#define SCHEMA_IfcCostSchedule_HAS_UpdateDate +#define SCHEMA_IfcCostSchedule_UpdateDate_IS_OPTIONAL +#define SCHEMA_IfcCostSchedule_HAS_ID +#define SCHEMA_IfcCostSchedule_HAS_PredefinedType +#define SCHEMA_HAS_IfcCostValue +#define SCHEMA_IfcCostValue_HAS_CostType +#define SCHEMA_IfcCostValue_HAS_Condition +#define SCHEMA_IfcCostValue_Condition_IS_OPTIONAL +#define SCHEMA_HAS_IfcCovering +#define SCHEMA_IfcCovering_HAS_PredefinedType +#define SCHEMA_IfcCovering_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCoveringType +#define SCHEMA_IfcCoveringType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCraneRailAShapeProfileDef +#define SCHEMA_IfcCraneRailAShapeProfileDef_HAS_OverallHeight +#define SCHEMA_IfcCraneRailAShapeProfileDef_HAS_BaseWidth2 +#define SCHEMA_IfcCraneRailAShapeProfileDef_HAS_Radius +#define SCHEMA_IfcCraneRailAShapeProfileDef_Radius_IS_OPTIONAL +#define SCHEMA_IfcCraneRailAShapeProfileDef_HAS_HeadWidth +#define SCHEMA_IfcCraneRailAShapeProfileDef_HAS_HeadDepth2 +#define SCHEMA_IfcCraneRailAShapeProfileDef_HAS_HeadDepth3 +#define SCHEMA_IfcCraneRailAShapeProfileDef_HAS_WebThickness +#define SCHEMA_IfcCraneRailAShapeProfileDef_HAS_BaseWidth4 +#define SCHEMA_IfcCraneRailAShapeProfileDef_HAS_BaseDepth1 +#define SCHEMA_IfcCraneRailAShapeProfileDef_HAS_BaseDepth2 +#define SCHEMA_IfcCraneRailAShapeProfileDef_HAS_BaseDepth3 +#define SCHEMA_IfcCraneRailAShapeProfileDef_HAS_CentreOfGravityInY +#define SCHEMA_IfcCraneRailAShapeProfileDef_CentreOfGravityInY_IS_OPTIONAL +#define SCHEMA_HAS_IfcCraneRailFShapeProfileDef +#define SCHEMA_IfcCraneRailFShapeProfileDef_HAS_OverallHeight +#define SCHEMA_IfcCraneRailFShapeProfileDef_HAS_HeadWidth +#define SCHEMA_IfcCraneRailFShapeProfileDef_HAS_Radius +#define SCHEMA_IfcCraneRailFShapeProfileDef_Radius_IS_OPTIONAL +#define SCHEMA_IfcCraneRailFShapeProfileDef_HAS_HeadDepth2 +#define SCHEMA_IfcCraneRailFShapeProfileDef_HAS_HeadDepth3 +#define SCHEMA_IfcCraneRailFShapeProfileDef_HAS_WebThickness +#define SCHEMA_IfcCraneRailFShapeProfileDef_HAS_BaseDepth1 +#define SCHEMA_IfcCraneRailFShapeProfileDef_HAS_BaseDepth2 +#define SCHEMA_IfcCraneRailFShapeProfileDef_HAS_CentreOfGravityInY +#define SCHEMA_IfcCraneRailFShapeProfileDef_CentreOfGravityInY_IS_OPTIONAL +#define SCHEMA_HAS_IfcCrewResource +#define SCHEMA_HAS_IfcCsgPrimitive3D +#define SCHEMA_IfcCsgPrimitive3D_HAS_Position +#define SCHEMA_HAS_IfcCsgSolid +#define SCHEMA_IfcCsgSolid_HAS_TreeRootExpression +#define SCHEMA_HAS_IfcCurrencyRelationship +#define SCHEMA_IfcCurrencyRelationship_HAS_RelatingMonetaryUnit +#define SCHEMA_IfcCurrencyRelationship_HAS_RelatedMonetaryUnit +#define SCHEMA_IfcCurrencyRelationship_HAS_ExchangeRate +#define SCHEMA_IfcCurrencyRelationship_HAS_RateDateTime +#define SCHEMA_IfcCurrencyRelationship_HAS_RateSource +#define SCHEMA_IfcCurrencyRelationship_RateSource_IS_OPTIONAL +#define SCHEMA_HAS_IfcCurtainWall +#define SCHEMA_HAS_IfcCurtainWallType +#define SCHEMA_IfcCurtainWallType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCurve +#define SCHEMA_HAS_IfcCurveBoundedPlane +#define SCHEMA_IfcCurveBoundedPlane_HAS_BasisSurface +#define SCHEMA_IfcCurveBoundedPlane_HAS_OuterBoundary +#define SCHEMA_IfcCurveBoundedPlane_HAS_InnerBoundaries +#define SCHEMA_HAS_IfcCurveStyle +#define SCHEMA_IfcCurveStyle_HAS_CurveFont +#define SCHEMA_IfcCurveStyle_CurveFont_IS_OPTIONAL +#define SCHEMA_IfcCurveStyle_HAS_CurveWidth +#define SCHEMA_IfcCurveStyle_CurveWidth_IS_OPTIONAL +#define SCHEMA_IfcCurveStyle_HAS_CurveColour +#define SCHEMA_IfcCurveStyle_CurveColour_IS_OPTIONAL +#define SCHEMA_HAS_IfcCurveStyleFont +#define SCHEMA_IfcCurveStyleFont_HAS_Name +#define SCHEMA_IfcCurveStyleFont_Name_IS_OPTIONAL +#define SCHEMA_IfcCurveStyleFont_HAS_PatternList +#define SCHEMA_HAS_IfcCurveStyleFontAndScaling +#define SCHEMA_IfcCurveStyleFontAndScaling_HAS_Name +#define SCHEMA_IfcCurveStyleFontAndScaling_Name_IS_OPTIONAL +#define SCHEMA_IfcCurveStyleFontAndScaling_HAS_CurveFont +#define SCHEMA_IfcCurveStyleFontAndScaling_HAS_CurveFontScaling +#define SCHEMA_HAS_IfcCurveStyleFontPattern +#define SCHEMA_IfcCurveStyleFontPattern_HAS_VisibleSegmentLength +#define SCHEMA_IfcCurveStyleFontPattern_HAS_InvisibleSegmentLength +#define SCHEMA_HAS_IfcDamperType +#define SCHEMA_IfcDamperType_HAS_PredefinedType +#define SCHEMA_HAS_IfcDateAndTime +#define SCHEMA_IfcDateAndTime_HAS_DateComponent +#define SCHEMA_IfcDateAndTime_HAS_TimeComponent +#define SCHEMA_HAS_IfcDefinedSymbol +#define SCHEMA_IfcDefinedSymbol_HAS_Definition +#define SCHEMA_IfcDefinedSymbol_HAS_Target +#define SCHEMA_HAS_IfcDerivedProfileDef +#define SCHEMA_IfcDerivedProfileDef_HAS_ParentProfile +#define SCHEMA_IfcDerivedProfileDef_HAS_Operator +#define SCHEMA_IfcDerivedProfileDef_HAS_Label +#define SCHEMA_IfcDerivedProfileDef_Label_IS_OPTIONAL +#define SCHEMA_HAS_IfcDerivedUnit +#define SCHEMA_IfcDerivedUnit_HAS_Elements +#define SCHEMA_IfcDerivedUnit_HAS_UnitType +#define SCHEMA_IfcDerivedUnit_HAS_UserDefinedType +#define SCHEMA_IfcDerivedUnit_UserDefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDerivedUnitElement +#define SCHEMA_IfcDerivedUnitElement_HAS_Unit +#define SCHEMA_IfcDerivedUnitElement_HAS_Exponent +#define SCHEMA_HAS_IfcDiameterDimension +#define SCHEMA_HAS_IfcDimensionCalloutRelationship +#define SCHEMA_HAS_IfcDimensionCurve +#define SCHEMA_HAS_IfcDimensionCurveDirectedCallout +#define SCHEMA_HAS_IfcDimensionCurveTerminator +#define SCHEMA_IfcDimensionCurveTerminator_HAS_Role +#define SCHEMA_HAS_IfcDimensionPair +#define SCHEMA_HAS_IfcDimensionalExponents +#define SCHEMA_IfcDimensionalExponents_HAS_LengthExponent +#define SCHEMA_IfcDimensionalExponents_HAS_MassExponent +#define SCHEMA_IfcDimensionalExponents_HAS_TimeExponent +#define SCHEMA_IfcDimensionalExponents_HAS_ElectricCurrentExponent +#define SCHEMA_IfcDimensionalExponents_HAS_ThermodynamicTemperatureExponent +#define SCHEMA_IfcDimensionalExponents_HAS_AmountOfSubstanceExponent +#define SCHEMA_IfcDimensionalExponents_HAS_LuminousIntensityExponent +#define SCHEMA_HAS_IfcDirection +#define SCHEMA_IfcDirection_HAS_DirectionRatios +#define SCHEMA_HAS_IfcDiscreteAccessory +#define SCHEMA_HAS_IfcDiscreteAccessoryType +#define SCHEMA_HAS_IfcDistributionChamberElement +#define SCHEMA_HAS_IfcDistributionChamberElementType +#define SCHEMA_IfcDistributionChamberElementType_HAS_PredefinedType +#define SCHEMA_HAS_IfcDistributionControlElement +#define SCHEMA_IfcDistributionControlElement_HAS_ControlElementId +#define SCHEMA_IfcDistributionControlElement_ControlElementId_IS_OPTIONAL +#define SCHEMA_HAS_IfcDistributionControlElementType +#define SCHEMA_HAS_IfcDistributionElement +#define SCHEMA_HAS_IfcDistributionElementType +#define SCHEMA_HAS_IfcDistributionFlowElement +#define SCHEMA_HAS_IfcDistributionFlowElementType +#define SCHEMA_HAS_IfcDistributionPort +#define SCHEMA_IfcDistributionPort_HAS_FlowDirection +#define SCHEMA_IfcDistributionPort_FlowDirection_IS_OPTIONAL +#define SCHEMA_HAS_IfcDocumentElectronicFormat +#define SCHEMA_IfcDocumentElectronicFormat_HAS_FileExtension +#define SCHEMA_IfcDocumentElectronicFormat_FileExtension_IS_OPTIONAL +#define SCHEMA_IfcDocumentElectronicFormat_HAS_MimeContentType +#define SCHEMA_IfcDocumentElectronicFormat_MimeContentType_IS_OPTIONAL +#define SCHEMA_IfcDocumentElectronicFormat_HAS_MimeSubtype +#define SCHEMA_IfcDocumentElectronicFormat_MimeSubtype_IS_OPTIONAL +#define SCHEMA_HAS_IfcDocumentInformation +#define SCHEMA_IfcDocumentInformation_HAS_DocumentId +#define SCHEMA_IfcDocumentInformation_HAS_Name +#define SCHEMA_IfcDocumentInformation_HAS_Description +#define SCHEMA_IfcDocumentInformation_Description_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_DocumentReferences +#define SCHEMA_IfcDocumentInformation_DocumentReferences_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Purpose +#define SCHEMA_IfcDocumentInformation_Purpose_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_IntendedUse +#define SCHEMA_IfcDocumentInformation_IntendedUse_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Scope +#define SCHEMA_IfcDocumentInformation_Scope_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Revision +#define SCHEMA_IfcDocumentInformation_Revision_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_DocumentOwner +#define SCHEMA_IfcDocumentInformation_DocumentOwner_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Editors +#define SCHEMA_IfcDocumentInformation_Editors_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_CreationTime +#define SCHEMA_IfcDocumentInformation_CreationTime_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_LastRevisionTime +#define SCHEMA_IfcDocumentInformation_LastRevisionTime_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_ElectronicFormat +#define SCHEMA_IfcDocumentInformation_ElectronicFormat_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_ValidFrom +#define SCHEMA_IfcDocumentInformation_ValidFrom_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_ValidUntil +#define SCHEMA_IfcDocumentInformation_ValidUntil_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Confidentiality +#define SCHEMA_IfcDocumentInformation_Confidentiality_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Status +#define SCHEMA_IfcDocumentInformation_Status_IS_OPTIONAL +#define SCHEMA_HAS_IfcDocumentInformationRelationship +#define SCHEMA_IfcDocumentInformationRelationship_HAS_RelatingDocument +#define SCHEMA_IfcDocumentInformationRelationship_HAS_RelatedDocuments +#define SCHEMA_IfcDocumentInformationRelationship_HAS_RelationshipType +#define SCHEMA_IfcDocumentInformationRelationship_RelationshipType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDocumentReference +#define SCHEMA_HAS_IfcDoor +#define SCHEMA_IfcDoor_HAS_OverallHeight +#define SCHEMA_IfcDoor_OverallHeight_IS_OPTIONAL +#define SCHEMA_IfcDoor_HAS_OverallWidth +#define SCHEMA_IfcDoor_OverallWidth_IS_OPTIONAL +#define SCHEMA_HAS_IfcDoorLiningProperties +#define SCHEMA_IfcDoorLiningProperties_HAS_LiningDepth +#define SCHEMA_IfcDoorLiningProperties_LiningDepth_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_LiningThickness +#define SCHEMA_IfcDoorLiningProperties_LiningThickness_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_ThresholdDepth +#define SCHEMA_IfcDoorLiningProperties_ThresholdDepth_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_ThresholdThickness +#define SCHEMA_IfcDoorLiningProperties_ThresholdThickness_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_TransomThickness +#define SCHEMA_IfcDoorLiningProperties_TransomThickness_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_TransomOffset +#define SCHEMA_IfcDoorLiningProperties_TransomOffset_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_LiningOffset +#define SCHEMA_IfcDoorLiningProperties_LiningOffset_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_ThresholdOffset +#define SCHEMA_IfcDoorLiningProperties_ThresholdOffset_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_CasingThickness +#define SCHEMA_IfcDoorLiningProperties_CasingThickness_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_CasingDepth +#define SCHEMA_IfcDoorLiningProperties_CasingDepth_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_ShapeAspectStyle +#define SCHEMA_IfcDoorLiningProperties_ShapeAspectStyle_IS_OPTIONAL +#define SCHEMA_HAS_IfcDoorPanelProperties +#define SCHEMA_IfcDoorPanelProperties_HAS_PanelDepth +#define SCHEMA_IfcDoorPanelProperties_PanelDepth_IS_OPTIONAL +#define SCHEMA_IfcDoorPanelProperties_HAS_PanelOperation +#define SCHEMA_IfcDoorPanelProperties_HAS_PanelWidth +#define SCHEMA_IfcDoorPanelProperties_PanelWidth_IS_OPTIONAL +#define SCHEMA_IfcDoorPanelProperties_HAS_PanelPosition +#define SCHEMA_IfcDoorPanelProperties_HAS_ShapeAspectStyle +#define SCHEMA_IfcDoorPanelProperties_ShapeAspectStyle_IS_OPTIONAL +#define SCHEMA_HAS_IfcDoorStyle +#define SCHEMA_IfcDoorStyle_HAS_OperationType +#define SCHEMA_IfcDoorStyle_HAS_ConstructionType +#define SCHEMA_IfcDoorStyle_HAS_ParameterTakesPrecedence +#define SCHEMA_IfcDoorStyle_HAS_Sizeable +#define SCHEMA_HAS_IfcDraughtingCallout +#define SCHEMA_IfcDraughtingCallout_HAS_Contents +#define SCHEMA_HAS_IfcDraughtingCalloutRelationship +#define SCHEMA_IfcDraughtingCalloutRelationship_HAS_Name +#define SCHEMA_IfcDraughtingCalloutRelationship_Name_IS_OPTIONAL +#define SCHEMA_IfcDraughtingCalloutRelationship_HAS_Description +#define SCHEMA_IfcDraughtingCalloutRelationship_Description_IS_OPTIONAL +#define SCHEMA_IfcDraughtingCalloutRelationship_HAS_RelatingDraughtingCallout +#define SCHEMA_IfcDraughtingCalloutRelationship_HAS_RelatedDraughtingCallout +#define SCHEMA_HAS_IfcDraughtingPreDefinedColour +#define SCHEMA_HAS_IfcDraughtingPreDefinedCurveFont +#define SCHEMA_HAS_IfcDraughtingPreDefinedTextFont +#define SCHEMA_HAS_IfcDuctFittingType +#define SCHEMA_IfcDuctFittingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcDuctSegmentType +#define SCHEMA_IfcDuctSegmentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcDuctSilencerType +#define SCHEMA_IfcDuctSilencerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcEdge +#define SCHEMA_IfcEdge_HAS_EdgeStart +#define SCHEMA_IfcEdge_HAS_EdgeEnd +#define SCHEMA_HAS_IfcEdgeCurve +#define SCHEMA_IfcEdgeCurve_HAS_EdgeGeometry +#define SCHEMA_IfcEdgeCurve_HAS_SameSense +#define SCHEMA_HAS_IfcEdgeFeature +#define SCHEMA_IfcEdgeFeature_HAS_FeatureLength +#define SCHEMA_IfcEdgeFeature_FeatureLength_IS_OPTIONAL +#define SCHEMA_HAS_IfcEdgeLoop +#define SCHEMA_IfcEdgeLoop_HAS_EdgeList +#define SCHEMA_HAS_IfcElectricApplianceType +#define SCHEMA_IfcElectricApplianceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElectricDistributionPoint +#define SCHEMA_IfcElectricDistributionPoint_HAS_DistributionPointFunction +#define SCHEMA_IfcElectricDistributionPoint_HAS_UserDefinedFunction +#define SCHEMA_IfcElectricDistributionPoint_UserDefinedFunction_IS_OPTIONAL +#define SCHEMA_HAS_IfcElectricFlowStorageDeviceType +#define SCHEMA_IfcElectricFlowStorageDeviceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElectricGeneratorType +#define SCHEMA_IfcElectricGeneratorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElectricHeaterType +#define SCHEMA_IfcElectricHeaterType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElectricMotorType +#define SCHEMA_IfcElectricMotorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElectricTimeControlType +#define SCHEMA_IfcElectricTimeControlType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElectricalBaseProperties +#define SCHEMA_IfcElectricalBaseProperties_HAS_ElectricCurrentType +#define SCHEMA_IfcElectricalBaseProperties_ElectricCurrentType_IS_OPTIONAL +#define SCHEMA_IfcElectricalBaseProperties_HAS_InputVoltage +#define SCHEMA_IfcElectricalBaseProperties_HAS_InputFrequency +#define SCHEMA_IfcElectricalBaseProperties_HAS_FullLoadCurrent +#define SCHEMA_IfcElectricalBaseProperties_FullLoadCurrent_IS_OPTIONAL +#define SCHEMA_IfcElectricalBaseProperties_HAS_MinimumCircuitCurrent +#define SCHEMA_IfcElectricalBaseProperties_MinimumCircuitCurrent_IS_OPTIONAL +#define SCHEMA_IfcElectricalBaseProperties_HAS_MaximumPowerInput +#define SCHEMA_IfcElectricalBaseProperties_MaximumPowerInput_IS_OPTIONAL +#define SCHEMA_IfcElectricalBaseProperties_HAS_RatedPowerInput +#define SCHEMA_IfcElectricalBaseProperties_RatedPowerInput_IS_OPTIONAL +#define SCHEMA_IfcElectricalBaseProperties_HAS_InputPhase +#define SCHEMA_HAS_IfcElectricalCircuit +#define SCHEMA_HAS_IfcElectricalElement +#define SCHEMA_HAS_IfcElement +#define SCHEMA_IfcElement_HAS_Tag +#define SCHEMA_IfcElement_Tag_IS_OPTIONAL +#define SCHEMA_HAS_IfcElementAssembly +#define SCHEMA_IfcElementAssembly_HAS_AssemblyPlace +#define SCHEMA_IfcElementAssembly_AssemblyPlace_IS_OPTIONAL +#define SCHEMA_IfcElementAssembly_HAS_PredefinedType +#define SCHEMA_HAS_IfcElementComponent +#define SCHEMA_HAS_IfcElementComponentType +#define SCHEMA_HAS_IfcElementQuantity +#define SCHEMA_IfcElementQuantity_HAS_MethodOfMeasurement +#define SCHEMA_IfcElementQuantity_MethodOfMeasurement_IS_OPTIONAL +#define SCHEMA_IfcElementQuantity_HAS_Quantities +#define SCHEMA_HAS_IfcElementType +#define SCHEMA_IfcElementType_HAS_ElementType +#define SCHEMA_IfcElementType_ElementType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElementarySurface +#define SCHEMA_IfcElementarySurface_HAS_Position +#define SCHEMA_HAS_IfcEllipse +#define SCHEMA_IfcEllipse_HAS_SemiAxis1 +#define SCHEMA_IfcEllipse_HAS_SemiAxis2 +#define SCHEMA_HAS_IfcEllipseProfileDef +#define SCHEMA_IfcEllipseProfileDef_HAS_SemiAxis1 +#define SCHEMA_IfcEllipseProfileDef_HAS_SemiAxis2 +#define SCHEMA_HAS_IfcEnergyConversionDevice +#define SCHEMA_HAS_IfcEnergyConversionDeviceType +#define SCHEMA_HAS_IfcEnergyProperties +#define SCHEMA_IfcEnergyProperties_HAS_EnergySequence +#define SCHEMA_IfcEnergyProperties_EnergySequence_IS_OPTIONAL +#define SCHEMA_IfcEnergyProperties_HAS_UserDefinedEnergySequence +#define SCHEMA_IfcEnergyProperties_UserDefinedEnergySequence_IS_OPTIONAL +#define SCHEMA_HAS_IfcEnvironmentalImpactValue +#define SCHEMA_IfcEnvironmentalImpactValue_HAS_ImpactType +#define SCHEMA_IfcEnvironmentalImpactValue_HAS_Category +#define SCHEMA_IfcEnvironmentalImpactValue_HAS_UserDefinedCategory +#define SCHEMA_IfcEnvironmentalImpactValue_UserDefinedCategory_IS_OPTIONAL +#define SCHEMA_HAS_IfcEquipmentElement +#define SCHEMA_HAS_IfcEquipmentStandard +#define SCHEMA_HAS_IfcEvaporativeCoolerType +#define SCHEMA_IfcEvaporativeCoolerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcEvaporatorType +#define SCHEMA_IfcEvaporatorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcExtendedMaterialProperties +#define SCHEMA_IfcExtendedMaterialProperties_HAS_ExtendedProperties +#define SCHEMA_IfcExtendedMaterialProperties_HAS_Description +#define SCHEMA_IfcExtendedMaterialProperties_Description_IS_OPTIONAL +#define SCHEMA_IfcExtendedMaterialProperties_HAS_Name +#define SCHEMA_HAS_IfcExternalReference +#define SCHEMA_IfcExternalReference_HAS_Location +#define SCHEMA_IfcExternalReference_Location_IS_OPTIONAL +#define SCHEMA_IfcExternalReference_HAS_ItemReference +#define SCHEMA_IfcExternalReference_ItemReference_IS_OPTIONAL +#define SCHEMA_IfcExternalReference_HAS_Name +#define SCHEMA_IfcExternalReference_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcExternallyDefinedHatchStyle +#define SCHEMA_HAS_IfcExternallyDefinedSurfaceStyle +#define SCHEMA_HAS_IfcExternallyDefinedSymbol +#define SCHEMA_HAS_IfcExternallyDefinedTextFont +#define SCHEMA_HAS_IfcExtrudedAreaSolid +#define SCHEMA_IfcExtrudedAreaSolid_HAS_ExtrudedDirection +#define SCHEMA_IfcExtrudedAreaSolid_HAS_Depth +#define SCHEMA_HAS_IfcFace +#define SCHEMA_IfcFace_HAS_Bounds +#define SCHEMA_HAS_IfcFaceBasedSurfaceModel +#define SCHEMA_IfcFaceBasedSurfaceModel_HAS_FbsmFaces +#define SCHEMA_HAS_IfcFaceBound +#define SCHEMA_IfcFaceBound_HAS_Bound +#define SCHEMA_IfcFaceBound_HAS_Orientation +#define SCHEMA_HAS_IfcFaceOuterBound +#define SCHEMA_HAS_IfcFaceSurface +#define SCHEMA_IfcFaceSurface_HAS_FaceSurface +#define SCHEMA_IfcFaceSurface_HAS_SameSense +#define SCHEMA_HAS_IfcFacetedBrep +#define SCHEMA_HAS_IfcFacetedBrepWithVoids +#define SCHEMA_IfcFacetedBrepWithVoids_HAS_Voids +#define SCHEMA_HAS_IfcFailureConnectionCondition +#define SCHEMA_IfcFailureConnectionCondition_HAS_TensionFailureX +#define SCHEMA_IfcFailureConnectionCondition_TensionFailureX_IS_OPTIONAL +#define SCHEMA_IfcFailureConnectionCondition_HAS_TensionFailureY +#define SCHEMA_IfcFailureConnectionCondition_TensionFailureY_IS_OPTIONAL +#define SCHEMA_IfcFailureConnectionCondition_HAS_TensionFailureZ +#define SCHEMA_IfcFailureConnectionCondition_TensionFailureZ_IS_OPTIONAL +#define SCHEMA_IfcFailureConnectionCondition_HAS_CompressionFailureX +#define SCHEMA_IfcFailureConnectionCondition_CompressionFailureX_IS_OPTIONAL +#define SCHEMA_IfcFailureConnectionCondition_HAS_CompressionFailureY +#define SCHEMA_IfcFailureConnectionCondition_CompressionFailureY_IS_OPTIONAL +#define SCHEMA_IfcFailureConnectionCondition_HAS_CompressionFailureZ +#define SCHEMA_IfcFailureConnectionCondition_CompressionFailureZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcFanType +#define SCHEMA_IfcFanType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFastener +#define SCHEMA_HAS_IfcFastenerType +#define SCHEMA_HAS_IfcFeatureElement +#define SCHEMA_HAS_IfcFeatureElementAddition +#define SCHEMA_HAS_IfcFeatureElementSubtraction +#define SCHEMA_HAS_IfcFillAreaStyle +#define SCHEMA_IfcFillAreaStyle_HAS_FillStyles +#define SCHEMA_HAS_IfcFillAreaStyleHatching +#define SCHEMA_IfcFillAreaStyleHatching_HAS_HatchLineAppearance +#define SCHEMA_IfcFillAreaStyleHatching_HAS_StartOfNextHatchLine +#define SCHEMA_IfcFillAreaStyleHatching_HAS_PointOfReferenceHatchLine +#define SCHEMA_IfcFillAreaStyleHatching_PointOfReferenceHatchLine_IS_OPTIONAL +#define SCHEMA_IfcFillAreaStyleHatching_HAS_PatternStart +#define SCHEMA_IfcFillAreaStyleHatching_PatternStart_IS_OPTIONAL +#define SCHEMA_IfcFillAreaStyleHatching_HAS_HatchLineAngle +#define SCHEMA_HAS_IfcFillAreaStyleTileSymbolWithStyle +#define SCHEMA_IfcFillAreaStyleTileSymbolWithStyle_HAS_Symbol +#define SCHEMA_HAS_IfcFillAreaStyleTiles +#define SCHEMA_IfcFillAreaStyleTiles_HAS_TilingPattern +#define SCHEMA_IfcFillAreaStyleTiles_HAS_Tiles +#define SCHEMA_IfcFillAreaStyleTiles_HAS_TilingScale +#define SCHEMA_HAS_IfcFilterType +#define SCHEMA_IfcFilterType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFireSuppressionTerminalType +#define SCHEMA_IfcFireSuppressionTerminalType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFlowController +#define SCHEMA_HAS_IfcFlowControllerType +#define SCHEMA_HAS_IfcFlowFitting +#define SCHEMA_HAS_IfcFlowFittingType +#define SCHEMA_HAS_IfcFlowInstrumentType +#define SCHEMA_IfcFlowInstrumentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFlowMeterType +#define SCHEMA_IfcFlowMeterType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFlowMovingDevice +#define SCHEMA_HAS_IfcFlowMovingDeviceType +#define SCHEMA_HAS_IfcFlowSegment +#define SCHEMA_HAS_IfcFlowSegmentType +#define SCHEMA_HAS_IfcFlowStorageDevice +#define SCHEMA_HAS_IfcFlowStorageDeviceType +#define SCHEMA_HAS_IfcFlowTerminal +#define SCHEMA_HAS_IfcFlowTerminalType +#define SCHEMA_HAS_IfcFlowTreatmentDevice +#define SCHEMA_HAS_IfcFlowTreatmentDeviceType +#define SCHEMA_HAS_IfcFluidFlowProperties +#define SCHEMA_IfcFluidFlowProperties_HAS_PropertySource +#define SCHEMA_IfcFluidFlowProperties_HAS_FlowConditionTimeSeries +#define SCHEMA_IfcFluidFlowProperties_FlowConditionTimeSeries_IS_OPTIONAL +#define SCHEMA_IfcFluidFlowProperties_HAS_VelocityTimeSeries +#define SCHEMA_IfcFluidFlowProperties_VelocityTimeSeries_IS_OPTIONAL +#define SCHEMA_IfcFluidFlowProperties_HAS_FlowrateTimeSeries +#define SCHEMA_IfcFluidFlowProperties_FlowrateTimeSeries_IS_OPTIONAL +#define SCHEMA_IfcFluidFlowProperties_HAS_Fluid +#define SCHEMA_IfcFluidFlowProperties_HAS_PressureTimeSeries +#define SCHEMA_IfcFluidFlowProperties_PressureTimeSeries_IS_OPTIONAL +#define SCHEMA_IfcFluidFlowProperties_HAS_UserDefinedPropertySource +#define SCHEMA_IfcFluidFlowProperties_UserDefinedPropertySource_IS_OPTIONAL +#define SCHEMA_IfcFluidFlowProperties_HAS_TemperatureSingleValue +#define SCHEMA_IfcFluidFlowProperties_TemperatureSingleValue_IS_OPTIONAL +#define SCHEMA_IfcFluidFlowProperties_HAS_WetBulbTemperatureSingleValue +#define SCHEMA_IfcFluidFlowProperties_WetBulbTemperatureSingleValue_IS_OPTIONAL +#define SCHEMA_IfcFluidFlowProperties_HAS_WetBulbTemperatureTimeSeries +#define SCHEMA_IfcFluidFlowProperties_WetBulbTemperatureTimeSeries_IS_OPTIONAL +#define SCHEMA_IfcFluidFlowProperties_HAS_TemperatureTimeSeries +#define SCHEMA_IfcFluidFlowProperties_TemperatureTimeSeries_IS_OPTIONAL +#define SCHEMA_IfcFluidFlowProperties_HAS_FlowrateSingleValue +#define SCHEMA_IfcFluidFlowProperties_FlowrateSingleValue_IS_OPTIONAL +#define SCHEMA_IfcFluidFlowProperties_HAS_FlowConditionSingleValue +#define SCHEMA_IfcFluidFlowProperties_FlowConditionSingleValue_IS_OPTIONAL +#define SCHEMA_IfcFluidFlowProperties_HAS_VelocitySingleValue +#define SCHEMA_IfcFluidFlowProperties_VelocitySingleValue_IS_OPTIONAL +#define SCHEMA_IfcFluidFlowProperties_HAS_PressureSingleValue +#define SCHEMA_IfcFluidFlowProperties_PressureSingleValue_IS_OPTIONAL +#define SCHEMA_HAS_IfcFooting +#define SCHEMA_IfcFooting_HAS_PredefinedType +#define SCHEMA_HAS_IfcFuelProperties +#define SCHEMA_IfcFuelProperties_HAS_CombustionTemperature +#define SCHEMA_IfcFuelProperties_CombustionTemperature_IS_OPTIONAL +#define SCHEMA_IfcFuelProperties_HAS_CarbonContent +#define SCHEMA_IfcFuelProperties_CarbonContent_IS_OPTIONAL +#define SCHEMA_IfcFuelProperties_HAS_LowerHeatingValue +#define SCHEMA_IfcFuelProperties_LowerHeatingValue_IS_OPTIONAL +#define SCHEMA_IfcFuelProperties_HAS_HigherHeatingValue +#define SCHEMA_IfcFuelProperties_HigherHeatingValue_IS_OPTIONAL +#define SCHEMA_HAS_IfcFurnishingElement +#define SCHEMA_HAS_IfcFurnishingElementType +#define SCHEMA_HAS_IfcFurnitureStandard +#define SCHEMA_HAS_IfcFurnitureType +#define SCHEMA_IfcFurnitureType_HAS_AssemblyPlace +#define SCHEMA_HAS_IfcGasTerminalType +#define SCHEMA_IfcGasTerminalType_HAS_PredefinedType +#define SCHEMA_HAS_IfcGeneralMaterialProperties +#define SCHEMA_IfcGeneralMaterialProperties_HAS_MolecularWeight +#define SCHEMA_IfcGeneralMaterialProperties_MolecularWeight_IS_OPTIONAL +#define SCHEMA_IfcGeneralMaterialProperties_HAS_Porosity +#define SCHEMA_IfcGeneralMaterialProperties_Porosity_IS_OPTIONAL +#define SCHEMA_IfcGeneralMaterialProperties_HAS_MassDensity +#define SCHEMA_IfcGeneralMaterialProperties_MassDensity_IS_OPTIONAL +#define SCHEMA_HAS_IfcGeneralProfileProperties +#define SCHEMA_IfcGeneralProfileProperties_HAS_PhysicalWeight +#define SCHEMA_IfcGeneralProfileProperties_PhysicalWeight_IS_OPTIONAL +#define SCHEMA_IfcGeneralProfileProperties_HAS_Perimeter +#define SCHEMA_IfcGeneralProfileProperties_Perimeter_IS_OPTIONAL +#define SCHEMA_IfcGeneralProfileProperties_HAS_MinimumPlateThickness +#define SCHEMA_IfcGeneralProfileProperties_MinimumPlateThickness_IS_OPTIONAL +#define SCHEMA_IfcGeneralProfileProperties_HAS_MaximumPlateThickness +#define SCHEMA_IfcGeneralProfileProperties_MaximumPlateThickness_IS_OPTIONAL +#define SCHEMA_IfcGeneralProfileProperties_HAS_CrossSectionArea +#define SCHEMA_IfcGeneralProfileProperties_CrossSectionArea_IS_OPTIONAL +#define SCHEMA_HAS_IfcGeometricCurveSet +#define SCHEMA_HAS_IfcGeometricRepresentationContext +#define SCHEMA_IfcGeometricRepresentationContext_HAS_CoordinateSpaceDimension +#define SCHEMA_IfcGeometricRepresentationContext_HAS_Precision +#define SCHEMA_IfcGeometricRepresentationContext_Precision_IS_OPTIONAL +#define SCHEMA_IfcGeometricRepresentationContext_HAS_WorldCoordinateSystem +#define SCHEMA_IfcGeometricRepresentationContext_HAS_TrueNorth +#define SCHEMA_IfcGeometricRepresentationContext_TrueNorth_IS_OPTIONAL +#define SCHEMA_HAS_IfcGeometricRepresentationItem +#define SCHEMA_HAS_IfcGeometricRepresentationSubContext +#define SCHEMA_IfcGeometricRepresentationSubContext_HAS_ParentContext +#define SCHEMA_IfcGeometricRepresentationSubContext_HAS_TargetScale +#define SCHEMA_IfcGeometricRepresentationSubContext_TargetScale_IS_OPTIONAL +#define SCHEMA_IfcGeometricRepresentationSubContext_HAS_TargetView +#define SCHEMA_IfcGeometricRepresentationSubContext_HAS_UserDefinedTargetView +#define SCHEMA_IfcGeometricRepresentationSubContext_UserDefinedTargetView_IS_OPTIONAL +#define SCHEMA_HAS_IfcGeometricSet +#define SCHEMA_IfcGeometricSet_HAS_Elements +#define SCHEMA_HAS_IfcGrid +#define SCHEMA_IfcGrid_HAS_UAxes +#define SCHEMA_IfcGrid_HAS_VAxes +#define SCHEMA_IfcGrid_HAS_WAxes +#define SCHEMA_IfcGrid_WAxes_IS_OPTIONAL +#define SCHEMA_HAS_IfcGridAxis +#define SCHEMA_IfcGridAxis_HAS_AxisTag +#define SCHEMA_IfcGridAxis_AxisTag_IS_OPTIONAL +#define SCHEMA_IfcGridAxis_HAS_AxisCurve +#define SCHEMA_IfcGridAxis_HAS_SameSense +#define SCHEMA_HAS_IfcGridPlacement +#define SCHEMA_IfcGridPlacement_HAS_PlacementLocation +#define SCHEMA_IfcGridPlacement_HAS_PlacementRefDirection +#define SCHEMA_IfcGridPlacement_PlacementRefDirection_IS_OPTIONAL +#define SCHEMA_HAS_IfcGroup +#define SCHEMA_HAS_IfcHalfSpaceSolid +#define SCHEMA_IfcHalfSpaceSolid_HAS_BaseSurface +#define SCHEMA_IfcHalfSpaceSolid_HAS_AgreementFlag +#define SCHEMA_HAS_IfcHeatExchangerType +#define SCHEMA_IfcHeatExchangerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcHumidifierType +#define SCHEMA_IfcHumidifierType_HAS_PredefinedType +#define SCHEMA_HAS_IfcHygroscopicMaterialProperties +#define SCHEMA_IfcHygroscopicMaterialProperties_HAS_UpperVaporResistanceFactor +#define SCHEMA_IfcHygroscopicMaterialProperties_UpperVaporResistanceFactor_IS_OPTIONAL +#define SCHEMA_IfcHygroscopicMaterialProperties_HAS_LowerVaporResistanceFactor +#define SCHEMA_IfcHygroscopicMaterialProperties_LowerVaporResistanceFactor_IS_OPTIONAL +#define SCHEMA_IfcHygroscopicMaterialProperties_HAS_IsothermalMoistureCapacity +#define SCHEMA_IfcHygroscopicMaterialProperties_IsothermalMoistureCapacity_IS_OPTIONAL +#define SCHEMA_IfcHygroscopicMaterialProperties_HAS_VaporPermeability +#define SCHEMA_IfcHygroscopicMaterialProperties_VaporPermeability_IS_OPTIONAL +#define SCHEMA_IfcHygroscopicMaterialProperties_HAS_MoistureDiffusivity +#define SCHEMA_IfcHygroscopicMaterialProperties_MoistureDiffusivity_IS_OPTIONAL +#define SCHEMA_HAS_IfcIShapeProfileDef +#define SCHEMA_IfcIShapeProfileDef_HAS_OverallWidth +#define SCHEMA_IfcIShapeProfileDef_HAS_OverallDepth +#define SCHEMA_IfcIShapeProfileDef_HAS_WebThickness +#define SCHEMA_IfcIShapeProfileDef_HAS_FlangeThickness +#define SCHEMA_IfcIShapeProfileDef_HAS_FilletRadius +#define SCHEMA_IfcIShapeProfileDef_FilletRadius_IS_OPTIONAL +#define SCHEMA_HAS_IfcImageTexture +#define SCHEMA_IfcImageTexture_HAS_UrlReference +#define SCHEMA_HAS_IfcInventory +#define SCHEMA_IfcInventory_HAS_InventoryType +#define SCHEMA_IfcInventory_HAS_Jurisdiction +#define SCHEMA_IfcInventory_HAS_ResponsiblePersons +#define SCHEMA_IfcInventory_HAS_LastUpdateDate +#define SCHEMA_IfcInventory_HAS_CurrentValue +#define SCHEMA_IfcInventory_CurrentValue_IS_OPTIONAL +#define SCHEMA_IfcInventory_HAS_OriginalValue +#define SCHEMA_IfcInventory_OriginalValue_IS_OPTIONAL +#define SCHEMA_HAS_IfcIrregularTimeSeries +#define SCHEMA_IfcIrregularTimeSeries_HAS_Values +#define SCHEMA_HAS_IfcIrregularTimeSeriesValue +#define SCHEMA_IfcIrregularTimeSeriesValue_HAS_TimeStamp +#define SCHEMA_IfcIrregularTimeSeriesValue_HAS_ListValues +#define SCHEMA_HAS_IfcJunctionBoxType +#define SCHEMA_IfcJunctionBoxType_HAS_PredefinedType +#define SCHEMA_HAS_IfcLShapeProfileDef +#define SCHEMA_IfcLShapeProfileDef_HAS_Depth +#define SCHEMA_IfcLShapeProfileDef_HAS_Width +#define SCHEMA_IfcLShapeProfileDef_Width_IS_OPTIONAL +#define SCHEMA_IfcLShapeProfileDef_HAS_Thickness +#define SCHEMA_IfcLShapeProfileDef_HAS_FilletRadius +#define SCHEMA_IfcLShapeProfileDef_FilletRadius_IS_OPTIONAL +#define SCHEMA_IfcLShapeProfileDef_HAS_EdgeRadius +#define SCHEMA_IfcLShapeProfileDef_EdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcLShapeProfileDef_HAS_LegSlope +#define SCHEMA_IfcLShapeProfileDef_LegSlope_IS_OPTIONAL +#define SCHEMA_IfcLShapeProfileDef_HAS_CentreOfGravityInX +#define SCHEMA_IfcLShapeProfileDef_CentreOfGravityInX_IS_OPTIONAL +#define SCHEMA_IfcLShapeProfileDef_HAS_CentreOfGravityInY +#define SCHEMA_IfcLShapeProfileDef_CentreOfGravityInY_IS_OPTIONAL +#define SCHEMA_HAS_IfcLaborResource +#define SCHEMA_IfcLaborResource_HAS_SkillSet +#define SCHEMA_IfcLaborResource_SkillSet_IS_OPTIONAL +#define SCHEMA_HAS_IfcLampType +#define SCHEMA_IfcLampType_HAS_PredefinedType +#define SCHEMA_HAS_IfcLibraryInformation +#define SCHEMA_IfcLibraryInformation_HAS_Name +#define SCHEMA_IfcLibraryInformation_HAS_Version +#define SCHEMA_IfcLibraryInformation_Version_IS_OPTIONAL +#define SCHEMA_IfcLibraryInformation_HAS_Publisher +#define SCHEMA_IfcLibraryInformation_Publisher_IS_OPTIONAL +#define SCHEMA_IfcLibraryInformation_HAS_VersionDate +#define SCHEMA_IfcLibraryInformation_VersionDate_IS_OPTIONAL +#define SCHEMA_IfcLibraryInformation_HAS_LibraryReference +#define SCHEMA_IfcLibraryInformation_LibraryReference_IS_OPTIONAL +#define SCHEMA_HAS_IfcLibraryReference +#define SCHEMA_HAS_IfcLightDistributionData +#define SCHEMA_IfcLightDistributionData_HAS_MainPlaneAngle +#define SCHEMA_IfcLightDistributionData_HAS_SecondaryPlaneAngle +#define SCHEMA_IfcLightDistributionData_HAS_LuminousIntensity +#define SCHEMA_HAS_IfcLightFixtureType +#define SCHEMA_IfcLightFixtureType_HAS_PredefinedType +#define SCHEMA_HAS_IfcLightIntensityDistribution +#define SCHEMA_IfcLightIntensityDistribution_HAS_LightDistributionCurve +#define SCHEMA_IfcLightIntensityDistribution_HAS_DistributionData +#define SCHEMA_HAS_IfcLightSource +#define SCHEMA_IfcLightSource_HAS_Name +#define SCHEMA_IfcLightSource_Name_IS_OPTIONAL +#define SCHEMA_IfcLightSource_HAS_LightColour +#define SCHEMA_IfcLightSource_HAS_AmbientIntensity +#define SCHEMA_IfcLightSource_AmbientIntensity_IS_OPTIONAL +#define SCHEMA_IfcLightSource_HAS_Intensity +#define SCHEMA_IfcLightSource_Intensity_IS_OPTIONAL +#define SCHEMA_HAS_IfcLightSourceAmbient +#define SCHEMA_HAS_IfcLightSourceDirectional +#define SCHEMA_IfcLightSourceDirectional_HAS_Orientation +#define SCHEMA_HAS_IfcLightSourceGoniometric +#define SCHEMA_IfcLightSourceGoniometric_HAS_Position +#define SCHEMA_IfcLightSourceGoniometric_HAS_ColourAppearance +#define SCHEMA_IfcLightSourceGoniometric_ColourAppearance_IS_OPTIONAL +#define SCHEMA_IfcLightSourceGoniometric_HAS_ColourTemperature +#define SCHEMA_IfcLightSourceGoniometric_HAS_LuminousFlux +#define SCHEMA_IfcLightSourceGoniometric_HAS_LightEmissionSource +#define SCHEMA_IfcLightSourceGoniometric_HAS_LightDistributionDataSource +#define SCHEMA_HAS_IfcLightSourcePositional +#define SCHEMA_IfcLightSourcePositional_HAS_Position +#define SCHEMA_IfcLightSourcePositional_HAS_Radius +#define SCHEMA_IfcLightSourcePositional_HAS_ConstantAttenuation +#define SCHEMA_IfcLightSourcePositional_HAS_DistanceAttenuation +#define SCHEMA_IfcLightSourcePositional_HAS_QuadricAttenuation +#define SCHEMA_HAS_IfcLightSourceSpot +#define SCHEMA_IfcLightSourceSpot_HAS_Orientation +#define SCHEMA_IfcLightSourceSpot_HAS_ConcentrationExponent +#define SCHEMA_IfcLightSourceSpot_ConcentrationExponent_IS_OPTIONAL +#define SCHEMA_IfcLightSourceSpot_HAS_SpreadAngle +#define SCHEMA_IfcLightSourceSpot_HAS_BeamWidthAngle +#define SCHEMA_HAS_IfcLine +#define SCHEMA_IfcLine_HAS_Pnt +#define SCHEMA_IfcLine_HAS_Dir +#define SCHEMA_HAS_IfcLinearDimension +#define SCHEMA_HAS_IfcLocalPlacement +#define SCHEMA_IfcLocalPlacement_HAS_PlacementRelTo +#define SCHEMA_IfcLocalPlacement_PlacementRelTo_IS_OPTIONAL +#define SCHEMA_IfcLocalPlacement_HAS_RelativePlacement +#define SCHEMA_HAS_IfcLocalTime +#define SCHEMA_IfcLocalTime_HAS_HourComponent +#define SCHEMA_IfcLocalTime_HAS_MinuteComponent +#define SCHEMA_IfcLocalTime_MinuteComponent_IS_OPTIONAL +#define SCHEMA_IfcLocalTime_HAS_SecondComponent +#define SCHEMA_IfcLocalTime_SecondComponent_IS_OPTIONAL +#define SCHEMA_IfcLocalTime_HAS_Zone +#define SCHEMA_IfcLocalTime_Zone_IS_OPTIONAL +#define SCHEMA_IfcLocalTime_HAS_DaylightSavingOffset +#define SCHEMA_IfcLocalTime_DaylightSavingOffset_IS_OPTIONAL +#define SCHEMA_HAS_IfcLoop +#define SCHEMA_HAS_IfcManifoldSolidBrep +#define SCHEMA_IfcManifoldSolidBrep_HAS_Outer +#define SCHEMA_HAS_IfcMappedItem +#define SCHEMA_IfcMappedItem_HAS_MappingSource +#define SCHEMA_IfcMappedItem_HAS_MappingTarget +#define SCHEMA_HAS_IfcMaterial +#define SCHEMA_IfcMaterial_HAS_Name +#define SCHEMA_HAS_IfcMaterialClassificationRelationship +#define SCHEMA_IfcMaterialClassificationRelationship_HAS_MaterialClassifications +#define SCHEMA_IfcMaterialClassificationRelationship_HAS_ClassifiedMaterial +#define SCHEMA_HAS_IfcMaterialDefinitionRepresentation +#define SCHEMA_IfcMaterialDefinitionRepresentation_HAS_RepresentedMaterial +#define SCHEMA_HAS_IfcMaterialLayer +#define SCHEMA_IfcMaterialLayer_HAS_Material +#define SCHEMA_IfcMaterialLayer_Material_IS_OPTIONAL +#define SCHEMA_IfcMaterialLayer_HAS_LayerThickness +#define SCHEMA_IfcMaterialLayer_HAS_IsVentilated +#define SCHEMA_IfcMaterialLayer_IsVentilated_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialLayerSet +#define SCHEMA_IfcMaterialLayerSet_HAS_MaterialLayers +#define SCHEMA_IfcMaterialLayerSet_HAS_LayerSetName +#define SCHEMA_IfcMaterialLayerSet_LayerSetName_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialLayerSetUsage +#define SCHEMA_IfcMaterialLayerSetUsage_HAS_ForLayerSet +#define SCHEMA_IfcMaterialLayerSetUsage_HAS_LayerSetDirection +#define SCHEMA_IfcMaterialLayerSetUsage_HAS_DirectionSense +#define SCHEMA_IfcMaterialLayerSetUsage_HAS_OffsetFromReferenceLine +#define SCHEMA_HAS_IfcMaterialList +#define SCHEMA_IfcMaterialList_HAS_Materials +#define SCHEMA_HAS_IfcMaterialProperties +#define SCHEMA_IfcMaterialProperties_HAS_Material +#define SCHEMA_HAS_IfcMeasureWithUnit +#define SCHEMA_IfcMeasureWithUnit_HAS_ValueComponent +#define SCHEMA_IfcMeasureWithUnit_HAS_UnitComponent +#define SCHEMA_HAS_IfcMechanicalConcreteMaterialProperties +#define SCHEMA_IfcMechanicalConcreteMaterialProperties_HAS_CompressiveStrength +#define SCHEMA_IfcMechanicalConcreteMaterialProperties_CompressiveStrength_IS_OPTIONAL +#define SCHEMA_IfcMechanicalConcreteMaterialProperties_HAS_MaxAggregateSize +#define SCHEMA_IfcMechanicalConcreteMaterialProperties_MaxAggregateSize_IS_OPTIONAL +#define SCHEMA_IfcMechanicalConcreteMaterialProperties_HAS_AdmixturesDescription +#define SCHEMA_IfcMechanicalConcreteMaterialProperties_AdmixturesDescription_IS_OPTIONAL +#define SCHEMA_IfcMechanicalConcreteMaterialProperties_HAS_Workability +#define SCHEMA_IfcMechanicalConcreteMaterialProperties_Workability_IS_OPTIONAL +#define SCHEMA_IfcMechanicalConcreteMaterialProperties_HAS_ProtectivePoreRatio +#define SCHEMA_IfcMechanicalConcreteMaterialProperties_ProtectivePoreRatio_IS_OPTIONAL +#define SCHEMA_IfcMechanicalConcreteMaterialProperties_HAS_WaterImpermeability +#define SCHEMA_IfcMechanicalConcreteMaterialProperties_WaterImpermeability_IS_OPTIONAL +#define SCHEMA_HAS_IfcMechanicalFastener +#define SCHEMA_IfcMechanicalFastener_HAS_NominalDiameter +#define SCHEMA_IfcMechanicalFastener_NominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcMechanicalFastener_HAS_NominalLength +#define SCHEMA_IfcMechanicalFastener_NominalLength_IS_OPTIONAL +#define SCHEMA_HAS_IfcMechanicalFastenerType +#define SCHEMA_HAS_IfcMechanicalMaterialProperties +#define SCHEMA_IfcMechanicalMaterialProperties_HAS_DynamicViscosity +#define SCHEMA_IfcMechanicalMaterialProperties_DynamicViscosity_IS_OPTIONAL +#define SCHEMA_IfcMechanicalMaterialProperties_HAS_YoungModulus +#define SCHEMA_IfcMechanicalMaterialProperties_YoungModulus_IS_OPTIONAL +#define SCHEMA_IfcMechanicalMaterialProperties_HAS_ShearModulus +#define SCHEMA_IfcMechanicalMaterialProperties_ShearModulus_IS_OPTIONAL +#define SCHEMA_IfcMechanicalMaterialProperties_HAS_PoissonRatio +#define SCHEMA_IfcMechanicalMaterialProperties_PoissonRatio_IS_OPTIONAL +#define SCHEMA_IfcMechanicalMaterialProperties_HAS_ThermalExpansionCoefficient +#define SCHEMA_IfcMechanicalMaterialProperties_ThermalExpansionCoefficient_IS_OPTIONAL +#define SCHEMA_HAS_IfcMechanicalSteelMaterialProperties +#define SCHEMA_IfcMechanicalSteelMaterialProperties_HAS_YieldStress +#define SCHEMA_IfcMechanicalSteelMaterialProperties_YieldStress_IS_OPTIONAL +#define SCHEMA_IfcMechanicalSteelMaterialProperties_HAS_UltimateStress +#define SCHEMA_IfcMechanicalSteelMaterialProperties_UltimateStress_IS_OPTIONAL +#define SCHEMA_IfcMechanicalSteelMaterialProperties_HAS_UltimateStrain +#define SCHEMA_IfcMechanicalSteelMaterialProperties_UltimateStrain_IS_OPTIONAL +#define SCHEMA_IfcMechanicalSteelMaterialProperties_HAS_HardeningModule +#define SCHEMA_IfcMechanicalSteelMaterialProperties_HardeningModule_IS_OPTIONAL +#define SCHEMA_IfcMechanicalSteelMaterialProperties_HAS_ProportionalStress +#define SCHEMA_IfcMechanicalSteelMaterialProperties_ProportionalStress_IS_OPTIONAL +#define SCHEMA_IfcMechanicalSteelMaterialProperties_HAS_PlasticStrain +#define SCHEMA_IfcMechanicalSteelMaterialProperties_PlasticStrain_IS_OPTIONAL +#define SCHEMA_IfcMechanicalSteelMaterialProperties_HAS_Relaxations +#define SCHEMA_IfcMechanicalSteelMaterialProperties_Relaxations_IS_OPTIONAL +#define SCHEMA_HAS_IfcMember +#define SCHEMA_HAS_IfcMemberType +#define SCHEMA_IfcMemberType_HAS_PredefinedType +#define SCHEMA_HAS_IfcMetric +#define SCHEMA_IfcMetric_HAS_Benchmark +#define SCHEMA_IfcMetric_HAS_ValueSource +#define SCHEMA_IfcMetric_ValueSource_IS_OPTIONAL +#define SCHEMA_IfcMetric_HAS_DataValue +#define SCHEMA_HAS_IfcMonetaryUnit +#define SCHEMA_IfcMonetaryUnit_HAS_Currency +#define SCHEMA_HAS_IfcMotorConnectionType +#define SCHEMA_IfcMotorConnectionType_HAS_PredefinedType +#define SCHEMA_HAS_IfcMove +#define SCHEMA_IfcMove_HAS_MoveFrom +#define SCHEMA_IfcMove_HAS_MoveTo +#define SCHEMA_IfcMove_HAS_PunchList +#define SCHEMA_IfcMove_PunchList_IS_OPTIONAL +#define SCHEMA_HAS_IfcNamedUnit +#define SCHEMA_IfcNamedUnit_HAS_Dimensions +#define SCHEMA_IfcNamedUnit_HAS_UnitType +#define SCHEMA_HAS_IfcObject +#define SCHEMA_IfcObject_HAS_ObjectType +#define SCHEMA_IfcObject_ObjectType_IS_OPTIONAL +#define SCHEMA_HAS_IfcObjectDefinition +#define SCHEMA_HAS_IfcObjectPlacement +#define SCHEMA_HAS_IfcObjective +#define SCHEMA_IfcObjective_HAS_BenchmarkValues +#define SCHEMA_IfcObjective_BenchmarkValues_IS_OPTIONAL +#define SCHEMA_IfcObjective_HAS_ResultValues +#define SCHEMA_IfcObjective_ResultValues_IS_OPTIONAL +#define SCHEMA_IfcObjective_HAS_ObjectiveQualifier +#define SCHEMA_IfcObjective_HAS_UserDefinedQualifier +#define SCHEMA_IfcObjective_UserDefinedQualifier_IS_OPTIONAL +#define SCHEMA_HAS_IfcOccupant +#define SCHEMA_IfcOccupant_HAS_PredefinedType +#define SCHEMA_HAS_IfcOffsetCurve2D +#define SCHEMA_IfcOffsetCurve2D_HAS_BasisCurve +#define SCHEMA_IfcOffsetCurve2D_HAS_Distance +#define SCHEMA_IfcOffsetCurve2D_HAS_SelfIntersect +#define SCHEMA_HAS_IfcOffsetCurve3D +#define SCHEMA_IfcOffsetCurve3D_HAS_BasisCurve +#define SCHEMA_IfcOffsetCurve3D_HAS_Distance +#define SCHEMA_IfcOffsetCurve3D_HAS_SelfIntersect +#define SCHEMA_IfcOffsetCurve3D_HAS_RefDirection +#define SCHEMA_HAS_IfcOneDirectionRepeatFactor +#define SCHEMA_IfcOneDirectionRepeatFactor_HAS_RepeatFactor +#define SCHEMA_HAS_IfcOpenShell +#define SCHEMA_HAS_IfcOpeningElement +#define SCHEMA_HAS_IfcOpticalMaterialProperties +#define SCHEMA_IfcOpticalMaterialProperties_HAS_VisibleTransmittance +#define SCHEMA_IfcOpticalMaterialProperties_VisibleTransmittance_IS_OPTIONAL +#define SCHEMA_IfcOpticalMaterialProperties_HAS_SolarTransmittance +#define SCHEMA_IfcOpticalMaterialProperties_SolarTransmittance_IS_OPTIONAL +#define SCHEMA_IfcOpticalMaterialProperties_HAS_ThermalIrTransmittance +#define SCHEMA_IfcOpticalMaterialProperties_ThermalIrTransmittance_IS_OPTIONAL +#define SCHEMA_IfcOpticalMaterialProperties_HAS_ThermalIrEmissivityBack +#define SCHEMA_IfcOpticalMaterialProperties_ThermalIrEmissivityBack_IS_OPTIONAL +#define SCHEMA_IfcOpticalMaterialProperties_HAS_ThermalIrEmissivityFront +#define SCHEMA_IfcOpticalMaterialProperties_ThermalIrEmissivityFront_IS_OPTIONAL +#define SCHEMA_IfcOpticalMaterialProperties_HAS_VisibleReflectanceBack +#define SCHEMA_IfcOpticalMaterialProperties_VisibleReflectanceBack_IS_OPTIONAL +#define SCHEMA_IfcOpticalMaterialProperties_HAS_VisibleReflectanceFront +#define SCHEMA_IfcOpticalMaterialProperties_VisibleReflectanceFront_IS_OPTIONAL +#define SCHEMA_IfcOpticalMaterialProperties_HAS_SolarReflectanceFront +#define SCHEMA_IfcOpticalMaterialProperties_SolarReflectanceFront_IS_OPTIONAL +#define SCHEMA_IfcOpticalMaterialProperties_HAS_SolarReflectanceBack +#define SCHEMA_IfcOpticalMaterialProperties_SolarReflectanceBack_IS_OPTIONAL +#define SCHEMA_HAS_IfcOrderAction +#define SCHEMA_IfcOrderAction_HAS_ActionID +#define SCHEMA_HAS_IfcOrganization +#define SCHEMA_IfcOrganization_HAS_Id +#define SCHEMA_IfcOrganization_Id_IS_OPTIONAL +#define SCHEMA_IfcOrganization_HAS_Name +#define SCHEMA_IfcOrganization_HAS_Description +#define SCHEMA_IfcOrganization_Description_IS_OPTIONAL +#define SCHEMA_IfcOrganization_HAS_Roles +#define SCHEMA_IfcOrganization_Roles_IS_OPTIONAL +#define SCHEMA_IfcOrganization_HAS_Addresses +#define SCHEMA_IfcOrganization_Addresses_IS_OPTIONAL +#define SCHEMA_HAS_IfcOrganizationRelationship +#define SCHEMA_IfcOrganizationRelationship_HAS_Name +#define SCHEMA_IfcOrganizationRelationship_HAS_Description +#define SCHEMA_IfcOrganizationRelationship_Description_IS_OPTIONAL +#define SCHEMA_IfcOrganizationRelationship_HAS_RelatingOrganization +#define SCHEMA_IfcOrganizationRelationship_HAS_RelatedOrganizations +#define SCHEMA_HAS_IfcOrientedEdge +#define SCHEMA_IfcOrientedEdge_HAS_EdgeElement +#define SCHEMA_IfcOrientedEdge_HAS_Orientation +#define SCHEMA_HAS_IfcOutletType +#define SCHEMA_IfcOutletType_HAS_PredefinedType +#define SCHEMA_HAS_IfcOwnerHistory +#define SCHEMA_IfcOwnerHistory_HAS_OwningUser +#define SCHEMA_IfcOwnerHistory_HAS_OwningApplication +#define SCHEMA_IfcOwnerHistory_HAS_State +#define SCHEMA_IfcOwnerHistory_State_IS_OPTIONAL +#define SCHEMA_IfcOwnerHistory_HAS_ChangeAction +#define SCHEMA_IfcOwnerHistory_HAS_LastModifiedDate +#define SCHEMA_IfcOwnerHistory_LastModifiedDate_IS_OPTIONAL +#define SCHEMA_IfcOwnerHistory_HAS_LastModifyingUser +#define SCHEMA_IfcOwnerHistory_LastModifyingUser_IS_OPTIONAL +#define SCHEMA_IfcOwnerHistory_HAS_LastModifyingApplication +#define SCHEMA_IfcOwnerHistory_LastModifyingApplication_IS_OPTIONAL +#define SCHEMA_IfcOwnerHistory_HAS_CreationDate +#define SCHEMA_HAS_IfcParameterizedProfileDef +#define SCHEMA_IfcParameterizedProfileDef_HAS_Position +#define SCHEMA_HAS_IfcPath +#define SCHEMA_IfcPath_HAS_EdgeList +#define SCHEMA_HAS_IfcPerformanceHistory +#define SCHEMA_IfcPerformanceHistory_HAS_LifeCyclePhase +#define SCHEMA_HAS_IfcPermeableCoveringProperties +#define SCHEMA_IfcPermeableCoveringProperties_HAS_OperationType +#define SCHEMA_IfcPermeableCoveringProperties_HAS_PanelPosition +#define SCHEMA_IfcPermeableCoveringProperties_HAS_FrameDepth +#define SCHEMA_IfcPermeableCoveringProperties_FrameDepth_IS_OPTIONAL +#define SCHEMA_IfcPermeableCoveringProperties_HAS_FrameThickness +#define SCHEMA_IfcPermeableCoveringProperties_FrameThickness_IS_OPTIONAL +#define SCHEMA_IfcPermeableCoveringProperties_HAS_ShapeAspectStyle +#define SCHEMA_IfcPermeableCoveringProperties_ShapeAspectStyle_IS_OPTIONAL +#define SCHEMA_HAS_IfcPermit +#define SCHEMA_IfcPermit_HAS_PermitID +#define SCHEMA_HAS_IfcPerson +#define SCHEMA_IfcPerson_HAS_Id +#define SCHEMA_IfcPerson_Id_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_FamilyName +#define SCHEMA_IfcPerson_FamilyName_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_GivenName +#define SCHEMA_IfcPerson_GivenName_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_MiddleNames +#define SCHEMA_IfcPerson_MiddleNames_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_PrefixTitles +#define SCHEMA_IfcPerson_PrefixTitles_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_SuffixTitles +#define SCHEMA_IfcPerson_SuffixTitles_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_Roles +#define SCHEMA_IfcPerson_Roles_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_Addresses +#define SCHEMA_IfcPerson_Addresses_IS_OPTIONAL +#define SCHEMA_HAS_IfcPersonAndOrganization +#define SCHEMA_IfcPersonAndOrganization_HAS_ThePerson +#define SCHEMA_IfcPersonAndOrganization_HAS_TheOrganization +#define SCHEMA_IfcPersonAndOrganization_HAS_Roles +#define SCHEMA_IfcPersonAndOrganization_Roles_IS_OPTIONAL +#define SCHEMA_HAS_IfcPhysicalComplexQuantity +#define SCHEMA_IfcPhysicalComplexQuantity_HAS_HasQuantities +#define SCHEMA_IfcPhysicalComplexQuantity_HAS_Discrimination +#define SCHEMA_IfcPhysicalComplexQuantity_HAS_Quality +#define SCHEMA_IfcPhysicalComplexQuantity_Quality_IS_OPTIONAL +#define SCHEMA_IfcPhysicalComplexQuantity_HAS_Usage +#define SCHEMA_IfcPhysicalComplexQuantity_Usage_IS_OPTIONAL +#define SCHEMA_HAS_IfcPhysicalQuantity +#define SCHEMA_IfcPhysicalQuantity_HAS_Name +#define SCHEMA_IfcPhysicalQuantity_HAS_Description +#define SCHEMA_IfcPhysicalQuantity_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcPhysicalSimpleQuantity +#define SCHEMA_IfcPhysicalSimpleQuantity_HAS_Unit +#define SCHEMA_IfcPhysicalSimpleQuantity_Unit_IS_OPTIONAL +#define SCHEMA_HAS_IfcPile +#define SCHEMA_IfcPile_HAS_PredefinedType +#define SCHEMA_IfcPile_HAS_ConstructionType +#define SCHEMA_IfcPile_ConstructionType_IS_OPTIONAL +#define SCHEMA_HAS_IfcPipeFittingType +#define SCHEMA_IfcPipeFittingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcPipeSegmentType +#define SCHEMA_IfcPipeSegmentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcPixelTexture +#define SCHEMA_IfcPixelTexture_HAS_Width +#define SCHEMA_IfcPixelTexture_HAS_Height +#define SCHEMA_IfcPixelTexture_HAS_ColourComponents +#define SCHEMA_IfcPixelTexture_HAS_Pixel +#define SCHEMA_HAS_IfcPlacement +#define SCHEMA_IfcPlacement_HAS_Location +#define SCHEMA_HAS_IfcPlanarBox +#define SCHEMA_IfcPlanarBox_HAS_Placement +#define SCHEMA_HAS_IfcPlanarExtent +#define SCHEMA_IfcPlanarExtent_HAS_SizeInX +#define SCHEMA_IfcPlanarExtent_HAS_SizeInY +#define SCHEMA_HAS_IfcPlane +#define SCHEMA_HAS_IfcPlate +#define SCHEMA_HAS_IfcPlateType +#define SCHEMA_IfcPlateType_HAS_PredefinedType +#define SCHEMA_HAS_IfcPoint +#define SCHEMA_HAS_IfcPointOnCurve +#define SCHEMA_IfcPointOnCurve_HAS_BasisCurve +#define SCHEMA_IfcPointOnCurve_HAS_PointParameter +#define SCHEMA_HAS_IfcPointOnSurface +#define SCHEMA_IfcPointOnSurface_HAS_BasisSurface +#define SCHEMA_IfcPointOnSurface_HAS_PointParameterU +#define SCHEMA_IfcPointOnSurface_HAS_PointParameterV +#define SCHEMA_HAS_IfcPolyLoop +#define SCHEMA_IfcPolyLoop_HAS_Polygon +#define SCHEMA_HAS_IfcPolygonalBoundedHalfSpace +#define SCHEMA_IfcPolygonalBoundedHalfSpace_HAS_Position +#define SCHEMA_IfcPolygonalBoundedHalfSpace_HAS_PolygonalBoundary +#define SCHEMA_HAS_IfcPolyline +#define SCHEMA_IfcPolyline_HAS_Points +#define SCHEMA_HAS_IfcPort +#define SCHEMA_HAS_IfcPostalAddress +#define SCHEMA_IfcPostalAddress_HAS_InternalLocation +#define SCHEMA_IfcPostalAddress_InternalLocation_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_AddressLines +#define SCHEMA_IfcPostalAddress_AddressLines_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_PostalBox +#define SCHEMA_IfcPostalAddress_PostalBox_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_Town +#define SCHEMA_IfcPostalAddress_Town_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_Region +#define SCHEMA_IfcPostalAddress_Region_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_PostalCode +#define SCHEMA_IfcPostalAddress_PostalCode_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_Country +#define SCHEMA_IfcPostalAddress_Country_IS_OPTIONAL +#define SCHEMA_HAS_IfcPreDefinedColour +#define SCHEMA_HAS_IfcPreDefinedCurveFont +#define SCHEMA_HAS_IfcPreDefinedDimensionSymbol +#define SCHEMA_HAS_IfcPreDefinedItem +#define SCHEMA_IfcPreDefinedItem_HAS_Name +#define SCHEMA_HAS_IfcPreDefinedPointMarkerSymbol +#define SCHEMA_HAS_IfcPreDefinedSymbol +#define SCHEMA_HAS_IfcPreDefinedTerminatorSymbol +#define SCHEMA_HAS_IfcPreDefinedTextFont +#define SCHEMA_HAS_IfcPresentationLayerAssignment +#define SCHEMA_IfcPresentationLayerAssignment_HAS_Name +#define SCHEMA_IfcPresentationLayerAssignment_HAS_Description +#define SCHEMA_IfcPresentationLayerAssignment_Description_IS_OPTIONAL +#define SCHEMA_IfcPresentationLayerAssignment_HAS_AssignedItems +#define SCHEMA_IfcPresentationLayerAssignment_HAS_Identifier +#define SCHEMA_IfcPresentationLayerAssignment_Identifier_IS_OPTIONAL +#define SCHEMA_HAS_IfcPresentationLayerWithStyle +#define SCHEMA_IfcPresentationLayerWithStyle_HAS_LayerOn +#define SCHEMA_IfcPresentationLayerWithStyle_HAS_LayerFrozen +#define SCHEMA_IfcPresentationLayerWithStyle_HAS_LayerBlocked +#define SCHEMA_IfcPresentationLayerWithStyle_HAS_LayerStyles +#define SCHEMA_HAS_IfcPresentationStyle +#define SCHEMA_IfcPresentationStyle_HAS_Name +#define SCHEMA_IfcPresentationStyle_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcPresentationStyleAssignment +#define SCHEMA_IfcPresentationStyleAssignment_HAS_Styles +#define SCHEMA_HAS_IfcProcedure +#define SCHEMA_IfcProcedure_HAS_ProcedureID +#define SCHEMA_IfcProcedure_HAS_ProcedureType +#define SCHEMA_IfcProcedure_HAS_UserDefinedProcedureType +#define SCHEMA_IfcProcedure_UserDefinedProcedureType_IS_OPTIONAL +#define SCHEMA_HAS_IfcProcess +#define SCHEMA_HAS_IfcProduct +#define SCHEMA_IfcProduct_HAS_ObjectPlacement +#define SCHEMA_IfcProduct_ObjectPlacement_IS_OPTIONAL +#define SCHEMA_IfcProduct_HAS_Representation +#define SCHEMA_IfcProduct_Representation_IS_OPTIONAL +#define SCHEMA_HAS_IfcProductDefinitionShape +#define SCHEMA_HAS_IfcProductRepresentation +#define SCHEMA_IfcProductRepresentation_HAS_Name +#define SCHEMA_IfcProductRepresentation_Name_IS_OPTIONAL +#define SCHEMA_IfcProductRepresentation_HAS_Description +#define SCHEMA_IfcProductRepresentation_Description_IS_OPTIONAL +#define SCHEMA_IfcProductRepresentation_HAS_Representations +#define SCHEMA_HAS_IfcProductsOfCombustionProperties +#define SCHEMA_IfcProductsOfCombustionProperties_HAS_SpecificHeatCapacity +#define SCHEMA_IfcProductsOfCombustionProperties_SpecificHeatCapacity_IS_OPTIONAL +#define SCHEMA_IfcProductsOfCombustionProperties_HAS_N20Content +#define SCHEMA_IfcProductsOfCombustionProperties_N20Content_IS_OPTIONAL +#define SCHEMA_IfcProductsOfCombustionProperties_HAS_COContent +#define SCHEMA_IfcProductsOfCombustionProperties_COContent_IS_OPTIONAL +#define SCHEMA_IfcProductsOfCombustionProperties_HAS_CO2Content +#define SCHEMA_IfcProductsOfCombustionProperties_CO2Content_IS_OPTIONAL +#define SCHEMA_HAS_IfcProfileDef +#define SCHEMA_IfcProfileDef_HAS_ProfileType +#define SCHEMA_IfcProfileDef_HAS_ProfileName +#define SCHEMA_IfcProfileDef_ProfileName_IS_OPTIONAL +#define SCHEMA_HAS_IfcProfileProperties +#define SCHEMA_IfcProfileProperties_HAS_ProfileName +#define SCHEMA_IfcProfileProperties_ProfileName_IS_OPTIONAL +#define SCHEMA_IfcProfileProperties_HAS_ProfileDefinition +#define SCHEMA_IfcProfileProperties_ProfileDefinition_IS_OPTIONAL +#define SCHEMA_HAS_IfcProject +#define SCHEMA_IfcProject_HAS_LongName +#define SCHEMA_IfcProject_LongName_IS_OPTIONAL +#define SCHEMA_IfcProject_HAS_Phase +#define SCHEMA_IfcProject_Phase_IS_OPTIONAL +#define SCHEMA_IfcProject_HAS_RepresentationContexts +#define SCHEMA_IfcProject_HAS_UnitsInContext +#define SCHEMA_HAS_IfcProjectOrder +#define SCHEMA_IfcProjectOrder_HAS_ID +#define SCHEMA_IfcProjectOrder_HAS_PredefinedType +#define SCHEMA_IfcProjectOrder_HAS_Status +#define SCHEMA_IfcProjectOrder_Status_IS_OPTIONAL +#define SCHEMA_HAS_IfcProjectOrderRecord +#define SCHEMA_IfcProjectOrderRecord_HAS_Records +#define SCHEMA_IfcProjectOrderRecord_HAS_PredefinedType +#define SCHEMA_HAS_IfcProjectionCurve +#define SCHEMA_HAS_IfcProjectionElement +#define SCHEMA_HAS_IfcProperty +#define SCHEMA_IfcProperty_HAS_Name +#define SCHEMA_IfcProperty_HAS_Description +#define SCHEMA_IfcProperty_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyBoundedValue +#define SCHEMA_IfcPropertyBoundedValue_HAS_UpperBoundValue +#define SCHEMA_IfcPropertyBoundedValue_UpperBoundValue_IS_OPTIONAL +#define SCHEMA_IfcPropertyBoundedValue_HAS_LowerBoundValue +#define SCHEMA_IfcPropertyBoundedValue_LowerBoundValue_IS_OPTIONAL +#define SCHEMA_IfcPropertyBoundedValue_HAS_Unit +#define SCHEMA_IfcPropertyBoundedValue_Unit_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyConstraintRelationship +#define SCHEMA_IfcPropertyConstraintRelationship_HAS_RelatingConstraint +#define SCHEMA_IfcPropertyConstraintRelationship_HAS_RelatedProperties +#define SCHEMA_IfcPropertyConstraintRelationship_HAS_Name +#define SCHEMA_IfcPropertyConstraintRelationship_Name_IS_OPTIONAL +#define SCHEMA_IfcPropertyConstraintRelationship_HAS_Description +#define SCHEMA_IfcPropertyConstraintRelationship_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyDefinition +#define SCHEMA_HAS_IfcPropertyDependencyRelationship +#define SCHEMA_IfcPropertyDependencyRelationship_HAS_DependingProperty +#define SCHEMA_IfcPropertyDependencyRelationship_HAS_DependantProperty +#define SCHEMA_IfcPropertyDependencyRelationship_HAS_Name +#define SCHEMA_IfcPropertyDependencyRelationship_Name_IS_OPTIONAL +#define SCHEMA_IfcPropertyDependencyRelationship_HAS_Description +#define SCHEMA_IfcPropertyDependencyRelationship_Description_IS_OPTIONAL +#define SCHEMA_IfcPropertyDependencyRelationship_HAS_Expression +#define SCHEMA_IfcPropertyDependencyRelationship_Expression_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyEnumeratedValue +#define SCHEMA_IfcPropertyEnumeratedValue_HAS_EnumerationValues +#define SCHEMA_IfcPropertyEnumeratedValue_HAS_EnumerationReference +#define SCHEMA_IfcPropertyEnumeratedValue_EnumerationReference_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyEnumeration +#define SCHEMA_IfcPropertyEnumeration_HAS_Name +#define SCHEMA_IfcPropertyEnumeration_HAS_EnumerationValues +#define SCHEMA_IfcPropertyEnumeration_HAS_Unit +#define SCHEMA_IfcPropertyEnumeration_Unit_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyListValue +#define SCHEMA_IfcPropertyListValue_HAS_ListValues +#define SCHEMA_IfcPropertyListValue_HAS_Unit +#define SCHEMA_IfcPropertyListValue_Unit_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyReferenceValue +#define SCHEMA_IfcPropertyReferenceValue_HAS_UsageName +#define SCHEMA_IfcPropertyReferenceValue_UsageName_IS_OPTIONAL +#define SCHEMA_IfcPropertyReferenceValue_HAS_PropertyReference +#define SCHEMA_HAS_IfcPropertySet +#define SCHEMA_IfcPropertySet_HAS_HasProperties +#define SCHEMA_HAS_IfcPropertySetDefinition +#define SCHEMA_HAS_IfcPropertySingleValue +#define SCHEMA_IfcPropertySingleValue_HAS_NominalValue +#define SCHEMA_IfcPropertySingleValue_NominalValue_IS_OPTIONAL +#define SCHEMA_IfcPropertySingleValue_HAS_Unit +#define SCHEMA_IfcPropertySingleValue_Unit_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyTableValue +#define SCHEMA_IfcPropertyTableValue_HAS_DefiningValues +#define SCHEMA_IfcPropertyTableValue_HAS_DefinedValues +#define SCHEMA_IfcPropertyTableValue_HAS_Expression +#define SCHEMA_IfcPropertyTableValue_Expression_IS_OPTIONAL +#define SCHEMA_IfcPropertyTableValue_HAS_DefiningUnit +#define SCHEMA_IfcPropertyTableValue_DefiningUnit_IS_OPTIONAL +#define SCHEMA_IfcPropertyTableValue_HAS_DefinedUnit +#define SCHEMA_IfcPropertyTableValue_DefinedUnit_IS_OPTIONAL +#define SCHEMA_HAS_IfcProtectiveDeviceType +#define SCHEMA_IfcProtectiveDeviceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcProxy +#define SCHEMA_IfcProxy_HAS_ProxyType +#define SCHEMA_IfcProxy_HAS_Tag +#define SCHEMA_IfcProxy_Tag_IS_OPTIONAL +#define SCHEMA_HAS_IfcPumpType +#define SCHEMA_IfcPumpType_HAS_PredefinedType +#define SCHEMA_HAS_IfcQuantityArea +#define SCHEMA_IfcQuantityArea_HAS_AreaValue +#define SCHEMA_HAS_IfcQuantityCount +#define SCHEMA_IfcQuantityCount_HAS_CountValue +#define SCHEMA_HAS_IfcQuantityLength +#define SCHEMA_IfcQuantityLength_HAS_LengthValue +#define SCHEMA_HAS_IfcQuantityTime +#define SCHEMA_IfcQuantityTime_HAS_TimeValue +#define SCHEMA_HAS_IfcQuantityVolume +#define SCHEMA_IfcQuantityVolume_HAS_VolumeValue +#define SCHEMA_HAS_IfcQuantityWeight +#define SCHEMA_IfcQuantityWeight_HAS_WeightValue +#define SCHEMA_HAS_IfcRadiusDimension +#define SCHEMA_HAS_IfcRailing +#define SCHEMA_IfcRailing_HAS_PredefinedType +#define SCHEMA_IfcRailing_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRailingType +#define SCHEMA_IfcRailingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcRamp +#define SCHEMA_IfcRamp_HAS_ShapeType +#define SCHEMA_HAS_IfcRampFlight +#define SCHEMA_HAS_IfcRampFlightType +#define SCHEMA_IfcRampFlightType_HAS_PredefinedType +#define SCHEMA_HAS_IfcRationalBezierCurve +#define SCHEMA_IfcRationalBezierCurve_HAS_WeightsData +#define SCHEMA_HAS_IfcRectangleHollowProfileDef +#define SCHEMA_IfcRectangleHollowProfileDef_HAS_WallThickness +#define SCHEMA_IfcRectangleHollowProfileDef_HAS_InnerFilletRadius +#define SCHEMA_IfcRectangleHollowProfileDef_InnerFilletRadius_IS_OPTIONAL +#define SCHEMA_IfcRectangleHollowProfileDef_HAS_OuterFilletRadius +#define SCHEMA_IfcRectangleHollowProfileDef_OuterFilletRadius_IS_OPTIONAL +#define SCHEMA_HAS_IfcRectangleProfileDef +#define SCHEMA_IfcRectangleProfileDef_HAS_XDim +#define SCHEMA_IfcRectangleProfileDef_HAS_YDim +#define SCHEMA_HAS_IfcRectangularPyramid +#define SCHEMA_IfcRectangularPyramid_HAS_XLength +#define SCHEMA_IfcRectangularPyramid_HAS_YLength +#define SCHEMA_IfcRectangularPyramid_HAS_Height +#define SCHEMA_HAS_IfcRectangularTrimmedSurface +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_BasisSurface +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_U1 +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_V1 +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_U2 +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_V2 +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_Usense +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_Vsense +#define SCHEMA_HAS_IfcReferencesValueDocument +#define SCHEMA_IfcReferencesValueDocument_HAS_ReferencedDocument +#define SCHEMA_IfcReferencesValueDocument_HAS_ReferencingValues +#define SCHEMA_IfcReferencesValueDocument_HAS_Name +#define SCHEMA_IfcReferencesValueDocument_Name_IS_OPTIONAL +#define SCHEMA_IfcReferencesValueDocument_HAS_Description +#define SCHEMA_IfcReferencesValueDocument_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcRegularTimeSeries +#define SCHEMA_IfcRegularTimeSeries_HAS_TimeStep +#define SCHEMA_IfcRegularTimeSeries_HAS_Values +#define SCHEMA_HAS_IfcReinforcementBarProperties +#define SCHEMA_IfcReinforcementBarProperties_HAS_TotalCrossSectionArea +#define SCHEMA_IfcReinforcementBarProperties_HAS_SteelGrade +#define SCHEMA_IfcReinforcementBarProperties_HAS_BarSurface +#define SCHEMA_IfcReinforcementBarProperties_BarSurface_IS_OPTIONAL +#define SCHEMA_IfcReinforcementBarProperties_HAS_EffectiveDepth +#define SCHEMA_IfcReinforcementBarProperties_EffectiveDepth_IS_OPTIONAL +#define SCHEMA_IfcReinforcementBarProperties_HAS_NominalBarDiameter +#define SCHEMA_IfcReinforcementBarProperties_NominalBarDiameter_IS_OPTIONAL +#define SCHEMA_IfcReinforcementBarProperties_HAS_BarCount +#define SCHEMA_IfcReinforcementBarProperties_BarCount_IS_OPTIONAL +#define SCHEMA_HAS_IfcReinforcementDefinitionProperties +#define SCHEMA_IfcReinforcementDefinitionProperties_HAS_DefinitionType +#define SCHEMA_IfcReinforcementDefinitionProperties_DefinitionType_IS_OPTIONAL +#define SCHEMA_IfcReinforcementDefinitionProperties_HAS_ReinforcementSectionDefinitions +#define SCHEMA_HAS_IfcReinforcingBar +#define SCHEMA_IfcReinforcingBar_HAS_NominalDiameter +#define SCHEMA_IfcReinforcingBar_HAS_CrossSectionArea +#define SCHEMA_IfcReinforcingBar_HAS_BarLength +#define SCHEMA_IfcReinforcingBar_BarLength_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBar_HAS_BarRole +#define SCHEMA_IfcReinforcingBar_HAS_BarSurface +#define SCHEMA_IfcReinforcingBar_BarSurface_IS_OPTIONAL +#define SCHEMA_HAS_IfcReinforcingElement +#define SCHEMA_IfcReinforcingElement_HAS_SteelGrade +#define SCHEMA_IfcReinforcingElement_SteelGrade_IS_OPTIONAL +#define SCHEMA_HAS_IfcReinforcingMesh +#define SCHEMA_IfcReinforcingMesh_HAS_MeshLength +#define SCHEMA_IfcReinforcingMesh_MeshLength_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_MeshWidth +#define SCHEMA_IfcReinforcingMesh_MeshWidth_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_LongitudinalBarNominalDiameter +#define SCHEMA_IfcReinforcingMesh_HAS_TransverseBarNominalDiameter +#define SCHEMA_IfcReinforcingMesh_HAS_LongitudinalBarCrossSectionArea +#define SCHEMA_IfcReinforcingMesh_HAS_TransverseBarCrossSectionArea +#define SCHEMA_IfcReinforcingMesh_HAS_LongitudinalBarSpacing +#define SCHEMA_IfcReinforcingMesh_HAS_TransverseBarSpacing +#define SCHEMA_HAS_IfcRelAggregates +#define SCHEMA_HAS_IfcRelAssigns +#define SCHEMA_IfcRelAssigns_HAS_RelatedObjects +#define SCHEMA_IfcRelAssigns_HAS_RelatedObjectsType +#define SCHEMA_IfcRelAssigns_RelatedObjectsType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelAssignsTasks +#define SCHEMA_IfcRelAssignsTasks_HAS_TimeForTask +#define SCHEMA_IfcRelAssignsTasks_TimeForTask_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelAssignsToActor +#define SCHEMA_IfcRelAssignsToActor_HAS_RelatingActor +#define SCHEMA_IfcRelAssignsToActor_HAS_ActingRole +#define SCHEMA_IfcRelAssignsToActor_ActingRole_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelAssignsToControl +#define SCHEMA_IfcRelAssignsToControl_HAS_RelatingControl +#define SCHEMA_HAS_IfcRelAssignsToGroup +#define SCHEMA_IfcRelAssignsToGroup_HAS_RelatingGroup +#define SCHEMA_HAS_IfcRelAssignsToProcess +#define SCHEMA_IfcRelAssignsToProcess_HAS_RelatingProcess +#define SCHEMA_IfcRelAssignsToProcess_HAS_QuantityInProcess +#define SCHEMA_IfcRelAssignsToProcess_QuantityInProcess_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelAssignsToProduct +#define SCHEMA_IfcRelAssignsToProduct_HAS_RelatingProduct +#define SCHEMA_HAS_IfcRelAssignsToProjectOrder +#define SCHEMA_HAS_IfcRelAssignsToResource +#define SCHEMA_IfcRelAssignsToResource_HAS_RelatingResource +#define SCHEMA_HAS_IfcRelAssociates +#define SCHEMA_IfcRelAssociates_HAS_RelatedObjects +#define SCHEMA_HAS_IfcRelAssociatesAppliedValue +#define SCHEMA_IfcRelAssociatesAppliedValue_HAS_RelatingAppliedValue +#define SCHEMA_HAS_IfcRelAssociatesApproval +#define SCHEMA_IfcRelAssociatesApproval_HAS_RelatingApproval +#define SCHEMA_HAS_IfcRelAssociatesClassification +#define SCHEMA_IfcRelAssociatesClassification_HAS_RelatingClassification +#define SCHEMA_HAS_IfcRelAssociatesConstraint +#define SCHEMA_IfcRelAssociatesConstraint_HAS_Intent +#define SCHEMA_IfcRelAssociatesConstraint_HAS_RelatingConstraint +#define SCHEMA_HAS_IfcRelAssociatesDocument +#define SCHEMA_IfcRelAssociatesDocument_HAS_RelatingDocument +#define SCHEMA_HAS_IfcRelAssociatesLibrary +#define SCHEMA_IfcRelAssociatesLibrary_HAS_RelatingLibrary +#define SCHEMA_HAS_IfcRelAssociatesMaterial +#define SCHEMA_IfcRelAssociatesMaterial_HAS_RelatingMaterial +#define SCHEMA_HAS_IfcRelAssociatesProfileProperties +#define SCHEMA_IfcRelAssociatesProfileProperties_HAS_RelatingProfileProperties +#define SCHEMA_IfcRelAssociatesProfileProperties_HAS_ProfileSectionLocation +#define SCHEMA_IfcRelAssociatesProfileProperties_ProfileSectionLocation_IS_OPTIONAL +#define SCHEMA_IfcRelAssociatesProfileProperties_HAS_ProfileOrientation +#define SCHEMA_IfcRelAssociatesProfileProperties_ProfileOrientation_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelConnects +#define SCHEMA_HAS_IfcRelConnectsElements +#define SCHEMA_IfcRelConnectsElements_HAS_ConnectionGeometry +#define SCHEMA_IfcRelConnectsElements_ConnectionGeometry_IS_OPTIONAL +#define SCHEMA_IfcRelConnectsElements_HAS_RelatingElement +#define SCHEMA_IfcRelConnectsElements_HAS_RelatedElement +#define SCHEMA_HAS_IfcRelConnectsPathElements +#define SCHEMA_IfcRelConnectsPathElements_HAS_RelatingPriorities +#define SCHEMA_IfcRelConnectsPathElements_HAS_RelatedPriorities +#define SCHEMA_IfcRelConnectsPathElements_HAS_RelatedConnectionType +#define SCHEMA_IfcRelConnectsPathElements_HAS_RelatingConnectionType +#define SCHEMA_HAS_IfcRelConnectsPortToElement +#define SCHEMA_IfcRelConnectsPortToElement_HAS_RelatingPort +#define SCHEMA_IfcRelConnectsPortToElement_HAS_RelatedElement +#define SCHEMA_HAS_IfcRelConnectsPorts +#define SCHEMA_IfcRelConnectsPorts_HAS_RelatingPort +#define SCHEMA_IfcRelConnectsPorts_HAS_RelatedPort +#define SCHEMA_IfcRelConnectsPorts_HAS_RealizingElement +#define SCHEMA_IfcRelConnectsPorts_RealizingElement_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelConnectsStructuralActivity +#define SCHEMA_IfcRelConnectsStructuralActivity_HAS_RelatingElement +#define SCHEMA_IfcRelConnectsStructuralActivity_HAS_RelatedStructuralActivity +#define SCHEMA_HAS_IfcRelConnectsStructuralElement +#define SCHEMA_IfcRelConnectsStructuralElement_HAS_RelatingElement +#define SCHEMA_IfcRelConnectsStructuralElement_HAS_RelatedStructuralMember +#define SCHEMA_HAS_IfcRelConnectsStructuralMember +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_RelatingStructuralMember +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_RelatedStructuralConnection +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_AppliedCondition +#define SCHEMA_IfcRelConnectsStructuralMember_AppliedCondition_IS_OPTIONAL +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_AdditionalConditions +#define SCHEMA_IfcRelConnectsStructuralMember_AdditionalConditions_IS_OPTIONAL +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_SupportedLength +#define SCHEMA_IfcRelConnectsStructuralMember_SupportedLength_IS_OPTIONAL +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_ConditionCoordinateSystem +#define SCHEMA_IfcRelConnectsStructuralMember_ConditionCoordinateSystem_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelConnectsWithEccentricity +#define SCHEMA_IfcRelConnectsWithEccentricity_HAS_ConnectionConstraint +#define SCHEMA_HAS_IfcRelConnectsWithRealizingElements +#define SCHEMA_IfcRelConnectsWithRealizingElements_HAS_RealizingElements +#define SCHEMA_IfcRelConnectsWithRealizingElements_HAS_ConnectionType +#define SCHEMA_IfcRelConnectsWithRealizingElements_ConnectionType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelContainedInSpatialStructure +#define SCHEMA_IfcRelContainedInSpatialStructure_HAS_RelatedElements +#define SCHEMA_IfcRelContainedInSpatialStructure_HAS_RelatingStructure +#define SCHEMA_HAS_IfcRelCoversBldgElements +#define SCHEMA_IfcRelCoversBldgElements_HAS_RelatingBuildingElement +#define SCHEMA_IfcRelCoversBldgElements_HAS_RelatedCoverings +#define SCHEMA_HAS_IfcRelCoversSpaces +#define SCHEMA_IfcRelCoversSpaces_HAS_RelatedSpace +#define SCHEMA_IfcRelCoversSpaces_HAS_RelatedCoverings +#define SCHEMA_HAS_IfcRelDecomposes +#define SCHEMA_IfcRelDecomposes_HAS_RelatingObject +#define SCHEMA_IfcRelDecomposes_HAS_RelatedObjects +#define SCHEMA_HAS_IfcRelDefines +#define SCHEMA_IfcRelDefines_HAS_RelatedObjects +#define SCHEMA_HAS_IfcRelDefinesByProperties +#define SCHEMA_IfcRelDefinesByProperties_HAS_RelatingPropertyDefinition +#define SCHEMA_HAS_IfcRelDefinesByType +#define SCHEMA_IfcRelDefinesByType_HAS_RelatingType +#define SCHEMA_HAS_IfcRelFillsElement +#define SCHEMA_IfcRelFillsElement_HAS_RelatingOpeningElement +#define SCHEMA_IfcRelFillsElement_HAS_RelatedBuildingElement +#define SCHEMA_HAS_IfcRelFlowControlElements +#define SCHEMA_IfcRelFlowControlElements_HAS_RelatedControlElements +#define SCHEMA_IfcRelFlowControlElements_HAS_RelatingFlowElement +#define SCHEMA_HAS_IfcRelInteractionRequirements +#define SCHEMA_IfcRelInteractionRequirements_HAS_DailyInteraction +#define SCHEMA_IfcRelInteractionRequirements_DailyInteraction_IS_OPTIONAL +#define SCHEMA_IfcRelInteractionRequirements_HAS_ImportanceRating +#define SCHEMA_IfcRelInteractionRequirements_ImportanceRating_IS_OPTIONAL +#define SCHEMA_IfcRelInteractionRequirements_HAS_LocationOfInteraction +#define SCHEMA_IfcRelInteractionRequirements_LocationOfInteraction_IS_OPTIONAL +#define SCHEMA_IfcRelInteractionRequirements_HAS_RelatedSpaceProgram +#define SCHEMA_IfcRelInteractionRequirements_HAS_RelatingSpaceProgram +#define SCHEMA_HAS_IfcRelNests +#define SCHEMA_HAS_IfcRelOccupiesSpaces +#define SCHEMA_HAS_IfcRelOverridesProperties +#define SCHEMA_IfcRelOverridesProperties_HAS_OverridingProperties +#define SCHEMA_HAS_IfcRelProjectsElement +#define SCHEMA_IfcRelProjectsElement_HAS_RelatingElement +#define SCHEMA_IfcRelProjectsElement_HAS_RelatedFeatureElement +#define SCHEMA_HAS_IfcRelReferencedInSpatialStructure +#define SCHEMA_IfcRelReferencedInSpatialStructure_HAS_RelatedElements +#define SCHEMA_IfcRelReferencedInSpatialStructure_HAS_RelatingStructure +#define SCHEMA_HAS_IfcRelSchedulesCostItems +#define SCHEMA_HAS_IfcRelSequence +#define SCHEMA_IfcRelSequence_HAS_RelatingProcess +#define SCHEMA_IfcRelSequence_HAS_RelatedProcess +#define SCHEMA_IfcRelSequence_HAS_TimeLag +#define SCHEMA_IfcRelSequence_HAS_SequenceType +#define SCHEMA_HAS_IfcRelServicesBuildings +#define SCHEMA_IfcRelServicesBuildings_HAS_RelatingSystem +#define SCHEMA_IfcRelServicesBuildings_HAS_RelatedBuildings +#define SCHEMA_HAS_IfcRelSpaceBoundary +#define SCHEMA_IfcRelSpaceBoundary_HAS_RelatingSpace +#define SCHEMA_IfcRelSpaceBoundary_HAS_RelatedBuildingElement +#define SCHEMA_IfcRelSpaceBoundary_RelatedBuildingElement_IS_OPTIONAL +#define SCHEMA_IfcRelSpaceBoundary_HAS_ConnectionGeometry +#define SCHEMA_IfcRelSpaceBoundary_ConnectionGeometry_IS_OPTIONAL +#define SCHEMA_IfcRelSpaceBoundary_HAS_PhysicalOrVirtualBoundary +#define SCHEMA_IfcRelSpaceBoundary_HAS_InternalOrExternalBoundary +#define SCHEMA_HAS_IfcRelVoidsElement +#define SCHEMA_IfcRelVoidsElement_HAS_RelatingBuildingElement +#define SCHEMA_IfcRelVoidsElement_HAS_RelatedOpeningElement +#define SCHEMA_HAS_IfcRelationship +#define SCHEMA_HAS_IfcRelaxation +#define SCHEMA_IfcRelaxation_HAS_RelaxationValue +#define SCHEMA_IfcRelaxation_HAS_InitialStress +#define SCHEMA_HAS_IfcRepresentation +#define SCHEMA_IfcRepresentation_HAS_ContextOfItems +#define SCHEMA_IfcRepresentation_HAS_RepresentationIdentifier +#define SCHEMA_IfcRepresentation_RepresentationIdentifier_IS_OPTIONAL +#define SCHEMA_IfcRepresentation_HAS_RepresentationType +#define SCHEMA_IfcRepresentation_RepresentationType_IS_OPTIONAL +#define SCHEMA_IfcRepresentation_HAS_Items +#define SCHEMA_HAS_IfcRepresentationContext +#define SCHEMA_IfcRepresentationContext_HAS_ContextIdentifier +#define SCHEMA_IfcRepresentationContext_ContextIdentifier_IS_OPTIONAL +#define SCHEMA_IfcRepresentationContext_HAS_ContextType +#define SCHEMA_IfcRepresentationContext_ContextType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRepresentationItem +#define SCHEMA_HAS_IfcRepresentationMap +#define SCHEMA_IfcRepresentationMap_HAS_MappingOrigin +#define SCHEMA_IfcRepresentationMap_HAS_MappedRepresentation +#define SCHEMA_HAS_IfcResource +#define SCHEMA_HAS_IfcRevolvedAreaSolid +#define SCHEMA_IfcRevolvedAreaSolid_HAS_Axis +#define SCHEMA_IfcRevolvedAreaSolid_HAS_Angle +#define SCHEMA_HAS_IfcRibPlateProfileProperties +#define SCHEMA_IfcRibPlateProfileProperties_HAS_Thickness +#define SCHEMA_IfcRibPlateProfileProperties_Thickness_IS_OPTIONAL +#define SCHEMA_IfcRibPlateProfileProperties_HAS_RibHeight +#define SCHEMA_IfcRibPlateProfileProperties_RibHeight_IS_OPTIONAL +#define SCHEMA_IfcRibPlateProfileProperties_HAS_RibWidth +#define SCHEMA_IfcRibPlateProfileProperties_RibWidth_IS_OPTIONAL +#define SCHEMA_IfcRibPlateProfileProperties_HAS_RibSpacing +#define SCHEMA_IfcRibPlateProfileProperties_RibSpacing_IS_OPTIONAL +#define SCHEMA_IfcRibPlateProfileProperties_HAS_Direction +#define SCHEMA_HAS_IfcRightCircularCone +#define SCHEMA_IfcRightCircularCone_HAS_Height +#define SCHEMA_IfcRightCircularCone_HAS_BottomRadius +#define SCHEMA_HAS_IfcRightCircularCylinder +#define SCHEMA_IfcRightCircularCylinder_HAS_Height +#define SCHEMA_IfcRightCircularCylinder_HAS_Radius +#define SCHEMA_HAS_IfcRoof +#define SCHEMA_IfcRoof_HAS_ShapeType +#define SCHEMA_HAS_IfcRoot +#define SCHEMA_IfcRoot_HAS_GlobalId +#define SCHEMA_IfcRoot_HAS_OwnerHistory +#define SCHEMA_IfcRoot_HAS_Name +#define SCHEMA_IfcRoot_Name_IS_OPTIONAL +#define SCHEMA_IfcRoot_HAS_Description +#define SCHEMA_IfcRoot_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcRoundedEdgeFeature +#define SCHEMA_IfcRoundedEdgeFeature_HAS_Radius +#define SCHEMA_IfcRoundedEdgeFeature_Radius_IS_OPTIONAL +#define SCHEMA_HAS_IfcRoundedRectangleProfileDef +#define SCHEMA_IfcRoundedRectangleProfileDef_HAS_RoundingRadius +#define SCHEMA_HAS_IfcSIUnit +#define SCHEMA_IfcSIUnit_HAS_Prefix +#define SCHEMA_IfcSIUnit_Prefix_IS_OPTIONAL +#define SCHEMA_IfcSIUnit_HAS_Name +#define SCHEMA_HAS_IfcSanitaryTerminalType +#define SCHEMA_IfcSanitaryTerminalType_HAS_PredefinedType +#define SCHEMA_HAS_IfcScheduleTimeControl +#define SCHEMA_IfcScheduleTimeControl_HAS_ActualStart +#define SCHEMA_IfcScheduleTimeControl_ActualStart_IS_OPTIONAL +#define SCHEMA_IfcScheduleTimeControl_HAS_EarlyStart +#define SCHEMA_IfcScheduleTimeControl_EarlyStart_IS_OPTIONAL +#define SCHEMA_IfcScheduleTimeControl_HAS_LateStart +#define SCHEMA_IfcScheduleTimeControl_LateStart_IS_OPTIONAL +#define SCHEMA_IfcScheduleTimeControl_HAS_ScheduleStart +#define SCHEMA_IfcScheduleTimeControl_ScheduleStart_IS_OPTIONAL +#define SCHEMA_IfcScheduleTimeControl_HAS_ActualFinish +#define SCHEMA_IfcScheduleTimeControl_ActualFinish_IS_OPTIONAL +#define SCHEMA_IfcScheduleTimeControl_HAS_EarlyFinish +#define SCHEMA_IfcScheduleTimeControl_EarlyFinish_IS_OPTIONAL +#define SCHEMA_IfcScheduleTimeControl_HAS_LateFinish +#define SCHEMA_IfcScheduleTimeControl_LateFinish_IS_OPTIONAL +#define SCHEMA_IfcScheduleTimeControl_HAS_ScheduleFinish +#define SCHEMA_IfcScheduleTimeControl_ScheduleFinish_IS_OPTIONAL +#define SCHEMA_IfcScheduleTimeControl_HAS_ScheduleDuration +#define SCHEMA_IfcScheduleTimeControl_ScheduleDuration_IS_OPTIONAL +#define SCHEMA_IfcScheduleTimeControl_HAS_ActualDuration +#define SCHEMA_IfcScheduleTimeControl_ActualDuration_IS_OPTIONAL +#define SCHEMA_IfcScheduleTimeControl_HAS_RemainingTime +#define SCHEMA_IfcScheduleTimeControl_RemainingTime_IS_OPTIONAL +#define SCHEMA_IfcScheduleTimeControl_HAS_FreeFloat +#define SCHEMA_IfcScheduleTimeControl_FreeFloat_IS_OPTIONAL +#define SCHEMA_IfcScheduleTimeControl_HAS_TotalFloat +#define SCHEMA_IfcScheduleTimeControl_TotalFloat_IS_OPTIONAL +#define SCHEMA_IfcScheduleTimeControl_HAS_IsCritical +#define SCHEMA_IfcScheduleTimeControl_IsCritical_IS_OPTIONAL +#define SCHEMA_IfcScheduleTimeControl_HAS_StatusTime +#define SCHEMA_IfcScheduleTimeControl_StatusTime_IS_OPTIONAL +#define SCHEMA_IfcScheduleTimeControl_HAS_StartFloat +#define SCHEMA_IfcScheduleTimeControl_StartFloat_IS_OPTIONAL +#define SCHEMA_IfcScheduleTimeControl_HAS_FinishFloat +#define SCHEMA_IfcScheduleTimeControl_FinishFloat_IS_OPTIONAL +#define SCHEMA_IfcScheduleTimeControl_HAS_Completion +#define SCHEMA_IfcScheduleTimeControl_Completion_IS_OPTIONAL +#define SCHEMA_HAS_IfcSectionProperties +#define SCHEMA_IfcSectionProperties_HAS_SectionType +#define SCHEMA_IfcSectionProperties_HAS_StartProfile +#define SCHEMA_IfcSectionProperties_HAS_EndProfile +#define SCHEMA_IfcSectionProperties_EndProfile_IS_OPTIONAL +#define SCHEMA_HAS_IfcSectionReinforcementProperties +#define SCHEMA_IfcSectionReinforcementProperties_HAS_LongitudinalStartPosition +#define SCHEMA_IfcSectionReinforcementProperties_HAS_LongitudinalEndPosition +#define SCHEMA_IfcSectionReinforcementProperties_HAS_TransversePosition +#define SCHEMA_IfcSectionReinforcementProperties_TransversePosition_IS_OPTIONAL +#define SCHEMA_IfcSectionReinforcementProperties_HAS_ReinforcementRole +#define SCHEMA_IfcSectionReinforcementProperties_HAS_SectionDefinition +#define SCHEMA_IfcSectionReinforcementProperties_HAS_CrossSectionReinforcementDefinitions +#define SCHEMA_HAS_IfcSectionedSpine +#define SCHEMA_IfcSectionedSpine_HAS_SpineCurve +#define SCHEMA_IfcSectionedSpine_HAS_CrossSections +#define SCHEMA_IfcSectionedSpine_HAS_CrossSectionPositions +#define SCHEMA_HAS_IfcSensorType +#define SCHEMA_IfcSensorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcServiceLife +#define SCHEMA_IfcServiceLife_HAS_ServiceLifeType +#define SCHEMA_IfcServiceLife_HAS_ServiceLifeDuration +#define SCHEMA_HAS_IfcServiceLifeFactor +#define SCHEMA_IfcServiceLifeFactor_HAS_PredefinedType +#define SCHEMA_IfcServiceLifeFactor_HAS_UpperValue +#define SCHEMA_IfcServiceLifeFactor_UpperValue_IS_OPTIONAL +#define SCHEMA_IfcServiceLifeFactor_HAS_MostUsedValue +#define SCHEMA_IfcServiceLifeFactor_HAS_LowerValue +#define SCHEMA_IfcServiceLifeFactor_LowerValue_IS_OPTIONAL +#define SCHEMA_HAS_IfcShapeAspect +#define SCHEMA_IfcShapeAspect_HAS_ShapeRepresentations +#define SCHEMA_IfcShapeAspect_HAS_Name +#define SCHEMA_IfcShapeAspect_Name_IS_OPTIONAL +#define SCHEMA_IfcShapeAspect_HAS_Description +#define SCHEMA_IfcShapeAspect_Description_IS_OPTIONAL +#define SCHEMA_IfcShapeAspect_HAS_ProductDefinitional +#define SCHEMA_IfcShapeAspect_HAS_PartOfProductDefinitionShape +#define SCHEMA_HAS_IfcShapeModel +#define SCHEMA_HAS_IfcShapeRepresentation +#define SCHEMA_HAS_IfcShellBasedSurfaceModel +#define SCHEMA_IfcShellBasedSurfaceModel_HAS_SbsmBoundary +#define SCHEMA_HAS_IfcSimpleProperty +#define SCHEMA_HAS_IfcSite +#define SCHEMA_IfcSite_HAS_RefLatitude +#define SCHEMA_IfcSite_RefLatitude_IS_OPTIONAL +#define SCHEMA_IfcSite_HAS_RefLongitude +#define SCHEMA_IfcSite_RefLongitude_IS_OPTIONAL +#define SCHEMA_IfcSite_HAS_RefElevation +#define SCHEMA_IfcSite_RefElevation_IS_OPTIONAL +#define SCHEMA_IfcSite_HAS_LandTitleNumber +#define SCHEMA_IfcSite_LandTitleNumber_IS_OPTIONAL +#define SCHEMA_IfcSite_HAS_SiteAddress +#define SCHEMA_IfcSite_SiteAddress_IS_OPTIONAL +#define SCHEMA_HAS_IfcSlab +#define SCHEMA_IfcSlab_HAS_PredefinedType +#define SCHEMA_IfcSlab_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSlabType +#define SCHEMA_IfcSlabType_HAS_PredefinedType +#define SCHEMA_HAS_IfcSlippageConnectionCondition +#define SCHEMA_IfcSlippageConnectionCondition_HAS_SlippageX +#define SCHEMA_IfcSlippageConnectionCondition_SlippageX_IS_OPTIONAL +#define SCHEMA_IfcSlippageConnectionCondition_HAS_SlippageY +#define SCHEMA_IfcSlippageConnectionCondition_SlippageY_IS_OPTIONAL +#define SCHEMA_IfcSlippageConnectionCondition_HAS_SlippageZ +#define SCHEMA_IfcSlippageConnectionCondition_SlippageZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcSolidModel +#define SCHEMA_HAS_IfcSoundProperties +#define SCHEMA_IfcSoundProperties_HAS_IsAttenuating +#define SCHEMA_IfcSoundProperties_HAS_SoundScale +#define SCHEMA_IfcSoundProperties_SoundScale_IS_OPTIONAL +#define SCHEMA_IfcSoundProperties_HAS_SoundValues +#define SCHEMA_HAS_IfcSoundValue +#define SCHEMA_IfcSoundValue_HAS_SoundLevelTimeSeries +#define SCHEMA_IfcSoundValue_SoundLevelTimeSeries_IS_OPTIONAL +#define SCHEMA_IfcSoundValue_HAS_Frequency +#define SCHEMA_IfcSoundValue_HAS_SoundLevelSingleValue +#define SCHEMA_IfcSoundValue_SoundLevelSingleValue_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpace +#define SCHEMA_IfcSpace_HAS_InteriorOrExteriorSpace +#define SCHEMA_IfcSpace_HAS_ElevationWithFlooring +#define SCHEMA_IfcSpace_ElevationWithFlooring_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpaceHeaterType +#define SCHEMA_IfcSpaceHeaterType_HAS_PredefinedType +#define SCHEMA_HAS_IfcSpaceProgram +#define SCHEMA_IfcSpaceProgram_HAS_SpaceProgramIdentifier +#define SCHEMA_IfcSpaceProgram_HAS_MaxRequiredArea +#define SCHEMA_IfcSpaceProgram_MaxRequiredArea_IS_OPTIONAL +#define SCHEMA_IfcSpaceProgram_HAS_MinRequiredArea +#define SCHEMA_IfcSpaceProgram_MinRequiredArea_IS_OPTIONAL +#define SCHEMA_IfcSpaceProgram_HAS_RequestedLocation +#define SCHEMA_IfcSpaceProgram_RequestedLocation_IS_OPTIONAL +#define SCHEMA_IfcSpaceProgram_HAS_StandardRequiredArea +#define SCHEMA_HAS_IfcSpaceThermalLoadProperties +#define SCHEMA_IfcSpaceThermalLoadProperties_HAS_ApplicableValueRatio +#define SCHEMA_IfcSpaceThermalLoadProperties_ApplicableValueRatio_IS_OPTIONAL +#define SCHEMA_IfcSpaceThermalLoadProperties_HAS_ThermalLoadSource +#define SCHEMA_IfcSpaceThermalLoadProperties_HAS_PropertySource +#define SCHEMA_IfcSpaceThermalLoadProperties_HAS_SourceDescription +#define SCHEMA_IfcSpaceThermalLoadProperties_SourceDescription_IS_OPTIONAL +#define SCHEMA_IfcSpaceThermalLoadProperties_HAS_MaximumValue +#define SCHEMA_IfcSpaceThermalLoadProperties_HAS_MinimumValue +#define SCHEMA_IfcSpaceThermalLoadProperties_MinimumValue_IS_OPTIONAL +#define SCHEMA_IfcSpaceThermalLoadProperties_HAS_ThermalLoadTimeSeriesValues +#define SCHEMA_IfcSpaceThermalLoadProperties_ThermalLoadTimeSeriesValues_IS_OPTIONAL +#define SCHEMA_IfcSpaceThermalLoadProperties_HAS_UserDefinedThermalLoadSource +#define SCHEMA_IfcSpaceThermalLoadProperties_UserDefinedThermalLoadSource_IS_OPTIONAL +#define SCHEMA_IfcSpaceThermalLoadProperties_HAS_UserDefinedPropertySource +#define SCHEMA_IfcSpaceThermalLoadProperties_UserDefinedPropertySource_IS_OPTIONAL +#define SCHEMA_IfcSpaceThermalLoadProperties_HAS_ThermalLoadType +#define SCHEMA_HAS_IfcSpaceType +#define SCHEMA_IfcSpaceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcSpatialStructureElement +#define SCHEMA_IfcSpatialStructureElement_HAS_LongName +#define SCHEMA_IfcSpatialStructureElement_LongName_IS_OPTIONAL +#define SCHEMA_IfcSpatialStructureElement_HAS_CompositionType +#define SCHEMA_HAS_IfcSpatialStructureElementType +#define SCHEMA_HAS_IfcSphere +#define SCHEMA_IfcSphere_HAS_Radius +#define SCHEMA_HAS_IfcStackTerminalType +#define SCHEMA_IfcStackTerminalType_HAS_PredefinedType +#define SCHEMA_HAS_IfcStair +#define SCHEMA_IfcStair_HAS_ShapeType +#define SCHEMA_HAS_IfcStairFlight +#define SCHEMA_IfcStairFlight_HAS_NumberOfRiser +#define SCHEMA_IfcStairFlight_NumberOfRiser_IS_OPTIONAL +#define SCHEMA_IfcStairFlight_HAS_NumberOfTreads +#define SCHEMA_IfcStairFlight_NumberOfTreads_IS_OPTIONAL +#define SCHEMA_IfcStairFlight_HAS_RiserHeight +#define SCHEMA_IfcStairFlight_RiserHeight_IS_OPTIONAL +#define SCHEMA_IfcStairFlight_HAS_TreadLength +#define SCHEMA_IfcStairFlight_TreadLength_IS_OPTIONAL +#define SCHEMA_HAS_IfcStairFlightType +#define SCHEMA_IfcStairFlightType_HAS_PredefinedType +#define SCHEMA_HAS_IfcStructuralAction +#define SCHEMA_IfcStructuralAction_HAS_DestabilizingLoad +#define SCHEMA_IfcStructuralAction_HAS_CausedBy +#define SCHEMA_IfcStructuralAction_CausedBy_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralActivity +#define SCHEMA_IfcStructuralActivity_HAS_AppliedLoad +#define SCHEMA_IfcStructuralActivity_HAS_GlobalOrLocal +#define SCHEMA_HAS_IfcStructuralAnalysisModel +#define SCHEMA_IfcStructuralAnalysisModel_HAS_PredefinedType +#define SCHEMA_IfcStructuralAnalysisModel_HAS_OrientationOf2DPlane +#define SCHEMA_IfcStructuralAnalysisModel_OrientationOf2DPlane_IS_OPTIONAL +#define SCHEMA_IfcStructuralAnalysisModel_HAS_LoadedBy +#define SCHEMA_IfcStructuralAnalysisModel_LoadedBy_IS_OPTIONAL +#define SCHEMA_IfcStructuralAnalysisModel_HAS_HasResults +#define SCHEMA_IfcStructuralAnalysisModel_HasResults_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralConnection +#define SCHEMA_IfcStructuralConnection_HAS_AppliedCondition +#define SCHEMA_IfcStructuralConnection_AppliedCondition_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralConnectionCondition +#define SCHEMA_IfcStructuralConnectionCondition_HAS_Name +#define SCHEMA_IfcStructuralConnectionCondition_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralCurveConnection +#define SCHEMA_HAS_IfcStructuralCurveMember +#define SCHEMA_IfcStructuralCurveMember_HAS_PredefinedType +#define SCHEMA_HAS_IfcStructuralCurveMemberVarying +#define SCHEMA_HAS_IfcStructuralItem +#define SCHEMA_HAS_IfcStructuralLinearAction +#define SCHEMA_IfcStructuralLinearAction_HAS_ProjectedOrTrue +#define SCHEMA_HAS_IfcStructuralLinearActionVarying +#define SCHEMA_IfcStructuralLinearActionVarying_HAS_VaryingAppliedLoadLocation +#define SCHEMA_IfcStructuralLinearActionVarying_HAS_SubsequentAppliedLoads +#define SCHEMA_HAS_IfcStructuralLoad +#define SCHEMA_IfcStructuralLoad_HAS_Name +#define SCHEMA_IfcStructuralLoad_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadGroup +#define SCHEMA_IfcStructuralLoadGroup_HAS_PredefinedType +#define SCHEMA_IfcStructuralLoadGroup_HAS_ActionType +#define SCHEMA_IfcStructuralLoadGroup_HAS_ActionSource +#define SCHEMA_IfcStructuralLoadGroup_HAS_Coefficient +#define SCHEMA_IfcStructuralLoadGroup_Coefficient_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadGroup_HAS_Purpose +#define SCHEMA_IfcStructuralLoadGroup_Purpose_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadLinearForce +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearForceX +#define SCHEMA_IfcStructuralLoadLinearForce_LinearForceX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearForceY +#define SCHEMA_IfcStructuralLoadLinearForce_LinearForceY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearForceZ +#define SCHEMA_IfcStructuralLoadLinearForce_LinearForceZ_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearMomentX +#define SCHEMA_IfcStructuralLoadLinearForce_LinearMomentX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearMomentY +#define SCHEMA_IfcStructuralLoadLinearForce_LinearMomentY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearMomentZ +#define SCHEMA_IfcStructuralLoadLinearForce_LinearMomentZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadPlanarForce +#define SCHEMA_IfcStructuralLoadPlanarForce_HAS_PlanarForceX +#define SCHEMA_IfcStructuralLoadPlanarForce_PlanarForceX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadPlanarForce_HAS_PlanarForceY +#define SCHEMA_IfcStructuralLoadPlanarForce_PlanarForceY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadPlanarForce_HAS_PlanarForceZ +#define SCHEMA_IfcStructuralLoadPlanarForce_PlanarForceZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadSingleDisplacement +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_DisplacementX +#define SCHEMA_IfcStructuralLoadSingleDisplacement_DisplacementX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_DisplacementY +#define SCHEMA_IfcStructuralLoadSingleDisplacement_DisplacementY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_DisplacementZ +#define SCHEMA_IfcStructuralLoadSingleDisplacement_DisplacementZ_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_RotationalDisplacementRX +#define SCHEMA_IfcStructuralLoadSingleDisplacement_RotationalDisplacementRX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_RotationalDisplacementRY +#define SCHEMA_IfcStructuralLoadSingleDisplacement_RotationalDisplacementRY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_RotationalDisplacementRZ +#define SCHEMA_IfcStructuralLoadSingleDisplacement_RotationalDisplacementRZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadSingleDisplacementDistortion +#define SCHEMA_IfcStructuralLoadSingleDisplacementDistortion_HAS_Distortion +#define SCHEMA_IfcStructuralLoadSingleDisplacementDistortion_Distortion_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadSingleForce +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_ForceX +#define SCHEMA_IfcStructuralLoadSingleForce_ForceX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_ForceY +#define SCHEMA_IfcStructuralLoadSingleForce_ForceY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_ForceZ +#define SCHEMA_IfcStructuralLoadSingleForce_ForceZ_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_MomentX +#define SCHEMA_IfcStructuralLoadSingleForce_MomentX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_MomentY +#define SCHEMA_IfcStructuralLoadSingleForce_MomentY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_MomentZ +#define SCHEMA_IfcStructuralLoadSingleForce_MomentZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadSingleForceWarping +#define SCHEMA_IfcStructuralLoadSingleForceWarping_HAS_WarpingMoment +#define SCHEMA_IfcStructuralLoadSingleForceWarping_WarpingMoment_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadStatic +#define SCHEMA_HAS_IfcStructuralLoadTemperature +#define SCHEMA_IfcStructuralLoadTemperature_HAS_DeltaT_Constant +#define SCHEMA_IfcStructuralLoadTemperature_DeltaT_Constant_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadTemperature_HAS_DeltaT_Y +#define SCHEMA_IfcStructuralLoadTemperature_DeltaT_Y_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadTemperature_HAS_DeltaT_Z +#define SCHEMA_IfcStructuralLoadTemperature_DeltaT_Z_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralMember +#define SCHEMA_HAS_IfcStructuralPlanarAction +#define SCHEMA_IfcStructuralPlanarAction_HAS_ProjectedOrTrue +#define SCHEMA_HAS_IfcStructuralPlanarActionVarying +#define SCHEMA_IfcStructuralPlanarActionVarying_HAS_VaryingAppliedLoadLocation +#define SCHEMA_IfcStructuralPlanarActionVarying_HAS_SubsequentAppliedLoads +#define SCHEMA_HAS_IfcStructuralPointAction +#define SCHEMA_HAS_IfcStructuralPointConnection +#define SCHEMA_HAS_IfcStructuralPointReaction +#define SCHEMA_HAS_IfcStructuralProfileProperties +#define SCHEMA_IfcStructuralProfileProperties_HAS_TorsionalConstantX +#define SCHEMA_IfcStructuralProfileProperties_TorsionalConstantX_IS_OPTIONAL +#define SCHEMA_IfcStructuralProfileProperties_HAS_MomentOfInertiaYZ +#define SCHEMA_IfcStructuralProfileProperties_MomentOfInertiaYZ_IS_OPTIONAL +#define SCHEMA_IfcStructuralProfileProperties_HAS_MomentOfInertiaY +#define SCHEMA_IfcStructuralProfileProperties_MomentOfInertiaY_IS_OPTIONAL +#define SCHEMA_IfcStructuralProfileProperties_HAS_MomentOfInertiaZ +#define SCHEMA_IfcStructuralProfileProperties_MomentOfInertiaZ_IS_OPTIONAL +#define SCHEMA_IfcStructuralProfileProperties_HAS_WarpingConstant +#define SCHEMA_IfcStructuralProfileProperties_WarpingConstant_IS_OPTIONAL +#define SCHEMA_IfcStructuralProfileProperties_HAS_ShearCentreZ +#define SCHEMA_IfcStructuralProfileProperties_ShearCentreZ_IS_OPTIONAL +#define SCHEMA_IfcStructuralProfileProperties_HAS_ShearCentreY +#define SCHEMA_IfcStructuralProfileProperties_ShearCentreY_IS_OPTIONAL +#define SCHEMA_IfcStructuralProfileProperties_HAS_ShearDeformationAreaZ +#define SCHEMA_IfcStructuralProfileProperties_ShearDeformationAreaZ_IS_OPTIONAL +#define SCHEMA_IfcStructuralProfileProperties_HAS_ShearDeformationAreaY +#define SCHEMA_IfcStructuralProfileProperties_ShearDeformationAreaY_IS_OPTIONAL +#define SCHEMA_IfcStructuralProfileProperties_HAS_MaximumSectionModulusY +#define SCHEMA_IfcStructuralProfileProperties_MaximumSectionModulusY_IS_OPTIONAL +#define SCHEMA_IfcStructuralProfileProperties_HAS_MinimumSectionModulusY +#define SCHEMA_IfcStructuralProfileProperties_MinimumSectionModulusY_IS_OPTIONAL +#define SCHEMA_IfcStructuralProfileProperties_HAS_MaximumSectionModulusZ +#define SCHEMA_IfcStructuralProfileProperties_MaximumSectionModulusZ_IS_OPTIONAL +#define SCHEMA_IfcStructuralProfileProperties_HAS_MinimumSectionModulusZ +#define SCHEMA_IfcStructuralProfileProperties_MinimumSectionModulusZ_IS_OPTIONAL +#define SCHEMA_IfcStructuralProfileProperties_HAS_TorsionalSectionModulus +#define SCHEMA_IfcStructuralProfileProperties_TorsionalSectionModulus_IS_OPTIONAL +#define SCHEMA_IfcStructuralProfileProperties_HAS_CentreOfGravityInX +#define SCHEMA_IfcStructuralProfileProperties_CentreOfGravityInX_IS_OPTIONAL +#define SCHEMA_IfcStructuralProfileProperties_HAS_CentreOfGravityInY +#define SCHEMA_IfcStructuralProfileProperties_CentreOfGravityInY_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralReaction +#define SCHEMA_HAS_IfcStructuralResultGroup +#define SCHEMA_IfcStructuralResultGroup_HAS_TheoryType +#define SCHEMA_IfcStructuralResultGroup_HAS_ResultForLoadGroup +#define SCHEMA_IfcStructuralResultGroup_ResultForLoadGroup_IS_OPTIONAL +#define SCHEMA_IfcStructuralResultGroup_HAS_IsLinear +#define SCHEMA_HAS_IfcStructuralSteelProfileProperties +#define SCHEMA_IfcStructuralSteelProfileProperties_HAS_ShearAreaZ +#define SCHEMA_IfcStructuralSteelProfileProperties_ShearAreaZ_IS_OPTIONAL +#define SCHEMA_IfcStructuralSteelProfileProperties_HAS_ShearAreaY +#define SCHEMA_IfcStructuralSteelProfileProperties_ShearAreaY_IS_OPTIONAL +#define SCHEMA_IfcStructuralSteelProfileProperties_HAS_PlasticShapeFactorY +#define SCHEMA_IfcStructuralSteelProfileProperties_PlasticShapeFactorY_IS_OPTIONAL +#define SCHEMA_IfcStructuralSteelProfileProperties_HAS_PlasticShapeFactorZ +#define SCHEMA_IfcStructuralSteelProfileProperties_PlasticShapeFactorZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralSurfaceConnection +#define SCHEMA_HAS_IfcStructuralSurfaceMember +#define SCHEMA_IfcStructuralSurfaceMember_HAS_PredefinedType +#define SCHEMA_IfcStructuralSurfaceMember_HAS_Thickness +#define SCHEMA_IfcStructuralSurfaceMember_Thickness_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralSurfaceMemberVarying +#define SCHEMA_IfcStructuralSurfaceMemberVarying_HAS_SubsequentThickness +#define SCHEMA_IfcStructuralSurfaceMemberVarying_HAS_VaryingThicknessLocation +#define SCHEMA_HAS_IfcStructuredDimensionCallout +#define SCHEMA_HAS_IfcStyleModel +#define SCHEMA_HAS_IfcStyledItem +#define SCHEMA_IfcStyledItem_HAS_Item +#define SCHEMA_IfcStyledItem_Item_IS_OPTIONAL +#define SCHEMA_IfcStyledItem_HAS_Styles +#define SCHEMA_IfcStyledItem_HAS_Name +#define SCHEMA_IfcStyledItem_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcStyledRepresentation +#define SCHEMA_HAS_IfcSubContractResource +#define SCHEMA_IfcSubContractResource_HAS_SubContractor +#define SCHEMA_IfcSubContractResource_SubContractor_IS_OPTIONAL +#define SCHEMA_IfcSubContractResource_HAS_JobDescription +#define SCHEMA_IfcSubContractResource_JobDescription_IS_OPTIONAL +#define SCHEMA_HAS_IfcSubedge +#define SCHEMA_IfcSubedge_HAS_ParentEdge +#define SCHEMA_HAS_IfcSurface +#define SCHEMA_HAS_IfcSurfaceCurveSweptAreaSolid +#define SCHEMA_IfcSurfaceCurveSweptAreaSolid_HAS_Directrix +#define SCHEMA_IfcSurfaceCurveSweptAreaSolid_HAS_StartParam +#define SCHEMA_IfcSurfaceCurveSweptAreaSolid_HAS_EndParam +#define SCHEMA_IfcSurfaceCurveSweptAreaSolid_HAS_ReferenceSurface +#define SCHEMA_HAS_IfcSurfaceOfLinearExtrusion +#define SCHEMA_IfcSurfaceOfLinearExtrusion_HAS_ExtrudedDirection +#define SCHEMA_IfcSurfaceOfLinearExtrusion_HAS_Depth +#define SCHEMA_HAS_IfcSurfaceOfRevolution +#define SCHEMA_IfcSurfaceOfRevolution_HAS_AxisPosition +#define SCHEMA_HAS_IfcSurfaceStyle +#define SCHEMA_IfcSurfaceStyle_HAS_Side +#define SCHEMA_IfcSurfaceStyle_HAS_Styles +#define SCHEMA_HAS_IfcSurfaceStyleLighting +#define SCHEMA_IfcSurfaceStyleLighting_HAS_DiffuseTransmissionColour +#define SCHEMA_IfcSurfaceStyleLighting_HAS_DiffuseReflectionColour +#define SCHEMA_IfcSurfaceStyleLighting_HAS_TransmissionColour +#define SCHEMA_IfcSurfaceStyleLighting_HAS_ReflectanceColour +#define SCHEMA_HAS_IfcSurfaceStyleRefraction +#define SCHEMA_IfcSurfaceStyleRefraction_HAS_RefractionIndex +#define SCHEMA_IfcSurfaceStyleRefraction_RefractionIndex_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRefraction_HAS_DispersionFactor +#define SCHEMA_IfcSurfaceStyleRefraction_DispersionFactor_IS_OPTIONAL +#define SCHEMA_HAS_IfcSurfaceStyleRendering +#define SCHEMA_IfcSurfaceStyleRendering_HAS_Transparency +#define SCHEMA_IfcSurfaceStyleRendering_Transparency_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_DiffuseColour +#define SCHEMA_IfcSurfaceStyleRendering_DiffuseColour_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_TransmissionColour +#define SCHEMA_IfcSurfaceStyleRendering_TransmissionColour_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_DiffuseTransmissionColour +#define SCHEMA_IfcSurfaceStyleRendering_DiffuseTransmissionColour_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_ReflectionColour +#define SCHEMA_IfcSurfaceStyleRendering_ReflectionColour_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_SpecularColour +#define SCHEMA_IfcSurfaceStyleRendering_SpecularColour_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_SpecularHighlight +#define SCHEMA_IfcSurfaceStyleRendering_SpecularHighlight_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_ReflectanceMethod +#define SCHEMA_HAS_IfcSurfaceStyleShading +#define SCHEMA_IfcSurfaceStyleShading_HAS_SurfaceColour +#define SCHEMA_HAS_IfcSurfaceStyleWithTextures +#define SCHEMA_IfcSurfaceStyleWithTextures_HAS_Textures +#define SCHEMA_HAS_IfcSurfaceTexture +#define SCHEMA_IfcSurfaceTexture_HAS_RepeatS +#define SCHEMA_IfcSurfaceTexture_HAS_RepeatT +#define SCHEMA_IfcSurfaceTexture_HAS_TextureType +#define SCHEMA_IfcSurfaceTexture_HAS_TextureTransform +#define SCHEMA_IfcSurfaceTexture_TextureTransform_IS_OPTIONAL +#define SCHEMA_HAS_IfcSweptAreaSolid +#define SCHEMA_IfcSweptAreaSolid_HAS_SweptArea +#define SCHEMA_IfcSweptAreaSolid_HAS_Position +#define SCHEMA_HAS_IfcSweptDiskSolid +#define SCHEMA_IfcSweptDiskSolid_HAS_Directrix +#define SCHEMA_IfcSweptDiskSolid_HAS_Radius +#define SCHEMA_IfcSweptDiskSolid_HAS_InnerRadius +#define SCHEMA_IfcSweptDiskSolid_InnerRadius_IS_OPTIONAL +#define SCHEMA_IfcSweptDiskSolid_HAS_StartParam +#define SCHEMA_IfcSweptDiskSolid_HAS_EndParam +#define SCHEMA_HAS_IfcSweptSurface +#define SCHEMA_IfcSweptSurface_HAS_SweptCurve +#define SCHEMA_IfcSweptSurface_HAS_Position +#define SCHEMA_HAS_IfcSwitchingDeviceType +#define SCHEMA_IfcSwitchingDeviceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcSymbolStyle +#define SCHEMA_IfcSymbolStyle_HAS_StyleOfSymbol +#define SCHEMA_HAS_IfcSystem +#define SCHEMA_HAS_IfcSystemFurnitureElementType +#define SCHEMA_HAS_IfcTShapeProfileDef +#define SCHEMA_IfcTShapeProfileDef_HAS_Depth +#define SCHEMA_IfcTShapeProfileDef_HAS_FlangeWidth +#define SCHEMA_IfcTShapeProfileDef_HAS_WebThickness +#define SCHEMA_IfcTShapeProfileDef_HAS_FlangeThickness +#define SCHEMA_IfcTShapeProfileDef_HAS_FilletRadius +#define SCHEMA_IfcTShapeProfileDef_FilletRadius_IS_OPTIONAL +#define SCHEMA_IfcTShapeProfileDef_HAS_FlangeEdgeRadius +#define SCHEMA_IfcTShapeProfileDef_FlangeEdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcTShapeProfileDef_HAS_WebEdgeRadius +#define SCHEMA_IfcTShapeProfileDef_WebEdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcTShapeProfileDef_HAS_WebSlope +#define SCHEMA_IfcTShapeProfileDef_WebSlope_IS_OPTIONAL +#define SCHEMA_IfcTShapeProfileDef_HAS_FlangeSlope +#define SCHEMA_IfcTShapeProfileDef_FlangeSlope_IS_OPTIONAL +#define SCHEMA_IfcTShapeProfileDef_HAS_CentreOfGravityInY +#define SCHEMA_IfcTShapeProfileDef_CentreOfGravityInY_IS_OPTIONAL +#define SCHEMA_HAS_IfcTable +#define SCHEMA_IfcTable_HAS_Name +#define SCHEMA_IfcTable_HAS_Rows +#define SCHEMA_HAS_IfcTableRow +#define SCHEMA_IfcTableRow_HAS_RowCells +#define SCHEMA_IfcTableRow_HAS_IsHeading +#define SCHEMA_HAS_IfcTankType +#define SCHEMA_IfcTankType_HAS_PredefinedType +#define SCHEMA_HAS_IfcTask +#define SCHEMA_IfcTask_HAS_TaskId +#define SCHEMA_IfcTask_HAS_Status +#define SCHEMA_IfcTask_Status_IS_OPTIONAL +#define SCHEMA_IfcTask_HAS_WorkMethod +#define SCHEMA_IfcTask_WorkMethod_IS_OPTIONAL +#define SCHEMA_IfcTask_HAS_IsMilestone +#define SCHEMA_IfcTask_HAS_Priority +#define SCHEMA_IfcTask_Priority_IS_OPTIONAL +#define SCHEMA_HAS_IfcTelecomAddress +#define SCHEMA_IfcTelecomAddress_HAS_TelephoneNumbers +#define SCHEMA_IfcTelecomAddress_TelephoneNumbers_IS_OPTIONAL +#define SCHEMA_IfcTelecomAddress_HAS_FacsimileNumbers +#define SCHEMA_IfcTelecomAddress_FacsimileNumbers_IS_OPTIONAL +#define SCHEMA_IfcTelecomAddress_HAS_PagerNumber +#define SCHEMA_IfcTelecomAddress_PagerNumber_IS_OPTIONAL +#define SCHEMA_IfcTelecomAddress_HAS_ElectronicMailAddresses +#define SCHEMA_IfcTelecomAddress_ElectronicMailAddresses_IS_OPTIONAL +#define SCHEMA_IfcTelecomAddress_HAS_WWWHomePageURL +#define SCHEMA_IfcTelecomAddress_WWWHomePageURL_IS_OPTIONAL +#define SCHEMA_HAS_IfcTendon +#define SCHEMA_IfcTendon_HAS_PredefinedType +#define SCHEMA_IfcTendon_HAS_NominalDiameter +#define SCHEMA_IfcTendon_HAS_CrossSectionArea +#define SCHEMA_IfcTendon_HAS_TensionForce +#define SCHEMA_IfcTendon_TensionForce_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_PreStress +#define SCHEMA_IfcTendon_PreStress_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_FrictionCoefficient +#define SCHEMA_IfcTendon_FrictionCoefficient_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_AnchorageSlip +#define SCHEMA_IfcTendon_AnchorageSlip_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_MinCurvatureRadius +#define SCHEMA_IfcTendon_MinCurvatureRadius_IS_OPTIONAL +#define SCHEMA_HAS_IfcTendonAnchor +#define SCHEMA_HAS_IfcTerminatorSymbol +#define SCHEMA_IfcTerminatorSymbol_HAS_AnnotatedCurve +#define SCHEMA_HAS_IfcTextLiteral +#define SCHEMA_IfcTextLiteral_HAS_Literal +#define SCHEMA_IfcTextLiteral_HAS_Placement +#define SCHEMA_IfcTextLiteral_HAS_Path +#define SCHEMA_HAS_IfcTextLiteralWithExtent +#define SCHEMA_IfcTextLiteralWithExtent_HAS_Extent +#define SCHEMA_IfcTextLiteralWithExtent_HAS_BoxAlignment +#define SCHEMA_HAS_IfcTextStyle +#define SCHEMA_IfcTextStyle_HAS_TextCharacterAppearance +#define SCHEMA_IfcTextStyle_TextCharacterAppearance_IS_OPTIONAL +#define SCHEMA_IfcTextStyle_HAS_TextStyle +#define SCHEMA_IfcTextStyle_TextStyle_IS_OPTIONAL +#define SCHEMA_IfcTextStyle_HAS_TextFontStyle +#define SCHEMA_HAS_IfcTextStyleFontModel +#define SCHEMA_IfcTextStyleFontModel_HAS_FontFamily +#define SCHEMA_IfcTextStyleFontModel_FontFamily_IS_OPTIONAL +#define SCHEMA_IfcTextStyleFontModel_HAS_FontStyle +#define SCHEMA_IfcTextStyleFontModel_FontStyle_IS_OPTIONAL +#define SCHEMA_IfcTextStyleFontModel_HAS_FontVariant +#define SCHEMA_IfcTextStyleFontModel_FontVariant_IS_OPTIONAL +#define SCHEMA_IfcTextStyleFontModel_HAS_FontWeight +#define SCHEMA_IfcTextStyleFontModel_FontWeight_IS_OPTIONAL +#define SCHEMA_IfcTextStyleFontModel_HAS_FontSize +#define SCHEMA_HAS_IfcTextStyleForDefinedFont +#define SCHEMA_IfcTextStyleForDefinedFont_HAS_Colour +#define SCHEMA_IfcTextStyleForDefinedFont_HAS_BackgroundColour +#define SCHEMA_IfcTextStyleForDefinedFont_BackgroundColour_IS_OPTIONAL +#define SCHEMA_HAS_IfcTextStyleTextModel +#define SCHEMA_IfcTextStyleTextModel_HAS_TextIndent +#define SCHEMA_IfcTextStyleTextModel_TextIndent_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_TextAlign +#define SCHEMA_IfcTextStyleTextModel_TextAlign_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_TextDecoration +#define SCHEMA_IfcTextStyleTextModel_TextDecoration_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_LetterSpacing +#define SCHEMA_IfcTextStyleTextModel_LetterSpacing_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_WordSpacing +#define SCHEMA_IfcTextStyleTextModel_WordSpacing_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_TextTransform +#define SCHEMA_IfcTextStyleTextModel_TextTransform_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_LineHeight +#define SCHEMA_IfcTextStyleTextModel_LineHeight_IS_OPTIONAL +#define SCHEMA_HAS_IfcTextStyleWithBoxCharacteristics +#define SCHEMA_IfcTextStyleWithBoxCharacteristics_HAS_BoxHeight +#define SCHEMA_IfcTextStyleWithBoxCharacteristics_BoxHeight_IS_OPTIONAL +#define SCHEMA_IfcTextStyleWithBoxCharacteristics_HAS_BoxWidth +#define SCHEMA_IfcTextStyleWithBoxCharacteristics_BoxWidth_IS_OPTIONAL +#define SCHEMA_IfcTextStyleWithBoxCharacteristics_HAS_BoxSlantAngle +#define SCHEMA_IfcTextStyleWithBoxCharacteristics_BoxSlantAngle_IS_OPTIONAL +#define SCHEMA_IfcTextStyleWithBoxCharacteristics_HAS_BoxRotateAngle +#define SCHEMA_IfcTextStyleWithBoxCharacteristics_BoxRotateAngle_IS_OPTIONAL +#define SCHEMA_IfcTextStyleWithBoxCharacteristics_HAS_CharacterSpacing +#define SCHEMA_IfcTextStyleWithBoxCharacteristics_CharacterSpacing_IS_OPTIONAL +#define SCHEMA_HAS_IfcTextureCoordinate +#define SCHEMA_HAS_IfcTextureCoordinateGenerator +#define SCHEMA_IfcTextureCoordinateGenerator_HAS_Mode +#define SCHEMA_IfcTextureCoordinateGenerator_HAS_Parameter +#define SCHEMA_HAS_IfcTextureMap +#define SCHEMA_IfcTextureMap_HAS_TextureMaps +#define SCHEMA_HAS_IfcTextureVertex +#define SCHEMA_IfcTextureVertex_HAS_Coordinates +#define SCHEMA_HAS_IfcThermalMaterialProperties +#define SCHEMA_IfcThermalMaterialProperties_HAS_SpecificHeatCapacity +#define SCHEMA_IfcThermalMaterialProperties_SpecificHeatCapacity_IS_OPTIONAL +#define SCHEMA_IfcThermalMaterialProperties_HAS_BoilingPoint +#define SCHEMA_IfcThermalMaterialProperties_BoilingPoint_IS_OPTIONAL +#define SCHEMA_IfcThermalMaterialProperties_HAS_FreezingPoint +#define SCHEMA_IfcThermalMaterialProperties_FreezingPoint_IS_OPTIONAL +#define SCHEMA_IfcThermalMaterialProperties_HAS_ThermalConductivity +#define SCHEMA_IfcThermalMaterialProperties_ThermalConductivity_IS_OPTIONAL +#define SCHEMA_HAS_IfcTimeSeries +#define SCHEMA_IfcTimeSeries_HAS_Name +#define SCHEMA_IfcTimeSeries_HAS_Description +#define SCHEMA_IfcTimeSeries_Description_IS_OPTIONAL +#define SCHEMA_IfcTimeSeries_HAS_StartTime +#define SCHEMA_IfcTimeSeries_HAS_EndTime +#define SCHEMA_IfcTimeSeries_HAS_TimeSeriesDataType +#define SCHEMA_IfcTimeSeries_HAS_DataOrigin +#define SCHEMA_IfcTimeSeries_HAS_UserDefinedDataOrigin +#define SCHEMA_IfcTimeSeries_UserDefinedDataOrigin_IS_OPTIONAL +#define SCHEMA_IfcTimeSeries_HAS_Unit +#define SCHEMA_IfcTimeSeries_Unit_IS_OPTIONAL +#define SCHEMA_HAS_IfcTimeSeriesReferenceRelationship +#define SCHEMA_IfcTimeSeriesReferenceRelationship_HAS_ReferencedTimeSeries +#define SCHEMA_IfcTimeSeriesReferenceRelationship_HAS_TimeSeriesReferences +#define SCHEMA_HAS_IfcTimeSeriesSchedule +#define SCHEMA_IfcTimeSeriesSchedule_HAS_ApplicableDates +#define SCHEMA_IfcTimeSeriesSchedule_ApplicableDates_IS_OPTIONAL +#define SCHEMA_IfcTimeSeriesSchedule_HAS_TimeSeriesScheduleType +#define SCHEMA_IfcTimeSeriesSchedule_HAS_TimeSeries +#define SCHEMA_HAS_IfcTimeSeriesValue +#define SCHEMA_IfcTimeSeriesValue_HAS_ListValues +#define SCHEMA_HAS_IfcTopologicalRepresentationItem +#define SCHEMA_HAS_IfcTopologyRepresentation +#define SCHEMA_HAS_IfcTransformerType +#define SCHEMA_IfcTransformerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcTransportElement +#define SCHEMA_IfcTransportElement_HAS_OperationType +#define SCHEMA_IfcTransportElement_OperationType_IS_OPTIONAL +#define SCHEMA_IfcTransportElement_HAS_CapacityByWeight +#define SCHEMA_IfcTransportElement_CapacityByWeight_IS_OPTIONAL +#define SCHEMA_IfcTransportElement_HAS_CapacityByNumber +#define SCHEMA_IfcTransportElement_CapacityByNumber_IS_OPTIONAL +#define SCHEMA_HAS_IfcTransportElementType +#define SCHEMA_IfcTransportElementType_HAS_PredefinedType +#define SCHEMA_HAS_IfcTrapeziumProfileDef +#define SCHEMA_IfcTrapeziumProfileDef_HAS_BottomXDim +#define SCHEMA_IfcTrapeziumProfileDef_HAS_TopXDim +#define SCHEMA_IfcTrapeziumProfileDef_HAS_YDim +#define SCHEMA_IfcTrapeziumProfileDef_HAS_TopXOffset +#define SCHEMA_HAS_IfcTrimmedCurve +#define SCHEMA_IfcTrimmedCurve_HAS_BasisCurve +#define SCHEMA_IfcTrimmedCurve_HAS_Trim1 +#define SCHEMA_IfcTrimmedCurve_HAS_Trim2 +#define SCHEMA_IfcTrimmedCurve_HAS_SenseAgreement +#define SCHEMA_IfcTrimmedCurve_HAS_MasterRepresentation +#define SCHEMA_HAS_IfcTubeBundleType +#define SCHEMA_IfcTubeBundleType_HAS_PredefinedType +#define SCHEMA_HAS_IfcTwoDirectionRepeatFactor +#define SCHEMA_IfcTwoDirectionRepeatFactor_HAS_SecondRepeatFactor +#define SCHEMA_HAS_IfcTypeObject +#define SCHEMA_IfcTypeObject_HAS_ApplicableOccurrence +#define SCHEMA_IfcTypeObject_ApplicableOccurrence_IS_OPTIONAL +#define SCHEMA_IfcTypeObject_HAS_HasPropertySets +#define SCHEMA_IfcTypeObject_HasPropertySets_IS_OPTIONAL +#define SCHEMA_HAS_IfcTypeProduct +#define SCHEMA_IfcTypeProduct_HAS_RepresentationMaps +#define SCHEMA_IfcTypeProduct_RepresentationMaps_IS_OPTIONAL +#define SCHEMA_IfcTypeProduct_HAS_Tag +#define SCHEMA_IfcTypeProduct_Tag_IS_OPTIONAL +#define SCHEMA_HAS_IfcUShapeProfileDef +#define SCHEMA_IfcUShapeProfileDef_HAS_Depth +#define SCHEMA_IfcUShapeProfileDef_HAS_FlangeWidth +#define SCHEMA_IfcUShapeProfileDef_HAS_WebThickness +#define SCHEMA_IfcUShapeProfileDef_HAS_FlangeThickness +#define SCHEMA_IfcUShapeProfileDef_HAS_FilletRadius +#define SCHEMA_IfcUShapeProfileDef_FilletRadius_IS_OPTIONAL +#define SCHEMA_IfcUShapeProfileDef_HAS_EdgeRadius +#define SCHEMA_IfcUShapeProfileDef_EdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcUShapeProfileDef_HAS_FlangeSlope +#define SCHEMA_IfcUShapeProfileDef_FlangeSlope_IS_OPTIONAL +#define SCHEMA_IfcUShapeProfileDef_HAS_CentreOfGravityInX +#define SCHEMA_IfcUShapeProfileDef_CentreOfGravityInX_IS_OPTIONAL +#define SCHEMA_HAS_IfcUnitAssignment +#define SCHEMA_IfcUnitAssignment_HAS_Units +#define SCHEMA_HAS_IfcUnitaryEquipmentType +#define SCHEMA_IfcUnitaryEquipmentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcValveType +#define SCHEMA_IfcValveType_HAS_PredefinedType +#define SCHEMA_HAS_IfcVector +#define SCHEMA_IfcVector_HAS_Orientation +#define SCHEMA_IfcVector_HAS_Magnitude +#define SCHEMA_HAS_IfcVertex +#define SCHEMA_HAS_IfcVertexBasedTextureMap +#define SCHEMA_IfcVertexBasedTextureMap_HAS_TextureVertices +#define SCHEMA_IfcVertexBasedTextureMap_HAS_TexturePoints +#define SCHEMA_HAS_IfcVertexLoop +#define SCHEMA_IfcVertexLoop_HAS_LoopVertex +#define SCHEMA_HAS_IfcVertexPoint +#define SCHEMA_IfcVertexPoint_HAS_VertexGeometry +#define SCHEMA_HAS_IfcVibrationIsolatorType +#define SCHEMA_IfcVibrationIsolatorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcVirtualElement +#define SCHEMA_HAS_IfcVirtualGridIntersection +#define SCHEMA_IfcVirtualGridIntersection_HAS_IntersectingAxes +#define SCHEMA_IfcVirtualGridIntersection_HAS_OffsetDistances +#define SCHEMA_HAS_IfcWall +#define SCHEMA_HAS_IfcWallStandardCase +#define SCHEMA_HAS_IfcWallType +#define SCHEMA_IfcWallType_HAS_PredefinedType +#define SCHEMA_HAS_IfcWasteTerminalType +#define SCHEMA_IfcWasteTerminalType_HAS_PredefinedType +#define SCHEMA_HAS_IfcWaterProperties +#define SCHEMA_IfcWaterProperties_HAS_IsPotable +#define SCHEMA_IfcWaterProperties_IsPotable_IS_OPTIONAL +#define SCHEMA_IfcWaterProperties_HAS_Hardness +#define SCHEMA_IfcWaterProperties_Hardness_IS_OPTIONAL +#define SCHEMA_IfcWaterProperties_HAS_AlkalinityConcentration +#define SCHEMA_IfcWaterProperties_AlkalinityConcentration_IS_OPTIONAL +#define SCHEMA_IfcWaterProperties_HAS_AcidityConcentration +#define SCHEMA_IfcWaterProperties_AcidityConcentration_IS_OPTIONAL +#define SCHEMA_IfcWaterProperties_HAS_ImpuritiesContent +#define SCHEMA_IfcWaterProperties_ImpuritiesContent_IS_OPTIONAL +#define SCHEMA_IfcWaterProperties_HAS_PHLevel +#define SCHEMA_IfcWaterProperties_PHLevel_IS_OPTIONAL +#define SCHEMA_IfcWaterProperties_HAS_DissolvedSolidsContent +#define SCHEMA_IfcWaterProperties_DissolvedSolidsContent_IS_OPTIONAL +#define SCHEMA_HAS_IfcWindow +#define SCHEMA_IfcWindow_HAS_OverallHeight +#define SCHEMA_IfcWindow_OverallHeight_IS_OPTIONAL +#define SCHEMA_IfcWindow_HAS_OverallWidth +#define SCHEMA_IfcWindow_OverallWidth_IS_OPTIONAL +#define SCHEMA_HAS_IfcWindowLiningProperties +#define SCHEMA_IfcWindowLiningProperties_HAS_LiningDepth +#define SCHEMA_IfcWindowLiningProperties_LiningDepth_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_LiningThickness +#define SCHEMA_IfcWindowLiningProperties_LiningThickness_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_TransomThickness +#define SCHEMA_IfcWindowLiningProperties_TransomThickness_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_MullionThickness +#define SCHEMA_IfcWindowLiningProperties_MullionThickness_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_FirstTransomOffset +#define SCHEMA_IfcWindowLiningProperties_FirstTransomOffset_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_SecondTransomOffset +#define SCHEMA_IfcWindowLiningProperties_SecondTransomOffset_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_FirstMullionOffset +#define SCHEMA_IfcWindowLiningProperties_FirstMullionOffset_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_SecondMullionOffset +#define SCHEMA_IfcWindowLiningProperties_SecondMullionOffset_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_ShapeAspectStyle +#define SCHEMA_IfcWindowLiningProperties_ShapeAspectStyle_IS_OPTIONAL +#define SCHEMA_HAS_IfcWindowPanelProperties +#define SCHEMA_IfcWindowPanelProperties_HAS_OperationType +#define SCHEMA_IfcWindowPanelProperties_HAS_PanelPosition +#define SCHEMA_IfcWindowPanelProperties_HAS_FrameDepth +#define SCHEMA_IfcWindowPanelProperties_FrameDepth_IS_OPTIONAL +#define SCHEMA_IfcWindowPanelProperties_HAS_FrameThickness +#define SCHEMA_IfcWindowPanelProperties_FrameThickness_IS_OPTIONAL +#define SCHEMA_IfcWindowPanelProperties_HAS_ShapeAspectStyle +#define SCHEMA_IfcWindowPanelProperties_ShapeAspectStyle_IS_OPTIONAL +#define SCHEMA_HAS_IfcWindowStyle +#define SCHEMA_IfcWindowStyle_HAS_ConstructionType +#define SCHEMA_IfcWindowStyle_HAS_OperationType +#define SCHEMA_IfcWindowStyle_HAS_ParameterTakesPrecedence +#define SCHEMA_IfcWindowStyle_HAS_Sizeable +#define SCHEMA_HAS_IfcWorkControl +#define SCHEMA_IfcWorkControl_HAS_Identifier +#define SCHEMA_IfcWorkControl_HAS_CreationDate +#define SCHEMA_IfcWorkControl_HAS_Creators +#define SCHEMA_IfcWorkControl_Creators_IS_OPTIONAL +#define SCHEMA_IfcWorkControl_HAS_Purpose +#define SCHEMA_IfcWorkControl_Purpose_IS_OPTIONAL +#define SCHEMA_IfcWorkControl_HAS_Duration +#define SCHEMA_IfcWorkControl_Duration_IS_OPTIONAL +#define SCHEMA_IfcWorkControl_HAS_TotalFloat +#define SCHEMA_IfcWorkControl_TotalFloat_IS_OPTIONAL +#define SCHEMA_IfcWorkControl_HAS_StartTime +#define SCHEMA_IfcWorkControl_HAS_FinishTime +#define SCHEMA_IfcWorkControl_FinishTime_IS_OPTIONAL +#define SCHEMA_IfcWorkControl_HAS_WorkControlType +#define SCHEMA_IfcWorkControl_WorkControlType_IS_OPTIONAL +#define SCHEMA_IfcWorkControl_HAS_UserDefinedControlType +#define SCHEMA_IfcWorkControl_UserDefinedControlType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWorkPlan +#define SCHEMA_HAS_IfcWorkSchedule +#define SCHEMA_HAS_IfcZShapeProfileDef +#define SCHEMA_IfcZShapeProfileDef_HAS_Depth +#define SCHEMA_IfcZShapeProfileDef_HAS_FlangeWidth +#define SCHEMA_IfcZShapeProfileDef_HAS_WebThickness +#define SCHEMA_IfcZShapeProfileDef_HAS_FlangeThickness +#define SCHEMA_IfcZShapeProfileDef_HAS_FilletRadius +#define SCHEMA_IfcZShapeProfileDef_FilletRadius_IS_OPTIONAL +#define SCHEMA_IfcZShapeProfileDef_HAS_EdgeRadius +#define SCHEMA_IfcZShapeProfileDef_EdgeRadius_IS_OPTIONAL +#define SCHEMA_HAS_IfcZone diff --git a/src/ifcparse/Ifc2x3.h b/src/ifcparse/Ifc2x3.h index a66de4b6a6..8c117300b0 100644 --- a/src/ifcparse/Ifc2x3.h +++ b/src/ifcparse/Ifc2x3.h @@ -40,8 +40,6 @@ #include "../ifcparse/IfcException.h" #include "../ifcparse/Argument.h" -#include "../ifcparse/Ifc2x3enum.h" - struct Ifc2x3 { static const IfcParse::schema_definition& get_schema(); @@ -746,9 +744,9 @@ struct IfcBSplineCurveForm { /// hyperbolic arc: An arc of finite length of one branch of a hyperbola represented by a B-spline curve. /// unspecified: A B-spline curve for which no particular form is specified. /// -/// NOTE  Corresponding ISO 10303 type: b_spline_curve_form. Please refer to ISO/IS 10303-42:1994, p. 15 for the final definition of the formal standard. +/// NOTE Corresponding ISO 10303 type: b_spline_curve_form. Please refer to ISO/IS 10303-42:1994, p. 15 for the final definition of the formal standard. /// -/// HISTORY  New type in Release IFC2x2. +/// HISTORY New type in Release IFC2x2. typedef enum {IfcBSplineCurveForm_POLYLINE_FORM, IfcBSplineCurveForm_CIRCULAR_ARC, IfcBSplineCurveForm_ELLIPTIC_ARC, IfcBSplineCurveForm_PARABOLIC_ARC, IfcBSplineCurveForm_HYPERBOLIC_ARC, IfcBSplineCurveForm_UNSPECIFIED} Value; IFC_PARSE_API static const char* ToString(Value v); IFC_PARSE_API static Value FromString(const std::string& s); @@ -769,7 +767,7 @@ struct IfcBeamTypeEnum { /// exterior of the building. Can be used to support joists or slab /// elements on its interior side. /// -/// NOTE  They are also referred to as "spandrel +/// NOTE They are also referred to as "spandrel /// panels", which are parts of a facade and sometimes have /// supporting consoles for floor slabs /// integrated. @@ -779,7 +777,7 @@ struct IfcBeamTypeEnum { /// often of T-shape (therefore the English name), but may have other /// shapes as well, e.g. an L-Shape or an Inverted-T-Shape. /// -/// NOTE  In order to distinguish beams by shape, +/// NOTE In order to distinguish beams by shape, /// the assigned IfcProfileDef subtypes provide the shape type /// and, if using a subtype of /// IfcParameterizedProfileDef, also the shape @@ -788,9 +786,9 @@ struct IfcBeamTypeEnum { /// USERDEFINED: User-defined linear beam element. /// NOTDEFINED: Undefined linear beam element /// -/// HISTORY  New Enumeration +/// HISTORY New Enumeration /// in Release IFC2x Edition 2. -/// IFC2x4 CHANGE  The enumerators +/// IFC2x4 CHANGE The enumerators /// HOLLOWCORE and SPANDREL have been /// added. typedef enum {IfcBeamType_BEAM, IfcBeamType_JOIST, IfcBeamType_LINTEL, IfcBeamType_T_BEAM, IfcBeamType_USERDEFINED, IfcBeamType_NOTDEFINED} Value; @@ -874,8 +872,8 @@ struct IfcBuildingElementProxyTypeEnum { /// Definition from IAI: This enumeration defines the /// available generic types for IfcBuildingElementProxyType. /// -/// HISTORY  New enumeration -/// in Release IFC2x Edition 3. +/// HISTORY New enumeration +/// inRelease IFC2x Edition 3. /// /// Enumeration /// @@ -1438,10 +1436,8 @@ struct IfcDoorPanelOperationEnum { /// NOTE Enumerator added in IFC2x4. /// /// UserDefined -///   /// /// NotDefined -///   /// /// Figure 164 — Door operations /// @@ -2635,10 +2631,10 @@ struct IfcMemberTypeEnum { /// no further meaning. /// MULLION: A linear element within a curtain wall system /// to connect two (or more) panels. -/// PLATE: A linear continuous horizontal element in wall +/// PLATE: Alinear continuous horizontal element in wall /// framing, e.g. a head piece or a sole plate. /// -/// NOTE  This head piece or sole plate shall not +/// NOTE This head piece or sole plate shall not /// be mixed up with planar elements, such as sheets and panels, that /// are handled as IfcPlate (and /// IfcPlateType). @@ -2660,9 +2656,9 @@ struct IfcMemberTypeEnum { /// HISTORY: New /// Enumeration in Release IFC2x Edition 2. /// IFC2x Edition 2 -/// Addendum 1 CHANGE  The additional identifiers CHORD, PLATE, STUD +/// Addendum 1 CHANGE The additional identifiers CHORD, PLATE, STUD /// are added. -/// IFC2x Edition 3 CHANGE  The additional identifier MULLION has +/// IFC2x Edition 3 CHANGE The additional identifier MULLION has /// been added. typedef enum {IfcMemberType_BRACE, IfcMemberType_CHORD, IfcMemberType_COLLAR, IfcMemberType_MEMBER, IfcMemberType_MULLION, IfcMemberType_PLATE, IfcMemberType_POST, IfcMemberType_PURLIN, IfcMemberType_RAFTER, IfcMemberType_STRINGER, IfcMemberType_STRUT, IfcMemberType_STUD, IfcMemberType_USERDEFINED, IfcMemberType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); @@ -3535,7 +3531,7 @@ struct IfcSlabTypeEnum { /// special property set definition may be provided for each /// predefined type. /// -/// HISTORY  New type in IFC +/// HISTORY New type in IFC /// Release 2.0 /// /// Floor @@ -3559,7 +3555,7 @@ struct IfcSlabTypeEnum { /// foundation). Another name is mat foundation. /// /// IFC2x3 CHANGE -///  new enumerator added. +/// new enumerator added. typedef enum {IfcSlabType_FLOOR, IfcSlabType_ROOF, IfcSlabType_LANDING, IfcSlabType_BASESLAB, IfcSlabType_USERDEFINED, IfcSlabType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); IFC_PARSE_API static Value FromString(const std::string& s); @@ -3969,9 +3965,9 @@ struct IfcTransportElementTypeEnum { /// heavy goods. It may be manually operated or electrically or /// pneumatically driven. /// -/// HISTORY  New enumeration +/// HISTORY New enumeration /// in IFC Release 2x. -/// IFC2x4 CHANGE  New enumerators +/// IFC2x4 CHANGE New enumerators /// CRANEWAY and LIFTINGGEAR added in /// IFC2x4. typedef enum {IfcTransportElementType_ELEVATOR, IfcTransportElementType_ESCALATOR, IfcTransportElementType_MOVINGWALKWAY, IfcTransportElementType_USERDEFINED, IfcTransportElementType_NOTDEFINED} Value; @@ -4155,15 +4151,15 @@ struct IfcWallTypeEnum { /// USERDEFINED: User-defined wall element. /// NOTDEFINED: Undefined wall element /// -/// HISTORY  New +/// HISTORY New /// Enumeration in Release IFC2x Edition 2. -/// IFC2x2 ADDENDUM CHANGE  +/// IFC2x2 ADDENDUM CHANGE /// The enumerator POLYGON has been changed to /// POLYGONAL. -/// IFC2x3 CHANGE  The enumerators +/// IFC2x3 CHANGE The enumerators /// ELEMENTEDWALL and PLUMBINGWALL have been /// added. -/// IFC2x4 CHANGE  New enumerator +/// IFC2x4 CHANGE New enumerator /// MOVABLE has been added. typedef enum {IfcWallType_STANDARD, IfcWallType_POLYGONAL, IfcWallType_SHEAR, IfcWallType_ELEMENTEDWALL, IfcWallType_PLUMBINGWALL, IfcWallType_USERDEFINED, IfcWallType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); @@ -7886,9 +7882,9 @@ public: /// styles, hatching definitions or surface coloring/rendering /// information to a material. /// -/// HISTORYÿNew entity in IFC2x4 +/// HISTORYNew entity in IFC2x4 /// -/// IFC2x4 CHANGEÿ The attributes Description and Category have been added. +/// IFC2x4 CHANGE The attributes Description and Category have been added. class IFC_PARSE_API IfcMaterial : public IfcUtil::IfcBaseEntity { public: /// Name of the material. @@ -7908,9 +7904,9 @@ public: }; /// IfcMaterialClassificationRelationship is a relationship assigning classifications to materials. /// -/// HISTORYÿ New entity in IFC2x. +/// HISTORY New entity in IFC2x. /// -/// IFC2x4 CHANGEÿ The entity IfcMaterialClassificationRelationship is deprecated since IFC2x4 and shall no longer be used. Use IfcExternalReferenceRelationship instead. +/// IFC2x4 CHANGE The entity IfcMaterialClassificationRelationship is deprecated since IFC2x4 and shall no longer be used. Use IfcExternalReferenceRelationship instead. class IFC_PARSE_API IfcMaterialClassificationRelationship : public IfcUtil::IfcBaseEntity { public: /// The material classifications identifying the type of material. @@ -8035,7 +8031,7 @@ public: /// the element geometry). The rules to ensure the compatibility /// depend on the type of the building element. /// -/// EXAMPLE ÿFor a cavity brick wall with shape +/// EXAMPLE For a cavity brick wall with shape /// representation SweptSolid, the /// IfcMaterialLayerSet.TotalThickness shall be equal to the /// wall thickness. Also the OffsetFromReferenceLine shall @@ -8045,7 +8041,7 @@ public: /// RepresentationIdentifier="Axis" and /// RepresentationIdentifier="Body". /// -/// NOTE ÿRefer to the implementation guide and agreements for +/// NOTE Refer to the implementation guide and agreements for /// more information on matching between building element geometry /// and material layer set usage. /// @@ -8056,7 +8052,7 @@ public: /// objects. If the element type is available (i.e. the relevant /// subtype of IfcElementType, then the /// IfcMaterialLayerSet can be assigned to the type object. -/// The assignment between aÿsubtype of IfcElement and the +/// The assignment between asubtype of IfcElement and the /// IfcMaterialLayerSetUsage is handled by /// IfcRelAssociatesMaterial. /// @@ -8069,8 +8065,8 @@ public: /// material layer thicknesses are constant. /// Generally, an element may be layered in any of its primary /// directions, denoted by its x, y or z axis. The geometry use -/// definitions at eachÿspecific types of building element will -/// determine the applicableÿLayerSetDirection. +/// definitions at eachspecific types of building element will +/// determine the applicableLayerSetDirection. /// /// The following examples illustrate how the IfcMaterialLayerSetUsage attributes (LayerSetDirection, DirectionSense, OffsetFromReferenceLine) can /// be used in different cases. The normative material use definitions are documented at each element (how these shall be used). @@ -8080,14 +8076,14 @@ public: /// EXAMPLE  For a standard wall with extruded /// geometric representation (vertical extrusion), the layer set /// direction will be perpendicular to extrusion direction, -/// andÿcan be derived from the direction of the wall +/// andcan be derived from the direction of the wall /// axis. With the DirectionSense(positive in /// this example) the individual IfcMaterialLayers are /// assigned consecutively right-to-left or left-to-right. For a /// curved wall, "direction denoting the wall thickness" can be /// derived from the direction of the wall axis, and it will remain /// perpendicular to the wall path. The -/// DirectionSenseÿapplies as well. +/// DirectionSenseapplies as well. /// /// NOTE  According to the IfcWallStandardCase material use /// definition the LayerSetDirection for @@ -8098,17 +8094,17 @@ public: /// /// Figure 287 shows an example of the use of IfcMaterialLayerSetUsage aligned to a slab. /// -/// EXAMPLE ÿFor a slab with perpendicular +/// EXAMPLE For a slab with perpendicular /// extruded geometric representation, the LayerSetDirection /// will coincide with the extrusion direction (in positive or /// negative sense). In this example, the material layer set base is /// the extruded profile and consistent with the -/// IfcExtrudedAreaSolid.Position,ÿwith the +/// IfcExtrudedAreaSolid.Position,with the /// DirectionSensebeing positive, the /// individual IfcMaterialLayers are built up from the base /// towards positive z direction in this case. /// -/// NOTE ÿAccording to the IfcSlabStandardCase +/// NOTE According to the IfcSlabStandardCase /// material use definition the LayerSetDirection for /// IfcSlabStandardCase is always AXIS3 (i.e. along the /// z-axis). @@ -8117,7 +8113,7 @@ public: /// /// Figure 288 shows an example of the use of IfcMaterialLayerSetUsage aligned to a roof slab with non-perpendicular extrusion. /// -/// EXAMPLE ÿFor a slab with non-perpendicular +/// EXAMPLE For a slab with non-perpendicular /// extruded geometric representation, the guidelines above apply as /// well. The material layer thickness and the /// OffsetFromReferenceLine is always measured @@ -8167,7 +8163,7 @@ public: /// of a single identifiable material (for example, to represent anisotropic /// material). /// -/// IFC2x4 CHANGEÿ The entity IfcMaterialList is deprecated and shall no longer +/// IFC2x4 CHANGE The entity IfcMaterialList is deprecated and shall no longer /// be used. Use IfcMaterialConstituentSet instead. class IFC_PARSE_API IfcMaterialList : public IfcUtil::IfcBaseEntity { public: @@ -9000,7 +8996,7 @@ public: /// /// HISTORY New entity in IFC Release 2.0 /// -/// IFC2x3 NOTE ÿUsers should not instantiate the entity from IFC2x Edition 3 onwards. +/// IFC2x3 NOTE Users should not instantiate the entity from IFC2x Edition 3 onwards. /// /// IFC2x4 CHANGE  Entity made abstract. class IFC_PARSE_API IfcProductRepresentation : public IfcUtil::IfcBaseEntity { @@ -9606,7 +9602,7 @@ public: /// IfcElement, or in view definitions / implementer /// agreements. /// -/// NOTE ÿThe definition of this +/// NOTE The definition of this /// entity relates to the ISO 10303 entity representation. Please /// refer to ISO/IS 10303-43:1994 for the final definition of /// the formal standard. @@ -9906,7 +9902,7 @@ public: /// product shape represent a distinctive part to a product /// that can be explicitly addressed. /// -/// NOTE ÿThe definition of +/// NOTE The definition of /// this class relates to the ISO 10303 entity shape_aspect. Please /// refer to ISO/IS 10303-41:1994 for the final definition of /// the formal standard. @@ -9925,9 +9921,9 @@ public: /// PartOfProductDefinitionShape must refer to this /// instance of IfcProductDefinitionShape. /// -/// NOTEÿ PartOfProductDefinitionShape is +/// NOTE PartOfProductDefinitionShape is /// only to be omitted if the shape representations are -/// attached to an IfcRepresentationMap. ÿThis +/// attached to an IfcRepresentationMap. This /// enables the use of IfcShapeAspect with /// IfcRepresentationMap's that are used by an /// IfcTypeProduct through the @@ -11815,12 +11811,12 @@ public: }; /// IfcConnectionPointEccentricity is used to describe the geometric constraints that facilitate the physical connection of two objects at a point or vertex point with associated point coordinates. There is a physical distance, or eccentricity, etween the connection points of both object. The eccentricity can be either given by: /// -/// providing the PointOnRelatingElement and the PointOnRelatedElement, where bothÿpoint coordinates are not identical within a common parent coordinate system (latestly within the world coordinate system), +/// providing the PointOnRelatingElement and the PointOnRelatedElement, where bothpoint coordinates are not identical within a common parent coordinate system (latestly within the world coordinate system), /// providing the PointOnRelatingElement and the three distance measures, EccentricityInX, EccentricityInY, and EccentricityInZ (or only EccentricityInX, and EccentricityInY if the /// underlying coordinate system is two-dimensional), or /// providing both. /// -/// NOTEÿ If both, PointOnRelatedElement, and EccentricityInX, EccentricityInY, (EccentricityInZ) are provided, the values should be consistent. In case of any non-consistency, the calculated distance between PointOnRelatingElement and PointOnRelatedElement takes precedence. +/// NOTE If both, PointOnRelatedElement, and EccentricityInX, EccentricityInY, (EccentricityInZ) are provided, the values should be consistent. In case of any non-consistency, the calculated distance between PointOnRelatingElement and PointOnRelatedElement takes precedence. /// /// The explicit values for EccentricityInX, EccentricityInY, and EccentricityInZ are always /// measured in the following direction and coordinate system (defining when the value is positive or negative): @@ -11828,7 +11824,7 @@ public: /// from the PointOnRelatedElement to PointOnRelatingElement within the coordinate system of the RelatingElement. /// in addition: when used to specify connections in structural analysis models, the IfcStructuralMember is to be used as the RelatingElement of the relationship object utilizing IfcConnectionPointEccentricity, and the IfcStructuralConnection is the RelatedElement. /// -/// HISTORYÿ New entity in IFC 2x Edition 3. +/// HISTORY New entity in IFC 2x Edition 3. /// /// Geometry use definitions /// The IfcPoint (or the IfcVertexPoint with an associated IfcPoint) at the PointOnRelatingElement attribute defines the point where the basic geometry items of the connected elements connects. The point coordinates are provided within the local coordinate system of the RelatingElement, as specified at the IfcRelConnects subtype that utilizes the IfcConnectionPointGeometry. Optionally, the same point coordinates can also be provided within the local coordinate system of the RelatedElement by using the PointOnRelatedElement attribute, otherwise the distance to the point at the RelatedElement has to be given by the three eccentricity values. @@ -12617,7 +12613,7 @@ public: /// /// Figure 329 — Geometric representation context true north /// -/// NOTE ÿThe inherited attribute +/// NOTE The inherited attribute /// ContextType shall have one of the following recognized /// values: 'Sketch', 'Outline', 'Design', 'Detail', /// 'Model', 'Plan', @@ -12640,9 +12636,9 @@ public: /// /// NOTE  The definition of this class relates to the ISO 10303 entity geometric_representation_context. Please refer to ISO/IS 10303-42:1994 for the final definition of the formal standard. /// -/// HISTORY ÿNew Entity in IFC Release 2.0 +/// HISTORY New Entity in IFC Release 2.0 /// -/// IFC2x3 CHANGE ÿApplicable values for ContextType are only 'Model',ÿ 'Plan', andÿ'NotDefined'. All other sub contexts are now handled by the new subtype in IFC2x Edition 2 IfcGeometricRepresentationSubContext. Upward compatibility for file based exchange is guaranteed. +/// IFC2x3 CHANGE Applicable values for ContextType are only 'Model', 'Plan', and'NotDefined'. All other sub contexts are now handled by the new subtype in IFC2x Edition 2 IfcGeometricRepresentationSubContext. Upward compatibility for file based exchange is guaranteed. class IFC_PARSE_API IfcGeometricRepresentationContext : public IfcRepresentationContext { public: /// The integer dimension count of the coordinate space modeled in a geometric representation context. @@ -12773,14 +12769,14 @@ public: /// PlacementRefDirection = IfcDirection: by the explicitly provided direction information; /// PlacementRefDirection = IfcVirtualGridIntersection: by the tangent between the virtual grid intersection of PlacementLocation and the virtual grid intersection of PlacementRefDirection. Offsets as potentially provided in the IfcVirtualGridIntersection's of PlacementLocation and PlacementRefDirection have to be taken into account. /// -/// The direction of the y-axis of the IfcGridPlacement is the orthogonal complement to the x-axis. The plane defined by the x and y axis shall be co-planar to the xy plane of the local placement of the IfcGrid.ÿ +/// The direction of the y-axis of the IfcGridPlacement is the orthogonal complement to the x-axis. The plane defined by the x and y axis shall be co-planar to the xy plane of the local placement of the IfcGrid. /// The direction of the z-axis is the orientation of the cross product of the x-axis and the y-axis, i.e. the z-axis of the IfcGridPlacement shall be co-linear to the z-axis of the local placement of the IfcGrid. /// /// NOTE The IfcGrid local placement, that can be provided relative to the local placement of another spatial structure element, has to be taken into account for calculating the absolute placement of the virtual grid intersection. /// /// NOTE The PlacementLocation.OffsetDistances[3] and the PlacementRefDirection.OffsetDistances[3] shall either not be assigned or should have the same z offset value. /// -/// HISTORY ÿNew entity in IFC Release 1.5. The entity name was changed from IfcConstrainedPlacement in IFC Release 2x. +/// HISTORY New entity in IFC Release 1.5. The entity name was changed from IfcConstrainedPlacement in IFC Release 2x. /// /// IFC2x4 CHANGE Attribute data type of PlacementRefDirection has been changed to IfcGridPlacementDirectionSelect. /// @@ -13956,7 +13952,7 @@ public: /// and the second value specifying the lower bound. It defines /// a property - value bound (min-max) combination for which /// the property Name, an optional -/// Description,ÿthe optional UpperBoundValue +/// Description,the optional UpperBoundValue /// with measure type, the optional LowerBoundValue with /// measure type, and the optional Unit is given. /// @@ -14042,7 +14038,7 @@ public: /// /// kg /// -/// HISTORY ÿNew entity in IFC Release 2x. +/// HISTORY New entity in IFC Release 2x. /// /// IFC2x2 CHANGE  The attribute type of the attribute UpperBoundValue and LowerBoundValue has been changed from mandatory to optional with upward compatibility for file based exchange. /// @@ -14139,7 +14135,7 @@ public: /// value, IfcPropertyEnumeratedValue, defines a property /// object which has a value assigned that is chosen from an /// enumeration. It defines a property - value combination for which -/// theÿproperty Name, an optional Description,ÿthe +/// theproperty Name, an optional Description,the /// optional EnumerationValues /// with measure type and optionally an Unit is given. /// @@ -14163,18 +14159,18 @@ public: /// (see IfcPropertyEnumeration). This enables applications to /// use an enumeration value as a property within a property set /// (IfcPropertySet) including the allowed list of -/// values.ÿ +/// values. /// /// NOTE  An IfcPropertyEnumeratedValue may be exchanged with no values assigned yet. In this case the EnumerationValues are set to NIL. /// /// Examples of a property with enumerated value are: /// -/// Nameÿ +/// Name /// Value (EnumerationValue) /// Type (through /// IfcValue) /// ref.IfcPropertyEnumeration -/// (Name)ÿ +/// (Name) /// /// BladeAction /// Opposed @@ -14207,7 +14203,7 @@ public: /// referenced by multiple instances of /// IfcPropertyEnumeratedValue. /// -/// HISTORY ÿNew Entity in IFC Release 2.0, capabilities enhanced in IFC2x. The entity has +/// HISTORY New Entity in IFC Release 2.0, capabilities enhanced in IFC2x. The entity has /// been renamed from IfcEnumeratedProperty in IFC2x. /// /// IFC2x4 CHANGE Attribute EnumerationValues has been made OPTIONAL with upward @@ -14233,9 +14229,9 @@ public: /// An IfcPropertyListValue /// defines a property that has several (numeric or /// descriptive) values assigned, these values are given by an -/// ordered list.ÿIt defines a property - list value +/// ordered list.It defines a property - list value /// combination for which the property Name, an optional -/// Description,ÿthe optional ListValues with measure +/// Description,the optional ListValues with measure /// type and optionally an Unit is given. /// /// An IfcPropertyListValue is a list of values. The @@ -14402,7 +14398,7 @@ public: /// IfcPropertySingleValue defines a property object which has /// a single (numeric or descriptive) value assigned. It defines a /// property - single value combination for which the property -/// Name, an optional Description,ÿand an optional +/// Name, an optional Description,and an optional /// NominalValue with measure type is provided. In addition, /// the default unit as specified within the project unit context can /// be overriden by assigning an Unit. @@ -14439,9 +14435,9 @@ public: /// IfcThermalTransmittanceMeasure /// W/(m2K) /// -/// HISTORY ÿNew entity in IFC Release 1.0. The entity has been renamed from IfcSimpleProperty in IFC Release 2x. +/// HISTORY New entity in IFC Release 1.0. The entity has been renamed from IfcSimpleProperty in IFC Release 2x. /// -/// IFC2x3 CHANGE ÿAttribute NominalValue has been made OPTIONAL with upward compatibility for file based exchange. +/// IFC2x3 CHANGE Attribute NominalValue has been made OPTIONAL with upward compatibility for file based exchange. class IFC_PARSE_API IfcPropertySingleValue : public IfcSimpleProperty { public: /// Whether the optional attribute NominalValue is defined for this IfcPropertySingleValue @@ -14532,8 +14528,6 @@ public: /// /// dB /// -/// ÿ -/// /// 200 /// /// IfcFrequencyMeasure @@ -14542,12 +14536,6 @@ public: /// /// IfcNumericMeasure /// -/// ÿ -/// -/// ÿ -/// -/// ÿ -/// /// 400 /// /// IfcFrequencyMeasure @@ -14556,12 +14544,6 @@ public: /// /// IfcNumericMeasure /// -/// ÿ -/// -/// ÿ -/// -/// ÿ -/// /// 800 /// /// IfcFrequencyMeasure @@ -14570,12 +14552,6 @@ public: /// /// IfcNumericMeasure /// -/// ÿ -/// -/// ÿ -/// -/// ÿ -/// /// 1600 /// /// IfcFrequencyMeasure @@ -14584,12 +14560,6 @@ public: /// /// IfcNumericMeasure /// -/// ÿ -/// -/// ÿ -/// -/// ÿ -/// /// 3200 /// /// IfcFrequencyMeasure @@ -14598,10 +14568,6 @@ public: /// /// IfcNumericMeasure /// -/// ÿ -/// -/// ÿ -/// /// HISTORY: New entity in IFC2x. /// /// IFC2x4 CHANGE  Attributes DefiningValues and DefinedValues have been made OPTIONAL with upward compatibility for file based exchange. The attribute CurveInterpolation has been added.. @@ -15896,29 +15862,29 @@ public: /// definition of a product without being already inserted into a /// project structure (without having a placement), and not being /// included into the geometric representation context of the -/// project.ÿIt is used to define a product specification, that is, the +/// project.It is used to define a product specification, that is, the /// specific product information that is common to all occurrences /// of that product type. /// /// An IfcTypeProduct may have a list of property set /// attached and an optional set of product representations. Values /// of these properties and the representation maps are common to all -/// occurrencesÿof that product type.ÿThe type occurrence +/// occurrencesof that product type.The type occurrence /// relationship is realized using the objectified relationship /// IfcRelDefinesByType. /// -/// NOTE 1ÿ The product representations are +/// NOTE 1 The product representations are /// defined as representation maps, which gets assigned by a product /// instance through the representation item(s) being an /// IfcShapeRepresentation and having Items of -/// typeÿIfcMappedItem. -/// NOTE 2 ÿThe representations at the occurrence +/// typeIfcMappedItem. +/// NOTE 2 The representations at the occurrence /// level (represented by subtypes of IfcProduct) can override -/// the specific representations at the type level, ÿ +/// the specific representations at the type level, /// /// for geometric representations: a Cartesian /// transformation operator can be applied at the occurrence level, -/// andÿ +/// and /// for property sets: A property within an occurrence /// property set, assigned at the product occurrence, overrides the /// same property assigned to the product type. @@ -16093,7 +16059,7 @@ public: /// casements. The parameter of the IfcWindowLiningProperties /// define the geometrically relevant parameter of the lining. /// -/// NOTEÿ The IfcWindowLiningProperties +/// NOTE The IfcWindowLiningProperties /// shall only be applied to construct the 3D shape of a window, if /// the attribute IfcWindowStyle.ParameterTakesPrecedence is /// set TRUE. @@ -16107,7 +16073,7 @@ public: /// HISTORY New Entity in IFC Release 2.0. Has been renamed from IfcWindowLining in /// IFC Release 2x. /// -/// IFC2x4 CHANGEÿ The following attributes have been added LiningOffset, +/// IFC2x4 CHANGE The following attributes have been added LiningOffset, /// LiningToPanelOffsetX, LiningToPanelOffsetY. The /// attribute ShapeAspectStyle is deprecated and shall no /// longer be used. Supertype changed to new @@ -17098,9 +17064,9 @@ public: }; /// IfcCsgPrimitive3D is an abstract supertype of all three dimensional primitives used as either tree root item, or as Boolean results within a CSG solid model. All 3D CSG primitives are defined within a three-dimensional placement coordinate system. /// -/// NOTEÿ No directly corresponding ISO 10303-42 entity, the select type primitive_3d covers the same individual 3D CSG primitives, the position attribute has been added to apply equally to all subtypes. Please refer to ISO/IS 10303-42:1994, p. 234 for the final definition of the formal standard. +/// NOTE No directly corresponding ISO 10303-42 entity, the select type primitive_3d covers the same individual 3D CSG primitives, the position attribute has been added to apply equally to all subtypes. Please refer to ISO/IS 10303-42:1994, p. 234 for the final definition of the formal standard. /// -/// HISTORYÿ New entity in IFC2x3. +/// HISTORY New entity in IFC2x3. class IFC_PARSE_API IfcCsgPrimitive3D : public IfcGeometricRepresentationItem { public: /// The placement coordinate system to which the parameters of each individual CSG primitive apply. @@ -17278,7 +17244,7 @@ public: /// (IfcDoorLiningProperties) define the geometrically /// relevant parameter of the lining. /// -/// NOTEÿ The IfcDoorLiningProperties +/// NOTE The IfcDoorLiningProperties /// shall only be applied to construct the 3D shape of a door, if the /// attribute IfcDoorStyle.ParameterTakesPrecedence is set /// TRUE. @@ -17291,7 +17257,7 @@ public: /// /// HISTORY New entity in IFC Release 2.0. Has been renamed from IfcDoorLining in IFC Release 2x. /// -/// IFC2x4 CHANGEÿ The following attributes have been added LiningToPanelOffsetX, LiningToPanelOffsetY. The attribute ShapeAspectStyle is deprecated and shall no longer be used. Supertype changed to new IfcPreDefinedPropertySet. +/// IFC2x4 CHANGE The following attributes have been added LiningToPanelOffsetX, LiningToPanelOffsetY. The attribute ShapeAspectStyle is deprecated and shall no longer be used. Supertype changed to new IfcPreDefinedPropertySet. /// /// Geometry use definitions /// The IfcDoorLiningProperties does not hold its own @@ -17325,7 +17291,7 @@ public: /// LiningOffset : given if lining edge has an offset to /// the x axis of the local placement. /// -/// NOTE ÿIn addition to theÿLiningOffset, +/// NOTE In addition to theLiningOffset, /// the local placement of the IfcDoor can already have an /// offset to the wall edge and thereby shift the lining along the y /// axis. The actual position of the lining is calculated from the @@ -17453,7 +17419,7 @@ public: /// included in the same list of the IfcDoorStyle using the /// IfcPropertySet for dynamic extensions. /// -/// HISTORYÿ New Entity in IFC Release 2.0. +/// HISTORY New Entity in IFC Release 2.0. /// /// IFC2x4 CHANGE Supertype changed to new IfcPreDefinedPropertySet. /// @@ -17515,7 +17481,7 @@ public: /// is related by the inverse relationship IsDefinedBy pointing to IfcRelDefinedByType. The IfcDoorStyle /// also defines the particular attributes for the lining, IfcDoorLiningProperties, and panels, IfcDoorPanelProperties. /// -/// HISTORYÿNew entity in IFC Release 2x. +/// HISTORYNew entity in IFC Release 2x. /// /// IFC2x4 CHANGE The entity is deprecated and shall not be used. The new entity /// IfcDoorType shall be used instead. @@ -17531,7 +17497,7 @@ public: /// The IfcDoorStyleOperationTypeEnum defines the general layout of the door style. Depending on the enumerator, the /// appropriate instances of IfcDoorLiningProperties and IfcDoorPanelProperties are attached in the list of /// HasPropertySets. The IfcDoorStyleOperationTypeEnum mainly determines the hinge side (left hung, or right hung), the -/// operation (swinging, sliding, folding, etc.)ÿand the number of panels. +/// operation (swinging, sliding, folding, etc.)and the number of panels. /// /// See geometry use definitions at IfcDoorStyleOperationTypeEnum for the correct usage of opening symbols for different operation types. class IFC_PARSE_API IfcDoorStyle : public IfcTypeProduct { @@ -17579,7 +17545,7 @@ public: /// 'white', /// 'by layer' /// -/// NOTE ÿThe IfcDraughtingPreDefinedColour is an entity that had been adopted from ISO 10303-202, Industrial automation systems and integration—Product data representation and exchange, Part 202: Application protocol: Associative draughting. +/// NOTE The IfcDraughtingPreDefinedColour is an entity that had been adopted from ISO 10303-202, Industrial automation systems and integration—Product data representation and exchange, Part 202: Application protocol: Associative draughting. /// /// The following table states the RGB values associated with the names given by the IfcDraughtingPreDefinedColour. /// @@ -17632,9 +17598,9 @@ public: /// colour values obtained from /// IfcPresentationLayerWithStyle. /// -/// NOTE ÿCorresponding ISO 10303 name: draughting_pre_defined_colour. Please refer to ISO/IS 10303-202:1994 page 194 for the final definition of the formal standard. +/// NOTE Corresponding ISO 10303 name: draughting_pre_defined_colour. Please refer to ISO/IS 10303-202:1994 page 194 for the final definition of the formal standard. /// -/// HISTORY ÿNew entity in IFC2x2. +/// HISTORY New entity in IFC2x2. /// /// Informal proposition /// @@ -18186,7 +18152,7 @@ public: /// product representations. It is used to define an element /// specification (i.e. the specific product information, that is /// common to all occurrences of that product type). -/// NOTEÿ The product representations are defined +/// NOTE The product representations are defined /// as representation maps (at the level of the supertype /// IfcTypeProduct, which gets assigned by an element /// occurrence instance through the @@ -18201,7 +18167,7 @@ public: /// The occurrences of the IfcFurnishingElementType are /// represented by instances of IfcFurnishingElement (or its /// subtypes). -/// HISTORYÿNew entity in +/// HISTORYNew entity in /// Release IFC2x Edition 2. /// IFC2x3 CHANGE The entity has been /// made non-abstract @@ -19417,9 +19383,9 @@ public: }; /// The objectified relationship IfcRelAssignsToControl handles the assignment of a control (represented by subtypes of IfcControl) to other objects (represented by subtypes of IfcObject, with the exception of controls). /// -/// EXAMPLEÿ The assignment of a performance history (as subtype of IfcControl) for a building service element (as subtype of IfcObject) is an application of this generic relationship. +/// EXAMPLE The assignment of a performance history (as subtype of IfcControl) for a building service element (as subtype of IfcObject) is an application of this generic relationship. /// -/// HISTORYÿ New Entity in IFC Release 2.0. Has been renamed from IfcRelControls in IFC Release 2x. +/// HISTORY New Entity in IFC Release 2.0. Has been renamed from IfcRelControls in IFC Release 2x. class IFC_PARSE_API IfcRelAssignsToControl : public IfcRelAssigns { public: /// Reference to the IfcControl that applies a control upon objects. @@ -19495,14 +19461,14 @@ public: IfcRelAssignsToProcess (std::string v1_GlobalId, ::Ifc2x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, IfcTemplatedEntityList< ::Ifc2x3::IfcObjectDefinition >::ptr v5_RelatedObjects, boost::optional< ::Ifc2x3::IfcObjectTypeEnum::Value > v6_RelatedObjectsType, ::Ifc2x3::IfcProcess* v7_RelatingProcess, ::Ifc2x3::IfcMeasureWithUnit* v8_QuantityInProcess); typedef IfcTemplatedEntityList< IfcRelAssignsToProcess > list; }; -/// The objectified relationshipÿIfcRelAssignsToProduct handles the assignment of objects (subtypes of IfcObject) to a product (subtypes of IfcProduct). The Name attribute should be used to classify the usage of the IfcRelAssignsToProduct objectified relationship. The following Name values are proposed: +/// The objectified relationshipIfcRelAssignsToProduct handles the assignment of objects (subtypes of IfcObject) to a product (subtypes of IfcProduct). The Name attribute should be used to classify the usage of the IfcRelAssignsToProduct objectified relationship. The following Name values are proposed: /// -/// 'Context' : Assignment of a context specific representation, such as of structural members to a different context representation (with potentially different decomposition breakdown) such as of building elementsÿfor a specificÿcontext specific representation.ÿ +/// 'Context' : Assignment of a context specific representation, such as of structural members to a different context representation (with potentially different decomposition breakdown) such as of building elementsfor a specificcontext specific representation. /// 'View' : Assignment of a product (via RelatingProduct) that is decomposed according to a discipline view, to another product (via RelatedObjects) that is decomposed according to a different discipline view. An example is the assignment of the architectural slab to a different decomposition of the pre manufactured sections of a slab (under a precast concrete discipline view). /// /// HISTORY New Entity in IFC Release 2x /// -/// IFC2x3 CHANGE ÿThe reference of a product within a spatial structure is now handled by a new relationship object IfcRelReferencedInSpatialStructure. The IfcRelAssignsToProduct shall not be used to represent this relation from IFC2x3 onwards. +/// IFC2x3 CHANGE The reference of a product within a spatial structure is now handled by a new relationship object IfcRelReferencedInSpatialStructure. The IfcRelAssignsToProduct shall not be used to represent this relation from IFC2x3 onwards. class IFC_PARSE_API IfcRelAssignsToProduct : public IfcRelAssigns { public: /// Reference to the product or product type to which the objects are assigned to. @@ -19921,8 +19887,6 @@ public: /// Figure 117 illustrates using the IfcRelConnectsPathElements for a "L" type connection between two instances of IfcWallStandardCase. /// NOTE  The two wall axes connect in each case. /// -/// ÿ -/// /// Figure 116 — Path connection T-Type /// Figure 117 — Path connection L-Type class IFC_PARSE_API IfcRelConnectsPathElements : public IfcRelConnectsElements { @@ -20232,8 +20196,6 @@ public: /// Containment Use Definition /// Figure 39 shows the use of IfcRelContainedInSpatialStructure to assign a stair and two walls to two different levels within the spatial structure. /// -/// ÿ -/// /// Figure 39 — Relationship for spatial structure containment class IFC_PARSE_API IfcRelContainedInSpatialStructure : public IfcRelConnects { public: @@ -20284,7 +20246,7 @@ public: typedef IfcTemplatedEntityList< IfcRelCoversBldgElements > list; }; /// Definition from IAI: The objectified relationship, -/// IfcRelCoversSpace, relatesÿa space object to one or +/// IfcRelCoversSpace, relatesa space object to one or /// many coverings, which faces (or is assigned to) the space. /// /// NOTE Particularly floorings, ceilings and wall @@ -20307,7 +20269,7 @@ public: /// NOTE View definition may determine the necessity /// to use either of the two relationship elements /// -/// HISTORYÿ New Entity in Release +/// HISTORY New Entity in Release /// IFC 2x Edition 3. class IFC_PARSE_API IfcRelCoversSpaces : public IfcRelConnects { public: @@ -20370,7 +20332,7 @@ public: /// assign a property set to an object instance /// assign a property set template to a property set /// -/// EXAMPLE ÿSeveral instances of windows within +/// EXAMPLE Several instances of windows within /// the IFC project model may be of the same (catalogue or /// manufacturer) type. Thereby they share the same properties. This /// relationship is established by the subtype @@ -20378,7 +20340,7 @@ public: /// assigning an IfcWindowStyle to multiple occurrences /// IfcWindow. /// -/// EXAMPLE ÿThe (same) property set, e.g.ÿ +/// EXAMPLE The (same) property set, e.g. /// Pset_ProductManufacturerInfo, keeping the manufacturer name, /// label and production year of a product, can be assigned to one, /// or many instances of furnishing. This relationship is established @@ -20485,18 +20447,16 @@ public: /// /// Pset_WallCommon /// Pset_WallCommon -/// ÿ /// -/// ÿ-ÿExtendToStructure = TRUE -/// ÿ +/// -ExtendToStructure = TRUE +/// /// TRUE /// -/// ÿ -/// ÿ-ÿThermalTransmittance = 0.375 +/// -ThermalTransmittance = 0.375 /// 0.375 /// -/// ÿ-ÿExtendToStructure = FALSE -/// ÿ-ÿExtendToStructure = TRUE +/// -ExtendToStructure = FALSE +/// -ExtendToStructure = TRUE /// FALSE class IFC_PARSE_API IfcRelDefinesByType : public IfcRelDefines { public: @@ -20682,14 +20642,14 @@ public: /// The objectified relationship, /// IfcRelReferencedInSpatialStructure is used to /// assign elements in addition to those levels of the project -/// spatialÿstructure, in which they are referenced, but not -/// primarily contained.ÿ +/// spatialstructure, in which they are referenced, but not +/// primarily contained. /// -/// NOTE ÿThe primary containment relationship between +/// NOTE The primary containment relationship between /// an element and the spatial structure is handled -/// byÿIfcRelContainsInSpatialStructure. +/// byIfcRelContainsInSpatialStructure. /// -/// Any element can be referencedÿto zero, one or several +/// Any element can be referencedto zero, one or several /// levels of the spatial structure. Whereas the /// IfcRelContainsInSpatialStructure relationship is /// required to be hierarchical (an element can only be @@ -20722,10 +20682,10 @@ public: /// structure elements depending on the context. /// /// HISTORY New entity -/// inÿRelease IFC2x Edition 3. +/// inRelease IFC2x Edition 3. /// /// Use Definition -/// Figure 41 shows the use of IfcRelContainedInSpatialStructure and IfcRelReferencedInSpatialStructure to assign an IfcCurtainWallÿto two different levels within the spatial structure. It is primarily contained within the ground floor, and additionally referenced within the first and second floor. +/// Figure 41 shows the use of IfcRelContainedInSpatialStructure and IfcRelReferencedInSpatialStructure to assign an IfcCurtainWallto two different levels within the spatial structure. It is primarily contained within the ground floor, and additionally referenced within the first and second floor. /// /// Figure 41 — Relationship for spatial structure referencing class IFC_PARSE_API IfcRelReferencedInSpatialStructure : public IfcRelConnects { @@ -20844,12 +20804,12 @@ public: /// HISTORY New entity in IFC /// Release 1.0 /// -/// IFC2x PLATFORM CHANGEÿ The +/// IFC2x PLATFORM CHANGE The /// data type of the attributeRelatedBuildings has been /// changed from IfcBuilding to its supertype /// IfcSpatialStructureElement with upward compatibility /// for file based exchange. The name -/// IfcRelServicesBuildings is a knownÿanomaly, as the +/// IfcRelServicesBuildings is a knownanomaly, as the /// relationship is not restricted to buildings anymore. class IFC_PARSE_API IfcRelServicesBuildings : public IfcRelConnects { public: @@ -21472,7 +21432,7 @@ public: /// specification (i.e. the specific element information, that /// is common to all occurrences of that element type). /// -/// NOTE ÿThe product representations are defined as +/// NOTE The product representations are defined as /// representation maps (at the level of the supertype /// IfcTypeProduct, which gets assigned by an element /// occurrence instance through the @@ -21481,22 +21441,22 @@ public: /// /// A spatial structure element type is used to define the /// common properties of a certain type of a spatial structure -/// element that may be applied to many instances of thatÿtype +/// element that may be applied to many instances of thattype /// to assign a specific style. Spatial structure element types /// (i.e. the instantiable subtypes) may be exchanged without /// being already assigned to occurrences. /// -/// NOTE ÿThe spatial structure element types are +/// NOTE The spatial structure element types are /// often used to represent catalogues of predefined spatial /// types for shared attributes, less so for sharing a common /// representation map. /// /// The occurrences of subtypes of the -/// abstractÿIfcSpatialStructureElementType are +/// abstractIfcSpatialStructureElementType are /// represented by instances of subtypes of /// IfcSpatialStructureElement. /// -/// HISTORY ÿNew entity in +/// HISTORY New entity in /// Release IFC2x Edition 3. class IFC_PARSE_API IfcSpatialStructureElementType : public IfcElementType { public: @@ -22943,13 +22903,13 @@ public: /// IfcBuilding.IsDecomposedBy -- referencing /// (IfcBuilding || IfcBuildingStorey) by /// IfcRelAggregates.RelatedObjects. If it refers to another -/// instance ofÿIfcBuilding, the referenced IfcBuilding +/// instance ofIfcBuilding, the referenced IfcBuilding /// needs to have a different and lower CompositionType, i.e. ELEMENT /// (if the other IfcBuilding has COMPLEX), or PARTIAL (if the /// other IfcBuilding has ELEMENT). /// /// If there are building elements and/or other elements directly -/// related to the IfcBuildingÿ(like a curtain wall spanning +/// related to the IfcBuilding(like a curtain wall spanning /// several stories), they are associated with the IfcBuilding /// by using the objectified relationship /// IfcRelContainedInSpatialStructure. The IfcBuilding @@ -22983,7 +22943,6 @@ public: /// total height of building, also referred to as ridge height (top of roof structure, e.g the ridge against terrain): provided by BaseQuantity with Name="TotalHeight" /// eaves height of building (base of roof structure, e.g the eaves against terrain): provided by BaseQuantity with Name="EavesHeight" /// -/// ÿ /// Figure 21 — Building elevations /// /// Geometry Use Definitions @@ -23159,7 +23118,7 @@ public: /// IfcBuildingStorey.Decomposes -- referencing /// (IfcBuilding || IfcBuildingStorey) by /// IfcRelAggregates.RelatingObject, If it refers to another -/// instance ofÿIfcBuildingStorey, the referenced +/// instance ofIfcBuildingStorey, the referenced /// IfcBuildingStorey needs to have a different and higher /// CompositionType, i.e. COMPLEX (if the other /// IfcBuildingStorey has ELEMENT), or ELEMENT (if the other @@ -23167,7 +23126,7 @@ public: /// IfcBuildingStorey.IsDecomposedBy -- referencing /// (IfcBuildingStorey || IfcSpace) by /// IfcRelAggregates.RelatedObjects. If it refers to another -/// instance ofÿIfcBuildingStorey, the referenced +/// instance ofIfcBuildingStorey, the referenced /// IfcBuildingStorey needs to have a different and lower /// CompositionType, i.e. ELEMENT (if the other /// IfcBuildingStorey has COMPLEX), or PARTIAL (if the other @@ -23916,7 +23875,7 @@ public: /// of product representations. It is used to define an element /// specification (i.e. the specific product information, that is /// common to all occurrences of that product type). -/// NOTEÿ The product representations are defined +/// NOTE The product representations are defined /// as representation maps (at the level of the supertype /// IfcTypeProduct, which gets assigned by an element /// occurrence instance through the @@ -23931,9 +23890,9 @@ public: /// The occurrences of the IfcDistributionElementType are /// represented by instances of IfcDistributionElement (or its /// subtypes). -/// HISTORYÿ New entity in +/// HISTORY New entity in /// Release IFC2x Edition 2. -/// IFC2x3 CHANGEÿ The entity has been made +/// IFC2x3 CHANGE The entity has been made /// non-abstract /// IFC2x4 CHANGE The entity is marked /// as deprecated for instantiation - will be made ABSTRACT after @@ -24183,7 +24142,7 @@ public: /// SELF\IfcObjectDefinition.IsDecomposedBy. Components of an /// assembly are described by instances of subtypes of /// IfcElement. -/// In this case, the containedÿsubtypes of IfcElement +/// In this case, the containedsubtypes of IfcElement /// shall not be additionally contained in the project spatial /// hierarchy, i.e. the inverse attribute /// SELF\IfcElement.ContainedInStructure of those @@ -24217,7 +24176,7 @@ public: /// have an explicit geometric representation. In some cases it may /// be useful to also expose an own explicit representation of the /// aggregate. -/// NOTEÿ View definitions or implementer +/// NOTE View definitions or implementer /// agreements may further constrain the applicability of certain /// shape representations at the IfcElementAssembly in respect /// of the shape representations of its parts. @@ -24550,11 +24509,11 @@ public: /// which are defined so that the shell normal point into the /// void. /// -/// NOTEÿ Corresponding ISO 10303-42 entity: brep_with_voids (see note above). Please refer to ISO/IS 10303-42:1994, p. 173 for the final definition of the formal standard. In IFC faceted B-rep with voids is represented by this subtype IfcFacetedBrepWithVoids and not defined via an implicit ANDOR supertype constraint as in ISO/IS 10303-42:1994 between an instance of faceted_brep AND brep_with_voids. This change has been made due to the fact, that only ONEOF supertype constraint is allowed within the IFC object model. +/// NOTE Corresponding ISO 10303-42 entity: brep_with_voids (see note above). Please refer to ISO/IS 10303-42:1994, p. 173 for the final definition of the formal standard. In IFC faceted B-rep with voids is represented by this subtype IfcFacetedBrepWithVoids and not defined via an implicit ANDOR supertype constraint as in ISO/IS 10303-42:1994 between an instance of faceted_brep AND brep_with_voids. This change has been made due to the fact, that only ONEOF supertype constraint is allowed within the IFC object model. /// -/// HISTORYÿ New entity in IFC Release 1.0 +/// HISTORY New entity in IFC Release 1.0 /// -/// IFC2x4 CHANGEÿ Subtyping changed from IfcManifoldSolidBrep to IfcFacetedBrep with upward compatibility for file based exchange. +/// IFC2x4 CHANGE Subtyping changed from IfcManifoldSolidBrep to IfcFacetedBrep with upward compatibility for file based exchange. /// /// Informal propositions: /// @@ -25331,7 +25290,7 @@ public: /// /// EXAMPLE An example for a group is a system, since it groups elements under the aspect of their role, regardless of their position in a building. /// -/// A group can hold any collection of objects (beingÿproducts, processes, controls, resources, actors or other groups). Thus groups can be nested. An object can be part of zero, one, or many groups. Grouping relationships are not required to be hierarchical nor do they imply a dependency. +/// A group can hold any collection of objects (beingproducts, processes, controls, resources, actors or other groups). Thus groups can be nested. An object can be part of zero, one, or many groups. Grouping relationships are not required to be hierarchical nor do they imply a dependency. /// /// NOTE Use IfcRelDecomposes together with the appropriate subtypes of IfcProduct to define an hierarchical aggregation of products. /// @@ -26114,7 +26073,7 @@ public: /// IfcArbitraryClosedProfileDef shall be supported. /// Extrusion: The profile shall be extruded vertically, /// i.e. for wall openings along the extrusion direction of the -/// voided element.ÿ If multiple instances of +/// voided element. If multiple instances of /// IfcExtrudedAreaSolid are used, the extrusion direction /// should be equal. /// @@ -27832,7 +27791,7 @@ public: /// space information, that is common to all occurrences of that /// space type. Space types may be exchanged without being already /// assigned to occurrences. -/// NOTE ÿThe space types are often used to +/// NOTE The space types are often used to /// represent space catalogues, less so for sharing a common /// representation map. Space types in a space catalogue share same /// space classification and a common set of space requirement @@ -27840,7 +27799,7 @@ public: /// The occurrences of IfcSpaceType are represented by /// instances of IfcSpace. /// -/// HISTORY ÿNew entity in +/// HISTORY New entity in /// IFC2x3. /// /// Property Set Use Definition: @@ -27877,7 +27836,7 @@ public: /// property set for all types of spaces to capture the thermal /// requirements /// Pset_SpaceThermalDesign: common property set -/// for allÿall types of spaces to capture building service design +/// for allall types of spaces to capture building service design /// values /// /// Geometry Use Definition: @@ -27888,7 +27847,7 @@ public: /// representations (e.g. with IfcShaperepresentation's having /// an RepresentationIdentifier 'Box', 'FootPrint', or 'Body'). /// -/// NOTE ÿThe product representations are defined as +/// NOTE The product representations are defined as /// representation maps (at the level of the supertype /// IfcTypeProduct, which gets assigned by an element /// occurrence instance through the @@ -28662,13 +28621,13 @@ public: /// device types (or styles) is handled by /// IfcTransportElementType. The /// IfcTransportElementType (if present) may establish the -/// commonÿtype name, usage (or predefined) type, common material +/// commontype name, usage (or predefined) type, common material /// layer set, common set of properties and common shape /// representations (using IfcRepresentationMap). The /// IfcTransportElementType is attached using the /// IfcRelDefinedByType.RelatingType objectified relationship /// and is accessible by the inverse IsTypedBy attribute. -/// If no IfcTransportElementType is attachedÿ(i.e. if only +/// If no IfcTransportElementType is attached(i.e. if only /// occurrence information is given) the PredefinedType should /// be provided. If set to .USERDEFINED. a user defined value can be /// provided by the ObjectType attribute. @@ -28697,7 +28656,7 @@ public: /// spatial hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, refering to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcBuilding being the default /// container. /// @@ -29413,7 +29372,7 @@ public: IfcWorkSchedule (std::string v1_GlobalId, ::Ifc2x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, std::string v6_Identifier, ::Ifc2x3::IfcDateTimeSelect* v7_CreationDate, boost::optional< IfcTemplatedEntityList< ::Ifc2x3::IfcPerson >::ptr > v8_Creators, boost::optional< std::string > v9_Purpose, boost::optional< double > v10_Duration, boost::optional< double > v11_TotalFloat, ::Ifc2x3::IfcDateTimeSelect* v12_StartTime, ::Ifc2x3::IfcDateTimeSelect* v13_FinishTime, boost::optional< ::Ifc2x3::IfcWorkControlTypeEnum::Value > v14_WorkControlType, boost::optional< std::string > v15_UserDefinedControlType); typedef IfcTemplatedEntityList< IfcWorkSchedule > list; }; -/// Definition from IAI: A zone isÿa group of spaces, +/// Definition from IAI: A zone isa group of spaces, /// partial spaces or other zones. Zone structures may not be /// hierarchical (in contrary to the spatial structure of a project - /// see IfcSpatialStructureElement), i.e. one individual @@ -29422,9 +29381,9 @@ public: /// IfcZone by using the objectified relationship /// IfcRelAssignsToGroup as specified at the supertype /// IfcGroup. -/// NOTE ÿCertain use cases may restrict the +/// NOTE Certain use cases may restrict the /// freedom of non hierarchical relationships. In some building -/// service use cases the zone denotes aÿview based delimited volume +/// service use cases the zone denotes aview based delimited volume /// for the purpose of analysis and calculation. This type of zone /// cannot overlap with respect to that analysis, but may overlap /// otherwise. @@ -29435,12 +29394,12 @@ public: /// and placement. Therefore it cannot be used for spatial zones /// having a different shape and size compared to the shape and size /// of aggregated spaces. -/// NOTEÿ The IfcZone is regarded as the +/// NOTE The IfcZone is regarded as the /// spatial system (as compared to the building service, electrical, /// or analytical system), the name remains IfcZone for /// compatibility reasons, instead of using a proper naming /// convention, like IfcSpatialSystem. -/// NOTE ÿOne of the purposes of a zone is to +/// NOTE One of the purposes of a zone is to /// define a fire compartmentation. In this case it defines the /// geometric information about the fire compartment (through the /// contained spaces) and information, whether this compartment is @@ -29451,7 +29410,7 @@ public: /// independent shape has to be provided to the fire compartment, /// then the entity IfcSpatialZone shall be /// used. -/// RECOMMENDATIONÿ In case of a zone denoting a +/// RECOMMENDATION In case of a zone denoting a /// (fire) compartment, the following types should be used, if /// applicable, as values of the ObjectType attribute: /// @@ -29470,9 +29429,9 @@ public: /// refers to, e.g. to a particular IfcBuildingStorey by using /// the IfcRelServicesBuildings relationship, accessible via /// the inverse attribute ServicesBuilding. -/// HISTORYÿ New entity in +/// HISTORY New entity in /// IFC Release 1.0 -/// IFC2x4 CHANGEÿ The entity is now +/// IFC2x4 CHANGE The entity is now /// subtyped from IfcSystem (not its supertype /// IfcGroup) with upward compatibility for file based /// exchange. @@ -30582,14 +30541,14 @@ public: typedef IfcTemplatedEntityList< IfcBuildingElementProxy > list; }; /// Definition from IAI: -/// TheÿIfcBuildingElementProxyType defines a list of +/// TheIfcBuildingElementProxyType defines a list of /// commonly shared property set definitions of a building /// element proxy and an optional set of product /// representations. It is used to define an element /// specification (i.e. the specific product information, that /// is common to all occurrences of that product type). /// -/// NOTEÿ The product representations are defined as +/// NOTE The product representations are defined as /// representation maps (at the level of the supertype /// IfcTypeProduct, which gets assigned by an element /// occurrence instance through the @@ -30598,8 +30557,8 @@ public: /// /// A building element proxy type is used to define the common /// properties of a certain type of a building element proxy -/// that may be applied to many instances of thatÿtype to -/// assign a specific style. Building element proxy typesÿmay +/// that may be applied to many instances of thattype to +/// assign a specific style. Building element proxy typesmay /// be exchanged without being already assigned to occurrences. /// /// NOTE Although an building element proxy does not have @@ -30613,7 +30572,7 @@ public: /// are represented by instances of /// IfcBuildingElementProxy. /// -/// HISTORYÿ New entity in +/// HISTORY New entity in /// Release IFC2x Edition 3. class IFC_PARSE_API IfcBuildingElementProxyType : public IfcBuildingElementType { public: @@ -30892,7 +30851,7 @@ public: /// IfcStructuralCurveMember being part of an /// IfcStructuralAnalysisModel. /// -/// NOTE ÿFor any longitudial structural member, not +/// NOTE For any longitudial structural member, not /// constrained to be predominately horizontal nor vertical, or where /// this semantic information is irrelevant, the entity /// IfcMember exists. @@ -30910,7 +30869,7 @@ public: /// geometry based on the swept solid), if a 3D geometric /// representation is assigned. In addition they have to have a /// corresponding IfcMaterialProfileSetUsage assigned. -/// NOTEÿ View definitions and implementer +/// NOTE View definitions and implementer /// agreements may further constrain the applicable geometry types, /// e.g. by excluding tapering from an IfcColumnStandardCase /// implementation. @@ -30926,13 +30885,13 @@ public: /// IfcColumn defines the occuurence of any column, common /// information about column types (or styles) is handled by /// IfcColumnType. The IfcColumnType (if present) may -/// establish the commonÿtype name, usage (or predefined) type, +/// establish the commontype name, usage (or predefined) type, /// common material layer set, common set of properties and common /// shape representations (using IfcRepresentationMap). The /// IfcColumnType is attached using the /// IfcRelDefinedByType.RelatingType objectified relationship /// and is accessible by the inverse IsTypedBy attribute. -/// If no IfcColumnType is attachedÿ(i.e. if only +/// If no IfcColumnType is attached(i.e. if only /// occurrence information is given) the PredefinedType should /// be provided. If set to .USERDEFINED. a user defined value can be /// provided by the ObjectType attribute. @@ -30949,7 +30908,7 @@ public: /// concept. /// Material information can also be given at the /// IfcColumnType, defining the common attribute data for all -/// occurrences of the same type.ÿIt is then accessible by the +/// occurrences of the same type.It is then accessible by the /// inverse IsTypedBy /// relationship pointing to /// IfcColumnType.HasAssociations and via @@ -30970,7 +30929,7 @@ public: /// /// Property sets can also be given at the IfcColumnType, /// defining the common property data for all occurrences of the same -/// type.ÿIt is then accessible by the inverse IsTypedBy relationship pointing to +/// type.It is then accessible by the inverse IsTypedBy relationship pointing to /// IfcColumnType.HasPropertySets. If both are given, then the /// properties directly assigned to IfcColumn overrides the /// properties assigned to IfcColumnType. @@ -30995,13 +30954,13 @@ public: /// containment relationships. The first (and in most implementation /// scenarios mandatory) relationship is the hierachical spatial /// containment, the second (optional) relationship is the -/// aggregation within anÿelement assembly. +/// aggregation within anelement assembly. /// /// The IfcColumn, is places within the project spatial /// hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, refering to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcBuildingStorey being the default /// container. /// The IfcColumn, may be aggregated into an element @@ -31012,7 +30971,7 @@ public: /// IfcElementAssembly as a special focus subtype. In this /// case it should not be additionally contained in the project /// spatial hierarchy, -/// i.e.ÿSELF\IfcElement.ContainedInStructure should be +/// i.e.SELF\IfcElement.ContainedInStructure should be /// NIL. /// /// Geometry Use Definition @@ -31071,8 +31030,8 @@ public: /// Solid: IfcExtrudedAreaSolid, /// IfcRevolvedAreaSolid shall be supported /// Profile: all subtypes of IfcProfileDef (with -/// exception of IfcArbitraryOpenProfileDef)ÿ -/// Extrusion:ÿAll extrusion directions shall be +/// exception of IfcArbitraryOpenProfileDef) +/// Extrusion:All extrusion directions shall be /// supported /// /// Figure 81 illustrates a 'SweptSolid' geometric representation. There are no restrictions or conventions on @@ -31131,7 +31090,7 @@ public: /// /// Profile: see 'SweptSolid' geometric /// representation -/// Extrusion:ÿnot applicable +/// Extrusion:not applicable /// /// MappedRepresentation Representation Type /// The 'MappedRepresentation' representation type is supported as @@ -31143,7 +31102,7 @@ public: /// RepresentationIdentifier : 'Body' /// RepresentationType : 'MappedRepresentation' /// -/// The same constraints, as given for theÿ 'SweptSolid', +/// The same constraints, as given for the 'SweptSolid', /// 'Clipping', 'AdvancedSweptSolid', 'SurfaceModel' and 'Bre' /// geometric representation, shall apply to the /// MappedRepresentation of the @@ -31489,7 +31448,7 @@ public: /// representation and the space has defined space boundaries, then /// the covering, which relates to that space, may be assigned to the /// space boundaries using the link -/// toÿIfcRelSpaceBoundary, +/// toIfcRelSpaceBoundary, /// if the covering does not relate to a space, then the covering /// should be assigned to the building element or a distribution /// element using the IfcRelCoversBldgElements @@ -31504,7 +31463,7 @@ public: /// The IfcCovering defines the occuurence of any covering, /// common information about covering types (or styles) is handled by /// IfcCoveringType. The IfcCoveringType (if present) -/// may establish the commonÿtype name, usage (or predefined) type, +/// may establish the commontype name, usage (or predefined) type, /// common set of properties, common material layer set, and common /// shape representations (using IfcRepresentationMap). The /// IfcCoveringType is attached using the @@ -31515,7 +31474,7 @@ public: /// slabs with constant thickness along the extrusion direction), the /// IfcCoveringType should have a unique /// IfcMaterialLayerSet, that is referenced by -/// theÿIfcMaterialLayerSetUsage assigned to all occurrences +/// theIfcMaterialLayerSetUsage assigned to all occurrences /// of this covering type. /// /// Figure 91 illustrates assignment of IfcMaterialLayerSetUsage and IfcMaterialLayerSet to the covering type and the covering occurrence. @@ -31605,7 +31564,7 @@ public: /// /// GeometricSet Representation /// The 'GeometricSet' geometric representation of -/// IfcCovering supports area definitions as 3D surfaces.ÿ +/// IfcCovering supports area definitions as 3D surfaces. /// /// RepresentationIdentifier : 'Surface' /// RepresentationType : 'GeometricSet' @@ -31633,7 +31592,7 @@ public: /// /// SweptSolid Representation /// The 'SweptSolid' geometric representation of -/// IfcCovering supports volume definitions as 3D solids.ÿ +/// IfcCovering supports volume definitions as 3D solids. /// /// RepresentationIdentifier : 'Body' /// RepresentationType : 'SweptSolid' @@ -31687,14 +31646,14 @@ public: /// wall, common information about curtain wall types (or styles) is /// handled by IfcCurtainWallType. The /// IfcCurtainWallType (if present) may establish the -/// commonÿtype name, usage (or predefined) type, common material +/// commontype name, usage (or predefined) type, common material /// information, common set of properties and common shape /// representations (using IfcRepresentationMap). The /// IfcCurtainWallType is attached using the /// IfcRelDefinedByType.RelatingType objectified relationship /// and is accessible by the inverse IsDefinedBy /// attribute. -/// If no IfcCurtainWallType is attachedÿ(i.e. if only +/// If no IfcCurtainWallType is attached(i.e. if only /// occurrence information is given) the predefined type may be given /// by using the ObjectType attribute. /// NOTE Since the IfcCurtainWall might be @@ -32422,13 +32381,13 @@ public: /// different containment relationships. The first (and in most /// implementation scenarios mandatory) relationship is the /// hierachical spatial containment, the second (optional) -/// relationship is the aggregation within anÿelement assembly. +/// relationship is the aggregation within anelement assembly. /// /// The IfcDistributionElement is places within the /// project spatial hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, referring to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcSpace being the default /// container. /// The IfcDistributionElement may be aggregated into an @@ -32439,7 +32398,7 @@ public: /// IfcElementAssembly as a special focus subtype. In this /// case it should not be additionally contained in the project /// spatial hierarchy, -/// i.e.ÿSELF\IfcElement.ContainedInStructure should be +/// i.e.SELF\IfcElement.ContainedInStructure should be /// NIL. /// /// Geometry Use Definitions @@ -32716,7 +32675,7 @@ public: /// IfcRelFillsElement relationship, then the IfcDoor /// has an inverse attribute FillsVoids provided, /// -/// NOTEÿ View definitions or +/// NOTE View definitions or /// implementer agreements may restrict the relationship to only /// include one window (or door) into one opening. /// @@ -32738,7 +32697,7 @@ public: /// that references one IfcDoorLiningProperties and on to many /// IfcDoorPanelProperties. /// -/// NOTEÿ see +/// NOTE see /// IfcDoorStandardCase for all specific constraints imposed /// by this subtype. /// @@ -32771,7 +32730,7 @@ public: /// the construction material type /// the particular attributes for the lining by the /// IfcDoorLiningProperties -/// the particular attributes for the panels by theÿ +/// the particular attributes for the panels by the /// IfcDoorPanelProperties /// /// HISTORY New entity in IFC Release 1.0. @@ -32836,13 +32795,13 @@ public: /// containment relationships as shown in Figure 96. The first (and in most implementation /// scenarios mandatory) relationship is the hierachical spatial /// containment, the second (optional) relationship is the -/// aggregation within anÿelement assembly. +/// aggregation within anelement assembly. /// /// The IfcDoor is places within the project spatial /// hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, refering to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcBuildingStorey being the default /// container. /// The IfcDoor may be aggregated into an element assembly @@ -32851,7 +32810,7 @@ public: /// SELF\IfcObjectDefinition.Decomposes. Doors may be part of /// an IfcCurtainWall as a special focus subtype. In this case /// it should not be additionally contained in the project spatial -/// hierarchy, i.e.ÿSELF\IfcElement.ContainedInStructure +/// hierarchy, i.e.SELF\IfcElement.ContainedInStructure /// should be NIL. /// /// NOTE The containment shall be defined independently of the @@ -32892,12 +32851,12 @@ public: /// is defined within the world coordinate system. /// /// Geometric Representation -/// Theÿgeometric representation of IfcDoor is defined -/// using the following (potentiallyÿmultiple) +/// Thegeometric representation of IfcDoor is defined +/// using the following (potentiallymultiple) /// IfcShapeRepresentation's for its /// IfcProductDefinitionShape: /// -/// Profile: Aÿ'Curve3D' +/// Profile: A'Curve3D' /// consisting of a single losed curve defining the outer boundary of /// the door (lining). The door parametric representation uses this /// profile in order to apply the door lining and panel parameter. If @@ -32914,11 +32873,11 @@ public: /// IfcDoorPanelProperties. The purpose of the parameter is /// described at those entities and below (door opening operation by /// door type). -/// Profile -ÿ'Curve3D' representation +/// Profile -'Curve3D' representation /// The door profile is represented by a three-dimensional closed /// curve within a particular shape representation. The profile is /// used to apply the parameter of the parametric door -/// representation.ÿThe following attribute values for the +/// representation.The following attribute values for the /// IfcShapeRepresentation holding this geometric /// representation shall be used: /// @@ -32932,18 +32891,18 @@ public: /// a parametric representation shall be applied to the door /// AND /// -/// theÿdoor is 'free standing', or -/// the opening into which theÿdoor is inserted is not extruded +/// thedoor is 'free standing', or +/// the opening into which thedoor is inserted is not extruded /// horizontally (i.e. where the opening profile does not match -/// theÿdoor profile) +/// thedoor profile) /// -/// FootPrint -ÿ'GeometricCurveSet' or 'Annotation2D' +/// FootPrint -'GeometricCurveSet' or 'Annotation2D' /// representation /// The door foot print is represented by a set of -/// two-dimensionalÿcurves (or in case of 'Annotation2D' additional +/// two-dimensionalcurves (or in case of 'Annotation2D' additional /// hatching and text) within a particular shape representation. The /// foot print is used for the planview representation of the -/// door.ÿThe following attribute values for the +/// door.The following attribute values for the /// IfcShapeRepresentation holding this geometric /// representation shall be used: /// @@ -32957,7 +32916,7 @@ public: /// parametric representation) or by explicit 3D shape. The 3D shape /// is given by using extrusion geometry, or surface models, or Brep /// models within a particular shape representation. The body is used -/// for the model view representation of the door.ÿThe following +/// for the model view representation of the door.The following /// attribute values for the IfcShapeRepresentation holding /// this geometric representation shall be used: /// @@ -32975,7 +32934,7 @@ public: /// RepresentationIdentifier : 'FootPrint', 'Body' /// RepresentationType : 'MappedRepresentation' /// -/// The same constraints, as given for theÿ 'FootPrint', 'Body' +/// The same constraints, as given for the 'FootPrint', 'Body' /// representation identifiers, shall apply to the /// MappedRepresentation of the /// IfcRepresentationMap. @@ -32994,13 +32953,13 @@ public: /// relatioship, having a horizontal extrusion (along the y-axis of /// the IfcDoor), the overall size is determined by the /// extrusion profile of the IfcOpeningElement. -/// NOTE ÿThe OverallWidth and +/// NOTE The OverallWidth and /// OverallHeight parameters are for informational purpose /// only. /// The opening direction is determined by the local placement of /// IfcDoor and the OperationType of the door /// style as shown in Figure 97. -/// NOTE ÿThere are different definitions in +/// NOTE There are different definitions in /// various countries on what a left opening or left hung or left /// swing door is (same for right). Therefore the IFC definition may /// derivate from the local standard and need to be mapped @@ -33018,7 +32977,7 @@ public: /// placement. The determination of whether the door opens to the /// left or to the right is done at the level of the /// IfcDoorType. Here it is a left side opening door given -/// byÿIfcDoorType.OperationType = +/// byIfcDoorType.OperationType = /// SingleSwingLeft /// refered to as LEFT HAND (LH) in US * /// @@ -33037,7 +32996,7 @@ public: /// opens to the right, a separate door style needs to be used (here /// IfcDoorTypee.OperationType = SingleSwingRight) and it /// always opens into the direction of the positive Y axis of the -/// local placement.ÿ +/// local placement. /// refered to as RIGHT HAND (RH) in US * /// /// refered to as DIN-L (left hung) in Germany @@ -33803,7 +33762,7 @@ public: /// geometry based on the swept solid), if a 3D geometric /// representation is assigned. In addition they have to have a /// corresponding IfcMaterialProfileSetUsage assigned. -/// NOTEÿ View definitions and implementer +/// NOTE View definitions and implementer /// agreements may further constrain the applicable geometry types, /// e.g. by excluding tapering from an IfcMemberStandardCase /// implementation. @@ -33819,13 +33778,13 @@ public: /// IfcMember defines the occuurence of any member, common /// information about member types (or styles) is handled by /// IfcMemberType. The IfcMemberType (if present) may -/// establish the commonÿtype name, usage (or predefined) type, +/// establish the commontype name, usage (or predefined) type, /// common material profile set, common set of properties and common /// shape representations (using IfcRepresentationMap). The /// IfcMemberType is attached using the /// IfcRelDefinedByType.RelatingType objectified relationship /// and is accessible by the inverse IsTypedBy attribute. -/// If no IfcMemberType is attachedÿ(i.e. if only +/// If no IfcMemberType is attached(i.e. if only /// occurrence information is given) the PredefinedType should /// be provided. If set to .USERDEFINED. a user defined value can be /// provided by the ObjectType attribute. @@ -33836,14 +33795,14 @@ public: /// IfcRelAssociatesMaterial.RelatingMaterial. It is /// accessible by the inverse HasAssociations relationship. /// Material information can also be given at -/// theÿIfcMemberType, defining the common attribute data for -/// all occurrences of the same type.ÿIt is then accessible by the +/// theIfcMemberType, defining the common attribute data for +/// all occurrences of the same type.It is then accessible by the /// inverse . * - * * - ********************************************************************************/ - -/******************************************************************************** - * * - * This file has been generated from IFC2X3_TC1.exp. Do not make modifications * - * but instead modify the python script that has been used to generate this. * - * * - ********************************************************************************/ - -#ifndef IFC2X3ENUM_H -#define IFC2X3ENUM_H - -#include "../ifcparse/ifc_parse_api.h" - -#include -#include - -#endif diff --git a/src/ifcparse/Ifc4-definitions.h b/src/ifcparse/Ifc4-definitions.h new file mode 100644 index 0000000000..720aa8494a --- /dev/null +++ b/src/ifcparse/Ifc4-definitions.h @@ -0,0 +1,3508 @@ +/******************************************************************************** + * * + * This file is part of IfcOpenShell. * + * * + * IfcOpenShell is free software: you can redistribute it and/or modify * + * it under the terms of the Lesser GNU General Public License as published by * + * the Free Software Foundation, either version 3.0 of the License, or * + * (at your option) any later version. * + * * + * IfcOpenShell is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * Lesser GNU General Public License for more details. * + * * + * You should have received a copy of the Lesser GNU General Public License * + * along with this program. If not, see . * + * * + ********************************************************************************/ + +/******************************************************************************** + * * + * This file has been generated from IFC4.exp. Do not make modifications * + * but instead modify the python script that has been used to generate this. * + * * + ********************************************************************************/ + +#define SCHEMA_HAS_IfcAbsorbedDoseMeasure +#define SCHEMA_HAS_IfcAccelerationMeasure +#define SCHEMA_HAS_IfcActionRequestTypeEnum +#define SCHEMA_HAS_IfcActionSourceTypeEnum +#define SCHEMA_HAS_IfcActionTypeEnum +#define SCHEMA_HAS_IfcActorSelect +#define SCHEMA_HAS_IfcActuatorTypeEnum +#define SCHEMA_HAS_IfcAddressTypeEnum +#define SCHEMA_HAS_IfcAirTerminalBoxTypeEnum +#define SCHEMA_HAS_IfcAirTerminalTypeEnum +#define SCHEMA_HAS_IfcAirToAirHeatRecoveryTypeEnum +#define SCHEMA_HAS_IfcAlarmTypeEnum +#define SCHEMA_HAS_IfcAmountOfSubstanceMeasure +#define SCHEMA_HAS_IfcAnalysisModelTypeEnum +#define SCHEMA_HAS_IfcAnalysisTheoryTypeEnum +#define SCHEMA_HAS_IfcAngularVelocityMeasure +#define SCHEMA_HAS_IfcAppliedValueSelect +#define SCHEMA_HAS_IfcArcIndex +#define SCHEMA_HAS_IfcAreaDensityMeasure +#define SCHEMA_HAS_IfcAreaMeasure +#define SCHEMA_HAS_IfcArithmeticOperatorEnum +#define SCHEMA_HAS_IfcAssemblyPlaceEnum +#define SCHEMA_HAS_IfcAudioVisualApplianceTypeEnum +#define SCHEMA_HAS_IfcAxis2Placement +#define SCHEMA_HAS_IfcBSplineCurveForm +#define SCHEMA_HAS_IfcBSplineSurfaceForm +#define SCHEMA_HAS_IfcBeamTypeEnum +#define SCHEMA_HAS_IfcBenchmarkEnum +#define SCHEMA_HAS_IfcBendingParameterSelect +#define SCHEMA_HAS_IfcBinary +#define SCHEMA_HAS_IfcBoilerTypeEnum +#define SCHEMA_HAS_IfcBoolean +#define SCHEMA_HAS_IfcBooleanOperand +#define SCHEMA_HAS_IfcBooleanOperator +#define SCHEMA_HAS_IfcBoxAlignment +#define SCHEMA_HAS_IfcBuildingElementPartTypeEnum +#define SCHEMA_HAS_IfcBuildingElementProxyTypeEnum +#define SCHEMA_HAS_IfcBuildingSystemTypeEnum +#define SCHEMA_HAS_IfcBurnerTypeEnum +#define SCHEMA_HAS_IfcCableCarrierFittingTypeEnum +#define SCHEMA_HAS_IfcCableCarrierSegmentTypeEnum +#define SCHEMA_HAS_IfcCableFittingTypeEnum +#define SCHEMA_HAS_IfcCableSegmentTypeEnum +#define SCHEMA_HAS_IfcCardinalPointReference +#define SCHEMA_HAS_IfcChangeActionEnum +#define SCHEMA_HAS_IfcChillerTypeEnum +#define SCHEMA_HAS_IfcChimneyTypeEnum +#define SCHEMA_HAS_IfcClassificationReferenceSelect +#define SCHEMA_HAS_IfcClassificationSelect +#define SCHEMA_HAS_IfcCoilTypeEnum +#define SCHEMA_HAS_IfcColour +#define SCHEMA_HAS_IfcColourOrFactor +#define SCHEMA_HAS_IfcColumnTypeEnum +#define SCHEMA_HAS_IfcCommunicationsApplianceTypeEnum +#define SCHEMA_HAS_IfcComplexNumber +#define SCHEMA_HAS_IfcComplexPropertyTemplateTypeEnum +#define SCHEMA_HAS_IfcCompoundPlaneAngleMeasure +#define SCHEMA_HAS_IfcCompressorTypeEnum +#define SCHEMA_HAS_IfcCondenserTypeEnum +#define SCHEMA_HAS_IfcConnectionTypeEnum +#define SCHEMA_HAS_IfcConstraintEnum +#define SCHEMA_HAS_IfcConstructionEquipmentResourceTypeEnum +#define SCHEMA_HAS_IfcConstructionMaterialResourceTypeEnum +#define SCHEMA_HAS_IfcConstructionProductResourceTypeEnum +#define SCHEMA_HAS_IfcContextDependentMeasure +#define SCHEMA_HAS_IfcControllerTypeEnum +#define SCHEMA_HAS_IfcCooledBeamTypeEnum +#define SCHEMA_HAS_IfcCoolingTowerTypeEnum +#define SCHEMA_HAS_IfcCoordinateReferenceSystemSelect +#define SCHEMA_HAS_IfcCostItemTypeEnum +#define SCHEMA_HAS_IfcCostScheduleTypeEnum +#define SCHEMA_HAS_IfcCountMeasure +#define SCHEMA_HAS_IfcCoveringTypeEnum +#define SCHEMA_HAS_IfcCrewResourceTypeEnum +#define SCHEMA_HAS_IfcCsgSelect +#define SCHEMA_HAS_IfcCurtainWallTypeEnum +#define SCHEMA_HAS_IfcCurvatureMeasure +#define SCHEMA_HAS_IfcCurveFontOrScaledCurveFontSelect +#define SCHEMA_HAS_IfcCurveInterpolationEnum +#define SCHEMA_HAS_IfcCurveOnSurface +#define SCHEMA_HAS_IfcCurveOrEdgeCurve +#define SCHEMA_HAS_IfcCurveStyleFontSelect +#define SCHEMA_HAS_IfcDamperTypeEnum +#define SCHEMA_HAS_IfcDataOriginEnum +#define SCHEMA_HAS_IfcDate +#define SCHEMA_HAS_IfcDateTime +#define SCHEMA_HAS_IfcDayInMonthNumber +#define SCHEMA_HAS_IfcDayInWeekNumber +#define SCHEMA_HAS_IfcDefinitionSelect +#define SCHEMA_HAS_IfcDerivedMeasureValue +#define SCHEMA_HAS_IfcDerivedUnitEnum +#define SCHEMA_HAS_IfcDescriptiveMeasure +#define SCHEMA_HAS_IfcDimensionCount +#define SCHEMA_HAS_IfcDirectionSenseEnum +#define SCHEMA_HAS_IfcDiscreteAccessoryTypeEnum +#define SCHEMA_HAS_IfcDistributionChamberElementTypeEnum +#define SCHEMA_HAS_IfcDistributionPortTypeEnum +#define SCHEMA_HAS_IfcDistributionSystemEnum +#define SCHEMA_HAS_IfcDocumentConfidentialityEnum +#define SCHEMA_HAS_IfcDocumentSelect +#define SCHEMA_HAS_IfcDocumentStatusEnum +#define SCHEMA_HAS_IfcDoorPanelOperationEnum +#define SCHEMA_HAS_IfcDoorPanelPositionEnum +#define SCHEMA_HAS_IfcDoorStyleConstructionEnum +#define SCHEMA_HAS_IfcDoorStyleOperationEnum +#define SCHEMA_HAS_IfcDoorTypeEnum +#define SCHEMA_HAS_IfcDoorTypeOperationEnum +#define SCHEMA_HAS_IfcDoseEquivalentMeasure +#define SCHEMA_HAS_IfcDuctFittingTypeEnum +#define SCHEMA_HAS_IfcDuctSegmentTypeEnum +#define SCHEMA_HAS_IfcDuctSilencerTypeEnum +#define SCHEMA_HAS_IfcDuration +#define SCHEMA_HAS_IfcDynamicViscosityMeasure +#define SCHEMA_HAS_IfcElectricApplianceTypeEnum +#define SCHEMA_HAS_IfcElectricCapacitanceMeasure +#define SCHEMA_HAS_IfcElectricChargeMeasure +#define SCHEMA_HAS_IfcElectricConductanceMeasure +#define SCHEMA_HAS_IfcElectricCurrentMeasure +#define SCHEMA_HAS_IfcElectricDistributionBoardTypeEnum +#define SCHEMA_HAS_IfcElectricFlowStorageDeviceTypeEnum +#define SCHEMA_HAS_IfcElectricGeneratorTypeEnum +#define SCHEMA_HAS_IfcElectricMotorTypeEnum +#define SCHEMA_HAS_IfcElectricResistanceMeasure +#define SCHEMA_HAS_IfcElectricTimeControlTypeEnum +#define SCHEMA_HAS_IfcElectricVoltageMeasure +#define SCHEMA_HAS_IfcElementAssemblyTypeEnum +#define SCHEMA_HAS_IfcElementCompositionEnum +#define SCHEMA_HAS_IfcEnergyMeasure +#define SCHEMA_HAS_IfcEngineTypeEnum +#define SCHEMA_HAS_IfcEvaporativeCoolerTypeEnum +#define SCHEMA_HAS_IfcEvaporatorTypeEnum +#define SCHEMA_HAS_IfcEventTriggerTypeEnum +#define SCHEMA_HAS_IfcEventTypeEnum +#define SCHEMA_HAS_IfcExternalSpatialElementTypeEnum +#define SCHEMA_HAS_IfcFanTypeEnum +#define SCHEMA_HAS_IfcFastenerTypeEnum +#define SCHEMA_HAS_IfcFillStyleSelect +#define SCHEMA_HAS_IfcFilterTypeEnum +#define SCHEMA_HAS_IfcFireSuppressionTerminalTypeEnum +#define SCHEMA_HAS_IfcFlowDirectionEnum +#define SCHEMA_HAS_IfcFlowInstrumentTypeEnum +#define SCHEMA_HAS_IfcFlowMeterTypeEnum +#define SCHEMA_HAS_IfcFontStyle +#define SCHEMA_HAS_IfcFontVariant +#define SCHEMA_HAS_IfcFontWeight +#define SCHEMA_HAS_IfcFootingTypeEnum +#define SCHEMA_HAS_IfcForceMeasure +#define SCHEMA_HAS_IfcFrequencyMeasure +#define SCHEMA_HAS_IfcFurnitureTypeEnum +#define SCHEMA_HAS_IfcGeographicElementTypeEnum +#define SCHEMA_HAS_IfcGeometricProjectionEnum +#define SCHEMA_HAS_IfcGeometricSetSelect +#define SCHEMA_HAS_IfcGlobalOrLocalEnum +#define SCHEMA_HAS_IfcGloballyUniqueId +#define SCHEMA_HAS_IfcGridPlacementDirectionSelect +#define SCHEMA_HAS_IfcGridTypeEnum +#define SCHEMA_HAS_IfcHatchLineDistanceSelect +#define SCHEMA_HAS_IfcHeatExchangerTypeEnum +#define SCHEMA_HAS_IfcHeatFluxDensityMeasure +#define SCHEMA_HAS_IfcHeatingValueMeasure +#define SCHEMA_HAS_IfcHumidifierTypeEnum +#define SCHEMA_HAS_IfcIdentifier +#define SCHEMA_HAS_IfcIlluminanceMeasure +#define SCHEMA_HAS_IfcInductanceMeasure +#define SCHEMA_HAS_IfcInteger +#define SCHEMA_HAS_IfcIntegerCountRateMeasure +#define SCHEMA_HAS_IfcInterceptorTypeEnum +#define SCHEMA_HAS_IfcInternalOrExternalEnum +#define SCHEMA_HAS_IfcInventoryTypeEnum +#define SCHEMA_HAS_IfcIonConcentrationMeasure +#define SCHEMA_HAS_IfcIsothermalMoistureCapacityMeasure +#define SCHEMA_HAS_IfcJunctionBoxTypeEnum +#define SCHEMA_HAS_IfcKinematicViscosityMeasure +#define SCHEMA_HAS_IfcKnotType +#define SCHEMA_HAS_IfcLabel +#define SCHEMA_HAS_IfcLaborResourceTypeEnum +#define SCHEMA_HAS_IfcLampTypeEnum +#define SCHEMA_HAS_IfcLanguageId +#define SCHEMA_HAS_IfcLayerSetDirectionEnum +#define SCHEMA_HAS_IfcLayeredItem +#define SCHEMA_HAS_IfcLengthMeasure +#define SCHEMA_HAS_IfcLibrarySelect +#define SCHEMA_HAS_IfcLightDistributionCurveEnum +#define SCHEMA_HAS_IfcLightDistributionDataSourceSelect +#define SCHEMA_HAS_IfcLightEmissionSourceEnum +#define SCHEMA_HAS_IfcLightFixtureTypeEnum +#define SCHEMA_HAS_IfcLineIndex +#define SCHEMA_HAS_IfcLinearForceMeasure +#define SCHEMA_HAS_IfcLinearMomentMeasure +#define SCHEMA_HAS_IfcLinearStiffnessMeasure +#define SCHEMA_HAS_IfcLinearVelocityMeasure +#define SCHEMA_HAS_IfcLoadGroupTypeEnum +#define SCHEMA_HAS_IfcLogical +#define SCHEMA_HAS_IfcLogicalOperatorEnum +#define SCHEMA_HAS_IfcLuminousFluxMeasure +#define SCHEMA_HAS_IfcLuminousIntensityDistributionMeasure +#define SCHEMA_HAS_IfcLuminousIntensityMeasure +#define SCHEMA_HAS_IfcMagneticFluxDensityMeasure +#define SCHEMA_HAS_IfcMagneticFluxMeasure +#define SCHEMA_HAS_IfcMassDensityMeasure +#define SCHEMA_HAS_IfcMassFlowRateMeasure +#define SCHEMA_HAS_IfcMassMeasure +#define SCHEMA_HAS_IfcMassPerLengthMeasure +#define SCHEMA_HAS_IfcMaterialSelect +#define SCHEMA_HAS_IfcMeasureValue +#define SCHEMA_HAS_IfcMechanicalFastenerTypeEnum +#define SCHEMA_HAS_IfcMedicalDeviceTypeEnum +#define SCHEMA_HAS_IfcMemberTypeEnum +#define SCHEMA_HAS_IfcMetricValueSelect +#define SCHEMA_HAS_IfcModulusOfElasticityMeasure +#define SCHEMA_HAS_IfcModulusOfLinearSubgradeReactionMeasure +#define SCHEMA_HAS_IfcModulusOfRotationalSubgradeReactionMeasure +#define SCHEMA_HAS_IfcModulusOfRotationalSubgradeReactionSelect +#define SCHEMA_HAS_IfcModulusOfSubgradeReactionMeasure +#define SCHEMA_HAS_IfcModulusOfSubgradeReactionSelect +#define SCHEMA_HAS_IfcModulusOfTranslationalSubgradeReactionSelect +#define SCHEMA_HAS_IfcMoistureDiffusivityMeasure +#define SCHEMA_HAS_IfcMolecularWeightMeasure +#define SCHEMA_HAS_IfcMomentOfInertiaMeasure +#define SCHEMA_HAS_IfcMonetaryMeasure +#define SCHEMA_HAS_IfcMonthInYearNumber +#define SCHEMA_HAS_IfcMotorConnectionTypeEnum +#define SCHEMA_HAS_IfcNonNegativeLengthMeasure +#define SCHEMA_HAS_IfcNormalisedRatioMeasure +#define SCHEMA_HAS_IfcNullStyle +#define SCHEMA_HAS_IfcNumericMeasure +#define SCHEMA_HAS_IfcObjectReferenceSelect +#define SCHEMA_HAS_IfcObjectTypeEnum +#define SCHEMA_HAS_IfcObjectiveEnum +#define SCHEMA_HAS_IfcOccupantTypeEnum +#define SCHEMA_HAS_IfcOpeningElementTypeEnum +#define SCHEMA_HAS_IfcOutletTypeEnum +#define SCHEMA_HAS_IfcPHMeasure +#define SCHEMA_HAS_IfcParameterValue +#define SCHEMA_HAS_IfcPerformanceHistoryTypeEnum +#define SCHEMA_HAS_IfcPermeableCoveringOperationEnum +#define SCHEMA_HAS_IfcPermitTypeEnum +#define SCHEMA_HAS_IfcPhysicalOrVirtualEnum +#define SCHEMA_HAS_IfcPileConstructionEnum +#define SCHEMA_HAS_IfcPileTypeEnum +#define SCHEMA_HAS_IfcPipeFittingTypeEnum +#define SCHEMA_HAS_IfcPipeSegmentTypeEnum +#define SCHEMA_HAS_IfcPlanarForceMeasure +#define SCHEMA_HAS_IfcPlaneAngleMeasure +#define SCHEMA_HAS_IfcPlateTypeEnum +#define SCHEMA_HAS_IfcPointOrVertexPoint +#define SCHEMA_HAS_IfcPositiveInteger +#define SCHEMA_HAS_IfcPositiveLengthMeasure +#define SCHEMA_HAS_IfcPositivePlaneAngleMeasure +#define SCHEMA_HAS_IfcPositiveRatioMeasure +#define SCHEMA_HAS_IfcPowerMeasure +#define SCHEMA_HAS_IfcPreferredSurfaceCurveRepresentation +#define SCHEMA_HAS_IfcPresentableText +#define SCHEMA_HAS_IfcPresentationStyleSelect +#define SCHEMA_HAS_IfcPressureMeasure +#define SCHEMA_HAS_IfcProcedureTypeEnum +#define SCHEMA_HAS_IfcProcessSelect +#define SCHEMA_HAS_IfcProductRepresentationSelect +#define SCHEMA_HAS_IfcProductSelect +#define SCHEMA_HAS_IfcProfileTypeEnum +#define SCHEMA_HAS_IfcProjectOrderTypeEnum +#define SCHEMA_HAS_IfcProjectedOrTrueLengthEnum +#define SCHEMA_HAS_IfcProjectionElementTypeEnum +#define SCHEMA_HAS_IfcPropertySetDefinitionSelect +#define SCHEMA_HAS_IfcPropertySetDefinitionSet +#define SCHEMA_HAS_IfcPropertySetTemplateTypeEnum +#define SCHEMA_HAS_IfcProtectiveDeviceTrippingUnitTypeEnum +#define SCHEMA_HAS_IfcProtectiveDeviceTypeEnum +#define SCHEMA_HAS_IfcPumpTypeEnum +#define SCHEMA_HAS_IfcRadioActivityMeasure +#define SCHEMA_HAS_IfcRailingTypeEnum +#define SCHEMA_HAS_IfcRampFlightTypeEnum +#define SCHEMA_HAS_IfcRampTypeEnum +#define SCHEMA_HAS_IfcRatioMeasure +#define SCHEMA_HAS_IfcReal +#define SCHEMA_HAS_IfcRecurrenceTypeEnum +#define SCHEMA_HAS_IfcReflectanceMethodEnum +#define SCHEMA_HAS_IfcReinforcingBarRoleEnum +#define SCHEMA_HAS_IfcReinforcingBarSurfaceEnum +#define SCHEMA_HAS_IfcReinforcingBarTypeEnum +#define SCHEMA_HAS_IfcReinforcingMeshTypeEnum +#define SCHEMA_HAS_IfcResourceObjectSelect +#define SCHEMA_HAS_IfcResourceSelect +#define SCHEMA_HAS_IfcRoleEnum +#define SCHEMA_HAS_IfcRoofTypeEnum +#define SCHEMA_HAS_IfcRotationalFrequencyMeasure +#define SCHEMA_HAS_IfcRotationalMassMeasure +#define SCHEMA_HAS_IfcRotationalStiffnessMeasure +#define SCHEMA_HAS_IfcRotationalStiffnessSelect +#define SCHEMA_HAS_IfcSIPrefix +#define SCHEMA_HAS_IfcSIUnitName +#define SCHEMA_HAS_IfcSanitaryTerminalTypeEnum +#define SCHEMA_HAS_IfcSectionModulusMeasure +#define SCHEMA_HAS_IfcSectionTypeEnum +#define SCHEMA_HAS_IfcSectionalAreaIntegralMeasure +#define SCHEMA_HAS_IfcSegmentIndexSelect +#define SCHEMA_HAS_IfcSensorTypeEnum +#define SCHEMA_HAS_IfcSequenceEnum +#define SCHEMA_HAS_IfcShadingDeviceTypeEnum +#define SCHEMA_HAS_IfcShearModulusMeasure +#define SCHEMA_HAS_IfcShell +#define SCHEMA_HAS_IfcSimplePropertyTemplateTypeEnum +#define SCHEMA_HAS_IfcSimpleValue +#define SCHEMA_HAS_IfcSizeSelect +#define SCHEMA_HAS_IfcSlabTypeEnum +#define SCHEMA_HAS_IfcSolarDeviceTypeEnum +#define SCHEMA_HAS_IfcSolidAngleMeasure +#define SCHEMA_HAS_IfcSolidOrShell +#define SCHEMA_HAS_IfcSoundPowerLevelMeasure +#define SCHEMA_HAS_IfcSoundPowerMeasure +#define SCHEMA_HAS_IfcSoundPressureLevelMeasure +#define SCHEMA_HAS_IfcSoundPressureMeasure +#define SCHEMA_HAS_IfcSpaceBoundarySelect +#define SCHEMA_HAS_IfcSpaceHeaterTypeEnum +#define SCHEMA_HAS_IfcSpaceTypeEnum +#define SCHEMA_HAS_IfcSpatialZoneTypeEnum +#define SCHEMA_HAS_IfcSpecificHeatCapacityMeasure +#define SCHEMA_HAS_IfcSpecularExponent +#define SCHEMA_HAS_IfcSpecularHighlightSelect +#define SCHEMA_HAS_IfcSpecularRoughness +#define SCHEMA_HAS_IfcStackTerminalTypeEnum +#define SCHEMA_HAS_IfcStairFlightTypeEnum +#define SCHEMA_HAS_IfcStairTypeEnum +#define SCHEMA_HAS_IfcStateEnum +#define SCHEMA_HAS_IfcStructuralActivityAssignmentSelect +#define SCHEMA_HAS_IfcStructuralCurveActivityTypeEnum +#define SCHEMA_HAS_IfcStructuralCurveMemberTypeEnum +#define SCHEMA_HAS_IfcStructuralSurfaceActivityTypeEnum +#define SCHEMA_HAS_IfcStructuralSurfaceMemberTypeEnum +#define SCHEMA_HAS_IfcStyleAssignmentSelect +#define SCHEMA_HAS_IfcSubContractResourceTypeEnum +#define SCHEMA_HAS_IfcSurfaceFeatureTypeEnum +#define SCHEMA_HAS_IfcSurfaceOrFaceSurface +#define SCHEMA_HAS_IfcSurfaceSide +#define SCHEMA_HAS_IfcSurfaceStyleElementSelect +#define SCHEMA_HAS_IfcSwitchingDeviceTypeEnum +#define SCHEMA_HAS_IfcSystemFurnitureElementTypeEnum +#define SCHEMA_HAS_IfcTankTypeEnum +#define SCHEMA_HAS_IfcTaskDurationEnum +#define SCHEMA_HAS_IfcTaskTypeEnum +#define SCHEMA_HAS_IfcTemperatureGradientMeasure +#define SCHEMA_HAS_IfcTemperatureRateOfChangeMeasure +#define SCHEMA_HAS_IfcTendonAnchorTypeEnum +#define SCHEMA_HAS_IfcTendonTypeEnum +#define SCHEMA_HAS_IfcText +#define SCHEMA_HAS_IfcTextAlignment +#define SCHEMA_HAS_IfcTextDecoration +#define SCHEMA_HAS_IfcTextFontName +#define SCHEMA_HAS_IfcTextFontSelect +#define SCHEMA_HAS_IfcTextPath +#define SCHEMA_HAS_IfcTextTransformation +#define SCHEMA_HAS_IfcThermalAdmittanceMeasure +#define SCHEMA_HAS_IfcThermalConductivityMeasure +#define SCHEMA_HAS_IfcThermalExpansionCoefficientMeasure +#define SCHEMA_HAS_IfcThermalResistanceMeasure +#define SCHEMA_HAS_IfcThermalTransmittanceMeasure +#define SCHEMA_HAS_IfcThermodynamicTemperatureMeasure +#define SCHEMA_HAS_IfcTime +#define SCHEMA_HAS_IfcTimeMeasure +#define SCHEMA_HAS_IfcTimeOrRatioSelect +#define SCHEMA_HAS_IfcTimeSeriesDataTypeEnum +#define SCHEMA_HAS_IfcTimeStamp +#define SCHEMA_HAS_IfcTorqueMeasure +#define SCHEMA_HAS_IfcTransformerTypeEnum +#define SCHEMA_HAS_IfcTransitionCode +#define SCHEMA_HAS_IfcTranslationalStiffnessSelect +#define SCHEMA_HAS_IfcTransportElementTypeEnum +#define SCHEMA_HAS_IfcTrimmingPreference +#define SCHEMA_HAS_IfcTrimmingSelect +#define SCHEMA_HAS_IfcTubeBundleTypeEnum +#define SCHEMA_HAS_IfcURIReference +#define SCHEMA_HAS_IfcUnit +#define SCHEMA_HAS_IfcUnitEnum +#define SCHEMA_HAS_IfcUnitaryControlElementTypeEnum +#define SCHEMA_HAS_IfcUnitaryEquipmentTypeEnum +#define SCHEMA_HAS_IfcValue +#define SCHEMA_HAS_IfcValveTypeEnum +#define SCHEMA_HAS_IfcVaporPermeabilityMeasure +#define SCHEMA_HAS_IfcVectorOrDirection +#define SCHEMA_HAS_IfcVibrationIsolatorTypeEnum +#define SCHEMA_HAS_IfcVoidingFeatureTypeEnum +#define SCHEMA_HAS_IfcVolumeMeasure +#define SCHEMA_HAS_IfcVolumetricFlowRateMeasure +#define SCHEMA_HAS_IfcWallTypeEnum +#define SCHEMA_HAS_IfcWarpingConstantMeasure +#define SCHEMA_HAS_IfcWarpingMomentMeasure +#define SCHEMA_HAS_IfcWarpingStiffnessSelect +#define SCHEMA_HAS_IfcWasteTerminalTypeEnum +#define SCHEMA_HAS_IfcWindowPanelOperationEnum +#define SCHEMA_HAS_IfcWindowPanelPositionEnum +#define SCHEMA_HAS_IfcWindowStyleConstructionEnum +#define SCHEMA_HAS_IfcWindowStyleOperationEnum +#define SCHEMA_HAS_IfcWindowTypeEnum +#define SCHEMA_HAS_IfcWindowTypePartitioningEnum +#define SCHEMA_HAS_IfcWorkCalendarTypeEnum +#define SCHEMA_HAS_IfcWorkPlanTypeEnum +#define SCHEMA_HAS_IfcWorkScheduleTypeEnum +#define SCHEMA_HAS_IfcActionRequest +#define SCHEMA_IfcActionRequest_HAS_PredefinedType +#define SCHEMA_IfcActionRequest_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcActionRequest_HAS_Status +#define SCHEMA_IfcActionRequest_Status_IS_OPTIONAL +#define SCHEMA_IfcActionRequest_HAS_LongDescription +#define SCHEMA_IfcActionRequest_LongDescription_IS_OPTIONAL +#define SCHEMA_HAS_IfcActor +#define SCHEMA_IfcActor_HAS_TheActor +#define SCHEMA_HAS_IfcActorRole +#define SCHEMA_IfcActorRole_HAS_Role +#define SCHEMA_IfcActorRole_HAS_UserDefinedRole +#define SCHEMA_IfcActorRole_UserDefinedRole_IS_OPTIONAL +#define SCHEMA_IfcActorRole_HAS_Description +#define SCHEMA_IfcActorRole_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcActuator +#define SCHEMA_IfcActuator_HAS_PredefinedType +#define SCHEMA_IfcActuator_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcActuatorType +#define SCHEMA_IfcActuatorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAddress +#define SCHEMA_IfcAddress_HAS_Purpose +#define SCHEMA_IfcAddress_Purpose_IS_OPTIONAL +#define SCHEMA_IfcAddress_HAS_Description +#define SCHEMA_IfcAddress_Description_IS_OPTIONAL +#define SCHEMA_IfcAddress_HAS_UserDefinedPurpose +#define SCHEMA_IfcAddress_UserDefinedPurpose_IS_OPTIONAL +#define SCHEMA_HAS_IfcAdvancedBrep +#define SCHEMA_HAS_IfcAdvancedBrepWithVoids +#define SCHEMA_IfcAdvancedBrepWithVoids_HAS_Voids +#define SCHEMA_HAS_IfcAdvancedFace +#define SCHEMA_HAS_IfcAirTerminal +#define SCHEMA_IfcAirTerminal_HAS_PredefinedType +#define SCHEMA_IfcAirTerminal_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcAirTerminalBox +#define SCHEMA_IfcAirTerminalBox_HAS_PredefinedType +#define SCHEMA_IfcAirTerminalBox_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcAirTerminalBoxType +#define SCHEMA_IfcAirTerminalBoxType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAirTerminalType +#define SCHEMA_IfcAirTerminalType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAirToAirHeatRecovery +#define SCHEMA_IfcAirToAirHeatRecovery_HAS_PredefinedType +#define SCHEMA_IfcAirToAirHeatRecovery_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcAirToAirHeatRecoveryType +#define SCHEMA_IfcAirToAirHeatRecoveryType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAlarm +#define SCHEMA_IfcAlarm_HAS_PredefinedType +#define SCHEMA_IfcAlarm_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcAlarmType +#define SCHEMA_IfcAlarmType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAnnotation +#define SCHEMA_HAS_IfcAnnotationFillArea +#define SCHEMA_IfcAnnotationFillArea_HAS_OuterBoundary +#define SCHEMA_IfcAnnotationFillArea_HAS_InnerBoundaries +#define SCHEMA_IfcAnnotationFillArea_InnerBoundaries_IS_OPTIONAL +#define SCHEMA_HAS_IfcApplication +#define SCHEMA_IfcApplication_HAS_ApplicationDeveloper +#define SCHEMA_IfcApplication_HAS_Version +#define SCHEMA_IfcApplication_HAS_ApplicationFullName +#define SCHEMA_IfcApplication_HAS_ApplicationIdentifier +#define SCHEMA_HAS_IfcAppliedValue +#define SCHEMA_IfcAppliedValue_HAS_Name +#define SCHEMA_IfcAppliedValue_Name_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_Description +#define SCHEMA_IfcAppliedValue_Description_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_AppliedValue +#define SCHEMA_IfcAppliedValue_AppliedValue_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_UnitBasis +#define SCHEMA_IfcAppliedValue_UnitBasis_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_ApplicableDate +#define SCHEMA_IfcAppliedValue_ApplicableDate_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_FixedUntilDate +#define SCHEMA_IfcAppliedValue_FixedUntilDate_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_Category +#define SCHEMA_IfcAppliedValue_Category_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_Condition +#define SCHEMA_IfcAppliedValue_Condition_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_ArithmeticOperator +#define SCHEMA_IfcAppliedValue_ArithmeticOperator_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_Components +#define SCHEMA_IfcAppliedValue_Components_IS_OPTIONAL +#define SCHEMA_HAS_IfcApproval +#define SCHEMA_IfcApproval_HAS_Identifier +#define SCHEMA_IfcApproval_Identifier_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_Name +#define SCHEMA_IfcApproval_Name_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_Description +#define SCHEMA_IfcApproval_Description_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_TimeOfApproval +#define SCHEMA_IfcApproval_TimeOfApproval_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_Status +#define SCHEMA_IfcApproval_Status_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_Level +#define SCHEMA_IfcApproval_Level_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_Qualifier +#define SCHEMA_IfcApproval_Qualifier_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_RequestingApproval +#define SCHEMA_IfcApproval_RequestingApproval_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_GivingApproval +#define SCHEMA_IfcApproval_GivingApproval_IS_OPTIONAL +#define SCHEMA_HAS_IfcApprovalRelationship +#define SCHEMA_IfcApprovalRelationship_HAS_RelatingApproval +#define SCHEMA_IfcApprovalRelationship_HAS_RelatedApprovals +#define SCHEMA_HAS_IfcArbitraryClosedProfileDef +#define SCHEMA_IfcArbitraryClosedProfileDef_HAS_OuterCurve +#define SCHEMA_HAS_IfcArbitraryOpenProfileDef +#define SCHEMA_IfcArbitraryOpenProfileDef_HAS_Curve +#define SCHEMA_HAS_IfcArbitraryProfileDefWithVoids +#define SCHEMA_IfcArbitraryProfileDefWithVoids_HAS_InnerCurves +#define SCHEMA_HAS_IfcAsset +#define SCHEMA_IfcAsset_HAS_Identification +#define SCHEMA_IfcAsset_Identification_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_OriginalValue +#define SCHEMA_IfcAsset_OriginalValue_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_CurrentValue +#define SCHEMA_IfcAsset_CurrentValue_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_TotalReplacementCost +#define SCHEMA_IfcAsset_TotalReplacementCost_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_Owner +#define SCHEMA_IfcAsset_Owner_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_User +#define SCHEMA_IfcAsset_User_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_ResponsiblePerson +#define SCHEMA_IfcAsset_ResponsiblePerson_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_IncorporationDate +#define SCHEMA_IfcAsset_IncorporationDate_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_DepreciatedValue +#define SCHEMA_IfcAsset_DepreciatedValue_IS_OPTIONAL +#define SCHEMA_HAS_IfcAsymmetricIShapeProfileDef +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_BottomFlangeWidth +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_OverallDepth +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_WebThickness +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_BottomFlangeThickness +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_BottomFlangeFilletRadius +#define SCHEMA_IfcAsymmetricIShapeProfileDef_BottomFlangeFilletRadius_IS_OPTIONAL +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_TopFlangeWidth +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_TopFlangeThickness +#define SCHEMA_IfcAsymmetricIShapeProfileDef_TopFlangeThickness_IS_OPTIONAL +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_TopFlangeFilletRadius +#define SCHEMA_IfcAsymmetricIShapeProfileDef_TopFlangeFilletRadius_IS_OPTIONAL +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_BottomFlangeEdgeRadius +#define SCHEMA_IfcAsymmetricIShapeProfileDef_BottomFlangeEdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_BottomFlangeSlope +#define SCHEMA_IfcAsymmetricIShapeProfileDef_BottomFlangeSlope_IS_OPTIONAL +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_TopFlangeEdgeRadius +#define SCHEMA_IfcAsymmetricIShapeProfileDef_TopFlangeEdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_TopFlangeSlope +#define SCHEMA_IfcAsymmetricIShapeProfileDef_TopFlangeSlope_IS_OPTIONAL +#define SCHEMA_HAS_IfcAudioVisualAppliance +#define SCHEMA_IfcAudioVisualAppliance_HAS_PredefinedType +#define SCHEMA_IfcAudioVisualAppliance_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcAudioVisualApplianceType +#define SCHEMA_IfcAudioVisualApplianceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAxis1Placement +#define SCHEMA_IfcAxis1Placement_HAS_Axis +#define SCHEMA_IfcAxis1Placement_Axis_IS_OPTIONAL +#define SCHEMA_HAS_IfcAxis2Placement2D +#define SCHEMA_IfcAxis2Placement2D_HAS_RefDirection +#define SCHEMA_IfcAxis2Placement2D_RefDirection_IS_OPTIONAL +#define SCHEMA_HAS_IfcAxis2Placement3D +#define SCHEMA_IfcAxis2Placement3D_HAS_Axis +#define SCHEMA_IfcAxis2Placement3D_Axis_IS_OPTIONAL +#define SCHEMA_IfcAxis2Placement3D_HAS_RefDirection +#define SCHEMA_IfcAxis2Placement3D_RefDirection_IS_OPTIONAL +#define SCHEMA_HAS_IfcBSplineCurve +#define SCHEMA_IfcBSplineCurve_HAS_Degree +#define SCHEMA_IfcBSplineCurve_HAS_ControlPointsList +#define SCHEMA_IfcBSplineCurve_HAS_CurveForm +#define SCHEMA_IfcBSplineCurve_HAS_ClosedCurve +#define SCHEMA_IfcBSplineCurve_HAS_SelfIntersect +#define SCHEMA_HAS_IfcBSplineCurveWithKnots +#define SCHEMA_IfcBSplineCurveWithKnots_HAS_KnotMultiplicities +#define SCHEMA_IfcBSplineCurveWithKnots_HAS_Knots +#define SCHEMA_IfcBSplineCurveWithKnots_HAS_KnotSpec +#define SCHEMA_HAS_IfcBSplineSurface +#define SCHEMA_IfcBSplineSurface_HAS_UDegree +#define SCHEMA_IfcBSplineSurface_HAS_VDegree +#define SCHEMA_IfcBSplineSurface_HAS_ControlPointsList +#define SCHEMA_IfcBSplineSurface_HAS_SurfaceForm +#define SCHEMA_IfcBSplineSurface_HAS_UClosed +#define SCHEMA_IfcBSplineSurface_HAS_VClosed +#define SCHEMA_IfcBSplineSurface_HAS_SelfIntersect +#define SCHEMA_HAS_IfcBSplineSurfaceWithKnots +#define SCHEMA_IfcBSplineSurfaceWithKnots_HAS_UMultiplicities +#define SCHEMA_IfcBSplineSurfaceWithKnots_HAS_VMultiplicities +#define SCHEMA_IfcBSplineSurfaceWithKnots_HAS_UKnots +#define SCHEMA_IfcBSplineSurfaceWithKnots_HAS_VKnots +#define SCHEMA_IfcBSplineSurfaceWithKnots_HAS_KnotSpec +#define SCHEMA_HAS_IfcBeam +#define SCHEMA_IfcBeam_HAS_PredefinedType +#define SCHEMA_IfcBeam_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcBeamStandardCase +#define SCHEMA_HAS_IfcBeamType +#define SCHEMA_IfcBeamType_HAS_PredefinedType +#define SCHEMA_HAS_IfcBlobTexture +#define SCHEMA_IfcBlobTexture_HAS_RasterFormat +#define SCHEMA_IfcBlobTexture_HAS_RasterCode +#define SCHEMA_HAS_IfcBlock +#define SCHEMA_IfcBlock_HAS_XLength +#define SCHEMA_IfcBlock_HAS_YLength +#define SCHEMA_IfcBlock_HAS_ZLength +#define SCHEMA_HAS_IfcBoiler +#define SCHEMA_IfcBoiler_HAS_PredefinedType +#define SCHEMA_IfcBoiler_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoilerType +#define SCHEMA_IfcBoilerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcBooleanClippingResult +#define SCHEMA_HAS_IfcBooleanResult +#define SCHEMA_IfcBooleanResult_HAS_Operator +#define SCHEMA_IfcBooleanResult_HAS_FirstOperand +#define SCHEMA_IfcBooleanResult_HAS_SecondOperand +#define SCHEMA_HAS_IfcBoundaryCondition +#define SCHEMA_IfcBoundaryCondition_HAS_Name +#define SCHEMA_IfcBoundaryCondition_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoundaryCurve +#define SCHEMA_HAS_IfcBoundaryEdgeCondition +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_TranslationalStiffnessByLengthX +#define SCHEMA_IfcBoundaryEdgeCondition_TranslationalStiffnessByLengthX_IS_OPTIONAL +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_TranslationalStiffnessByLengthY +#define SCHEMA_IfcBoundaryEdgeCondition_TranslationalStiffnessByLengthY_IS_OPTIONAL +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_TranslationalStiffnessByLengthZ +#define SCHEMA_IfcBoundaryEdgeCondition_TranslationalStiffnessByLengthZ_IS_OPTIONAL +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_RotationalStiffnessByLengthX +#define SCHEMA_IfcBoundaryEdgeCondition_RotationalStiffnessByLengthX_IS_OPTIONAL +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_RotationalStiffnessByLengthY +#define SCHEMA_IfcBoundaryEdgeCondition_RotationalStiffnessByLengthY_IS_OPTIONAL +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_RotationalStiffnessByLengthZ +#define SCHEMA_IfcBoundaryEdgeCondition_RotationalStiffnessByLengthZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoundaryFaceCondition +#define SCHEMA_IfcBoundaryFaceCondition_HAS_TranslationalStiffnessByAreaX +#define SCHEMA_IfcBoundaryFaceCondition_TranslationalStiffnessByAreaX_IS_OPTIONAL +#define SCHEMA_IfcBoundaryFaceCondition_HAS_TranslationalStiffnessByAreaY +#define SCHEMA_IfcBoundaryFaceCondition_TranslationalStiffnessByAreaY_IS_OPTIONAL +#define SCHEMA_IfcBoundaryFaceCondition_HAS_TranslationalStiffnessByAreaZ +#define SCHEMA_IfcBoundaryFaceCondition_TranslationalStiffnessByAreaZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoundaryNodeCondition +#define SCHEMA_IfcBoundaryNodeCondition_HAS_TranslationalStiffnessX +#define SCHEMA_IfcBoundaryNodeCondition_TranslationalStiffnessX_IS_OPTIONAL +#define SCHEMA_IfcBoundaryNodeCondition_HAS_TranslationalStiffnessY +#define SCHEMA_IfcBoundaryNodeCondition_TranslationalStiffnessY_IS_OPTIONAL +#define SCHEMA_IfcBoundaryNodeCondition_HAS_TranslationalStiffnessZ +#define SCHEMA_IfcBoundaryNodeCondition_TranslationalStiffnessZ_IS_OPTIONAL +#define SCHEMA_IfcBoundaryNodeCondition_HAS_RotationalStiffnessX +#define SCHEMA_IfcBoundaryNodeCondition_RotationalStiffnessX_IS_OPTIONAL +#define SCHEMA_IfcBoundaryNodeCondition_HAS_RotationalStiffnessY +#define SCHEMA_IfcBoundaryNodeCondition_RotationalStiffnessY_IS_OPTIONAL +#define SCHEMA_IfcBoundaryNodeCondition_HAS_RotationalStiffnessZ +#define SCHEMA_IfcBoundaryNodeCondition_RotationalStiffnessZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoundaryNodeConditionWarping +#define SCHEMA_IfcBoundaryNodeConditionWarping_HAS_WarpingStiffness +#define SCHEMA_IfcBoundaryNodeConditionWarping_WarpingStiffness_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoundedCurve +#define SCHEMA_HAS_IfcBoundedSurface +#define SCHEMA_HAS_IfcBoundingBox +#define SCHEMA_IfcBoundingBox_HAS_Corner +#define SCHEMA_IfcBoundingBox_HAS_XDim +#define SCHEMA_IfcBoundingBox_HAS_YDim +#define SCHEMA_IfcBoundingBox_HAS_ZDim +#define SCHEMA_HAS_IfcBoxedHalfSpace +#define SCHEMA_IfcBoxedHalfSpace_HAS_Enclosure +#define SCHEMA_HAS_IfcBuilding +#define SCHEMA_IfcBuilding_HAS_ElevationOfRefHeight +#define SCHEMA_IfcBuilding_ElevationOfRefHeight_IS_OPTIONAL +#define SCHEMA_IfcBuilding_HAS_ElevationOfTerrain +#define SCHEMA_IfcBuilding_ElevationOfTerrain_IS_OPTIONAL +#define SCHEMA_IfcBuilding_HAS_BuildingAddress +#define SCHEMA_IfcBuilding_BuildingAddress_IS_OPTIONAL +#define SCHEMA_HAS_IfcBuildingElement +#define SCHEMA_HAS_IfcBuildingElementPart +#define SCHEMA_IfcBuildingElementPart_HAS_PredefinedType +#define SCHEMA_IfcBuildingElementPart_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcBuildingElementPartType +#define SCHEMA_IfcBuildingElementPartType_HAS_PredefinedType +#define SCHEMA_HAS_IfcBuildingElementProxy +#define SCHEMA_IfcBuildingElementProxy_HAS_PredefinedType +#define SCHEMA_IfcBuildingElementProxy_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcBuildingElementProxyType +#define SCHEMA_IfcBuildingElementProxyType_HAS_PredefinedType +#define SCHEMA_HAS_IfcBuildingElementType +#define SCHEMA_HAS_IfcBuildingStorey +#define SCHEMA_IfcBuildingStorey_HAS_Elevation +#define SCHEMA_IfcBuildingStorey_Elevation_IS_OPTIONAL +#define SCHEMA_HAS_IfcBuildingSystem +#define SCHEMA_IfcBuildingSystem_HAS_PredefinedType +#define SCHEMA_IfcBuildingSystem_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcBuildingSystem_HAS_LongName +#define SCHEMA_IfcBuildingSystem_LongName_IS_OPTIONAL +#define SCHEMA_HAS_IfcBurner +#define SCHEMA_IfcBurner_HAS_PredefinedType +#define SCHEMA_IfcBurner_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcBurnerType +#define SCHEMA_IfcBurnerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCShapeProfileDef +#define SCHEMA_IfcCShapeProfileDef_HAS_Depth +#define SCHEMA_IfcCShapeProfileDef_HAS_Width +#define SCHEMA_IfcCShapeProfileDef_HAS_WallThickness +#define SCHEMA_IfcCShapeProfileDef_HAS_Girth +#define SCHEMA_IfcCShapeProfileDef_HAS_InternalFilletRadius +#define SCHEMA_IfcCShapeProfileDef_InternalFilletRadius_IS_OPTIONAL +#define SCHEMA_HAS_IfcCableCarrierFitting +#define SCHEMA_IfcCableCarrierFitting_HAS_PredefinedType +#define SCHEMA_IfcCableCarrierFitting_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCableCarrierFittingType +#define SCHEMA_IfcCableCarrierFittingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCableCarrierSegment +#define SCHEMA_IfcCableCarrierSegment_HAS_PredefinedType +#define SCHEMA_IfcCableCarrierSegment_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCableCarrierSegmentType +#define SCHEMA_IfcCableCarrierSegmentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCableFitting +#define SCHEMA_IfcCableFitting_HAS_PredefinedType +#define SCHEMA_IfcCableFitting_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCableFittingType +#define SCHEMA_IfcCableFittingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCableSegment +#define SCHEMA_IfcCableSegment_HAS_PredefinedType +#define SCHEMA_IfcCableSegment_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCableSegmentType +#define SCHEMA_IfcCableSegmentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCartesianPoint +#define SCHEMA_IfcCartesianPoint_HAS_Coordinates +#define SCHEMA_HAS_IfcCartesianPointList +#define SCHEMA_HAS_IfcCartesianPointList2D +#define SCHEMA_IfcCartesianPointList2D_HAS_CoordList +#define SCHEMA_HAS_IfcCartesianPointList3D +#define SCHEMA_IfcCartesianPointList3D_HAS_CoordList +#define SCHEMA_HAS_IfcCartesianTransformationOperator +#define SCHEMA_IfcCartesianTransformationOperator_HAS_Axis1 +#define SCHEMA_IfcCartesianTransformationOperator_Axis1_IS_OPTIONAL +#define SCHEMA_IfcCartesianTransformationOperator_HAS_Axis2 +#define SCHEMA_IfcCartesianTransformationOperator_Axis2_IS_OPTIONAL +#define SCHEMA_IfcCartesianTransformationOperator_HAS_LocalOrigin +#define SCHEMA_IfcCartesianTransformationOperator_HAS_Scale +#define SCHEMA_IfcCartesianTransformationOperator_Scale_IS_OPTIONAL +#define SCHEMA_HAS_IfcCartesianTransformationOperator2D +#define SCHEMA_HAS_IfcCartesianTransformationOperator2DnonUniform +#define SCHEMA_IfcCartesianTransformationOperator2DnonUniform_HAS_Scale2 +#define SCHEMA_IfcCartesianTransformationOperator2DnonUniform_Scale2_IS_OPTIONAL +#define SCHEMA_HAS_IfcCartesianTransformationOperator3D +#define SCHEMA_IfcCartesianTransformationOperator3D_HAS_Axis3 +#define SCHEMA_IfcCartesianTransformationOperator3D_Axis3_IS_OPTIONAL +#define SCHEMA_HAS_IfcCartesianTransformationOperator3DnonUniform +#define SCHEMA_IfcCartesianTransformationOperator3DnonUniform_HAS_Scale2 +#define SCHEMA_IfcCartesianTransformationOperator3DnonUniform_Scale2_IS_OPTIONAL +#define SCHEMA_IfcCartesianTransformationOperator3DnonUniform_HAS_Scale3 +#define SCHEMA_IfcCartesianTransformationOperator3DnonUniform_Scale3_IS_OPTIONAL +#define SCHEMA_HAS_IfcCenterLineProfileDef +#define SCHEMA_IfcCenterLineProfileDef_HAS_Thickness +#define SCHEMA_HAS_IfcChiller +#define SCHEMA_IfcChiller_HAS_PredefinedType +#define SCHEMA_IfcChiller_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcChillerType +#define SCHEMA_IfcChillerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcChimney +#define SCHEMA_IfcChimney_HAS_PredefinedType +#define SCHEMA_IfcChimney_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcChimneyType +#define SCHEMA_IfcChimneyType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCircle +#define SCHEMA_IfcCircle_HAS_Radius +#define SCHEMA_HAS_IfcCircleHollowProfileDef +#define SCHEMA_IfcCircleHollowProfileDef_HAS_WallThickness +#define SCHEMA_HAS_IfcCircleProfileDef +#define SCHEMA_IfcCircleProfileDef_HAS_Radius +#define SCHEMA_HAS_IfcCivilElement +#define SCHEMA_HAS_IfcCivilElementType +#define SCHEMA_HAS_IfcClassification +#define SCHEMA_IfcClassification_HAS_Source +#define SCHEMA_IfcClassification_Source_IS_OPTIONAL +#define SCHEMA_IfcClassification_HAS_Edition +#define SCHEMA_IfcClassification_Edition_IS_OPTIONAL +#define SCHEMA_IfcClassification_HAS_EditionDate +#define SCHEMA_IfcClassification_EditionDate_IS_OPTIONAL +#define SCHEMA_IfcClassification_HAS_Name +#define SCHEMA_IfcClassification_HAS_Description +#define SCHEMA_IfcClassification_Description_IS_OPTIONAL +#define SCHEMA_IfcClassification_HAS_Location +#define SCHEMA_IfcClassification_Location_IS_OPTIONAL +#define SCHEMA_IfcClassification_HAS_ReferenceTokens +#define SCHEMA_IfcClassification_ReferenceTokens_IS_OPTIONAL +#define SCHEMA_HAS_IfcClassificationReference +#define SCHEMA_IfcClassificationReference_HAS_ReferencedSource +#define SCHEMA_IfcClassificationReference_ReferencedSource_IS_OPTIONAL +#define SCHEMA_IfcClassificationReference_HAS_Description +#define SCHEMA_IfcClassificationReference_Description_IS_OPTIONAL +#define SCHEMA_IfcClassificationReference_HAS_Sort +#define SCHEMA_IfcClassificationReference_Sort_IS_OPTIONAL +#define SCHEMA_HAS_IfcClosedShell +#define SCHEMA_HAS_IfcCoil +#define SCHEMA_IfcCoil_HAS_PredefinedType +#define SCHEMA_IfcCoil_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCoilType +#define SCHEMA_IfcCoilType_HAS_PredefinedType +#define SCHEMA_HAS_IfcColourRgb +#define SCHEMA_IfcColourRgb_HAS_Red +#define SCHEMA_IfcColourRgb_HAS_Green +#define SCHEMA_IfcColourRgb_HAS_Blue +#define SCHEMA_HAS_IfcColourRgbList +#define SCHEMA_IfcColourRgbList_HAS_ColourList +#define SCHEMA_HAS_IfcColourSpecification +#define SCHEMA_IfcColourSpecification_HAS_Name +#define SCHEMA_IfcColourSpecification_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcColumn +#define SCHEMA_IfcColumn_HAS_PredefinedType +#define SCHEMA_IfcColumn_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcColumnStandardCase +#define SCHEMA_HAS_IfcColumnType +#define SCHEMA_IfcColumnType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCommunicationsAppliance +#define SCHEMA_IfcCommunicationsAppliance_HAS_PredefinedType +#define SCHEMA_IfcCommunicationsAppliance_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCommunicationsApplianceType +#define SCHEMA_IfcCommunicationsApplianceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcComplexProperty +#define SCHEMA_IfcComplexProperty_HAS_UsageName +#define SCHEMA_IfcComplexProperty_HAS_HasProperties +#define SCHEMA_HAS_IfcComplexPropertyTemplate +#define SCHEMA_IfcComplexPropertyTemplate_HAS_UsageName +#define SCHEMA_IfcComplexPropertyTemplate_UsageName_IS_OPTIONAL +#define SCHEMA_IfcComplexPropertyTemplate_HAS_TemplateType +#define SCHEMA_IfcComplexPropertyTemplate_TemplateType_IS_OPTIONAL +#define SCHEMA_IfcComplexPropertyTemplate_HAS_HasPropertyTemplates +#define SCHEMA_IfcComplexPropertyTemplate_HasPropertyTemplates_IS_OPTIONAL +#define SCHEMA_HAS_IfcCompositeCurve +#define SCHEMA_IfcCompositeCurve_HAS_Segments +#define SCHEMA_IfcCompositeCurve_HAS_SelfIntersect +#define SCHEMA_HAS_IfcCompositeCurveOnSurface +#define SCHEMA_HAS_IfcCompositeCurveSegment +#define SCHEMA_IfcCompositeCurveSegment_HAS_Transition +#define SCHEMA_IfcCompositeCurveSegment_HAS_SameSense +#define SCHEMA_IfcCompositeCurveSegment_HAS_ParentCurve +#define SCHEMA_HAS_IfcCompositeProfileDef +#define SCHEMA_IfcCompositeProfileDef_HAS_Profiles +#define SCHEMA_IfcCompositeProfileDef_HAS_Label +#define SCHEMA_IfcCompositeProfileDef_Label_IS_OPTIONAL +#define SCHEMA_HAS_IfcCompressor +#define SCHEMA_IfcCompressor_HAS_PredefinedType +#define SCHEMA_IfcCompressor_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCompressorType +#define SCHEMA_IfcCompressorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCondenser +#define SCHEMA_IfcCondenser_HAS_PredefinedType +#define SCHEMA_IfcCondenser_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCondenserType +#define SCHEMA_IfcCondenserType_HAS_PredefinedType +#define SCHEMA_HAS_IfcConic +#define SCHEMA_IfcConic_HAS_Position +#define SCHEMA_HAS_IfcConnectedFaceSet +#define SCHEMA_IfcConnectedFaceSet_HAS_CfsFaces +#define SCHEMA_HAS_IfcConnectionCurveGeometry +#define SCHEMA_IfcConnectionCurveGeometry_HAS_CurveOnRelatingElement +#define SCHEMA_IfcConnectionCurveGeometry_HAS_CurveOnRelatedElement +#define SCHEMA_IfcConnectionCurveGeometry_CurveOnRelatedElement_IS_OPTIONAL +#define SCHEMA_HAS_IfcConnectionGeometry +#define SCHEMA_HAS_IfcConnectionPointEccentricity +#define SCHEMA_IfcConnectionPointEccentricity_HAS_EccentricityInX +#define SCHEMA_IfcConnectionPointEccentricity_EccentricityInX_IS_OPTIONAL +#define SCHEMA_IfcConnectionPointEccentricity_HAS_EccentricityInY +#define SCHEMA_IfcConnectionPointEccentricity_EccentricityInY_IS_OPTIONAL +#define SCHEMA_IfcConnectionPointEccentricity_HAS_EccentricityInZ +#define SCHEMA_IfcConnectionPointEccentricity_EccentricityInZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcConnectionPointGeometry +#define SCHEMA_IfcConnectionPointGeometry_HAS_PointOnRelatingElement +#define SCHEMA_IfcConnectionPointGeometry_HAS_PointOnRelatedElement +#define SCHEMA_IfcConnectionPointGeometry_PointOnRelatedElement_IS_OPTIONAL +#define SCHEMA_HAS_IfcConnectionSurfaceGeometry +#define SCHEMA_IfcConnectionSurfaceGeometry_HAS_SurfaceOnRelatingElement +#define SCHEMA_IfcConnectionSurfaceGeometry_HAS_SurfaceOnRelatedElement +#define SCHEMA_IfcConnectionSurfaceGeometry_SurfaceOnRelatedElement_IS_OPTIONAL +#define SCHEMA_HAS_IfcConnectionVolumeGeometry +#define SCHEMA_IfcConnectionVolumeGeometry_HAS_VolumeOnRelatingElement +#define SCHEMA_IfcConnectionVolumeGeometry_HAS_VolumeOnRelatedElement +#define SCHEMA_IfcConnectionVolumeGeometry_VolumeOnRelatedElement_IS_OPTIONAL +#define SCHEMA_HAS_IfcConstraint +#define SCHEMA_IfcConstraint_HAS_Name +#define SCHEMA_IfcConstraint_HAS_Description +#define SCHEMA_IfcConstraint_Description_IS_OPTIONAL +#define SCHEMA_IfcConstraint_HAS_ConstraintGrade +#define SCHEMA_IfcConstraint_HAS_ConstraintSource +#define SCHEMA_IfcConstraint_ConstraintSource_IS_OPTIONAL +#define SCHEMA_IfcConstraint_HAS_CreatingActor +#define SCHEMA_IfcConstraint_CreatingActor_IS_OPTIONAL +#define SCHEMA_IfcConstraint_HAS_CreationTime +#define SCHEMA_IfcConstraint_CreationTime_IS_OPTIONAL +#define SCHEMA_IfcConstraint_HAS_UserDefinedGrade +#define SCHEMA_IfcConstraint_UserDefinedGrade_IS_OPTIONAL +#define SCHEMA_HAS_IfcConstructionEquipmentResource +#define SCHEMA_IfcConstructionEquipmentResource_HAS_PredefinedType +#define SCHEMA_IfcConstructionEquipmentResource_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcConstructionEquipmentResourceType +#define SCHEMA_IfcConstructionEquipmentResourceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcConstructionMaterialResource +#define SCHEMA_IfcConstructionMaterialResource_HAS_PredefinedType +#define SCHEMA_IfcConstructionMaterialResource_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcConstructionMaterialResourceType +#define SCHEMA_IfcConstructionMaterialResourceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcConstructionProductResource +#define SCHEMA_IfcConstructionProductResource_HAS_PredefinedType +#define SCHEMA_IfcConstructionProductResource_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcConstructionProductResourceType +#define SCHEMA_IfcConstructionProductResourceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcConstructionResource +#define SCHEMA_IfcConstructionResource_HAS_Usage +#define SCHEMA_IfcConstructionResource_Usage_IS_OPTIONAL +#define SCHEMA_IfcConstructionResource_HAS_BaseCosts +#define SCHEMA_IfcConstructionResource_BaseCosts_IS_OPTIONAL +#define SCHEMA_IfcConstructionResource_HAS_BaseQuantity +#define SCHEMA_IfcConstructionResource_BaseQuantity_IS_OPTIONAL +#define SCHEMA_HAS_IfcConstructionResourceType +#define SCHEMA_IfcConstructionResourceType_HAS_BaseCosts +#define SCHEMA_IfcConstructionResourceType_BaseCosts_IS_OPTIONAL +#define SCHEMA_IfcConstructionResourceType_HAS_BaseQuantity +#define SCHEMA_IfcConstructionResourceType_BaseQuantity_IS_OPTIONAL +#define SCHEMA_HAS_IfcContext +#define SCHEMA_IfcContext_HAS_ObjectType +#define SCHEMA_IfcContext_ObjectType_IS_OPTIONAL +#define SCHEMA_IfcContext_HAS_LongName +#define SCHEMA_IfcContext_LongName_IS_OPTIONAL +#define SCHEMA_IfcContext_HAS_Phase +#define SCHEMA_IfcContext_Phase_IS_OPTIONAL +#define SCHEMA_IfcContext_HAS_RepresentationContexts +#define SCHEMA_IfcContext_RepresentationContexts_IS_OPTIONAL +#define SCHEMA_IfcContext_HAS_UnitsInContext +#define SCHEMA_IfcContext_UnitsInContext_IS_OPTIONAL +#define SCHEMA_HAS_IfcContextDependentUnit +#define SCHEMA_IfcContextDependentUnit_HAS_Name +#define SCHEMA_HAS_IfcControl +#define SCHEMA_IfcControl_HAS_Identification +#define SCHEMA_IfcControl_Identification_IS_OPTIONAL +#define SCHEMA_HAS_IfcController +#define SCHEMA_IfcController_HAS_PredefinedType +#define SCHEMA_IfcController_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcControllerType +#define SCHEMA_IfcControllerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcConversionBasedUnit +#define SCHEMA_IfcConversionBasedUnit_HAS_Name +#define SCHEMA_IfcConversionBasedUnit_HAS_ConversionFactor +#define SCHEMA_HAS_IfcConversionBasedUnitWithOffset +#define SCHEMA_IfcConversionBasedUnitWithOffset_HAS_ConversionOffset +#define SCHEMA_HAS_IfcCooledBeam +#define SCHEMA_IfcCooledBeam_HAS_PredefinedType +#define SCHEMA_IfcCooledBeam_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCooledBeamType +#define SCHEMA_IfcCooledBeamType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCoolingTower +#define SCHEMA_IfcCoolingTower_HAS_PredefinedType +#define SCHEMA_IfcCoolingTower_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCoolingTowerType +#define SCHEMA_IfcCoolingTowerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCoordinateOperation +#define SCHEMA_IfcCoordinateOperation_HAS_SourceCRS +#define SCHEMA_IfcCoordinateOperation_HAS_TargetCRS +#define SCHEMA_HAS_IfcCoordinateReferenceSystem +#define SCHEMA_IfcCoordinateReferenceSystem_HAS_Name +#define SCHEMA_IfcCoordinateReferenceSystem_HAS_Description +#define SCHEMA_IfcCoordinateReferenceSystem_Description_IS_OPTIONAL +#define SCHEMA_IfcCoordinateReferenceSystem_HAS_GeodeticDatum +#define SCHEMA_IfcCoordinateReferenceSystem_GeodeticDatum_IS_OPTIONAL +#define SCHEMA_IfcCoordinateReferenceSystem_HAS_VerticalDatum +#define SCHEMA_IfcCoordinateReferenceSystem_VerticalDatum_IS_OPTIONAL +#define SCHEMA_HAS_IfcCostItem +#define SCHEMA_IfcCostItem_HAS_PredefinedType +#define SCHEMA_IfcCostItem_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcCostItem_HAS_CostValues +#define SCHEMA_IfcCostItem_CostValues_IS_OPTIONAL +#define SCHEMA_IfcCostItem_HAS_CostQuantities +#define SCHEMA_IfcCostItem_CostQuantities_IS_OPTIONAL +#define SCHEMA_HAS_IfcCostSchedule +#define SCHEMA_IfcCostSchedule_HAS_PredefinedType +#define SCHEMA_IfcCostSchedule_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcCostSchedule_HAS_Status +#define SCHEMA_IfcCostSchedule_Status_IS_OPTIONAL +#define SCHEMA_IfcCostSchedule_HAS_SubmittedOn +#define SCHEMA_IfcCostSchedule_SubmittedOn_IS_OPTIONAL +#define SCHEMA_IfcCostSchedule_HAS_UpdateDate +#define SCHEMA_IfcCostSchedule_UpdateDate_IS_OPTIONAL +#define SCHEMA_HAS_IfcCostValue +#define SCHEMA_HAS_IfcCovering +#define SCHEMA_IfcCovering_HAS_PredefinedType +#define SCHEMA_IfcCovering_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCoveringType +#define SCHEMA_IfcCoveringType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCrewResource +#define SCHEMA_IfcCrewResource_HAS_PredefinedType +#define SCHEMA_IfcCrewResource_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCrewResourceType +#define SCHEMA_IfcCrewResourceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCsgPrimitive3D +#define SCHEMA_IfcCsgPrimitive3D_HAS_Position +#define SCHEMA_HAS_IfcCsgSolid +#define SCHEMA_IfcCsgSolid_HAS_TreeRootExpression +#define SCHEMA_HAS_IfcCurrencyRelationship +#define SCHEMA_IfcCurrencyRelationship_HAS_RelatingMonetaryUnit +#define SCHEMA_IfcCurrencyRelationship_HAS_RelatedMonetaryUnit +#define SCHEMA_IfcCurrencyRelationship_HAS_ExchangeRate +#define SCHEMA_IfcCurrencyRelationship_HAS_RateDateTime +#define SCHEMA_IfcCurrencyRelationship_RateDateTime_IS_OPTIONAL +#define SCHEMA_IfcCurrencyRelationship_HAS_RateSource +#define SCHEMA_IfcCurrencyRelationship_RateSource_IS_OPTIONAL +#define SCHEMA_HAS_IfcCurtainWall +#define SCHEMA_IfcCurtainWall_HAS_PredefinedType +#define SCHEMA_IfcCurtainWall_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCurtainWallType +#define SCHEMA_IfcCurtainWallType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCurve +#define SCHEMA_HAS_IfcCurveBoundedPlane +#define SCHEMA_IfcCurveBoundedPlane_HAS_BasisSurface +#define SCHEMA_IfcCurveBoundedPlane_HAS_OuterBoundary +#define SCHEMA_IfcCurveBoundedPlane_HAS_InnerBoundaries +#define SCHEMA_HAS_IfcCurveBoundedSurface +#define SCHEMA_IfcCurveBoundedSurface_HAS_BasisSurface +#define SCHEMA_IfcCurveBoundedSurface_HAS_Boundaries +#define SCHEMA_IfcCurveBoundedSurface_HAS_ImplicitOuter +#define SCHEMA_HAS_IfcCurveStyle +#define SCHEMA_IfcCurveStyle_HAS_CurveFont +#define SCHEMA_IfcCurveStyle_CurveFont_IS_OPTIONAL +#define SCHEMA_IfcCurveStyle_HAS_CurveWidth +#define SCHEMA_IfcCurveStyle_CurveWidth_IS_OPTIONAL +#define SCHEMA_IfcCurveStyle_HAS_CurveColour +#define SCHEMA_IfcCurveStyle_CurveColour_IS_OPTIONAL +#define SCHEMA_IfcCurveStyle_HAS_ModelOrDraughting +#define SCHEMA_IfcCurveStyle_ModelOrDraughting_IS_OPTIONAL +#define SCHEMA_HAS_IfcCurveStyleFont +#define SCHEMA_IfcCurveStyleFont_HAS_Name +#define SCHEMA_IfcCurveStyleFont_Name_IS_OPTIONAL +#define SCHEMA_IfcCurveStyleFont_HAS_PatternList +#define SCHEMA_HAS_IfcCurveStyleFontAndScaling +#define SCHEMA_IfcCurveStyleFontAndScaling_HAS_Name +#define SCHEMA_IfcCurveStyleFontAndScaling_Name_IS_OPTIONAL +#define SCHEMA_IfcCurveStyleFontAndScaling_HAS_CurveFont +#define SCHEMA_IfcCurveStyleFontAndScaling_HAS_CurveFontScaling +#define SCHEMA_HAS_IfcCurveStyleFontPattern +#define SCHEMA_IfcCurveStyleFontPattern_HAS_VisibleSegmentLength +#define SCHEMA_IfcCurveStyleFontPattern_HAS_InvisibleSegmentLength +#define SCHEMA_HAS_IfcCylindricalSurface +#define SCHEMA_IfcCylindricalSurface_HAS_Radius +#define SCHEMA_HAS_IfcDamper +#define SCHEMA_IfcDamper_HAS_PredefinedType +#define SCHEMA_IfcDamper_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDamperType +#define SCHEMA_IfcDamperType_HAS_PredefinedType +#define SCHEMA_HAS_IfcDerivedProfileDef +#define SCHEMA_IfcDerivedProfileDef_HAS_ParentProfile +#define SCHEMA_IfcDerivedProfileDef_HAS_Operator +#define SCHEMA_IfcDerivedProfileDef_HAS_Label +#define SCHEMA_IfcDerivedProfileDef_Label_IS_OPTIONAL +#define SCHEMA_HAS_IfcDerivedUnit +#define SCHEMA_IfcDerivedUnit_HAS_Elements +#define SCHEMA_IfcDerivedUnit_HAS_UnitType +#define SCHEMA_IfcDerivedUnit_HAS_UserDefinedType +#define SCHEMA_IfcDerivedUnit_UserDefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDerivedUnitElement +#define SCHEMA_IfcDerivedUnitElement_HAS_Unit +#define SCHEMA_IfcDerivedUnitElement_HAS_Exponent +#define SCHEMA_HAS_IfcDimensionalExponents +#define SCHEMA_IfcDimensionalExponents_HAS_LengthExponent +#define SCHEMA_IfcDimensionalExponents_HAS_MassExponent +#define SCHEMA_IfcDimensionalExponents_HAS_TimeExponent +#define SCHEMA_IfcDimensionalExponents_HAS_ElectricCurrentExponent +#define SCHEMA_IfcDimensionalExponents_HAS_ThermodynamicTemperatureExponent +#define SCHEMA_IfcDimensionalExponents_HAS_AmountOfSubstanceExponent +#define SCHEMA_IfcDimensionalExponents_HAS_LuminousIntensityExponent +#define SCHEMA_HAS_IfcDirection +#define SCHEMA_IfcDirection_HAS_DirectionRatios +#define SCHEMA_HAS_IfcDiscreteAccessory +#define SCHEMA_IfcDiscreteAccessory_HAS_PredefinedType +#define SCHEMA_IfcDiscreteAccessory_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDiscreteAccessoryType +#define SCHEMA_IfcDiscreteAccessoryType_HAS_PredefinedType +#define SCHEMA_HAS_IfcDistributionChamberElement +#define SCHEMA_IfcDistributionChamberElement_HAS_PredefinedType +#define SCHEMA_IfcDistributionChamberElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDistributionChamberElementType +#define SCHEMA_IfcDistributionChamberElementType_HAS_PredefinedType +#define SCHEMA_HAS_IfcDistributionCircuit +#define SCHEMA_HAS_IfcDistributionControlElement +#define SCHEMA_HAS_IfcDistributionControlElementType +#define SCHEMA_HAS_IfcDistributionElement +#define SCHEMA_HAS_IfcDistributionElementType +#define SCHEMA_HAS_IfcDistributionFlowElement +#define SCHEMA_HAS_IfcDistributionFlowElementType +#define SCHEMA_HAS_IfcDistributionPort +#define SCHEMA_IfcDistributionPort_HAS_FlowDirection +#define SCHEMA_IfcDistributionPort_FlowDirection_IS_OPTIONAL +#define SCHEMA_IfcDistributionPort_HAS_PredefinedType +#define SCHEMA_IfcDistributionPort_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcDistributionPort_HAS_SystemType +#define SCHEMA_IfcDistributionPort_SystemType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDistributionSystem +#define SCHEMA_IfcDistributionSystem_HAS_LongName +#define SCHEMA_IfcDistributionSystem_LongName_IS_OPTIONAL +#define SCHEMA_IfcDistributionSystem_HAS_PredefinedType +#define SCHEMA_IfcDistributionSystem_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDocumentInformation +#define SCHEMA_IfcDocumentInformation_HAS_Identification +#define SCHEMA_IfcDocumentInformation_HAS_Name +#define SCHEMA_IfcDocumentInformation_HAS_Description +#define SCHEMA_IfcDocumentInformation_Description_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Location +#define SCHEMA_IfcDocumentInformation_Location_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Purpose +#define SCHEMA_IfcDocumentInformation_Purpose_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_IntendedUse +#define SCHEMA_IfcDocumentInformation_IntendedUse_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Scope +#define SCHEMA_IfcDocumentInformation_Scope_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Revision +#define SCHEMA_IfcDocumentInformation_Revision_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_DocumentOwner +#define SCHEMA_IfcDocumentInformation_DocumentOwner_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Editors +#define SCHEMA_IfcDocumentInformation_Editors_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_CreationTime +#define SCHEMA_IfcDocumentInformation_CreationTime_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_LastRevisionTime +#define SCHEMA_IfcDocumentInformation_LastRevisionTime_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_ElectronicFormat +#define SCHEMA_IfcDocumentInformation_ElectronicFormat_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_ValidFrom +#define SCHEMA_IfcDocumentInformation_ValidFrom_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_ValidUntil +#define SCHEMA_IfcDocumentInformation_ValidUntil_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Confidentiality +#define SCHEMA_IfcDocumentInformation_Confidentiality_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Status +#define SCHEMA_IfcDocumentInformation_Status_IS_OPTIONAL +#define SCHEMA_HAS_IfcDocumentInformationRelationship +#define SCHEMA_IfcDocumentInformationRelationship_HAS_RelatingDocument +#define SCHEMA_IfcDocumentInformationRelationship_HAS_RelatedDocuments +#define SCHEMA_IfcDocumentInformationRelationship_HAS_RelationshipType +#define SCHEMA_IfcDocumentInformationRelationship_RelationshipType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDocumentReference +#define SCHEMA_IfcDocumentReference_HAS_Description +#define SCHEMA_IfcDocumentReference_Description_IS_OPTIONAL +#define SCHEMA_IfcDocumentReference_HAS_ReferencedDocument +#define SCHEMA_IfcDocumentReference_ReferencedDocument_IS_OPTIONAL +#define SCHEMA_HAS_IfcDoor +#define SCHEMA_IfcDoor_HAS_OverallHeight +#define SCHEMA_IfcDoor_OverallHeight_IS_OPTIONAL +#define SCHEMA_IfcDoor_HAS_OverallWidth +#define SCHEMA_IfcDoor_OverallWidth_IS_OPTIONAL +#define SCHEMA_IfcDoor_HAS_PredefinedType +#define SCHEMA_IfcDoor_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcDoor_HAS_OperationType +#define SCHEMA_IfcDoor_OperationType_IS_OPTIONAL +#define SCHEMA_IfcDoor_HAS_UserDefinedOperationType +#define SCHEMA_IfcDoor_UserDefinedOperationType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDoorLiningProperties +#define SCHEMA_IfcDoorLiningProperties_HAS_LiningDepth +#define SCHEMA_IfcDoorLiningProperties_LiningDepth_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_LiningThickness +#define SCHEMA_IfcDoorLiningProperties_LiningThickness_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_ThresholdDepth +#define SCHEMA_IfcDoorLiningProperties_ThresholdDepth_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_ThresholdThickness +#define SCHEMA_IfcDoorLiningProperties_ThresholdThickness_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_TransomThickness +#define SCHEMA_IfcDoorLiningProperties_TransomThickness_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_TransomOffset +#define SCHEMA_IfcDoorLiningProperties_TransomOffset_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_LiningOffset +#define SCHEMA_IfcDoorLiningProperties_LiningOffset_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_ThresholdOffset +#define SCHEMA_IfcDoorLiningProperties_ThresholdOffset_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_CasingThickness +#define SCHEMA_IfcDoorLiningProperties_CasingThickness_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_CasingDepth +#define SCHEMA_IfcDoorLiningProperties_CasingDepth_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_ShapeAspectStyle +#define SCHEMA_IfcDoorLiningProperties_ShapeAspectStyle_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_LiningToPanelOffsetX +#define SCHEMA_IfcDoorLiningProperties_LiningToPanelOffsetX_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_LiningToPanelOffsetY +#define SCHEMA_IfcDoorLiningProperties_LiningToPanelOffsetY_IS_OPTIONAL +#define SCHEMA_HAS_IfcDoorPanelProperties +#define SCHEMA_IfcDoorPanelProperties_HAS_PanelDepth +#define SCHEMA_IfcDoorPanelProperties_PanelDepth_IS_OPTIONAL +#define SCHEMA_IfcDoorPanelProperties_HAS_PanelOperation +#define SCHEMA_IfcDoorPanelProperties_HAS_PanelWidth +#define SCHEMA_IfcDoorPanelProperties_PanelWidth_IS_OPTIONAL +#define SCHEMA_IfcDoorPanelProperties_HAS_PanelPosition +#define SCHEMA_IfcDoorPanelProperties_HAS_ShapeAspectStyle +#define SCHEMA_IfcDoorPanelProperties_ShapeAspectStyle_IS_OPTIONAL +#define SCHEMA_HAS_IfcDoorStandardCase +#define SCHEMA_HAS_IfcDoorStyle +#define SCHEMA_IfcDoorStyle_HAS_OperationType +#define SCHEMA_IfcDoorStyle_HAS_ConstructionType +#define SCHEMA_IfcDoorStyle_HAS_ParameterTakesPrecedence +#define SCHEMA_IfcDoorStyle_HAS_Sizeable +#define SCHEMA_HAS_IfcDoorType +#define SCHEMA_IfcDoorType_HAS_PredefinedType +#define SCHEMA_IfcDoorType_HAS_OperationType +#define SCHEMA_IfcDoorType_HAS_ParameterTakesPrecedence +#define SCHEMA_IfcDoorType_ParameterTakesPrecedence_IS_OPTIONAL +#define SCHEMA_IfcDoorType_HAS_UserDefinedOperationType +#define SCHEMA_IfcDoorType_UserDefinedOperationType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDraughtingPreDefinedColour +#define SCHEMA_HAS_IfcDraughtingPreDefinedCurveFont +#define SCHEMA_HAS_IfcDuctFitting +#define SCHEMA_IfcDuctFitting_HAS_PredefinedType +#define SCHEMA_IfcDuctFitting_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDuctFittingType +#define SCHEMA_IfcDuctFittingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcDuctSegment +#define SCHEMA_IfcDuctSegment_HAS_PredefinedType +#define SCHEMA_IfcDuctSegment_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDuctSegmentType +#define SCHEMA_IfcDuctSegmentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcDuctSilencer +#define SCHEMA_IfcDuctSilencer_HAS_PredefinedType +#define SCHEMA_IfcDuctSilencer_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDuctSilencerType +#define SCHEMA_IfcDuctSilencerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcEdge +#define SCHEMA_IfcEdge_HAS_EdgeStart +#define SCHEMA_IfcEdge_HAS_EdgeEnd +#define SCHEMA_HAS_IfcEdgeCurve +#define SCHEMA_IfcEdgeCurve_HAS_EdgeGeometry +#define SCHEMA_IfcEdgeCurve_HAS_SameSense +#define SCHEMA_HAS_IfcEdgeLoop +#define SCHEMA_IfcEdgeLoop_HAS_EdgeList +#define SCHEMA_HAS_IfcElectricAppliance +#define SCHEMA_IfcElectricAppliance_HAS_PredefinedType +#define SCHEMA_IfcElectricAppliance_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElectricApplianceType +#define SCHEMA_IfcElectricApplianceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElectricDistributionBoard +#define SCHEMA_IfcElectricDistributionBoard_HAS_PredefinedType +#define SCHEMA_IfcElectricDistributionBoard_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElectricDistributionBoardType +#define SCHEMA_IfcElectricDistributionBoardType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElectricFlowStorageDevice +#define SCHEMA_IfcElectricFlowStorageDevice_HAS_PredefinedType +#define SCHEMA_IfcElectricFlowStorageDevice_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElectricFlowStorageDeviceType +#define SCHEMA_IfcElectricFlowStorageDeviceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElectricGenerator +#define SCHEMA_IfcElectricGenerator_HAS_PredefinedType +#define SCHEMA_IfcElectricGenerator_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElectricGeneratorType +#define SCHEMA_IfcElectricGeneratorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElectricMotor +#define SCHEMA_IfcElectricMotor_HAS_PredefinedType +#define SCHEMA_IfcElectricMotor_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElectricMotorType +#define SCHEMA_IfcElectricMotorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElectricTimeControl +#define SCHEMA_IfcElectricTimeControl_HAS_PredefinedType +#define SCHEMA_IfcElectricTimeControl_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElectricTimeControlType +#define SCHEMA_IfcElectricTimeControlType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElement +#define SCHEMA_IfcElement_HAS_Tag +#define SCHEMA_IfcElement_Tag_IS_OPTIONAL +#define SCHEMA_HAS_IfcElementAssembly +#define SCHEMA_IfcElementAssembly_HAS_AssemblyPlace +#define SCHEMA_IfcElementAssembly_AssemblyPlace_IS_OPTIONAL +#define SCHEMA_IfcElementAssembly_HAS_PredefinedType +#define SCHEMA_IfcElementAssembly_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElementAssemblyType +#define SCHEMA_IfcElementAssemblyType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElementComponent +#define SCHEMA_HAS_IfcElementComponentType +#define SCHEMA_HAS_IfcElementQuantity +#define SCHEMA_IfcElementQuantity_HAS_MethodOfMeasurement +#define SCHEMA_IfcElementQuantity_MethodOfMeasurement_IS_OPTIONAL +#define SCHEMA_IfcElementQuantity_HAS_Quantities +#define SCHEMA_HAS_IfcElementType +#define SCHEMA_IfcElementType_HAS_ElementType +#define SCHEMA_IfcElementType_ElementType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElementarySurface +#define SCHEMA_IfcElementarySurface_HAS_Position +#define SCHEMA_HAS_IfcEllipse +#define SCHEMA_IfcEllipse_HAS_SemiAxis1 +#define SCHEMA_IfcEllipse_HAS_SemiAxis2 +#define SCHEMA_HAS_IfcEllipseProfileDef +#define SCHEMA_IfcEllipseProfileDef_HAS_SemiAxis1 +#define SCHEMA_IfcEllipseProfileDef_HAS_SemiAxis2 +#define SCHEMA_HAS_IfcEnergyConversionDevice +#define SCHEMA_HAS_IfcEnergyConversionDeviceType +#define SCHEMA_HAS_IfcEngine +#define SCHEMA_IfcEngine_HAS_PredefinedType +#define SCHEMA_IfcEngine_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcEngineType +#define SCHEMA_IfcEngineType_HAS_PredefinedType +#define SCHEMA_HAS_IfcEvaporativeCooler +#define SCHEMA_IfcEvaporativeCooler_HAS_PredefinedType +#define SCHEMA_IfcEvaporativeCooler_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcEvaporativeCoolerType +#define SCHEMA_IfcEvaporativeCoolerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcEvaporator +#define SCHEMA_IfcEvaporator_HAS_PredefinedType +#define SCHEMA_IfcEvaporator_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcEvaporatorType +#define SCHEMA_IfcEvaporatorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcEvent +#define SCHEMA_IfcEvent_HAS_PredefinedType +#define SCHEMA_IfcEvent_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcEvent_HAS_EventTriggerType +#define SCHEMA_IfcEvent_EventTriggerType_IS_OPTIONAL +#define SCHEMA_IfcEvent_HAS_UserDefinedEventTriggerType +#define SCHEMA_IfcEvent_UserDefinedEventTriggerType_IS_OPTIONAL +#define SCHEMA_IfcEvent_HAS_EventOccurenceTime +#define SCHEMA_IfcEvent_EventOccurenceTime_IS_OPTIONAL +#define SCHEMA_HAS_IfcEventTime +#define SCHEMA_IfcEventTime_HAS_ActualDate +#define SCHEMA_IfcEventTime_ActualDate_IS_OPTIONAL +#define SCHEMA_IfcEventTime_HAS_EarlyDate +#define SCHEMA_IfcEventTime_EarlyDate_IS_OPTIONAL +#define SCHEMA_IfcEventTime_HAS_LateDate +#define SCHEMA_IfcEventTime_LateDate_IS_OPTIONAL +#define SCHEMA_IfcEventTime_HAS_ScheduleDate +#define SCHEMA_IfcEventTime_ScheduleDate_IS_OPTIONAL +#define SCHEMA_HAS_IfcEventType +#define SCHEMA_IfcEventType_HAS_PredefinedType +#define SCHEMA_IfcEventType_HAS_EventTriggerType +#define SCHEMA_IfcEventType_HAS_UserDefinedEventTriggerType +#define SCHEMA_IfcEventType_UserDefinedEventTriggerType_IS_OPTIONAL +#define SCHEMA_HAS_IfcExtendedProperties +#define SCHEMA_IfcExtendedProperties_HAS_Name +#define SCHEMA_IfcExtendedProperties_Name_IS_OPTIONAL +#define SCHEMA_IfcExtendedProperties_HAS_Description +#define SCHEMA_IfcExtendedProperties_Description_IS_OPTIONAL +#define SCHEMA_IfcExtendedProperties_HAS_Properties +#define SCHEMA_HAS_IfcExternalInformation +#define SCHEMA_HAS_IfcExternalReference +#define SCHEMA_IfcExternalReference_HAS_Location +#define SCHEMA_IfcExternalReference_Location_IS_OPTIONAL +#define SCHEMA_IfcExternalReference_HAS_Identification +#define SCHEMA_IfcExternalReference_Identification_IS_OPTIONAL +#define SCHEMA_IfcExternalReference_HAS_Name +#define SCHEMA_IfcExternalReference_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcExternalReferenceRelationship +#define SCHEMA_IfcExternalReferenceRelationship_HAS_RelatingReference +#define SCHEMA_IfcExternalReferenceRelationship_HAS_RelatedResourceObjects +#define SCHEMA_HAS_IfcExternalSpatialElement +#define SCHEMA_IfcExternalSpatialElement_HAS_PredefinedType +#define SCHEMA_IfcExternalSpatialElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcExternalSpatialStructureElement +#define SCHEMA_HAS_IfcExternallyDefinedHatchStyle +#define SCHEMA_HAS_IfcExternallyDefinedSurfaceStyle +#define SCHEMA_HAS_IfcExternallyDefinedTextFont +#define SCHEMA_HAS_IfcExtrudedAreaSolid +#define SCHEMA_IfcExtrudedAreaSolid_HAS_ExtrudedDirection +#define SCHEMA_IfcExtrudedAreaSolid_HAS_Depth +#define SCHEMA_HAS_IfcExtrudedAreaSolidTapered +#define SCHEMA_IfcExtrudedAreaSolidTapered_HAS_EndSweptArea +#define SCHEMA_HAS_IfcFace +#define SCHEMA_IfcFace_HAS_Bounds +#define SCHEMA_HAS_IfcFaceBasedSurfaceModel +#define SCHEMA_IfcFaceBasedSurfaceModel_HAS_FbsmFaces +#define SCHEMA_HAS_IfcFaceBound +#define SCHEMA_IfcFaceBound_HAS_Bound +#define SCHEMA_IfcFaceBound_HAS_Orientation +#define SCHEMA_HAS_IfcFaceOuterBound +#define SCHEMA_HAS_IfcFaceSurface +#define SCHEMA_IfcFaceSurface_HAS_FaceSurface +#define SCHEMA_IfcFaceSurface_HAS_SameSense +#define SCHEMA_HAS_IfcFacetedBrep +#define SCHEMA_HAS_IfcFacetedBrepWithVoids +#define SCHEMA_IfcFacetedBrepWithVoids_HAS_Voids +#define SCHEMA_HAS_IfcFailureConnectionCondition +#define SCHEMA_IfcFailureConnectionCondition_HAS_TensionFailureX +#define SCHEMA_IfcFailureConnectionCondition_TensionFailureX_IS_OPTIONAL +#define SCHEMA_IfcFailureConnectionCondition_HAS_TensionFailureY +#define SCHEMA_IfcFailureConnectionCondition_TensionFailureY_IS_OPTIONAL +#define SCHEMA_IfcFailureConnectionCondition_HAS_TensionFailureZ +#define SCHEMA_IfcFailureConnectionCondition_TensionFailureZ_IS_OPTIONAL +#define SCHEMA_IfcFailureConnectionCondition_HAS_CompressionFailureX +#define SCHEMA_IfcFailureConnectionCondition_CompressionFailureX_IS_OPTIONAL +#define SCHEMA_IfcFailureConnectionCondition_HAS_CompressionFailureY +#define SCHEMA_IfcFailureConnectionCondition_CompressionFailureY_IS_OPTIONAL +#define SCHEMA_IfcFailureConnectionCondition_HAS_CompressionFailureZ +#define SCHEMA_IfcFailureConnectionCondition_CompressionFailureZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcFan +#define SCHEMA_IfcFan_HAS_PredefinedType +#define SCHEMA_IfcFan_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFanType +#define SCHEMA_IfcFanType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFastener +#define SCHEMA_IfcFastener_HAS_PredefinedType +#define SCHEMA_IfcFastener_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFastenerType +#define SCHEMA_IfcFastenerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFeatureElement +#define SCHEMA_HAS_IfcFeatureElementAddition +#define SCHEMA_HAS_IfcFeatureElementSubtraction +#define SCHEMA_HAS_IfcFillAreaStyle +#define SCHEMA_IfcFillAreaStyle_HAS_FillStyles +#define SCHEMA_IfcFillAreaStyle_HAS_ModelorDraughting +#define SCHEMA_IfcFillAreaStyle_ModelorDraughting_IS_OPTIONAL +#define SCHEMA_HAS_IfcFillAreaStyleHatching +#define SCHEMA_IfcFillAreaStyleHatching_HAS_HatchLineAppearance +#define SCHEMA_IfcFillAreaStyleHatching_HAS_StartOfNextHatchLine +#define SCHEMA_IfcFillAreaStyleHatching_HAS_PointOfReferenceHatchLine +#define SCHEMA_IfcFillAreaStyleHatching_PointOfReferenceHatchLine_IS_OPTIONAL +#define SCHEMA_IfcFillAreaStyleHatching_HAS_PatternStart +#define SCHEMA_IfcFillAreaStyleHatching_PatternStart_IS_OPTIONAL +#define SCHEMA_IfcFillAreaStyleHatching_HAS_HatchLineAngle +#define SCHEMA_HAS_IfcFillAreaStyleTiles +#define SCHEMA_IfcFillAreaStyleTiles_HAS_TilingPattern +#define SCHEMA_IfcFillAreaStyleTiles_HAS_Tiles +#define SCHEMA_IfcFillAreaStyleTiles_HAS_TilingScale +#define SCHEMA_HAS_IfcFilter +#define SCHEMA_IfcFilter_HAS_PredefinedType +#define SCHEMA_IfcFilter_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFilterType +#define SCHEMA_IfcFilterType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFireSuppressionTerminal +#define SCHEMA_IfcFireSuppressionTerminal_HAS_PredefinedType +#define SCHEMA_IfcFireSuppressionTerminal_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFireSuppressionTerminalType +#define SCHEMA_IfcFireSuppressionTerminalType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFixedReferenceSweptAreaSolid +#define SCHEMA_IfcFixedReferenceSweptAreaSolid_HAS_Directrix +#define SCHEMA_IfcFixedReferenceSweptAreaSolid_HAS_StartParam +#define SCHEMA_IfcFixedReferenceSweptAreaSolid_StartParam_IS_OPTIONAL +#define SCHEMA_IfcFixedReferenceSweptAreaSolid_HAS_EndParam +#define SCHEMA_IfcFixedReferenceSweptAreaSolid_EndParam_IS_OPTIONAL +#define SCHEMA_IfcFixedReferenceSweptAreaSolid_HAS_FixedReference +#define SCHEMA_HAS_IfcFlowController +#define SCHEMA_HAS_IfcFlowControllerType +#define SCHEMA_HAS_IfcFlowFitting +#define SCHEMA_HAS_IfcFlowFittingType +#define SCHEMA_HAS_IfcFlowInstrument +#define SCHEMA_IfcFlowInstrument_HAS_PredefinedType +#define SCHEMA_IfcFlowInstrument_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFlowInstrumentType +#define SCHEMA_IfcFlowInstrumentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFlowMeter +#define SCHEMA_IfcFlowMeter_HAS_PredefinedType +#define SCHEMA_IfcFlowMeter_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFlowMeterType +#define SCHEMA_IfcFlowMeterType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFlowMovingDevice +#define SCHEMA_HAS_IfcFlowMovingDeviceType +#define SCHEMA_HAS_IfcFlowSegment +#define SCHEMA_HAS_IfcFlowSegmentType +#define SCHEMA_HAS_IfcFlowStorageDevice +#define SCHEMA_HAS_IfcFlowStorageDeviceType +#define SCHEMA_HAS_IfcFlowTerminal +#define SCHEMA_HAS_IfcFlowTerminalType +#define SCHEMA_HAS_IfcFlowTreatmentDevice +#define SCHEMA_HAS_IfcFlowTreatmentDeviceType +#define SCHEMA_HAS_IfcFooting +#define SCHEMA_IfcFooting_HAS_PredefinedType +#define SCHEMA_IfcFooting_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFootingType +#define SCHEMA_IfcFootingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFurnishingElement +#define SCHEMA_HAS_IfcFurnishingElementType +#define SCHEMA_HAS_IfcFurniture +#define SCHEMA_IfcFurniture_HAS_PredefinedType +#define SCHEMA_IfcFurniture_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFurnitureType +#define SCHEMA_IfcFurnitureType_HAS_AssemblyPlace +#define SCHEMA_IfcFurnitureType_HAS_PredefinedType +#define SCHEMA_IfcFurnitureType_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcGeographicElement +#define SCHEMA_IfcGeographicElement_HAS_PredefinedType +#define SCHEMA_IfcGeographicElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcGeographicElementType +#define SCHEMA_IfcGeographicElementType_HAS_PredefinedType +#define SCHEMA_HAS_IfcGeometricCurveSet +#define SCHEMA_HAS_IfcGeometricRepresentationContext +#define SCHEMA_IfcGeometricRepresentationContext_HAS_CoordinateSpaceDimension +#define SCHEMA_IfcGeometricRepresentationContext_HAS_Precision +#define SCHEMA_IfcGeometricRepresentationContext_Precision_IS_OPTIONAL +#define SCHEMA_IfcGeometricRepresentationContext_HAS_WorldCoordinateSystem +#define SCHEMA_IfcGeometricRepresentationContext_HAS_TrueNorth +#define SCHEMA_IfcGeometricRepresentationContext_TrueNorth_IS_OPTIONAL +#define SCHEMA_HAS_IfcGeometricRepresentationItem +#define SCHEMA_HAS_IfcGeometricRepresentationSubContext +#define SCHEMA_IfcGeometricRepresentationSubContext_HAS_ParentContext +#define SCHEMA_IfcGeometricRepresentationSubContext_HAS_TargetScale +#define SCHEMA_IfcGeometricRepresentationSubContext_TargetScale_IS_OPTIONAL +#define SCHEMA_IfcGeometricRepresentationSubContext_HAS_TargetView +#define SCHEMA_IfcGeometricRepresentationSubContext_HAS_UserDefinedTargetView +#define SCHEMA_IfcGeometricRepresentationSubContext_UserDefinedTargetView_IS_OPTIONAL +#define SCHEMA_HAS_IfcGeometricSet +#define SCHEMA_IfcGeometricSet_HAS_Elements +#define SCHEMA_HAS_IfcGrid +#define SCHEMA_IfcGrid_HAS_UAxes +#define SCHEMA_IfcGrid_HAS_VAxes +#define SCHEMA_IfcGrid_HAS_WAxes +#define SCHEMA_IfcGrid_WAxes_IS_OPTIONAL +#define SCHEMA_IfcGrid_HAS_PredefinedType +#define SCHEMA_IfcGrid_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcGridAxis +#define SCHEMA_IfcGridAxis_HAS_AxisTag +#define SCHEMA_IfcGridAxis_AxisTag_IS_OPTIONAL +#define SCHEMA_IfcGridAxis_HAS_AxisCurve +#define SCHEMA_IfcGridAxis_HAS_SameSense +#define SCHEMA_HAS_IfcGridPlacement +#define SCHEMA_IfcGridPlacement_HAS_PlacementLocation +#define SCHEMA_IfcGridPlacement_HAS_PlacementRefDirection +#define SCHEMA_IfcGridPlacement_PlacementRefDirection_IS_OPTIONAL +#define SCHEMA_HAS_IfcGroup +#define SCHEMA_HAS_IfcHalfSpaceSolid +#define SCHEMA_IfcHalfSpaceSolid_HAS_BaseSurface +#define SCHEMA_IfcHalfSpaceSolid_HAS_AgreementFlag +#define SCHEMA_HAS_IfcHeatExchanger +#define SCHEMA_IfcHeatExchanger_HAS_PredefinedType +#define SCHEMA_IfcHeatExchanger_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcHeatExchangerType +#define SCHEMA_IfcHeatExchangerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcHumidifier +#define SCHEMA_IfcHumidifier_HAS_PredefinedType +#define SCHEMA_IfcHumidifier_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcHumidifierType +#define SCHEMA_IfcHumidifierType_HAS_PredefinedType +#define SCHEMA_HAS_IfcIShapeProfileDef +#define SCHEMA_IfcIShapeProfileDef_HAS_OverallWidth +#define SCHEMA_IfcIShapeProfileDef_HAS_OverallDepth +#define SCHEMA_IfcIShapeProfileDef_HAS_WebThickness +#define SCHEMA_IfcIShapeProfileDef_HAS_FlangeThickness +#define SCHEMA_IfcIShapeProfileDef_HAS_FilletRadius +#define SCHEMA_IfcIShapeProfileDef_FilletRadius_IS_OPTIONAL +#define SCHEMA_IfcIShapeProfileDef_HAS_FlangeEdgeRadius +#define SCHEMA_IfcIShapeProfileDef_FlangeEdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcIShapeProfileDef_HAS_FlangeSlope +#define SCHEMA_IfcIShapeProfileDef_FlangeSlope_IS_OPTIONAL +#define SCHEMA_HAS_IfcImageTexture +#define SCHEMA_IfcImageTexture_HAS_URLReference +#define SCHEMA_HAS_IfcIndexedColourMap +#define SCHEMA_IfcIndexedColourMap_HAS_MappedTo +#define SCHEMA_IfcIndexedColourMap_HAS_Opacity +#define SCHEMA_IfcIndexedColourMap_Opacity_IS_OPTIONAL +#define SCHEMA_IfcIndexedColourMap_HAS_Colours +#define SCHEMA_IfcIndexedColourMap_HAS_ColourIndex +#define SCHEMA_HAS_IfcIndexedPolyCurve +#define SCHEMA_IfcIndexedPolyCurve_HAS_Points +#define SCHEMA_IfcIndexedPolyCurve_HAS_Segments +#define SCHEMA_IfcIndexedPolyCurve_Segments_IS_OPTIONAL +#define SCHEMA_IfcIndexedPolyCurve_HAS_SelfIntersect +#define SCHEMA_IfcIndexedPolyCurve_SelfIntersect_IS_OPTIONAL +#define SCHEMA_HAS_IfcIndexedPolygonalFace +#define SCHEMA_IfcIndexedPolygonalFace_HAS_CoordIndex +#define SCHEMA_HAS_IfcIndexedPolygonalFaceWithVoids +#define SCHEMA_IfcIndexedPolygonalFaceWithVoids_HAS_InnerCoordIndices +#define SCHEMA_HAS_IfcIndexedTextureMap +#define SCHEMA_IfcIndexedTextureMap_HAS_MappedTo +#define SCHEMA_IfcIndexedTextureMap_HAS_TexCoords +#define SCHEMA_HAS_IfcIndexedTriangleTextureMap +#define SCHEMA_IfcIndexedTriangleTextureMap_HAS_TexCoordIndex +#define SCHEMA_IfcIndexedTriangleTextureMap_TexCoordIndex_IS_OPTIONAL +#define SCHEMA_HAS_IfcInterceptor +#define SCHEMA_IfcInterceptor_HAS_PredefinedType +#define SCHEMA_IfcInterceptor_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcInterceptorType +#define SCHEMA_IfcInterceptorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcIntersectionCurve +#define SCHEMA_HAS_IfcInventory +#define SCHEMA_IfcInventory_HAS_PredefinedType +#define SCHEMA_IfcInventory_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcInventory_HAS_Jurisdiction +#define SCHEMA_IfcInventory_Jurisdiction_IS_OPTIONAL +#define SCHEMA_IfcInventory_HAS_ResponsiblePersons +#define SCHEMA_IfcInventory_ResponsiblePersons_IS_OPTIONAL +#define SCHEMA_IfcInventory_HAS_LastUpdateDate +#define SCHEMA_IfcInventory_LastUpdateDate_IS_OPTIONAL +#define SCHEMA_IfcInventory_HAS_CurrentValue +#define SCHEMA_IfcInventory_CurrentValue_IS_OPTIONAL +#define SCHEMA_IfcInventory_HAS_OriginalValue +#define SCHEMA_IfcInventory_OriginalValue_IS_OPTIONAL +#define SCHEMA_HAS_IfcIrregularTimeSeries +#define SCHEMA_IfcIrregularTimeSeries_HAS_Values +#define SCHEMA_HAS_IfcIrregularTimeSeriesValue +#define SCHEMA_IfcIrregularTimeSeriesValue_HAS_TimeStamp +#define SCHEMA_IfcIrregularTimeSeriesValue_HAS_ListValues +#define SCHEMA_HAS_IfcJunctionBox +#define SCHEMA_IfcJunctionBox_HAS_PredefinedType +#define SCHEMA_IfcJunctionBox_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcJunctionBoxType +#define SCHEMA_IfcJunctionBoxType_HAS_PredefinedType +#define SCHEMA_HAS_IfcLShapeProfileDef +#define SCHEMA_IfcLShapeProfileDef_HAS_Depth +#define SCHEMA_IfcLShapeProfileDef_HAS_Width +#define SCHEMA_IfcLShapeProfileDef_Width_IS_OPTIONAL +#define SCHEMA_IfcLShapeProfileDef_HAS_Thickness +#define SCHEMA_IfcLShapeProfileDef_HAS_FilletRadius +#define SCHEMA_IfcLShapeProfileDef_FilletRadius_IS_OPTIONAL +#define SCHEMA_IfcLShapeProfileDef_HAS_EdgeRadius +#define SCHEMA_IfcLShapeProfileDef_EdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcLShapeProfileDef_HAS_LegSlope +#define SCHEMA_IfcLShapeProfileDef_LegSlope_IS_OPTIONAL +#define SCHEMA_HAS_IfcLaborResource +#define SCHEMA_IfcLaborResource_HAS_PredefinedType +#define SCHEMA_IfcLaborResource_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcLaborResourceType +#define SCHEMA_IfcLaborResourceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcLagTime +#define SCHEMA_IfcLagTime_HAS_LagValue +#define SCHEMA_IfcLagTime_HAS_DurationType +#define SCHEMA_HAS_IfcLamp +#define SCHEMA_IfcLamp_HAS_PredefinedType +#define SCHEMA_IfcLamp_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcLampType +#define SCHEMA_IfcLampType_HAS_PredefinedType +#define SCHEMA_HAS_IfcLibraryInformation +#define SCHEMA_IfcLibraryInformation_HAS_Name +#define SCHEMA_IfcLibraryInformation_HAS_Version +#define SCHEMA_IfcLibraryInformation_Version_IS_OPTIONAL +#define SCHEMA_IfcLibraryInformation_HAS_Publisher +#define SCHEMA_IfcLibraryInformation_Publisher_IS_OPTIONAL +#define SCHEMA_IfcLibraryInformation_HAS_VersionDate +#define SCHEMA_IfcLibraryInformation_VersionDate_IS_OPTIONAL +#define SCHEMA_IfcLibraryInformation_HAS_Location +#define SCHEMA_IfcLibraryInformation_Location_IS_OPTIONAL +#define SCHEMA_IfcLibraryInformation_HAS_Description +#define SCHEMA_IfcLibraryInformation_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcLibraryReference +#define SCHEMA_IfcLibraryReference_HAS_Description +#define SCHEMA_IfcLibraryReference_Description_IS_OPTIONAL +#define SCHEMA_IfcLibraryReference_HAS_Language +#define SCHEMA_IfcLibraryReference_Language_IS_OPTIONAL +#define SCHEMA_IfcLibraryReference_HAS_ReferencedLibrary +#define SCHEMA_IfcLibraryReference_ReferencedLibrary_IS_OPTIONAL +#define SCHEMA_HAS_IfcLightDistributionData +#define SCHEMA_IfcLightDistributionData_HAS_MainPlaneAngle +#define SCHEMA_IfcLightDistributionData_HAS_SecondaryPlaneAngle +#define SCHEMA_IfcLightDistributionData_HAS_LuminousIntensity +#define SCHEMA_HAS_IfcLightFixture +#define SCHEMA_IfcLightFixture_HAS_PredefinedType +#define SCHEMA_IfcLightFixture_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcLightFixtureType +#define SCHEMA_IfcLightFixtureType_HAS_PredefinedType +#define SCHEMA_HAS_IfcLightIntensityDistribution +#define SCHEMA_IfcLightIntensityDistribution_HAS_LightDistributionCurve +#define SCHEMA_IfcLightIntensityDistribution_HAS_DistributionData +#define SCHEMA_HAS_IfcLightSource +#define SCHEMA_IfcLightSource_HAS_Name +#define SCHEMA_IfcLightSource_Name_IS_OPTIONAL +#define SCHEMA_IfcLightSource_HAS_LightColour +#define SCHEMA_IfcLightSource_HAS_AmbientIntensity +#define SCHEMA_IfcLightSource_AmbientIntensity_IS_OPTIONAL +#define SCHEMA_IfcLightSource_HAS_Intensity +#define SCHEMA_IfcLightSource_Intensity_IS_OPTIONAL +#define SCHEMA_HAS_IfcLightSourceAmbient +#define SCHEMA_HAS_IfcLightSourceDirectional +#define SCHEMA_IfcLightSourceDirectional_HAS_Orientation +#define SCHEMA_HAS_IfcLightSourceGoniometric +#define SCHEMA_IfcLightSourceGoniometric_HAS_Position +#define SCHEMA_IfcLightSourceGoniometric_HAS_ColourAppearance +#define SCHEMA_IfcLightSourceGoniometric_ColourAppearance_IS_OPTIONAL +#define SCHEMA_IfcLightSourceGoniometric_HAS_ColourTemperature +#define SCHEMA_IfcLightSourceGoniometric_HAS_LuminousFlux +#define SCHEMA_IfcLightSourceGoniometric_HAS_LightEmissionSource +#define SCHEMA_IfcLightSourceGoniometric_HAS_LightDistributionDataSource +#define SCHEMA_HAS_IfcLightSourcePositional +#define SCHEMA_IfcLightSourcePositional_HAS_Position +#define SCHEMA_IfcLightSourcePositional_HAS_Radius +#define SCHEMA_IfcLightSourcePositional_HAS_ConstantAttenuation +#define SCHEMA_IfcLightSourcePositional_HAS_DistanceAttenuation +#define SCHEMA_IfcLightSourcePositional_HAS_QuadricAttenuation +#define SCHEMA_HAS_IfcLightSourceSpot +#define SCHEMA_IfcLightSourceSpot_HAS_Orientation +#define SCHEMA_IfcLightSourceSpot_HAS_ConcentrationExponent +#define SCHEMA_IfcLightSourceSpot_ConcentrationExponent_IS_OPTIONAL +#define SCHEMA_IfcLightSourceSpot_HAS_SpreadAngle +#define SCHEMA_IfcLightSourceSpot_HAS_BeamWidthAngle +#define SCHEMA_HAS_IfcLine +#define SCHEMA_IfcLine_HAS_Pnt +#define SCHEMA_IfcLine_HAS_Dir +#define SCHEMA_HAS_IfcLocalPlacement +#define SCHEMA_IfcLocalPlacement_HAS_PlacementRelTo +#define SCHEMA_IfcLocalPlacement_PlacementRelTo_IS_OPTIONAL +#define SCHEMA_IfcLocalPlacement_HAS_RelativePlacement +#define SCHEMA_HAS_IfcLoop +#define SCHEMA_HAS_IfcManifoldSolidBrep +#define SCHEMA_IfcManifoldSolidBrep_HAS_Outer +#define SCHEMA_HAS_IfcMapConversion +#define SCHEMA_IfcMapConversion_HAS_Eastings +#define SCHEMA_IfcMapConversion_HAS_Northings +#define SCHEMA_IfcMapConversion_HAS_OrthogonalHeight +#define SCHEMA_IfcMapConversion_HAS_XAxisAbscissa +#define SCHEMA_IfcMapConversion_XAxisAbscissa_IS_OPTIONAL +#define SCHEMA_IfcMapConversion_HAS_XAxisOrdinate +#define SCHEMA_IfcMapConversion_XAxisOrdinate_IS_OPTIONAL +#define SCHEMA_IfcMapConversion_HAS_Scale +#define SCHEMA_IfcMapConversion_Scale_IS_OPTIONAL +#define SCHEMA_HAS_IfcMappedItem +#define SCHEMA_IfcMappedItem_HAS_MappingSource +#define SCHEMA_IfcMappedItem_HAS_MappingTarget +#define SCHEMA_HAS_IfcMaterial +#define SCHEMA_IfcMaterial_HAS_Name +#define SCHEMA_IfcMaterial_HAS_Description +#define SCHEMA_IfcMaterial_Description_IS_OPTIONAL +#define SCHEMA_IfcMaterial_HAS_Category +#define SCHEMA_IfcMaterial_Category_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialClassificationRelationship +#define SCHEMA_IfcMaterialClassificationRelationship_HAS_MaterialClassifications +#define SCHEMA_IfcMaterialClassificationRelationship_HAS_ClassifiedMaterial +#define SCHEMA_HAS_IfcMaterialConstituent +#define SCHEMA_IfcMaterialConstituent_HAS_Name +#define SCHEMA_IfcMaterialConstituent_Name_IS_OPTIONAL +#define SCHEMA_IfcMaterialConstituent_HAS_Description +#define SCHEMA_IfcMaterialConstituent_Description_IS_OPTIONAL +#define SCHEMA_IfcMaterialConstituent_HAS_Material +#define SCHEMA_IfcMaterialConstituent_HAS_Fraction +#define SCHEMA_IfcMaterialConstituent_Fraction_IS_OPTIONAL +#define SCHEMA_IfcMaterialConstituent_HAS_Category +#define SCHEMA_IfcMaterialConstituent_Category_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialConstituentSet +#define SCHEMA_IfcMaterialConstituentSet_HAS_Name +#define SCHEMA_IfcMaterialConstituentSet_Name_IS_OPTIONAL +#define SCHEMA_IfcMaterialConstituentSet_HAS_Description +#define SCHEMA_IfcMaterialConstituentSet_Description_IS_OPTIONAL +#define SCHEMA_IfcMaterialConstituentSet_HAS_MaterialConstituents +#define SCHEMA_IfcMaterialConstituentSet_MaterialConstituents_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialDefinition +#define SCHEMA_HAS_IfcMaterialDefinitionRepresentation +#define SCHEMA_IfcMaterialDefinitionRepresentation_HAS_RepresentedMaterial +#define SCHEMA_HAS_IfcMaterialLayer +#define SCHEMA_IfcMaterialLayer_HAS_Material +#define SCHEMA_IfcMaterialLayer_Material_IS_OPTIONAL +#define SCHEMA_IfcMaterialLayer_HAS_LayerThickness +#define SCHEMA_IfcMaterialLayer_HAS_IsVentilated +#define SCHEMA_IfcMaterialLayer_IsVentilated_IS_OPTIONAL +#define SCHEMA_IfcMaterialLayer_HAS_Name +#define SCHEMA_IfcMaterialLayer_Name_IS_OPTIONAL +#define SCHEMA_IfcMaterialLayer_HAS_Description +#define SCHEMA_IfcMaterialLayer_Description_IS_OPTIONAL +#define SCHEMA_IfcMaterialLayer_HAS_Category +#define SCHEMA_IfcMaterialLayer_Category_IS_OPTIONAL +#define SCHEMA_IfcMaterialLayer_HAS_Priority +#define SCHEMA_IfcMaterialLayer_Priority_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialLayerSet +#define SCHEMA_IfcMaterialLayerSet_HAS_MaterialLayers +#define SCHEMA_IfcMaterialLayerSet_HAS_LayerSetName +#define SCHEMA_IfcMaterialLayerSet_LayerSetName_IS_OPTIONAL +#define SCHEMA_IfcMaterialLayerSet_HAS_Description +#define SCHEMA_IfcMaterialLayerSet_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialLayerSetUsage +#define SCHEMA_IfcMaterialLayerSetUsage_HAS_ForLayerSet +#define SCHEMA_IfcMaterialLayerSetUsage_HAS_LayerSetDirection +#define SCHEMA_IfcMaterialLayerSetUsage_HAS_DirectionSense +#define SCHEMA_IfcMaterialLayerSetUsage_HAS_OffsetFromReferenceLine +#define SCHEMA_IfcMaterialLayerSetUsage_HAS_ReferenceExtent +#define SCHEMA_IfcMaterialLayerSetUsage_ReferenceExtent_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialLayerWithOffsets +#define SCHEMA_IfcMaterialLayerWithOffsets_HAS_OffsetDirection +#define SCHEMA_IfcMaterialLayerWithOffsets_HAS_OffsetValues +#define SCHEMA_HAS_IfcMaterialList +#define SCHEMA_IfcMaterialList_HAS_Materials +#define SCHEMA_HAS_IfcMaterialProfile +#define SCHEMA_IfcMaterialProfile_HAS_Name +#define SCHEMA_IfcMaterialProfile_Name_IS_OPTIONAL +#define SCHEMA_IfcMaterialProfile_HAS_Description +#define SCHEMA_IfcMaterialProfile_Description_IS_OPTIONAL +#define SCHEMA_IfcMaterialProfile_HAS_Material +#define SCHEMA_IfcMaterialProfile_Material_IS_OPTIONAL +#define SCHEMA_IfcMaterialProfile_HAS_Profile +#define SCHEMA_IfcMaterialProfile_HAS_Priority +#define SCHEMA_IfcMaterialProfile_Priority_IS_OPTIONAL +#define SCHEMA_IfcMaterialProfile_HAS_Category +#define SCHEMA_IfcMaterialProfile_Category_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialProfileSet +#define SCHEMA_IfcMaterialProfileSet_HAS_Name +#define SCHEMA_IfcMaterialProfileSet_Name_IS_OPTIONAL +#define SCHEMA_IfcMaterialProfileSet_HAS_Description +#define SCHEMA_IfcMaterialProfileSet_Description_IS_OPTIONAL +#define SCHEMA_IfcMaterialProfileSet_HAS_MaterialProfiles +#define SCHEMA_IfcMaterialProfileSet_HAS_CompositeProfile +#define SCHEMA_IfcMaterialProfileSet_CompositeProfile_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialProfileSetUsage +#define SCHEMA_IfcMaterialProfileSetUsage_HAS_ForProfileSet +#define SCHEMA_IfcMaterialProfileSetUsage_HAS_CardinalPoint +#define SCHEMA_IfcMaterialProfileSetUsage_CardinalPoint_IS_OPTIONAL +#define SCHEMA_IfcMaterialProfileSetUsage_HAS_ReferenceExtent +#define SCHEMA_IfcMaterialProfileSetUsage_ReferenceExtent_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialProfileSetUsageTapering +#define SCHEMA_IfcMaterialProfileSetUsageTapering_HAS_ForProfileEndSet +#define SCHEMA_IfcMaterialProfileSetUsageTapering_HAS_CardinalEndPoint +#define SCHEMA_IfcMaterialProfileSetUsageTapering_CardinalEndPoint_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialProfileWithOffsets +#define SCHEMA_IfcMaterialProfileWithOffsets_HAS_OffsetValues +#define SCHEMA_HAS_IfcMaterialProperties +#define SCHEMA_IfcMaterialProperties_HAS_Material +#define SCHEMA_HAS_IfcMaterialRelationship +#define SCHEMA_IfcMaterialRelationship_HAS_RelatingMaterial +#define SCHEMA_IfcMaterialRelationship_HAS_RelatedMaterials +#define SCHEMA_IfcMaterialRelationship_HAS_Expression +#define SCHEMA_IfcMaterialRelationship_Expression_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialUsageDefinition +#define SCHEMA_HAS_IfcMeasureWithUnit +#define SCHEMA_IfcMeasureWithUnit_HAS_ValueComponent +#define SCHEMA_IfcMeasureWithUnit_HAS_UnitComponent +#define SCHEMA_HAS_IfcMechanicalFastener +#define SCHEMA_IfcMechanicalFastener_HAS_NominalDiameter +#define SCHEMA_IfcMechanicalFastener_NominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcMechanicalFastener_HAS_NominalLength +#define SCHEMA_IfcMechanicalFastener_NominalLength_IS_OPTIONAL +#define SCHEMA_IfcMechanicalFastener_HAS_PredefinedType +#define SCHEMA_IfcMechanicalFastener_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcMechanicalFastenerType +#define SCHEMA_IfcMechanicalFastenerType_HAS_PredefinedType +#define SCHEMA_IfcMechanicalFastenerType_HAS_NominalDiameter +#define SCHEMA_IfcMechanicalFastenerType_NominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcMechanicalFastenerType_HAS_NominalLength +#define SCHEMA_IfcMechanicalFastenerType_NominalLength_IS_OPTIONAL +#define SCHEMA_HAS_IfcMedicalDevice +#define SCHEMA_IfcMedicalDevice_HAS_PredefinedType +#define SCHEMA_IfcMedicalDevice_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcMedicalDeviceType +#define SCHEMA_IfcMedicalDeviceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcMember +#define SCHEMA_IfcMember_HAS_PredefinedType +#define SCHEMA_IfcMember_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcMemberStandardCase +#define SCHEMA_HAS_IfcMemberType +#define SCHEMA_IfcMemberType_HAS_PredefinedType +#define SCHEMA_HAS_IfcMetric +#define SCHEMA_IfcMetric_HAS_Benchmark +#define SCHEMA_IfcMetric_HAS_ValueSource +#define SCHEMA_IfcMetric_ValueSource_IS_OPTIONAL +#define SCHEMA_IfcMetric_HAS_DataValue +#define SCHEMA_IfcMetric_DataValue_IS_OPTIONAL +#define SCHEMA_IfcMetric_HAS_ReferencePath +#define SCHEMA_IfcMetric_ReferencePath_IS_OPTIONAL +#define SCHEMA_HAS_IfcMirroredProfileDef +#define SCHEMA_HAS_IfcMonetaryUnit +#define SCHEMA_IfcMonetaryUnit_HAS_Currency +#define SCHEMA_HAS_IfcMotorConnection +#define SCHEMA_IfcMotorConnection_HAS_PredefinedType +#define SCHEMA_IfcMotorConnection_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcMotorConnectionType +#define SCHEMA_IfcMotorConnectionType_HAS_PredefinedType +#define SCHEMA_HAS_IfcNamedUnit +#define SCHEMA_IfcNamedUnit_HAS_Dimensions +#define SCHEMA_IfcNamedUnit_HAS_UnitType +#define SCHEMA_HAS_IfcObject +#define SCHEMA_IfcObject_HAS_ObjectType +#define SCHEMA_IfcObject_ObjectType_IS_OPTIONAL +#define SCHEMA_HAS_IfcObjectDefinition +#define SCHEMA_HAS_IfcObjectPlacement +#define SCHEMA_HAS_IfcObjective +#define SCHEMA_IfcObjective_HAS_BenchmarkValues +#define SCHEMA_IfcObjective_BenchmarkValues_IS_OPTIONAL +#define SCHEMA_IfcObjective_HAS_LogicalAggregator +#define SCHEMA_IfcObjective_LogicalAggregator_IS_OPTIONAL +#define SCHEMA_IfcObjective_HAS_ObjectiveQualifier +#define SCHEMA_IfcObjective_HAS_UserDefinedQualifier +#define SCHEMA_IfcObjective_UserDefinedQualifier_IS_OPTIONAL +#define SCHEMA_HAS_IfcOccupant +#define SCHEMA_IfcOccupant_HAS_PredefinedType +#define SCHEMA_IfcOccupant_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcOffsetCurve2D +#define SCHEMA_IfcOffsetCurve2D_HAS_BasisCurve +#define SCHEMA_IfcOffsetCurve2D_HAS_Distance +#define SCHEMA_IfcOffsetCurve2D_HAS_SelfIntersect +#define SCHEMA_HAS_IfcOffsetCurve3D +#define SCHEMA_IfcOffsetCurve3D_HAS_BasisCurve +#define SCHEMA_IfcOffsetCurve3D_HAS_Distance +#define SCHEMA_IfcOffsetCurve3D_HAS_SelfIntersect +#define SCHEMA_IfcOffsetCurve3D_HAS_RefDirection +#define SCHEMA_HAS_IfcOpenShell +#define SCHEMA_HAS_IfcOpeningElement +#define SCHEMA_IfcOpeningElement_HAS_PredefinedType +#define SCHEMA_IfcOpeningElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcOpeningStandardCase +#define SCHEMA_HAS_IfcOrganization +#define SCHEMA_IfcOrganization_HAS_Identification +#define SCHEMA_IfcOrganization_Identification_IS_OPTIONAL +#define SCHEMA_IfcOrganization_HAS_Name +#define SCHEMA_IfcOrganization_HAS_Description +#define SCHEMA_IfcOrganization_Description_IS_OPTIONAL +#define SCHEMA_IfcOrganization_HAS_Roles +#define SCHEMA_IfcOrganization_Roles_IS_OPTIONAL +#define SCHEMA_IfcOrganization_HAS_Addresses +#define SCHEMA_IfcOrganization_Addresses_IS_OPTIONAL +#define SCHEMA_HAS_IfcOrganizationRelationship +#define SCHEMA_IfcOrganizationRelationship_HAS_RelatingOrganization +#define SCHEMA_IfcOrganizationRelationship_HAS_RelatedOrganizations +#define SCHEMA_HAS_IfcOrientedEdge +#define SCHEMA_IfcOrientedEdge_HAS_EdgeElement +#define SCHEMA_IfcOrientedEdge_HAS_Orientation +#define SCHEMA_HAS_IfcOuterBoundaryCurve +#define SCHEMA_HAS_IfcOutlet +#define SCHEMA_IfcOutlet_HAS_PredefinedType +#define SCHEMA_IfcOutlet_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcOutletType +#define SCHEMA_IfcOutletType_HAS_PredefinedType +#define SCHEMA_HAS_IfcOwnerHistory +#define SCHEMA_IfcOwnerHistory_HAS_OwningUser +#define SCHEMA_IfcOwnerHistory_HAS_OwningApplication +#define SCHEMA_IfcOwnerHistory_HAS_State +#define SCHEMA_IfcOwnerHistory_State_IS_OPTIONAL +#define SCHEMA_IfcOwnerHistory_HAS_ChangeAction +#define SCHEMA_IfcOwnerHistory_ChangeAction_IS_OPTIONAL +#define SCHEMA_IfcOwnerHistory_HAS_LastModifiedDate +#define SCHEMA_IfcOwnerHistory_LastModifiedDate_IS_OPTIONAL +#define SCHEMA_IfcOwnerHistory_HAS_LastModifyingUser +#define SCHEMA_IfcOwnerHistory_LastModifyingUser_IS_OPTIONAL +#define SCHEMA_IfcOwnerHistory_HAS_LastModifyingApplication +#define SCHEMA_IfcOwnerHistory_LastModifyingApplication_IS_OPTIONAL +#define SCHEMA_IfcOwnerHistory_HAS_CreationDate +#define SCHEMA_HAS_IfcParameterizedProfileDef +#define SCHEMA_IfcParameterizedProfileDef_HAS_Position +#define SCHEMA_IfcParameterizedProfileDef_Position_IS_OPTIONAL +#define SCHEMA_HAS_IfcPath +#define SCHEMA_IfcPath_HAS_EdgeList +#define SCHEMA_HAS_IfcPcurve +#define SCHEMA_IfcPcurve_HAS_BasisSurface +#define SCHEMA_IfcPcurve_HAS_ReferenceCurve +#define SCHEMA_HAS_IfcPerformanceHistory +#define SCHEMA_IfcPerformanceHistory_HAS_LifeCyclePhase +#define SCHEMA_IfcPerformanceHistory_HAS_PredefinedType +#define SCHEMA_IfcPerformanceHistory_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcPermeableCoveringProperties +#define SCHEMA_IfcPermeableCoveringProperties_HAS_OperationType +#define SCHEMA_IfcPermeableCoveringProperties_HAS_PanelPosition +#define SCHEMA_IfcPermeableCoveringProperties_HAS_FrameDepth +#define SCHEMA_IfcPermeableCoveringProperties_FrameDepth_IS_OPTIONAL +#define SCHEMA_IfcPermeableCoveringProperties_HAS_FrameThickness +#define SCHEMA_IfcPermeableCoveringProperties_FrameThickness_IS_OPTIONAL +#define SCHEMA_IfcPermeableCoveringProperties_HAS_ShapeAspectStyle +#define SCHEMA_IfcPermeableCoveringProperties_ShapeAspectStyle_IS_OPTIONAL +#define SCHEMA_HAS_IfcPermit +#define SCHEMA_IfcPermit_HAS_PredefinedType +#define SCHEMA_IfcPermit_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcPermit_HAS_Status +#define SCHEMA_IfcPermit_Status_IS_OPTIONAL +#define SCHEMA_IfcPermit_HAS_LongDescription +#define SCHEMA_IfcPermit_LongDescription_IS_OPTIONAL +#define SCHEMA_HAS_IfcPerson +#define SCHEMA_IfcPerson_HAS_Identification +#define SCHEMA_IfcPerson_Identification_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_FamilyName +#define SCHEMA_IfcPerson_FamilyName_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_GivenName +#define SCHEMA_IfcPerson_GivenName_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_MiddleNames +#define SCHEMA_IfcPerson_MiddleNames_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_PrefixTitles +#define SCHEMA_IfcPerson_PrefixTitles_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_SuffixTitles +#define SCHEMA_IfcPerson_SuffixTitles_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_Roles +#define SCHEMA_IfcPerson_Roles_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_Addresses +#define SCHEMA_IfcPerson_Addresses_IS_OPTIONAL +#define SCHEMA_HAS_IfcPersonAndOrganization +#define SCHEMA_IfcPersonAndOrganization_HAS_ThePerson +#define SCHEMA_IfcPersonAndOrganization_HAS_TheOrganization +#define SCHEMA_IfcPersonAndOrganization_HAS_Roles +#define SCHEMA_IfcPersonAndOrganization_Roles_IS_OPTIONAL +#define SCHEMA_HAS_IfcPhysicalComplexQuantity +#define SCHEMA_IfcPhysicalComplexQuantity_HAS_HasQuantities +#define SCHEMA_IfcPhysicalComplexQuantity_HAS_Discrimination +#define SCHEMA_IfcPhysicalComplexQuantity_HAS_Quality +#define SCHEMA_IfcPhysicalComplexQuantity_Quality_IS_OPTIONAL +#define SCHEMA_IfcPhysicalComplexQuantity_HAS_Usage +#define SCHEMA_IfcPhysicalComplexQuantity_Usage_IS_OPTIONAL +#define SCHEMA_HAS_IfcPhysicalQuantity +#define SCHEMA_IfcPhysicalQuantity_HAS_Name +#define SCHEMA_IfcPhysicalQuantity_HAS_Description +#define SCHEMA_IfcPhysicalQuantity_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcPhysicalSimpleQuantity +#define SCHEMA_IfcPhysicalSimpleQuantity_HAS_Unit +#define SCHEMA_IfcPhysicalSimpleQuantity_Unit_IS_OPTIONAL +#define SCHEMA_HAS_IfcPile +#define SCHEMA_IfcPile_HAS_PredefinedType +#define SCHEMA_IfcPile_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcPile_HAS_ConstructionType +#define SCHEMA_IfcPile_ConstructionType_IS_OPTIONAL +#define SCHEMA_HAS_IfcPileType +#define SCHEMA_IfcPileType_HAS_PredefinedType +#define SCHEMA_HAS_IfcPipeFitting +#define SCHEMA_IfcPipeFitting_HAS_PredefinedType +#define SCHEMA_IfcPipeFitting_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcPipeFittingType +#define SCHEMA_IfcPipeFittingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcPipeSegment +#define SCHEMA_IfcPipeSegment_HAS_PredefinedType +#define SCHEMA_IfcPipeSegment_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcPipeSegmentType +#define SCHEMA_IfcPipeSegmentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcPixelTexture +#define SCHEMA_IfcPixelTexture_HAS_Width +#define SCHEMA_IfcPixelTexture_HAS_Height +#define SCHEMA_IfcPixelTexture_HAS_ColourComponents +#define SCHEMA_IfcPixelTexture_HAS_Pixel +#define SCHEMA_HAS_IfcPlacement +#define SCHEMA_IfcPlacement_HAS_Location +#define SCHEMA_HAS_IfcPlanarBox +#define SCHEMA_IfcPlanarBox_HAS_Placement +#define SCHEMA_HAS_IfcPlanarExtent +#define SCHEMA_IfcPlanarExtent_HAS_SizeInX +#define SCHEMA_IfcPlanarExtent_HAS_SizeInY +#define SCHEMA_HAS_IfcPlane +#define SCHEMA_HAS_IfcPlate +#define SCHEMA_IfcPlate_HAS_PredefinedType +#define SCHEMA_IfcPlate_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcPlateStandardCase +#define SCHEMA_HAS_IfcPlateType +#define SCHEMA_IfcPlateType_HAS_PredefinedType +#define SCHEMA_HAS_IfcPoint +#define SCHEMA_HAS_IfcPointOnCurve +#define SCHEMA_IfcPointOnCurve_HAS_BasisCurve +#define SCHEMA_IfcPointOnCurve_HAS_PointParameter +#define SCHEMA_HAS_IfcPointOnSurface +#define SCHEMA_IfcPointOnSurface_HAS_BasisSurface +#define SCHEMA_IfcPointOnSurface_HAS_PointParameterU +#define SCHEMA_IfcPointOnSurface_HAS_PointParameterV +#define SCHEMA_HAS_IfcPolyLoop +#define SCHEMA_IfcPolyLoop_HAS_Polygon +#define SCHEMA_HAS_IfcPolygonalBoundedHalfSpace +#define SCHEMA_IfcPolygonalBoundedHalfSpace_HAS_Position +#define SCHEMA_IfcPolygonalBoundedHalfSpace_HAS_PolygonalBoundary +#define SCHEMA_HAS_IfcPolygonalFaceSet +#define SCHEMA_IfcPolygonalFaceSet_HAS_Closed +#define SCHEMA_IfcPolygonalFaceSet_Closed_IS_OPTIONAL +#define SCHEMA_IfcPolygonalFaceSet_HAS_Faces +#define SCHEMA_IfcPolygonalFaceSet_HAS_PnIndex +#define SCHEMA_IfcPolygonalFaceSet_PnIndex_IS_OPTIONAL +#define SCHEMA_HAS_IfcPolyline +#define SCHEMA_IfcPolyline_HAS_Points +#define SCHEMA_HAS_IfcPort +#define SCHEMA_HAS_IfcPostalAddress +#define SCHEMA_IfcPostalAddress_HAS_InternalLocation +#define SCHEMA_IfcPostalAddress_InternalLocation_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_AddressLines +#define SCHEMA_IfcPostalAddress_AddressLines_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_PostalBox +#define SCHEMA_IfcPostalAddress_PostalBox_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_Town +#define SCHEMA_IfcPostalAddress_Town_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_Region +#define SCHEMA_IfcPostalAddress_Region_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_PostalCode +#define SCHEMA_IfcPostalAddress_PostalCode_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_Country +#define SCHEMA_IfcPostalAddress_Country_IS_OPTIONAL +#define SCHEMA_HAS_IfcPreDefinedColour +#define SCHEMA_HAS_IfcPreDefinedCurveFont +#define SCHEMA_HAS_IfcPreDefinedItem +#define SCHEMA_IfcPreDefinedItem_HAS_Name +#define SCHEMA_HAS_IfcPreDefinedProperties +#define SCHEMA_HAS_IfcPreDefinedPropertySet +#define SCHEMA_HAS_IfcPreDefinedTextFont +#define SCHEMA_HAS_IfcPresentationItem +#define SCHEMA_HAS_IfcPresentationLayerAssignment +#define SCHEMA_IfcPresentationLayerAssignment_HAS_Name +#define SCHEMA_IfcPresentationLayerAssignment_HAS_Description +#define SCHEMA_IfcPresentationLayerAssignment_Description_IS_OPTIONAL +#define SCHEMA_IfcPresentationLayerAssignment_HAS_AssignedItems +#define SCHEMA_IfcPresentationLayerAssignment_HAS_Identifier +#define SCHEMA_IfcPresentationLayerAssignment_Identifier_IS_OPTIONAL +#define SCHEMA_HAS_IfcPresentationLayerWithStyle +#define SCHEMA_IfcPresentationLayerWithStyle_HAS_LayerOn +#define SCHEMA_IfcPresentationLayerWithStyle_HAS_LayerFrozen +#define SCHEMA_IfcPresentationLayerWithStyle_HAS_LayerBlocked +#define SCHEMA_IfcPresentationLayerWithStyle_HAS_LayerStyles +#define SCHEMA_HAS_IfcPresentationStyle +#define SCHEMA_IfcPresentationStyle_HAS_Name +#define SCHEMA_IfcPresentationStyle_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcPresentationStyleAssignment +#define SCHEMA_IfcPresentationStyleAssignment_HAS_Styles +#define SCHEMA_HAS_IfcProcedure +#define SCHEMA_IfcProcedure_HAS_PredefinedType +#define SCHEMA_IfcProcedure_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcProcedureType +#define SCHEMA_IfcProcedureType_HAS_PredefinedType +#define SCHEMA_HAS_IfcProcess +#define SCHEMA_IfcProcess_HAS_Identification +#define SCHEMA_IfcProcess_Identification_IS_OPTIONAL +#define SCHEMA_IfcProcess_HAS_LongDescription +#define SCHEMA_IfcProcess_LongDescription_IS_OPTIONAL +#define SCHEMA_HAS_IfcProduct +#define SCHEMA_IfcProduct_HAS_ObjectPlacement +#define SCHEMA_IfcProduct_ObjectPlacement_IS_OPTIONAL +#define SCHEMA_IfcProduct_HAS_Representation +#define SCHEMA_IfcProduct_Representation_IS_OPTIONAL +#define SCHEMA_HAS_IfcProductDefinitionShape +#define SCHEMA_HAS_IfcProductRepresentation +#define SCHEMA_IfcProductRepresentation_HAS_Name +#define SCHEMA_IfcProductRepresentation_Name_IS_OPTIONAL +#define SCHEMA_IfcProductRepresentation_HAS_Description +#define SCHEMA_IfcProductRepresentation_Description_IS_OPTIONAL +#define SCHEMA_IfcProductRepresentation_HAS_Representations +#define SCHEMA_HAS_IfcProfileDef +#define SCHEMA_IfcProfileDef_HAS_ProfileType +#define SCHEMA_IfcProfileDef_HAS_ProfileName +#define SCHEMA_IfcProfileDef_ProfileName_IS_OPTIONAL +#define SCHEMA_HAS_IfcProfileProperties +#define SCHEMA_IfcProfileProperties_HAS_ProfileDefinition +#define SCHEMA_HAS_IfcProject +#define SCHEMA_HAS_IfcProjectLibrary +#define SCHEMA_HAS_IfcProjectOrder +#define SCHEMA_IfcProjectOrder_HAS_PredefinedType +#define SCHEMA_IfcProjectOrder_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcProjectOrder_HAS_Status +#define SCHEMA_IfcProjectOrder_Status_IS_OPTIONAL +#define SCHEMA_IfcProjectOrder_HAS_LongDescription +#define SCHEMA_IfcProjectOrder_LongDescription_IS_OPTIONAL +#define SCHEMA_HAS_IfcProjectedCRS +#define SCHEMA_IfcProjectedCRS_HAS_MapProjection +#define SCHEMA_IfcProjectedCRS_MapProjection_IS_OPTIONAL +#define SCHEMA_IfcProjectedCRS_HAS_MapZone +#define SCHEMA_IfcProjectedCRS_MapZone_IS_OPTIONAL +#define SCHEMA_IfcProjectedCRS_HAS_MapUnit +#define SCHEMA_IfcProjectedCRS_MapUnit_IS_OPTIONAL +#define SCHEMA_HAS_IfcProjectionElement +#define SCHEMA_IfcProjectionElement_HAS_PredefinedType +#define SCHEMA_IfcProjectionElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcProperty +#define SCHEMA_IfcProperty_HAS_Name +#define SCHEMA_IfcProperty_HAS_Description +#define SCHEMA_IfcProperty_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyAbstraction +#define SCHEMA_HAS_IfcPropertyBoundedValue +#define SCHEMA_IfcPropertyBoundedValue_HAS_UpperBoundValue +#define SCHEMA_IfcPropertyBoundedValue_UpperBoundValue_IS_OPTIONAL +#define SCHEMA_IfcPropertyBoundedValue_HAS_LowerBoundValue +#define SCHEMA_IfcPropertyBoundedValue_LowerBoundValue_IS_OPTIONAL +#define SCHEMA_IfcPropertyBoundedValue_HAS_Unit +#define SCHEMA_IfcPropertyBoundedValue_Unit_IS_OPTIONAL +#define SCHEMA_IfcPropertyBoundedValue_HAS_SetPointValue +#define SCHEMA_IfcPropertyBoundedValue_SetPointValue_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyDefinition +#define SCHEMA_HAS_IfcPropertyDependencyRelationship +#define SCHEMA_IfcPropertyDependencyRelationship_HAS_DependingProperty +#define SCHEMA_IfcPropertyDependencyRelationship_HAS_DependantProperty +#define SCHEMA_IfcPropertyDependencyRelationship_HAS_Expression +#define SCHEMA_IfcPropertyDependencyRelationship_Expression_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyEnumeratedValue +#define SCHEMA_IfcPropertyEnumeratedValue_HAS_EnumerationValues +#define SCHEMA_IfcPropertyEnumeratedValue_EnumerationValues_IS_OPTIONAL +#define SCHEMA_IfcPropertyEnumeratedValue_HAS_EnumerationReference +#define SCHEMA_IfcPropertyEnumeratedValue_EnumerationReference_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyEnumeration +#define SCHEMA_IfcPropertyEnumeration_HAS_Name +#define SCHEMA_IfcPropertyEnumeration_HAS_EnumerationValues +#define SCHEMA_IfcPropertyEnumeration_HAS_Unit +#define SCHEMA_IfcPropertyEnumeration_Unit_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyListValue +#define SCHEMA_IfcPropertyListValue_HAS_ListValues +#define SCHEMA_IfcPropertyListValue_ListValues_IS_OPTIONAL +#define SCHEMA_IfcPropertyListValue_HAS_Unit +#define SCHEMA_IfcPropertyListValue_Unit_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyReferenceValue +#define SCHEMA_IfcPropertyReferenceValue_HAS_UsageName +#define SCHEMA_IfcPropertyReferenceValue_UsageName_IS_OPTIONAL +#define SCHEMA_IfcPropertyReferenceValue_HAS_PropertyReference +#define SCHEMA_IfcPropertyReferenceValue_PropertyReference_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertySet +#define SCHEMA_IfcPropertySet_HAS_HasProperties +#define SCHEMA_HAS_IfcPropertySetDefinition +#define SCHEMA_HAS_IfcPropertySetTemplate +#define SCHEMA_IfcPropertySetTemplate_HAS_TemplateType +#define SCHEMA_IfcPropertySetTemplate_TemplateType_IS_OPTIONAL +#define SCHEMA_IfcPropertySetTemplate_HAS_ApplicableEntity +#define SCHEMA_IfcPropertySetTemplate_ApplicableEntity_IS_OPTIONAL +#define SCHEMA_IfcPropertySetTemplate_HAS_HasPropertyTemplates +#define SCHEMA_HAS_IfcPropertySingleValue +#define SCHEMA_IfcPropertySingleValue_HAS_NominalValue +#define SCHEMA_IfcPropertySingleValue_NominalValue_IS_OPTIONAL +#define SCHEMA_IfcPropertySingleValue_HAS_Unit +#define SCHEMA_IfcPropertySingleValue_Unit_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyTableValue +#define SCHEMA_IfcPropertyTableValue_HAS_DefiningValues +#define SCHEMA_IfcPropertyTableValue_DefiningValues_IS_OPTIONAL +#define SCHEMA_IfcPropertyTableValue_HAS_DefinedValues +#define SCHEMA_IfcPropertyTableValue_DefinedValues_IS_OPTIONAL +#define SCHEMA_IfcPropertyTableValue_HAS_Expression +#define SCHEMA_IfcPropertyTableValue_Expression_IS_OPTIONAL +#define SCHEMA_IfcPropertyTableValue_HAS_DefiningUnit +#define SCHEMA_IfcPropertyTableValue_DefiningUnit_IS_OPTIONAL +#define SCHEMA_IfcPropertyTableValue_HAS_DefinedUnit +#define SCHEMA_IfcPropertyTableValue_DefinedUnit_IS_OPTIONAL +#define SCHEMA_IfcPropertyTableValue_HAS_CurveInterpolation +#define SCHEMA_IfcPropertyTableValue_CurveInterpolation_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyTemplate +#define SCHEMA_HAS_IfcPropertyTemplateDefinition +#define SCHEMA_HAS_IfcProtectiveDevice +#define SCHEMA_IfcProtectiveDevice_HAS_PredefinedType +#define SCHEMA_IfcProtectiveDevice_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcProtectiveDeviceTrippingUnit +#define SCHEMA_IfcProtectiveDeviceTrippingUnit_HAS_PredefinedType +#define SCHEMA_IfcProtectiveDeviceTrippingUnit_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcProtectiveDeviceTrippingUnitType +#define SCHEMA_IfcProtectiveDeviceTrippingUnitType_HAS_PredefinedType +#define SCHEMA_HAS_IfcProtectiveDeviceType +#define SCHEMA_IfcProtectiveDeviceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcProxy +#define SCHEMA_IfcProxy_HAS_ProxyType +#define SCHEMA_IfcProxy_HAS_Tag +#define SCHEMA_IfcProxy_Tag_IS_OPTIONAL +#define SCHEMA_HAS_IfcPump +#define SCHEMA_IfcPump_HAS_PredefinedType +#define SCHEMA_IfcPump_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcPumpType +#define SCHEMA_IfcPumpType_HAS_PredefinedType +#define SCHEMA_HAS_IfcQuantityArea +#define SCHEMA_IfcQuantityArea_HAS_AreaValue +#define SCHEMA_IfcQuantityArea_HAS_Formula +#define SCHEMA_IfcQuantityArea_Formula_IS_OPTIONAL +#define SCHEMA_HAS_IfcQuantityCount +#define SCHEMA_IfcQuantityCount_HAS_CountValue +#define SCHEMA_IfcQuantityCount_HAS_Formula +#define SCHEMA_IfcQuantityCount_Formula_IS_OPTIONAL +#define SCHEMA_HAS_IfcQuantityLength +#define SCHEMA_IfcQuantityLength_HAS_LengthValue +#define SCHEMA_IfcQuantityLength_HAS_Formula +#define SCHEMA_IfcQuantityLength_Formula_IS_OPTIONAL +#define SCHEMA_HAS_IfcQuantitySet +#define SCHEMA_HAS_IfcQuantityTime +#define SCHEMA_IfcQuantityTime_HAS_TimeValue +#define SCHEMA_IfcQuantityTime_HAS_Formula +#define SCHEMA_IfcQuantityTime_Formula_IS_OPTIONAL +#define SCHEMA_HAS_IfcQuantityVolume +#define SCHEMA_IfcQuantityVolume_HAS_VolumeValue +#define SCHEMA_IfcQuantityVolume_HAS_Formula +#define SCHEMA_IfcQuantityVolume_Formula_IS_OPTIONAL +#define SCHEMA_HAS_IfcQuantityWeight +#define SCHEMA_IfcQuantityWeight_HAS_WeightValue +#define SCHEMA_IfcQuantityWeight_HAS_Formula +#define SCHEMA_IfcQuantityWeight_Formula_IS_OPTIONAL +#define SCHEMA_HAS_IfcRailing +#define SCHEMA_IfcRailing_HAS_PredefinedType +#define SCHEMA_IfcRailing_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRailingType +#define SCHEMA_IfcRailingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcRamp +#define SCHEMA_IfcRamp_HAS_PredefinedType +#define SCHEMA_IfcRamp_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRampFlight +#define SCHEMA_IfcRampFlight_HAS_PredefinedType +#define SCHEMA_IfcRampFlight_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRampFlightType +#define SCHEMA_IfcRampFlightType_HAS_PredefinedType +#define SCHEMA_HAS_IfcRampType +#define SCHEMA_IfcRampType_HAS_PredefinedType +#define SCHEMA_HAS_IfcRationalBSplineCurveWithKnots +#define SCHEMA_IfcRationalBSplineCurveWithKnots_HAS_WeightsData +#define SCHEMA_HAS_IfcRationalBSplineSurfaceWithKnots +#define SCHEMA_IfcRationalBSplineSurfaceWithKnots_HAS_WeightsData +#define SCHEMA_HAS_IfcRectangleHollowProfileDef +#define SCHEMA_IfcRectangleHollowProfileDef_HAS_WallThickness +#define SCHEMA_IfcRectangleHollowProfileDef_HAS_InnerFilletRadius +#define SCHEMA_IfcRectangleHollowProfileDef_InnerFilletRadius_IS_OPTIONAL +#define SCHEMA_IfcRectangleHollowProfileDef_HAS_OuterFilletRadius +#define SCHEMA_IfcRectangleHollowProfileDef_OuterFilletRadius_IS_OPTIONAL +#define SCHEMA_HAS_IfcRectangleProfileDef +#define SCHEMA_IfcRectangleProfileDef_HAS_XDim +#define SCHEMA_IfcRectangleProfileDef_HAS_YDim +#define SCHEMA_HAS_IfcRectangularPyramid +#define SCHEMA_IfcRectangularPyramid_HAS_XLength +#define SCHEMA_IfcRectangularPyramid_HAS_YLength +#define SCHEMA_IfcRectangularPyramid_HAS_Height +#define SCHEMA_HAS_IfcRectangularTrimmedSurface +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_BasisSurface +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_U1 +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_V1 +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_U2 +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_V2 +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_Usense +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_Vsense +#define SCHEMA_HAS_IfcRecurrencePattern +#define SCHEMA_IfcRecurrencePattern_HAS_RecurrenceType +#define SCHEMA_IfcRecurrencePattern_HAS_DayComponent +#define SCHEMA_IfcRecurrencePattern_DayComponent_IS_OPTIONAL +#define SCHEMA_IfcRecurrencePattern_HAS_WeekdayComponent +#define SCHEMA_IfcRecurrencePattern_WeekdayComponent_IS_OPTIONAL +#define SCHEMA_IfcRecurrencePattern_HAS_MonthComponent +#define SCHEMA_IfcRecurrencePattern_MonthComponent_IS_OPTIONAL +#define SCHEMA_IfcRecurrencePattern_HAS_Position +#define SCHEMA_IfcRecurrencePattern_Position_IS_OPTIONAL +#define SCHEMA_IfcRecurrencePattern_HAS_Interval +#define SCHEMA_IfcRecurrencePattern_Interval_IS_OPTIONAL +#define SCHEMA_IfcRecurrencePattern_HAS_Occurrences +#define SCHEMA_IfcRecurrencePattern_Occurrences_IS_OPTIONAL +#define SCHEMA_IfcRecurrencePattern_HAS_TimePeriods +#define SCHEMA_IfcRecurrencePattern_TimePeriods_IS_OPTIONAL +#define SCHEMA_HAS_IfcReference +#define SCHEMA_IfcReference_HAS_TypeIdentifier +#define SCHEMA_IfcReference_TypeIdentifier_IS_OPTIONAL +#define SCHEMA_IfcReference_HAS_AttributeIdentifier +#define SCHEMA_IfcReference_AttributeIdentifier_IS_OPTIONAL +#define SCHEMA_IfcReference_HAS_InstanceName +#define SCHEMA_IfcReference_InstanceName_IS_OPTIONAL +#define SCHEMA_IfcReference_HAS_ListPositions +#define SCHEMA_IfcReference_ListPositions_IS_OPTIONAL +#define SCHEMA_IfcReference_HAS_InnerReference +#define SCHEMA_IfcReference_InnerReference_IS_OPTIONAL +#define SCHEMA_HAS_IfcRegularTimeSeries +#define SCHEMA_IfcRegularTimeSeries_HAS_TimeStep +#define SCHEMA_IfcRegularTimeSeries_HAS_Values +#define SCHEMA_HAS_IfcReinforcementBarProperties +#define SCHEMA_IfcReinforcementBarProperties_HAS_TotalCrossSectionArea +#define SCHEMA_IfcReinforcementBarProperties_HAS_SteelGrade +#define SCHEMA_IfcReinforcementBarProperties_HAS_BarSurface +#define SCHEMA_IfcReinforcementBarProperties_BarSurface_IS_OPTIONAL +#define SCHEMA_IfcReinforcementBarProperties_HAS_EffectiveDepth +#define SCHEMA_IfcReinforcementBarProperties_EffectiveDepth_IS_OPTIONAL +#define SCHEMA_IfcReinforcementBarProperties_HAS_NominalBarDiameter +#define SCHEMA_IfcReinforcementBarProperties_NominalBarDiameter_IS_OPTIONAL +#define SCHEMA_IfcReinforcementBarProperties_HAS_BarCount +#define SCHEMA_IfcReinforcementBarProperties_BarCount_IS_OPTIONAL +#define SCHEMA_HAS_IfcReinforcementDefinitionProperties +#define SCHEMA_IfcReinforcementDefinitionProperties_HAS_DefinitionType +#define SCHEMA_IfcReinforcementDefinitionProperties_DefinitionType_IS_OPTIONAL +#define SCHEMA_IfcReinforcementDefinitionProperties_HAS_ReinforcementSectionDefinitions +#define SCHEMA_HAS_IfcReinforcingBar +#define SCHEMA_IfcReinforcingBar_HAS_NominalDiameter +#define SCHEMA_IfcReinforcingBar_NominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBar_HAS_CrossSectionArea +#define SCHEMA_IfcReinforcingBar_CrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBar_HAS_BarLength +#define SCHEMA_IfcReinforcingBar_BarLength_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBar_HAS_PredefinedType +#define SCHEMA_IfcReinforcingBar_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBar_HAS_BarSurface +#define SCHEMA_IfcReinforcingBar_BarSurface_IS_OPTIONAL +#define SCHEMA_HAS_IfcReinforcingBarType +#define SCHEMA_IfcReinforcingBarType_HAS_PredefinedType +#define SCHEMA_IfcReinforcingBarType_HAS_NominalDiameter +#define SCHEMA_IfcReinforcingBarType_NominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBarType_HAS_CrossSectionArea +#define SCHEMA_IfcReinforcingBarType_CrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBarType_HAS_BarLength +#define SCHEMA_IfcReinforcingBarType_BarLength_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBarType_HAS_BarSurface +#define SCHEMA_IfcReinforcingBarType_BarSurface_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBarType_HAS_BendingShapeCode +#define SCHEMA_IfcReinforcingBarType_BendingShapeCode_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBarType_HAS_BendingParameters +#define SCHEMA_IfcReinforcingBarType_BendingParameters_IS_OPTIONAL +#define SCHEMA_HAS_IfcReinforcingElement +#define SCHEMA_IfcReinforcingElement_HAS_SteelGrade +#define SCHEMA_IfcReinforcingElement_SteelGrade_IS_OPTIONAL +#define SCHEMA_HAS_IfcReinforcingElementType +#define SCHEMA_HAS_IfcReinforcingMesh +#define SCHEMA_IfcReinforcingMesh_HAS_MeshLength +#define SCHEMA_IfcReinforcingMesh_MeshLength_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_MeshWidth +#define SCHEMA_IfcReinforcingMesh_MeshWidth_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_LongitudinalBarNominalDiameter +#define SCHEMA_IfcReinforcingMesh_LongitudinalBarNominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_TransverseBarNominalDiameter +#define SCHEMA_IfcReinforcingMesh_TransverseBarNominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_LongitudinalBarCrossSectionArea +#define SCHEMA_IfcReinforcingMesh_LongitudinalBarCrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_TransverseBarCrossSectionArea +#define SCHEMA_IfcReinforcingMesh_TransverseBarCrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_LongitudinalBarSpacing +#define SCHEMA_IfcReinforcingMesh_LongitudinalBarSpacing_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_TransverseBarSpacing +#define SCHEMA_IfcReinforcingMesh_TransverseBarSpacing_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_PredefinedType +#define SCHEMA_IfcReinforcingMesh_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcReinforcingMeshType +#define SCHEMA_IfcReinforcingMeshType_HAS_PredefinedType +#define SCHEMA_IfcReinforcingMeshType_HAS_MeshLength +#define SCHEMA_IfcReinforcingMeshType_MeshLength_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_MeshWidth +#define SCHEMA_IfcReinforcingMeshType_MeshWidth_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_LongitudinalBarNominalDiameter +#define SCHEMA_IfcReinforcingMeshType_LongitudinalBarNominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_TransverseBarNominalDiameter +#define SCHEMA_IfcReinforcingMeshType_TransverseBarNominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_LongitudinalBarCrossSectionArea +#define SCHEMA_IfcReinforcingMeshType_LongitudinalBarCrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_TransverseBarCrossSectionArea +#define SCHEMA_IfcReinforcingMeshType_TransverseBarCrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_LongitudinalBarSpacing +#define SCHEMA_IfcReinforcingMeshType_LongitudinalBarSpacing_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_TransverseBarSpacing +#define SCHEMA_IfcReinforcingMeshType_TransverseBarSpacing_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_BendingShapeCode +#define SCHEMA_IfcReinforcingMeshType_BendingShapeCode_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_BendingParameters +#define SCHEMA_IfcReinforcingMeshType_BendingParameters_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelAggregates +#define SCHEMA_IfcRelAggregates_HAS_RelatingObject +#define SCHEMA_IfcRelAggregates_HAS_RelatedObjects +#define SCHEMA_HAS_IfcRelAssigns +#define SCHEMA_IfcRelAssigns_HAS_RelatedObjects +#define SCHEMA_IfcRelAssigns_HAS_RelatedObjectsType +#define SCHEMA_IfcRelAssigns_RelatedObjectsType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelAssignsToActor +#define SCHEMA_IfcRelAssignsToActor_HAS_RelatingActor +#define SCHEMA_IfcRelAssignsToActor_HAS_ActingRole +#define SCHEMA_IfcRelAssignsToActor_ActingRole_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelAssignsToControl +#define SCHEMA_IfcRelAssignsToControl_HAS_RelatingControl +#define SCHEMA_HAS_IfcRelAssignsToGroup +#define SCHEMA_IfcRelAssignsToGroup_HAS_RelatingGroup +#define SCHEMA_HAS_IfcRelAssignsToGroupByFactor +#define SCHEMA_IfcRelAssignsToGroupByFactor_HAS_Factor +#define SCHEMA_HAS_IfcRelAssignsToProcess +#define SCHEMA_IfcRelAssignsToProcess_HAS_RelatingProcess +#define SCHEMA_IfcRelAssignsToProcess_HAS_QuantityInProcess +#define SCHEMA_IfcRelAssignsToProcess_QuantityInProcess_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelAssignsToProduct +#define SCHEMA_IfcRelAssignsToProduct_HAS_RelatingProduct +#define SCHEMA_HAS_IfcRelAssignsToResource +#define SCHEMA_IfcRelAssignsToResource_HAS_RelatingResource +#define SCHEMA_HAS_IfcRelAssociates +#define SCHEMA_IfcRelAssociates_HAS_RelatedObjects +#define SCHEMA_HAS_IfcRelAssociatesApproval +#define SCHEMA_IfcRelAssociatesApproval_HAS_RelatingApproval +#define SCHEMA_HAS_IfcRelAssociatesClassification +#define SCHEMA_IfcRelAssociatesClassification_HAS_RelatingClassification +#define SCHEMA_HAS_IfcRelAssociatesConstraint +#define SCHEMA_IfcRelAssociatesConstraint_HAS_Intent +#define SCHEMA_IfcRelAssociatesConstraint_Intent_IS_OPTIONAL +#define SCHEMA_IfcRelAssociatesConstraint_HAS_RelatingConstraint +#define SCHEMA_HAS_IfcRelAssociatesDocument +#define SCHEMA_IfcRelAssociatesDocument_HAS_RelatingDocument +#define SCHEMA_HAS_IfcRelAssociatesLibrary +#define SCHEMA_IfcRelAssociatesLibrary_HAS_RelatingLibrary +#define SCHEMA_HAS_IfcRelAssociatesMaterial +#define SCHEMA_IfcRelAssociatesMaterial_HAS_RelatingMaterial +#define SCHEMA_HAS_IfcRelConnects +#define SCHEMA_HAS_IfcRelConnectsElements +#define SCHEMA_IfcRelConnectsElements_HAS_ConnectionGeometry +#define SCHEMA_IfcRelConnectsElements_ConnectionGeometry_IS_OPTIONAL +#define SCHEMA_IfcRelConnectsElements_HAS_RelatingElement +#define SCHEMA_IfcRelConnectsElements_HAS_RelatedElement +#define SCHEMA_HAS_IfcRelConnectsPathElements +#define SCHEMA_IfcRelConnectsPathElements_HAS_RelatingPriorities +#define SCHEMA_IfcRelConnectsPathElements_HAS_RelatedPriorities +#define SCHEMA_IfcRelConnectsPathElements_HAS_RelatedConnectionType +#define SCHEMA_IfcRelConnectsPathElements_HAS_RelatingConnectionType +#define SCHEMA_HAS_IfcRelConnectsPortToElement +#define SCHEMA_IfcRelConnectsPortToElement_HAS_RelatingPort +#define SCHEMA_IfcRelConnectsPortToElement_HAS_RelatedElement +#define SCHEMA_HAS_IfcRelConnectsPorts +#define SCHEMA_IfcRelConnectsPorts_HAS_RelatingPort +#define SCHEMA_IfcRelConnectsPorts_HAS_RelatedPort +#define SCHEMA_IfcRelConnectsPorts_HAS_RealizingElement +#define SCHEMA_IfcRelConnectsPorts_RealizingElement_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelConnectsStructuralActivity +#define SCHEMA_IfcRelConnectsStructuralActivity_HAS_RelatingElement +#define SCHEMA_IfcRelConnectsStructuralActivity_HAS_RelatedStructuralActivity +#define SCHEMA_HAS_IfcRelConnectsStructuralMember +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_RelatingStructuralMember +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_RelatedStructuralConnection +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_AppliedCondition +#define SCHEMA_IfcRelConnectsStructuralMember_AppliedCondition_IS_OPTIONAL +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_AdditionalConditions +#define SCHEMA_IfcRelConnectsStructuralMember_AdditionalConditions_IS_OPTIONAL +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_SupportedLength +#define SCHEMA_IfcRelConnectsStructuralMember_SupportedLength_IS_OPTIONAL +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_ConditionCoordinateSystem +#define SCHEMA_IfcRelConnectsStructuralMember_ConditionCoordinateSystem_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelConnectsWithEccentricity +#define SCHEMA_IfcRelConnectsWithEccentricity_HAS_ConnectionConstraint +#define SCHEMA_HAS_IfcRelConnectsWithRealizingElements +#define SCHEMA_IfcRelConnectsWithRealizingElements_HAS_RealizingElements +#define SCHEMA_IfcRelConnectsWithRealizingElements_HAS_ConnectionType +#define SCHEMA_IfcRelConnectsWithRealizingElements_ConnectionType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelContainedInSpatialStructure +#define SCHEMA_IfcRelContainedInSpatialStructure_HAS_RelatedElements +#define SCHEMA_IfcRelContainedInSpatialStructure_HAS_RelatingStructure +#define SCHEMA_HAS_IfcRelCoversBldgElements +#define SCHEMA_IfcRelCoversBldgElements_HAS_RelatingBuildingElement +#define SCHEMA_IfcRelCoversBldgElements_HAS_RelatedCoverings +#define SCHEMA_HAS_IfcRelCoversSpaces +#define SCHEMA_IfcRelCoversSpaces_HAS_RelatingSpace +#define SCHEMA_IfcRelCoversSpaces_HAS_RelatedCoverings +#define SCHEMA_HAS_IfcRelDeclares +#define SCHEMA_IfcRelDeclares_HAS_RelatingContext +#define SCHEMA_IfcRelDeclares_HAS_RelatedDefinitions +#define SCHEMA_HAS_IfcRelDecomposes +#define SCHEMA_HAS_IfcRelDefines +#define SCHEMA_HAS_IfcRelDefinesByObject +#define SCHEMA_IfcRelDefinesByObject_HAS_RelatedObjects +#define SCHEMA_IfcRelDefinesByObject_HAS_RelatingObject +#define SCHEMA_HAS_IfcRelDefinesByProperties +#define SCHEMA_IfcRelDefinesByProperties_HAS_RelatedObjects +#define SCHEMA_IfcRelDefinesByProperties_HAS_RelatingPropertyDefinition +#define SCHEMA_HAS_IfcRelDefinesByTemplate +#define SCHEMA_IfcRelDefinesByTemplate_HAS_RelatedPropertySets +#define SCHEMA_IfcRelDefinesByTemplate_HAS_RelatingTemplate +#define SCHEMA_HAS_IfcRelDefinesByType +#define SCHEMA_IfcRelDefinesByType_HAS_RelatedObjects +#define SCHEMA_IfcRelDefinesByType_HAS_RelatingType +#define SCHEMA_HAS_IfcRelFillsElement +#define SCHEMA_IfcRelFillsElement_HAS_RelatingOpeningElement +#define SCHEMA_IfcRelFillsElement_HAS_RelatedBuildingElement +#define SCHEMA_HAS_IfcRelFlowControlElements +#define SCHEMA_IfcRelFlowControlElements_HAS_RelatedControlElements +#define SCHEMA_IfcRelFlowControlElements_HAS_RelatingFlowElement +#define SCHEMA_HAS_IfcRelInterferesElements +#define SCHEMA_IfcRelInterferesElements_HAS_RelatingElement +#define SCHEMA_IfcRelInterferesElements_HAS_RelatedElement +#define SCHEMA_IfcRelInterferesElements_HAS_InterferenceGeometry +#define SCHEMA_IfcRelInterferesElements_InterferenceGeometry_IS_OPTIONAL +#define SCHEMA_IfcRelInterferesElements_HAS_InterferenceType +#define SCHEMA_IfcRelInterferesElements_InterferenceType_IS_OPTIONAL +#define SCHEMA_IfcRelInterferesElements_HAS_ImpliedOrder +#define SCHEMA_HAS_IfcRelNests +#define SCHEMA_IfcRelNests_HAS_RelatingObject +#define SCHEMA_IfcRelNests_HAS_RelatedObjects +#define SCHEMA_HAS_IfcRelProjectsElement +#define SCHEMA_IfcRelProjectsElement_HAS_RelatingElement +#define SCHEMA_IfcRelProjectsElement_HAS_RelatedFeatureElement +#define SCHEMA_HAS_IfcRelReferencedInSpatialStructure +#define SCHEMA_IfcRelReferencedInSpatialStructure_HAS_RelatedElements +#define SCHEMA_IfcRelReferencedInSpatialStructure_HAS_RelatingStructure +#define SCHEMA_HAS_IfcRelSequence +#define SCHEMA_IfcRelSequence_HAS_RelatingProcess +#define SCHEMA_IfcRelSequence_HAS_RelatedProcess +#define SCHEMA_IfcRelSequence_HAS_TimeLag +#define SCHEMA_IfcRelSequence_TimeLag_IS_OPTIONAL +#define SCHEMA_IfcRelSequence_HAS_SequenceType +#define SCHEMA_IfcRelSequence_SequenceType_IS_OPTIONAL +#define SCHEMA_IfcRelSequence_HAS_UserDefinedSequenceType +#define SCHEMA_IfcRelSequence_UserDefinedSequenceType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelServicesBuildings +#define SCHEMA_IfcRelServicesBuildings_HAS_RelatingSystem +#define SCHEMA_IfcRelServicesBuildings_HAS_RelatedBuildings +#define SCHEMA_HAS_IfcRelSpaceBoundary +#define SCHEMA_IfcRelSpaceBoundary_HAS_RelatingSpace +#define SCHEMA_IfcRelSpaceBoundary_HAS_RelatedBuildingElement +#define SCHEMA_IfcRelSpaceBoundary_HAS_ConnectionGeometry +#define SCHEMA_IfcRelSpaceBoundary_ConnectionGeometry_IS_OPTIONAL +#define SCHEMA_IfcRelSpaceBoundary_HAS_PhysicalOrVirtualBoundary +#define SCHEMA_IfcRelSpaceBoundary_HAS_InternalOrExternalBoundary +#define SCHEMA_HAS_IfcRelSpaceBoundary1stLevel +#define SCHEMA_IfcRelSpaceBoundary1stLevel_HAS_ParentBoundary +#define SCHEMA_IfcRelSpaceBoundary1stLevel_ParentBoundary_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelSpaceBoundary2ndLevel +#define SCHEMA_IfcRelSpaceBoundary2ndLevel_HAS_CorrespondingBoundary +#define SCHEMA_IfcRelSpaceBoundary2ndLevel_CorrespondingBoundary_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelVoidsElement +#define SCHEMA_IfcRelVoidsElement_HAS_RelatingBuildingElement +#define SCHEMA_IfcRelVoidsElement_HAS_RelatedOpeningElement +#define SCHEMA_HAS_IfcRelationship +#define SCHEMA_HAS_IfcReparametrisedCompositeCurveSegment +#define SCHEMA_IfcReparametrisedCompositeCurveSegment_HAS_ParamLength +#define SCHEMA_HAS_IfcRepresentation +#define SCHEMA_IfcRepresentation_HAS_ContextOfItems +#define SCHEMA_IfcRepresentation_HAS_RepresentationIdentifier +#define SCHEMA_IfcRepresentation_RepresentationIdentifier_IS_OPTIONAL +#define SCHEMA_IfcRepresentation_HAS_RepresentationType +#define SCHEMA_IfcRepresentation_RepresentationType_IS_OPTIONAL +#define SCHEMA_IfcRepresentation_HAS_Items +#define SCHEMA_HAS_IfcRepresentationContext +#define SCHEMA_IfcRepresentationContext_HAS_ContextIdentifier +#define SCHEMA_IfcRepresentationContext_ContextIdentifier_IS_OPTIONAL +#define SCHEMA_IfcRepresentationContext_HAS_ContextType +#define SCHEMA_IfcRepresentationContext_ContextType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRepresentationItem +#define SCHEMA_HAS_IfcRepresentationMap +#define SCHEMA_IfcRepresentationMap_HAS_MappingOrigin +#define SCHEMA_IfcRepresentationMap_HAS_MappedRepresentation +#define SCHEMA_HAS_IfcResource +#define SCHEMA_IfcResource_HAS_Identification +#define SCHEMA_IfcResource_Identification_IS_OPTIONAL +#define SCHEMA_IfcResource_HAS_LongDescription +#define SCHEMA_IfcResource_LongDescription_IS_OPTIONAL +#define SCHEMA_HAS_IfcResourceApprovalRelationship +#define SCHEMA_IfcResourceApprovalRelationship_HAS_RelatedResourceObjects +#define SCHEMA_IfcResourceApprovalRelationship_HAS_RelatingApproval +#define SCHEMA_HAS_IfcResourceConstraintRelationship +#define SCHEMA_IfcResourceConstraintRelationship_HAS_RelatingConstraint +#define SCHEMA_IfcResourceConstraintRelationship_HAS_RelatedResourceObjects +#define SCHEMA_HAS_IfcResourceLevelRelationship +#define SCHEMA_IfcResourceLevelRelationship_HAS_Name +#define SCHEMA_IfcResourceLevelRelationship_Name_IS_OPTIONAL +#define SCHEMA_IfcResourceLevelRelationship_HAS_Description +#define SCHEMA_IfcResourceLevelRelationship_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcResourceTime +#define SCHEMA_IfcResourceTime_HAS_ScheduleWork +#define SCHEMA_IfcResourceTime_ScheduleWork_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ScheduleUsage +#define SCHEMA_IfcResourceTime_ScheduleUsage_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ScheduleStart +#define SCHEMA_IfcResourceTime_ScheduleStart_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ScheduleFinish +#define SCHEMA_IfcResourceTime_ScheduleFinish_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ScheduleContour +#define SCHEMA_IfcResourceTime_ScheduleContour_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_LevelingDelay +#define SCHEMA_IfcResourceTime_LevelingDelay_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_IsOverAllocated +#define SCHEMA_IfcResourceTime_IsOverAllocated_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_StatusTime +#define SCHEMA_IfcResourceTime_StatusTime_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ActualWork +#define SCHEMA_IfcResourceTime_ActualWork_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ActualUsage +#define SCHEMA_IfcResourceTime_ActualUsage_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ActualStart +#define SCHEMA_IfcResourceTime_ActualStart_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ActualFinish +#define SCHEMA_IfcResourceTime_ActualFinish_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_RemainingWork +#define SCHEMA_IfcResourceTime_RemainingWork_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_RemainingUsage +#define SCHEMA_IfcResourceTime_RemainingUsage_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_Completion +#define SCHEMA_IfcResourceTime_Completion_IS_OPTIONAL +#define SCHEMA_HAS_IfcRevolvedAreaSolid +#define SCHEMA_IfcRevolvedAreaSolid_HAS_Axis +#define SCHEMA_IfcRevolvedAreaSolid_HAS_Angle +#define SCHEMA_HAS_IfcRevolvedAreaSolidTapered +#define SCHEMA_IfcRevolvedAreaSolidTapered_HAS_EndSweptArea +#define SCHEMA_HAS_IfcRightCircularCone +#define SCHEMA_IfcRightCircularCone_HAS_Height +#define SCHEMA_IfcRightCircularCone_HAS_BottomRadius +#define SCHEMA_HAS_IfcRightCircularCylinder +#define SCHEMA_IfcRightCircularCylinder_HAS_Height +#define SCHEMA_IfcRightCircularCylinder_HAS_Radius +#define SCHEMA_HAS_IfcRoof +#define SCHEMA_IfcRoof_HAS_PredefinedType +#define SCHEMA_IfcRoof_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRoofType +#define SCHEMA_IfcRoofType_HAS_PredefinedType +#define SCHEMA_HAS_IfcRoot +#define SCHEMA_IfcRoot_HAS_GlobalId +#define SCHEMA_IfcRoot_HAS_OwnerHistory +#define SCHEMA_IfcRoot_OwnerHistory_IS_OPTIONAL +#define SCHEMA_IfcRoot_HAS_Name +#define SCHEMA_IfcRoot_Name_IS_OPTIONAL +#define SCHEMA_IfcRoot_HAS_Description +#define SCHEMA_IfcRoot_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcRoundedRectangleProfileDef +#define SCHEMA_IfcRoundedRectangleProfileDef_HAS_RoundingRadius +#define SCHEMA_HAS_IfcSIUnit +#define SCHEMA_IfcSIUnit_HAS_Prefix +#define SCHEMA_IfcSIUnit_Prefix_IS_OPTIONAL +#define SCHEMA_IfcSIUnit_HAS_Name +#define SCHEMA_HAS_IfcSanitaryTerminal +#define SCHEMA_IfcSanitaryTerminal_HAS_PredefinedType +#define SCHEMA_IfcSanitaryTerminal_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSanitaryTerminalType +#define SCHEMA_IfcSanitaryTerminalType_HAS_PredefinedType +#define SCHEMA_HAS_IfcSchedulingTime +#define SCHEMA_IfcSchedulingTime_HAS_Name +#define SCHEMA_IfcSchedulingTime_Name_IS_OPTIONAL +#define SCHEMA_IfcSchedulingTime_HAS_DataOrigin +#define SCHEMA_IfcSchedulingTime_DataOrigin_IS_OPTIONAL +#define SCHEMA_IfcSchedulingTime_HAS_UserDefinedDataOrigin +#define SCHEMA_IfcSchedulingTime_UserDefinedDataOrigin_IS_OPTIONAL +#define SCHEMA_HAS_IfcSeamCurve +#define SCHEMA_HAS_IfcSectionProperties +#define SCHEMA_IfcSectionProperties_HAS_SectionType +#define SCHEMA_IfcSectionProperties_HAS_StartProfile +#define SCHEMA_IfcSectionProperties_HAS_EndProfile +#define SCHEMA_IfcSectionProperties_EndProfile_IS_OPTIONAL +#define SCHEMA_HAS_IfcSectionReinforcementProperties +#define SCHEMA_IfcSectionReinforcementProperties_HAS_LongitudinalStartPosition +#define SCHEMA_IfcSectionReinforcementProperties_HAS_LongitudinalEndPosition +#define SCHEMA_IfcSectionReinforcementProperties_HAS_TransversePosition +#define SCHEMA_IfcSectionReinforcementProperties_TransversePosition_IS_OPTIONAL +#define SCHEMA_IfcSectionReinforcementProperties_HAS_ReinforcementRole +#define SCHEMA_IfcSectionReinforcementProperties_HAS_SectionDefinition +#define SCHEMA_IfcSectionReinforcementProperties_HAS_CrossSectionReinforcementDefinitions +#define SCHEMA_HAS_IfcSectionedSpine +#define SCHEMA_IfcSectionedSpine_HAS_SpineCurve +#define SCHEMA_IfcSectionedSpine_HAS_CrossSections +#define SCHEMA_IfcSectionedSpine_HAS_CrossSectionPositions +#define SCHEMA_HAS_IfcSensor +#define SCHEMA_IfcSensor_HAS_PredefinedType +#define SCHEMA_IfcSensor_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSensorType +#define SCHEMA_IfcSensorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcShadingDevice +#define SCHEMA_IfcShadingDevice_HAS_PredefinedType +#define SCHEMA_IfcShadingDevice_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcShadingDeviceType +#define SCHEMA_IfcShadingDeviceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcShapeAspect +#define SCHEMA_IfcShapeAspect_HAS_ShapeRepresentations +#define SCHEMA_IfcShapeAspect_HAS_Name +#define SCHEMA_IfcShapeAspect_Name_IS_OPTIONAL +#define SCHEMA_IfcShapeAspect_HAS_Description +#define SCHEMA_IfcShapeAspect_Description_IS_OPTIONAL +#define SCHEMA_IfcShapeAspect_HAS_ProductDefinitional +#define SCHEMA_IfcShapeAspect_HAS_PartOfProductDefinitionShape +#define SCHEMA_IfcShapeAspect_PartOfProductDefinitionShape_IS_OPTIONAL +#define SCHEMA_HAS_IfcShapeModel +#define SCHEMA_HAS_IfcShapeRepresentation +#define SCHEMA_HAS_IfcShellBasedSurfaceModel +#define SCHEMA_IfcShellBasedSurfaceModel_HAS_SbsmBoundary +#define SCHEMA_HAS_IfcSimpleProperty +#define SCHEMA_HAS_IfcSimplePropertyTemplate +#define SCHEMA_IfcSimplePropertyTemplate_HAS_TemplateType +#define SCHEMA_IfcSimplePropertyTemplate_TemplateType_IS_OPTIONAL +#define SCHEMA_IfcSimplePropertyTemplate_HAS_PrimaryMeasureType +#define SCHEMA_IfcSimplePropertyTemplate_PrimaryMeasureType_IS_OPTIONAL +#define SCHEMA_IfcSimplePropertyTemplate_HAS_SecondaryMeasureType +#define SCHEMA_IfcSimplePropertyTemplate_SecondaryMeasureType_IS_OPTIONAL +#define SCHEMA_IfcSimplePropertyTemplate_HAS_Enumerators +#define SCHEMA_IfcSimplePropertyTemplate_Enumerators_IS_OPTIONAL +#define SCHEMA_IfcSimplePropertyTemplate_HAS_PrimaryUnit +#define SCHEMA_IfcSimplePropertyTemplate_PrimaryUnit_IS_OPTIONAL +#define SCHEMA_IfcSimplePropertyTemplate_HAS_SecondaryUnit +#define SCHEMA_IfcSimplePropertyTemplate_SecondaryUnit_IS_OPTIONAL +#define SCHEMA_IfcSimplePropertyTemplate_HAS_Expression +#define SCHEMA_IfcSimplePropertyTemplate_Expression_IS_OPTIONAL +#define SCHEMA_IfcSimplePropertyTemplate_HAS_AccessState +#define SCHEMA_IfcSimplePropertyTemplate_AccessState_IS_OPTIONAL +#define SCHEMA_HAS_IfcSite +#define SCHEMA_IfcSite_HAS_RefLatitude +#define SCHEMA_IfcSite_RefLatitude_IS_OPTIONAL +#define SCHEMA_IfcSite_HAS_RefLongitude +#define SCHEMA_IfcSite_RefLongitude_IS_OPTIONAL +#define SCHEMA_IfcSite_HAS_RefElevation +#define SCHEMA_IfcSite_RefElevation_IS_OPTIONAL +#define SCHEMA_IfcSite_HAS_LandTitleNumber +#define SCHEMA_IfcSite_LandTitleNumber_IS_OPTIONAL +#define SCHEMA_IfcSite_HAS_SiteAddress +#define SCHEMA_IfcSite_SiteAddress_IS_OPTIONAL +#define SCHEMA_HAS_IfcSlab +#define SCHEMA_IfcSlab_HAS_PredefinedType +#define SCHEMA_IfcSlab_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSlabElementedCase +#define SCHEMA_HAS_IfcSlabStandardCase +#define SCHEMA_HAS_IfcSlabType +#define SCHEMA_IfcSlabType_HAS_PredefinedType +#define SCHEMA_HAS_IfcSlippageConnectionCondition +#define SCHEMA_IfcSlippageConnectionCondition_HAS_SlippageX +#define SCHEMA_IfcSlippageConnectionCondition_SlippageX_IS_OPTIONAL +#define SCHEMA_IfcSlippageConnectionCondition_HAS_SlippageY +#define SCHEMA_IfcSlippageConnectionCondition_SlippageY_IS_OPTIONAL +#define SCHEMA_IfcSlippageConnectionCondition_HAS_SlippageZ +#define SCHEMA_IfcSlippageConnectionCondition_SlippageZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcSolarDevice +#define SCHEMA_IfcSolarDevice_HAS_PredefinedType +#define SCHEMA_IfcSolarDevice_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSolarDeviceType +#define SCHEMA_IfcSolarDeviceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcSolidModel +#define SCHEMA_HAS_IfcSpace +#define SCHEMA_IfcSpace_HAS_PredefinedType +#define SCHEMA_IfcSpace_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcSpace_HAS_ElevationWithFlooring +#define SCHEMA_IfcSpace_ElevationWithFlooring_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpaceHeater +#define SCHEMA_IfcSpaceHeater_HAS_PredefinedType +#define SCHEMA_IfcSpaceHeater_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpaceHeaterType +#define SCHEMA_IfcSpaceHeaterType_HAS_PredefinedType +#define SCHEMA_HAS_IfcSpaceType +#define SCHEMA_IfcSpaceType_HAS_PredefinedType +#define SCHEMA_IfcSpaceType_HAS_LongName +#define SCHEMA_IfcSpaceType_LongName_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpatialElement +#define SCHEMA_IfcSpatialElement_HAS_LongName +#define SCHEMA_IfcSpatialElement_LongName_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpatialElementType +#define SCHEMA_IfcSpatialElementType_HAS_ElementType +#define SCHEMA_IfcSpatialElementType_ElementType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpatialStructureElement +#define SCHEMA_IfcSpatialStructureElement_HAS_CompositionType +#define SCHEMA_IfcSpatialStructureElement_CompositionType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpatialStructureElementType +#define SCHEMA_HAS_IfcSpatialZone +#define SCHEMA_IfcSpatialZone_HAS_PredefinedType +#define SCHEMA_IfcSpatialZone_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpatialZoneType +#define SCHEMA_IfcSpatialZoneType_HAS_PredefinedType +#define SCHEMA_IfcSpatialZoneType_HAS_LongName +#define SCHEMA_IfcSpatialZoneType_LongName_IS_OPTIONAL +#define SCHEMA_HAS_IfcSphere +#define SCHEMA_IfcSphere_HAS_Radius +#define SCHEMA_HAS_IfcSphericalSurface +#define SCHEMA_IfcSphericalSurface_HAS_Radius +#define SCHEMA_HAS_IfcStackTerminal +#define SCHEMA_IfcStackTerminal_HAS_PredefinedType +#define SCHEMA_IfcStackTerminal_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcStackTerminalType +#define SCHEMA_IfcStackTerminalType_HAS_PredefinedType +#define SCHEMA_HAS_IfcStair +#define SCHEMA_IfcStair_HAS_PredefinedType +#define SCHEMA_IfcStair_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcStairFlight +#define SCHEMA_IfcStairFlight_HAS_NumberOfRisers +#define SCHEMA_IfcStairFlight_NumberOfRisers_IS_OPTIONAL +#define SCHEMA_IfcStairFlight_HAS_NumberOfTreads +#define SCHEMA_IfcStairFlight_NumberOfTreads_IS_OPTIONAL +#define SCHEMA_IfcStairFlight_HAS_RiserHeight +#define SCHEMA_IfcStairFlight_RiserHeight_IS_OPTIONAL +#define SCHEMA_IfcStairFlight_HAS_TreadLength +#define SCHEMA_IfcStairFlight_TreadLength_IS_OPTIONAL +#define SCHEMA_IfcStairFlight_HAS_PredefinedType +#define SCHEMA_IfcStairFlight_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcStairFlightType +#define SCHEMA_IfcStairFlightType_HAS_PredefinedType +#define SCHEMA_HAS_IfcStairType +#define SCHEMA_IfcStairType_HAS_PredefinedType +#define SCHEMA_HAS_IfcStructuralAction +#define SCHEMA_IfcStructuralAction_HAS_DestabilizingLoad +#define SCHEMA_IfcStructuralAction_DestabilizingLoad_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralActivity +#define SCHEMA_IfcStructuralActivity_HAS_AppliedLoad +#define SCHEMA_IfcStructuralActivity_HAS_GlobalOrLocal +#define SCHEMA_HAS_IfcStructuralAnalysisModel +#define SCHEMA_IfcStructuralAnalysisModel_HAS_PredefinedType +#define SCHEMA_IfcStructuralAnalysisModel_HAS_OrientationOf2DPlane +#define SCHEMA_IfcStructuralAnalysisModel_OrientationOf2DPlane_IS_OPTIONAL +#define SCHEMA_IfcStructuralAnalysisModel_HAS_LoadedBy +#define SCHEMA_IfcStructuralAnalysisModel_LoadedBy_IS_OPTIONAL +#define SCHEMA_IfcStructuralAnalysisModel_HAS_HasResults +#define SCHEMA_IfcStructuralAnalysisModel_HasResults_IS_OPTIONAL +#define SCHEMA_IfcStructuralAnalysisModel_HAS_SharedPlacement +#define SCHEMA_IfcStructuralAnalysisModel_SharedPlacement_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralConnection +#define SCHEMA_IfcStructuralConnection_HAS_AppliedCondition +#define SCHEMA_IfcStructuralConnection_AppliedCondition_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralConnectionCondition +#define SCHEMA_IfcStructuralConnectionCondition_HAS_Name +#define SCHEMA_IfcStructuralConnectionCondition_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralCurveAction +#define SCHEMA_IfcStructuralCurveAction_HAS_ProjectedOrTrue +#define SCHEMA_IfcStructuralCurveAction_ProjectedOrTrue_IS_OPTIONAL +#define SCHEMA_IfcStructuralCurveAction_HAS_PredefinedType +#define SCHEMA_HAS_IfcStructuralCurveConnection +#define SCHEMA_IfcStructuralCurveConnection_HAS_Axis +#define SCHEMA_HAS_IfcStructuralCurveMember +#define SCHEMA_IfcStructuralCurveMember_HAS_PredefinedType +#define SCHEMA_IfcStructuralCurveMember_HAS_Axis +#define SCHEMA_HAS_IfcStructuralCurveMemberVarying +#define SCHEMA_HAS_IfcStructuralCurveReaction +#define SCHEMA_IfcStructuralCurveReaction_HAS_PredefinedType +#define SCHEMA_HAS_IfcStructuralItem +#define SCHEMA_HAS_IfcStructuralLinearAction +#define SCHEMA_HAS_IfcStructuralLoad +#define SCHEMA_IfcStructuralLoad_HAS_Name +#define SCHEMA_IfcStructuralLoad_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadCase +#define SCHEMA_IfcStructuralLoadCase_HAS_SelfWeightCoefficients +#define SCHEMA_IfcStructuralLoadCase_SelfWeightCoefficients_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadConfiguration +#define SCHEMA_IfcStructuralLoadConfiguration_HAS_Values +#define SCHEMA_IfcStructuralLoadConfiguration_HAS_Locations +#define SCHEMA_IfcStructuralLoadConfiguration_Locations_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadGroup +#define SCHEMA_IfcStructuralLoadGroup_HAS_PredefinedType +#define SCHEMA_IfcStructuralLoadGroup_HAS_ActionType +#define SCHEMA_IfcStructuralLoadGroup_HAS_ActionSource +#define SCHEMA_IfcStructuralLoadGroup_HAS_Coefficient +#define SCHEMA_IfcStructuralLoadGroup_Coefficient_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadGroup_HAS_Purpose +#define SCHEMA_IfcStructuralLoadGroup_Purpose_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadLinearForce +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearForceX +#define SCHEMA_IfcStructuralLoadLinearForce_LinearForceX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearForceY +#define SCHEMA_IfcStructuralLoadLinearForce_LinearForceY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearForceZ +#define SCHEMA_IfcStructuralLoadLinearForce_LinearForceZ_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearMomentX +#define SCHEMA_IfcStructuralLoadLinearForce_LinearMomentX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearMomentY +#define SCHEMA_IfcStructuralLoadLinearForce_LinearMomentY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearMomentZ +#define SCHEMA_IfcStructuralLoadLinearForce_LinearMomentZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadOrResult +#define SCHEMA_HAS_IfcStructuralLoadPlanarForce +#define SCHEMA_IfcStructuralLoadPlanarForce_HAS_PlanarForceX +#define SCHEMA_IfcStructuralLoadPlanarForce_PlanarForceX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadPlanarForce_HAS_PlanarForceY +#define SCHEMA_IfcStructuralLoadPlanarForce_PlanarForceY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadPlanarForce_HAS_PlanarForceZ +#define SCHEMA_IfcStructuralLoadPlanarForce_PlanarForceZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadSingleDisplacement +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_DisplacementX +#define SCHEMA_IfcStructuralLoadSingleDisplacement_DisplacementX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_DisplacementY +#define SCHEMA_IfcStructuralLoadSingleDisplacement_DisplacementY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_DisplacementZ +#define SCHEMA_IfcStructuralLoadSingleDisplacement_DisplacementZ_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_RotationalDisplacementRX +#define SCHEMA_IfcStructuralLoadSingleDisplacement_RotationalDisplacementRX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_RotationalDisplacementRY +#define SCHEMA_IfcStructuralLoadSingleDisplacement_RotationalDisplacementRY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_RotationalDisplacementRZ +#define SCHEMA_IfcStructuralLoadSingleDisplacement_RotationalDisplacementRZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadSingleDisplacementDistortion +#define SCHEMA_IfcStructuralLoadSingleDisplacementDistortion_HAS_Distortion +#define SCHEMA_IfcStructuralLoadSingleDisplacementDistortion_Distortion_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadSingleForce +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_ForceX +#define SCHEMA_IfcStructuralLoadSingleForce_ForceX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_ForceY +#define SCHEMA_IfcStructuralLoadSingleForce_ForceY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_ForceZ +#define SCHEMA_IfcStructuralLoadSingleForce_ForceZ_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_MomentX +#define SCHEMA_IfcStructuralLoadSingleForce_MomentX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_MomentY +#define SCHEMA_IfcStructuralLoadSingleForce_MomentY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_MomentZ +#define SCHEMA_IfcStructuralLoadSingleForce_MomentZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadSingleForceWarping +#define SCHEMA_IfcStructuralLoadSingleForceWarping_HAS_WarpingMoment +#define SCHEMA_IfcStructuralLoadSingleForceWarping_WarpingMoment_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadStatic +#define SCHEMA_HAS_IfcStructuralLoadTemperature +#define SCHEMA_IfcStructuralLoadTemperature_HAS_DeltaTConstant +#define SCHEMA_IfcStructuralLoadTemperature_DeltaTConstant_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadTemperature_HAS_DeltaTY +#define SCHEMA_IfcStructuralLoadTemperature_DeltaTY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadTemperature_HAS_DeltaTZ +#define SCHEMA_IfcStructuralLoadTemperature_DeltaTZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralMember +#define SCHEMA_HAS_IfcStructuralPlanarAction +#define SCHEMA_HAS_IfcStructuralPointAction +#define SCHEMA_HAS_IfcStructuralPointConnection +#define SCHEMA_IfcStructuralPointConnection_HAS_ConditionCoordinateSystem +#define SCHEMA_IfcStructuralPointConnection_ConditionCoordinateSystem_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralPointReaction +#define SCHEMA_HAS_IfcStructuralReaction +#define SCHEMA_HAS_IfcStructuralResultGroup +#define SCHEMA_IfcStructuralResultGroup_HAS_TheoryType +#define SCHEMA_IfcStructuralResultGroup_HAS_ResultForLoadGroup +#define SCHEMA_IfcStructuralResultGroup_ResultForLoadGroup_IS_OPTIONAL +#define SCHEMA_IfcStructuralResultGroup_HAS_IsLinear +#define SCHEMA_HAS_IfcStructuralSurfaceAction +#define SCHEMA_IfcStructuralSurfaceAction_HAS_ProjectedOrTrue +#define SCHEMA_IfcStructuralSurfaceAction_ProjectedOrTrue_IS_OPTIONAL +#define SCHEMA_IfcStructuralSurfaceAction_HAS_PredefinedType +#define SCHEMA_HAS_IfcStructuralSurfaceConnection +#define SCHEMA_HAS_IfcStructuralSurfaceMember +#define SCHEMA_IfcStructuralSurfaceMember_HAS_PredefinedType +#define SCHEMA_IfcStructuralSurfaceMember_HAS_Thickness +#define SCHEMA_IfcStructuralSurfaceMember_Thickness_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralSurfaceMemberVarying +#define SCHEMA_HAS_IfcStructuralSurfaceReaction +#define SCHEMA_IfcStructuralSurfaceReaction_HAS_PredefinedType +#define SCHEMA_HAS_IfcStyleModel +#define SCHEMA_HAS_IfcStyledItem +#define SCHEMA_IfcStyledItem_HAS_Item +#define SCHEMA_IfcStyledItem_Item_IS_OPTIONAL +#define SCHEMA_IfcStyledItem_HAS_Styles +#define SCHEMA_IfcStyledItem_HAS_Name +#define SCHEMA_IfcStyledItem_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcStyledRepresentation +#define SCHEMA_HAS_IfcSubContractResource +#define SCHEMA_IfcSubContractResource_HAS_PredefinedType +#define SCHEMA_IfcSubContractResource_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSubContractResourceType +#define SCHEMA_IfcSubContractResourceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcSubedge +#define SCHEMA_IfcSubedge_HAS_ParentEdge +#define SCHEMA_HAS_IfcSurface +#define SCHEMA_HAS_IfcSurfaceCurve +#define SCHEMA_IfcSurfaceCurve_HAS_Curve3D +#define SCHEMA_IfcSurfaceCurve_HAS_AssociatedGeometry +#define SCHEMA_IfcSurfaceCurve_HAS_MasterRepresentation +#define SCHEMA_HAS_IfcSurfaceCurveSweptAreaSolid +#define SCHEMA_IfcSurfaceCurveSweptAreaSolid_HAS_Directrix +#define SCHEMA_IfcSurfaceCurveSweptAreaSolid_HAS_StartParam +#define SCHEMA_IfcSurfaceCurveSweptAreaSolid_StartParam_IS_OPTIONAL +#define SCHEMA_IfcSurfaceCurveSweptAreaSolid_HAS_EndParam +#define SCHEMA_IfcSurfaceCurveSweptAreaSolid_EndParam_IS_OPTIONAL +#define SCHEMA_IfcSurfaceCurveSweptAreaSolid_HAS_ReferenceSurface +#define SCHEMA_HAS_IfcSurfaceFeature +#define SCHEMA_IfcSurfaceFeature_HAS_PredefinedType +#define SCHEMA_IfcSurfaceFeature_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSurfaceOfLinearExtrusion +#define SCHEMA_IfcSurfaceOfLinearExtrusion_HAS_ExtrudedDirection +#define SCHEMA_IfcSurfaceOfLinearExtrusion_HAS_Depth +#define SCHEMA_HAS_IfcSurfaceOfRevolution +#define SCHEMA_IfcSurfaceOfRevolution_HAS_AxisPosition +#define SCHEMA_HAS_IfcSurfaceReinforcementArea +#define SCHEMA_IfcSurfaceReinforcementArea_HAS_SurfaceReinforcement1 +#define SCHEMA_IfcSurfaceReinforcementArea_SurfaceReinforcement1_IS_OPTIONAL +#define SCHEMA_IfcSurfaceReinforcementArea_HAS_SurfaceReinforcement2 +#define SCHEMA_IfcSurfaceReinforcementArea_SurfaceReinforcement2_IS_OPTIONAL +#define SCHEMA_IfcSurfaceReinforcementArea_HAS_ShearReinforcement +#define SCHEMA_IfcSurfaceReinforcementArea_ShearReinforcement_IS_OPTIONAL +#define SCHEMA_HAS_IfcSurfaceStyle +#define SCHEMA_IfcSurfaceStyle_HAS_Side +#define SCHEMA_IfcSurfaceStyle_HAS_Styles +#define SCHEMA_HAS_IfcSurfaceStyleLighting +#define SCHEMA_IfcSurfaceStyleLighting_HAS_DiffuseTransmissionColour +#define SCHEMA_IfcSurfaceStyleLighting_HAS_DiffuseReflectionColour +#define SCHEMA_IfcSurfaceStyleLighting_HAS_TransmissionColour +#define SCHEMA_IfcSurfaceStyleLighting_HAS_ReflectanceColour +#define SCHEMA_HAS_IfcSurfaceStyleRefraction +#define SCHEMA_IfcSurfaceStyleRefraction_HAS_RefractionIndex +#define SCHEMA_IfcSurfaceStyleRefraction_RefractionIndex_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRefraction_HAS_DispersionFactor +#define SCHEMA_IfcSurfaceStyleRefraction_DispersionFactor_IS_OPTIONAL +#define SCHEMA_HAS_IfcSurfaceStyleRendering +#define SCHEMA_IfcSurfaceStyleRendering_HAS_DiffuseColour +#define SCHEMA_IfcSurfaceStyleRendering_DiffuseColour_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_TransmissionColour +#define SCHEMA_IfcSurfaceStyleRendering_TransmissionColour_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_DiffuseTransmissionColour +#define SCHEMA_IfcSurfaceStyleRendering_DiffuseTransmissionColour_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_ReflectionColour +#define SCHEMA_IfcSurfaceStyleRendering_ReflectionColour_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_SpecularColour +#define SCHEMA_IfcSurfaceStyleRendering_SpecularColour_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_SpecularHighlight +#define SCHEMA_IfcSurfaceStyleRendering_SpecularHighlight_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_ReflectanceMethod +#define SCHEMA_HAS_IfcSurfaceStyleShading +#define SCHEMA_IfcSurfaceStyleShading_HAS_SurfaceColour +#define SCHEMA_IfcSurfaceStyleShading_HAS_Transparency +#define SCHEMA_IfcSurfaceStyleShading_Transparency_IS_OPTIONAL +#define SCHEMA_HAS_IfcSurfaceStyleWithTextures +#define SCHEMA_IfcSurfaceStyleWithTextures_HAS_Textures +#define SCHEMA_HAS_IfcSurfaceTexture +#define SCHEMA_IfcSurfaceTexture_HAS_RepeatS +#define SCHEMA_IfcSurfaceTexture_HAS_RepeatT +#define SCHEMA_IfcSurfaceTexture_HAS_Mode +#define SCHEMA_IfcSurfaceTexture_Mode_IS_OPTIONAL +#define SCHEMA_IfcSurfaceTexture_HAS_TextureTransform +#define SCHEMA_IfcSurfaceTexture_TextureTransform_IS_OPTIONAL +#define SCHEMA_IfcSurfaceTexture_HAS_Parameter +#define SCHEMA_IfcSurfaceTexture_Parameter_IS_OPTIONAL +#define SCHEMA_HAS_IfcSweptAreaSolid +#define SCHEMA_IfcSweptAreaSolid_HAS_SweptArea +#define SCHEMA_IfcSweptAreaSolid_HAS_Position +#define SCHEMA_IfcSweptAreaSolid_Position_IS_OPTIONAL +#define SCHEMA_HAS_IfcSweptDiskSolid +#define SCHEMA_IfcSweptDiskSolid_HAS_Directrix +#define SCHEMA_IfcSweptDiskSolid_HAS_Radius +#define SCHEMA_IfcSweptDiskSolid_HAS_InnerRadius +#define SCHEMA_IfcSweptDiskSolid_InnerRadius_IS_OPTIONAL +#define SCHEMA_IfcSweptDiskSolid_HAS_StartParam +#define SCHEMA_IfcSweptDiskSolid_StartParam_IS_OPTIONAL +#define SCHEMA_IfcSweptDiskSolid_HAS_EndParam +#define SCHEMA_IfcSweptDiskSolid_EndParam_IS_OPTIONAL +#define SCHEMA_HAS_IfcSweptDiskSolidPolygonal +#define SCHEMA_IfcSweptDiskSolidPolygonal_HAS_FilletRadius +#define SCHEMA_IfcSweptDiskSolidPolygonal_FilletRadius_IS_OPTIONAL +#define SCHEMA_HAS_IfcSweptSurface +#define SCHEMA_IfcSweptSurface_HAS_SweptCurve +#define SCHEMA_IfcSweptSurface_HAS_Position +#define SCHEMA_IfcSweptSurface_Position_IS_OPTIONAL +#define SCHEMA_HAS_IfcSwitchingDevice +#define SCHEMA_IfcSwitchingDevice_HAS_PredefinedType +#define SCHEMA_IfcSwitchingDevice_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSwitchingDeviceType +#define SCHEMA_IfcSwitchingDeviceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcSystem +#define SCHEMA_HAS_IfcSystemFurnitureElement +#define SCHEMA_IfcSystemFurnitureElement_HAS_PredefinedType +#define SCHEMA_IfcSystemFurnitureElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSystemFurnitureElementType +#define SCHEMA_IfcSystemFurnitureElementType_HAS_PredefinedType +#define SCHEMA_IfcSystemFurnitureElementType_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTShapeProfileDef +#define SCHEMA_IfcTShapeProfileDef_HAS_Depth +#define SCHEMA_IfcTShapeProfileDef_HAS_FlangeWidth +#define SCHEMA_IfcTShapeProfileDef_HAS_WebThickness +#define SCHEMA_IfcTShapeProfileDef_HAS_FlangeThickness +#define SCHEMA_IfcTShapeProfileDef_HAS_FilletRadius +#define SCHEMA_IfcTShapeProfileDef_FilletRadius_IS_OPTIONAL +#define SCHEMA_IfcTShapeProfileDef_HAS_FlangeEdgeRadius +#define SCHEMA_IfcTShapeProfileDef_FlangeEdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcTShapeProfileDef_HAS_WebEdgeRadius +#define SCHEMA_IfcTShapeProfileDef_WebEdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcTShapeProfileDef_HAS_WebSlope +#define SCHEMA_IfcTShapeProfileDef_WebSlope_IS_OPTIONAL +#define SCHEMA_IfcTShapeProfileDef_HAS_FlangeSlope +#define SCHEMA_IfcTShapeProfileDef_FlangeSlope_IS_OPTIONAL +#define SCHEMA_HAS_IfcTable +#define SCHEMA_IfcTable_HAS_Name +#define SCHEMA_IfcTable_Name_IS_OPTIONAL +#define SCHEMA_IfcTable_HAS_Rows +#define SCHEMA_IfcTable_Rows_IS_OPTIONAL +#define SCHEMA_IfcTable_HAS_Columns +#define SCHEMA_IfcTable_Columns_IS_OPTIONAL +#define SCHEMA_HAS_IfcTableColumn +#define SCHEMA_IfcTableColumn_HAS_Identifier +#define SCHEMA_IfcTableColumn_Identifier_IS_OPTIONAL +#define SCHEMA_IfcTableColumn_HAS_Name +#define SCHEMA_IfcTableColumn_Name_IS_OPTIONAL +#define SCHEMA_IfcTableColumn_HAS_Description +#define SCHEMA_IfcTableColumn_Description_IS_OPTIONAL +#define SCHEMA_IfcTableColumn_HAS_Unit +#define SCHEMA_IfcTableColumn_Unit_IS_OPTIONAL +#define SCHEMA_IfcTableColumn_HAS_ReferencePath +#define SCHEMA_IfcTableColumn_ReferencePath_IS_OPTIONAL +#define SCHEMA_HAS_IfcTableRow +#define SCHEMA_IfcTableRow_HAS_RowCells +#define SCHEMA_IfcTableRow_RowCells_IS_OPTIONAL +#define SCHEMA_IfcTableRow_HAS_IsHeading +#define SCHEMA_IfcTableRow_IsHeading_IS_OPTIONAL +#define SCHEMA_HAS_IfcTank +#define SCHEMA_IfcTank_HAS_PredefinedType +#define SCHEMA_IfcTank_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTankType +#define SCHEMA_IfcTankType_HAS_PredefinedType +#define SCHEMA_HAS_IfcTask +#define SCHEMA_IfcTask_HAS_Status +#define SCHEMA_IfcTask_Status_IS_OPTIONAL +#define SCHEMA_IfcTask_HAS_WorkMethod +#define SCHEMA_IfcTask_WorkMethod_IS_OPTIONAL +#define SCHEMA_IfcTask_HAS_IsMilestone +#define SCHEMA_IfcTask_HAS_Priority +#define SCHEMA_IfcTask_Priority_IS_OPTIONAL +#define SCHEMA_IfcTask_HAS_TaskTime +#define SCHEMA_IfcTask_TaskTime_IS_OPTIONAL +#define SCHEMA_IfcTask_HAS_PredefinedType +#define SCHEMA_IfcTask_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTaskTime +#define SCHEMA_IfcTaskTime_HAS_DurationType +#define SCHEMA_IfcTaskTime_DurationType_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_ScheduleDuration +#define SCHEMA_IfcTaskTime_ScheduleDuration_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_ScheduleStart +#define SCHEMA_IfcTaskTime_ScheduleStart_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_ScheduleFinish +#define SCHEMA_IfcTaskTime_ScheduleFinish_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_EarlyStart +#define SCHEMA_IfcTaskTime_EarlyStart_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_EarlyFinish +#define SCHEMA_IfcTaskTime_EarlyFinish_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_LateStart +#define SCHEMA_IfcTaskTime_LateStart_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_LateFinish +#define SCHEMA_IfcTaskTime_LateFinish_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_FreeFloat +#define SCHEMA_IfcTaskTime_FreeFloat_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_TotalFloat +#define SCHEMA_IfcTaskTime_TotalFloat_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_IsCritical +#define SCHEMA_IfcTaskTime_IsCritical_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_StatusTime +#define SCHEMA_IfcTaskTime_StatusTime_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_ActualDuration +#define SCHEMA_IfcTaskTime_ActualDuration_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_ActualStart +#define SCHEMA_IfcTaskTime_ActualStart_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_ActualFinish +#define SCHEMA_IfcTaskTime_ActualFinish_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_RemainingTime +#define SCHEMA_IfcTaskTime_RemainingTime_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_Completion +#define SCHEMA_IfcTaskTime_Completion_IS_OPTIONAL +#define SCHEMA_HAS_IfcTaskTimeRecurring +#define SCHEMA_IfcTaskTimeRecurring_HAS_Recurrence +#define SCHEMA_HAS_IfcTaskType +#define SCHEMA_IfcTaskType_HAS_PredefinedType +#define SCHEMA_IfcTaskType_HAS_WorkMethod +#define SCHEMA_IfcTaskType_WorkMethod_IS_OPTIONAL +#define SCHEMA_HAS_IfcTelecomAddress +#define SCHEMA_IfcTelecomAddress_HAS_TelephoneNumbers +#define SCHEMA_IfcTelecomAddress_TelephoneNumbers_IS_OPTIONAL +#define SCHEMA_IfcTelecomAddress_HAS_FacsimileNumbers +#define SCHEMA_IfcTelecomAddress_FacsimileNumbers_IS_OPTIONAL +#define SCHEMA_IfcTelecomAddress_HAS_PagerNumber +#define SCHEMA_IfcTelecomAddress_PagerNumber_IS_OPTIONAL +#define SCHEMA_IfcTelecomAddress_HAS_ElectronicMailAddresses +#define SCHEMA_IfcTelecomAddress_ElectronicMailAddresses_IS_OPTIONAL +#define SCHEMA_IfcTelecomAddress_HAS_WWWHomePageURL +#define SCHEMA_IfcTelecomAddress_WWWHomePageURL_IS_OPTIONAL +#define SCHEMA_IfcTelecomAddress_HAS_MessagingIDs +#define SCHEMA_IfcTelecomAddress_MessagingIDs_IS_OPTIONAL +#define SCHEMA_HAS_IfcTendon +#define SCHEMA_IfcTendon_HAS_PredefinedType +#define SCHEMA_IfcTendon_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_NominalDiameter +#define SCHEMA_IfcTendon_NominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_CrossSectionArea +#define SCHEMA_IfcTendon_CrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_TensionForce +#define SCHEMA_IfcTendon_TensionForce_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_PreStress +#define SCHEMA_IfcTendon_PreStress_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_FrictionCoefficient +#define SCHEMA_IfcTendon_FrictionCoefficient_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_AnchorageSlip +#define SCHEMA_IfcTendon_AnchorageSlip_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_MinCurvatureRadius +#define SCHEMA_IfcTendon_MinCurvatureRadius_IS_OPTIONAL +#define SCHEMA_HAS_IfcTendonAnchor +#define SCHEMA_IfcTendonAnchor_HAS_PredefinedType +#define SCHEMA_IfcTendonAnchor_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTendonAnchorType +#define SCHEMA_IfcTendonAnchorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcTendonType +#define SCHEMA_IfcTendonType_HAS_PredefinedType +#define SCHEMA_IfcTendonType_HAS_NominalDiameter +#define SCHEMA_IfcTendonType_NominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcTendonType_HAS_CrossSectionArea +#define SCHEMA_IfcTendonType_CrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcTendonType_HAS_SheathDiameter +#define SCHEMA_IfcTendonType_SheathDiameter_IS_OPTIONAL +#define SCHEMA_HAS_IfcTessellatedFaceSet +#define SCHEMA_IfcTessellatedFaceSet_HAS_Coordinates +#define SCHEMA_HAS_IfcTessellatedItem +#define SCHEMA_HAS_IfcTextLiteral +#define SCHEMA_IfcTextLiteral_HAS_Literal +#define SCHEMA_IfcTextLiteral_HAS_Placement +#define SCHEMA_IfcTextLiteral_HAS_Path +#define SCHEMA_HAS_IfcTextLiteralWithExtent +#define SCHEMA_IfcTextLiteralWithExtent_HAS_Extent +#define SCHEMA_IfcTextLiteralWithExtent_HAS_BoxAlignment +#define SCHEMA_HAS_IfcTextStyle +#define SCHEMA_IfcTextStyle_HAS_TextCharacterAppearance +#define SCHEMA_IfcTextStyle_TextCharacterAppearance_IS_OPTIONAL +#define SCHEMA_IfcTextStyle_HAS_TextStyle +#define SCHEMA_IfcTextStyle_TextStyle_IS_OPTIONAL +#define SCHEMA_IfcTextStyle_HAS_TextFontStyle +#define SCHEMA_IfcTextStyle_HAS_ModelOrDraughting +#define SCHEMA_IfcTextStyle_ModelOrDraughting_IS_OPTIONAL +#define SCHEMA_HAS_IfcTextStyleFontModel +#define SCHEMA_IfcTextStyleFontModel_HAS_FontFamily +#define SCHEMA_IfcTextStyleFontModel_HAS_FontStyle +#define SCHEMA_IfcTextStyleFontModel_FontStyle_IS_OPTIONAL +#define SCHEMA_IfcTextStyleFontModel_HAS_FontVariant +#define SCHEMA_IfcTextStyleFontModel_FontVariant_IS_OPTIONAL +#define SCHEMA_IfcTextStyleFontModel_HAS_FontWeight +#define SCHEMA_IfcTextStyleFontModel_FontWeight_IS_OPTIONAL +#define SCHEMA_IfcTextStyleFontModel_HAS_FontSize +#define SCHEMA_HAS_IfcTextStyleForDefinedFont +#define SCHEMA_IfcTextStyleForDefinedFont_HAS_Colour +#define SCHEMA_IfcTextStyleForDefinedFont_HAS_BackgroundColour +#define SCHEMA_IfcTextStyleForDefinedFont_BackgroundColour_IS_OPTIONAL +#define SCHEMA_HAS_IfcTextStyleTextModel +#define SCHEMA_IfcTextStyleTextModel_HAS_TextIndent +#define SCHEMA_IfcTextStyleTextModel_TextIndent_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_TextAlign +#define SCHEMA_IfcTextStyleTextModel_TextAlign_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_TextDecoration +#define SCHEMA_IfcTextStyleTextModel_TextDecoration_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_LetterSpacing +#define SCHEMA_IfcTextStyleTextModel_LetterSpacing_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_WordSpacing +#define SCHEMA_IfcTextStyleTextModel_WordSpacing_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_TextTransform +#define SCHEMA_IfcTextStyleTextModel_TextTransform_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_LineHeight +#define SCHEMA_IfcTextStyleTextModel_LineHeight_IS_OPTIONAL +#define SCHEMA_HAS_IfcTextureCoordinate +#define SCHEMA_IfcTextureCoordinate_HAS_Maps +#define SCHEMA_HAS_IfcTextureCoordinateGenerator +#define SCHEMA_IfcTextureCoordinateGenerator_HAS_Mode +#define SCHEMA_IfcTextureCoordinateGenerator_HAS_Parameter +#define SCHEMA_IfcTextureCoordinateGenerator_Parameter_IS_OPTIONAL +#define SCHEMA_HAS_IfcTextureMap +#define SCHEMA_IfcTextureMap_HAS_Vertices +#define SCHEMA_IfcTextureMap_HAS_MappedTo +#define SCHEMA_HAS_IfcTextureVertex +#define SCHEMA_IfcTextureVertex_HAS_Coordinates +#define SCHEMA_HAS_IfcTextureVertexList +#define SCHEMA_IfcTextureVertexList_HAS_TexCoordsList +#define SCHEMA_HAS_IfcTimePeriod +#define SCHEMA_IfcTimePeriod_HAS_StartTime +#define SCHEMA_IfcTimePeriod_HAS_EndTime +#define SCHEMA_HAS_IfcTimeSeries +#define SCHEMA_IfcTimeSeries_HAS_Name +#define SCHEMA_IfcTimeSeries_HAS_Description +#define SCHEMA_IfcTimeSeries_Description_IS_OPTIONAL +#define SCHEMA_IfcTimeSeries_HAS_StartTime +#define SCHEMA_IfcTimeSeries_HAS_EndTime +#define SCHEMA_IfcTimeSeries_HAS_TimeSeriesDataType +#define SCHEMA_IfcTimeSeries_HAS_DataOrigin +#define SCHEMA_IfcTimeSeries_HAS_UserDefinedDataOrigin +#define SCHEMA_IfcTimeSeries_UserDefinedDataOrigin_IS_OPTIONAL +#define SCHEMA_IfcTimeSeries_HAS_Unit +#define SCHEMA_IfcTimeSeries_Unit_IS_OPTIONAL +#define SCHEMA_HAS_IfcTimeSeriesValue +#define SCHEMA_IfcTimeSeriesValue_HAS_ListValues +#define SCHEMA_HAS_IfcTopologicalRepresentationItem +#define SCHEMA_HAS_IfcTopologyRepresentation +#define SCHEMA_HAS_IfcToroidalSurface +#define SCHEMA_IfcToroidalSurface_HAS_MajorRadius +#define SCHEMA_IfcToroidalSurface_HAS_MinorRadius +#define SCHEMA_HAS_IfcTransformer +#define SCHEMA_IfcTransformer_HAS_PredefinedType +#define SCHEMA_IfcTransformer_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTransformerType +#define SCHEMA_IfcTransformerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcTransportElement +#define SCHEMA_IfcTransportElement_HAS_PredefinedType +#define SCHEMA_IfcTransportElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTransportElementType +#define SCHEMA_IfcTransportElementType_HAS_PredefinedType +#define SCHEMA_HAS_IfcTrapeziumProfileDef +#define SCHEMA_IfcTrapeziumProfileDef_HAS_BottomXDim +#define SCHEMA_IfcTrapeziumProfileDef_HAS_TopXDim +#define SCHEMA_IfcTrapeziumProfileDef_HAS_YDim +#define SCHEMA_IfcTrapeziumProfileDef_HAS_TopXOffset +#define SCHEMA_HAS_IfcTriangulatedFaceSet +#define SCHEMA_IfcTriangulatedFaceSet_HAS_Normals +#define SCHEMA_IfcTriangulatedFaceSet_Normals_IS_OPTIONAL +#define SCHEMA_IfcTriangulatedFaceSet_HAS_Closed +#define SCHEMA_IfcTriangulatedFaceSet_Closed_IS_OPTIONAL +#define SCHEMA_IfcTriangulatedFaceSet_HAS_CoordIndex +#define SCHEMA_IfcTriangulatedFaceSet_HAS_PnIndex +#define SCHEMA_IfcTriangulatedFaceSet_PnIndex_IS_OPTIONAL +#define SCHEMA_HAS_IfcTrimmedCurve +#define SCHEMA_IfcTrimmedCurve_HAS_BasisCurve +#define SCHEMA_IfcTrimmedCurve_HAS_Trim1 +#define SCHEMA_IfcTrimmedCurve_HAS_Trim2 +#define SCHEMA_IfcTrimmedCurve_HAS_SenseAgreement +#define SCHEMA_IfcTrimmedCurve_HAS_MasterRepresentation +#define SCHEMA_HAS_IfcTubeBundle +#define SCHEMA_IfcTubeBundle_HAS_PredefinedType +#define SCHEMA_IfcTubeBundle_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTubeBundleType +#define SCHEMA_IfcTubeBundleType_HAS_PredefinedType +#define SCHEMA_HAS_IfcTypeObject +#define SCHEMA_IfcTypeObject_HAS_ApplicableOccurrence +#define SCHEMA_IfcTypeObject_ApplicableOccurrence_IS_OPTIONAL +#define SCHEMA_IfcTypeObject_HAS_HasPropertySets +#define SCHEMA_IfcTypeObject_HasPropertySets_IS_OPTIONAL +#define SCHEMA_HAS_IfcTypeProcess +#define SCHEMA_IfcTypeProcess_HAS_Identification +#define SCHEMA_IfcTypeProcess_Identification_IS_OPTIONAL +#define SCHEMA_IfcTypeProcess_HAS_LongDescription +#define SCHEMA_IfcTypeProcess_LongDescription_IS_OPTIONAL +#define SCHEMA_IfcTypeProcess_HAS_ProcessType +#define SCHEMA_IfcTypeProcess_ProcessType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTypeProduct +#define SCHEMA_IfcTypeProduct_HAS_RepresentationMaps +#define SCHEMA_IfcTypeProduct_RepresentationMaps_IS_OPTIONAL +#define SCHEMA_IfcTypeProduct_HAS_Tag +#define SCHEMA_IfcTypeProduct_Tag_IS_OPTIONAL +#define SCHEMA_HAS_IfcTypeResource +#define SCHEMA_IfcTypeResource_HAS_Identification +#define SCHEMA_IfcTypeResource_Identification_IS_OPTIONAL +#define SCHEMA_IfcTypeResource_HAS_LongDescription +#define SCHEMA_IfcTypeResource_LongDescription_IS_OPTIONAL +#define SCHEMA_IfcTypeResource_HAS_ResourceType +#define SCHEMA_IfcTypeResource_ResourceType_IS_OPTIONAL +#define SCHEMA_HAS_IfcUShapeProfileDef +#define SCHEMA_IfcUShapeProfileDef_HAS_Depth +#define SCHEMA_IfcUShapeProfileDef_HAS_FlangeWidth +#define SCHEMA_IfcUShapeProfileDef_HAS_WebThickness +#define SCHEMA_IfcUShapeProfileDef_HAS_FlangeThickness +#define SCHEMA_IfcUShapeProfileDef_HAS_FilletRadius +#define SCHEMA_IfcUShapeProfileDef_FilletRadius_IS_OPTIONAL +#define SCHEMA_IfcUShapeProfileDef_HAS_EdgeRadius +#define SCHEMA_IfcUShapeProfileDef_EdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcUShapeProfileDef_HAS_FlangeSlope +#define SCHEMA_IfcUShapeProfileDef_FlangeSlope_IS_OPTIONAL +#define SCHEMA_HAS_IfcUnitAssignment +#define SCHEMA_IfcUnitAssignment_HAS_Units +#define SCHEMA_HAS_IfcUnitaryControlElement +#define SCHEMA_IfcUnitaryControlElement_HAS_PredefinedType +#define SCHEMA_IfcUnitaryControlElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcUnitaryControlElementType +#define SCHEMA_IfcUnitaryControlElementType_HAS_PredefinedType +#define SCHEMA_HAS_IfcUnitaryEquipment +#define SCHEMA_IfcUnitaryEquipment_HAS_PredefinedType +#define SCHEMA_IfcUnitaryEquipment_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcUnitaryEquipmentType +#define SCHEMA_IfcUnitaryEquipmentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcValve +#define SCHEMA_IfcValve_HAS_PredefinedType +#define SCHEMA_IfcValve_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcValveType +#define SCHEMA_IfcValveType_HAS_PredefinedType +#define SCHEMA_HAS_IfcVector +#define SCHEMA_IfcVector_HAS_Orientation +#define SCHEMA_IfcVector_HAS_Magnitude +#define SCHEMA_HAS_IfcVertex +#define SCHEMA_HAS_IfcVertexLoop +#define SCHEMA_IfcVertexLoop_HAS_LoopVertex +#define SCHEMA_HAS_IfcVertexPoint +#define SCHEMA_IfcVertexPoint_HAS_VertexGeometry +#define SCHEMA_HAS_IfcVibrationIsolator +#define SCHEMA_IfcVibrationIsolator_HAS_PredefinedType +#define SCHEMA_IfcVibrationIsolator_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcVibrationIsolatorType +#define SCHEMA_IfcVibrationIsolatorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcVirtualElement +#define SCHEMA_HAS_IfcVirtualGridIntersection +#define SCHEMA_IfcVirtualGridIntersection_HAS_IntersectingAxes +#define SCHEMA_IfcVirtualGridIntersection_HAS_OffsetDistances +#define SCHEMA_HAS_IfcVoidingFeature +#define SCHEMA_IfcVoidingFeature_HAS_PredefinedType +#define SCHEMA_IfcVoidingFeature_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWall +#define SCHEMA_IfcWall_HAS_PredefinedType +#define SCHEMA_IfcWall_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWallElementedCase +#define SCHEMA_HAS_IfcWallStandardCase +#define SCHEMA_HAS_IfcWallType +#define SCHEMA_IfcWallType_HAS_PredefinedType +#define SCHEMA_HAS_IfcWasteTerminal +#define SCHEMA_IfcWasteTerminal_HAS_PredefinedType +#define SCHEMA_IfcWasteTerminal_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWasteTerminalType +#define SCHEMA_IfcWasteTerminalType_HAS_PredefinedType +#define SCHEMA_HAS_IfcWindow +#define SCHEMA_IfcWindow_HAS_OverallHeight +#define SCHEMA_IfcWindow_OverallHeight_IS_OPTIONAL +#define SCHEMA_IfcWindow_HAS_OverallWidth +#define SCHEMA_IfcWindow_OverallWidth_IS_OPTIONAL +#define SCHEMA_IfcWindow_HAS_PredefinedType +#define SCHEMA_IfcWindow_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcWindow_HAS_PartitioningType +#define SCHEMA_IfcWindow_PartitioningType_IS_OPTIONAL +#define SCHEMA_IfcWindow_HAS_UserDefinedPartitioningType +#define SCHEMA_IfcWindow_UserDefinedPartitioningType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWindowLiningProperties +#define SCHEMA_IfcWindowLiningProperties_HAS_LiningDepth +#define SCHEMA_IfcWindowLiningProperties_LiningDepth_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_LiningThickness +#define SCHEMA_IfcWindowLiningProperties_LiningThickness_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_TransomThickness +#define SCHEMA_IfcWindowLiningProperties_TransomThickness_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_MullionThickness +#define SCHEMA_IfcWindowLiningProperties_MullionThickness_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_FirstTransomOffset +#define SCHEMA_IfcWindowLiningProperties_FirstTransomOffset_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_SecondTransomOffset +#define SCHEMA_IfcWindowLiningProperties_SecondTransomOffset_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_FirstMullionOffset +#define SCHEMA_IfcWindowLiningProperties_FirstMullionOffset_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_SecondMullionOffset +#define SCHEMA_IfcWindowLiningProperties_SecondMullionOffset_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_ShapeAspectStyle +#define SCHEMA_IfcWindowLiningProperties_ShapeAspectStyle_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_LiningOffset +#define SCHEMA_IfcWindowLiningProperties_LiningOffset_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_LiningToPanelOffsetX +#define SCHEMA_IfcWindowLiningProperties_LiningToPanelOffsetX_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_LiningToPanelOffsetY +#define SCHEMA_IfcWindowLiningProperties_LiningToPanelOffsetY_IS_OPTIONAL +#define SCHEMA_HAS_IfcWindowPanelProperties +#define SCHEMA_IfcWindowPanelProperties_HAS_OperationType +#define SCHEMA_IfcWindowPanelProperties_HAS_PanelPosition +#define SCHEMA_IfcWindowPanelProperties_HAS_FrameDepth +#define SCHEMA_IfcWindowPanelProperties_FrameDepth_IS_OPTIONAL +#define SCHEMA_IfcWindowPanelProperties_HAS_FrameThickness +#define SCHEMA_IfcWindowPanelProperties_FrameThickness_IS_OPTIONAL +#define SCHEMA_IfcWindowPanelProperties_HAS_ShapeAspectStyle +#define SCHEMA_IfcWindowPanelProperties_ShapeAspectStyle_IS_OPTIONAL +#define SCHEMA_HAS_IfcWindowStandardCase +#define SCHEMA_HAS_IfcWindowStyle +#define SCHEMA_IfcWindowStyle_HAS_ConstructionType +#define SCHEMA_IfcWindowStyle_HAS_OperationType +#define SCHEMA_IfcWindowStyle_HAS_ParameterTakesPrecedence +#define SCHEMA_IfcWindowStyle_HAS_Sizeable +#define SCHEMA_HAS_IfcWindowType +#define SCHEMA_IfcWindowType_HAS_PredefinedType +#define SCHEMA_IfcWindowType_HAS_PartitioningType +#define SCHEMA_IfcWindowType_HAS_ParameterTakesPrecedence +#define SCHEMA_IfcWindowType_ParameterTakesPrecedence_IS_OPTIONAL +#define SCHEMA_IfcWindowType_HAS_UserDefinedPartitioningType +#define SCHEMA_IfcWindowType_UserDefinedPartitioningType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWorkCalendar +#define SCHEMA_IfcWorkCalendar_HAS_WorkingTimes +#define SCHEMA_IfcWorkCalendar_WorkingTimes_IS_OPTIONAL +#define SCHEMA_IfcWorkCalendar_HAS_ExceptionTimes +#define SCHEMA_IfcWorkCalendar_ExceptionTimes_IS_OPTIONAL +#define SCHEMA_IfcWorkCalendar_HAS_PredefinedType +#define SCHEMA_IfcWorkCalendar_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWorkControl +#define SCHEMA_IfcWorkControl_HAS_CreationDate +#define SCHEMA_IfcWorkControl_HAS_Creators +#define SCHEMA_IfcWorkControl_Creators_IS_OPTIONAL +#define SCHEMA_IfcWorkControl_HAS_Purpose +#define SCHEMA_IfcWorkControl_Purpose_IS_OPTIONAL +#define SCHEMA_IfcWorkControl_HAS_Duration +#define SCHEMA_IfcWorkControl_Duration_IS_OPTIONAL +#define SCHEMA_IfcWorkControl_HAS_TotalFloat +#define SCHEMA_IfcWorkControl_TotalFloat_IS_OPTIONAL +#define SCHEMA_IfcWorkControl_HAS_StartTime +#define SCHEMA_IfcWorkControl_HAS_FinishTime +#define SCHEMA_IfcWorkControl_FinishTime_IS_OPTIONAL +#define SCHEMA_HAS_IfcWorkPlan +#define SCHEMA_IfcWorkPlan_HAS_PredefinedType +#define SCHEMA_IfcWorkPlan_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWorkSchedule +#define SCHEMA_IfcWorkSchedule_HAS_PredefinedType +#define SCHEMA_IfcWorkSchedule_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWorkTime +#define SCHEMA_IfcWorkTime_HAS_RecurrencePattern +#define SCHEMA_IfcWorkTime_RecurrencePattern_IS_OPTIONAL +#define SCHEMA_IfcWorkTime_HAS_Start +#define SCHEMA_IfcWorkTime_Start_IS_OPTIONAL +#define SCHEMA_IfcWorkTime_HAS_Finish +#define SCHEMA_IfcWorkTime_Finish_IS_OPTIONAL +#define SCHEMA_HAS_IfcZShapeProfileDef +#define SCHEMA_IfcZShapeProfileDef_HAS_Depth +#define SCHEMA_IfcZShapeProfileDef_HAS_FlangeWidth +#define SCHEMA_IfcZShapeProfileDef_HAS_WebThickness +#define SCHEMA_IfcZShapeProfileDef_HAS_FlangeThickness +#define SCHEMA_IfcZShapeProfileDef_HAS_FilletRadius +#define SCHEMA_IfcZShapeProfileDef_FilletRadius_IS_OPTIONAL +#define SCHEMA_IfcZShapeProfileDef_HAS_EdgeRadius +#define SCHEMA_IfcZShapeProfileDef_EdgeRadius_IS_OPTIONAL +#define SCHEMA_HAS_IfcZone +#define SCHEMA_IfcZone_HAS_LongName +#define SCHEMA_IfcZone_LongName_IS_OPTIONAL diff --git a/src/ifcparse/Ifc4.h b/src/ifcparse/Ifc4.h index 0bd55f9c9d..92485dd863 100644 --- a/src/ifcparse/Ifc4.h +++ b/src/ifcparse/Ifc4.h @@ -40,8 +40,6 @@ #include "../ifcparse/IfcException.h" #include "../ifcparse/Argument.h" -#include "../ifcparse/Ifc4enum.h" - struct Ifc4 { static const IfcParse::schema_definition& get_schema(); @@ -172,13 +170,13 @@ typedef IfcUtil::IfcBaseClass IfcCurveOrEdgeCurve; /// /// HISTORY New entity in IFC2x2. typedef IfcUtil::IfcBaseClass IfcCurveStyleFontSelect; -/// IfcDefinitionSelect provides the option to either select an object or type object IfcObjectDefinition, or a property set template or property set, IfcPropertyDefinition. +/// IfcDefinitionSelectprovides the option to either select an object or type object IfcObjectDefinition, or a property set template or property set, IfcPropertyDefinition. /// SELECT /// /// IfcObjectDefinition, /// IfcPropertyDefinition /// -/// HISTORY  New select type in IFC2x4. +/// HISTORY New select type in IFC2x4. typedef IfcUtil::IfcBaseClass IfcDefinitionSelect; /// IfcDerivedMeasureValue is a select type for selecting between derived measure types. /// @@ -284,7 +282,7 @@ typedef IfcUtil::IfcBaseClass IfcGeometricSetSelect; /// IfcDirection, /// IfcVirtualGridIntersection /// -/// HISTORY  New select type in IFC2x4. +/// HISTORY New select type in IFC2x4. typedef IfcUtil::IfcBaseClass IfcGridPlacementDirectionSelect; /// The IfcHatchLineDistanceSelect is a selection between different ways to determine the distance and potentially start point of hatch lines, either by an offset distance length measure or by a vector. /// @@ -415,7 +413,7 @@ typedef IfcUtil::IfcBaseClass IfcPointOrVertexPoint; /// /// IFC2x4 CHANGE The select type has been deprecated. typedef IfcUtil::IfcBaseClass IfcPresentationStyleSelect; -/// IfcProcessSelect provides the option to either +/// IfcProcessSelectprovides the option to either /// select a process or activity occurrence, IfcProcess, /// or a process or activity type, IfcTypeProcess. /// SELECT @@ -424,11 +422,11 @@ typedef IfcUtil::IfcBaseClass IfcPresentationStyleSelect; /// /// IfcTypeProcess /// -/// HISTORY  New select type in IFC2x4. +/// HISTORY New select type in IFC2x4. typedef IfcUtil::IfcBaseClass IfcProcessSelect; typedef IfcUtil::IfcBaseClass IfcProductRepresentationSelect; -/// IfcProductSelect provides the option to either select a +/// IfcProductSelectprovides the option to either select a /// product occurrence, IfcProduct, or a product type, /// IfcTypeProduct. /// SELECT @@ -436,7 +434,7 @@ typedef IfcUtil::IfcBaseClass IfcProductRepresentationSelect; /// IfcProduct, /// IfcTypeProduct /// -/// HISTORY  New select type in IFC2x4. +/// HISTORY New select type in IFC2x4. typedef IfcUtil::IfcBaseClass IfcProductSelect; typedef IfcUtil::IfcBaseClass IfcPropertySetDefinitionSelect; @@ -444,7 +442,7 @@ typedef IfcUtil::IfcBaseClass IfcPropertySetDefinitionSelect; /// /// HISTORY  New Select type in IFC2x4. typedef IfcUtil::IfcBaseClass IfcResourceObjectSelect; -/// IfcResourceSelect provides the option to either select a +/// IfcResourceSelectprovides the option to either select a /// resource occurrence, IfcResource, or a resource type, /// IfcTypeResource. /// SELECT @@ -452,7 +450,7 @@ typedef IfcUtil::IfcBaseClass IfcResourceObjectSelect; /// IfcResource, /// IfcTypeResource /// -/// HISTORY  New select type in IFC2x4. +/// HISTORY New select type in IFC2x4. typedef IfcUtil::IfcBaseClass IfcResourceSelect; /// Definition from IAI: A measure of rotational stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness. /// @@ -511,10 +509,10 @@ typedef IfcUtil::IfcBaseClass IfcSizeSelect; /// IfcSolidModel /// IfcClosedShell /// -/// HISTORY  New select type in IFC2x4. +/// HISTORY New select type in IFC2x4. typedef IfcUtil::IfcBaseClass IfcSolidOrShell; /// Definition from IAI: The -/// IfcSpaceBoundarySelect selects either an internal space +/// IfcSpaceBoundarySelectselects either an internal space /// for internal or external space boundaries, or an external spatial /// element for external space boundaries at the outer envelop of the /// building. @@ -523,7 +521,7 @@ typedef IfcUtil::IfcBaseClass IfcSolidOrShell; /// IfcSpace, /// IfcExternalSpatialElement /// -/// HISTORY  New select type +/// HISTORY New select type /// in IFC2x4. typedef IfcUtil::IfcBaseClass IfcSpaceBoundarySelect; /// The IfcSpecularHighlightSelect defines the selectable types of value for specular highlight sharpness. @@ -874,9 +872,9 @@ struct IfcBSplineCurveForm { /// hyperbolic arc: An arc of finite length of one branch of a hyperbola represented by a B-spline curve. /// unspecified: A B-spline curve for which no particular form is specified. /// -/// NOTE  Corresponding ISO 10303 type: b_spline_curve_form. Please refer to ISO/IS 10303-42:1994, p. 15 for the final definition of the formal standard. +/// NOTE Corresponding ISO 10303 type: b_spline_curve_form. Please refer to ISO/IS 10303-42:1994, p. 15 for the final definition of the formal standard. /// -/// HISTORY  New type in Release IFC2x2. +/// HISTORY New type in Release IFC2x2. typedef enum {IfcBSplineCurveForm_POLYLINE_FORM, IfcBSplineCurveForm_CIRCULAR_ARC, IfcBSplineCurveForm_ELLIPTIC_ARC, IfcBSplineCurveForm_PARABOLIC_ARC, IfcBSplineCurveForm_HYPERBOLIC_ARC, IfcBSplineCurveForm_UNSPECIFIED} Value; IFC_PARSE_API static const char* ToString(Value v); IFC_PARSE_API static Value FromString(const std::string& s); @@ -903,7 +901,7 @@ struct IfcBeamTypeEnum { /// exterior of the building. Can be used to support joists or slab /// elements on its interior side. /// -/// NOTE  They are also referred to as "spandrel +/// NOTE They are also referred to as "spandrel /// panels", which are parts of a facade and sometimes have /// supporting consoles for floor slabs /// integrated. @@ -913,7 +911,7 @@ struct IfcBeamTypeEnum { /// often of T-shape (therefore the English name), but may have other /// shapes as well, e.g. an L-Shape or an Inverted-T-Shape. /// -/// NOTE  In order to distinguish beams by shape, +/// NOTE In order to distinguish beams by shape, /// the assigned IfcProfileDef subtypes provide the shape type /// and, if using a subtype of /// IfcParameterizedProfileDef, also the shape @@ -922,9 +920,9 @@ struct IfcBeamTypeEnum { /// USERDEFINED: User-defined linear beam element. /// NOTDEFINED: Undefined linear beam element /// -/// HISTORY  New Enumeration +/// HISTORY New Enumeration /// in Release IFC2x Edition 2. -/// IFC2x4 CHANGE  The enumerators +/// IFC2x4 CHANGE The enumerators /// HOLLOWCORE and SPANDREL have been /// added. typedef enum {IfcBeamType_BEAM, IfcBeamType_JOIST, IfcBeamType_HOLLOWCORE, IfcBeamType_LINTEL, IfcBeamType_SPANDREL, IfcBeamType_T_BEAM, IfcBeamType_USERDEFINED, IfcBeamType_NOTDEFINED} Value; @@ -1012,7 +1010,7 @@ struct IfcBuildingElementPartTypeEnum { /// USERDEFINED: User-defined accessory /// NOTDEFINED: Undefined accessory /// -/// HISTORY  New Enumeration in IFC 2x4. +/// HISTORY New Enumeration in IFC 2x4. typedef enum {IfcBuildingElementPartType_INSULATION, IfcBuildingElementPartType_PRECASTPANEL, IfcBuildingElementPartType_USERDEFINED, IfcBuildingElementPartType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); IFC_PARSE_API static Value FromString(const std::string& s); @@ -1021,8 +1019,8 @@ struct IfcBuildingElementProxyTypeEnum { /// Definition from IAI: This enumeration defines the /// available generic types for IfcBuildingElementProxyType. /// -/// HISTORY  New enumeration -/// in Release IFC2x Edition 3. +/// HISTORY New enumeration +/// inRelease IFC2x Edition 3. /// /// Enumeration /// @@ -1167,10 +1165,10 @@ struct IfcChimneyTypeEnum { /// types of chimneys that can be predefined using the /// enumeration values. /// -/// HISTORY  New Enumeration in -/// Release IFC2x4 +/// HISTORY New Enumeration in +/// ReleaseIFC2x4 /// -/// NOTE  Currently there are no specific enumerators +/// NOTE Currently there are no specific enumerators /// defined, the IfcChimneyTypeEnum has been added /// for future extensions. typedef enum {IfcChimneyType_USERDEFINED, IfcChimneyType_NOTDEFINED} Value; @@ -1708,7 +1706,7 @@ struct IfcDiscreteAccessoryTypeEnum { /// USERDEFINED: User-defined accessory /// NOTDEFINED: Undefined accessory /// -/// HISTORY  New Enumeration in IFC 2x4. +/// HISTORY New Enumeration in IFC 2x4. typedef enum {IfcDiscreteAccessoryType_ANCHORPLATE, IfcDiscreteAccessoryType_BRACKET, IfcDiscreteAccessoryType_SHOE, IfcDiscreteAccessoryType_USERDEFINED, IfcDiscreteAccessoryType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); IFC_PARSE_API static Value FromString(const std::string& s); @@ -1839,10 +1837,8 @@ struct IfcDoorPanelOperationEnum { /// NOTE Enumerator added in IFC2x4. /// /// UserDefined -///   /// /// NotDefined -///   /// /// Figure 164 — Door operations /// @@ -2070,7 +2066,7 @@ struct IfcDoorTypeEnum { /// USERDEFINED: User-defined linear beam element. /// NOTDEFINED: Undefined linear beam element /// -/// HISTORY  New Enumeration +/// HISTORY New Enumeration /// in IFC2x4. typedef enum {IfcDoorType_DOOR, IfcDoorType_GATE, IfcDoorType_TRAPDOOR, IfcDoorType_USERDEFINED, IfcDoorType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); @@ -2081,16 +2077,15 @@ struct IfcDoorTypeOperationEnum { /// /// In the most common case of swinging doors the IfcDoorTypeOperationEnum defined the hinge side (left hing or right hung) and the opening direction (opening to the left, opening to the right). Whether the door opens inwards or outwards is determined by the local coordinate system of the IfcDoor, or IfcDoorStandardCase. /// -/// NOTE There are different definitions in various countries on what a left opening or left hung or left swing door is (same for right). Therefore the IFC definition terms may derivate from the local standard and may need to be mapped appropriately. +/// NOTEThere are different definitions in various countries on what a left opening or left hung or left swing door is (same for right). Therefore the IFC definition terms may derivate from the local standard and may need to be mapped appropriately. /// -/// HISTORY  New Enumeration in IFC2x4. +/// HISTORY New Enumeration in IFC2x4. /// /// IFC2x4 CHANGE The new IfcDoorTypeOperationEnum replaces the use of IfcDoorStyleOperationEnum that is deprecated from IFC2x4 onwards. /// /// Enumerator /// Description /// Figures -///   /// /// SINGLE_SWING_LEFT /// @@ -2117,7 +2112,7 @@ struct IfcDoorTypeOperationEnum { /// (swings) to the left the other opens (swings) to the right. /// Note: Direction of swing (whether in or out) /// is determined at the IfcDoor or -/// IfcDoorStandardCase.  +/// IfcDoorStandardCase. /// /// DOUBLE_SWING_LEFT /// @@ -2126,7 +2121,7 @@ struct IfcDoorTypeOperationEnum { /// Also called double acting door. /// Note: Direction of main swing (whether in or /// out) is determined at the IfcDoor or -/// IfcDoorStandardCase.  +/// IfcDoorStandardCase. /// /// DOUBLE_SWING_RIGHT /// @@ -2159,9 +2154,6 @@ struct IfcDoorTypeOperationEnum { /// out) is determined at the IfcDoor or /// IfcDoorStandardCase. /// -///   -///   -/// /// DOUBLE_DOOR_ /// SINGLE_SWING_ /// OPPOSITE_RIGHT @@ -2172,9 +2164,6 @@ struct IfcDoorTypeOperationEnum { /// out) is determined at the IfcDoor or /// IfcDoorStandardCase. /// -///   -///   -/// /// SLIDING_TO_LEFT /// /// Door with one panel that is sliding @@ -2210,8 +2199,6 @@ struct IfcDoorTypeOperationEnum { /// leaves set in a form of a cross and revolving around a central /// vertical axis (the four panels are described by a single /// IfcDoor panel property). -///   -///   /// /// ROLLINGUP /// @@ -2245,16 +2232,12 @@ struct IfcDoorTypeOperationEnum { /// /// USERDEFINED /// User defined operation type -///   -///   /// /// NOTDEFINED /// A door with a not defined operation /// type is considered as a door with a lining, but no panels. It is /// thereby always open. /// -///   -/// /// Figure 66 — Door operations /// /// NOTE @@ -2268,7 +2251,7 @@ struct IfcDoorTypeOperationEnum { /// the positive y-axis, determined by the ObjectPlacement at /// IfcDoor /// The location of the panel relative to the wall thickness is -/// defined by the ObjectPlacement at IfcDoor, and the +/// defined by theObjectPlacement at IfcDoor, and the /// IfcDoorLiningProperties.LiningOffset parameter. typedef enum {IfcDoorTypeOperation_SINGLE_SWING_LEFT, IfcDoorTypeOperation_SINGLE_SWING_RIGHT, IfcDoorTypeOperation_DOUBLE_DOOR_SINGLE_SWING, IfcDoorTypeOperation_DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT, IfcDoorTypeOperation_DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT, IfcDoorTypeOperation_DOUBLE_SWING_LEFT, IfcDoorTypeOperation_DOUBLE_SWING_RIGHT, IfcDoorTypeOperation_DOUBLE_DOOR_DOUBLE_SWING, IfcDoorTypeOperation_SLIDING_TO_LEFT, IfcDoorTypeOperation_SLIDING_TO_RIGHT, IfcDoorTypeOperation_DOUBLE_DOOR_SLIDING, IfcDoorTypeOperation_FOLDING_TO_LEFT, IfcDoorTypeOperation_FOLDING_TO_RIGHT, IfcDoorTypeOperation_DOUBLE_DOOR_FOLDING, IfcDoorTypeOperation_REVOLVING, IfcDoorTypeOperation_ROLLINGUP, IfcDoorTypeOperation_SWING_FIXED_LEFT, IfcDoorTypeOperation_SWING_FIXED_RIGHT, IfcDoorTypeOperation_USERDEFINED, IfcDoorTypeOperation_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); @@ -2631,7 +2614,7 @@ struct IfcFastenerTypeEnum { /// USERDEFINED: User-defined fastener /// NOTDEFINED: Undefined fastener /// -/// HISTORY  New Enumeration in IFC 2x4. +/// HISTORY New Enumeration in IFC 2x4. typedef enum {IfcFastenerType_GLUE, IfcFastenerType_MORTAR, IfcFastenerType_WELD, IfcFastenerType_USERDEFINED, IfcFastenerType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); IFC_PARSE_API static Value FromString(const std::string& s); @@ -3397,7 +3380,7 @@ struct IfcMechanicalFastenerTypeEnum { /// USERDEFINED: User-defined mechanical fastener /// NOTDEFINED: Undefined mechanical fastener /// -/// HISTORY  New Enumeration in IFC 2x4. +/// HISTORY New Enumeration in IFC 2x4. typedef enum {IfcMechanicalFastenerType_ANCHORBOLT, IfcMechanicalFastenerType_BOLT, IfcMechanicalFastenerType_DOWEL, IfcMechanicalFastenerType_NAIL, IfcMechanicalFastenerType_NAILPLATE, IfcMechanicalFastenerType_RIVET, IfcMechanicalFastenerType_SCREW, IfcMechanicalFastenerType_SHEARCONNECTOR, IfcMechanicalFastenerType_STAPLE, IfcMechanicalFastenerType_STUDSHEARCONNECTOR, IfcMechanicalFastenerType_USERDEFINED, IfcMechanicalFastenerType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); IFC_PARSE_API static Value FromString(const std::string& s); @@ -3435,10 +3418,10 @@ struct IfcMemberTypeEnum { /// no further meaning. /// MULLION: A linear element within a curtain wall system /// to connect two (or more) panels. -/// PLATE: A linear continuous horizontal element in wall +/// PLATE: Alinear continuous horizontal element in wall /// framing, e.g. a head piece or a sole plate. /// -/// NOTE  This head piece or sole plate shall not +/// NOTE This head piece or sole plate shall not /// be mixed up with planar elements, such as sheets and panels, that /// are handled as IfcPlate (and /// IfcPlateType). @@ -3460,9 +3443,9 @@ struct IfcMemberTypeEnum { /// HISTORY: New /// Enumeration in Release IFC2x Edition 2. /// IFC2x Edition 2 -/// Addendum 1 CHANGE  The additional identifiers CHORD, PLATE, STUD +/// Addendum 1 CHANGE The additional identifiers CHORD, PLATE, STUD /// are added. -/// IFC2x Edition 3 CHANGE  The additional identifier MULLION has +/// IFC2x Edition 3 CHANGE The additional identifier MULLION has /// been added. typedef enum {IfcMemberType_BRACE, IfcMemberType_CHORD, IfcMemberType_COLLAR, IfcMemberType_MEMBER, IfcMemberType_MULLION, IfcMemberType_PLATE, IfcMemberType_POST, IfcMemberType_PURLIN, IfcMemberType_RAFTER, IfcMemberType_STRINGER, IfcMemberType_STRUT, IfcMemberType_STUD, IfcMemberType_USERDEFINED, IfcMemberType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); @@ -4455,8 +4438,8 @@ struct IfcShadingDeviceTypeEnum { /// SHUTTER /// AWNING /// -/// HISTORY  New Enumeration -/// in Release IFC2x4 +/// HISTORY New Enumeration +/// in ReleaseIFC2x4 typedef enum {IfcShadingDeviceType_JALOUSIE, IfcShadingDeviceType_SHUTTER, IfcShadingDeviceType_AWNING, IfcShadingDeviceType_USERDEFINED, IfcShadingDeviceType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); IFC_PARSE_API static Value FromString(const std::string& s); @@ -4492,7 +4475,7 @@ struct IfcSlabTypeEnum { /// special property set definition may be provided for each /// predefined type. /// -/// HISTORY  New type in IFC +/// HISTORY New type in IFC /// Release 2.0 /// /// Floor @@ -4516,7 +4499,7 @@ struct IfcSlabTypeEnum { /// foundation). Another name is mat foundation. /// /// IFC2x3 CHANGE -///  new enumerator added. +/// new enumerator added. typedef enum {IfcSlabType_FLOOR, IfcSlabType_ROOF, IfcSlabType_LANDING, IfcSlabType_BASESLAB, IfcSlabType_USERDEFINED, IfcSlabType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); IFC_PARSE_API static Value FromString(const std::string& s); @@ -5090,9 +5073,9 @@ struct IfcTransportElementTypeEnum { /// heavy goods. It may be manually operated or electrically or /// pneumatically driven. /// -/// HISTORY  New enumeration +/// HISTORY New enumeration /// in IFC Release 2x. -/// IFC2x4 CHANGE  New enumerators +/// IFC2x4 CHANGE New enumerators /// CRANEWAY and LIFTINGGEAR added in /// IFC2x4. typedef enum {IfcTransportElementType_ELEVATOR, IfcTransportElementType_ESCALATOR, IfcTransportElementType_MOVINGWALKWAY, IfcTransportElementType_CRANEWAY, IfcTransportElementType_LIFTINGGEAR, IfcTransportElementType_USERDEFINED, IfcTransportElementType_NOTDEFINED} Value; @@ -5316,15 +5299,15 @@ struct IfcWallTypeEnum { /// USERDEFINED: User-defined wall element. /// NOTDEFINED: Undefined wall element /// -/// HISTORY  New +/// HISTORY New /// Enumeration in Release IFC2x Edition 2. -/// IFC2x2 ADDENDUM CHANGE  +/// IFC2x2 ADDENDUM CHANGE /// The enumerator POLYGON has been changed to /// POLYGONAL. -/// IFC2x3 CHANGE  The enumerators +/// IFC2x3 CHANGE The enumerators /// ELEMENTEDWALL and PLUMBINGWALL have been /// added. -/// IFC2x4 CHANGE  New enumerator +/// IFC2x4 CHANGE New enumerator /// MOVABLE has been added. typedef enum {IfcWallType_MOVABLE, IfcWallType_PARAPET, IfcWallType_PARTITIONING, IfcWallType_PLUMBINGWALL, IfcWallType_SHEAR, IfcWallType_SOLIDWALL, IfcWallType_STANDARD, IfcWallType_POLYGONAL, IfcWallType_ELEMENTEDWALL, IfcWallType_USERDEFINED, IfcWallType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); @@ -5613,7 +5596,7 @@ struct IfcWindowTypeEnum { /// USERDEFINED: User-defined window element. /// NOTDEFINED: Undefined window element /// -/// HISTORY  New Enumeration +/// HISTORY New Enumeration /// in IFC2x4. typedef enum {IfcWindowType_WINDOW, IfcWindowType_SKYLIGHT, IfcWindowType_LIGHTDOME, IfcWindowType_USERDEFINED, IfcWindowType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); @@ -5624,7 +5607,7 @@ struct IfcWindowTypePartitioningEnum { /// /// Windows which are subdivided into more than three panels have to be defined by the geometry only. The type of such windows is USERDEFINED. /// -/// HISTORY  New Enumeration in IFC2x4. +/// HISTORY New Enumeration in IFC2x4. /// NOTE The new IfcWindowTypePartitioningEnum replaces the use of /// IfcWindowStyleOperationEnum that is deprecated from IFC2x4 onwards. /// @@ -5675,11 +5658,8 @@ struct IfcWindowTypePartitioningEnum { /// UserDefined /// user defined operation /// type -///   /// /// NotDefined -///   -///   /// /// Figure 70 — Window partitioning /// @@ -5861,7 +5841,7 @@ public: /// describe the spatial relationship between the section of a member /// and a reference axis of the same member. /// -/// HISTORY  New Type in IFC2x4. +/// HISTORY New Type in IFC2x4. /// /// Indexes 1...9 refer to points at the bounding box of a /// profile. Indexes 10...19 refer to points defined by geometric @@ -8282,10 +8262,10 @@ public: }; /// IfcConnectionVolumeGeometry is used to describe the geometric constraints that facilitate the physical connection (or overlap) of two objects at a volume defined by a solid or closed shell. It is envisioned as a control that applies to the element connection or interference relationships. /// -/// HISTORYÿ New entity in IFC2x4. +/// HISTORY New entity in IFC2x4. /// /// Geometry use definitions -/// The IfcSolidModel (or the IfcClosedShell) at the VolumeOnRelatingElement attribute defines the volume where the basic geometry items of the interfering elements overlap. The volume geometry and coordinates are provided within the local coordinate system of the RelatingElement, as specified at the subtypes of the relationship IfcRelConnects that utilizes the IfcConnectionSurfaceGeometry. Optionally, the sameÿvolume geometry and coordinates can also be provided within the local coordinate system of the RelatedElement by using the VolumeOnRelatedElement attribute. +/// The IfcSolidModel (or the IfcClosedShell) at the VolumeOnRelatingElement attribute defines the volume where the basic geometry items of the interfering elements overlap. The volume geometry and coordinates are provided within the local coordinate system of the RelatingElement, as specified at the subtypes of the relationship IfcRelConnects that utilizes the IfcConnectionSurfaceGeometry. Optionally, the samevolume geometry and coordinates can also be provided within the local coordinate system of the RelatedElement by using the VolumeOnRelatedElement attribute. class IFC_PARSE_API IfcConnectionVolumeGeometry : public IfcConnectionGeometry { public: /// Volume at which related object overlaps with the relating element, given in the LCS of the relating element. @@ -8399,7 +8379,7 @@ public: /// SourceCRS being the more local, or child coordinate /// reference system, and the TargetCRS being the more /// remote or parent coordinate reference system, in -/// theÿspecial case the coordinate operation between the local +/// thespecial case the coordinate operation between the local /// engineering coordinate system of the construction project /// and any map or other coordinate reference system. /// @@ -8928,7 +8908,7 @@ public: /// /// NOTE  The z axis of the local engineering coordinate system is always parallel to the z axis of the map coordinate system. /// -/// The scale factor can be used when the length unit for the 3 axes of the map coordinate system are not identical with the length unit established for this project (seeÿIfcProject.UnitsInContext), if omitted, the scale factor 1.0 is assumed. +/// The scale factor can be used when the length unit for the 3 axes of the map coordinate system are not identical with the length unit established for this project (seeIfcProject.UnitsInContext), if omitted, the scale factor 1.0 is assumed. /// /// HISTORY  New entity in IFC2x4. class IFC_PARSE_API IfcMapConversion : public IfcCoordinateOperation { @@ -8972,9 +8952,9 @@ public: }; /// IfcMaterialClassificationRelationship is a relationship assigning classifications to materials. /// -/// HISTORYÿ New entity in IFC2x. +/// HISTORY New entity in IFC2x. /// -/// IFC2x4 CHANGEÿ The entity IfcMaterialClassificationRelationship is deprecated since IFC2x4 and shall no longer be used. Use IfcExternalReferenceRelationship instead. +/// IFC2x4 CHANGE The entity IfcMaterialClassificationRelationship is deprecated since IFC2x4 and shall no longer be used. Use IfcExternalReferenceRelationship instead. class IFC_PARSE_API IfcMaterialClassificationRelationship : public IfcUtil::IfcBaseEntity { public: /// The material classifications identifying the type of material. @@ -9012,7 +8992,7 @@ public: /// IfcElementType by using the objectified relationship /// IfcRelAssociatesMaterial. /// -/// HISTORYÿ New entity in IFC2x4 +/// HISTORY New entity in IFC2x4 class IFC_PARSE_API IfcMaterialDefinition : public IfcUtil::IfcBaseEntity { public: IfcTemplatedEntityList< IfcRelAssociatesMaterial >::ptr AssociatedTo() const; // INVERSE IfcRelAssociatesMaterial::RelatingMaterial @@ -9225,7 +9205,7 @@ public: /// of a single identifiable material (for example, to represent anisotropic /// material). /// -/// IFC2x4 CHANGEÿ The entity IfcMaterialList is deprecated and shall no longer +/// IFC2x4 CHANGE The entity IfcMaterialList is deprecated and shall no longer /// be used. Use IfcMaterialConstituentSet instead. class IFC_PARSE_API IfcMaterialList : public IfcUtil::IfcBaseEntity { public: @@ -9240,9 +9220,9 @@ public: }; /// IfcMaterialProfile is a single and identifiable part of an element which is constructed of a number of profiles (one or more). /// -/// NOTE ÿ In case of multiple MaterialProfiles, the relative positioning of individual profiles in IfcMaterialProfileSet are defined using the concept of IfcCompositeProfileDef in IfcProfileResource schema; otherwise, only one MaterialProfile is given and defined by an individual IfcProfileDef (subtype). +/// NOTE In case of multiple MaterialProfiles, the relative positioning of individual profiles in IfcMaterialProfileSet are defined using the concept of IfcCompositeProfileDef in IfcProfileResource schema; otherwise, only one MaterialProfile is given and defined by an individual IfcProfileDef (subtype). /// -/// HISTORYÿNew Entity in IFC2x4 +/// HISTORYNew Entity in IFC2x4 class IFC_PARSE_API IfcMaterialProfile : public IfcMaterialDefinition { public: /// Whether the optional attribute Name is defined for this IfcMaterialProfile @@ -9282,9 +9262,9 @@ public: }; /// IfcMaterialProfileSet is a designation by which individual material(s) of a prismatic element (for example, beam or column) constructed of a single or multiple material profiles is known. If only a single material profile is used (the most typical case) then no CompositeProfile is asserted. /// -/// NOTE ÿ In case of multiple MaterialProfiles, the relative positioning of individual profiles in IfcMaterialProfileSet are defined using the concept of IfcCompositeProfileDef in IfcProfileResource schema; otherwise, only one MaterialProfile is given and defined by an individual IfcProfileDef (subtype). +/// NOTE In case of multiple MaterialProfiles, the relative positioning of individual profiles in IfcMaterialProfileSet are defined using the concept of IfcCompositeProfileDef in IfcProfileResource schema; otherwise, only one MaterialProfile is given and defined by an individual IfcProfileDef (subtype). /// -/// HISTORYÿNew Entity in IFC2x4. +/// HISTORYNew Entity in IFC2x4. class IFC_PARSE_API IfcMaterialProfileSet : public IfcMaterialDefinition { public: /// Whether the optional attribute Name is defined for this IfcMaterialProfileSet @@ -9318,7 +9298,7 @@ public: /// /// Relative positions of IfcMaterialProfileWithOffsets in the longitudinal direction of an element can be defined giving offsets at the start and end. This shall not be used for relative positions of individual profiles in the plane of profile definition, which is given in composite profile definition itself. Also, care should be taken especially when used with IfcMaterialProfileSetUsageTapering for correct start and end offset assignement. /// -/// HISTORYÿ New Entity in IFC2x4. +/// HISTORY New Entity in IFC2x4. class IFC_PARSE_API IfcMaterialProfileWithOffsets : public IfcMaterialProfile { public: /// The numerical value of profile offset, in the direction of the axis direction - always AXIS1 i.e. the axis along the extrusion path. The OffsetValues[1] identifies the offset from the lower position along the axis direction (normally the start of the standard extrusion), the OffsetValues[2] identifies the offset from the upper position along the axis direction (normally the end of the standard extrusion), @@ -9353,7 +9333,7 @@ public: /// objectified relationship IfcRelAssociatesMaterial; it is /// only valid in conjunction with an element occurrence. /// -/// HISTORYÿ New entity in IFC2x4 +/// HISTORY New entity in IFC2x4 /// /// Informal proposition /// @@ -9974,7 +9954,7 @@ public: /// /// HISTORY New entity in IFC Release 2.0 /// -/// IFC2x3 NOTE ÿUsers should not instantiate the entity from IFC2x Edition 3 onwards. +/// IFC2x3 NOTE Users should not instantiate the entity from IFC2x Edition 3 onwards. /// /// IFC2x4 CHANGE  Entity made abstract. class IFC_PARSE_API IfcProductRepresentation : public IfcUtil::IfcBaseEntity { @@ -10577,7 +10557,7 @@ public: /// IfcElement, or in view definitions / implementer /// agreements. /// -/// NOTE ÿThe definition of this +/// NOTE The definition of this /// entity relates to the ISO 10303 entity representation. Please /// refer to ISO/IS 10303-43:1994 for the final definition of /// the formal standard. @@ -10842,7 +10822,7 @@ public: /// product shape represent a distinctive part to a product /// that can be explicitly addressed. /// -/// NOTE ÿThe definition of +/// NOTE The definition of /// this class relates to the ISO 10303 entity shape_aspect. Please /// refer to ISO/IS 10303-41:1994 for the final definition of /// the formal standard. @@ -10861,9 +10841,9 @@ public: /// PartOfProductDefinitionShape must refer to this /// instance of IfcProductDefinitionShape. /// -/// NOTEÿ PartOfProductDefinitionShape is +/// NOTE PartOfProductDefinitionShape is /// only to be omitted if the shape representations are -/// attached to an IfcRepresentationMap. ÿThis +/// attached to an IfcRepresentationMap. This /// enables the use of IfcShapeAspect with /// IfcRepresentationMap's that are used by an /// IfcTypeProduct through the @@ -12951,12 +12931,12 @@ public: }; /// IfcConnectionPointEccentricity is used to describe the geometric constraints that facilitate the physical connection of two objects at a point or vertex point with associated point coordinates. There is a physical distance, or eccentricity, etween the connection points of both object. The eccentricity can be either given by: /// -/// providing the PointOnRelatingElement and the PointOnRelatedElement, where bothÿpoint coordinates are not identical within a common parent coordinate system (latestly within the world coordinate system), +/// providing the PointOnRelatingElement and the PointOnRelatedElement, where bothpoint coordinates are not identical within a common parent coordinate system (latestly within the world coordinate system), /// providing the PointOnRelatingElement and the three distance measures, EccentricityInX, EccentricityInY, and EccentricityInZ (or only EccentricityInX, and EccentricityInY if the /// underlying coordinate system is two-dimensional), or /// providing both. /// -/// NOTEÿ If both, PointOnRelatedElement, and EccentricityInX, EccentricityInY, (EccentricityInZ) are provided, the values should be consistent. In case of any non-consistency, the calculated distance between PointOnRelatingElement and PointOnRelatedElement takes precedence. +/// NOTE If both, PointOnRelatedElement, and EccentricityInX, EccentricityInY, (EccentricityInZ) are provided, the values should be consistent. In case of any non-consistency, the calculated distance between PointOnRelatingElement and PointOnRelatedElement takes precedence. /// /// The explicit values for EccentricityInX, EccentricityInY, and EccentricityInZ are always /// measured in the following direction and coordinate system (defining when the value is positive or negative): @@ -12964,7 +12944,7 @@ public: /// from the PointOnRelatedElement to PointOnRelatingElement within the coordinate system of the RelatingElement. /// in addition: when used to specify connections in structural analysis models, the IfcStructuralMember is to be used as the RelatingElement of the relationship object utilizing IfcConnectionPointEccentricity, and the IfcStructuralConnection is the RelatedElement. /// -/// HISTORYÿ New entity in IFC 2x Edition 3. +/// HISTORY New entity in IFC 2x Edition 3. /// /// Geometry use definitions /// The IfcPoint (or the IfcVertexPoint with an associated IfcPoint) at the PointOnRelatingElement attribute defines the point where the basic geometry items of the connected elements connects. The point coordinates are provided within the local coordinate system of the RelatingElement, as specified at the IfcRelConnects subtype that utilizes the IfcConnectionPointGeometry. Optionally, the same point coordinates can also be provided within the local coordinate system of the RelatedElement by using the PointOnRelatedElement attribute, otherwise the distance to the point at the RelatedElement has to be given by the three eccentricity values. @@ -13988,7 +13968,7 @@ public: /// /// Figure 329 — Geometric representation context true north /// -/// NOTE ÿThe inherited attribute +/// NOTE The inherited attribute /// ContextType shall have one of the following recognized /// values: 'Sketch', 'Outline', 'Design', 'Detail', /// 'Model', 'Plan', @@ -14011,9 +13991,9 @@ public: /// /// NOTE  The definition of this class relates to the ISO 10303 entity geometric_representation_context. Please refer to ISO/IS 10303-42:1994 for the final definition of the formal standard. /// -/// HISTORY ÿNew Entity in IFC Release 2.0 +/// HISTORY New Entity in IFC Release 2.0 /// -/// IFC2x3 CHANGE ÿApplicable values for ContextType are only 'Model',ÿ 'Plan', andÿ'NotDefined'. All other sub contexts are now handled by the new subtype in IFC2x Edition 2 IfcGeometricRepresentationSubContext. Upward compatibility for file based exchange is guaranteed. +/// IFC2x3 CHANGE Applicable values for ContextType are only 'Model', 'Plan', and'NotDefined'. All other sub contexts are now handled by the new subtype in IFC2x Edition 2 IfcGeometricRepresentationSubContext. Upward compatibility for file based exchange is guaranteed. class IFC_PARSE_API IfcGeometricRepresentationContext : public IfcRepresentationContext { public: /// The integer dimension count of the coordinate space modeled in a geometric representation context. @@ -14145,14 +14125,14 @@ public: /// PlacementRefDirection = IfcDirection: by the explicitly provided direction information; /// PlacementRefDirection = IfcVirtualGridIntersection: by the tangent between the virtual grid intersection of PlacementLocation and the virtual grid intersection of PlacementRefDirection. Offsets as potentially provided in the IfcVirtualGridIntersection's of PlacementLocation and PlacementRefDirection have to be taken into account. /// -/// The direction of the y-axis of the IfcGridPlacement is the orthogonal complement to the x-axis. The plane defined by the x and y axis shall be co-planar to the xy plane of the local placement of the IfcGrid.ÿ +/// The direction of the y-axis of the IfcGridPlacement is the orthogonal complement to the x-axis. The plane defined by the x and y axis shall be co-planar to the xy plane of the local placement of the IfcGrid. /// The direction of the z-axis is the orientation of the cross product of the x-axis and the y-axis, i.e. the z-axis of the IfcGridPlacement shall be co-linear to the z-axis of the local placement of the IfcGrid. /// /// NOTE The IfcGrid local placement, that can be provided relative to the local placement of another spatial structure element, has to be taken into account for calculating the absolute placement of the virtual grid intersection. /// /// NOTE The PlacementLocation.OffsetDistances[3] and the PlacementRefDirection.OffsetDistances[3] shall either not be assigned or should have the same z offset value. /// -/// HISTORY ÿNew entity in IFC Release 1.5. The entity name was changed from IfcConstrainedPlacement in IFC Release 2x. +/// HISTORY New entity in IFC Release 1.5. The entity name was changed from IfcConstrainedPlacement in IFC Release 2x. /// /// IFC2x4 CHANGE Attribute data type of PlacementRefDirection has been changed to IfcGridPlacementDirectionSelect. /// @@ -14730,9 +14710,9 @@ public: /// styles, hatching definitions or surface coloring/rendering /// information to a material. /// -/// HISTORYÿNew entity in IFC2x4 +/// HISTORYNew entity in IFC2x4 /// -/// IFC2x4 CHANGEÿ The attributes Description and Category have been added. +/// IFC2x4 CHANGE The attributes Description and Category have been added. class IFC_PARSE_API IfcMaterial : public IfcMaterialDefinition { public: /// Name of the material. @@ -14771,7 +14751,7 @@ public: /// /// NOTE See the "Material Use Definition" at the individual element to which an IfcMaterialConstituentSet may apply for a required or recommended definition of such keywords as value for IfcMaterialConstituent.Name. /// -/// HISTORYÿNew Entity in IFC2x4 +/// HISTORYNew Entity in IFC2x4 class IFC_PARSE_API IfcMaterialConstituent : public IfcMaterialDefinition { public: /// Whether the optional attribute Name is defined for this IfcMaterialConstituent @@ -14817,7 +14797,7 @@ public: /// for a required or recommended definition of such /// keywords. /// -/// HISTORYÿNew Entity in IFC2x4. +/// HISTORYNew Entity in IFC2x4. class IFC_PARSE_API IfcMaterialConstituentSet : public IfcMaterialDefinition { public: /// Whether the optional attribute Name is defined for this IfcMaterialConstituentSet @@ -14890,7 +14870,7 @@ public: /// the element geometry). The rules to ensure the compatibility /// depend on the type of the building element. /// -/// EXAMPLE ÿFor a cavity brick wall with shape +/// EXAMPLE For a cavity brick wall with shape /// representation SweptSolid, the /// IfcMaterialLayerSet.TotalThickness shall be equal to the /// wall thickness. Also the OffsetFromReferenceLine shall @@ -14900,7 +14880,7 @@ public: /// RepresentationIdentifier="Axis" and /// RepresentationIdentifier="Body". /// -/// NOTE ÿRefer to the implementation guide and agreements for +/// NOTE Refer to the implementation guide and agreements for /// more information on matching between building element geometry /// and material layer set usage. /// @@ -14911,7 +14891,7 @@ public: /// objects. If the element type is available (i.e. the relevant /// subtype of IfcElementType, then the /// IfcMaterialLayerSet can be assigned to the type object. -/// The assignment between aÿsubtype of IfcElement and the +/// The assignment between asubtype of IfcElement and the /// IfcMaterialLayerSetUsage is handled by /// IfcRelAssociatesMaterial. /// @@ -14924,8 +14904,8 @@ public: /// material layer thicknesses are constant. /// Generally, an element may be layered in any of its primary /// directions, denoted by its x, y or z axis. The geometry use -/// definitions at eachÿspecific types of building element will -/// determine the applicableÿLayerSetDirection. +/// definitions at eachspecific types of building element will +/// determine the applicableLayerSetDirection. /// /// The following examples illustrate how the IfcMaterialLayerSetUsage attributes (LayerSetDirection, DirectionSense, OffsetFromReferenceLine) can /// be used in different cases. The normative material use definitions are documented at each element (how these shall be used). @@ -14935,14 +14915,14 @@ public: /// EXAMPLE  For a standard wall with extruded /// geometric representation (vertical extrusion), the layer set /// direction will be perpendicular to extrusion direction, -/// andÿcan be derived from the direction of the wall +/// andcan be derived from the direction of the wall /// axis. With the DirectionSense(positive in /// this example) the individual IfcMaterialLayers are /// assigned consecutively right-to-left or left-to-right. For a /// curved wall, "direction denoting the wall thickness" can be /// derived from the direction of the wall axis, and it will remain /// perpendicular to the wall path. The -/// DirectionSenseÿapplies as well. +/// DirectionSenseapplies as well. /// /// NOTE  According to the IfcWallStandardCase material use /// definition the LayerSetDirection for @@ -14953,17 +14933,17 @@ public: /// /// Figure 287 shows an example of the use of IfcMaterialLayerSetUsage aligned to a slab. /// -/// EXAMPLE ÿFor a slab with perpendicular +/// EXAMPLE For a slab with perpendicular /// extruded geometric representation, the LayerSetDirection /// will coincide with the extrusion direction (in positive or /// negative sense). In this example, the material layer set base is /// the extruded profile and consistent with the -/// IfcExtrudedAreaSolid.Position,ÿwith the +/// IfcExtrudedAreaSolid.Position,with the /// DirectionSensebeing positive, the /// individual IfcMaterialLayers are built up from the base /// towards positive z direction in this case. /// -/// NOTE ÿAccording to the IfcSlabStandardCase +/// NOTE According to the IfcSlabStandardCase /// material use definition the LayerSetDirection for /// IfcSlabStandardCase is always AXIS3 (i.e. along the /// z-axis). @@ -14972,7 +14952,7 @@ public: /// /// Figure 288 shows an example of the use of IfcMaterialLayerSetUsage aligned to a roof slab with non-perpendicular extrusion. /// -/// EXAMPLE ÿFor a slab with non-perpendicular +/// EXAMPLE For a slab with non-perpendicular /// extruded geometric representation, the guidelines above apply as /// well. The material layer thickness and the /// OffsetFromReferenceLine is always measured @@ -15021,11 +15001,11 @@ public: }; /// IfcMaterialProfileSetUsage determines the usage of IfcMaterialProfileSet in terms of its location relative to the associated element geometry. The location of a material profile set shall be compatible with the building element geometry (that is, material profiles shall fit inside the element geometry). The rules to ensure the compatibility depend on the type of the building element. For building elements with shape representations which are based on extruded solids, this is accomplished by referring to the identical profile definition in the shape model as in the material profile set. /// -/// NOTE ÿ Refer to the implementation guide and agreements for more information on matching between building element geometry and material profile set usage. -/// NOTE ÿ The referenced IfcMaterialProfileSet may represent a single material +/// NOTE Refer to the implementation guide and agreements for more information on matching between building element geometry and material profile set usage. +/// NOTE The referenced IfcMaterialProfileSet may represent a single material /// profile, or a composite profile with two or more material profiles. /// -/// HISTORYÿNew Entity in IFC2x4. +/// HISTORYNew Entity in IFC2x4. class IFC_PARSE_API IfcMaterialProfileSetUsage : public IfcMaterialUsageDefinition { public: /// The IfcMaterialProfileSet set to which the usage is applied. @@ -15054,7 +15034,7 @@ public: }; /// IfcMaterialProfileSetUsageTapering specifies dual material profile sets in association with tapered prismatic (beam- or column-like) elements. /// -/// HISTORYÿ New entity in IFC 2x4 +/// HISTORY New entity in IFC 2x4 /// /// Usage with tapered building elements /// The inherited attribute ForProfileSet specifies the @@ -15130,7 +15110,7 @@ public: }; /// IfcMaterialRelationship defines a relationship between part and whole in material definitions (as in composite materials). The parts, expressed by the set of RelatedMaterials, are material constituents of which a single material aggregate is composed. /// -/// HISTORYÿNew Entity in IFC2x4 +/// HISTORYNew Entity in IFC2x4 class IFC_PARSE_API IfcMaterialRelationship : public IfcResourceLevelRelationship { public: /// Reference to the relating material (the composite). @@ -17389,7 +17369,7 @@ public: }; /// IfcTypeProcess defines a /// specific (or type) definition of a process or activity without -/// being assigned to a schedule or a time.ÿIt is used to define a +/// being assigned to a schedule or a time.It is used to define a /// process or activity specification, that is, the specific process or /// activity information that is common to all occurrences that are /// defined for that process or activity type. @@ -17445,29 +17425,29 @@ public: /// definition of a product without being already inserted into a /// project structure (without having a placement), and not being /// included into the geometric representation context of the -/// project.ÿIt is used to define a product specification, that is, the +/// project.It is used to define a product specification, that is, the /// specific product information that is common to all occurrences /// of that product type. /// /// An IfcTypeProduct may have a list of property set /// attached and an optional set of product representations. Values /// of these properties and the representation maps are common to all -/// occurrencesÿof that product type.ÿThe type occurrence +/// occurrencesof that product type.The type occurrence /// relationship is realized using the objectified relationship /// IfcRelDefinesByType. /// -/// NOTE 1ÿ The product representations are +/// NOTE 1 The product representations are /// defined as representation maps, which gets assigned by a product /// instance through the representation item(s) being an /// IfcShapeRepresentation and having Items of -/// typeÿIfcMappedItem. -/// NOTE 2 ÿThe representations at the occurrence +/// typeIfcMappedItem. +/// NOTE 2 The representations at the occurrence /// level (represented by subtypes of IfcProduct) can override -/// the specific representations at the type level, ÿ +/// the specific representations at the type level, /// /// for geometric representations: a Cartesian /// transformation operator can be applied at the occurrence level, -/// andÿ +/// and /// for property sets: A property within an occurrence /// property set, assigned at the product occurrence, overrides the /// same property assigned to the product type. @@ -17526,7 +17506,7 @@ public: IfcTypeProduct (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag); typedef IfcTemplatedEntityList< IfcTypeProduct > list; }; -/// IfcTypeResource defines a specific (or type) definition of a resource.ÿIt is used to define a resource specification (the specific resource, that is common to all occurrences that are defined for that resource) and could act as a resource template. +/// IfcTypeResource defines a specific (or type) definition of a resource.It is used to define a resource specification (the specific resource, that is common to all occurrences that are defined for that resource) and could act as a resource template. /// /// An IfcTypeResource may have a list of property sets attached. Values of these properties are common to all occurrences of that resource type. The type occurrence relationship is realized using the objectified relationship IfcRelDefinesByType. /// @@ -18633,9 +18613,9 @@ public: }; /// IfcCsgPrimitive3D is an abstract supertype of all three dimensional primitives used as either tree root item, or as Boolean results within a CSG solid model. All 3D CSG primitives are defined within a three-dimensional placement coordinate system. /// -/// NOTEÿ No directly corresponding ISO 10303-42 entity, the select type primitive_3d covers the same individual 3D CSG primitives, the position attribute has been added to apply equally to all subtypes. Please refer to ISO/IS 10303-42:1994, p. 234 for the final definition of the formal standard. +/// NOTE No directly corresponding ISO 10303-42 entity, the select type primitive_3d covers the same individual 3D CSG primitives, the position attribute has been added to apply equally to all subtypes. Please refer to ISO/IS 10303-42:1994, p. 234 for the final definition of the formal standard. /// -/// HISTORYÿ New entity in IFC2x3. +/// HISTORY New entity in IFC2x3. class IFC_PARSE_API IfcCsgPrimitive3D : public IfcGeometricRepresentationItem { public: /// The placement coordinate system to which the parameters of each individual CSG primitive apply. @@ -18809,7 +18789,7 @@ public: /// is related by the inverse relationship IsDefinedBy pointing to IfcRelDefinedByType. The IfcDoorStyle /// also defines the particular attributes for the lining, IfcDoorLiningProperties, and panels, IfcDoorPanelProperties. /// -/// HISTORYÿNew entity in IFC Release 2x. +/// HISTORYNew entity in IFC Release 2x. /// /// IFC2x4 CHANGE The entity is deprecated and shall not be used. The new entity /// IfcDoorType shall be used instead. @@ -18825,7 +18805,7 @@ public: /// The IfcDoorStyleOperationTypeEnum defines the general layout of the door style. Depending on the enumerator, the /// appropriate instances of IfcDoorLiningProperties and IfcDoorPanelProperties are attached in the list of /// HasPropertySets. The IfcDoorStyleOperationTypeEnum mainly determines the hinge side (left hung, or right hung), the -/// operation (swinging, sliding, folding, etc.)ÿand the number of panels. +/// operation (swinging, sliding, folding, etc.)and the number of panels. /// /// See geometry use definitions at IfcDoorStyleOperationTypeEnum for the correct usage of opening symbols for different operation types. class IFC_PARSE_API IfcDoorStyle : public IfcTypeProduct { @@ -19482,7 +19462,7 @@ public: /// product representations. It is used to define an element /// specification (i.e. the specific product information, that is /// common to all occurrences of that product type). -/// NOTEÿ The product representations are defined +/// NOTE The product representations are defined /// as representation maps (at the level of the supertype /// IfcTypeProduct, which gets assigned by an element /// occurrence instance through the @@ -19497,7 +19477,7 @@ public: /// The occurrences of the IfcFurnishingElementType are /// represented by instances of IfcFurnishingElement (or its /// subtypes). -/// HISTORYÿNew entity in +/// HISTORYNew entity in /// Release IFC2x Edition 2. /// IFC2x3 CHANGE The entity has been /// made non-abstract @@ -19568,11 +19548,11 @@ public: /// IfcGeographicElementType is used to define an /// element specification of a geographic element (i.e. the /// specific product information, that is common to all -/// occurrences of that product type).ÿGeographic element types +/// occurrences of that product type).Geographic element types /// include for different types of element that may be used to /// represent information within a geographical landscape /// external to a building. Within the world of geographic -/// information they are referred to generally as 'features'.ÿ +/// information they are referred to generally as 'features'. /// Geographic element types includes for many possibilities: /// /// linear elements such as sections of a roadway @@ -19591,9 +19571,9 @@ public: /// /// The specification of the specific types are given by the /// inherited attribute IfcElementType.ElementType given -/// as an IfcLabel.ÿ +/// as an IfcLabel. /// -/// NOTE ÿThis is due to the range of choices of +/// NOTE This is due to the range of choices of /// element type thyat are available and their expression in /// different languages. It is not considered possible to /// create a reasonably full list of types within an @@ -19601,14 +19581,14 @@ public: /// relevant type be drawn from an available 'feature /// catalog'. /// -/// HISTORYÿ New entity in +/// HISTORY New entity in /// Release IFC2x Edition 4. /// /// Feature Catalog Use Definition /// /// Geographic element types are frequently identified in /// feature catalogs that are produced for particular -/// purposes.ÿThe IfcGeographicElementType entity +/// purposes.The IfcGeographicElementType entity /// enables the continued use of existing feature catalogs /// through capture of their identity and attributes. /// @@ -20569,7 +20549,7 @@ public: /// and the second value specifying the lower bound. It defines /// a property - value bound (min-max) combination for which /// the property Name, an optional -/// Description,ÿthe optional UpperBoundValue +/// Description,the optional UpperBoundValue /// with measure type, the optional LowerBoundValue with /// measure type, and the optional Unit is given. /// @@ -20655,7 +20635,7 @@ public: /// /// kg /// -/// HISTORY ÿNew entity in IFC Release 2x. +/// HISTORY New entity in IFC Release 2x. /// /// IFC2x2 CHANGE  The attribute type of the attribute UpperBoundValue and LowerBoundValue has been changed from mandatory to optional with upward compatibility for file based exchange. /// @@ -20700,7 +20680,7 @@ public: /// value, IfcPropertyEnumeratedValue, defines a property /// object which has a value assigned that is chosen from an /// enumeration. It defines a property - value combination for which -/// theÿproperty Name, an optional Description,ÿthe +/// theproperty Name, an optional Description,the /// optional EnumerationValues /// with measure type and optionally an Unit is given. /// @@ -20724,18 +20704,18 @@ public: /// (see IfcPropertyEnumeration). This enables applications to /// use an enumeration value as a property within a property set /// (IfcPropertySet) including the allowed list of -/// values.ÿ +/// values. /// /// NOTE  An IfcPropertyEnumeratedValue may be exchanged with no values assigned yet. In this case the EnumerationValues are set to NIL. /// /// Examples of a property with enumerated value are: /// -/// Nameÿ +/// Name /// Value (EnumerationValue) /// Type (through /// IfcValue) /// ref.IfcPropertyEnumeration -/// (Name)ÿ +/// (Name) /// /// BladeAction /// Opposed @@ -20768,7 +20748,7 @@ public: /// referenced by multiple instances of /// IfcPropertyEnumeratedValue. /// -/// HISTORY ÿNew Entity in IFC Release 2.0, capabilities enhanced in IFC2x. The entity has +/// HISTORY New Entity in IFC Release 2.0, capabilities enhanced in IFC2x. The entity has /// been renamed from IfcEnumeratedProperty in IFC2x. /// /// IFC2x4 CHANGE Attribute EnumerationValues has been made OPTIONAL with upward @@ -20796,9 +20776,9 @@ public: /// An IfcPropertyListValue /// defines a property that has several (numeric or /// descriptive) values assigned, these values are given by an -/// ordered list.ÿIt defines a property - list value +/// ordered list.It defines a property - list value /// combination for which the property Name, an optional -/// Description,ÿthe optional ListValues with measure +/// Description,the optional ListValues with measure /// type and optionally an Unit is given. /// /// An IfcPropertyListValue is a list of values. The @@ -21044,7 +21024,7 @@ public: /// IfcPropertySingleValue defines a property object which has /// a single (numeric or descriptive) value assigned. It defines a /// property - single value combination for which the property -/// Name, an optional Description,ÿand an optional +/// Name, an optional Description,and an optional /// NominalValue with measure type is provided. In addition, /// the default unit as specified within the project unit context can /// be overriden by assigning an Unit. @@ -21081,9 +21061,9 @@ public: /// IfcThermalTransmittanceMeasure /// W/(m2K) /// -/// HISTORY ÿNew entity in IFC Release 1.0. The entity has been renamed from IfcSimpleProperty in IFC Release 2x. +/// HISTORY New entity in IFC Release 1.0. The entity has been renamed from IfcSimpleProperty in IFC Release 2x. /// -/// IFC2x3 CHANGE ÿAttribute NominalValue has been made OPTIONAL with upward compatibility for file based exchange. +/// IFC2x3 CHANGE Attribute NominalValue has been made OPTIONAL with upward compatibility for file based exchange. class IFC_PARSE_API IfcPropertySingleValue : public IfcSimpleProperty { public: /// Whether the optional attribute NominalValue is defined for this IfcPropertySingleValue @@ -21174,8 +21154,6 @@ public: /// /// dB /// -/// ÿ -/// /// 200 /// /// IfcFrequencyMeasure @@ -21184,12 +21162,6 @@ public: /// /// IfcNumericMeasure /// -/// ÿ -/// -/// ÿ -/// -/// ÿ -/// /// 400 /// /// IfcFrequencyMeasure @@ -21198,12 +21170,6 @@ public: /// /// IfcNumericMeasure /// -/// ÿ -/// -/// ÿ -/// -/// ÿ -/// /// 800 /// /// IfcFrequencyMeasure @@ -21212,12 +21178,6 @@ public: /// /// IfcNumericMeasure /// -/// ÿ -/// -/// ÿ -/// -/// ÿ -/// /// 1600 /// /// IfcFrequencyMeasure @@ -21226,12 +21186,6 @@ public: /// /// IfcNumericMeasure /// -/// ÿ -/// -/// ÿ -/// -/// ÿ -/// /// 3200 /// /// IfcFrequencyMeasure @@ -21240,10 +21194,6 @@ public: /// /// IfcNumericMeasure /// -/// ÿ -/// -/// ÿ -/// /// HISTORY: New entity in IFC2x. /// /// IFC2x4 CHANGE  Attributes DefiningValues and DefinedValues have been made OPTIONAL with upward compatibility for file based exchange. The attribute CurveInterpolation has been added.. @@ -21649,9 +21599,9 @@ public: }; /// The objectified relationship IfcRelAssignsToControl handles the assignment of a control (represented by subtypes of IfcControl) to other objects (represented by subtypes of IfcObject, with the exception of controls). /// -/// EXAMPLEÿ The assignment of a performance history (as subtype of IfcControl) for a building service element (as subtype of IfcObject) is an application of this generic relationship. +/// EXAMPLE The assignment of a performance history (as subtype of IfcControl) for a building service element (as subtype of IfcObject) is an application of this generic relationship. /// -/// HISTORYÿ New Entity in IFC Release 2.0. Has been renamed from IfcRelControls in IFC Release 2x. +/// HISTORY New Entity in IFC Release 2.0. Has been renamed from IfcRelControls in IFC Release 2x. class IFC_PARSE_API IfcRelAssignsToControl : public IfcRelAssigns { public: /// Reference to the IfcControl that applies a control upon objects. @@ -21747,14 +21697,14 @@ public: IfcRelAssignsToProcess (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, IfcTemplatedEntityList< ::Ifc4::IfcObjectDefinition >::ptr v5_RelatedObjects, boost::optional< ::Ifc4::IfcObjectTypeEnum::Value > v6_RelatedObjectsType, ::Ifc4::IfcProcessSelect* v7_RelatingProcess, ::Ifc4::IfcMeasureWithUnit* v8_QuantityInProcess); typedef IfcTemplatedEntityList< IfcRelAssignsToProcess > list; }; -/// The objectified relationshipÿIfcRelAssignsToProduct handles the assignment of objects (subtypes of IfcObject) to a product (subtypes of IfcProduct). The Name attribute should be used to classify the usage of the IfcRelAssignsToProduct objectified relationship. The following Name values are proposed: +/// The objectified relationshipIfcRelAssignsToProduct handles the assignment of objects (subtypes of IfcObject) to a product (subtypes of IfcProduct). The Name attribute should be used to classify the usage of the IfcRelAssignsToProduct objectified relationship. The following Name values are proposed: /// -/// 'Context' : Assignment of a context specific representation, such as of structural members to a different context representation (with potentially different decomposition breakdown) such as of building elementsÿfor a specificÿcontext specific representation.ÿ +/// 'Context' : Assignment of a context specific representation, such as of structural members to a different context representation (with potentially different decomposition breakdown) such as of building elementsfor a specificcontext specific representation. /// 'View' : Assignment of a product (via RelatingProduct) that is decomposed according to a discipline view, to another product (via RelatedObjects) that is decomposed according to a different discipline view. An example is the assignment of the architectural slab to a different decomposition of the pre manufactured sections of a slab (under a precast concrete discipline view). /// /// HISTORY New Entity in IFC Release 2x /// -/// IFC2x3 CHANGE ÿThe reference of a product within a spatial structure is now handled by a new relationship object IfcRelReferencedInSpatialStructure. The IfcRelAssignsToProduct shall not be used to represent this relation from IFC2x3 onwards. +/// IFC2x3 CHANGE The reference of a product within a spatial structure is now handled by a new relationship object IfcRelReferencedInSpatialStructure. The IfcRelAssignsToProduct shall not be used to represent this relation from IFC2x3 onwards. class IFC_PARSE_API IfcRelAssignsToProduct : public IfcRelAssigns { public: /// Reference to the product or product type to which the objects are assigned to. @@ -22136,8 +22086,6 @@ public: /// Figure 117 illustrates using the IfcRelConnectsPathElements for a "L" type connection between two instances of IfcWallStandardCase. /// NOTE  The two wall axes connect in each case. /// -/// ÿ -/// /// Figure 116 — Path connection T-Type /// Figure 117 — Path connection L-Type class IFC_PARSE_API IfcRelConnectsPathElements : public IfcRelConnectsElements { @@ -22434,8 +22382,6 @@ public: /// Containment Use Definition /// Figure 39 shows the use of IfcRelContainedInSpatialStructure to assign a stair and two walls to two different levels within the spatial structure. /// -/// ÿ -/// /// Figure 39 — Relationship for spatial structure containment class IFC_PARSE_API IfcRelContainedInSpatialStructure : public IfcRelConnects { public: @@ -22486,7 +22432,7 @@ public: typedef IfcTemplatedEntityList< IfcRelCoversBldgElements > list; }; /// Definition from IAI: The objectified relationship, -/// IfcRelCoversSpace, relatesÿa space object to one or +/// IfcRelCoversSpace, relatesa space object to one or /// many coverings, which faces (or is assigned to) the space. /// /// NOTE Particularly floorings, ceilings and wall @@ -22509,7 +22455,7 @@ public: /// NOTE View definition may determine the necessity /// to use either of the two relationship elements /// -/// HISTORYÿ New Entity in Release +/// HISTORY New Entity in Release /// IFC 2x Edition 3. class IFC_PARSE_API IfcRelCoversSpaces : public IfcRelConnects { public: @@ -22596,7 +22542,7 @@ public: /// assign a property set to an object instance /// assign a property set template to a property set /// -/// EXAMPLE ÿSeveral instances of windows within +/// EXAMPLE Several instances of windows within /// the IFC project model may be of the same (catalogue or /// manufacturer) type. Thereby they share the same properties. This /// relationship is established by the subtype @@ -22604,7 +22550,7 @@ public: /// assigning an IfcWindowStyle to multiple occurrences /// IfcWindow. /// -/// EXAMPLE ÿThe (same) property set, e.g.ÿ +/// EXAMPLE The (same) property set, e.g. /// Pset_ProductManufacturerInfo, keeping the manufacturer name, /// label and production year of a product, can be assigned to one, /// or many instances of furnishing. This relationship is established @@ -22767,18 +22713,16 @@ public: /// /// Pset_WallCommon /// Pset_WallCommon -/// ÿ /// -/// ÿ-ÿExtendToStructure = TRUE -/// ÿ +/// -ExtendToStructure = TRUE +/// /// TRUE /// -/// ÿ -/// ÿ-ÿThermalTransmittance = 0.375 +/// -ThermalTransmittance = 0.375 /// 0.375 /// -/// ÿ-ÿExtendToStructure = FALSE -/// ÿ-ÿExtendToStructure = TRUE +/// -ExtendToStructure = FALSE +/// -ExtendToStructure = TRUE /// FALSE class IFC_PARSE_API IfcRelDefinesByType : public IfcRelDefines { public: @@ -22866,7 +22810,7 @@ public: /// roles. This is controlled by the attribute /// ImpliedOrder. /// -/// ImpliedOrder=TRUEÿ The RelatingElement +/// ImpliedOrder=TRUE The RelatingElement /// constitutes the primary element of the interference relationship. /// If the interference is to be resolved by subtracting the /// overlapping part, it should be subtracted from the @@ -22875,16 +22819,16 @@ public: /// InterferenceGeometry. This would be the case in /// interference relationships where the RelatedElement /// creates a void in the RelatingElement dynamically. -/// ImpliedOrder=FALSEÿ The RelatingElement and +/// ImpliedOrder=FALSE The RelatingElement and /// RelatedElement have no priority among each other. If the /// interference is to be resolved then no information about whether /// the InterferenceGeometry should be subtracted from the /// RelatingElement or thed RelatedElement can be /// traced. This would be the case for clash detection results. -/// ImpliedOrder=UNKNOWÿ No information about the +/// ImpliedOrder=UNKNOW No information about the /// priorities is provided. /// -/// HISTORYÿ New entity in +/// HISTORY New entity in /// IFC2x4. class IFC_PARSE_API IfcRelInterferesElements : public IfcRelConnects { public: @@ -23005,14 +22949,14 @@ public: /// The objectified relationship, /// IfcRelReferencedInSpatialStructure is used to /// assign elements in addition to those levels of the project -/// spatialÿstructure, in which they are referenced, but not -/// primarily contained.ÿ +/// spatialstructure, in which they are referenced, but not +/// primarily contained. /// -/// NOTE ÿThe primary containment relationship between +/// NOTE The primary containment relationship between /// an element and the spatial structure is handled -/// byÿIfcRelContainsInSpatialStructure. +/// byIfcRelContainsInSpatialStructure. /// -/// Any element can be referencedÿto zero, one or several +/// Any element can be referencedto zero, one or several /// levels of the spatial structure. Whereas the /// IfcRelContainsInSpatialStructure relationship is /// required to be hierarchical (an element can only be @@ -23045,10 +22989,10 @@ public: /// structure elements depending on the context. /// /// HISTORY New entity -/// inÿRelease IFC2x Edition 3. +/// inRelease IFC2x Edition 3. /// /// Use Definition -/// Figure 41 shows the use of IfcRelContainedInSpatialStructure and IfcRelReferencedInSpatialStructure to assign an IfcCurtainWallÿto two different levels within the spatial structure. It is primarily contained within the ground floor, and additionally referenced within the first and second floor. +/// Figure 41 shows the use of IfcRelContainedInSpatialStructure and IfcRelReferencedInSpatialStructure to assign an IfcCurtainWallto two different levels within the spatial structure. It is primarily contained within the ground floor, and additionally referenced within the first and second floor. /// /// Figure 41 — Relationship for spatial structure referencing class IFC_PARSE_API IfcRelReferencedInSpatialStructure : public IfcRelConnects { @@ -23175,12 +23119,12 @@ public: /// HISTORY New entity in IFC /// Release 1.0 /// -/// IFC2x PLATFORM CHANGEÿ The +/// IFC2x PLATFORM CHANGE The /// data type of the attributeRelatedBuildings has been /// changed from IfcBuilding to its supertype /// IfcSpatialStructureElement with upward compatibility /// for file based exchange. The name -/// IfcRelServicesBuildings is a knownÿanomaly, as the +/// IfcRelServicesBuildings is a knownanomaly, as the /// relationship is not restricted to buildings anymore. class IFC_PARSE_API IfcRelServicesBuildings : public IfcRelConnects { public: @@ -24093,7 +24037,7 @@ public: /// specification (i.e. the specific element information, that is /// common to all occurrences of that element type). /// -/// NOTE ÿThe product representations are defined as +/// NOTE The product representations are defined as /// representation maps (at the level of the supertype /// IfcTypeProduct, which gets assigned by an element /// occurrence instance through the @@ -24102,11 +24046,11 @@ public: /// /// A spatial element type is used to define the common properties /// of a certain type of a spatial structure element that may be -/// applied to many instances of thatÿtype to assign a specific +/// applied to many instances of thattype to assign a specific /// style. Spatial element types (i.e. the instantiable subtypes) may /// be exchanged without being already assigned to occurrences. /// -/// NOTE ÿThe spatial element types are often used to +/// NOTE The spatial element types are often used to /// represent catalogues of predefined spatial types for shared /// attributes, less so for sharing a common representation /// map. @@ -24115,7 +24059,7 @@ public: /// IfcSpatialElementType are represented by instances of /// subtypes of the abstract IfcSpatialElement. /// -/// HISTORY ÿNew entity in Release +/// HISTORY New entity in Release /// IFC2x Edition 4. class IFC_PARSE_API IfcSpatialElementType : public IfcTypeProduct { public: @@ -24228,7 +24172,7 @@ public: /// specification (i.e. the specific element information, that /// is common to all occurrences of that element type). /// -/// NOTE ÿThe product representations are defined as +/// NOTE The product representations are defined as /// representation maps (at the level of the supertype /// IfcTypeProduct, which gets assigned by an element /// occurrence instance through the @@ -24237,22 +24181,22 @@ public: /// /// A spatial structure element type is used to define the /// common properties of a certain type of a spatial structure -/// element that may be applied to many instances of thatÿtype +/// element that may be applied to many instances of thattype /// to assign a specific style. Spatial structure element types /// (i.e. the instantiable subtypes) may be exchanged without /// being already assigned to occurrences. /// -/// NOTE ÿThe spatial structure element types are +/// NOTE The spatial structure element types are /// often used to represent catalogues of predefined spatial /// types for shared attributes, less so for sharing a common /// representation map. /// /// The occurrences of subtypes of the -/// abstractÿIfcSpatialStructureElementType are +/// abstractIfcSpatialStructureElementType are /// represented by instances of subtypes of /// IfcSpatialStructureElement. /// -/// HISTORY ÿNew entity in +/// HISTORY New entity in /// Release IFC2x Edition 3. class IFC_PARSE_API IfcSpatialStructureElementType : public IfcSpatialElementType { public: @@ -24331,7 +24275,7 @@ public: /// information, that is common to all occurrences of that space /// type). /// -/// NOTE ÿThe product representations are defined as +/// NOTE The product representations are defined as /// representation maps (at the level of the supertype /// IfcTypeProduct, which gets assigned by an element /// occurrence instance through the @@ -24343,7 +24287,7 @@ public: /// that type to assign a specific style. Space types may be /// exchanged without being already assigned to occurrences. /// -/// NOTE ÿThe spatial zone types are often used to +/// NOTE The spatial zone types are often used to /// represent space catalogues, less so for sharing a common /// representation map. Spatial zone types in a space catalogue share /// same space classification and a common set of space requirement @@ -24352,7 +24296,7 @@ public: /// The occurrences of IfcSpatialZoneType are represented /// by instances of IfcSpatialZone. /// -/// HISTORY ÿNew entity in Release +/// HISTORY New entity in Release /// IFC2x Edition 4. class IFC_PARSE_API IfcSpatialZoneType : public IfcSpatialElementType { public: @@ -25511,7 +25455,7 @@ public: /// casements. The parameter of the IfcWindowLiningProperties /// define the geometrically relevant parameter of the lining. /// -/// NOTEÿ The IfcWindowLiningProperties +/// NOTE The IfcWindowLiningProperties /// shall only be applied to construct the 3D shape of a window, if /// the attribute IfcWindowStyle.ParameterTakesPrecedence is /// set TRUE. @@ -25525,7 +25469,7 @@ public: /// HISTORY New Entity in IFC Release 2.0. Has been renamed from IfcWindowLining in /// IFC Release 2x. /// -/// IFC2x4 CHANGEÿ The following attributes have been added LiningOffset, +/// IFC2x4 CHANGE The following attributes have been added LiningOffset, /// LiningToPanelOffsetX, LiningToPanelOffsetY. The /// attribute ShapeAspectStyle is deprecated and shall no /// longer be used. Supertype changed to new @@ -25828,9 +25772,9 @@ public: /// The voids are represented as closed shells which are defined so /// that the shell normal point into the void. /// -/// NOTEÿ Corresponding ISO 10303-42 entity: brep_with_voids (see note above). Please refer to ISO/IS 10303-42:1994, p. 173 for the final definition of the formal standard. In IFC advanced B-rep with voids is represented by this subtype IfcAdvancedBrepWithVoids and not defined via an implicit ANDOR supertype constraint as in ISO/IS 10303-42:1994 between an instance of manifold_solid_brep AND brep_with_voids. This change has been made due to the fact, that only ONEOF supertype constraint is allowed within the IFC object model. +/// NOTE Corresponding ISO 10303-42 entity: brep_with_voids (see note above). Please refer to ISO/IS 10303-42:1994, p. 173 for the final definition of the formal standard. In IFC advanced B-rep with voids is represented by this subtype IfcAdvancedBrepWithVoids and not defined via an implicit ANDOR supertype constraint as in ISO/IS 10303-42:1994 between an instance of manifold_solid_brep AND brep_with_voids. This change has been made due to the fact, that only ONEOF supertype constraint is allowed within the IFC object model. /// -/// HISTORYÿ New entity in IFC2x4 +/// HISTORY New entity in IFC2x4 /// /// Informal propositions: /// @@ -26387,13 +26331,13 @@ public: /// IfcBuilding.IsDecomposedBy -- referencing /// (IfcBuilding || IfcBuildingStorey) by /// IfcRelAggregates.RelatedObjects. If it refers to another -/// instance ofÿIfcBuilding, the referenced IfcBuilding +/// instance ofIfcBuilding, the referenced IfcBuilding /// needs to have a different and lower CompositionType, i.e. ELEMENT /// (if the other IfcBuilding has COMPLEX), or PARTIAL (if the /// other IfcBuilding has ELEMENT). /// /// If there are building elements and/or other elements directly -/// related to the IfcBuildingÿ(like a curtain wall spanning +/// related to the IfcBuilding(like a curtain wall spanning /// several stories), they are associated with the IfcBuilding /// by using the objectified relationship /// IfcRelContainedInSpatialStructure. The IfcBuilding @@ -26427,7 +26371,6 @@ public: /// total height of building, also referred to as ridge height (top of roof structure, e.g the ridge against terrain): provided by BaseQuantity with Name="TotalHeight" /// eaves height of building (base of roof structure, e.g the eaves against terrain): provided by BaseQuantity with Name="EavesHeight" /// -/// ÿ /// Figure 21 — Building elevations /// /// Geometry Use Definitions @@ -26603,7 +26546,7 @@ public: /// IfcBuildingStorey.Decomposes -- referencing /// (IfcBuilding || IfcBuildingStorey) by /// IfcRelAggregates.RelatingObject, If it refers to another -/// instance ofÿIfcBuildingStorey, the referenced +/// instance ofIfcBuildingStorey, the referenced /// IfcBuildingStorey needs to have a different and higher /// CompositionType, i.e. COMPLEX (if the other /// IfcBuildingStorey has ELEMENT), or ELEMENT (if the other @@ -26611,7 +26554,7 @@ public: /// IfcBuildingStorey.IsDecomposedBy -- referencing /// (IfcBuildingStorey || IfcSpace) by /// IfcRelAggregates.RelatedObjects. If it refers to another -/// instance ofÿIfcBuildingStorey, the referenced +/// instance ofIfcBuildingStorey, the referenced /// IfcBuildingStorey needs to have a different and lower /// CompositionType, i.e. ELEMENT (if the other /// IfcBuildingStorey has COMPLEX), or PARTIAL (if the other @@ -27603,7 +27546,7 @@ public: /// of product representations. It is used to define an element /// specification (i.e. the specific product information, that is /// common to all occurrences of that product type). -/// NOTEÿ The product representations are defined +/// NOTE The product representations are defined /// as representation maps (at the level of the supertype /// IfcTypeProduct, which gets assigned by an element /// occurrence instance through the @@ -27618,9 +27561,9 @@ public: /// The occurrences of the IfcDistributionElementType are /// represented by instances of IfcDistributionElement (or its /// subtypes). -/// HISTORYÿ New entity in +/// HISTORY New entity in /// Release IFC2x Edition 2. -/// IFC2x3 CHANGEÿ The entity has been made +/// IFC2x3 CHANGE The entity has been made /// non-abstract /// IFC2x4 CHANGE The entity is marked /// as deprecated for instantiation - will be made ABSTRACT after @@ -27712,7 +27655,7 @@ public: /// (IfcDoorLiningProperties) define the geometrically /// relevant parameter of the lining. /// -/// NOTEÿ The IfcDoorLiningProperties +/// NOTE The IfcDoorLiningProperties /// shall only be applied to construct the 3D shape of a door, if the /// attribute IfcDoorStyle.ParameterTakesPrecedence is set /// TRUE. @@ -27725,7 +27668,7 @@ public: /// /// HISTORY New entity in IFC Release 2.0. Has been renamed from IfcDoorLining in IFC Release 2x. /// -/// IFC2x4 CHANGEÿ The following attributes have been added LiningToPanelOffsetX, LiningToPanelOffsetY. The attribute ShapeAspectStyle is deprecated and shall no longer be used. Supertype changed to new IfcPreDefinedPropertySet. +/// IFC2x4 CHANGE The following attributes have been added LiningToPanelOffsetX, LiningToPanelOffsetY. The attribute ShapeAspectStyle is deprecated and shall no longer be used. Supertype changed to new IfcPreDefinedPropertySet. /// /// Geometry use definitions /// The IfcDoorLiningProperties does not hold its own @@ -27759,7 +27702,7 @@ public: /// LiningOffset : given if lining edge has an offset to /// the x axis of the local placement. /// -/// NOTE ÿIn addition to theÿLiningOffset, +/// NOTE In addition to theLiningOffset, /// the local placement of the IfcDoor can already have an /// offset to the wall edge and thereby shift the lining along the y /// axis. The actual position of the lining is calculated from the @@ -27901,7 +27844,7 @@ public: /// included in the same list of the IfcDoorStyle using the /// IfcPropertySet for dynamic extensions. /// -/// HISTORYÿ New Entity in IFC Release 2.0. +/// HISTORY New Entity in IFC Release 2.0. /// /// IFC2x4 CHANGE Supertype changed to new IfcPreDefinedPropertySet. /// @@ -27998,7 +27941,7 @@ public: /// IfcDoorTypeOperationEnum mainly determines the hinge side /// (left hung, or right hung), the operation (swinging, sliding, /// folding, etc.) and the number of panels. -/// Note ÿThere are different definitions in +/// Note There are different definitions in /// various countries on what a left opening or left hung or left /// swing door is (same for right). Therefore the IFC definition may /// derivate from the local standard and may need to be mapped @@ -28118,7 +28061,7 @@ public: /// 'white', /// 'by layer' /// -/// NOTE ÿThe IfcDraughtingPreDefinedColour is an entity that had been adopted from ISO 10303-202, Industrial automation systems and integration—Product data representation and exchange, Part 202: Application protocol: Associative draughting. +/// NOTE The IfcDraughtingPreDefinedColour is an entity that had been adopted from ISO 10303-202, Industrial automation systems and integration—Product data representation and exchange, Part 202: Application protocol: Associative draughting. /// /// The following table states the RGB values associated with the names given by the IfcDraughtingPreDefinedColour. /// @@ -28171,9 +28114,9 @@ public: /// colour values obtained from /// IfcPresentationLayerWithStyle. /// -/// NOTE ÿCorresponding ISO 10303 name: draughting_pre_defined_colour. Please refer to ISO/IS 10303-202:1994 page 194 for the final definition of the formal standard. +/// NOTE Corresponding ISO 10303 name: draughting_pre_defined_colour. Please refer to ISO/IS 10303-202:1994 page 194 for the final definition of the formal standard. /// -/// HISTORY ÿNew entity in IFC2x2. +/// HISTORY New entity in IFC2x2. /// /// Informal proposition /// @@ -28336,7 +28279,7 @@ public: /// SELF\IfcObjectDefinition.IsDecomposedBy. Components of an /// assembly are described by instances of subtypes of /// IfcElement. -/// In this case, the containedÿsubtypes of IfcElement +/// In this case, the containedsubtypes of IfcElement /// shall not be additionally contained in the project spatial /// hierarchy, i.e. the inverse attribute /// SELF\IfcElement.ContainedInStructure of those @@ -28370,7 +28313,7 @@ public: /// have an explicit geometric representation. In some cases it may /// be useful to also expose an own explicit representation of the /// aggregate. -/// NOTEÿ View definitions or implementer +/// NOTE View definitions or implementer /// agreements may further constrain the applicability of certain /// shape representations at the IfcElementAssembly in respect /// of the shape representations of its parts. @@ -28405,7 +28348,7 @@ public: /// used to define an element specification (i.e. the specific /// product information, that is common to all occurrences of that /// product type). -/// NOTEÿ The product representations are defined +/// NOTE The product representations are defined /// as representation maps (at the level of the supertype /// IfcTypeProduct, which gets assigned by an element /// occurrence instance through the @@ -28419,7 +28362,7 @@ public: /// occurrences. /// The occurrences of the IfcElementAssemblyType are /// represented by instances of IfcElementAssembly. -/// HISTORYÿ New entity in +/// HISTORY New entity in /// Release IFC2x Edition 4. class IFC_PARSE_API IfcElementAssemblyType : public IfcElementType { public: @@ -28878,11 +28821,11 @@ public: /// which are defined so that the shell normal point into the /// void. /// -/// NOTEÿ Corresponding ISO 10303-42 entity: brep_with_voids (see note above). Please refer to ISO/IS 10303-42:1994, p. 173 for the final definition of the formal standard. In IFC faceted B-rep with voids is represented by this subtype IfcFacetedBrepWithVoids and not defined via an implicit ANDOR supertype constraint as in ISO/IS 10303-42:1994 between an instance of faceted_brep AND brep_with_voids. This change has been made due to the fact, that only ONEOF supertype constraint is allowed within the IFC object model. +/// NOTE Corresponding ISO 10303-42 entity: brep_with_voids (see note above). Please refer to ISO/IS 10303-42:1994, p. 173 for the final definition of the formal standard. In IFC faceted B-rep with voids is represented by this subtype IfcFacetedBrepWithVoids and not defined via an implicit ANDOR supertype constraint as in ISO/IS 10303-42:1994 between an instance of faceted_brep AND brep_with_voids. This change has been made due to the fact, that only ONEOF supertype constraint is allowed within the IFC object model. /// -/// HISTORYÿ New entity in IFC Release 1.0 +/// HISTORY New entity in IFC Release 1.0 /// -/// IFC2x4 CHANGEÿ Subtyping changed from IfcManifoldSolidBrep to IfcFacetedBrep with upward compatibility for file based exchange. +/// IFC2x4 CHANGE Subtyping changed from IfcManifoldSolidBrep to IfcFacetedBrep with upward compatibility for file based exchange. /// /// Informal propositions: /// @@ -29594,8 +29537,8 @@ public: /// referred to as features, such as roads, zones, trees, etc. Common /// type information behind several occurrences of /// IfcGeographicElement is provided by the -/// IfcGeographicElementType.ÿ -/// HISTORY ÿNew entity in +/// IfcGeographicElementType. +/// HISTORY New entity in /// Release IFC2x4. /// Type Use Definition /// An IfcGeographicElement defines the occuurence of any @@ -29603,7 +29546,7 @@ public: /// geographic elements is handled by /// IfcGeographicElementType. The /// IfcGeographicElementType (if present) may establish the -/// commonÿtype name, usage (or predefined) type, common set of +/// commontype name, usage (or predefined) type, common set of /// properties and common shape representations (using /// IfcRepresentationMap). The IfcGeographicElementType /// is attached using the IfcRelDefinedByType.RelatingType @@ -29634,13 +29577,13 @@ public: /// relationships. The first (and in most implementation scenarios /// mandatory) relationship is the hierachical spatial containment, /// the second (optional) relationship is the aggregation within -/// anÿelement assembly. +/// anelement assembly. /// /// The IfcGeographicElement is places within the project /// spatial hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, refering to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcSite being the default container. /// The IfcGeographicElement may be aggregated into an /// element assembly using the objectified relationship @@ -29650,7 +29593,7 @@ public: /// IfcElementAssembly as a special focus subtype. In this /// case it should not be additionally contained in the project /// spatial hierarchy, -/// i.e.ÿSELF\IfcElement.ContainedInStructure should be +/// i.e.SELF\IfcElement.ContainedInStructure should be /// NIL. /// /// Geometry Use Definitions @@ -29677,15 +29620,15 @@ public: /// The standard representation of IfcGeographicElement is /// defined using 'GeometricCurveSet' or, when including surfaces, /// the 'GeometricSet' geometry. This also supports a 2D -/// representation of IfcGeographicElement.ÿ +/// representation of IfcGeographicElement. /// The following attribute values for the /// IfcShapeRepresentation holding this geometric /// representation shall be used: /// /// RepresentationIdentifier : 'FootPrint' for 2D /// representation -/// RepresentationType :ÿ'GeometricCurveSet' -/// orÿ'GeometricSet' +/// RepresentationType :'GeometricCurveSet' +/// or'GeometricSet' /// /// Annotation2D Representation /// Additional annotation objects, like text or hatching, and @@ -29700,7 +29643,7 @@ public: /// /// RepresentationIdentifier : 'FootPrint' for 2D /// representation -/// RepresentationType :ÿ'Annotation2D' +/// RepresentationType :'Annotation2D' /// /// SurfaceModel and Brep Representation /// For full 3D representations, the use of 'SurfaceModel' and @@ -29712,13 +29655,13 @@ public: /// /// RepresentationIdentifier : 'Body' for 3D /// representation -/// RepresentationType :ÿ'SurfaceModel' orÿ'Brep' +/// RepresentationType :'SurfaceModel' or'Brep' /// /// MappedRepresentation Representation /// When using the IfcGeographicElement in conjunction with /// the IfcGeographicElementType having /// RepresentationMaps defined, the geometric representation -/// ofÿIfcGeographicElementÿshall be based on +/// ofIfcGeographicElementshall be based on /// 'MappedRepresentation', referencing the /// IfcRepresentationMap given at the type object. /// The following attribute values for the @@ -29727,7 +29670,7 @@ public: /// /// RepresentationIdentifier : 'FootPrint' for 2D /// representation, 'Body' for 3D representation -/// RepresentationType :ÿ'MappedRepresentation' +/// RepresentationType :'MappedRepresentation' class IFC_PARSE_API IfcGeographicElement : public IfcElement { public: /// Whether the optional attribute PredefinedType is defined for this IfcGeographicElement @@ -29867,7 +29810,7 @@ public: /// /// EXAMPLE An example for a group is a system, since it groups elements under the aspect of their role, regardless of their position in a building. /// -/// A group can hold any collection of objects (beingÿproducts, processes, controls, resources, actors or other groups). Thus groups can be nested. An object can be part of zero, one, or many groups. Grouping relationships are not required to be hierarchical nor do they imply a dependency. +/// A group can hold any collection of objects (beingproducts, processes, controls, resources, actors or other groups). Thus groups can be nested. An object can be part of zero, one, or many groups. Grouping relationships are not required to be hierarchical nor do they imply a dependency. /// /// NOTE Use IfcRelDecomposes together with the appropriate subtypes of IfcProduct to define an hierarchical aggregation of products. /// @@ -30764,7 +30707,7 @@ public: /// IfcArbitraryClosedProfileDef shall be supported. /// Extrusion: The profile shall be extruded vertically, /// i.e. for wall openings along the extrusion direction of the -/// voided element.ÿ If multiple instances of +/// voided element. If multiple instances of /// IfcExtrudedAreaSolid are used, the extrusion direction /// should be equal. /// @@ -31856,7 +31799,7 @@ public: /// IfcShapeRepresentation.Item[1] being an /// IfcMappedItem. /// -/// An IfcRampTypeÿis used to define the common +/// An IfcRampTypeis used to define the common /// properties of a specific ramp that may be applied to many /// instances of that type to assign a specific style. /// Building element types (or the instantiable subtypes) @@ -32134,7 +32077,7 @@ public: /// IfcShapeRepresentation.Item[1] being an /// IfcMappedItem. /// -/// An IfcRoofTypeÿis used to define the common +/// An IfcRoofTypeis used to define the common /// properties of a specific roof that may be applied to many /// instances of that type to assign a specific style. Building /// element types (or the instantiable subtypes) may be @@ -32930,7 +32873,7 @@ public: /// space information, that is common to all occurrences of that /// space type. Space types may be exchanged without being already /// assigned to occurrences. -/// NOTE ÿThe space types are often used to +/// NOTE The space types are often used to /// represent space catalogues, less so for sharing a common /// representation map. Space types in a space catalogue share same /// space classification and a common set of space requirement @@ -32938,7 +32881,7 @@ public: /// The occurrences of IfcSpaceType are represented by /// instances of IfcSpace. /// -/// HISTORY ÿNew entity in +/// HISTORY New entity in /// IFC2x3. /// /// Property Set Use Definition: @@ -32975,7 +32918,7 @@ public: /// property set for all types of spaces to capture the thermal /// requirements /// Pset_SpaceThermalDesign: common property set -/// for allÿall types of spaces to capture building service design +/// for allall types of spaces to capture building service design /// values /// /// Geometry Use Definition: @@ -32986,7 +32929,7 @@ public: /// representations (e.g. with IfcShaperepresentation's having /// an RepresentationIdentifier 'Box', 'FootPrint', or 'Body'). /// -/// NOTE ÿThe product representations are defined as +/// NOTE The product representations are defined as /// representation maps (at the level of the supertype /// IfcTypeProduct, which gets assigned by an element /// occurrence instance through the @@ -33094,7 +33037,7 @@ public: /// IfcShapeRepresentation.Item[1] being an /// IfcMappedItem. /// -/// An IfcStairTypeÿis used to define the common +/// An IfcStairTypeis used to define the common /// properties of a specific stair that may be applied to many /// instances of that type to assign a specific style. /// Building element types (or the instantiable subtypes) @@ -34127,13 +34070,13 @@ public: /// device types (or styles) is handled by /// IfcTransportElementType. The /// IfcTransportElementType (if present) may establish the -/// commonÿtype name, usage (or predefined) type, common material +/// commontype name, usage (or predefined) type, common material /// layer set, common set of properties and common shape /// representations (using IfcRepresentationMap). The /// IfcTransportElementType is attached using the /// IfcRelDefinedByType.RelatingType objectified relationship /// and is accessible by the inverse IsTypedBy attribute. -/// If no IfcTransportElementType is attachedÿ(i.e. if only +/// If no IfcTransportElementType is attached(i.e. if only /// occurrence information is given) the PredefinedType should /// be provided. If set to .USERDEFINED. a user defined value can be /// provided by the ObjectType attribute. @@ -34162,7 +34105,7 @@ public: /// spatial hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, refering to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcBuilding being the default /// container. /// @@ -35183,7 +35126,7 @@ public: IfcWorkSchedule (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, boost::optional< std::string > v6_Identification, std::string v7_CreationDate, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcPerson >::ptr > v8_Creators, boost::optional< std::string > v9_Purpose, boost::optional< std::string > v10_Duration, boost::optional< std::string > v11_TotalFloat, std::string v12_StartTime, boost::optional< std::string > v13_FinishTime, boost::optional< ::Ifc4::IfcWorkScheduleTypeEnum::Value > v14_PredefinedType); typedef IfcTemplatedEntityList< IfcWorkSchedule > list; }; -/// Definition from IAI: A zone isÿa group of spaces, +/// Definition from IAI: A zone isa group of spaces, /// partial spaces or other zones. Zone structures may not be /// hierarchical (in contrary to the spatial structure of a project - /// see IfcSpatialStructureElement), i.e. one individual @@ -35192,9 +35135,9 @@ public: /// IfcZone by using the objectified relationship /// IfcRelAssignsToGroup as specified at the supertype /// IfcGroup. -/// NOTE ÿCertain use cases may restrict the +/// NOTE Certain use cases may restrict the /// freedom of non hierarchical relationships. In some building -/// service use cases the zone denotes aÿview based delimited volume +/// service use cases the zone denotes aview based delimited volume /// for the purpose of analysis and calculation. This type of zone /// cannot overlap with respect to that analysis, but may overlap /// otherwise. @@ -35205,12 +35148,12 @@ public: /// and placement. Therefore it cannot be used for spatial zones /// having a different shape and size compared to the shape and size /// of aggregated spaces. -/// NOTEÿ The IfcZone is regarded as the +/// NOTE The IfcZone is regarded as the /// spatial system (as compared to the building service, electrical, /// or analytical system), the name remains IfcZone for /// compatibility reasons, instead of using a proper naming /// convention, like IfcSpatialSystem. -/// NOTE ÿOne of the purposes of a zone is to +/// NOTE One of the purposes of a zone is to /// define a fire compartmentation. In this case it defines the /// geometric information about the fire compartment (through the /// contained spaces) and information, whether this compartment is @@ -35221,7 +35164,7 @@ public: /// independent shape has to be provided to the fire compartment, /// then the entity IfcSpatialZone shall be /// used. -/// RECOMMENDATIONÿ In case of a zone denoting a +/// RECOMMENDATION In case of a zone denoting a /// (fire) compartment, the following types should be used, if /// applicable, as values of the ObjectType attribute: /// @@ -35240,9 +35183,9 @@ public: /// refers to, e.g. to a particular IfcBuildingStorey by using /// the IfcRelServicesBuildings relationship, accessible via /// the inverse attribute ServicesBuilding. -/// HISTORYÿ New entity in +/// HISTORY New entity in /// IFC Release 1.0 -/// IFC2x4 CHANGEÿ The entity is now +/// IFC2x4 CHANGE The entity is now /// subtyped from IfcSystem (not its supertype /// IfcGroup) with upward compatibility for file based /// exchange. @@ -35856,13 +35799,13 @@ public: IfcBoilerType (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< ::Ifc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4::IfcBoilerTypeEnum::Value v10_PredefinedType); typedef IfcTemplatedEntityList< IfcBoilerType > list; }; -/// Definition from ISO/CD 10303-42:1992ÿ A boundary curve +/// Definition from ISO/CD 10303-42:1992 A boundary curve /// is a type of bounded curve suitable for the definition of a /// surface boundary. /// -/// NOTEÿ Corresponding ISO 10303 entity: boundary_curve. Please refer to ISO/IS 10303-42:1994, p.89 for the final definition of the formal standard. +/// NOTE Corresponding ISO 10303 entity: boundary_curve. Please refer to ISO/IS 10303-42:1994, p.89 for the final definition of the formal standard. /// -/// HISTORYÿ New entity in IFC2x4. +/// HISTORY New entity in IFC2x4. class IFC_PARSE_API IfcBoundaryCurve : public IfcCompositeCurveOnSurface { public: virtual const IfcParse::entity& declaration() const; @@ -36490,14 +36433,14 @@ public: typedef IfcTemplatedEntityList< IfcBuildingElementProxy > list; }; /// Definition from IAI: -/// TheÿIfcBuildingElementProxyType defines a list of +/// TheIfcBuildingElementProxyType defines a list of /// commonly shared property set definitions of a building /// element proxy and an optional set of product /// representations. It is used to define an element /// specification (i.e. the specific product information, that /// is common to all occurrences of that product type). /// -/// NOTEÿ The product representations are defined as +/// NOTE The product representations are defined as /// representation maps (at the level of the supertype /// IfcTypeProduct, which gets assigned by an element /// occurrence instance through the @@ -36506,8 +36449,8 @@ public: /// /// A building element proxy type is used to define the common /// properties of a certain type of a building element proxy -/// that may be applied to many instances of thatÿtype to -/// assign a specific style. Building element proxy typesÿmay +/// that may be applied to many instances of thattype to +/// assign a specific style. Building element proxy typesmay /// be exchanged without being already assigned to occurrences. /// /// NOTE Although an building element proxy does not have @@ -36521,7 +36464,7 @@ public: /// are represented by instances of /// IfcBuildingElementProxy. /// -/// HISTORYÿ New entity in +/// HISTORY New entity in /// Release IFC2x Edition 3. class IFC_PARSE_API IfcBuildingElementProxyType : public IfcBuildingElementType { public: @@ -36861,7 +36804,7 @@ public: /// /// Property sets can also be given at the IfcChimneyType, /// defining the common property data for all occurrences of the same -/// type.ÿIt is then accessible by the inverse IsTypedBy relationship pointing to +/// type.It is then accessible by the inverse IsTypedBy relationship pointing to /// IfcChimneyType.HasPropertySets. If both are given, then /// the properties directly assigned to IfcChimney overrides /// the properties assigned to IfcChimneyType. @@ -36993,7 +36936,7 @@ public: /// IfcStructuralCurveMember being part of an /// IfcStructuralAnalysisModel. /// -/// NOTE ÿFor any longitudial structural member, not +/// NOTE For any longitudial structural member, not /// constrained to be predominately horizontal nor vertical, or where /// this semantic information is irrelevant, the entity /// IfcMember exists. @@ -37011,7 +36954,7 @@ public: /// geometry based on the swept solid), if a 3D geometric /// representation is assigned. In addition they have to have a /// corresponding IfcMaterialProfileSetUsage assigned. -/// NOTEÿ View definitions and implementer +/// NOTE View definitions and implementer /// agreements may further constrain the applicable geometry types, /// e.g. by excluding tapering from an IfcColumnStandardCase /// implementation. @@ -37027,13 +36970,13 @@ public: /// IfcColumn defines the occuurence of any column, common /// information about column types (or styles) is handled by /// IfcColumnType. The IfcColumnType (if present) may -/// establish the commonÿtype name, usage (or predefined) type, +/// establish the commontype name, usage (or predefined) type, /// common material layer set, common set of properties and common /// shape representations (using IfcRepresentationMap). The /// IfcColumnType is attached using the /// IfcRelDefinedByType.RelatingType objectified relationship /// and is accessible by the inverse IsTypedBy attribute. -/// If no IfcColumnType is attachedÿ(i.e. if only +/// If no IfcColumnType is attached(i.e. if only /// occurrence information is given) the PredefinedType should /// be provided. If set to .USERDEFINED. a user defined value can be /// provided by the ObjectType attribute. @@ -37050,7 +36993,7 @@ public: /// concept. /// Material information can also be given at the /// IfcColumnType, defining the common attribute data for all -/// occurrences of the same type.ÿIt is then accessible by the +/// occurrences of the same type.It is then accessible by the /// inverse IsTypedBy /// relationship pointing to /// IfcColumnType.HasAssociations and via @@ -37071,7 +37014,7 @@ public: /// /// Property sets can also be given at the IfcColumnType, /// defining the common property data for all occurrences of the same -/// type.ÿIt is then accessible by the inverse IsTypedBy relationship pointing to +/// type.It is then accessible by the inverse IsTypedBy relationship pointing to /// IfcColumnType.HasPropertySets. If both are given, then the /// properties directly assigned to IfcColumn overrides the /// properties assigned to IfcColumnType. @@ -37096,13 +37039,13 @@ public: /// containment relationships. The first (and in most implementation /// scenarios mandatory) relationship is the hierachical spatial /// containment, the second (optional) relationship is the -/// aggregation within anÿelement assembly. +/// aggregation within anelement assembly. /// /// The IfcColumn, is places within the project spatial /// hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, refering to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcBuildingStorey being the default /// container. /// The IfcColumn, may be aggregated into an element @@ -37113,7 +37056,7 @@ public: /// IfcElementAssembly as a special focus subtype. In this /// case it should not be additionally contained in the project /// spatial hierarchy, -/// i.e.ÿSELF\IfcElement.ContainedInStructure should be +/// i.e.SELF\IfcElement.ContainedInStructure should be /// NIL. /// /// Geometry Use Definition @@ -37172,8 +37115,8 @@ public: /// Solid: IfcExtrudedAreaSolid, /// IfcRevolvedAreaSolid shall be supported /// Profile: all subtypes of IfcProfileDef (with -/// exception of IfcArbitraryOpenProfileDef)ÿ -/// Extrusion:ÿAll extrusion directions shall be +/// exception of IfcArbitraryOpenProfileDef) +/// Extrusion:All extrusion directions shall be /// supported /// /// Figure 81 illustrates a 'SweptSolid' geometric representation. There are no restrictions or conventions on @@ -37232,7 +37175,7 @@ public: /// /// Profile: see 'SweptSolid' geometric /// representation -/// Extrusion:ÿnot applicable +/// Extrusion:not applicable /// /// MappedRepresentation Representation Type /// The 'MappedRepresentation' representation type is supported as @@ -37244,7 +37187,7 @@ public: /// RepresentationIdentifier : 'Body' /// RepresentationType : 'MappedRepresentation' /// -/// The same constraints, as given for theÿ 'SweptSolid', +/// The same constraints, as given for the 'SweptSolid', /// 'Clipping', 'AdvancedSweptSolid', 'SurfaceModel' and 'Bre' /// geometric representation, shall apply to the /// MappedRepresentation of the @@ -37291,7 +37234,7 @@ public: /// are extruded perpendicular to the profile definition /// plane /// -/// NOTEÿ View definitions and implementer +/// NOTE View definitions and implementer /// agreements may further constrain the applicable geometry types, /// e.g. by excluding tapering from an IfcBeamStandardCase /// implementation. @@ -37302,7 +37245,7 @@ public: /// IfcColumn defines the occuurence of any column, common /// information about column types (or styles) is handled by /// IfcColumnType. The IfcColumnType (if present) may -/// establish the commonÿtype name, usage (or predefined) type, +/// establish the commontype name, usage (or predefined) type, /// common material layer set, common set of properties and common /// shape representations (using IfcRepresentationMap). The /// IfcColumnType is attached using the @@ -37320,9 +37263,9 @@ public: /// Figure 84 — Column profile usage /// /// Figure 85 illustrates cardinal point alignment. -/// NOTEÿ It has to be guaranteed that the use of IfcCardinalPointEnum is consistent to the placement of the +/// NOTE It has to be guaranteed that the use of IfcCardinalPointEnum is consistent to the placement of the /// extrusion body provided by IfcExtrudedAreaSolid.Position -/// NOTEÿ The cardinal points 7 (top left), and 6 (mid-depth right) are assigned according to the +/// NOTE The cardinal points 7 (top left), and 6 (mid-depth right) are assigned according to the /// definition at IfcCardinalPointReference /// /// Figure 85 — Column cardinal points @@ -37434,7 +37377,7 @@ public: /// IfcParameterizedProfileDef.Position shall be NIL, or /// having Location = 0.,0. and RefDirection = /// 1.,0. -/// Extrusion:ÿperpendicular to the profile direction. The +/// Extrusion:perpendicular to the profile direction. The /// IfcExtrudedAreaSolid.ExtrudedDirection shall be /// [0.,0.,1.]. /// Orientation: The y-axis of the profile, as determined @@ -37471,7 +37414,7 @@ public: /// representation /// Profile Position : see 'SweptSolid' geometric /// representation -/// Extrusion:ÿsee 'SweptSolid' geometric +/// Extrusion:see 'SweptSolid' geometric /// representation /// Orientation: see 'SweptSolid' geometric /// representation @@ -37509,7 +37452,7 @@ public: /// representation /// Profile Position : see 'SweptSolid' geometric /// representation -/// Extrusion:ÿnot applicable +/// Extrusion:not applicable class IFC_PARSE_API IfcColumnStandardCase : public IfcColumn { public: virtual const IfcParse::entity& declaration() const; @@ -37882,7 +37825,7 @@ public: /// representation and the space has defined space boundaries, then /// the covering, which relates to that space, may be assigned to the /// space boundaries using the link -/// toÿIfcRelSpaceBoundary, +/// toIfcRelSpaceBoundary, /// if the covering does not relate to a space, then the covering /// should be assigned to the building element or a distribution /// element using the IfcRelCoversBldgElements @@ -37897,7 +37840,7 @@ public: /// The IfcCovering defines the occuurence of any covering, /// common information about covering types (or styles) is handled by /// IfcCoveringType. The IfcCoveringType (if present) -/// may establish the commonÿtype name, usage (or predefined) type, +/// may establish the commontype name, usage (or predefined) type, /// common set of properties, common material layer set, and common /// shape representations (using IfcRepresentationMap). The /// IfcCoveringType is attached using the @@ -37908,7 +37851,7 @@ public: /// slabs with constant thickness along the extrusion direction), the /// IfcCoveringType should have a unique /// IfcMaterialLayerSet, that is referenced by -/// theÿIfcMaterialLayerSetUsage assigned to all occurrences +/// theIfcMaterialLayerSetUsage assigned to all occurrences /// of this covering type. /// /// Figure 91 illustrates assignment of IfcMaterialLayerSetUsage and IfcMaterialLayerSet to the covering type and the covering occurrence. @@ -37998,7 +37941,7 @@ public: /// /// GeometricSet Representation /// The 'GeometricSet' geometric representation of -/// IfcCovering supports area definitions as 3D surfaces.ÿ +/// IfcCovering supports area definitions as 3D surfaces. /// /// RepresentationIdentifier : 'Surface' /// RepresentationType : 'GeometricSet' @@ -38026,7 +37969,7 @@ public: /// /// SweptSolid Representation /// The 'SweptSolid' geometric representation of -/// IfcCovering supports volume definitions as 3D solids.ÿ +/// IfcCovering supports volume definitions as 3D solids. /// /// RepresentationIdentifier : 'Body' /// RepresentationType : 'SweptSolid' @@ -38080,14 +38023,14 @@ public: /// wall, common information about curtain wall types (or styles) is /// handled by IfcCurtainWallType. The /// IfcCurtainWallType (if present) may establish the -/// commonÿtype name, usage (or predefined) type, common material +/// commontype name, usage (or predefined) type, common material /// information, common set of properties and common shape /// representations (using IfcRepresentationMap). The /// IfcCurtainWallType is attached using the /// IfcRelDefinedByType.RelatingType objectified relationship /// and is accessible by the inverse IsDefinedBy /// attribute. -/// If no IfcCurtainWallType is attachedÿ(i.e. if only +/// If no IfcCurtainWallType is attached(i.e. if only /// occurrence information is given) the predefined type may be given /// by using the ObjectType attribute. /// NOTE Since the IfcCurtainWall might be @@ -38822,13 +38765,13 @@ public: /// different containment relationships. The first (and in most /// implementation scenarios mandatory) relationship is the /// hierachical spatial containment, the second (optional) -/// relationship is the aggregation within anÿelement assembly. +/// relationship is the aggregation within anelement assembly. /// /// The IfcDistributionElement is places within the /// project spatial hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, referring to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcSpace being the default /// container. /// The IfcDistributionElement may be aggregated into an @@ -38839,7 +38782,7 @@ public: /// IfcElementAssembly as a special focus subtype. In this /// case it should not be additionally contained in the project /// spatial hierarchy, -/// i.e.ÿSELF\IfcElement.ContainedInStructure should be +/// i.e.SELF\IfcElement.ContainedInStructure should be /// NIL. /// /// Geometry Use Definitions @@ -39186,7 +39129,7 @@ public: /// IfcRelFillsElement relationship, then the IfcDoor /// has an inverse attribute FillsVoids provided, /// -/// NOTEÿ View definitions or +/// NOTE View definitions or /// implementer agreements may restrict the relationship to only /// include one window (or door) into one opening. /// @@ -39208,7 +39151,7 @@ public: /// that references one IfcDoorLiningProperties and on to many /// IfcDoorPanelProperties. /// -/// NOTEÿ see +/// NOTE see /// IfcDoorStandardCase for all specific constraints imposed /// by this subtype. /// @@ -39241,7 +39184,7 @@ public: /// the construction material type /// the particular attributes for the lining by the /// IfcDoorLiningProperties -/// the particular attributes for the panels by theÿ +/// the particular attributes for the panels by the /// IfcDoorPanelProperties /// /// HISTORY New entity in IFC Release 1.0. @@ -39306,13 +39249,13 @@ public: /// containment relationships as shown in Figure 96. The first (and in most implementation /// scenarios mandatory) relationship is the hierachical spatial /// containment, the second (optional) relationship is the -/// aggregation within anÿelement assembly. +/// aggregation within anelement assembly. /// /// The IfcDoor is places within the project spatial /// hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, refering to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcBuildingStorey being the default /// container. /// The IfcDoor may be aggregated into an element assembly @@ -39321,7 +39264,7 @@ public: /// SELF\IfcObjectDefinition.Decomposes. Doors may be part of /// an IfcCurtainWall as a special focus subtype. In this case /// it should not be additionally contained in the project spatial -/// hierarchy, i.e.ÿSELF\IfcElement.ContainedInStructure +/// hierarchy, i.e.SELF\IfcElement.ContainedInStructure /// should be NIL. /// /// NOTE The containment shall be defined independently of the @@ -39362,12 +39305,12 @@ public: /// is defined within the world coordinate system. /// /// Geometric Representation -/// Theÿgeometric representation of IfcDoor is defined -/// using the following (potentiallyÿmultiple) +/// Thegeometric representation of IfcDoor is defined +/// using the following (potentiallymultiple) /// IfcShapeRepresentation's for its /// IfcProductDefinitionShape: /// -/// Profile: Aÿ'Curve3D' +/// Profile: A'Curve3D' /// consisting of a single losed curve defining the outer boundary of /// the door (lining). The door parametric representation uses this /// profile in order to apply the door lining and panel parameter. If @@ -39384,11 +39327,11 @@ public: /// IfcDoorPanelProperties. The purpose of the parameter is /// described at those entities and below (door opening operation by /// door type). -/// Profile -ÿ'Curve3D' representation +/// Profile -'Curve3D' representation /// The door profile is represented by a three-dimensional closed /// curve within a particular shape representation. The profile is /// used to apply the parameter of the parametric door -/// representation.ÿThe following attribute values for the +/// representation.The following attribute values for the /// IfcShapeRepresentation holding this geometric /// representation shall be used: /// @@ -39402,18 +39345,18 @@ public: /// a parametric representation shall be applied to the door /// AND /// -/// theÿdoor is 'free standing', or -/// the opening into which theÿdoor is inserted is not extruded +/// thedoor is 'free standing', or +/// the opening into which thedoor is inserted is not extruded /// horizontally (i.e. where the opening profile does not match -/// theÿdoor profile) +/// thedoor profile) /// -/// FootPrint -ÿ'GeometricCurveSet' or 'Annotation2D' +/// FootPrint -'GeometricCurveSet' or 'Annotation2D' /// representation /// The door foot print is represented by a set of -/// two-dimensionalÿcurves (or in case of 'Annotation2D' additional +/// two-dimensionalcurves (or in case of 'Annotation2D' additional /// hatching and text) within a particular shape representation. The /// foot print is used for the planview representation of the -/// door.ÿThe following attribute values for the +/// door.The following attribute values for the /// IfcShapeRepresentation holding this geometric /// representation shall be used: /// @@ -39427,7 +39370,7 @@ public: /// parametric representation) or by explicit 3D shape. The 3D shape /// is given by using extrusion geometry, or surface models, or Brep /// models within a particular shape representation. The body is used -/// for the model view representation of the door.ÿThe following +/// for the model view representation of the door.The following /// attribute values for the IfcShapeRepresentation holding /// this geometric representation shall be used: /// @@ -39445,7 +39388,7 @@ public: /// RepresentationIdentifier : 'FootPrint', 'Body' /// RepresentationType : 'MappedRepresentation' /// -/// The same constraints, as given for theÿ 'FootPrint', 'Body' +/// The same constraints, as given for the 'FootPrint', 'Body' /// representation identifiers, shall apply to the /// MappedRepresentation of the /// IfcRepresentationMap. @@ -39464,13 +39407,13 @@ public: /// relatioship, having a horizontal extrusion (along the y-axis of /// the IfcDoor), the overall size is determined by the /// extrusion profile of the IfcOpeningElement. -/// NOTE ÿThe OverallWidth and +/// NOTE The OverallWidth and /// OverallHeight parameters are for informational purpose /// only. /// The opening direction is determined by the local placement of /// IfcDoor and the OperationType of the door /// style as shown in Figure 97. -/// NOTE ÿThere are different definitions in +/// NOTE There are different definitions in /// various countries on what a left opening or left hung or left /// swing door is (same for right). Therefore the IFC definition may /// derivate from the local standard and need to be mapped @@ -39488,7 +39431,7 @@ public: /// placement. The determination of whether the door opens to the /// left or to the right is done at the level of the /// IfcDoorType. Here it is a left side opening door given -/// byÿIfcDoorType.OperationType = +/// byIfcDoorType.OperationType = /// SingleSwingLeft /// refered to as LEFT HAND (LH) in US * /// @@ -39507,7 +39450,7 @@ public: /// opens to the right, a separate door style needs to be used (here /// IfcDoorTypee.OperationType = SingleSwingRight) and it /// always opens into the direction of the positive Y axis of the -/// local placement.ÿ +/// local placement. /// refered to as RIGHT HAND (RH) in US * /// /// refered to as DIN-L (left hung) in Germany @@ -41167,7 +41110,7 @@ public: /// geometry based on the swept solid), if a 3D geometric /// representation is assigned. In addition they have to have a /// corresponding IfcMaterialProfileSetUsage assigned. -/// NOTEÿ View definitions and implementer +/// NOTE View definitions and implementer /// agreements may further constrain the applicable geometry types, /// e.g. by excluding tapering from an IfcMemberStandardCase /// implementation. @@ -41183,13 +41126,13 @@ public: /// IfcMember defines the occuurence of any member, common /// information about member types (or styles) is handled by /// IfcMemberType. The IfcMemberType (if present) may -/// establish the commonÿtype name, usage (or predefined) type, +/// establish the commontype name, usage (or predefined) type, /// common material profile set, common set of properties and common /// shape representations (using IfcRepresentationMap). The /// IfcMemberType is attached using the /// IfcRelDefinedByType.RelatingType objectified relationship /// and is accessible by the inverse IsTypedBy attribute. -/// If no IfcMemberType is attachedÿ(i.e. if only +/// If no IfcMemberType is attached(i.e. if only /// occurrence information is given) the PredefinedType should /// be provided. If set to .USERDEFINED. a user defined value can be /// provided by the ObjectType attribute. @@ -41200,14 +41143,14 @@ public: /// IfcRelAssociatesMaterial.RelatingMaterial. It is /// accessible by the inverse HasAssociations relationship. /// Material information can also be given at -/// theÿIfcMemberType, defining the common attribute data for -/// all occurrences of the same type.ÿIt is then accessible by the +/// theIfcMemberType, defining the common attribute data for +/// all occurrences of the same type.It is then accessible by the /// inverse v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc4::IfcObjectPlacement* v6_ObjectPlacement, ::Ifc4::IfcProductRepresentation* v7_Representation, boost::optional< std::string > v8_Tag, boost::optional< ::Ifc4::IfcMotorConnectionTypeEnum::Value > v9_PredefinedType); typedef IfcTemplatedEntityList< IfcMotorConnection > list; }; -/// Definition from ISO/CD 10303-42:1992ÿ This is a special subtype of boundary curve which has the additional semantics of defining an outer boundary of a surface. No more than one such curve shall be included in the set of boundaries of a curve bounded surface. +/// Definition from ISO/CD 10303-42:1992 This is a special subtype of boundary curve which has the additional semantics of defining an outer boundary of a surface. No more than one such curve shall be included in the set of boundaries of a curve bounded surface. /// -/// NOTEÿ Corresponding ISO 10303 entity: outer_boundary_curve. Please refer to ISO/IS 10303-42:1994, p.89 for the final definition of the formal standard. +/// NOTE Corresponding ISO 10303 entity: outer_boundary_curve. Please refer to ISO/IS 10303-42:1994, p.89 for the final definition of the formal standard. /// -/// HISTORYÿ New entity in IFC2x4. +/// HISTORY New entity in IFC2x4. class IFC_PARSE_API IfcOuterBoundaryCurve : public IfcBoundaryCurve { public: virtual const IfcParse::entity& declaration() const; @@ -42008,22 +41951,22 @@ public: /// Definition from IAI: An IfcPlate is a planar and /// often flat part with constant thickness. A plate can be a /// structural part carrying loads between or beyond points of -/// support, however it is not required to be load bearing.ÿThe +/// support, however it is not required to be load bearing.The /// location of the plate (being horizontal, vertical or sloped) is /// not relevant to its definition (in contrary to IfcWall and -/// IfcSlab (as floor slab)).ÿ -/// NOTE ÿPlates areÿnormally made of steel, other +/// IfcSlab (as floor slab)). +/// NOTE Plates arenormally made of steel, other /// metallic material, or by glass panels. However the definition of /// IfcPlate is material independent and specific material /// information shall be handled by using /// IfcAssociatesMaterial to assign a material specification -/// to the IfcPlate.ÿ +/// to the IfcPlate. /// -/// NOTE ÿAlthough not necessarily, plates are often add-on +/// NOTE Although not necessarily, plates are often add-on /// parts. This is represented by the IfcRelAggregates /// decomposition mechanism used to aggregate parts, such as /// IfcPlate, into a container element, e.g. -/// IfcElementAssembly, or IfcCurtainWall.ÿ +/// IfcElementAssembly, or IfcCurtainWall. /// /// NOTE The representation of a plate in a structural /// analysis model is provided by IfcStructuralSurfaceMember @@ -42063,13 +42006,13 @@ public: /// The IfcPlate defines the occuurence of any plate, /// common information about plate types (or styles) is handled by /// IfcPlateType. The IfcPlateType (if present) may -/// establish the commonÿtype name, usage (or predefined) type, +/// establish the commontype name, usage (or predefined) type, /// common set of properties, common material layer set, and common /// shape representations (using IfcRepresentationMap). The /// IfcPlateType is attached using the /// IfcRelDefinedByType.RelatingType objectified relationship /// and is accessible by the inverse IsTypedBy attribute. -/// If no IfcPlateType is attachedÿ(i.e. if only occurrence +/// If no IfcPlateType is attached(i.e. if only occurrence /// information is given) the PredefinedType should be /// provided. If set to .USERDEFINED. a user defined value can be /// provided by the ObjectType attribute. @@ -42085,7 +42028,7 @@ public: /// concept. /// Material information can also be given at the /// IfcPlateType, defining the common attribute data for all -/// occurrences of the same type.ÿIt is then accessible by the +/// occurrences of the same type.It is then accessible by the /// inverse IsTypedBy /// relationship pointing to IfcPlateType.HasAssociations and /// via IfcRelAssociatesMaterial.RelatingMaterial. @@ -42122,23 +42065,23 @@ public: /// containment relationships. The first (and in most implementation /// scenarios mandatory) relationship is the hierachical spatial /// containment, the second relationship is the aggregation within -/// anÿelement assembly. +/// anelement assembly. /// -/// TheÿIfcPlate is places within the project spatial +/// TheIfcPlate is places within the project spatial /// hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, referring to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcBuildingStorey being the default /// container. -/// TheÿIfcPlate may be aggregated into an element +/// TheIfcPlate may be aggregated into an element /// assembly using the objectified relationship /// IfcRelAggregates, referring to it by its inverse attribute /// SELF\IfcObjectDefinition.Decomposes. Any subtype of /// IfcElement can be an element assembly, with /// IfcElementAssembly as a special focus subtype. In this /// case, no additional relationship to the spatial hierarchy shall -/// be given (i.e.ÿSELF\IfcElement.ContainedInStructure = +/// be given (i.e.SELF\IfcElement.ContainedInStructure = /// NIL), the relationship to the spatial container is handled by the /// element assembly. /// @@ -42621,7 +42564,7 @@ public: /// IfcRailing defines the occuurence of any railing, /// common information about railing types (or styles) is handled by /// IfcRailingType. The IfcRailingType (if present) may -/// establish the commonÿtype name, usage (or predefined) type, +/// establish the commontype name, usage (or predefined) type, /// common material, common set of properties and common shape /// representations (using IfcRepresentationMap). The /// IfcRailingType is attached using the @@ -42636,7 +42579,7 @@ public: /// relationship. /// Material information can also be given at the /// IfcRailingType, defining the common attribute data for all -/// occurrences of the same type.ÿIt is then accessible by the +/// occurrences of the same type.It is then accessible by the /// inverse IsDefinedBy relationship pointing to /// IfcRailingType.HasAssociations and via /// IfcRelAssociatesMaterial.RelatingMaterial to @@ -42674,13 +42617,13 @@ public: /// containment relationships. The first (and in most implementation /// scenarios mandatory) relationship is the hierachical spatial /// containment, the second (optional) relationship is the -/// aggregation within anÿelement assembly. +/// aggregation within anelement assembly. /// /// The IfcRailing is places within the project spatial /// hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, refering to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcBuildingStorey being the default /// container. /// The IfcRailing may be aggregated into an element @@ -42691,7 +42634,7 @@ public: /// IfcStair, or IfcRamp as a special focus subtypes. /// In this case it should not be additionally contained in the /// project spatial hierarchy, -/// i.e.ÿSELF\IfcElement.ContainedInStructure should be +/// i.e.SELF\IfcElement.ContainedInStructure should be /// NIL. /// /// Geometry Use Definition @@ -42780,7 +42723,7 @@ public: /// IfcRamp defines the occuurence of any ramp, common /// information about ramp types (or styles) is handled by /// IfcRampType. The IfcRampType (if present) may -/// establish the commonÿtype name, usage (or predefined) type, +/// establish the commontype name, usage (or predefined) type, /// common material, common set of properties and common shape /// representations (using IfcRepresentationMap). The /// IfcRampType is attached using the @@ -42801,7 +42744,7 @@ public: /// relationship. /// Material information can also be given at the /// IfcRampType, defining the common attribute data for all -/// occurrences of the same type.ÿIt is then accessible by the +/// occurrences of the same type.It is then accessible by the /// inverse IsDefinedBy relationship pointing to /// IfcRampType.HasAssociations and via /// IfcRelAssociatesMaterial.RelatingMaterial to @@ -43329,7 +43272,7 @@ public: /// spatial hierarchy, i.e. /// SELF\IfcElement.ContainedInStructure should be NIL. /// -/// NOTEÿ A roof contained in another roof could +/// NOTE A roof contained in another roof could /// be the representation of a dormer. /// The IfcRoof may be an aggregate i.e. being composed by /// other elements and acting as an assembly using the objectified @@ -43357,7 +43300,7 @@ public: /// aggregate. If defined as an aggregate, the geometric /// representation is the sum of the representation of the components /// within the aggregate. -/// NOTEÿ View definitions and implementer +/// NOTE View definitions and implementer /// agreements may restrict the IfcRoof to not have an /// independent geometry, but to always require aggregated elements /// to represent the shape of the roof. @@ -43670,7 +43613,7 @@ public: /// IfcStructuralMember being part of the /// IfcStructuralAnalysisModel. /// -/// NOTE ÿAn arbitrary planar element to which this semantic +/// NOTE An arbitrary planar element to which this semantic /// information is not applicable or irrelevant shall be modeled as /// IfcPlate. /// A slab may have openings, such as floor openings, or recesses. @@ -43704,13 +43647,13 @@ public: /// The IfcSlab defines the occurrence of any slab, common /// information about slab types (or styles) is handled by /// IfcSlabType. The IfcSlabType (if present) may -/// establish the commonÿtype name, usage (or predefined) type, +/// establish the commontype name, usage (or predefined) type, /// common set of properties, common material layer set, and common /// shape representations (using IfcRepresentationMap). The /// IfcSlabType is attached using the /// IfcRelDefinedByType.RelatingType objectified relationship /// and is accessible by the inverse IsTypedBy attribute. -/// If no IfcSlabType is attachedÿ(i.e. if only occurrence +/// If no IfcSlabType is attached(i.e. if only occurrence /// information is given) the PredefinedType should be /// provided. Values of the enumeration are .FLOOR. (the default), /// .ROOF., .LANDING., .BASESLAB. If set to .USERDEFINED. a user @@ -43732,12 +43675,12 @@ public: /// the slab is extruded along the slab thickness, are exchanged as /// IfcSlabStandardCase, The material for /// IfcSlabStandardCase shall be defined -/// byÿIfcMaterialLayerSetUsage. Multi-layer slabs can be +/// byIfcMaterialLayerSetUsage. Multi-layer slabs can be /// represented by referring to several IfcMaterialLayer's -/// within the IfcMaterialLayerSet.ÿ +/// within the IfcMaterialLayerSet. /// Material information can also be given at the /// IfcSlabType, defining the common attribute data for all -/// occurrences of the same type.ÿIt is then accessible by the +/// occurrences of the same type.It is then accessible by the /// inverse IsTypedBy /// relationship pointing to IfcSlabType.HasAssociations and /// via IfcRelAssociatesMaterial.RelatingMaterial. @@ -43754,7 +43697,7 @@ public: /// /// Property sets can also be given at the IfcSlabType, /// defining the common property data for all occurrences of the same -/// type.ÿIt is then accessible by the inverse IsTypedBy relationship pointing to +/// type.It is then accessible by the inverse IsTypedBy relationship pointing to /// IfcSlabType.HasPropertySets. If both are given, then the /// properties directly assigned to IfcSlab overrides the /// properties assigned to IfcSlabType. @@ -43780,16 +43723,16 @@ public: /// containment relationships. The first (and in most implementation /// scenarios mandatory) relationship is the hierarchical spatial /// containment, the second (optional) relationship is the -/// aggregation within anÿelement assembly. +/// aggregation within anelement assembly. /// -/// TheÿIfcSlab is places within the project spatial +/// TheIfcSlab is places within the project spatial /// hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, referring to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcBuildingStorey being the default /// container. -/// TheÿIfcSlab may be aggregated into an element assembly +/// TheIfcSlab may be aggregated into an element assembly /// using the objectified relationship IfcRelAggregates, /// referring to it by its inverse attribute /// SELF\IfcObjectDefinition.Decomposes. Any subtype of @@ -43797,10 +43740,10 @@ public: /// IfcElementAssembly as a special focus subtype. /// In this case it should not be additionally contained in the /// project spatial hierarchy, -/// i.e.ÿSELF\IfcElement.ContainedInStructure should be +/// i.e.SELF\IfcElement.ContainedInStructure should be /// NIL. /// -/// The IfcSlabÿmay also be an aggregate i.e. being +/// The IfcSlabmay also be an aggregate i.e. being /// composed by other elements and acting as an assembly using the /// objectified relationship IfcRelAggregates, referring to it /// by its inverse attribute @@ -43904,8 +43847,8 @@ public: /// representation: /// /// Solid: see 'SweptSolid' shape representation, -/// Profile:ÿsee 'SweptSolid' shape representation, -/// Extrusion:ÿsee 'SweptSolid' shape representation, +/// Profile:see 'SweptSolid' shape representation, +/// Extrusion:see 'SweptSolid' shape representation, /// Boolean result: The IfcBooleanClippingResult /// shall be supported, allowing for Boolean differences between the /// swept solid (here IfcExtrudedAreaSolid) and one or several @@ -43934,7 +43877,7 @@ public: /// The IfcSlabElementedCase /// defines a slab with certain constraints for the provision of its /// components. The IfcSlabElementedCase handles all cases of -/// slabs, that are decomposed into parts:ÿ +/// slabs, that are decomposed into parts: /// /// having components being assigned to the /// IfcSlabElementedCase using the IfcRelAggregates @@ -43997,7 +43940,7 @@ public: /// the elemented slab. It maybe used as a simplified representation /// directly at the elemented slab. /// -/// NOTEÿ It is invalid to exhange a 'Body' shape +/// NOTE It is invalid to exhange a 'Body' shape /// representation of an IfcSlabElementedCase. The body /// geometry is defined by the parts within the /// decomposition. @@ -44586,7 +44529,7 @@ public: /// flight, common information about stair flight types (or styles) /// is handled by IfcStairFlightType. The /// IfcStairFlightType (if present) may establish the -/// commonÿtype name, usage (or predefined) type, common material +/// commontype name, usage (or predefined) type, common material /// layer set, common set of properties and common shape /// representations (using IfcRepresentationMap). The /// IfcStairFlightType is attached using the @@ -44630,13 +44573,13 @@ public: /// IfcBuildingElement, may participate in two different /// containment relationships. The first relationship is the /// hierachical spatial containment, the second relationship is the -/// aggregation within anÿelement assembly. +/// aggregation within anelement assembly. /// /// The IfcStairFlight is placed within the project /// spatial hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, refering to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcBuildingStorey being the default /// container. /// The IfcStairFlight may be aggregated into an element @@ -44646,7 +44589,7 @@ public: /// IfcElement can be an element assembly, with /// IfcStair as a special focus subtype. In this case it /// shall not be additionally contained in the project spatial -/// hierarchy, i.e.ÿSELF\IfcElement.ContainedInStructure +/// hierarchy, i.e.SELF\IfcElement.ContainedInStructure /// shall be NIL. /// /// Geometry Use Definition @@ -45485,7 +45428,7 @@ public: /// Definition from IAI: The wall represents a vertical /// construction that bounds or subdivides spaces. Wall are usually /// vertical, or nearly vertical, planar elements, often designed to -/// bear structural loads. A wall is howeverÿnot required to be load +/// bear structural loads. A wall is howevernot required to be load /// bearing. /// NOTE NOTE There is a representation of walls /// for structural analysis provided by a proper subtype of @@ -45504,7 +45447,7 @@ public: /// The IFC specification provides two entities for wall /// occurrences: /// -/// IfcWallStandardCase ÿused for all occurrences of +/// IfcWallStandardCase used for all occurrences of /// walls, that have a non-changing thickness along the wall path and /// where the thickness parameter can be fully described by a /// material layer set. These walls are always represented @@ -45517,7 +45460,7 @@ public: /// which are aggregated from subordinate elements, following /// specific decomposition rules expressed by the mandatory use of /// IfcRelAggregates relationship. -/// IfcWall ÿused for all other occurrences of wall, +/// IfcWall used for all other occurrences of wall, /// particularly for walls with changing thickness along the wall /// path (e.g. polygonal walls), or walls with a non-rectangular /// cross sections (e.g. L-shaped retaining walls), and walls having @@ -45529,15 +45472,15 @@ public: /// IFC Release 1.0 /// Type Use Definition /// IfcWall defines the occurrence of any wall, common -/// information aboutÿwall types (or styles) is handled by +/// information aboutwall types (or styles) is handled by /// IfcWallType. The IfcWallType (if present) may -/// establish the commonÿtype name, usage (or predefined) type, +/// establish the commontype name, usage (or predefined) type, /// common material layer set, common set of properties and common /// shape representations (using IfcRepresentationMap). The /// IfcWallType is attached using the /// IfcRelDefinedByType.RelatingType objectified relationship /// and is accessible by the inverse IsTypedBy attribute. -/// If no IfcWallType is attachedÿ(i.e. if only occurrence +/// If no IfcWallType is attached(i.e. if only occurrence /// information is given) the PredefinedType should be /// provided. If set to .USERDEFINED. a user defined value can be /// provided by the ObjectType attribute. @@ -45548,14 +45491,14 @@ public: /// accessible by the inverse HasAssociations relationship. /// Multi-layer walls can be represented by referring to several /// IfcMaterialLayer's within the -/// IfcMaterialLayerSet.ÿ +/// IfcMaterialLayerSet. /// Note: It is illegal to assign an /// IfcMaterialLayerSetUsage to an IfcWall. Only the /// subtype IfcWallStandardCase supports this /// concept. /// Material information can also be given at the /// IfcWallType, defining the common attribute data for all -/// occurrences of the same type.ÿIt is then in addition accessible +/// occurrences of the same type.It is then in addition accessible /// by the inverse IsTypedBy /// relationship pointing to IfcWallType.HasAssociations and /// via IfcRelAssociatesMaterial.RelatingMaterial. @@ -45572,7 +45515,7 @@ public: /// /// Property sets can also be given at the IfcWallType, /// defining the common property data for all occurrences of the same -/// type.ÿIt is then accessible by the inverse IsTypedBy relationship pointing to +/// type.It is then accessible by the inverse IsTypedBy relationship pointing to /// IfcWallType.HasPropertySets. If both are given, then the /// properties directly assigned to IfcWall overrides the /// properties assigned to IfcWallType. @@ -45599,16 +45542,16 @@ public: /// containment relationships. The first (and in most implementation /// scenarios mandatory) relationship is the hierarchical spatial /// containment, the second (optional) relationship is the -/// aggregation within anÿelement assembly. +/// aggregation within anelement assembly. /// /// The IfcWall is places within the project spatial /// hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, referring to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcBuildingStorey being the default /// container. -/// TheÿIfcWall may be aggregated into an element assembly +/// TheIfcWall may be aggregated into an element assembly /// using the objectified relationship IfcRelAggregates, /// referring to it by its inverse attribute /// SELF\IfcObjectDefinition.Decomposes. Any subtype of @@ -45616,17 +45559,17 @@ public: /// IfcElementAssembly as a special focus subtype. /// In this case the wall should not be additionally contained in the /// project spatial hierarchy, -/// i.e.ÿSELF\IfcElement.ContainedInStructure should be +/// i.e.SELF\IfcElement.ContainedInStructure should be /// NIL. /// -/// TheÿIfcWallÿmay also be an aggregate i.e. being +/// TheIfcWallmay also be an aggregate i.e. being /// composed by other elements and acting as an assembly using the /// objectified relationship IfcRelAggregates, referring to it /// by its inverse attribute /// SELF\IfcObjectDefinition.IsDecomposedBy. Components of a /// wall are described by instances of IfcBuildingElementPart /// that are aggregated to form a complex wall. -/// In this case, the containedÿIfcBuildingElementPart's +/// In this case, the containedIfcBuildingElementPart's /// should not be additionally contained in the project spatial /// hierarchy, i.e. the inverse attribute /// SELF\IfcElement.ContainedInStructure of @@ -45701,7 +45644,7 @@ public: /// Solid: IfcExtrudedAreaSolid is required, /// Profile: IfcArbitraryClosedProfileDef is /// required. -/// Extrusion:ÿAll extrusion directions shall be +/// Extrusion:All extrusion directions shall be /// supported. /// /// Clipping Representation Type @@ -45739,7 +45682,7 @@ public: /// The IfcWallElementedCase /// defines a wall with certain constraints for the provision of its /// components. The IfcWallElementedCase handles all cases of -/// walls, that are decomposed into parts:ÿ +/// walls, that are decomposed into parts: /// /// having components being assigned to the /// IfcWallElementedCase using the IfcRelAggregates @@ -45810,7 +45753,7 @@ public: /// the elemented wall. It maybe used as a simplified representation /// directly at the elemented wall. /// -/// NOTEÿ It is invalid to exhange a 'Body' shape +/// NOTE It is invalid to exhange a 'Body' shape /// representation of an IfcWallElementedCase. The body /// geometry is defined by the parts within the /// decomposition. @@ -46185,7 +46128,7 @@ public: /// IfcRelFillsElement relationship, , then the IfcDoor /// has an inverse attribute FillsVoids provided, /// -/// NOTEÿ View definitions or +/// NOTE View definitions or /// implementer agreements may restrict the relationship to only /// include one window (or door) into one opening. /// @@ -46208,7 +46151,7 @@ public: /// IfcWindowLiningProperties and on to many /// IfcWindowPanelProperties. /// -/// NOTEÿ see +/// NOTE see /// IfcWindowStandardCase for all specific constraints imposed /// by this subtype. /// @@ -46243,7 +46186,7 @@ public: /// the construction material type /// the particular attributes for the lining by the /// IfcWindowLiningProperties -/// the particular attributes for the panels by theÿ +/// the particular attributes for the panels by the /// IfcWindowPanelProperties /// /// HISTORY New entity in IFC Release 1.0. @@ -46309,13 +46252,13 @@ public: /// containment relationships. The first (and in most implementation /// scenarios mandatory) relationship is the hierachical spatial /// containment, the second (optional) relationship is the -/// aggregation within anÿelement assembly. +/// aggregation within anelement assembly. /// /// The IfcWindow is placed within the project spatial /// hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, refering to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcBuildingStorey being the default /// container. /// The IfcWindow may be aggregated into an element @@ -46325,7 +46268,7 @@ public: /// of an IfcCurtainWall as a special focus subtype. In this /// case it should not be additionally contained in the project /// spatial hierarchy, -/// i.e.ÿSELF\IfcElement.ContainedInStructure should be +/// i.e.SELF\IfcElement.ContainedInStructure should be /// NIL. /// /// Figure 141 illustrates window containment. @@ -46364,34 +46307,34 @@ public: /// is defined within the world coordinate system. /// /// Geometric Representation -/// Theÿgeometric representation of IfcWindow is defined -/// using the following (potentiallyÿmultiple) +/// Thegeometric representation of IfcWindow is defined +/// using the following (potentiallymultiple) /// IfcShapeRepresentation's for its /// IfcProductDefinitionShape: /// -/// Profile: Aÿ'Curve3D' +/// Profile: A'Curve3D' /// consisting of a single losed curve defining the outer boundary of -/// the window (lining). Theÿwindow parametric representation uses -/// this profile in order to apply theÿwindow lining and panel +/// the window (lining). Thewindow parametric representation uses +/// this profile in order to apply thewindow lining and panel /// parameter. If not provided, the profile of the /// IfcOpeningElement is taken. /// FootPrint: A 'GeometricCurveSet', or 'Annotation2D' -/// representation defining the 2D shape of theÿwindow +/// representation defining the 2D shape of thewindow /// Body: A 'SweptSolid', 'SurfaceModel', or 'Brep' -/// representation defining the 3D shape of theÿwindow. +/// representation defining the 3D shape of thewindow. /// /// In addition the parametric representation of a -/// (limited)ÿwindow shape is available by applying the parameters -/// fromÿIfcWindowType -/// referencingÿIfcWindowLiningProperties -/// andÿIfcWindowPanelProperties. The purpose of the parameter +/// (limited)window shape is available by applying the parameters +/// fromIfcWindowType +/// referencingIfcWindowLiningProperties +/// andIfcWindowPanelProperties. The purpose of the parameter /// is described at those entities and below (parametric /// representation). -/// Profile -ÿ'Curve3D' representation -/// Theÿwindow profile is represented by a three-dimensional +/// Profile -'Curve3D' representation +/// Thewindow profile is represented by a three-dimensional /// closed curve within a particular shape representation. The -/// profile is used to apply the parameter of the parametricÿwindow -/// representation.ÿThe following attribute values for the +/// profile is used to apply the parameter of the parametricwindow +/// representation.The following attribute values for the /// IfcShapeRepresentation holding this geometric /// representation shall be used: /// @@ -46403,20 +46346,20 @@ public: /// A 'Profile' representation has to be provided if: /// /// a parametric representation shall be applied to the -/// windowÿAND +/// windowAND /// /// the window is 'free standing', or /// the opening into which the window is inserted is not extruded /// horizontally (i.e. where the opening profile does not match the /// window profile) /// -/// FootPrint -ÿ'GeometricCurveSet' or 'Annotation2D' +/// FootPrint -'GeometricCurveSet' or 'Annotation2D' /// representation -/// Theÿwindow foot print is represented by a set of -/// two-dimensionalÿcurves (or in case of 'Annotation2D' additional +/// Thewindow foot print is represented by a set of +/// two-dimensionalcurves (or in case of 'Annotation2D' additional /// hatching and text) within a particular shape representation. The /// foot print is used for the plan view representation of -/// theÿwindow.ÿThe following attribute values for the +/// thewindow.The following attribute values for the /// IfcShapeRepresentation holding this geometric /// representation shall be used: /// @@ -46426,11 +46369,11 @@ public: /// /// Body - 'SweptSolid', 'SurfaceModel', or 'Brep' /// representation -/// Theÿwindow body is either represented parameterically (see +/// Thewindow body is either represented parameterically (see /// parametric representation) or by explicit 3D shape. The 3D shape /// is given by using extrusion geometry, or surface models, or Brep /// models within a particular shape representation. The body is used -/// for the model view representation of theÿwindow.ÿThe following +/// for the model view representation of thewindow.The following /// attribute values for the IfcShapeRepresentation holding /// this geometric representation shall be used: /// @@ -46440,7 +46383,7 @@ public: /// /// MappedRepresentation /// The 'FootPrint' and 'Body' geometric representation -/// ofÿIfcWindow can be shared among several identicalÿwindows +/// ofIfcWindow can be shared among several identicalwindows /// using the 'MappedRepresentation'. The following attribute values /// for the IfcShapeRepresentation holding this geometric /// representation shall be used: @@ -46448,7 +46391,7 @@ public: /// RepresentationIdentifier : 'FootPrint', 'Body' /// RepresentationType : 'MappedRepresentation' /// -/// The same constraints, as given for theÿ 'FootPrint', 'Body' +/// The same constraints, as given for the 'FootPrint', 'Body' /// representation identifiers, shall apply to the /// MappedRepresentation of the /// IfcRepresentationMap. @@ -46484,14 +46427,14 @@ public: /// IfcWindow only defines the local placement which /// determines the opening direction of the window. The overall /// layout of the IfcWindow is determined by -/// itsÿIfcWindowType.PartitioningType. Each window panel has +/// itsIfcWindowType.PartitioningType. Each window panel has /// its own operation type, provided by /// IfcWindowPanelProperties.OperationType. All window panels /// are assumed to open into the same direction (if relevant for the /// particular window panel operation. The hindge side (whether a /// window opens to the left or to the right) is determined by the /// IfcWindowPanelProperties.OperationType. -/// NOTE ÿThere are different conventions in +/// NOTE There are different conventions in /// different countries on how to show the symbolic presentation of /// the window panel operation (the "triangles"). Either as seen from /// the exterior, or from the interior side. The following figures @@ -46505,24 +46448,24 @@ public: /// The determination of whether the window opens to the left or to /// the right is done at /// IfcWindowPanelProperties.OperationType. Here it is a left -/// side opening window given byÿOperationType = +/// side opening window given byOperationType = /// SideHungLeftHand. /// /// If the window should open to the other side, then the /// local placement has to be changed. It is still a left hung /// window, given by IfcWindowPanelProperties.OperationType -/// =ÿSideHungLeftHand. +/// =SideHungLeftHand. /// /// If the window panel (for side hung windows) opens to /// the right, a separate window panel style needs to be used (here /// IfcWindowPanelProperties.OperationType -/// =ÿSideHungRightHand) and it always opens into the direction of -/// the positive Y axis of the local placement.ÿ +/// =SideHungRightHand) and it always opens into the direction of +/// the positive Y axis of the local placement. /// /// If the window should open to the other side, then the /// local placement has to be changed. It is still a right hung /// window, given by IfcWindowPanelProperties.OperationType -/// =ÿSideHungRightHand. +/// =SideHungRightHand. /// . /// /// Figure 144 — Window operations diff --git a/src/ifcparse/Ifc4enum.h b/src/ifcparse/Ifc4enum.h deleted file mode 100644 index 81177f0a76..0000000000 --- a/src/ifcparse/Ifc4enum.h +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************** - * * - * This file is part of IfcOpenShell. * - * * - * IfcOpenShell is free software: you can redistribute it and/or modify * - * it under the terms of the Lesser GNU General Public License as published by * - * the Free Software Foundation, either version 3.0 of the License, or * - * (at your option) any later version. * - * * - * IfcOpenShell is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * Lesser GNU General Public License for more details. * - * * - * You should have received a copy of the Lesser GNU General Public License * - * along with this program. If not, see . * - * * - ********************************************************************************/ - -/******************************************************************************** - * * - * This file has been generated from IFC4.exp. Do not make modifications * - * but instead modify the python script that has been used to generate this. * - * * - ********************************************************************************/ - -#ifndef IFC4ENUM_H -#define IFC4ENUM_H - -#include "../ifcparse/ifc_parse_api.h" - -#include -#include - -#endif diff --git a/src/ifcparse/Ifc4x1-definitions.h b/src/ifcparse/Ifc4x1-definitions.h new file mode 100644 index 0000000000..50bdea932d --- /dev/null +++ b/src/ifcparse/Ifc4x1-definitions.h @@ -0,0 +1,3607 @@ +/******************************************************************************** + * * + * This file is part of IfcOpenShell. * + * * + * IfcOpenShell is free software: you can redistribute it and/or modify * + * it under the terms of the Lesser GNU General Public License as published by * + * the Free Software Foundation, either version 3.0 of the License, or * + * (at your option) any later version. * + * * + * IfcOpenShell is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * Lesser GNU General Public License for more details. * + * * + * You should have received a copy of the Lesser GNU General Public License * + * along with this program. If not, see . * + * * + ********************************************************************************/ + +/******************************************************************************** + * * + * This file has been generated from IFC4x1.exp. Do not make modifications * + * but instead modify the python script that has been used to generate this. * + * * + ********************************************************************************/ + +#define SCHEMA_HAS_IfcAbsorbedDoseMeasure +#define SCHEMA_HAS_IfcAccelerationMeasure +#define SCHEMA_HAS_IfcActionRequestTypeEnum +#define SCHEMA_HAS_IfcActionSourceTypeEnum +#define SCHEMA_HAS_IfcActionTypeEnum +#define SCHEMA_HAS_IfcActorSelect +#define SCHEMA_HAS_IfcActuatorTypeEnum +#define SCHEMA_HAS_IfcAddressTypeEnum +#define SCHEMA_HAS_IfcAirTerminalBoxTypeEnum +#define SCHEMA_HAS_IfcAirTerminalTypeEnum +#define SCHEMA_HAS_IfcAirToAirHeatRecoveryTypeEnum +#define SCHEMA_HAS_IfcAlarmTypeEnum +#define SCHEMA_HAS_IfcAlignmentTypeEnum +#define SCHEMA_HAS_IfcAmountOfSubstanceMeasure +#define SCHEMA_HAS_IfcAnalysisModelTypeEnum +#define SCHEMA_HAS_IfcAnalysisTheoryTypeEnum +#define SCHEMA_HAS_IfcAngularVelocityMeasure +#define SCHEMA_HAS_IfcAppliedValueSelect +#define SCHEMA_HAS_IfcArcIndex +#define SCHEMA_HAS_IfcAreaDensityMeasure +#define SCHEMA_HAS_IfcAreaMeasure +#define SCHEMA_HAS_IfcArithmeticOperatorEnum +#define SCHEMA_HAS_IfcAssemblyPlaceEnum +#define SCHEMA_HAS_IfcAudioVisualApplianceTypeEnum +#define SCHEMA_HAS_IfcAxis2Placement +#define SCHEMA_HAS_IfcBSplineCurveForm +#define SCHEMA_HAS_IfcBSplineSurfaceForm +#define SCHEMA_HAS_IfcBeamTypeEnum +#define SCHEMA_HAS_IfcBenchmarkEnum +#define SCHEMA_HAS_IfcBendingParameterSelect +#define SCHEMA_HAS_IfcBinary +#define SCHEMA_HAS_IfcBoilerTypeEnum +#define SCHEMA_HAS_IfcBoolean +#define SCHEMA_HAS_IfcBooleanOperand +#define SCHEMA_HAS_IfcBooleanOperator +#define SCHEMA_HAS_IfcBoxAlignment +#define SCHEMA_HAS_IfcBuildingElementPartTypeEnum +#define SCHEMA_HAS_IfcBuildingElementProxyTypeEnum +#define SCHEMA_HAS_IfcBuildingSystemTypeEnum +#define SCHEMA_HAS_IfcBurnerTypeEnum +#define SCHEMA_HAS_IfcCableCarrierFittingTypeEnum +#define SCHEMA_HAS_IfcCableCarrierSegmentTypeEnum +#define SCHEMA_HAS_IfcCableFittingTypeEnum +#define SCHEMA_HAS_IfcCableSegmentTypeEnum +#define SCHEMA_HAS_IfcCardinalPointReference +#define SCHEMA_HAS_IfcChangeActionEnum +#define SCHEMA_HAS_IfcChillerTypeEnum +#define SCHEMA_HAS_IfcChimneyTypeEnum +#define SCHEMA_HAS_IfcClassificationReferenceSelect +#define SCHEMA_HAS_IfcClassificationSelect +#define SCHEMA_HAS_IfcCoilTypeEnum +#define SCHEMA_HAS_IfcColour +#define SCHEMA_HAS_IfcColourOrFactor +#define SCHEMA_HAS_IfcColumnTypeEnum +#define SCHEMA_HAS_IfcCommunicationsApplianceTypeEnum +#define SCHEMA_HAS_IfcComplexNumber +#define SCHEMA_HAS_IfcComplexPropertyTemplateTypeEnum +#define SCHEMA_HAS_IfcCompoundPlaneAngleMeasure +#define SCHEMA_HAS_IfcCompressorTypeEnum +#define SCHEMA_HAS_IfcCondenserTypeEnum +#define SCHEMA_HAS_IfcConnectionTypeEnum +#define SCHEMA_HAS_IfcConstraintEnum +#define SCHEMA_HAS_IfcConstructionEquipmentResourceTypeEnum +#define SCHEMA_HAS_IfcConstructionMaterialResourceTypeEnum +#define SCHEMA_HAS_IfcConstructionProductResourceTypeEnum +#define SCHEMA_HAS_IfcContextDependentMeasure +#define SCHEMA_HAS_IfcControllerTypeEnum +#define SCHEMA_HAS_IfcCooledBeamTypeEnum +#define SCHEMA_HAS_IfcCoolingTowerTypeEnum +#define SCHEMA_HAS_IfcCoordinateReferenceSystemSelect +#define SCHEMA_HAS_IfcCostItemTypeEnum +#define SCHEMA_HAS_IfcCostScheduleTypeEnum +#define SCHEMA_HAS_IfcCountMeasure +#define SCHEMA_HAS_IfcCoveringTypeEnum +#define SCHEMA_HAS_IfcCrewResourceTypeEnum +#define SCHEMA_HAS_IfcCsgSelect +#define SCHEMA_HAS_IfcCurtainWallTypeEnum +#define SCHEMA_HAS_IfcCurvatureMeasure +#define SCHEMA_HAS_IfcCurveFontOrScaledCurveFontSelect +#define SCHEMA_HAS_IfcCurveInterpolationEnum +#define SCHEMA_HAS_IfcCurveOnSurface +#define SCHEMA_HAS_IfcCurveOrEdgeCurve +#define SCHEMA_HAS_IfcCurveStyleFontSelect +#define SCHEMA_HAS_IfcDamperTypeEnum +#define SCHEMA_HAS_IfcDataOriginEnum +#define SCHEMA_HAS_IfcDate +#define SCHEMA_HAS_IfcDateTime +#define SCHEMA_HAS_IfcDayInMonthNumber +#define SCHEMA_HAS_IfcDayInWeekNumber +#define SCHEMA_HAS_IfcDefinitionSelect +#define SCHEMA_HAS_IfcDerivedMeasureValue +#define SCHEMA_HAS_IfcDerivedUnitEnum +#define SCHEMA_HAS_IfcDescriptiveMeasure +#define SCHEMA_HAS_IfcDimensionCount +#define SCHEMA_HAS_IfcDirectionSenseEnum +#define SCHEMA_HAS_IfcDiscreteAccessoryTypeEnum +#define SCHEMA_HAS_IfcDistributionChamberElementTypeEnum +#define SCHEMA_HAS_IfcDistributionPortTypeEnum +#define SCHEMA_HAS_IfcDistributionSystemEnum +#define SCHEMA_HAS_IfcDocumentConfidentialityEnum +#define SCHEMA_HAS_IfcDocumentSelect +#define SCHEMA_HAS_IfcDocumentStatusEnum +#define SCHEMA_HAS_IfcDoorPanelOperationEnum +#define SCHEMA_HAS_IfcDoorPanelPositionEnum +#define SCHEMA_HAS_IfcDoorStyleConstructionEnum +#define SCHEMA_HAS_IfcDoorStyleOperationEnum +#define SCHEMA_HAS_IfcDoorTypeEnum +#define SCHEMA_HAS_IfcDoorTypeOperationEnum +#define SCHEMA_HAS_IfcDoseEquivalentMeasure +#define SCHEMA_HAS_IfcDuctFittingTypeEnum +#define SCHEMA_HAS_IfcDuctSegmentTypeEnum +#define SCHEMA_HAS_IfcDuctSilencerTypeEnum +#define SCHEMA_HAS_IfcDuration +#define SCHEMA_HAS_IfcDynamicViscosityMeasure +#define SCHEMA_HAS_IfcElectricApplianceTypeEnum +#define SCHEMA_HAS_IfcElectricCapacitanceMeasure +#define SCHEMA_HAS_IfcElectricChargeMeasure +#define SCHEMA_HAS_IfcElectricConductanceMeasure +#define SCHEMA_HAS_IfcElectricCurrentMeasure +#define SCHEMA_HAS_IfcElectricDistributionBoardTypeEnum +#define SCHEMA_HAS_IfcElectricFlowStorageDeviceTypeEnum +#define SCHEMA_HAS_IfcElectricGeneratorTypeEnum +#define SCHEMA_HAS_IfcElectricMotorTypeEnum +#define SCHEMA_HAS_IfcElectricResistanceMeasure +#define SCHEMA_HAS_IfcElectricTimeControlTypeEnum +#define SCHEMA_HAS_IfcElectricVoltageMeasure +#define SCHEMA_HAS_IfcElementAssemblyTypeEnum +#define SCHEMA_HAS_IfcElementCompositionEnum +#define SCHEMA_HAS_IfcEnergyMeasure +#define SCHEMA_HAS_IfcEngineTypeEnum +#define SCHEMA_HAS_IfcEvaporativeCoolerTypeEnum +#define SCHEMA_HAS_IfcEvaporatorTypeEnum +#define SCHEMA_HAS_IfcEventTriggerTypeEnum +#define SCHEMA_HAS_IfcEventTypeEnum +#define SCHEMA_HAS_IfcExternalSpatialElementTypeEnum +#define SCHEMA_HAS_IfcFanTypeEnum +#define SCHEMA_HAS_IfcFastenerTypeEnum +#define SCHEMA_HAS_IfcFillStyleSelect +#define SCHEMA_HAS_IfcFilterTypeEnum +#define SCHEMA_HAS_IfcFireSuppressionTerminalTypeEnum +#define SCHEMA_HAS_IfcFlowDirectionEnum +#define SCHEMA_HAS_IfcFlowInstrumentTypeEnum +#define SCHEMA_HAS_IfcFlowMeterTypeEnum +#define SCHEMA_HAS_IfcFontStyle +#define SCHEMA_HAS_IfcFontVariant +#define SCHEMA_HAS_IfcFontWeight +#define SCHEMA_HAS_IfcFootingTypeEnum +#define SCHEMA_HAS_IfcForceMeasure +#define SCHEMA_HAS_IfcFrequencyMeasure +#define SCHEMA_HAS_IfcFurnitureTypeEnum +#define SCHEMA_HAS_IfcGeographicElementTypeEnum +#define SCHEMA_HAS_IfcGeometricProjectionEnum +#define SCHEMA_HAS_IfcGeometricSetSelect +#define SCHEMA_HAS_IfcGlobalOrLocalEnum +#define SCHEMA_HAS_IfcGloballyUniqueId +#define SCHEMA_HAS_IfcGridPlacementDirectionSelect +#define SCHEMA_HAS_IfcGridTypeEnum +#define SCHEMA_HAS_IfcHatchLineDistanceSelect +#define SCHEMA_HAS_IfcHeatExchangerTypeEnum +#define SCHEMA_HAS_IfcHeatFluxDensityMeasure +#define SCHEMA_HAS_IfcHeatingValueMeasure +#define SCHEMA_HAS_IfcHumidifierTypeEnum +#define SCHEMA_HAS_IfcIdentifier +#define SCHEMA_HAS_IfcIlluminanceMeasure +#define SCHEMA_HAS_IfcInductanceMeasure +#define SCHEMA_HAS_IfcInteger +#define SCHEMA_HAS_IfcIntegerCountRateMeasure +#define SCHEMA_HAS_IfcInterceptorTypeEnum +#define SCHEMA_HAS_IfcInternalOrExternalEnum +#define SCHEMA_HAS_IfcInventoryTypeEnum +#define SCHEMA_HAS_IfcIonConcentrationMeasure +#define SCHEMA_HAS_IfcIsothermalMoistureCapacityMeasure +#define SCHEMA_HAS_IfcJunctionBoxTypeEnum +#define SCHEMA_HAS_IfcKinematicViscosityMeasure +#define SCHEMA_HAS_IfcKnotType +#define SCHEMA_HAS_IfcLabel +#define SCHEMA_HAS_IfcLaborResourceTypeEnum +#define SCHEMA_HAS_IfcLampTypeEnum +#define SCHEMA_HAS_IfcLanguageId +#define SCHEMA_HAS_IfcLayerSetDirectionEnum +#define SCHEMA_HAS_IfcLayeredItem +#define SCHEMA_HAS_IfcLengthMeasure +#define SCHEMA_HAS_IfcLibrarySelect +#define SCHEMA_HAS_IfcLightDistributionCurveEnum +#define SCHEMA_HAS_IfcLightDistributionDataSourceSelect +#define SCHEMA_HAS_IfcLightEmissionSourceEnum +#define SCHEMA_HAS_IfcLightFixtureTypeEnum +#define SCHEMA_HAS_IfcLineIndex +#define SCHEMA_HAS_IfcLinearForceMeasure +#define SCHEMA_HAS_IfcLinearMomentMeasure +#define SCHEMA_HAS_IfcLinearStiffnessMeasure +#define SCHEMA_HAS_IfcLinearVelocityMeasure +#define SCHEMA_HAS_IfcLoadGroupTypeEnum +#define SCHEMA_HAS_IfcLogical +#define SCHEMA_HAS_IfcLogicalOperatorEnum +#define SCHEMA_HAS_IfcLuminousFluxMeasure +#define SCHEMA_HAS_IfcLuminousIntensityDistributionMeasure +#define SCHEMA_HAS_IfcLuminousIntensityMeasure +#define SCHEMA_HAS_IfcMagneticFluxDensityMeasure +#define SCHEMA_HAS_IfcMagneticFluxMeasure +#define SCHEMA_HAS_IfcMassDensityMeasure +#define SCHEMA_HAS_IfcMassFlowRateMeasure +#define SCHEMA_HAS_IfcMassMeasure +#define SCHEMA_HAS_IfcMassPerLengthMeasure +#define SCHEMA_HAS_IfcMaterialSelect +#define SCHEMA_HAS_IfcMeasureValue +#define SCHEMA_HAS_IfcMechanicalFastenerTypeEnum +#define SCHEMA_HAS_IfcMedicalDeviceTypeEnum +#define SCHEMA_HAS_IfcMemberTypeEnum +#define SCHEMA_HAS_IfcMetricValueSelect +#define SCHEMA_HAS_IfcModulusOfElasticityMeasure +#define SCHEMA_HAS_IfcModulusOfLinearSubgradeReactionMeasure +#define SCHEMA_HAS_IfcModulusOfRotationalSubgradeReactionMeasure +#define SCHEMA_HAS_IfcModulusOfRotationalSubgradeReactionSelect +#define SCHEMA_HAS_IfcModulusOfSubgradeReactionMeasure +#define SCHEMA_HAS_IfcModulusOfSubgradeReactionSelect +#define SCHEMA_HAS_IfcModulusOfTranslationalSubgradeReactionSelect +#define SCHEMA_HAS_IfcMoistureDiffusivityMeasure +#define SCHEMA_HAS_IfcMolecularWeightMeasure +#define SCHEMA_HAS_IfcMomentOfInertiaMeasure +#define SCHEMA_HAS_IfcMonetaryMeasure +#define SCHEMA_HAS_IfcMonthInYearNumber +#define SCHEMA_HAS_IfcMotorConnectionTypeEnum +#define SCHEMA_HAS_IfcNonNegativeLengthMeasure +#define SCHEMA_HAS_IfcNormalisedRatioMeasure +#define SCHEMA_HAS_IfcNullStyle +#define SCHEMA_HAS_IfcNumericMeasure +#define SCHEMA_HAS_IfcObjectReferenceSelect +#define SCHEMA_HAS_IfcObjectTypeEnum +#define SCHEMA_HAS_IfcObjectiveEnum +#define SCHEMA_HAS_IfcOccupantTypeEnum +#define SCHEMA_HAS_IfcOpeningElementTypeEnum +#define SCHEMA_HAS_IfcOutletTypeEnum +#define SCHEMA_HAS_IfcPHMeasure +#define SCHEMA_HAS_IfcParameterValue +#define SCHEMA_HAS_IfcPerformanceHistoryTypeEnum +#define SCHEMA_HAS_IfcPermeableCoveringOperationEnum +#define SCHEMA_HAS_IfcPermitTypeEnum +#define SCHEMA_HAS_IfcPhysicalOrVirtualEnum +#define SCHEMA_HAS_IfcPileConstructionEnum +#define SCHEMA_HAS_IfcPileTypeEnum +#define SCHEMA_HAS_IfcPipeFittingTypeEnum +#define SCHEMA_HAS_IfcPipeSegmentTypeEnum +#define SCHEMA_HAS_IfcPlanarForceMeasure +#define SCHEMA_HAS_IfcPlaneAngleMeasure +#define SCHEMA_HAS_IfcPlateTypeEnum +#define SCHEMA_HAS_IfcPointOrVertexPoint +#define SCHEMA_HAS_IfcPositiveInteger +#define SCHEMA_HAS_IfcPositiveLengthMeasure +#define SCHEMA_HAS_IfcPositivePlaneAngleMeasure +#define SCHEMA_HAS_IfcPositiveRatioMeasure +#define SCHEMA_HAS_IfcPowerMeasure +#define SCHEMA_HAS_IfcPreferredSurfaceCurveRepresentation +#define SCHEMA_HAS_IfcPresentableText +#define SCHEMA_HAS_IfcPresentationStyleSelect +#define SCHEMA_HAS_IfcPressureMeasure +#define SCHEMA_HAS_IfcProcedureTypeEnum +#define SCHEMA_HAS_IfcProcessSelect +#define SCHEMA_HAS_IfcProductRepresentationSelect +#define SCHEMA_HAS_IfcProductSelect +#define SCHEMA_HAS_IfcProfileTypeEnum +#define SCHEMA_HAS_IfcProjectOrderTypeEnum +#define SCHEMA_HAS_IfcProjectedOrTrueLengthEnum +#define SCHEMA_HAS_IfcProjectionElementTypeEnum +#define SCHEMA_HAS_IfcPropertySetDefinitionSelect +#define SCHEMA_HAS_IfcPropertySetDefinitionSet +#define SCHEMA_HAS_IfcPropertySetTemplateTypeEnum +#define SCHEMA_HAS_IfcProtectiveDeviceTrippingUnitTypeEnum +#define SCHEMA_HAS_IfcProtectiveDeviceTypeEnum +#define SCHEMA_HAS_IfcPumpTypeEnum +#define SCHEMA_HAS_IfcRadioActivityMeasure +#define SCHEMA_HAS_IfcRailingTypeEnum +#define SCHEMA_HAS_IfcRampFlightTypeEnum +#define SCHEMA_HAS_IfcRampTypeEnum +#define SCHEMA_HAS_IfcRatioMeasure +#define SCHEMA_HAS_IfcReal +#define SCHEMA_HAS_IfcRecurrenceTypeEnum +#define SCHEMA_HAS_IfcReferentTypeEnum +#define SCHEMA_HAS_IfcReflectanceMethodEnum +#define SCHEMA_HAS_IfcReinforcingBarRoleEnum +#define SCHEMA_HAS_IfcReinforcingBarSurfaceEnum +#define SCHEMA_HAS_IfcReinforcingBarTypeEnum +#define SCHEMA_HAS_IfcReinforcingMeshTypeEnum +#define SCHEMA_HAS_IfcResourceObjectSelect +#define SCHEMA_HAS_IfcResourceSelect +#define SCHEMA_HAS_IfcRoleEnum +#define SCHEMA_HAS_IfcRoofTypeEnum +#define SCHEMA_HAS_IfcRotationalFrequencyMeasure +#define SCHEMA_HAS_IfcRotationalMassMeasure +#define SCHEMA_HAS_IfcRotationalStiffnessMeasure +#define SCHEMA_HAS_IfcRotationalStiffnessSelect +#define SCHEMA_HAS_IfcSIPrefix +#define SCHEMA_HAS_IfcSIUnitName +#define SCHEMA_HAS_IfcSanitaryTerminalTypeEnum +#define SCHEMA_HAS_IfcSectionModulusMeasure +#define SCHEMA_HAS_IfcSectionTypeEnum +#define SCHEMA_HAS_IfcSectionalAreaIntegralMeasure +#define SCHEMA_HAS_IfcSegmentIndexSelect +#define SCHEMA_HAS_IfcSensorTypeEnum +#define SCHEMA_HAS_IfcSequenceEnum +#define SCHEMA_HAS_IfcShadingDeviceTypeEnum +#define SCHEMA_HAS_IfcShearModulusMeasure +#define SCHEMA_HAS_IfcShell +#define SCHEMA_HAS_IfcSimplePropertyTemplateTypeEnum +#define SCHEMA_HAS_IfcSimpleValue +#define SCHEMA_HAS_IfcSizeSelect +#define SCHEMA_HAS_IfcSlabTypeEnum +#define SCHEMA_HAS_IfcSolarDeviceTypeEnum +#define SCHEMA_HAS_IfcSolidAngleMeasure +#define SCHEMA_HAS_IfcSolidOrShell +#define SCHEMA_HAS_IfcSoundPowerLevelMeasure +#define SCHEMA_HAS_IfcSoundPowerMeasure +#define SCHEMA_HAS_IfcSoundPressureLevelMeasure +#define SCHEMA_HAS_IfcSoundPressureMeasure +#define SCHEMA_HAS_IfcSpaceBoundarySelect +#define SCHEMA_HAS_IfcSpaceHeaterTypeEnum +#define SCHEMA_HAS_IfcSpaceTypeEnum +#define SCHEMA_HAS_IfcSpatialZoneTypeEnum +#define SCHEMA_HAS_IfcSpecificHeatCapacityMeasure +#define SCHEMA_HAS_IfcSpecularExponent +#define SCHEMA_HAS_IfcSpecularHighlightSelect +#define SCHEMA_HAS_IfcSpecularRoughness +#define SCHEMA_HAS_IfcStackTerminalTypeEnum +#define SCHEMA_HAS_IfcStairFlightTypeEnum +#define SCHEMA_HAS_IfcStairTypeEnum +#define SCHEMA_HAS_IfcStateEnum +#define SCHEMA_HAS_IfcStructuralActivityAssignmentSelect +#define SCHEMA_HAS_IfcStructuralCurveActivityTypeEnum +#define SCHEMA_HAS_IfcStructuralCurveMemberTypeEnum +#define SCHEMA_HAS_IfcStructuralSurfaceActivityTypeEnum +#define SCHEMA_HAS_IfcStructuralSurfaceMemberTypeEnum +#define SCHEMA_HAS_IfcStyleAssignmentSelect +#define SCHEMA_HAS_IfcSubContractResourceTypeEnum +#define SCHEMA_HAS_IfcSurfaceFeatureTypeEnum +#define SCHEMA_HAS_IfcSurfaceOrFaceSurface +#define SCHEMA_HAS_IfcSurfaceSide +#define SCHEMA_HAS_IfcSurfaceStyleElementSelect +#define SCHEMA_HAS_IfcSwitchingDeviceTypeEnum +#define SCHEMA_HAS_IfcSystemFurnitureElementTypeEnum +#define SCHEMA_HAS_IfcTankTypeEnum +#define SCHEMA_HAS_IfcTaskDurationEnum +#define SCHEMA_HAS_IfcTaskTypeEnum +#define SCHEMA_HAS_IfcTemperatureGradientMeasure +#define SCHEMA_HAS_IfcTemperatureRateOfChangeMeasure +#define SCHEMA_HAS_IfcTendonAnchorTypeEnum +#define SCHEMA_HAS_IfcTendonTypeEnum +#define SCHEMA_HAS_IfcText +#define SCHEMA_HAS_IfcTextAlignment +#define SCHEMA_HAS_IfcTextDecoration +#define SCHEMA_HAS_IfcTextFontName +#define SCHEMA_HAS_IfcTextFontSelect +#define SCHEMA_HAS_IfcTextPath +#define SCHEMA_HAS_IfcTextTransformation +#define SCHEMA_HAS_IfcThermalAdmittanceMeasure +#define SCHEMA_HAS_IfcThermalConductivityMeasure +#define SCHEMA_HAS_IfcThermalExpansionCoefficientMeasure +#define SCHEMA_HAS_IfcThermalResistanceMeasure +#define SCHEMA_HAS_IfcThermalTransmittanceMeasure +#define SCHEMA_HAS_IfcThermodynamicTemperatureMeasure +#define SCHEMA_HAS_IfcTime +#define SCHEMA_HAS_IfcTimeMeasure +#define SCHEMA_HAS_IfcTimeOrRatioSelect +#define SCHEMA_HAS_IfcTimeSeriesDataTypeEnum +#define SCHEMA_HAS_IfcTimeStamp +#define SCHEMA_HAS_IfcTorqueMeasure +#define SCHEMA_HAS_IfcTransformerTypeEnum +#define SCHEMA_HAS_IfcTransitionCode +#define SCHEMA_HAS_IfcTransitionCurveType +#define SCHEMA_HAS_IfcTranslationalStiffnessSelect +#define SCHEMA_HAS_IfcTransportElementTypeEnum +#define SCHEMA_HAS_IfcTrimmingPreference +#define SCHEMA_HAS_IfcTrimmingSelect +#define SCHEMA_HAS_IfcTubeBundleTypeEnum +#define SCHEMA_HAS_IfcURIReference +#define SCHEMA_HAS_IfcUnit +#define SCHEMA_HAS_IfcUnitEnum +#define SCHEMA_HAS_IfcUnitaryControlElementTypeEnum +#define SCHEMA_HAS_IfcUnitaryEquipmentTypeEnum +#define SCHEMA_HAS_IfcValue +#define SCHEMA_HAS_IfcValveTypeEnum +#define SCHEMA_HAS_IfcVaporPermeabilityMeasure +#define SCHEMA_HAS_IfcVectorOrDirection +#define SCHEMA_HAS_IfcVibrationIsolatorTypeEnum +#define SCHEMA_HAS_IfcVoidingFeatureTypeEnum +#define SCHEMA_HAS_IfcVolumeMeasure +#define SCHEMA_HAS_IfcVolumetricFlowRateMeasure +#define SCHEMA_HAS_IfcWallTypeEnum +#define SCHEMA_HAS_IfcWarpingConstantMeasure +#define SCHEMA_HAS_IfcWarpingMomentMeasure +#define SCHEMA_HAS_IfcWarpingStiffnessSelect +#define SCHEMA_HAS_IfcWasteTerminalTypeEnum +#define SCHEMA_HAS_IfcWindowPanelOperationEnum +#define SCHEMA_HAS_IfcWindowPanelPositionEnum +#define SCHEMA_HAS_IfcWindowStyleConstructionEnum +#define SCHEMA_HAS_IfcWindowStyleOperationEnum +#define SCHEMA_HAS_IfcWindowTypeEnum +#define SCHEMA_HAS_IfcWindowTypePartitioningEnum +#define SCHEMA_HAS_IfcWorkCalendarTypeEnum +#define SCHEMA_HAS_IfcWorkPlanTypeEnum +#define SCHEMA_HAS_IfcWorkScheduleTypeEnum +#define SCHEMA_HAS_IfcActionRequest +#define SCHEMA_IfcActionRequest_HAS_PredefinedType +#define SCHEMA_IfcActionRequest_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcActionRequest_HAS_Status +#define SCHEMA_IfcActionRequest_Status_IS_OPTIONAL +#define SCHEMA_IfcActionRequest_HAS_LongDescription +#define SCHEMA_IfcActionRequest_LongDescription_IS_OPTIONAL +#define SCHEMA_HAS_IfcActor +#define SCHEMA_IfcActor_HAS_TheActor +#define SCHEMA_HAS_IfcActorRole +#define SCHEMA_IfcActorRole_HAS_Role +#define SCHEMA_IfcActorRole_HAS_UserDefinedRole +#define SCHEMA_IfcActorRole_UserDefinedRole_IS_OPTIONAL +#define SCHEMA_IfcActorRole_HAS_Description +#define SCHEMA_IfcActorRole_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcActuator +#define SCHEMA_IfcActuator_HAS_PredefinedType +#define SCHEMA_IfcActuator_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcActuatorType +#define SCHEMA_IfcActuatorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAddress +#define SCHEMA_IfcAddress_HAS_Purpose +#define SCHEMA_IfcAddress_Purpose_IS_OPTIONAL +#define SCHEMA_IfcAddress_HAS_Description +#define SCHEMA_IfcAddress_Description_IS_OPTIONAL +#define SCHEMA_IfcAddress_HAS_UserDefinedPurpose +#define SCHEMA_IfcAddress_UserDefinedPurpose_IS_OPTIONAL +#define SCHEMA_HAS_IfcAdvancedBrep +#define SCHEMA_HAS_IfcAdvancedBrepWithVoids +#define SCHEMA_IfcAdvancedBrepWithVoids_HAS_Voids +#define SCHEMA_HAS_IfcAdvancedFace +#define SCHEMA_HAS_IfcAirTerminal +#define SCHEMA_IfcAirTerminal_HAS_PredefinedType +#define SCHEMA_IfcAirTerminal_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcAirTerminalBox +#define SCHEMA_IfcAirTerminalBox_HAS_PredefinedType +#define SCHEMA_IfcAirTerminalBox_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcAirTerminalBoxType +#define SCHEMA_IfcAirTerminalBoxType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAirTerminalType +#define SCHEMA_IfcAirTerminalType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAirToAirHeatRecovery +#define SCHEMA_IfcAirToAirHeatRecovery_HAS_PredefinedType +#define SCHEMA_IfcAirToAirHeatRecovery_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcAirToAirHeatRecoveryType +#define SCHEMA_IfcAirToAirHeatRecoveryType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAlarm +#define SCHEMA_IfcAlarm_HAS_PredefinedType +#define SCHEMA_IfcAlarm_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcAlarmType +#define SCHEMA_IfcAlarmType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAlignment +#define SCHEMA_IfcAlignment_HAS_PredefinedType +#define SCHEMA_IfcAlignment_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcAlignment2DHorizontal +#define SCHEMA_IfcAlignment2DHorizontal_HAS_StartDistAlong +#define SCHEMA_IfcAlignment2DHorizontal_StartDistAlong_IS_OPTIONAL +#define SCHEMA_IfcAlignment2DHorizontal_HAS_Segments +#define SCHEMA_HAS_IfcAlignment2DHorizontalSegment +#define SCHEMA_IfcAlignment2DHorizontalSegment_HAS_CurveGeometry +#define SCHEMA_HAS_IfcAlignment2DSegment +#define SCHEMA_IfcAlignment2DSegment_HAS_TangentialContinuity +#define SCHEMA_IfcAlignment2DSegment_TangentialContinuity_IS_OPTIONAL +#define SCHEMA_IfcAlignment2DSegment_HAS_StartTag +#define SCHEMA_IfcAlignment2DSegment_StartTag_IS_OPTIONAL +#define SCHEMA_IfcAlignment2DSegment_HAS_EndTag +#define SCHEMA_IfcAlignment2DSegment_EndTag_IS_OPTIONAL +#define SCHEMA_HAS_IfcAlignment2DVerSegCircularArc +#define SCHEMA_IfcAlignment2DVerSegCircularArc_HAS_Radius +#define SCHEMA_IfcAlignment2DVerSegCircularArc_HAS_IsConvex +#define SCHEMA_HAS_IfcAlignment2DVerSegLine +#define SCHEMA_HAS_IfcAlignment2DVerSegParabolicArc +#define SCHEMA_IfcAlignment2DVerSegParabolicArc_HAS_ParabolaConstant +#define SCHEMA_IfcAlignment2DVerSegParabolicArc_HAS_IsConvex +#define SCHEMA_HAS_IfcAlignment2DVertical +#define SCHEMA_IfcAlignment2DVertical_HAS_Segments +#define SCHEMA_HAS_IfcAlignment2DVerticalSegment +#define SCHEMA_IfcAlignment2DVerticalSegment_HAS_StartDistAlong +#define SCHEMA_IfcAlignment2DVerticalSegment_HAS_HorizontalLength +#define SCHEMA_IfcAlignment2DVerticalSegment_HAS_StartHeight +#define SCHEMA_IfcAlignment2DVerticalSegment_HAS_StartGradient +#define SCHEMA_HAS_IfcAlignmentCurve +#define SCHEMA_IfcAlignmentCurve_HAS_Horizontal +#define SCHEMA_IfcAlignmentCurve_HAS_Vertical +#define SCHEMA_IfcAlignmentCurve_Vertical_IS_OPTIONAL +#define SCHEMA_IfcAlignmentCurve_HAS_Tag +#define SCHEMA_IfcAlignmentCurve_Tag_IS_OPTIONAL +#define SCHEMA_HAS_IfcAnnotation +#define SCHEMA_HAS_IfcAnnotationFillArea +#define SCHEMA_IfcAnnotationFillArea_HAS_OuterBoundary +#define SCHEMA_IfcAnnotationFillArea_HAS_InnerBoundaries +#define SCHEMA_IfcAnnotationFillArea_InnerBoundaries_IS_OPTIONAL +#define SCHEMA_HAS_IfcApplication +#define SCHEMA_IfcApplication_HAS_ApplicationDeveloper +#define SCHEMA_IfcApplication_HAS_Version +#define SCHEMA_IfcApplication_HAS_ApplicationFullName +#define SCHEMA_IfcApplication_HAS_ApplicationIdentifier +#define SCHEMA_HAS_IfcAppliedValue +#define SCHEMA_IfcAppliedValue_HAS_Name +#define SCHEMA_IfcAppliedValue_Name_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_Description +#define SCHEMA_IfcAppliedValue_Description_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_AppliedValue +#define SCHEMA_IfcAppliedValue_AppliedValue_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_UnitBasis +#define SCHEMA_IfcAppliedValue_UnitBasis_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_ApplicableDate +#define SCHEMA_IfcAppliedValue_ApplicableDate_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_FixedUntilDate +#define SCHEMA_IfcAppliedValue_FixedUntilDate_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_Category +#define SCHEMA_IfcAppliedValue_Category_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_Condition +#define SCHEMA_IfcAppliedValue_Condition_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_ArithmeticOperator +#define SCHEMA_IfcAppliedValue_ArithmeticOperator_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_Components +#define SCHEMA_IfcAppliedValue_Components_IS_OPTIONAL +#define SCHEMA_HAS_IfcApproval +#define SCHEMA_IfcApproval_HAS_Identifier +#define SCHEMA_IfcApproval_Identifier_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_Name +#define SCHEMA_IfcApproval_Name_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_Description +#define SCHEMA_IfcApproval_Description_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_TimeOfApproval +#define SCHEMA_IfcApproval_TimeOfApproval_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_Status +#define SCHEMA_IfcApproval_Status_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_Level +#define SCHEMA_IfcApproval_Level_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_Qualifier +#define SCHEMA_IfcApproval_Qualifier_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_RequestingApproval +#define SCHEMA_IfcApproval_RequestingApproval_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_GivingApproval +#define SCHEMA_IfcApproval_GivingApproval_IS_OPTIONAL +#define SCHEMA_HAS_IfcApprovalRelationship +#define SCHEMA_IfcApprovalRelationship_HAS_RelatingApproval +#define SCHEMA_IfcApprovalRelationship_HAS_RelatedApprovals +#define SCHEMA_HAS_IfcArbitraryClosedProfileDef +#define SCHEMA_IfcArbitraryClosedProfileDef_HAS_OuterCurve +#define SCHEMA_HAS_IfcArbitraryOpenProfileDef +#define SCHEMA_IfcArbitraryOpenProfileDef_HAS_Curve +#define SCHEMA_HAS_IfcArbitraryProfileDefWithVoids +#define SCHEMA_IfcArbitraryProfileDefWithVoids_HAS_InnerCurves +#define SCHEMA_HAS_IfcAsset +#define SCHEMA_IfcAsset_HAS_Identification +#define SCHEMA_IfcAsset_Identification_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_OriginalValue +#define SCHEMA_IfcAsset_OriginalValue_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_CurrentValue +#define SCHEMA_IfcAsset_CurrentValue_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_TotalReplacementCost +#define SCHEMA_IfcAsset_TotalReplacementCost_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_Owner +#define SCHEMA_IfcAsset_Owner_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_User +#define SCHEMA_IfcAsset_User_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_ResponsiblePerson +#define SCHEMA_IfcAsset_ResponsiblePerson_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_IncorporationDate +#define SCHEMA_IfcAsset_IncorporationDate_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_DepreciatedValue +#define SCHEMA_IfcAsset_DepreciatedValue_IS_OPTIONAL +#define SCHEMA_HAS_IfcAsymmetricIShapeProfileDef +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_BottomFlangeWidth +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_OverallDepth +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_WebThickness +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_BottomFlangeThickness +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_BottomFlangeFilletRadius +#define SCHEMA_IfcAsymmetricIShapeProfileDef_BottomFlangeFilletRadius_IS_OPTIONAL +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_TopFlangeWidth +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_TopFlangeThickness +#define SCHEMA_IfcAsymmetricIShapeProfileDef_TopFlangeThickness_IS_OPTIONAL +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_TopFlangeFilletRadius +#define SCHEMA_IfcAsymmetricIShapeProfileDef_TopFlangeFilletRadius_IS_OPTIONAL +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_BottomFlangeEdgeRadius +#define SCHEMA_IfcAsymmetricIShapeProfileDef_BottomFlangeEdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_BottomFlangeSlope +#define SCHEMA_IfcAsymmetricIShapeProfileDef_BottomFlangeSlope_IS_OPTIONAL +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_TopFlangeEdgeRadius +#define SCHEMA_IfcAsymmetricIShapeProfileDef_TopFlangeEdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_TopFlangeSlope +#define SCHEMA_IfcAsymmetricIShapeProfileDef_TopFlangeSlope_IS_OPTIONAL +#define SCHEMA_HAS_IfcAudioVisualAppliance +#define SCHEMA_IfcAudioVisualAppliance_HAS_PredefinedType +#define SCHEMA_IfcAudioVisualAppliance_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcAudioVisualApplianceType +#define SCHEMA_IfcAudioVisualApplianceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAxis1Placement +#define SCHEMA_IfcAxis1Placement_HAS_Axis +#define SCHEMA_IfcAxis1Placement_Axis_IS_OPTIONAL +#define SCHEMA_HAS_IfcAxis2Placement2D +#define SCHEMA_IfcAxis2Placement2D_HAS_RefDirection +#define SCHEMA_IfcAxis2Placement2D_RefDirection_IS_OPTIONAL +#define SCHEMA_HAS_IfcAxis2Placement3D +#define SCHEMA_IfcAxis2Placement3D_HAS_Axis +#define SCHEMA_IfcAxis2Placement3D_Axis_IS_OPTIONAL +#define SCHEMA_IfcAxis2Placement3D_HAS_RefDirection +#define SCHEMA_IfcAxis2Placement3D_RefDirection_IS_OPTIONAL +#define SCHEMA_HAS_IfcBSplineCurve +#define SCHEMA_IfcBSplineCurve_HAS_Degree +#define SCHEMA_IfcBSplineCurve_HAS_ControlPointsList +#define SCHEMA_IfcBSplineCurve_HAS_CurveForm +#define SCHEMA_IfcBSplineCurve_HAS_ClosedCurve +#define SCHEMA_IfcBSplineCurve_HAS_SelfIntersect +#define SCHEMA_HAS_IfcBSplineCurveWithKnots +#define SCHEMA_IfcBSplineCurveWithKnots_HAS_KnotMultiplicities +#define SCHEMA_IfcBSplineCurveWithKnots_HAS_Knots +#define SCHEMA_IfcBSplineCurveWithKnots_HAS_KnotSpec +#define SCHEMA_HAS_IfcBSplineSurface +#define SCHEMA_IfcBSplineSurface_HAS_UDegree +#define SCHEMA_IfcBSplineSurface_HAS_VDegree +#define SCHEMA_IfcBSplineSurface_HAS_ControlPointsList +#define SCHEMA_IfcBSplineSurface_HAS_SurfaceForm +#define SCHEMA_IfcBSplineSurface_HAS_UClosed +#define SCHEMA_IfcBSplineSurface_HAS_VClosed +#define SCHEMA_IfcBSplineSurface_HAS_SelfIntersect +#define SCHEMA_HAS_IfcBSplineSurfaceWithKnots +#define SCHEMA_IfcBSplineSurfaceWithKnots_HAS_UMultiplicities +#define SCHEMA_IfcBSplineSurfaceWithKnots_HAS_VMultiplicities +#define SCHEMA_IfcBSplineSurfaceWithKnots_HAS_UKnots +#define SCHEMA_IfcBSplineSurfaceWithKnots_HAS_VKnots +#define SCHEMA_IfcBSplineSurfaceWithKnots_HAS_KnotSpec +#define SCHEMA_HAS_IfcBeam +#define SCHEMA_IfcBeam_HAS_PredefinedType +#define SCHEMA_IfcBeam_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcBeamStandardCase +#define SCHEMA_HAS_IfcBeamType +#define SCHEMA_IfcBeamType_HAS_PredefinedType +#define SCHEMA_HAS_IfcBlobTexture +#define SCHEMA_IfcBlobTexture_HAS_RasterFormat +#define SCHEMA_IfcBlobTexture_HAS_RasterCode +#define SCHEMA_HAS_IfcBlock +#define SCHEMA_IfcBlock_HAS_XLength +#define SCHEMA_IfcBlock_HAS_YLength +#define SCHEMA_IfcBlock_HAS_ZLength +#define SCHEMA_HAS_IfcBoiler +#define SCHEMA_IfcBoiler_HAS_PredefinedType +#define SCHEMA_IfcBoiler_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoilerType +#define SCHEMA_IfcBoilerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcBooleanClippingResult +#define SCHEMA_HAS_IfcBooleanResult +#define SCHEMA_IfcBooleanResult_HAS_Operator +#define SCHEMA_IfcBooleanResult_HAS_FirstOperand +#define SCHEMA_IfcBooleanResult_HAS_SecondOperand +#define SCHEMA_HAS_IfcBoundaryCondition +#define SCHEMA_IfcBoundaryCondition_HAS_Name +#define SCHEMA_IfcBoundaryCondition_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoundaryCurve +#define SCHEMA_HAS_IfcBoundaryEdgeCondition +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_TranslationalStiffnessByLengthX +#define SCHEMA_IfcBoundaryEdgeCondition_TranslationalStiffnessByLengthX_IS_OPTIONAL +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_TranslationalStiffnessByLengthY +#define SCHEMA_IfcBoundaryEdgeCondition_TranslationalStiffnessByLengthY_IS_OPTIONAL +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_TranslationalStiffnessByLengthZ +#define SCHEMA_IfcBoundaryEdgeCondition_TranslationalStiffnessByLengthZ_IS_OPTIONAL +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_RotationalStiffnessByLengthX +#define SCHEMA_IfcBoundaryEdgeCondition_RotationalStiffnessByLengthX_IS_OPTIONAL +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_RotationalStiffnessByLengthY +#define SCHEMA_IfcBoundaryEdgeCondition_RotationalStiffnessByLengthY_IS_OPTIONAL +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_RotationalStiffnessByLengthZ +#define SCHEMA_IfcBoundaryEdgeCondition_RotationalStiffnessByLengthZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoundaryFaceCondition +#define SCHEMA_IfcBoundaryFaceCondition_HAS_TranslationalStiffnessByAreaX +#define SCHEMA_IfcBoundaryFaceCondition_TranslationalStiffnessByAreaX_IS_OPTIONAL +#define SCHEMA_IfcBoundaryFaceCondition_HAS_TranslationalStiffnessByAreaY +#define SCHEMA_IfcBoundaryFaceCondition_TranslationalStiffnessByAreaY_IS_OPTIONAL +#define SCHEMA_IfcBoundaryFaceCondition_HAS_TranslationalStiffnessByAreaZ +#define SCHEMA_IfcBoundaryFaceCondition_TranslationalStiffnessByAreaZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoundaryNodeCondition +#define SCHEMA_IfcBoundaryNodeCondition_HAS_TranslationalStiffnessX +#define SCHEMA_IfcBoundaryNodeCondition_TranslationalStiffnessX_IS_OPTIONAL +#define SCHEMA_IfcBoundaryNodeCondition_HAS_TranslationalStiffnessY +#define SCHEMA_IfcBoundaryNodeCondition_TranslationalStiffnessY_IS_OPTIONAL +#define SCHEMA_IfcBoundaryNodeCondition_HAS_TranslationalStiffnessZ +#define SCHEMA_IfcBoundaryNodeCondition_TranslationalStiffnessZ_IS_OPTIONAL +#define SCHEMA_IfcBoundaryNodeCondition_HAS_RotationalStiffnessX +#define SCHEMA_IfcBoundaryNodeCondition_RotationalStiffnessX_IS_OPTIONAL +#define SCHEMA_IfcBoundaryNodeCondition_HAS_RotationalStiffnessY +#define SCHEMA_IfcBoundaryNodeCondition_RotationalStiffnessY_IS_OPTIONAL +#define SCHEMA_IfcBoundaryNodeCondition_HAS_RotationalStiffnessZ +#define SCHEMA_IfcBoundaryNodeCondition_RotationalStiffnessZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoundaryNodeConditionWarping +#define SCHEMA_IfcBoundaryNodeConditionWarping_HAS_WarpingStiffness +#define SCHEMA_IfcBoundaryNodeConditionWarping_WarpingStiffness_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoundedCurve +#define SCHEMA_HAS_IfcBoundedSurface +#define SCHEMA_HAS_IfcBoundingBox +#define SCHEMA_IfcBoundingBox_HAS_Corner +#define SCHEMA_IfcBoundingBox_HAS_XDim +#define SCHEMA_IfcBoundingBox_HAS_YDim +#define SCHEMA_IfcBoundingBox_HAS_ZDim +#define SCHEMA_HAS_IfcBoxedHalfSpace +#define SCHEMA_IfcBoxedHalfSpace_HAS_Enclosure +#define SCHEMA_HAS_IfcBuilding +#define SCHEMA_IfcBuilding_HAS_ElevationOfRefHeight +#define SCHEMA_IfcBuilding_ElevationOfRefHeight_IS_OPTIONAL +#define SCHEMA_IfcBuilding_HAS_ElevationOfTerrain +#define SCHEMA_IfcBuilding_ElevationOfTerrain_IS_OPTIONAL +#define SCHEMA_IfcBuilding_HAS_BuildingAddress +#define SCHEMA_IfcBuilding_BuildingAddress_IS_OPTIONAL +#define SCHEMA_HAS_IfcBuildingElement +#define SCHEMA_HAS_IfcBuildingElementPart +#define SCHEMA_IfcBuildingElementPart_HAS_PredefinedType +#define SCHEMA_IfcBuildingElementPart_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcBuildingElementPartType +#define SCHEMA_IfcBuildingElementPartType_HAS_PredefinedType +#define SCHEMA_HAS_IfcBuildingElementProxy +#define SCHEMA_IfcBuildingElementProxy_HAS_PredefinedType +#define SCHEMA_IfcBuildingElementProxy_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcBuildingElementProxyType +#define SCHEMA_IfcBuildingElementProxyType_HAS_PredefinedType +#define SCHEMA_HAS_IfcBuildingElementType +#define SCHEMA_HAS_IfcBuildingStorey +#define SCHEMA_IfcBuildingStorey_HAS_Elevation +#define SCHEMA_IfcBuildingStorey_Elevation_IS_OPTIONAL +#define SCHEMA_HAS_IfcBuildingSystem +#define SCHEMA_IfcBuildingSystem_HAS_PredefinedType +#define SCHEMA_IfcBuildingSystem_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcBuildingSystem_HAS_LongName +#define SCHEMA_IfcBuildingSystem_LongName_IS_OPTIONAL +#define SCHEMA_HAS_IfcBurner +#define SCHEMA_IfcBurner_HAS_PredefinedType +#define SCHEMA_IfcBurner_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcBurnerType +#define SCHEMA_IfcBurnerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCShapeProfileDef +#define SCHEMA_IfcCShapeProfileDef_HAS_Depth +#define SCHEMA_IfcCShapeProfileDef_HAS_Width +#define SCHEMA_IfcCShapeProfileDef_HAS_WallThickness +#define SCHEMA_IfcCShapeProfileDef_HAS_Girth +#define SCHEMA_IfcCShapeProfileDef_HAS_InternalFilletRadius +#define SCHEMA_IfcCShapeProfileDef_InternalFilletRadius_IS_OPTIONAL +#define SCHEMA_HAS_IfcCableCarrierFitting +#define SCHEMA_IfcCableCarrierFitting_HAS_PredefinedType +#define SCHEMA_IfcCableCarrierFitting_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCableCarrierFittingType +#define SCHEMA_IfcCableCarrierFittingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCableCarrierSegment +#define SCHEMA_IfcCableCarrierSegment_HAS_PredefinedType +#define SCHEMA_IfcCableCarrierSegment_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCableCarrierSegmentType +#define SCHEMA_IfcCableCarrierSegmentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCableFitting +#define SCHEMA_IfcCableFitting_HAS_PredefinedType +#define SCHEMA_IfcCableFitting_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCableFittingType +#define SCHEMA_IfcCableFittingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCableSegment +#define SCHEMA_IfcCableSegment_HAS_PredefinedType +#define SCHEMA_IfcCableSegment_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCableSegmentType +#define SCHEMA_IfcCableSegmentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCartesianPoint +#define SCHEMA_IfcCartesianPoint_HAS_Coordinates +#define SCHEMA_HAS_IfcCartesianPointList +#define SCHEMA_HAS_IfcCartesianPointList2D +#define SCHEMA_IfcCartesianPointList2D_HAS_CoordList +#define SCHEMA_IfcCartesianPointList2D_HAS_TagList +#define SCHEMA_IfcCartesianPointList2D_TagList_IS_OPTIONAL +#define SCHEMA_HAS_IfcCartesianPointList3D +#define SCHEMA_IfcCartesianPointList3D_HAS_CoordList +#define SCHEMA_IfcCartesianPointList3D_HAS_TagList +#define SCHEMA_IfcCartesianPointList3D_TagList_IS_OPTIONAL +#define SCHEMA_HAS_IfcCartesianTransformationOperator +#define SCHEMA_IfcCartesianTransformationOperator_HAS_Axis1 +#define SCHEMA_IfcCartesianTransformationOperator_Axis1_IS_OPTIONAL +#define SCHEMA_IfcCartesianTransformationOperator_HAS_Axis2 +#define SCHEMA_IfcCartesianTransformationOperator_Axis2_IS_OPTIONAL +#define SCHEMA_IfcCartesianTransformationOperator_HAS_LocalOrigin +#define SCHEMA_IfcCartesianTransformationOperator_HAS_Scale +#define SCHEMA_IfcCartesianTransformationOperator_Scale_IS_OPTIONAL +#define SCHEMA_HAS_IfcCartesianTransformationOperator2D +#define SCHEMA_HAS_IfcCartesianTransformationOperator2DnonUniform +#define SCHEMA_IfcCartesianTransformationOperator2DnonUniform_HAS_Scale2 +#define SCHEMA_IfcCartesianTransformationOperator2DnonUniform_Scale2_IS_OPTIONAL +#define SCHEMA_HAS_IfcCartesianTransformationOperator3D +#define SCHEMA_IfcCartesianTransformationOperator3D_HAS_Axis3 +#define SCHEMA_IfcCartesianTransformationOperator3D_Axis3_IS_OPTIONAL +#define SCHEMA_HAS_IfcCartesianTransformationOperator3DnonUniform +#define SCHEMA_IfcCartesianTransformationOperator3DnonUniform_HAS_Scale2 +#define SCHEMA_IfcCartesianTransformationOperator3DnonUniform_Scale2_IS_OPTIONAL +#define SCHEMA_IfcCartesianTransformationOperator3DnonUniform_HAS_Scale3 +#define SCHEMA_IfcCartesianTransformationOperator3DnonUniform_Scale3_IS_OPTIONAL +#define SCHEMA_HAS_IfcCenterLineProfileDef +#define SCHEMA_IfcCenterLineProfileDef_HAS_Thickness +#define SCHEMA_HAS_IfcChiller +#define SCHEMA_IfcChiller_HAS_PredefinedType +#define SCHEMA_IfcChiller_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcChillerType +#define SCHEMA_IfcChillerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcChimney +#define SCHEMA_IfcChimney_HAS_PredefinedType +#define SCHEMA_IfcChimney_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcChimneyType +#define SCHEMA_IfcChimneyType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCircle +#define SCHEMA_IfcCircle_HAS_Radius +#define SCHEMA_HAS_IfcCircleHollowProfileDef +#define SCHEMA_IfcCircleHollowProfileDef_HAS_WallThickness +#define SCHEMA_HAS_IfcCircleProfileDef +#define SCHEMA_IfcCircleProfileDef_HAS_Radius +#define SCHEMA_HAS_IfcCircularArcSegment2D +#define SCHEMA_IfcCircularArcSegment2D_HAS_Radius +#define SCHEMA_IfcCircularArcSegment2D_HAS_IsCCW +#define SCHEMA_HAS_IfcCivilElement +#define SCHEMA_HAS_IfcCivilElementType +#define SCHEMA_HAS_IfcClassification +#define SCHEMA_IfcClassification_HAS_Source +#define SCHEMA_IfcClassification_Source_IS_OPTIONAL +#define SCHEMA_IfcClassification_HAS_Edition +#define SCHEMA_IfcClassification_Edition_IS_OPTIONAL +#define SCHEMA_IfcClassification_HAS_EditionDate +#define SCHEMA_IfcClassification_EditionDate_IS_OPTIONAL +#define SCHEMA_IfcClassification_HAS_Name +#define SCHEMA_IfcClassification_HAS_Description +#define SCHEMA_IfcClassification_Description_IS_OPTIONAL +#define SCHEMA_IfcClassification_HAS_Location +#define SCHEMA_IfcClassification_Location_IS_OPTIONAL +#define SCHEMA_IfcClassification_HAS_ReferenceTokens +#define SCHEMA_IfcClassification_ReferenceTokens_IS_OPTIONAL +#define SCHEMA_HAS_IfcClassificationReference +#define SCHEMA_IfcClassificationReference_HAS_ReferencedSource +#define SCHEMA_IfcClassificationReference_ReferencedSource_IS_OPTIONAL +#define SCHEMA_IfcClassificationReference_HAS_Description +#define SCHEMA_IfcClassificationReference_Description_IS_OPTIONAL +#define SCHEMA_IfcClassificationReference_HAS_Sort +#define SCHEMA_IfcClassificationReference_Sort_IS_OPTIONAL +#define SCHEMA_HAS_IfcClosedShell +#define SCHEMA_HAS_IfcCoil +#define SCHEMA_IfcCoil_HAS_PredefinedType +#define SCHEMA_IfcCoil_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCoilType +#define SCHEMA_IfcCoilType_HAS_PredefinedType +#define SCHEMA_HAS_IfcColourRgb +#define SCHEMA_IfcColourRgb_HAS_Red +#define SCHEMA_IfcColourRgb_HAS_Green +#define SCHEMA_IfcColourRgb_HAS_Blue +#define SCHEMA_HAS_IfcColourRgbList +#define SCHEMA_IfcColourRgbList_HAS_ColourList +#define SCHEMA_HAS_IfcColourSpecification +#define SCHEMA_IfcColourSpecification_HAS_Name +#define SCHEMA_IfcColourSpecification_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcColumn +#define SCHEMA_IfcColumn_HAS_PredefinedType +#define SCHEMA_IfcColumn_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcColumnStandardCase +#define SCHEMA_HAS_IfcColumnType +#define SCHEMA_IfcColumnType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCommunicationsAppliance +#define SCHEMA_IfcCommunicationsAppliance_HAS_PredefinedType +#define SCHEMA_IfcCommunicationsAppliance_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCommunicationsApplianceType +#define SCHEMA_IfcCommunicationsApplianceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcComplexProperty +#define SCHEMA_IfcComplexProperty_HAS_UsageName +#define SCHEMA_IfcComplexProperty_HAS_HasProperties +#define SCHEMA_HAS_IfcComplexPropertyTemplate +#define SCHEMA_IfcComplexPropertyTemplate_HAS_UsageName +#define SCHEMA_IfcComplexPropertyTemplate_UsageName_IS_OPTIONAL +#define SCHEMA_IfcComplexPropertyTemplate_HAS_TemplateType +#define SCHEMA_IfcComplexPropertyTemplate_TemplateType_IS_OPTIONAL +#define SCHEMA_IfcComplexPropertyTemplate_HAS_HasPropertyTemplates +#define SCHEMA_IfcComplexPropertyTemplate_HasPropertyTemplates_IS_OPTIONAL +#define SCHEMA_HAS_IfcCompositeCurve +#define SCHEMA_IfcCompositeCurve_HAS_Segments +#define SCHEMA_IfcCompositeCurve_HAS_SelfIntersect +#define SCHEMA_HAS_IfcCompositeCurveOnSurface +#define SCHEMA_HAS_IfcCompositeCurveSegment +#define SCHEMA_IfcCompositeCurveSegment_HAS_Transition +#define SCHEMA_IfcCompositeCurveSegment_HAS_SameSense +#define SCHEMA_IfcCompositeCurveSegment_HAS_ParentCurve +#define SCHEMA_HAS_IfcCompositeProfileDef +#define SCHEMA_IfcCompositeProfileDef_HAS_Profiles +#define SCHEMA_IfcCompositeProfileDef_HAS_Label +#define SCHEMA_IfcCompositeProfileDef_Label_IS_OPTIONAL +#define SCHEMA_HAS_IfcCompressor +#define SCHEMA_IfcCompressor_HAS_PredefinedType +#define SCHEMA_IfcCompressor_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCompressorType +#define SCHEMA_IfcCompressorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCondenser +#define SCHEMA_IfcCondenser_HAS_PredefinedType +#define SCHEMA_IfcCondenser_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCondenserType +#define SCHEMA_IfcCondenserType_HAS_PredefinedType +#define SCHEMA_HAS_IfcConic +#define SCHEMA_IfcConic_HAS_Position +#define SCHEMA_HAS_IfcConnectedFaceSet +#define SCHEMA_IfcConnectedFaceSet_HAS_CfsFaces +#define SCHEMA_HAS_IfcConnectionCurveGeometry +#define SCHEMA_IfcConnectionCurveGeometry_HAS_CurveOnRelatingElement +#define SCHEMA_IfcConnectionCurveGeometry_HAS_CurveOnRelatedElement +#define SCHEMA_IfcConnectionCurveGeometry_CurveOnRelatedElement_IS_OPTIONAL +#define SCHEMA_HAS_IfcConnectionGeometry +#define SCHEMA_HAS_IfcConnectionPointEccentricity +#define SCHEMA_IfcConnectionPointEccentricity_HAS_EccentricityInX +#define SCHEMA_IfcConnectionPointEccentricity_EccentricityInX_IS_OPTIONAL +#define SCHEMA_IfcConnectionPointEccentricity_HAS_EccentricityInY +#define SCHEMA_IfcConnectionPointEccentricity_EccentricityInY_IS_OPTIONAL +#define SCHEMA_IfcConnectionPointEccentricity_HAS_EccentricityInZ +#define SCHEMA_IfcConnectionPointEccentricity_EccentricityInZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcConnectionPointGeometry +#define SCHEMA_IfcConnectionPointGeometry_HAS_PointOnRelatingElement +#define SCHEMA_IfcConnectionPointGeometry_HAS_PointOnRelatedElement +#define SCHEMA_IfcConnectionPointGeometry_PointOnRelatedElement_IS_OPTIONAL +#define SCHEMA_HAS_IfcConnectionSurfaceGeometry +#define SCHEMA_IfcConnectionSurfaceGeometry_HAS_SurfaceOnRelatingElement +#define SCHEMA_IfcConnectionSurfaceGeometry_HAS_SurfaceOnRelatedElement +#define SCHEMA_IfcConnectionSurfaceGeometry_SurfaceOnRelatedElement_IS_OPTIONAL +#define SCHEMA_HAS_IfcConnectionVolumeGeometry +#define SCHEMA_IfcConnectionVolumeGeometry_HAS_VolumeOnRelatingElement +#define SCHEMA_IfcConnectionVolumeGeometry_HAS_VolumeOnRelatedElement +#define SCHEMA_IfcConnectionVolumeGeometry_VolumeOnRelatedElement_IS_OPTIONAL +#define SCHEMA_HAS_IfcConstraint +#define SCHEMA_IfcConstraint_HAS_Name +#define SCHEMA_IfcConstraint_HAS_Description +#define SCHEMA_IfcConstraint_Description_IS_OPTIONAL +#define SCHEMA_IfcConstraint_HAS_ConstraintGrade +#define SCHEMA_IfcConstraint_HAS_ConstraintSource +#define SCHEMA_IfcConstraint_ConstraintSource_IS_OPTIONAL +#define SCHEMA_IfcConstraint_HAS_CreatingActor +#define SCHEMA_IfcConstraint_CreatingActor_IS_OPTIONAL +#define SCHEMA_IfcConstraint_HAS_CreationTime +#define SCHEMA_IfcConstraint_CreationTime_IS_OPTIONAL +#define SCHEMA_IfcConstraint_HAS_UserDefinedGrade +#define SCHEMA_IfcConstraint_UserDefinedGrade_IS_OPTIONAL +#define SCHEMA_HAS_IfcConstructionEquipmentResource +#define SCHEMA_IfcConstructionEquipmentResource_HAS_PredefinedType +#define SCHEMA_IfcConstructionEquipmentResource_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcConstructionEquipmentResourceType +#define SCHEMA_IfcConstructionEquipmentResourceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcConstructionMaterialResource +#define SCHEMA_IfcConstructionMaterialResource_HAS_PredefinedType +#define SCHEMA_IfcConstructionMaterialResource_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcConstructionMaterialResourceType +#define SCHEMA_IfcConstructionMaterialResourceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcConstructionProductResource +#define SCHEMA_IfcConstructionProductResource_HAS_PredefinedType +#define SCHEMA_IfcConstructionProductResource_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcConstructionProductResourceType +#define SCHEMA_IfcConstructionProductResourceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcConstructionResource +#define SCHEMA_IfcConstructionResource_HAS_Usage +#define SCHEMA_IfcConstructionResource_Usage_IS_OPTIONAL +#define SCHEMA_IfcConstructionResource_HAS_BaseCosts +#define SCHEMA_IfcConstructionResource_BaseCosts_IS_OPTIONAL +#define SCHEMA_IfcConstructionResource_HAS_BaseQuantity +#define SCHEMA_IfcConstructionResource_BaseQuantity_IS_OPTIONAL +#define SCHEMA_HAS_IfcConstructionResourceType +#define SCHEMA_IfcConstructionResourceType_HAS_BaseCosts +#define SCHEMA_IfcConstructionResourceType_BaseCosts_IS_OPTIONAL +#define SCHEMA_IfcConstructionResourceType_HAS_BaseQuantity +#define SCHEMA_IfcConstructionResourceType_BaseQuantity_IS_OPTIONAL +#define SCHEMA_HAS_IfcContext +#define SCHEMA_IfcContext_HAS_ObjectType +#define SCHEMA_IfcContext_ObjectType_IS_OPTIONAL +#define SCHEMA_IfcContext_HAS_LongName +#define SCHEMA_IfcContext_LongName_IS_OPTIONAL +#define SCHEMA_IfcContext_HAS_Phase +#define SCHEMA_IfcContext_Phase_IS_OPTIONAL +#define SCHEMA_IfcContext_HAS_RepresentationContexts +#define SCHEMA_IfcContext_RepresentationContexts_IS_OPTIONAL +#define SCHEMA_IfcContext_HAS_UnitsInContext +#define SCHEMA_IfcContext_UnitsInContext_IS_OPTIONAL +#define SCHEMA_HAS_IfcContextDependentUnit +#define SCHEMA_IfcContextDependentUnit_HAS_Name +#define SCHEMA_HAS_IfcControl +#define SCHEMA_IfcControl_HAS_Identification +#define SCHEMA_IfcControl_Identification_IS_OPTIONAL +#define SCHEMA_HAS_IfcController +#define SCHEMA_IfcController_HAS_PredefinedType +#define SCHEMA_IfcController_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcControllerType +#define SCHEMA_IfcControllerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcConversionBasedUnit +#define SCHEMA_IfcConversionBasedUnit_HAS_Name +#define SCHEMA_IfcConversionBasedUnit_HAS_ConversionFactor +#define SCHEMA_HAS_IfcConversionBasedUnitWithOffset +#define SCHEMA_IfcConversionBasedUnitWithOffset_HAS_ConversionOffset +#define SCHEMA_HAS_IfcCooledBeam +#define SCHEMA_IfcCooledBeam_HAS_PredefinedType +#define SCHEMA_IfcCooledBeam_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCooledBeamType +#define SCHEMA_IfcCooledBeamType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCoolingTower +#define SCHEMA_IfcCoolingTower_HAS_PredefinedType +#define SCHEMA_IfcCoolingTower_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCoolingTowerType +#define SCHEMA_IfcCoolingTowerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCoordinateOperation +#define SCHEMA_IfcCoordinateOperation_HAS_SourceCRS +#define SCHEMA_IfcCoordinateOperation_HAS_TargetCRS +#define SCHEMA_HAS_IfcCoordinateReferenceSystem +#define SCHEMA_IfcCoordinateReferenceSystem_HAS_Name +#define SCHEMA_IfcCoordinateReferenceSystem_HAS_Description +#define SCHEMA_IfcCoordinateReferenceSystem_Description_IS_OPTIONAL +#define SCHEMA_IfcCoordinateReferenceSystem_HAS_GeodeticDatum +#define SCHEMA_IfcCoordinateReferenceSystem_GeodeticDatum_IS_OPTIONAL +#define SCHEMA_IfcCoordinateReferenceSystem_HAS_VerticalDatum +#define SCHEMA_IfcCoordinateReferenceSystem_VerticalDatum_IS_OPTIONAL +#define SCHEMA_HAS_IfcCostItem +#define SCHEMA_IfcCostItem_HAS_PredefinedType +#define SCHEMA_IfcCostItem_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcCostItem_HAS_CostValues +#define SCHEMA_IfcCostItem_CostValues_IS_OPTIONAL +#define SCHEMA_IfcCostItem_HAS_CostQuantities +#define SCHEMA_IfcCostItem_CostQuantities_IS_OPTIONAL +#define SCHEMA_HAS_IfcCostSchedule +#define SCHEMA_IfcCostSchedule_HAS_PredefinedType +#define SCHEMA_IfcCostSchedule_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcCostSchedule_HAS_Status +#define SCHEMA_IfcCostSchedule_Status_IS_OPTIONAL +#define SCHEMA_IfcCostSchedule_HAS_SubmittedOn +#define SCHEMA_IfcCostSchedule_SubmittedOn_IS_OPTIONAL +#define SCHEMA_IfcCostSchedule_HAS_UpdateDate +#define SCHEMA_IfcCostSchedule_UpdateDate_IS_OPTIONAL +#define SCHEMA_HAS_IfcCostValue +#define SCHEMA_HAS_IfcCovering +#define SCHEMA_IfcCovering_HAS_PredefinedType +#define SCHEMA_IfcCovering_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCoveringType +#define SCHEMA_IfcCoveringType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCrewResource +#define SCHEMA_IfcCrewResource_HAS_PredefinedType +#define SCHEMA_IfcCrewResource_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCrewResourceType +#define SCHEMA_IfcCrewResourceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCsgPrimitive3D +#define SCHEMA_IfcCsgPrimitive3D_HAS_Position +#define SCHEMA_HAS_IfcCsgSolid +#define SCHEMA_IfcCsgSolid_HAS_TreeRootExpression +#define SCHEMA_HAS_IfcCurrencyRelationship +#define SCHEMA_IfcCurrencyRelationship_HAS_RelatingMonetaryUnit +#define SCHEMA_IfcCurrencyRelationship_HAS_RelatedMonetaryUnit +#define SCHEMA_IfcCurrencyRelationship_HAS_ExchangeRate +#define SCHEMA_IfcCurrencyRelationship_HAS_RateDateTime +#define SCHEMA_IfcCurrencyRelationship_RateDateTime_IS_OPTIONAL +#define SCHEMA_IfcCurrencyRelationship_HAS_RateSource +#define SCHEMA_IfcCurrencyRelationship_RateSource_IS_OPTIONAL +#define SCHEMA_HAS_IfcCurtainWall +#define SCHEMA_IfcCurtainWall_HAS_PredefinedType +#define SCHEMA_IfcCurtainWall_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCurtainWallType +#define SCHEMA_IfcCurtainWallType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCurve +#define SCHEMA_HAS_IfcCurveBoundedPlane +#define SCHEMA_IfcCurveBoundedPlane_HAS_BasisSurface +#define SCHEMA_IfcCurveBoundedPlane_HAS_OuterBoundary +#define SCHEMA_IfcCurveBoundedPlane_HAS_InnerBoundaries +#define SCHEMA_HAS_IfcCurveBoundedSurface +#define SCHEMA_IfcCurveBoundedSurface_HAS_BasisSurface +#define SCHEMA_IfcCurveBoundedSurface_HAS_Boundaries +#define SCHEMA_IfcCurveBoundedSurface_HAS_ImplicitOuter +#define SCHEMA_HAS_IfcCurveSegment2D +#define SCHEMA_IfcCurveSegment2D_HAS_StartPoint +#define SCHEMA_IfcCurveSegment2D_HAS_StartDirection +#define SCHEMA_IfcCurveSegment2D_HAS_SegmentLength +#define SCHEMA_HAS_IfcCurveStyle +#define SCHEMA_IfcCurveStyle_HAS_CurveFont +#define SCHEMA_IfcCurveStyle_CurveFont_IS_OPTIONAL +#define SCHEMA_IfcCurveStyle_HAS_CurveWidth +#define SCHEMA_IfcCurveStyle_CurveWidth_IS_OPTIONAL +#define SCHEMA_IfcCurveStyle_HAS_CurveColour +#define SCHEMA_IfcCurveStyle_CurveColour_IS_OPTIONAL +#define SCHEMA_IfcCurveStyle_HAS_ModelOrDraughting +#define SCHEMA_IfcCurveStyle_ModelOrDraughting_IS_OPTIONAL +#define SCHEMA_HAS_IfcCurveStyleFont +#define SCHEMA_IfcCurveStyleFont_HAS_Name +#define SCHEMA_IfcCurveStyleFont_Name_IS_OPTIONAL +#define SCHEMA_IfcCurveStyleFont_HAS_PatternList +#define SCHEMA_HAS_IfcCurveStyleFontAndScaling +#define SCHEMA_IfcCurveStyleFontAndScaling_HAS_Name +#define SCHEMA_IfcCurveStyleFontAndScaling_Name_IS_OPTIONAL +#define SCHEMA_IfcCurveStyleFontAndScaling_HAS_CurveFont +#define SCHEMA_IfcCurveStyleFontAndScaling_HAS_CurveFontScaling +#define SCHEMA_HAS_IfcCurveStyleFontPattern +#define SCHEMA_IfcCurveStyleFontPattern_HAS_VisibleSegmentLength +#define SCHEMA_IfcCurveStyleFontPattern_HAS_InvisibleSegmentLength +#define SCHEMA_HAS_IfcCylindricalSurface +#define SCHEMA_IfcCylindricalSurface_HAS_Radius +#define SCHEMA_HAS_IfcDamper +#define SCHEMA_IfcDamper_HAS_PredefinedType +#define SCHEMA_IfcDamper_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDamperType +#define SCHEMA_IfcDamperType_HAS_PredefinedType +#define SCHEMA_HAS_IfcDerivedProfileDef +#define SCHEMA_IfcDerivedProfileDef_HAS_ParentProfile +#define SCHEMA_IfcDerivedProfileDef_HAS_Operator +#define SCHEMA_IfcDerivedProfileDef_HAS_Label +#define SCHEMA_IfcDerivedProfileDef_Label_IS_OPTIONAL +#define SCHEMA_HAS_IfcDerivedUnit +#define SCHEMA_IfcDerivedUnit_HAS_Elements +#define SCHEMA_IfcDerivedUnit_HAS_UnitType +#define SCHEMA_IfcDerivedUnit_HAS_UserDefinedType +#define SCHEMA_IfcDerivedUnit_UserDefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDerivedUnitElement +#define SCHEMA_IfcDerivedUnitElement_HAS_Unit +#define SCHEMA_IfcDerivedUnitElement_HAS_Exponent +#define SCHEMA_HAS_IfcDimensionalExponents +#define SCHEMA_IfcDimensionalExponents_HAS_LengthExponent +#define SCHEMA_IfcDimensionalExponents_HAS_MassExponent +#define SCHEMA_IfcDimensionalExponents_HAS_TimeExponent +#define SCHEMA_IfcDimensionalExponents_HAS_ElectricCurrentExponent +#define SCHEMA_IfcDimensionalExponents_HAS_ThermodynamicTemperatureExponent +#define SCHEMA_IfcDimensionalExponents_HAS_AmountOfSubstanceExponent +#define SCHEMA_IfcDimensionalExponents_HAS_LuminousIntensityExponent +#define SCHEMA_HAS_IfcDirection +#define SCHEMA_IfcDirection_HAS_DirectionRatios +#define SCHEMA_HAS_IfcDiscreteAccessory +#define SCHEMA_IfcDiscreteAccessory_HAS_PredefinedType +#define SCHEMA_IfcDiscreteAccessory_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDiscreteAccessoryType +#define SCHEMA_IfcDiscreteAccessoryType_HAS_PredefinedType +#define SCHEMA_HAS_IfcDistanceExpression +#define SCHEMA_IfcDistanceExpression_HAS_DistanceAlong +#define SCHEMA_IfcDistanceExpression_HAS_OffsetLateral +#define SCHEMA_IfcDistanceExpression_OffsetLateral_IS_OPTIONAL +#define SCHEMA_IfcDistanceExpression_HAS_OffsetVertical +#define SCHEMA_IfcDistanceExpression_OffsetVertical_IS_OPTIONAL +#define SCHEMA_IfcDistanceExpression_HAS_OffsetLongitudinal +#define SCHEMA_IfcDistanceExpression_OffsetLongitudinal_IS_OPTIONAL +#define SCHEMA_IfcDistanceExpression_HAS_AlongHorizontal +#define SCHEMA_IfcDistanceExpression_AlongHorizontal_IS_OPTIONAL +#define SCHEMA_HAS_IfcDistributionChamberElement +#define SCHEMA_IfcDistributionChamberElement_HAS_PredefinedType +#define SCHEMA_IfcDistributionChamberElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDistributionChamberElementType +#define SCHEMA_IfcDistributionChamberElementType_HAS_PredefinedType +#define SCHEMA_HAS_IfcDistributionCircuit +#define SCHEMA_HAS_IfcDistributionControlElement +#define SCHEMA_HAS_IfcDistributionControlElementType +#define SCHEMA_HAS_IfcDistributionElement +#define SCHEMA_HAS_IfcDistributionElementType +#define SCHEMA_HAS_IfcDistributionFlowElement +#define SCHEMA_HAS_IfcDistributionFlowElementType +#define SCHEMA_HAS_IfcDistributionPort +#define SCHEMA_IfcDistributionPort_HAS_FlowDirection +#define SCHEMA_IfcDistributionPort_FlowDirection_IS_OPTIONAL +#define SCHEMA_IfcDistributionPort_HAS_PredefinedType +#define SCHEMA_IfcDistributionPort_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcDistributionPort_HAS_SystemType +#define SCHEMA_IfcDistributionPort_SystemType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDistributionSystem +#define SCHEMA_IfcDistributionSystem_HAS_LongName +#define SCHEMA_IfcDistributionSystem_LongName_IS_OPTIONAL +#define SCHEMA_IfcDistributionSystem_HAS_PredefinedType +#define SCHEMA_IfcDistributionSystem_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDocumentInformation +#define SCHEMA_IfcDocumentInformation_HAS_Identification +#define SCHEMA_IfcDocumentInformation_HAS_Name +#define SCHEMA_IfcDocumentInformation_HAS_Description +#define SCHEMA_IfcDocumentInformation_Description_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Location +#define SCHEMA_IfcDocumentInformation_Location_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Purpose +#define SCHEMA_IfcDocumentInformation_Purpose_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_IntendedUse +#define SCHEMA_IfcDocumentInformation_IntendedUse_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Scope +#define SCHEMA_IfcDocumentInformation_Scope_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Revision +#define SCHEMA_IfcDocumentInformation_Revision_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_DocumentOwner +#define SCHEMA_IfcDocumentInformation_DocumentOwner_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Editors +#define SCHEMA_IfcDocumentInformation_Editors_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_CreationTime +#define SCHEMA_IfcDocumentInformation_CreationTime_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_LastRevisionTime +#define SCHEMA_IfcDocumentInformation_LastRevisionTime_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_ElectronicFormat +#define SCHEMA_IfcDocumentInformation_ElectronicFormat_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_ValidFrom +#define SCHEMA_IfcDocumentInformation_ValidFrom_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_ValidUntil +#define SCHEMA_IfcDocumentInformation_ValidUntil_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Confidentiality +#define SCHEMA_IfcDocumentInformation_Confidentiality_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Status +#define SCHEMA_IfcDocumentInformation_Status_IS_OPTIONAL +#define SCHEMA_HAS_IfcDocumentInformationRelationship +#define SCHEMA_IfcDocumentInformationRelationship_HAS_RelatingDocument +#define SCHEMA_IfcDocumentInformationRelationship_HAS_RelatedDocuments +#define SCHEMA_IfcDocumentInformationRelationship_HAS_RelationshipType +#define SCHEMA_IfcDocumentInformationRelationship_RelationshipType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDocumentReference +#define SCHEMA_IfcDocumentReference_HAS_Description +#define SCHEMA_IfcDocumentReference_Description_IS_OPTIONAL +#define SCHEMA_IfcDocumentReference_HAS_ReferencedDocument +#define SCHEMA_IfcDocumentReference_ReferencedDocument_IS_OPTIONAL +#define SCHEMA_HAS_IfcDoor +#define SCHEMA_IfcDoor_HAS_OverallHeight +#define SCHEMA_IfcDoor_OverallHeight_IS_OPTIONAL +#define SCHEMA_IfcDoor_HAS_OverallWidth +#define SCHEMA_IfcDoor_OverallWidth_IS_OPTIONAL +#define SCHEMA_IfcDoor_HAS_PredefinedType +#define SCHEMA_IfcDoor_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcDoor_HAS_OperationType +#define SCHEMA_IfcDoor_OperationType_IS_OPTIONAL +#define SCHEMA_IfcDoor_HAS_UserDefinedOperationType +#define SCHEMA_IfcDoor_UserDefinedOperationType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDoorLiningProperties +#define SCHEMA_IfcDoorLiningProperties_HAS_LiningDepth +#define SCHEMA_IfcDoorLiningProperties_LiningDepth_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_LiningThickness +#define SCHEMA_IfcDoorLiningProperties_LiningThickness_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_ThresholdDepth +#define SCHEMA_IfcDoorLiningProperties_ThresholdDepth_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_ThresholdThickness +#define SCHEMA_IfcDoorLiningProperties_ThresholdThickness_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_TransomThickness +#define SCHEMA_IfcDoorLiningProperties_TransomThickness_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_TransomOffset +#define SCHEMA_IfcDoorLiningProperties_TransomOffset_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_LiningOffset +#define SCHEMA_IfcDoorLiningProperties_LiningOffset_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_ThresholdOffset +#define SCHEMA_IfcDoorLiningProperties_ThresholdOffset_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_CasingThickness +#define SCHEMA_IfcDoorLiningProperties_CasingThickness_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_CasingDepth +#define SCHEMA_IfcDoorLiningProperties_CasingDepth_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_ShapeAspectStyle +#define SCHEMA_IfcDoorLiningProperties_ShapeAspectStyle_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_LiningToPanelOffsetX +#define SCHEMA_IfcDoorLiningProperties_LiningToPanelOffsetX_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_LiningToPanelOffsetY +#define SCHEMA_IfcDoorLiningProperties_LiningToPanelOffsetY_IS_OPTIONAL +#define SCHEMA_HAS_IfcDoorPanelProperties +#define SCHEMA_IfcDoorPanelProperties_HAS_PanelDepth +#define SCHEMA_IfcDoorPanelProperties_PanelDepth_IS_OPTIONAL +#define SCHEMA_IfcDoorPanelProperties_HAS_PanelOperation +#define SCHEMA_IfcDoorPanelProperties_HAS_PanelWidth +#define SCHEMA_IfcDoorPanelProperties_PanelWidth_IS_OPTIONAL +#define SCHEMA_IfcDoorPanelProperties_HAS_PanelPosition +#define SCHEMA_IfcDoorPanelProperties_HAS_ShapeAspectStyle +#define SCHEMA_IfcDoorPanelProperties_ShapeAspectStyle_IS_OPTIONAL +#define SCHEMA_HAS_IfcDoorStandardCase +#define SCHEMA_HAS_IfcDoorStyle +#define SCHEMA_IfcDoorStyle_HAS_OperationType +#define SCHEMA_IfcDoorStyle_HAS_ConstructionType +#define SCHEMA_IfcDoorStyle_HAS_ParameterTakesPrecedence +#define SCHEMA_IfcDoorStyle_HAS_Sizeable +#define SCHEMA_HAS_IfcDoorType +#define SCHEMA_IfcDoorType_HAS_PredefinedType +#define SCHEMA_IfcDoorType_HAS_OperationType +#define SCHEMA_IfcDoorType_HAS_ParameterTakesPrecedence +#define SCHEMA_IfcDoorType_ParameterTakesPrecedence_IS_OPTIONAL +#define SCHEMA_IfcDoorType_HAS_UserDefinedOperationType +#define SCHEMA_IfcDoorType_UserDefinedOperationType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDraughtingPreDefinedColour +#define SCHEMA_HAS_IfcDraughtingPreDefinedCurveFont +#define SCHEMA_HAS_IfcDuctFitting +#define SCHEMA_IfcDuctFitting_HAS_PredefinedType +#define SCHEMA_IfcDuctFitting_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDuctFittingType +#define SCHEMA_IfcDuctFittingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcDuctSegment +#define SCHEMA_IfcDuctSegment_HAS_PredefinedType +#define SCHEMA_IfcDuctSegment_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDuctSegmentType +#define SCHEMA_IfcDuctSegmentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcDuctSilencer +#define SCHEMA_IfcDuctSilencer_HAS_PredefinedType +#define SCHEMA_IfcDuctSilencer_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDuctSilencerType +#define SCHEMA_IfcDuctSilencerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcEdge +#define SCHEMA_IfcEdge_HAS_EdgeStart +#define SCHEMA_IfcEdge_HAS_EdgeEnd +#define SCHEMA_HAS_IfcEdgeCurve +#define SCHEMA_IfcEdgeCurve_HAS_EdgeGeometry +#define SCHEMA_IfcEdgeCurve_HAS_SameSense +#define SCHEMA_HAS_IfcEdgeLoop +#define SCHEMA_IfcEdgeLoop_HAS_EdgeList +#define SCHEMA_HAS_IfcElectricAppliance +#define SCHEMA_IfcElectricAppliance_HAS_PredefinedType +#define SCHEMA_IfcElectricAppliance_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElectricApplianceType +#define SCHEMA_IfcElectricApplianceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElectricDistributionBoard +#define SCHEMA_IfcElectricDistributionBoard_HAS_PredefinedType +#define SCHEMA_IfcElectricDistributionBoard_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElectricDistributionBoardType +#define SCHEMA_IfcElectricDistributionBoardType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElectricFlowStorageDevice +#define SCHEMA_IfcElectricFlowStorageDevice_HAS_PredefinedType +#define SCHEMA_IfcElectricFlowStorageDevice_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElectricFlowStorageDeviceType +#define SCHEMA_IfcElectricFlowStorageDeviceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElectricGenerator +#define SCHEMA_IfcElectricGenerator_HAS_PredefinedType +#define SCHEMA_IfcElectricGenerator_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElectricGeneratorType +#define SCHEMA_IfcElectricGeneratorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElectricMotor +#define SCHEMA_IfcElectricMotor_HAS_PredefinedType +#define SCHEMA_IfcElectricMotor_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElectricMotorType +#define SCHEMA_IfcElectricMotorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElectricTimeControl +#define SCHEMA_IfcElectricTimeControl_HAS_PredefinedType +#define SCHEMA_IfcElectricTimeControl_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElectricTimeControlType +#define SCHEMA_IfcElectricTimeControlType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElement +#define SCHEMA_IfcElement_HAS_Tag +#define SCHEMA_IfcElement_Tag_IS_OPTIONAL +#define SCHEMA_HAS_IfcElementAssembly +#define SCHEMA_IfcElementAssembly_HAS_AssemblyPlace +#define SCHEMA_IfcElementAssembly_AssemblyPlace_IS_OPTIONAL +#define SCHEMA_IfcElementAssembly_HAS_PredefinedType +#define SCHEMA_IfcElementAssembly_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElementAssemblyType +#define SCHEMA_IfcElementAssemblyType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElementComponent +#define SCHEMA_HAS_IfcElementComponentType +#define SCHEMA_HAS_IfcElementQuantity +#define SCHEMA_IfcElementQuantity_HAS_MethodOfMeasurement +#define SCHEMA_IfcElementQuantity_MethodOfMeasurement_IS_OPTIONAL +#define SCHEMA_IfcElementQuantity_HAS_Quantities +#define SCHEMA_HAS_IfcElementType +#define SCHEMA_IfcElementType_HAS_ElementType +#define SCHEMA_IfcElementType_ElementType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElementarySurface +#define SCHEMA_IfcElementarySurface_HAS_Position +#define SCHEMA_HAS_IfcEllipse +#define SCHEMA_IfcEllipse_HAS_SemiAxis1 +#define SCHEMA_IfcEllipse_HAS_SemiAxis2 +#define SCHEMA_HAS_IfcEllipseProfileDef +#define SCHEMA_IfcEllipseProfileDef_HAS_SemiAxis1 +#define SCHEMA_IfcEllipseProfileDef_HAS_SemiAxis2 +#define SCHEMA_HAS_IfcEnergyConversionDevice +#define SCHEMA_HAS_IfcEnergyConversionDeviceType +#define SCHEMA_HAS_IfcEngine +#define SCHEMA_IfcEngine_HAS_PredefinedType +#define SCHEMA_IfcEngine_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcEngineType +#define SCHEMA_IfcEngineType_HAS_PredefinedType +#define SCHEMA_HAS_IfcEvaporativeCooler +#define SCHEMA_IfcEvaporativeCooler_HAS_PredefinedType +#define SCHEMA_IfcEvaporativeCooler_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcEvaporativeCoolerType +#define SCHEMA_IfcEvaporativeCoolerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcEvaporator +#define SCHEMA_IfcEvaporator_HAS_PredefinedType +#define SCHEMA_IfcEvaporator_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcEvaporatorType +#define SCHEMA_IfcEvaporatorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcEvent +#define SCHEMA_IfcEvent_HAS_PredefinedType +#define SCHEMA_IfcEvent_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcEvent_HAS_EventTriggerType +#define SCHEMA_IfcEvent_EventTriggerType_IS_OPTIONAL +#define SCHEMA_IfcEvent_HAS_UserDefinedEventTriggerType +#define SCHEMA_IfcEvent_UserDefinedEventTriggerType_IS_OPTIONAL +#define SCHEMA_IfcEvent_HAS_EventOccurenceTime +#define SCHEMA_IfcEvent_EventOccurenceTime_IS_OPTIONAL +#define SCHEMA_HAS_IfcEventTime +#define SCHEMA_IfcEventTime_HAS_ActualDate +#define SCHEMA_IfcEventTime_ActualDate_IS_OPTIONAL +#define SCHEMA_IfcEventTime_HAS_EarlyDate +#define SCHEMA_IfcEventTime_EarlyDate_IS_OPTIONAL +#define SCHEMA_IfcEventTime_HAS_LateDate +#define SCHEMA_IfcEventTime_LateDate_IS_OPTIONAL +#define SCHEMA_IfcEventTime_HAS_ScheduleDate +#define SCHEMA_IfcEventTime_ScheduleDate_IS_OPTIONAL +#define SCHEMA_HAS_IfcEventType +#define SCHEMA_IfcEventType_HAS_PredefinedType +#define SCHEMA_IfcEventType_HAS_EventTriggerType +#define SCHEMA_IfcEventType_HAS_UserDefinedEventTriggerType +#define SCHEMA_IfcEventType_UserDefinedEventTriggerType_IS_OPTIONAL +#define SCHEMA_HAS_IfcExtendedProperties +#define SCHEMA_IfcExtendedProperties_HAS_Name +#define SCHEMA_IfcExtendedProperties_Name_IS_OPTIONAL +#define SCHEMA_IfcExtendedProperties_HAS_Description +#define SCHEMA_IfcExtendedProperties_Description_IS_OPTIONAL +#define SCHEMA_IfcExtendedProperties_HAS_Properties +#define SCHEMA_HAS_IfcExternalInformation +#define SCHEMA_HAS_IfcExternalReference +#define SCHEMA_IfcExternalReference_HAS_Location +#define SCHEMA_IfcExternalReference_Location_IS_OPTIONAL +#define SCHEMA_IfcExternalReference_HAS_Identification +#define SCHEMA_IfcExternalReference_Identification_IS_OPTIONAL +#define SCHEMA_IfcExternalReference_HAS_Name +#define SCHEMA_IfcExternalReference_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcExternalReferenceRelationship +#define SCHEMA_IfcExternalReferenceRelationship_HAS_RelatingReference +#define SCHEMA_IfcExternalReferenceRelationship_HAS_RelatedResourceObjects +#define SCHEMA_HAS_IfcExternalSpatialElement +#define SCHEMA_IfcExternalSpatialElement_HAS_PredefinedType +#define SCHEMA_IfcExternalSpatialElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcExternalSpatialStructureElement +#define SCHEMA_HAS_IfcExternallyDefinedHatchStyle +#define SCHEMA_HAS_IfcExternallyDefinedSurfaceStyle +#define SCHEMA_HAS_IfcExternallyDefinedTextFont +#define SCHEMA_HAS_IfcExtrudedAreaSolid +#define SCHEMA_IfcExtrudedAreaSolid_HAS_ExtrudedDirection +#define SCHEMA_IfcExtrudedAreaSolid_HAS_Depth +#define SCHEMA_HAS_IfcExtrudedAreaSolidTapered +#define SCHEMA_IfcExtrudedAreaSolidTapered_HAS_EndSweptArea +#define SCHEMA_HAS_IfcFace +#define SCHEMA_IfcFace_HAS_Bounds +#define SCHEMA_HAS_IfcFaceBasedSurfaceModel +#define SCHEMA_IfcFaceBasedSurfaceModel_HAS_FbsmFaces +#define SCHEMA_HAS_IfcFaceBound +#define SCHEMA_IfcFaceBound_HAS_Bound +#define SCHEMA_IfcFaceBound_HAS_Orientation +#define SCHEMA_HAS_IfcFaceOuterBound +#define SCHEMA_HAS_IfcFaceSurface +#define SCHEMA_IfcFaceSurface_HAS_FaceSurface +#define SCHEMA_IfcFaceSurface_HAS_SameSense +#define SCHEMA_HAS_IfcFacetedBrep +#define SCHEMA_HAS_IfcFacetedBrepWithVoids +#define SCHEMA_IfcFacetedBrepWithVoids_HAS_Voids +#define SCHEMA_HAS_IfcFailureConnectionCondition +#define SCHEMA_IfcFailureConnectionCondition_HAS_TensionFailureX +#define SCHEMA_IfcFailureConnectionCondition_TensionFailureX_IS_OPTIONAL +#define SCHEMA_IfcFailureConnectionCondition_HAS_TensionFailureY +#define SCHEMA_IfcFailureConnectionCondition_TensionFailureY_IS_OPTIONAL +#define SCHEMA_IfcFailureConnectionCondition_HAS_TensionFailureZ +#define SCHEMA_IfcFailureConnectionCondition_TensionFailureZ_IS_OPTIONAL +#define SCHEMA_IfcFailureConnectionCondition_HAS_CompressionFailureX +#define SCHEMA_IfcFailureConnectionCondition_CompressionFailureX_IS_OPTIONAL +#define SCHEMA_IfcFailureConnectionCondition_HAS_CompressionFailureY +#define SCHEMA_IfcFailureConnectionCondition_CompressionFailureY_IS_OPTIONAL +#define SCHEMA_IfcFailureConnectionCondition_HAS_CompressionFailureZ +#define SCHEMA_IfcFailureConnectionCondition_CompressionFailureZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcFan +#define SCHEMA_IfcFan_HAS_PredefinedType +#define SCHEMA_IfcFan_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFanType +#define SCHEMA_IfcFanType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFastener +#define SCHEMA_IfcFastener_HAS_PredefinedType +#define SCHEMA_IfcFastener_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFastenerType +#define SCHEMA_IfcFastenerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFeatureElement +#define SCHEMA_HAS_IfcFeatureElementAddition +#define SCHEMA_HAS_IfcFeatureElementSubtraction +#define SCHEMA_HAS_IfcFillAreaStyle +#define SCHEMA_IfcFillAreaStyle_HAS_FillStyles +#define SCHEMA_IfcFillAreaStyle_HAS_ModelorDraughting +#define SCHEMA_IfcFillAreaStyle_ModelorDraughting_IS_OPTIONAL +#define SCHEMA_HAS_IfcFillAreaStyleHatching +#define SCHEMA_IfcFillAreaStyleHatching_HAS_HatchLineAppearance +#define SCHEMA_IfcFillAreaStyleHatching_HAS_StartOfNextHatchLine +#define SCHEMA_IfcFillAreaStyleHatching_HAS_PointOfReferenceHatchLine +#define SCHEMA_IfcFillAreaStyleHatching_PointOfReferenceHatchLine_IS_OPTIONAL +#define SCHEMA_IfcFillAreaStyleHatching_HAS_PatternStart +#define SCHEMA_IfcFillAreaStyleHatching_PatternStart_IS_OPTIONAL +#define SCHEMA_IfcFillAreaStyleHatching_HAS_HatchLineAngle +#define SCHEMA_HAS_IfcFillAreaStyleTiles +#define SCHEMA_IfcFillAreaStyleTiles_HAS_TilingPattern +#define SCHEMA_IfcFillAreaStyleTiles_HAS_Tiles +#define SCHEMA_IfcFillAreaStyleTiles_HAS_TilingScale +#define SCHEMA_HAS_IfcFilter +#define SCHEMA_IfcFilter_HAS_PredefinedType +#define SCHEMA_IfcFilter_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFilterType +#define SCHEMA_IfcFilterType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFireSuppressionTerminal +#define SCHEMA_IfcFireSuppressionTerminal_HAS_PredefinedType +#define SCHEMA_IfcFireSuppressionTerminal_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFireSuppressionTerminalType +#define SCHEMA_IfcFireSuppressionTerminalType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFixedReferenceSweptAreaSolid +#define SCHEMA_IfcFixedReferenceSweptAreaSolid_HAS_Directrix +#define SCHEMA_IfcFixedReferenceSweptAreaSolid_HAS_StartParam +#define SCHEMA_IfcFixedReferenceSweptAreaSolid_StartParam_IS_OPTIONAL +#define SCHEMA_IfcFixedReferenceSweptAreaSolid_HAS_EndParam +#define SCHEMA_IfcFixedReferenceSweptAreaSolid_EndParam_IS_OPTIONAL +#define SCHEMA_IfcFixedReferenceSweptAreaSolid_HAS_FixedReference +#define SCHEMA_HAS_IfcFlowController +#define SCHEMA_HAS_IfcFlowControllerType +#define SCHEMA_HAS_IfcFlowFitting +#define SCHEMA_HAS_IfcFlowFittingType +#define SCHEMA_HAS_IfcFlowInstrument +#define SCHEMA_IfcFlowInstrument_HAS_PredefinedType +#define SCHEMA_IfcFlowInstrument_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFlowInstrumentType +#define SCHEMA_IfcFlowInstrumentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFlowMeter +#define SCHEMA_IfcFlowMeter_HAS_PredefinedType +#define SCHEMA_IfcFlowMeter_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFlowMeterType +#define SCHEMA_IfcFlowMeterType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFlowMovingDevice +#define SCHEMA_HAS_IfcFlowMovingDeviceType +#define SCHEMA_HAS_IfcFlowSegment +#define SCHEMA_HAS_IfcFlowSegmentType +#define SCHEMA_HAS_IfcFlowStorageDevice +#define SCHEMA_HAS_IfcFlowStorageDeviceType +#define SCHEMA_HAS_IfcFlowTerminal +#define SCHEMA_HAS_IfcFlowTerminalType +#define SCHEMA_HAS_IfcFlowTreatmentDevice +#define SCHEMA_HAS_IfcFlowTreatmentDeviceType +#define SCHEMA_HAS_IfcFooting +#define SCHEMA_IfcFooting_HAS_PredefinedType +#define SCHEMA_IfcFooting_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFootingType +#define SCHEMA_IfcFootingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFurnishingElement +#define SCHEMA_HAS_IfcFurnishingElementType +#define SCHEMA_HAS_IfcFurniture +#define SCHEMA_IfcFurniture_HAS_PredefinedType +#define SCHEMA_IfcFurniture_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFurnitureType +#define SCHEMA_IfcFurnitureType_HAS_AssemblyPlace +#define SCHEMA_IfcFurnitureType_HAS_PredefinedType +#define SCHEMA_IfcFurnitureType_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcGeographicElement +#define SCHEMA_IfcGeographicElement_HAS_PredefinedType +#define SCHEMA_IfcGeographicElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcGeographicElementType +#define SCHEMA_IfcGeographicElementType_HAS_PredefinedType +#define SCHEMA_HAS_IfcGeometricCurveSet +#define SCHEMA_HAS_IfcGeometricRepresentationContext +#define SCHEMA_IfcGeometricRepresentationContext_HAS_CoordinateSpaceDimension +#define SCHEMA_IfcGeometricRepresentationContext_HAS_Precision +#define SCHEMA_IfcGeometricRepresentationContext_Precision_IS_OPTIONAL +#define SCHEMA_IfcGeometricRepresentationContext_HAS_WorldCoordinateSystem +#define SCHEMA_IfcGeometricRepresentationContext_HAS_TrueNorth +#define SCHEMA_IfcGeometricRepresentationContext_TrueNorth_IS_OPTIONAL +#define SCHEMA_HAS_IfcGeometricRepresentationItem +#define SCHEMA_HAS_IfcGeometricRepresentationSubContext +#define SCHEMA_IfcGeometricRepresentationSubContext_HAS_ParentContext +#define SCHEMA_IfcGeometricRepresentationSubContext_HAS_TargetScale +#define SCHEMA_IfcGeometricRepresentationSubContext_TargetScale_IS_OPTIONAL +#define SCHEMA_IfcGeometricRepresentationSubContext_HAS_TargetView +#define SCHEMA_IfcGeometricRepresentationSubContext_HAS_UserDefinedTargetView +#define SCHEMA_IfcGeometricRepresentationSubContext_UserDefinedTargetView_IS_OPTIONAL +#define SCHEMA_HAS_IfcGeometricSet +#define SCHEMA_IfcGeometricSet_HAS_Elements +#define SCHEMA_HAS_IfcGrid +#define SCHEMA_IfcGrid_HAS_UAxes +#define SCHEMA_IfcGrid_HAS_VAxes +#define SCHEMA_IfcGrid_HAS_WAxes +#define SCHEMA_IfcGrid_WAxes_IS_OPTIONAL +#define SCHEMA_IfcGrid_HAS_PredefinedType +#define SCHEMA_IfcGrid_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcGridAxis +#define SCHEMA_IfcGridAxis_HAS_AxisTag +#define SCHEMA_IfcGridAxis_AxisTag_IS_OPTIONAL +#define SCHEMA_IfcGridAxis_HAS_AxisCurve +#define SCHEMA_IfcGridAxis_HAS_SameSense +#define SCHEMA_HAS_IfcGridPlacement +#define SCHEMA_IfcGridPlacement_HAS_PlacementLocation +#define SCHEMA_IfcGridPlacement_HAS_PlacementRefDirection +#define SCHEMA_IfcGridPlacement_PlacementRefDirection_IS_OPTIONAL +#define SCHEMA_HAS_IfcGroup +#define SCHEMA_HAS_IfcHalfSpaceSolid +#define SCHEMA_IfcHalfSpaceSolid_HAS_BaseSurface +#define SCHEMA_IfcHalfSpaceSolid_HAS_AgreementFlag +#define SCHEMA_HAS_IfcHeatExchanger +#define SCHEMA_IfcHeatExchanger_HAS_PredefinedType +#define SCHEMA_IfcHeatExchanger_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcHeatExchangerType +#define SCHEMA_IfcHeatExchangerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcHumidifier +#define SCHEMA_IfcHumidifier_HAS_PredefinedType +#define SCHEMA_IfcHumidifier_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcHumidifierType +#define SCHEMA_IfcHumidifierType_HAS_PredefinedType +#define SCHEMA_HAS_IfcIShapeProfileDef +#define SCHEMA_IfcIShapeProfileDef_HAS_OverallWidth +#define SCHEMA_IfcIShapeProfileDef_HAS_OverallDepth +#define SCHEMA_IfcIShapeProfileDef_HAS_WebThickness +#define SCHEMA_IfcIShapeProfileDef_HAS_FlangeThickness +#define SCHEMA_IfcIShapeProfileDef_HAS_FilletRadius +#define SCHEMA_IfcIShapeProfileDef_FilletRadius_IS_OPTIONAL +#define SCHEMA_IfcIShapeProfileDef_HAS_FlangeEdgeRadius +#define SCHEMA_IfcIShapeProfileDef_FlangeEdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcIShapeProfileDef_HAS_FlangeSlope +#define SCHEMA_IfcIShapeProfileDef_FlangeSlope_IS_OPTIONAL +#define SCHEMA_HAS_IfcImageTexture +#define SCHEMA_IfcImageTexture_HAS_URLReference +#define SCHEMA_HAS_IfcIndexedColourMap +#define SCHEMA_IfcIndexedColourMap_HAS_MappedTo +#define SCHEMA_IfcIndexedColourMap_HAS_Opacity +#define SCHEMA_IfcIndexedColourMap_Opacity_IS_OPTIONAL +#define SCHEMA_IfcIndexedColourMap_HAS_Colours +#define SCHEMA_IfcIndexedColourMap_HAS_ColourIndex +#define SCHEMA_HAS_IfcIndexedPolyCurve +#define SCHEMA_IfcIndexedPolyCurve_HAS_Points +#define SCHEMA_IfcIndexedPolyCurve_HAS_Segments +#define SCHEMA_IfcIndexedPolyCurve_Segments_IS_OPTIONAL +#define SCHEMA_IfcIndexedPolyCurve_HAS_SelfIntersect +#define SCHEMA_IfcIndexedPolyCurve_SelfIntersect_IS_OPTIONAL +#define SCHEMA_HAS_IfcIndexedPolygonalFace +#define SCHEMA_IfcIndexedPolygonalFace_HAS_CoordIndex +#define SCHEMA_HAS_IfcIndexedPolygonalFaceWithVoids +#define SCHEMA_IfcIndexedPolygonalFaceWithVoids_HAS_InnerCoordIndices +#define SCHEMA_HAS_IfcIndexedTextureMap +#define SCHEMA_IfcIndexedTextureMap_HAS_MappedTo +#define SCHEMA_IfcIndexedTextureMap_HAS_TexCoords +#define SCHEMA_HAS_IfcIndexedTriangleTextureMap +#define SCHEMA_IfcIndexedTriangleTextureMap_HAS_TexCoordIndex +#define SCHEMA_IfcIndexedTriangleTextureMap_TexCoordIndex_IS_OPTIONAL +#define SCHEMA_HAS_IfcInterceptor +#define SCHEMA_IfcInterceptor_HAS_PredefinedType +#define SCHEMA_IfcInterceptor_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcInterceptorType +#define SCHEMA_IfcInterceptorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcIntersectionCurve +#define SCHEMA_HAS_IfcInventory +#define SCHEMA_IfcInventory_HAS_PredefinedType +#define SCHEMA_IfcInventory_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcInventory_HAS_Jurisdiction +#define SCHEMA_IfcInventory_Jurisdiction_IS_OPTIONAL +#define SCHEMA_IfcInventory_HAS_ResponsiblePersons +#define SCHEMA_IfcInventory_ResponsiblePersons_IS_OPTIONAL +#define SCHEMA_IfcInventory_HAS_LastUpdateDate +#define SCHEMA_IfcInventory_LastUpdateDate_IS_OPTIONAL +#define SCHEMA_IfcInventory_HAS_CurrentValue +#define SCHEMA_IfcInventory_CurrentValue_IS_OPTIONAL +#define SCHEMA_IfcInventory_HAS_OriginalValue +#define SCHEMA_IfcInventory_OriginalValue_IS_OPTIONAL +#define SCHEMA_HAS_IfcIrregularTimeSeries +#define SCHEMA_IfcIrregularTimeSeries_HAS_Values +#define SCHEMA_HAS_IfcIrregularTimeSeriesValue +#define SCHEMA_IfcIrregularTimeSeriesValue_HAS_TimeStamp +#define SCHEMA_IfcIrregularTimeSeriesValue_HAS_ListValues +#define SCHEMA_HAS_IfcJunctionBox +#define SCHEMA_IfcJunctionBox_HAS_PredefinedType +#define SCHEMA_IfcJunctionBox_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcJunctionBoxType +#define SCHEMA_IfcJunctionBoxType_HAS_PredefinedType +#define SCHEMA_HAS_IfcLShapeProfileDef +#define SCHEMA_IfcLShapeProfileDef_HAS_Depth +#define SCHEMA_IfcLShapeProfileDef_HAS_Width +#define SCHEMA_IfcLShapeProfileDef_Width_IS_OPTIONAL +#define SCHEMA_IfcLShapeProfileDef_HAS_Thickness +#define SCHEMA_IfcLShapeProfileDef_HAS_FilletRadius +#define SCHEMA_IfcLShapeProfileDef_FilletRadius_IS_OPTIONAL +#define SCHEMA_IfcLShapeProfileDef_HAS_EdgeRadius +#define SCHEMA_IfcLShapeProfileDef_EdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcLShapeProfileDef_HAS_LegSlope +#define SCHEMA_IfcLShapeProfileDef_LegSlope_IS_OPTIONAL +#define SCHEMA_HAS_IfcLaborResource +#define SCHEMA_IfcLaborResource_HAS_PredefinedType +#define SCHEMA_IfcLaborResource_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcLaborResourceType +#define SCHEMA_IfcLaborResourceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcLagTime +#define SCHEMA_IfcLagTime_HAS_LagValue +#define SCHEMA_IfcLagTime_HAS_DurationType +#define SCHEMA_HAS_IfcLamp +#define SCHEMA_IfcLamp_HAS_PredefinedType +#define SCHEMA_IfcLamp_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcLampType +#define SCHEMA_IfcLampType_HAS_PredefinedType +#define SCHEMA_HAS_IfcLibraryInformation +#define SCHEMA_IfcLibraryInformation_HAS_Name +#define SCHEMA_IfcLibraryInformation_HAS_Version +#define SCHEMA_IfcLibraryInformation_Version_IS_OPTIONAL +#define SCHEMA_IfcLibraryInformation_HAS_Publisher +#define SCHEMA_IfcLibraryInformation_Publisher_IS_OPTIONAL +#define SCHEMA_IfcLibraryInformation_HAS_VersionDate +#define SCHEMA_IfcLibraryInformation_VersionDate_IS_OPTIONAL +#define SCHEMA_IfcLibraryInformation_HAS_Location +#define SCHEMA_IfcLibraryInformation_Location_IS_OPTIONAL +#define SCHEMA_IfcLibraryInformation_HAS_Description +#define SCHEMA_IfcLibraryInformation_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcLibraryReference +#define SCHEMA_IfcLibraryReference_HAS_Description +#define SCHEMA_IfcLibraryReference_Description_IS_OPTIONAL +#define SCHEMA_IfcLibraryReference_HAS_Language +#define SCHEMA_IfcLibraryReference_Language_IS_OPTIONAL +#define SCHEMA_IfcLibraryReference_HAS_ReferencedLibrary +#define SCHEMA_IfcLibraryReference_ReferencedLibrary_IS_OPTIONAL +#define SCHEMA_HAS_IfcLightDistributionData +#define SCHEMA_IfcLightDistributionData_HAS_MainPlaneAngle +#define SCHEMA_IfcLightDistributionData_HAS_SecondaryPlaneAngle +#define SCHEMA_IfcLightDistributionData_HAS_LuminousIntensity +#define SCHEMA_HAS_IfcLightFixture +#define SCHEMA_IfcLightFixture_HAS_PredefinedType +#define SCHEMA_IfcLightFixture_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcLightFixtureType +#define SCHEMA_IfcLightFixtureType_HAS_PredefinedType +#define SCHEMA_HAS_IfcLightIntensityDistribution +#define SCHEMA_IfcLightIntensityDistribution_HAS_LightDistributionCurve +#define SCHEMA_IfcLightIntensityDistribution_HAS_DistributionData +#define SCHEMA_HAS_IfcLightSource +#define SCHEMA_IfcLightSource_HAS_Name +#define SCHEMA_IfcLightSource_Name_IS_OPTIONAL +#define SCHEMA_IfcLightSource_HAS_LightColour +#define SCHEMA_IfcLightSource_HAS_AmbientIntensity +#define SCHEMA_IfcLightSource_AmbientIntensity_IS_OPTIONAL +#define SCHEMA_IfcLightSource_HAS_Intensity +#define SCHEMA_IfcLightSource_Intensity_IS_OPTIONAL +#define SCHEMA_HAS_IfcLightSourceAmbient +#define SCHEMA_HAS_IfcLightSourceDirectional +#define SCHEMA_IfcLightSourceDirectional_HAS_Orientation +#define SCHEMA_HAS_IfcLightSourceGoniometric +#define SCHEMA_IfcLightSourceGoniometric_HAS_Position +#define SCHEMA_IfcLightSourceGoniometric_HAS_ColourAppearance +#define SCHEMA_IfcLightSourceGoniometric_ColourAppearance_IS_OPTIONAL +#define SCHEMA_IfcLightSourceGoniometric_HAS_ColourTemperature +#define SCHEMA_IfcLightSourceGoniometric_HAS_LuminousFlux +#define SCHEMA_IfcLightSourceGoniometric_HAS_LightEmissionSource +#define SCHEMA_IfcLightSourceGoniometric_HAS_LightDistributionDataSource +#define SCHEMA_HAS_IfcLightSourcePositional +#define SCHEMA_IfcLightSourcePositional_HAS_Position +#define SCHEMA_IfcLightSourcePositional_HAS_Radius +#define SCHEMA_IfcLightSourcePositional_HAS_ConstantAttenuation +#define SCHEMA_IfcLightSourcePositional_HAS_DistanceAttenuation +#define SCHEMA_IfcLightSourcePositional_HAS_QuadricAttenuation +#define SCHEMA_HAS_IfcLightSourceSpot +#define SCHEMA_IfcLightSourceSpot_HAS_Orientation +#define SCHEMA_IfcLightSourceSpot_HAS_ConcentrationExponent +#define SCHEMA_IfcLightSourceSpot_ConcentrationExponent_IS_OPTIONAL +#define SCHEMA_IfcLightSourceSpot_HAS_SpreadAngle +#define SCHEMA_IfcLightSourceSpot_HAS_BeamWidthAngle +#define SCHEMA_HAS_IfcLine +#define SCHEMA_IfcLine_HAS_Pnt +#define SCHEMA_IfcLine_HAS_Dir +#define SCHEMA_HAS_IfcLineSegment2D +#define SCHEMA_HAS_IfcLinearPlacement +#define SCHEMA_IfcLinearPlacement_HAS_PlacementRelTo +#define SCHEMA_IfcLinearPlacement_HAS_Distance +#define SCHEMA_IfcLinearPlacement_HAS_Orientation +#define SCHEMA_IfcLinearPlacement_Orientation_IS_OPTIONAL +#define SCHEMA_IfcLinearPlacement_HAS_CartesianPosition +#define SCHEMA_IfcLinearPlacement_CartesianPosition_IS_OPTIONAL +#define SCHEMA_HAS_IfcLinearPositioningElement +#define SCHEMA_IfcLinearPositioningElement_HAS_Axis +#define SCHEMA_HAS_IfcLocalPlacement +#define SCHEMA_IfcLocalPlacement_HAS_PlacementRelTo +#define SCHEMA_IfcLocalPlacement_PlacementRelTo_IS_OPTIONAL +#define SCHEMA_IfcLocalPlacement_HAS_RelativePlacement +#define SCHEMA_HAS_IfcLoop +#define SCHEMA_HAS_IfcManifoldSolidBrep +#define SCHEMA_IfcManifoldSolidBrep_HAS_Outer +#define SCHEMA_HAS_IfcMapConversion +#define SCHEMA_IfcMapConversion_HAS_Eastings +#define SCHEMA_IfcMapConversion_HAS_Northings +#define SCHEMA_IfcMapConversion_HAS_OrthogonalHeight +#define SCHEMA_IfcMapConversion_HAS_XAxisAbscissa +#define SCHEMA_IfcMapConversion_XAxisAbscissa_IS_OPTIONAL +#define SCHEMA_IfcMapConversion_HAS_XAxisOrdinate +#define SCHEMA_IfcMapConversion_XAxisOrdinate_IS_OPTIONAL +#define SCHEMA_IfcMapConversion_HAS_Scale +#define SCHEMA_IfcMapConversion_Scale_IS_OPTIONAL +#define SCHEMA_HAS_IfcMappedItem +#define SCHEMA_IfcMappedItem_HAS_MappingSource +#define SCHEMA_IfcMappedItem_HAS_MappingTarget +#define SCHEMA_HAS_IfcMaterial +#define SCHEMA_IfcMaterial_HAS_Name +#define SCHEMA_IfcMaterial_HAS_Description +#define SCHEMA_IfcMaterial_Description_IS_OPTIONAL +#define SCHEMA_IfcMaterial_HAS_Category +#define SCHEMA_IfcMaterial_Category_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialClassificationRelationship +#define SCHEMA_IfcMaterialClassificationRelationship_HAS_MaterialClassifications +#define SCHEMA_IfcMaterialClassificationRelationship_HAS_ClassifiedMaterial +#define SCHEMA_HAS_IfcMaterialConstituent +#define SCHEMA_IfcMaterialConstituent_HAS_Name +#define SCHEMA_IfcMaterialConstituent_Name_IS_OPTIONAL +#define SCHEMA_IfcMaterialConstituent_HAS_Description +#define SCHEMA_IfcMaterialConstituent_Description_IS_OPTIONAL +#define SCHEMA_IfcMaterialConstituent_HAS_Material +#define SCHEMA_IfcMaterialConstituent_HAS_Fraction +#define SCHEMA_IfcMaterialConstituent_Fraction_IS_OPTIONAL +#define SCHEMA_IfcMaterialConstituent_HAS_Category +#define SCHEMA_IfcMaterialConstituent_Category_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialConstituentSet +#define SCHEMA_IfcMaterialConstituentSet_HAS_Name +#define SCHEMA_IfcMaterialConstituentSet_Name_IS_OPTIONAL +#define SCHEMA_IfcMaterialConstituentSet_HAS_Description +#define SCHEMA_IfcMaterialConstituentSet_Description_IS_OPTIONAL +#define SCHEMA_IfcMaterialConstituentSet_HAS_MaterialConstituents +#define SCHEMA_IfcMaterialConstituentSet_MaterialConstituents_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialDefinition +#define SCHEMA_HAS_IfcMaterialDefinitionRepresentation +#define SCHEMA_IfcMaterialDefinitionRepresentation_HAS_RepresentedMaterial +#define SCHEMA_HAS_IfcMaterialLayer +#define SCHEMA_IfcMaterialLayer_HAS_Material +#define SCHEMA_IfcMaterialLayer_Material_IS_OPTIONAL +#define SCHEMA_IfcMaterialLayer_HAS_LayerThickness +#define SCHEMA_IfcMaterialLayer_HAS_IsVentilated +#define SCHEMA_IfcMaterialLayer_IsVentilated_IS_OPTIONAL +#define SCHEMA_IfcMaterialLayer_HAS_Name +#define SCHEMA_IfcMaterialLayer_Name_IS_OPTIONAL +#define SCHEMA_IfcMaterialLayer_HAS_Description +#define SCHEMA_IfcMaterialLayer_Description_IS_OPTIONAL +#define SCHEMA_IfcMaterialLayer_HAS_Category +#define SCHEMA_IfcMaterialLayer_Category_IS_OPTIONAL +#define SCHEMA_IfcMaterialLayer_HAS_Priority +#define SCHEMA_IfcMaterialLayer_Priority_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialLayerSet +#define SCHEMA_IfcMaterialLayerSet_HAS_MaterialLayers +#define SCHEMA_IfcMaterialLayerSet_HAS_LayerSetName +#define SCHEMA_IfcMaterialLayerSet_LayerSetName_IS_OPTIONAL +#define SCHEMA_IfcMaterialLayerSet_HAS_Description +#define SCHEMA_IfcMaterialLayerSet_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialLayerSetUsage +#define SCHEMA_IfcMaterialLayerSetUsage_HAS_ForLayerSet +#define SCHEMA_IfcMaterialLayerSetUsage_HAS_LayerSetDirection +#define SCHEMA_IfcMaterialLayerSetUsage_HAS_DirectionSense +#define SCHEMA_IfcMaterialLayerSetUsage_HAS_OffsetFromReferenceLine +#define SCHEMA_IfcMaterialLayerSetUsage_HAS_ReferenceExtent +#define SCHEMA_IfcMaterialLayerSetUsage_ReferenceExtent_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialLayerWithOffsets +#define SCHEMA_IfcMaterialLayerWithOffsets_HAS_OffsetDirection +#define SCHEMA_IfcMaterialLayerWithOffsets_HAS_OffsetValues +#define SCHEMA_HAS_IfcMaterialList +#define SCHEMA_IfcMaterialList_HAS_Materials +#define SCHEMA_HAS_IfcMaterialProfile +#define SCHEMA_IfcMaterialProfile_HAS_Name +#define SCHEMA_IfcMaterialProfile_Name_IS_OPTIONAL +#define SCHEMA_IfcMaterialProfile_HAS_Description +#define SCHEMA_IfcMaterialProfile_Description_IS_OPTIONAL +#define SCHEMA_IfcMaterialProfile_HAS_Material +#define SCHEMA_IfcMaterialProfile_Material_IS_OPTIONAL +#define SCHEMA_IfcMaterialProfile_HAS_Profile +#define SCHEMA_IfcMaterialProfile_HAS_Priority +#define SCHEMA_IfcMaterialProfile_Priority_IS_OPTIONAL +#define SCHEMA_IfcMaterialProfile_HAS_Category +#define SCHEMA_IfcMaterialProfile_Category_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialProfileSet +#define SCHEMA_IfcMaterialProfileSet_HAS_Name +#define SCHEMA_IfcMaterialProfileSet_Name_IS_OPTIONAL +#define SCHEMA_IfcMaterialProfileSet_HAS_Description +#define SCHEMA_IfcMaterialProfileSet_Description_IS_OPTIONAL +#define SCHEMA_IfcMaterialProfileSet_HAS_MaterialProfiles +#define SCHEMA_IfcMaterialProfileSet_HAS_CompositeProfile +#define SCHEMA_IfcMaterialProfileSet_CompositeProfile_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialProfileSetUsage +#define SCHEMA_IfcMaterialProfileSetUsage_HAS_ForProfileSet +#define SCHEMA_IfcMaterialProfileSetUsage_HAS_CardinalPoint +#define SCHEMA_IfcMaterialProfileSetUsage_CardinalPoint_IS_OPTIONAL +#define SCHEMA_IfcMaterialProfileSetUsage_HAS_ReferenceExtent +#define SCHEMA_IfcMaterialProfileSetUsage_ReferenceExtent_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialProfileSetUsageTapering +#define SCHEMA_IfcMaterialProfileSetUsageTapering_HAS_ForProfileEndSet +#define SCHEMA_IfcMaterialProfileSetUsageTapering_HAS_CardinalEndPoint +#define SCHEMA_IfcMaterialProfileSetUsageTapering_CardinalEndPoint_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialProfileWithOffsets +#define SCHEMA_IfcMaterialProfileWithOffsets_HAS_OffsetValues +#define SCHEMA_HAS_IfcMaterialProperties +#define SCHEMA_IfcMaterialProperties_HAS_Material +#define SCHEMA_HAS_IfcMaterialRelationship +#define SCHEMA_IfcMaterialRelationship_HAS_RelatingMaterial +#define SCHEMA_IfcMaterialRelationship_HAS_RelatedMaterials +#define SCHEMA_IfcMaterialRelationship_HAS_Expression +#define SCHEMA_IfcMaterialRelationship_Expression_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialUsageDefinition +#define SCHEMA_HAS_IfcMeasureWithUnit +#define SCHEMA_IfcMeasureWithUnit_HAS_ValueComponent +#define SCHEMA_IfcMeasureWithUnit_HAS_UnitComponent +#define SCHEMA_HAS_IfcMechanicalFastener +#define SCHEMA_IfcMechanicalFastener_HAS_NominalDiameter +#define SCHEMA_IfcMechanicalFastener_NominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcMechanicalFastener_HAS_NominalLength +#define SCHEMA_IfcMechanicalFastener_NominalLength_IS_OPTIONAL +#define SCHEMA_IfcMechanicalFastener_HAS_PredefinedType +#define SCHEMA_IfcMechanicalFastener_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcMechanicalFastenerType +#define SCHEMA_IfcMechanicalFastenerType_HAS_PredefinedType +#define SCHEMA_IfcMechanicalFastenerType_HAS_NominalDiameter +#define SCHEMA_IfcMechanicalFastenerType_NominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcMechanicalFastenerType_HAS_NominalLength +#define SCHEMA_IfcMechanicalFastenerType_NominalLength_IS_OPTIONAL +#define SCHEMA_HAS_IfcMedicalDevice +#define SCHEMA_IfcMedicalDevice_HAS_PredefinedType +#define SCHEMA_IfcMedicalDevice_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcMedicalDeviceType +#define SCHEMA_IfcMedicalDeviceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcMember +#define SCHEMA_IfcMember_HAS_PredefinedType +#define SCHEMA_IfcMember_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcMemberStandardCase +#define SCHEMA_HAS_IfcMemberType +#define SCHEMA_IfcMemberType_HAS_PredefinedType +#define SCHEMA_HAS_IfcMetric +#define SCHEMA_IfcMetric_HAS_Benchmark +#define SCHEMA_IfcMetric_HAS_ValueSource +#define SCHEMA_IfcMetric_ValueSource_IS_OPTIONAL +#define SCHEMA_IfcMetric_HAS_DataValue +#define SCHEMA_IfcMetric_DataValue_IS_OPTIONAL +#define SCHEMA_IfcMetric_HAS_ReferencePath +#define SCHEMA_IfcMetric_ReferencePath_IS_OPTIONAL +#define SCHEMA_HAS_IfcMirroredProfileDef +#define SCHEMA_HAS_IfcMonetaryUnit +#define SCHEMA_IfcMonetaryUnit_HAS_Currency +#define SCHEMA_HAS_IfcMotorConnection +#define SCHEMA_IfcMotorConnection_HAS_PredefinedType +#define SCHEMA_IfcMotorConnection_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcMotorConnectionType +#define SCHEMA_IfcMotorConnectionType_HAS_PredefinedType +#define SCHEMA_HAS_IfcNamedUnit +#define SCHEMA_IfcNamedUnit_HAS_Dimensions +#define SCHEMA_IfcNamedUnit_HAS_UnitType +#define SCHEMA_HAS_IfcObject +#define SCHEMA_IfcObject_HAS_ObjectType +#define SCHEMA_IfcObject_ObjectType_IS_OPTIONAL +#define SCHEMA_HAS_IfcObjectDefinition +#define SCHEMA_HAS_IfcObjectPlacement +#define SCHEMA_HAS_IfcObjective +#define SCHEMA_IfcObjective_HAS_BenchmarkValues +#define SCHEMA_IfcObjective_BenchmarkValues_IS_OPTIONAL +#define SCHEMA_IfcObjective_HAS_LogicalAggregator +#define SCHEMA_IfcObjective_LogicalAggregator_IS_OPTIONAL +#define SCHEMA_IfcObjective_HAS_ObjectiveQualifier +#define SCHEMA_IfcObjective_HAS_UserDefinedQualifier +#define SCHEMA_IfcObjective_UserDefinedQualifier_IS_OPTIONAL +#define SCHEMA_HAS_IfcOccupant +#define SCHEMA_IfcOccupant_HAS_PredefinedType +#define SCHEMA_IfcOccupant_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcOffsetCurve +#define SCHEMA_IfcOffsetCurve_HAS_BasisCurve +#define SCHEMA_HAS_IfcOffsetCurve2D +#define SCHEMA_IfcOffsetCurve2D_HAS_Distance +#define SCHEMA_IfcOffsetCurve2D_HAS_SelfIntersect +#define SCHEMA_HAS_IfcOffsetCurve3D +#define SCHEMA_IfcOffsetCurve3D_HAS_Distance +#define SCHEMA_IfcOffsetCurve3D_HAS_SelfIntersect +#define SCHEMA_IfcOffsetCurve3D_HAS_RefDirection +#define SCHEMA_HAS_IfcOffsetCurveByDistances +#define SCHEMA_IfcOffsetCurveByDistances_HAS_OffsetValues +#define SCHEMA_IfcOffsetCurveByDistances_HAS_Tag +#define SCHEMA_IfcOffsetCurveByDistances_Tag_IS_OPTIONAL +#define SCHEMA_HAS_IfcOpenShell +#define SCHEMA_HAS_IfcOpeningElement +#define SCHEMA_IfcOpeningElement_HAS_PredefinedType +#define SCHEMA_IfcOpeningElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcOpeningStandardCase +#define SCHEMA_HAS_IfcOrganization +#define SCHEMA_IfcOrganization_HAS_Identification +#define SCHEMA_IfcOrganization_Identification_IS_OPTIONAL +#define SCHEMA_IfcOrganization_HAS_Name +#define SCHEMA_IfcOrganization_HAS_Description +#define SCHEMA_IfcOrganization_Description_IS_OPTIONAL +#define SCHEMA_IfcOrganization_HAS_Roles +#define SCHEMA_IfcOrganization_Roles_IS_OPTIONAL +#define SCHEMA_IfcOrganization_HAS_Addresses +#define SCHEMA_IfcOrganization_Addresses_IS_OPTIONAL +#define SCHEMA_HAS_IfcOrganizationRelationship +#define SCHEMA_IfcOrganizationRelationship_HAS_RelatingOrganization +#define SCHEMA_IfcOrganizationRelationship_HAS_RelatedOrganizations +#define SCHEMA_HAS_IfcOrientationExpression +#define SCHEMA_IfcOrientationExpression_HAS_LateralAxisDirection +#define SCHEMA_IfcOrientationExpression_HAS_VerticalAxisDirection +#define SCHEMA_HAS_IfcOrientedEdge +#define SCHEMA_IfcOrientedEdge_HAS_EdgeElement +#define SCHEMA_IfcOrientedEdge_HAS_Orientation +#define SCHEMA_HAS_IfcOuterBoundaryCurve +#define SCHEMA_HAS_IfcOutlet +#define SCHEMA_IfcOutlet_HAS_PredefinedType +#define SCHEMA_IfcOutlet_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcOutletType +#define SCHEMA_IfcOutletType_HAS_PredefinedType +#define SCHEMA_HAS_IfcOwnerHistory +#define SCHEMA_IfcOwnerHistory_HAS_OwningUser +#define SCHEMA_IfcOwnerHistory_HAS_OwningApplication +#define SCHEMA_IfcOwnerHistory_HAS_State +#define SCHEMA_IfcOwnerHistory_State_IS_OPTIONAL +#define SCHEMA_IfcOwnerHistory_HAS_ChangeAction +#define SCHEMA_IfcOwnerHistory_ChangeAction_IS_OPTIONAL +#define SCHEMA_IfcOwnerHistory_HAS_LastModifiedDate +#define SCHEMA_IfcOwnerHistory_LastModifiedDate_IS_OPTIONAL +#define SCHEMA_IfcOwnerHistory_HAS_LastModifyingUser +#define SCHEMA_IfcOwnerHistory_LastModifyingUser_IS_OPTIONAL +#define SCHEMA_IfcOwnerHistory_HAS_LastModifyingApplication +#define SCHEMA_IfcOwnerHistory_LastModifyingApplication_IS_OPTIONAL +#define SCHEMA_IfcOwnerHistory_HAS_CreationDate +#define SCHEMA_HAS_IfcParameterizedProfileDef +#define SCHEMA_IfcParameterizedProfileDef_HAS_Position +#define SCHEMA_IfcParameterizedProfileDef_Position_IS_OPTIONAL +#define SCHEMA_HAS_IfcPath +#define SCHEMA_IfcPath_HAS_EdgeList +#define SCHEMA_HAS_IfcPcurve +#define SCHEMA_IfcPcurve_HAS_BasisSurface +#define SCHEMA_IfcPcurve_HAS_ReferenceCurve +#define SCHEMA_HAS_IfcPerformanceHistory +#define SCHEMA_IfcPerformanceHistory_HAS_LifeCyclePhase +#define SCHEMA_IfcPerformanceHistory_HAS_PredefinedType +#define SCHEMA_IfcPerformanceHistory_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcPermeableCoveringProperties +#define SCHEMA_IfcPermeableCoveringProperties_HAS_OperationType +#define SCHEMA_IfcPermeableCoveringProperties_HAS_PanelPosition +#define SCHEMA_IfcPermeableCoveringProperties_HAS_FrameDepth +#define SCHEMA_IfcPermeableCoveringProperties_FrameDepth_IS_OPTIONAL +#define SCHEMA_IfcPermeableCoveringProperties_HAS_FrameThickness +#define SCHEMA_IfcPermeableCoveringProperties_FrameThickness_IS_OPTIONAL +#define SCHEMA_IfcPermeableCoveringProperties_HAS_ShapeAspectStyle +#define SCHEMA_IfcPermeableCoveringProperties_ShapeAspectStyle_IS_OPTIONAL +#define SCHEMA_HAS_IfcPermit +#define SCHEMA_IfcPermit_HAS_PredefinedType +#define SCHEMA_IfcPermit_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcPermit_HAS_Status +#define SCHEMA_IfcPermit_Status_IS_OPTIONAL +#define SCHEMA_IfcPermit_HAS_LongDescription +#define SCHEMA_IfcPermit_LongDescription_IS_OPTIONAL +#define SCHEMA_HAS_IfcPerson +#define SCHEMA_IfcPerson_HAS_Identification +#define SCHEMA_IfcPerson_Identification_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_FamilyName +#define SCHEMA_IfcPerson_FamilyName_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_GivenName +#define SCHEMA_IfcPerson_GivenName_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_MiddleNames +#define SCHEMA_IfcPerson_MiddleNames_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_PrefixTitles +#define SCHEMA_IfcPerson_PrefixTitles_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_SuffixTitles +#define SCHEMA_IfcPerson_SuffixTitles_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_Roles +#define SCHEMA_IfcPerson_Roles_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_Addresses +#define SCHEMA_IfcPerson_Addresses_IS_OPTIONAL +#define SCHEMA_HAS_IfcPersonAndOrganization +#define SCHEMA_IfcPersonAndOrganization_HAS_ThePerson +#define SCHEMA_IfcPersonAndOrganization_HAS_TheOrganization +#define SCHEMA_IfcPersonAndOrganization_HAS_Roles +#define SCHEMA_IfcPersonAndOrganization_Roles_IS_OPTIONAL +#define SCHEMA_HAS_IfcPhysicalComplexQuantity +#define SCHEMA_IfcPhysicalComplexQuantity_HAS_HasQuantities +#define SCHEMA_IfcPhysicalComplexQuantity_HAS_Discrimination +#define SCHEMA_IfcPhysicalComplexQuantity_HAS_Quality +#define SCHEMA_IfcPhysicalComplexQuantity_Quality_IS_OPTIONAL +#define SCHEMA_IfcPhysicalComplexQuantity_HAS_Usage +#define SCHEMA_IfcPhysicalComplexQuantity_Usage_IS_OPTIONAL +#define SCHEMA_HAS_IfcPhysicalQuantity +#define SCHEMA_IfcPhysicalQuantity_HAS_Name +#define SCHEMA_IfcPhysicalQuantity_HAS_Description +#define SCHEMA_IfcPhysicalQuantity_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcPhysicalSimpleQuantity +#define SCHEMA_IfcPhysicalSimpleQuantity_HAS_Unit +#define SCHEMA_IfcPhysicalSimpleQuantity_Unit_IS_OPTIONAL +#define SCHEMA_HAS_IfcPile +#define SCHEMA_IfcPile_HAS_PredefinedType +#define SCHEMA_IfcPile_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcPile_HAS_ConstructionType +#define SCHEMA_IfcPile_ConstructionType_IS_OPTIONAL +#define SCHEMA_HAS_IfcPileType +#define SCHEMA_IfcPileType_HAS_PredefinedType +#define SCHEMA_HAS_IfcPipeFitting +#define SCHEMA_IfcPipeFitting_HAS_PredefinedType +#define SCHEMA_IfcPipeFitting_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcPipeFittingType +#define SCHEMA_IfcPipeFittingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcPipeSegment +#define SCHEMA_IfcPipeSegment_HAS_PredefinedType +#define SCHEMA_IfcPipeSegment_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcPipeSegmentType +#define SCHEMA_IfcPipeSegmentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcPixelTexture +#define SCHEMA_IfcPixelTexture_HAS_Width +#define SCHEMA_IfcPixelTexture_HAS_Height +#define SCHEMA_IfcPixelTexture_HAS_ColourComponents +#define SCHEMA_IfcPixelTexture_HAS_Pixel +#define SCHEMA_HAS_IfcPlacement +#define SCHEMA_IfcPlacement_HAS_Location +#define SCHEMA_HAS_IfcPlanarBox +#define SCHEMA_IfcPlanarBox_HAS_Placement +#define SCHEMA_HAS_IfcPlanarExtent +#define SCHEMA_IfcPlanarExtent_HAS_SizeInX +#define SCHEMA_IfcPlanarExtent_HAS_SizeInY +#define SCHEMA_HAS_IfcPlane +#define SCHEMA_HAS_IfcPlate +#define SCHEMA_IfcPlate_HAS_PredefinedType +#define SCHEMA_IfcPlate_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcPlateStandardCase +#define SCHEMA_HAS_IfcPlateType +#define SCHEMA_IfcPlateType_HAS_PredefinedType +#define SCHEMA_HAS_IfcPoint +#define SCHEMA_HAS_IfcPointOnCurve +#define SCHEMA_IfcPointOnCurve_HAS_BasisCurve +#define SCHEMA_IfcPointOnCurve_HAS_PointParameter +#define SCHEMA_HAS_IfcPointOnSurface +#define SCHEMA_IfcPointOnSurface_HAS_BasisSurface +#define SCHEMA_IfcPointOnSurface_HAS_PointParameterU +#define SCHEMA_IfcPointOnSurface_HAS_PointParameterV +#define SCHEMA_HAS_IfcPolyLoop +#define SCHEMA_IfcPolyLoop_HAS_Polygon +#define SCHEMA_HAS_IfcPolygonalBoundedHalfSpace +#define SCHEMA_IfcPolygonalBoundedHalfSpace_HAS_Position +#define SCHEMA_IfcPolygonalBoundedHalfSpace_HAS_PolygonalBoundary +#define SCHEMA_HAS_IfcPolygonalFaceSet +#define SCHEMA_IfcPolygonalFaceSet_HAS_Closed +#define SCHEMA_IfcPolygonalFaceSet_Closed_IS_OPTIONAL +#define SCHEMA_IfcPolygonalFaceSet_HAS_Faces +#define SCHEMA_IfcPolygonalFaceSet_HAS_PnIndex +#define SCHEMA_IfcPolygonalFaceSet_PnIndex_IS_OPTIONAL +#define SCHEMA_HAS_IfcPolyline +#define SCHEMA_IfcPolyline_HAS_Points +#define SCHEMA_HAS_IfcPort +#define SCHEMA_HAS_IfcPositioningElement +#define SCHEMA_HAS_IfcPostalAddress +#define SCHEMA_IfcPostalAddress_HAS_InternalLocation +#define SCHEMA_IfcPostalAddress_InternalLocation_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_AddressLines +#define SCHEMA_IfcPostalAddress_AddressLines_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_PostalBox +#define SCHEMA_IfcPostalAddress_PostalBox_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_Town +#define SCHEMA_IfcPostalAddress_Town_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_Region +#define SCHEMA_IfcPostalAddress_Region_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_PostalCode +#define SCHEMA_IfcPostalAddress_PostalCode_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_Country +#define SCHEMA_IfcPostalAddress_Country_IS_OPTIONAL +#define SCHEMA_HAS_IfcPreDefinedColour +#define SCHEMA_HAS_IfcPreDefinedCurveFont +#define SCHEMA_HAS_IfcPreDefinedItem +#define SCHEMA_IfcPreDefinedItem_HAS_Name +#define SCHEMA_HAS_IfcPreDefinedProperties +#define SCHEMA_HAS_IfcPreDefinedPropertySet +#define SCHEMA_HAS_IfcPreDefinedTextFont +#define SCHEMA_HAS_IfcPresentationItem +#define SCHEMA_HAS_IfcPresentationLayerAssignment +#define SCHEMA_IfcPresentationLayerAssignment_HAS_Name +#define SCHEMA_IfcPresentationLayerAssignment_HAS_Description +#define SCHEMA_IfcPresentationLayerAssignment_Description_IS_OPTIONAL +#define SCHEMA_IfcPresentationLayerAssignment_HAS_AssignedItems +#define SCHEMA_IfcPresentationLayerAssignment_HAS_Identifier +#define SCHEMA_IfcPresentationLayerAssignment_Identifier_IS_OPTIONAL +#define SCHEMA_HAS_IfcPresentationLayerWithStyle +#define SCHEMA_IfcPresentationLayerWithStyle_HAS_LayerOn +#define SCHEMA_IfcPresentationLayerWithStyle_HAS_LayerFrozen +#define SCHEMA_IfcPresentationLayerWithStyle_HAS_LayerBlocked +#define SCHEMA_IfcPresentationLayerWithStyle_HAS_LayerStyles +#define SCHEMA_HAS_IfcPresentationStyle +#define SCHEMA_IfcPresentationStyle_HAS_Name +#define SCHEMA_IfcPresentationStyle_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcPresentationStyleAssignment +#define SCHEMA_IfcPresentationStyleAssignment_HAS_Styles +#define SCHEMA_HAS_IfcProcedure +#define SCHEMA_IfcProcedure_HAS_PredefinedType +#define SCHEMA_IfcProcedure_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcProcedureType +#define SCHEMA_IfcProcedureType_HAS_PredefinedType +#define SCHEMA_HAS_IfcProcess +#define SCHEMA_IfcProcess_HAS_Identification +#define SCHEMA_IfcProcess_Identification_IS_OPTIONAL +#define SCHEMA_IfcProcess_HAS_LongDescription +#define SCHEMA_IfcProcess_LongDescription_IS_OPTIONAL +#define SCHEMA_HAS_IfcProduct +#define SCHEMA_IfcProduct_HAS_ObjectPlacement +#define SCHEMA_IfcProduct_ObjectPlacement_IS_OPTIONAL +#define SCHEMA_IfcProduct_HAS_Representation +#define SCHEMA_IfcProduct_Representation_IS_OPTIONAL +#define SCHEMA_HAS_IfcProductDefinitionShape +#define SCHEMA_HAS_IfcProductRepresentation +#define SCHEMA_IfcProductRepresentation_HAS_Name +#define SCHEMA_IfcProductRepresentation_Name_IS_OPTIONAL +#define SCHEMA_IfcProductRepresentation_HAS_Description +#define SCHEMA_IfcProductRepresentation_Description_IS_OPTIONAL +#define SCHEMA_IfcProductRepresentation_HAS_Representations +#define SCHEMA_HAS_IfcProfileDef +#define SCHEMA_IfcProfileDef_HAS_ProfileType +#define SCHEMA_IfcProfileDef_HAS_ProfileName +#define SCHEMA_IfcProfileDef_ProfileName_IS_OPTIONAL +#define SCHEMA_HAS_IfcProfileProperties +#define SCHEMA_IfcProfileProperties_HAS_ProfileDefinition +#define SCHEMA_HAS_IfcProject +#define SCHEMA_HAS_IfcProjectLibrary +#define SCHEMA_HAS_IfcProjectOrder +#define SCHEMA_IfcProjectOrder_HAS_PredefinedType +#define SCHEMA_IfcProjectOrder_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcProjectOrder_HAS_Status +#define SCHEMA_IfcProjectOrder_Status_IS_OPTIONAL +#define SCHEMA_IfcProjectOrder_HAS_LongDescription +#define SCHEMA_IfcProjectOrder_LongDescription_IS_OPTIONAL +#define SCHEMA_HAS_IfcProjectedCRS +#define SCHEMA_IfcProjectedCRS_HAS_MapProjection +#define SCHEMA_IfcProjectedCRS_MapProjection_IS_OPTIONAL +#define SCHEMA_IfcProjectedCRS_HAS_MapZone +#define SCHEMA_IfcProjectedCRS_MapZone_IS_OPTIONAL +#define SCHEMA_IfcProjectedCRS_HAS_MapUnit +#define SCHEMA_IfcProjectedCRS_MapUnit_IS_OPTIONAL +#define SCHEMA_HAS_IfcProjectionElement +#define SCHEMA_IfcProjectionElement_HAS_PredefinedType +#define SCHEMA_IfcProjectionElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcProperty +#define SCHEMA_IfcProperty_HAS_Name +#define SCHEMA_IfcProperty_HAS_Description +#define SCHEMA_IfcProperty_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyAbstraction +#define SCHEMA_HAS_IfcPropertyBoundedValue +#define SCHEMA_IfcPropertyBoundedValue_HAS_UpperBoundValue +#define SCHEMA_IfcPropertyBoundedValue_UpperBoundValue_IS_OPTIONAL +#define SCHEMA_IfcPropertyBoundedValue_HAS_LowerBoundValue +#define SCHEMA_IfcPropertyBoundedValue_LowerBoundValue_IS_OPTIONAL +#define SCHEMA_IfcPropertyBoundedValue_HAS_Unit +#define SCHEMA_IfcPropertyBoundedValue_Unit_IS_OPTIONAL +#define SCHEMA_IfcPropertyBoundedValue_HAS_SetPointValue +#define SCHEMA_IfcPropertyBoundedValue_SetPointValue_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyDefinition +#define SCHEMA_HAS_IfcPropertyDependencyRelationship +#define SCHEMA_IfcPropertyDependencyRelationship_HAS_DependingProperty +#define SCHEMA_IfcPropertyDependencyRelationship_HAS_DependantProperty +#define SCHEMA_IfcPropertyDependencyRelationship_HAS_Expression +#define SCHEMA_IfcPropertyDependencyRelationship_Expression_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyEnumeratedValue +#define SCHEMA_IfcPropertyEnumeratedValue_HAS_EnumerationValues +#define SCHEMA_IfcPropertyEnumeratedValue_EnumerationValues_IS_OPTIONAL +#define SCHEMA_IfcPropertyEnumeratedValue_HAS_EnumerationReference +#define SCHEMA_IfcPropertyEnumeratedValue_EnumerationReference_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyEnumeration +#define SCHEMA_IfcPropertyEnumeration_HAS_Name +#define SCHEMA_IfcPropertyEnumeration_HAS_EnumerationValues +#define SCHEMA_IfcPropertyEnumeration_HAS_Unit +#define SCHEMA_IfcPropertyEnumeration_Unit_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyListValue +#define SCHEMA_IfcPropertyListValue_HAS_ListValues +#define SCHEMA_IfcPropertyListValue_ListValues_IS_OPTIONAL +#define SCHEMA_IfcPropertyListValue_HAS_Unit +#define SCHEMA_IfcPropertyListValue_Unit_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyReferenceValue +#define SCHEMA_IfcPropertyReferenceValue_HAS_UsageName +#define SCHEMA_IfcPropertyReferenceValue_UsageName_IS_OPTIONAL +#define SCHEMA_IfcPropertyReferenceValue_HAS_PropertyReference +#define SCHEMA_IfcPropertyReferenceValue_PropertyReference_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertySet +#define SCHEMA_IfcPropertySet_HAS_HasProperties +#define SCHEMA_HAS_IfcPropertySetDefinition +#define SCHEMA_HAS_IfcPropertySetTemplate +#define SCHEMA_IfcPropertySetTemplate_HAS_TemplateType +#define SCHEMA_IfcPropertySetTemplate_TemplateType_IS_OPTIONAL +#define SCHEMA_IfcPropertySetTemplate_HAS_ApplicableEntity +#define SCHEMA_IfcPropertySetTemplate_ApplicableEntity_IS_OPTIONAL +#define SCHEMA_IfcPropertySetTemplate_HAS_HasPropertyTemplates +#define SCHEMA_HAS_IfcPropertySingleValue +#define SCHEMA_IfcPropertySingleValue_HAS_NominalValue +#define SCHEMA_IfcPropertySingleValue_NominalValue_IS_OPTIONAL +#define SCHEMA_IfcPropertySingleValue_HAS_Unit +#define SCHEMA_IfcPropertySingleValue_Unit_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyTableValue +#define SCHEMA_IfcPropertyTableValue_HAS_DefiningValues +#define SCHEMA_IfcPropertyTableValue_DefiningValues_IS_OPTIONAL +#define SCHEMA_IfcPropertyTableValue_HAS_DefinedValues +#define SCHEMA_IfcPropertyTableValue_DefinedValues_IS_OPTIONAL +#define SCHEMA_IfcPropertyTableValue_HAS_Expression +#define SCHEMA_IfcPropertyTableValue_Expression_IS_OPTIONAL +#define SCHEMA_IfcPropertyTableValue_HAS_DefiningUnit +#define SCHEMA_IfcPropertyTableValue_DefiningUnit_IS_OPTIONAL +#define SCHEMA_IfcPropertyTableValue_HAS_DefinedUnit +#define SCHEMA_IfcPropertyTableValue_DefinedUnit_IS_OPTIONAL +#define SCHEMA_IfcPropertyTableValue_HAS_CurveInterpolation +#define SCHEMA_IfcPropertyTableValue_CurveInterpolation_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyTemplate +#define SCHEMA_HAS_IfcPropertyTemplateDefinition +#define SCHEMA_HAS_IfcProtectiveDevice +#define SCHEMA_IfcProtectiveDevice_HAS_PredefinedType +#define SCHEMA_IfcProtectiveDevice_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcProtectiveDeviceTrippingUnit +#define SCHEMA_IfcProtectiveDeviceTrippingUnit_HAS_PredefinedType +#define SCHEMA_IfcProtectiveDeviceTrippingUnit_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcProtectiveDeviceTrippingUnitType +#define SCHEMA_IfcProtectiveDeviceTrippingUnitType_HAS_PredefinedType +#define SCHEMA_HAS_IfcProtectiveDeviceType +#define SCHEMA_IfcProtectiveDeviceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcProxy +#define SCHEMA_IfcProxy_HAS_ProxyType +#define SCHEMA_IfcProxy_HAS_Tag +#define SCHEMA_IfcProxy_Tag_IS_OPTIONAL +#define SCHEMA_HAS_IfcPump +#define SCHEMA_IfcPump_HAS_PredefinedType +#define SCHEMA_IfcPump_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcPumpType +#define SCHEMA_IfcPumpType_HAS_PredefinedType +#define SCHEMA_HAS_IfcQuantityArea +#define SCHEMA_IfcQuantityArea_HAS_AreaValue +#define SCHEMA_IfcQuantityArea_HAS_Formula +#define SCHEMA_IfcQuantityArea_Formula_IS_OPTIONAL +#define SCHEMA_HAS_IfcQuantityCount +#define SCHEMA_IfcQuantityCount_HAS_CountValue +#define SCHEMA_IfcQuantityCount_HAS_Formula +#define SCHEMA_IfcQuantityCount_Formula_IS_OPTIONAL +#define SCHEMA_HAS_IfcQuantityLength +#define SCHEMA_IfcQuantityLength_HAS_LengthValue +#define SCHEMA_IfcQuantityLength_HAS_Formula +#define SCHEMA_IfcQuantityLength_Formula_IS_OPTIONAL +#define SCHEMA_HAS_IfcQuantitySet +#define SCHEMA_HAS_IfcQuantityTime +#define SCHEMA_IfcQuantityTime_HAS_TimeValue +#define SCHEMA_IfcQuantityTime_HAS_Formula +#define SCHEMA_IfcQuantityTime_Formula_IS_OPTIONAL +#define SCHEMA_HAS_IfcQuantityVolume +#define SCHEMA_IfcQuantityVolume_HAS_VolumeValue +#define SCHEMA_IfcQuantityVolume_HAS_Formula +#define SCHEMA_IfcQuantityVolume_Formula_IS_OPTIONAL +#define SCHEMA_HAS_IfcQuantityWeight +#define SCHEMA_IfcQuantityWeight_HAS_WeightValue +#define SCHEMA_IfcQuantityWeight_HAS_Formula +#define SCHEMA_IfcQuantityWeight_Formula_IS_OPTIONAL +#define SCHEMA_HAS_IfcRailing +#define SCHEMA_IfcRailing_HAS_PredefinedType +#define SCHEMA_IfcRailing_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRailingType +#define SCHEMA_IfcRailingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcRamp +#define SCHEMA_IfcRamp_HAS_PredefinedType +#define SCHEMA_IfcRamp_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRampFlight +#define SCHEMA_IfcRampFlight_HAS_PredefinedType +#define SCHEMA_IfcRampFlight_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRampFlightType +#define SCHEMA_IfcRampFlightType_HAS_PredefinedType +#define SCHEMA_HAS_IfcRampType +#define SCHEMA_IfcRampType_HAS_PredefinedType +#define SCHEMA_HAS_IfcRationalBSplineCurveWithKnots +#define SCHEMA_IfcRationalBSplineCurveWithKnots_HAS_WeightsData +#define SCHEMA_HAS_IfcRationalBSplineSurfaceWithKnots +#define SCHEMA_IfcRationalBSplineSurfaceWithKnots_HAS_WeightsData +#define SCHEMA_HAS_IfcRectangleHollowProfileDef +#define SCHEMA_IfcRectangleHollowProfileDef_HAS_WallThickness +#define SCHEMA_IfcRectangleHollowProfileDef_HAS_InnerFilletRadius +#define SCHEMA_IfcRectangleHollowProfileDef_InnerFilletRadius_IS_OPTIONAL +#define SCHEMA_IfcRectangleHollowProfileDef_HAS_OuterFilletRadius +#define SCHEMA_IfcRectangleHollowProfileDef_OuterFilletRadius_IS_OPTIONAL +#define SCHEMA_HAS_IfcRectangleProfileDef +#define SCHEMA_IfcRectangleProfileDef_HAS_XDim +#define SCHEMA_IfcRectangleProfileDef_HAS_YDim +#define SCHEMA_HAS_IfcRectangularPyramid +#define SCHEMA_IfcRectangularPyramid_HAS_XLength +#define SCHEMA_IfcRectangularPyramid_HAS_YLength +#define SCHEMA_IfcRectangularPyramid_HAS_Height +#define SCHEMA_HAS_IfcRectangularTrimmedSurface +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_BasisSurface +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_U1 +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_V1 +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_U2 +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_V2 +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_Usense +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_Vsense +#define SCHEMA_HAS_IfcRecurrencePattern +#define SCHEMA_IfcRecurrencePattern_HAS_RecurrenceType +#define SCHEMA_IfcRecurrencePattern_HAS_DayComponent +#define SCHEMA_IfcRecurrencePattern_DayComponent_IS_OPTIONAL +#define SCHEMA_IfcRecurrencePattern_HAS_WeekdayComponent +#define SCHEMA_IfcRecurrencePattern_WeekdayComponent_IS_OPTIONAL +#define SCHEMA_IfcRecurrencePattern_HAS_MonthComponent +#define SCHEMA_IfcRecurrencePattern_MonthComponent_IS_OPTIONAL +#define SCHEMA_IfcRecurrencePattern_HAS_Position +#define SCHEMA_IfcRecurrencePattern_Position_IS_OPTIONAL +#define SCHEMA_IfcRecurrencePattern_HAS_Interval +#define SCHEMA_IfcRecurrencePattern_Interval_IS_OPTIONAL +#define SCHEMA_IfcRecurrencePattern_HAS_Occurrences +#define SCHEMA_IfcRecurrencePattern_Occurrences_IS_OPTIONAL +#define SCHEMA_IfcRecurrencePattern_HAS_TimePeriods +#define SCHEMA_IfcRecurrencePattern_TimePeriods_IS_OPTIONAL +#define SCHEMA_HAS_IfcReference +#define SCHEMA_IfcReference_HAS_TypeIdentifier +#define SCHEMA_IfcReference_TypeIdentifier_IS_OPTIONAL +#define SCHEMA_IfcReference_HAS_AttributeIdentifier +#define SCHEMA_IfcReference_AttributeIdentifier_IS_OPTIONAL +#define SCHEMA_IfcReference_HAS_InstanceName +#define SCHEMA_IfcReference_InstanceName_IS_OPTIONAL +#define SCHEMA_IfcReference_HAS_ListPositions +#define SCHEMA_IfcReference_ListPositions_IS_OPTIONAL +#define SCHEMA_IfcReference_HAS_InnerReference +#define SCHEMA_IfcReference_InnerReference_IS_OPTIONAL +#define SCHEMA_HAS_IfcReferent +#define SCHEMA_IfcReferent_HAS_PredefinedType +#define SCHEMA_IfcReferent_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcReferent_HAS_RestartDistance +#define SCHEMA_IfcReferent_RestartDistance_IS_OPTIONAL +#define SCHEMA_HAS_IfcRegularTimeSeries +#define SCHEMA_IfcRegularTimeSeries_HAS_TimeStep +#define SCHEMA_IfcRegularTimeSeries_HAS_Values +#define SCHEMA_HAS_IfcReinforcementBarProperties +#define SCHEMA_IfcReinforcementBarProperties_HAS_TotalCrossSectionArea +#define SCHEMA_IfcReinforcementBarProperties_HAS_SteelGrade +#define SCHEMA_IfcReinforcementBarProperties_HAS_BarSurface +#define SCHEMA_IfcReinforcementBarProperties_BarSurface_IS_OPTIONAL +#define SCHEMA_IfcReinforcementBarProperties_HAS_EffectiveDepth +#define SCHEMA_IfcReinforcementBarProperties_EffectiveDepth_IS_OPTIONAL +#define SCHEMA_IfcReinforcementBarProperties_HAS_NominalBarDiameter +#define SCHEMA_IfcReinforcementBarProperties_NominalBarDiameter_IS_OPTIONAL +#define SCHEMA_IfcReinforcementBarProperties_HAS_BarCount +#define SCHEMA_IfcReinforcementBarProperties_BarCount_IS_OPTIONAL +#define SCHEMA_HAS_IfcReinforcementDefinitionProperties +#define SCHEMA_IfcReinforcementDefinitionProperties_HAS_DefinitionType +#define SCHEMA_IfcReinforcementDefinitionProperties_DefinitionType_IS_OPTIONAL +#define SCHEMA_IfcReinforcementDefinitionProperties_HAS_ReinforcementSectionDefinitions +#define SCHEMA_HAS_IfcReinforcingBar +#define SCHEMA_IfcReinforcingBar_HAS_NominalDiameter +#define SCHEMA_IfcReinforcingBar_NominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBar_HAS_CrossSectionArea +#define SCHEMA_IfcReinforcingBar_CrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBar_HAS_BarLength +#define SCHEMA_IfcReinforcingBar_BarLength_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBar_HAS_PredefinedType +#define SCHEMA_IfcReinforcingBar_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBar_HAS_BarSurface +#define SCHEMA_IfcReinforcingBar_BarSurface_IS_OPTIONAL +#define SCHEMA_HAS_IfcReinforcingBarType +#define SCHEMA_IfcReinforcingBarType_HAS_PredefinedType +#define SCHEMA_IfcReinforcingBarType_HAS_NominalDiameter +#define SCHEMA_IfcReinforcingBarType_NominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBarType_HAS_CrossSectionArea +#define SCHEMA_IfcReinforcingBarType_CrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBarType_HAS_BarLength +#define SCHEMA_IfcReinforcingBarType_BarLength_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBarType_HAS_BarSurface +#define SCHEMA_IfcReinforcingBarType_BarSurface_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBarType_HAS_BendingShapeCode +#define SCHEMA_IfcReinforcingBarType_BendingShapeCode_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBarType_HAS_BendingParameters +#define SCHEMA_IfcReinforcingBarType_BendingParameters_IS_OPTIONAL +#define SCHEMA_HAS_IfcReinforcingElement +#define SCHEMA_IfcReinforcingElement_HAS_SteelGrade +#define SCHEMA_IfcReinforcingElement_SteelGrade_IS_OPTIONAL +#define SCHEMA_HAS_IfcReinforcingElementType +#define SCHEMA_HAS_IfcReinforcingMesh +#define SCHEMA_IfcReinforcingMesh_HAS_MeshLength +#define SCHEMA_IfcReinforcingMesh_MeshLength_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_MeshWidth +#define SCHEMA_IfcReinforcingMesh_MeshWidth_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_LongitudinalBarNominalDiameter +#define SCHEMA_IfcReinforcingMesh_LongitudinalBarNominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_TransverseBarNominalDiameter +#define SCHEMA_IfcReinforcingMesh_TransverseBarNominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_LongitudinalBarCrossSectionArea +#define SCHEMA_IfcReinforcingMesh_LongitudinalBarCrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_TransverseBarCrossSectionArea +#define SCHEMA_IfcReinforcingMesh_TransverseBarCrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_LongitudinalBarSpacing +#define SCHEMA_IfcReinforcingMesh_LongitudinalBarSpacing_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_TransverseBarSpacing +#define SCHEMA_IfcReinforcingMesh_TransverseBarSpacing_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_PredefinedType +#define SCHEMA_IfcReinforcingMesh_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcReinforcingMeshType +#define SCHEMA_IfcReinforcingMeshType_HAS_PredefinedType +#define SCHEMA_IfcReinforcingMeshType_HAS_MeshLength +#define SCHEMA_IfcReinforcingMeshType_MeshLength_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_MeshWidth +#define SCHEMA_IfcReinforcingMeshType_MeshWidth_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_LongitudinalBarNominalDiameter +#define SCHEMA_IfcReinforcingMeshType_LongitudinalBarNominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_TransverseBarNominalDiameter +#define SCHEMA_IfcReinforcingMeshType_TransverseBarNominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_LongitudinalBarCrossSectionArea +#define SCHEMA_IfcReinforcingMeshType_LongitudinalBarCrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_TransverseBarCrossSectionArea +#define SCHEMA_IfcReinforcingMeshType_TransverseBarCrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_LongitudinalBarSpacing +#define SCHEMA_IfcReinforcingMeshType_LongitudinalBarSpacing_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_TransverseBarSpacing +#define SCHEMA_IfcReinforcingMeshType_TransverseBarSpacing_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_BendingShapeCode +#define SCHEMA_IfcReinforcingMeshType_BendingShapeCode_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_BendingParameters +#define SCHEMA_IfcReinforcingMeshType_BendingParameters_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelAggregates +#define SCHEMA_IfcRelAggregates_HAS_RelatingObject +#define SCHEMA_IfcRelAggregates_HAS_RelatedObjects +#define SCHEMA_HAS_IfcRelAssigns +#define SCHEMA_IfcRelAssigns_HAS_RelatedObjects +#define SCHEMA_IfcRelAssigns_HAS_RelatedObjectsType +#define SCHEMA_IfcRelAssigns_RelatedObjectsType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelAssignsToActor +#define SCHEMA_IfcRelAssignsToActor_HAS_RelatingActor +#define SCHEMA_IfcRelAssignsToActor_HAS_ActingRole +#define SCHEMA_IfcRelAssignsToActor_ActingRole_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelAssignsToControl +#define SCHEMA_IfcRelAssignsToControl_HAS_RelatingControl +#define SCHEMA_HAS_IfcRelAssignsToGroup +#define SCHEMA_IfcRelAssignsToGroup_HAS_RelatingGroup +#define SCHEMA_HAS_IfcRelAssignsToGroupByFactor +#define SCHEMA_IfcRelAssignsToGroupByFactor_HAS_Factor +#define SCHEMA_HAS_IfcRelAssignsToProcess +#define SCHEMA_IfcRelAssignsToProcess_HAS_RelatingProcess +#define SCHEMA_IfcRelAssignsToProcess_HAS_QuantityInProcess +#define SCHEMA_IfcRelAssignsToProcess_QuantityInProcess_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelAssignsToProduct +#define SCHEMA_IfcRelAssignsToProduct_HAS_RelatingProduct +#define SCHEMA_HAS_IfcRelAssignsToResource +#define SCHEMA_IfcRelAssignsToResource_HAS_RelatingResource +#define SCHEMA_HAS_IfcRelAssociates +#define SCHEMA_IfcRelAssociates_HAS_RelatedObjects +#define SCHEMA_HAS_IfcRelAssociatesApproval +#define SCHEMA_IfcRelAssociatesApproval_HAS_RelatingApproval +#define SCHEMA_HAS_IfcRelAssociatesClassification +#define SCHEMA_IfcRelAssociatesClassification_HAS_RelatingClassification +#define SCHEMA_HAS_IfcRelAssociatesConstraint +#define SCHEMA_IfcRelAssociatesConstraint_HAS_Intent +#define SCHEMA_IfcRelAssociatesConstraint_Intent_IS_OPTIONAL +#define SCHEMA_IfcRelAssociatesConstraint_HAS_RelatingConstraint +#define SCHEMA_HAS_IfcRelAssociatesDocument +#define SCHEMA_IfcRelAssociatesDocument_HAS_RelatingDocument +#define SCHEMA_HAS_IfcRelAssociatesLibrary +#define SCHEMA_IfcRelAssociatesLibrary_HAS_RelatingLibrary +#define SCHEMA_HAS_IfcRelAssociatesMaterial +#define SCHEMA_IfcRelAssociatesMaterial_HAS_RelatingMaterial +#define SCHEMA_HAS_IfcRelConnects +#define SCHEMA_HAS_IfcRelConnectsElements +#define SCHEMA_IfcRelConnectsElements_HAS_ConnectionGeometry +#define SCHEMA_IfcRelConnectsElements_ConnectionGeometry_IS_OPTIONAL +#define SCHEMA_IfcRelConnectsElements_HAS_RelatingElement +#define SCHEMA_IfcRelConnectsElements_HAS_RelatedElement +#define SCHEMA_HAS_IfcRelConnectsPathElements +#define SCHEMA_IfcRelConnectsPathElements_HAS_RelatingPriorities +#define SCHEMA_IfcRelConnectsPathElements_HAS_RelatedPriorities +#define SCHEMA_IfcRelConnectsPathElements_HAS_RelatedConnectionType +#define SCHEMA_IfcRelConnectsPathElements_HAS_RelatingConnectionType +#define SCHEMA_HAS_IfcRelConnectsPortToElement +#define SCHEMA_IfcRelConnectsPortToElement_HAS_RelatingPort +#define SCHEMA_IfcRelConnectsPortToElement_HAS_RelatedElement +#define SCHEMA_HAS_IfcRelConnectsPorts +#define SCHEMA_IfcRelConnectsPorts_HAS_RelatingPort +#define SCHEMA_IfcRelConnectsPorts_HAS_RelatedPort +#define SCHEMA_IfcRelConnectsPorts_HAS_RealizingElement +#define SCHEMA_IfcRelConnectsPorts_RealizingElement_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelConnectsStructuralActivity +#define SCHEMA_IfcRelConnectsStructuralActivity_HAS_RelatingElement +#define SCHEMA_IfcRelConnectsStructuralActivity_HAS_RelatedStructuralActivity +#define SCHEMA_HAS_IfcRelConnectsStructuralMember +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_RelatingStructuralMember +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_RelatedStructuralConnection +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_AppliedCondition +#define SCHEMA_IfcRelConnectsStructuralMember_AppliedCondition_IS_OPTIONAL +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_AdditionalConditions +#define SCHEMA_IfcRelConnectsStructuralMember_AdditionalConditions_IS_OPTIONAL +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_SupportedLength +#define SCHEMA_IfcRelConnectsStructuralMember_SupportedLength_IS_OPTIONAL +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_ConditionCoordinateSystem +#define SCHEMA_IfcRelConnectsStructuralMember_ConditionCoordinateSystem_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelConnectsWithEccentricity +#define SCHEMA_IfcRelConnectsWithEccentricity_HAS_ConnectionConstraint +#define SCHEMA_HAS_IfcRelConnectsWithRealizingElements +#define SCHEMA_IfcRelConnectsWithRealizingElements_HAS_RealizingElements +#define SCHEMA_IfcRelConnectsWithRealizingElements_HAS_ConnectionType +#define SCHEMA_IfcRelConnectsWithRealizingElements_ConnectionType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelContainedInSpatialStructure +#define SCHEMA_IfcRelContainedInSpatialStructure_HAS_RelatedElements +#define SCHEMA_IfcRelContainedInSpatialStructure_HAS_RelatingStructure +#define SCHEMA_HAS_IfcRelCoversBldgElements +#define SCHEMA_IfcRelCoversBldgElements_HAS_RelatingBuildingElement +#define SCHEMA_IfcRelCoversBldgElements_HAS_RelatedCoverings +#define SCHEMA_HAS_IfcRelCoversSpaces +#define SCHEMA_IfcRelCoversSpaces_HAS_RelatingSpace +#define SCHEMA_IfcRelCoversSpaces_HAS_RelatedCoverings +#define SCHEMA_HAS_IfcRelDeclares +#define SCHEMA_IfcRelDeclares_HAS_RelatingContext +#define SCHEMA_IfcRelDeclares_HAS_RelatedDefinitions +#define SCHEMA_HAS_IfcRelDecomposes +#define SCHEMA_HAS_IfcRelDefines +#define SCHEMA_HAS_IfcRelDefinesByObject +#define SCHEMA_IfcRelDefinesByObject_HAS_RelatedObjects +#define SCHEMA_IfcRelDefinesByObject_HAS_RelatingObject +#define SCHEMA_HAS_IfcRelDefinesByProperties +#define SCHEMA_IfcRelDefinesByProperties_HAS_RelatedObjects +#define SCHEMA_IfcRelDefinesByProperties_HAS_RelatingPropertyDefinition +#define SCHEMA_HAS_IfcRelDefinesByTemplate +#define SCHEMA_IfcRelDefinesByTemplate_HAS_RelatedPropertySets +#define SCHEMA_IfcRelDefinesByTemplate_HAS_RelatingTemplate +#define SCHEMA_HAS_IfcRelDefinesByType +#define SCHEMA_IfcRelDefinesByType_HAS_RelatedObjects +#define SCHEMA_IfcRelDefinesByType_HAS_RelatingType +#define SCHEMA_HAS_IfcRelFillsElement +#define SCHEMA_IfcRelFillsElement_HAS_RelatingOpeningElement +#define SCHEMA_IfcRelFillsElement_HAS_RelatedBuildingElement +#define SCHEMA_HAS_IfcRelFlowControlElements +#define SCHEMA_IfcRelFlowControlElements_HAS_RelatedControlElements +#define SCHEMA_IfcRelFlowControlElements_HAS_RelatingFlowElement +#define SCHEMA_HAS_IfcRelInterferesElements +#define SCHEMA_IfcRelInterferesElements_HAS_RelatingElement +#define SCHEMA_IfcRelInterferesElements_HAS_RelatedElement +#define SCHEMA_IfcRelInterferesElements_HAS_InterferenceGeometry +#define SCHEMA_IfcRelInterferesElements_InterferenceGeometry_IS_OPTIONAL +#define SCHEMA_IfcRelInterferesElements_HAS_InterferenceType +#define SCHEMA_IfcRelInterferesElements_InterferenceType_IS_OPTIONAL +#define SCHEMA_IfcRelInterferesElements_HAS_ImpliedOrder +#define SCHEMA_HAS_IfcRelNests +#define SCHEMA_IfcRelNests_HAS_RelatingObject +#define SCHEMA_IfcRelNests_HAS_RelatedObjects +#define SCHEMA_HAS_IfcRelProjectsElement +#define SCHEMA_IfcRelProjectsElement_HAS_RelatingElement +#define SCHEMA_IfcRelProjectsElement_HAS_RelatedFeatureElement +#define SCHEMA_HAS_IfcRelReferencedInSpatialStructure +#define SCHEMA_IfcRelReferencedInSpatialStructure_HAS_RelatedElements +#define SCHEMA_IfcRelReferencedInSpatialStructure_HAS_RelatingStructure +#define SCHEMA_HAS_IfcRelSequence +#define SCHEMA_IfcRelSequence_HAS_RelatingProcess +#define SCHEMA_IfcRelSequence_HAS_RelatedProcess +#define SCHEMA_IfcRelSequence_HAS_TimeLag +#define SCHEMA_IfcRelSequence_TimeLag_IS_OPTIONAL +#define SCHEMA_IfcRelSequence_HAS_SequenceType +#define SCHEMA_IfcRelSequence_SequenceType_IS_OPTIONAL +#define SCHEMA_IfcRelSequence_HAS_UserDefinedSequenceType +#define SCHEMA_IfcRelSequence_UserDefinedSequenceType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelServicesBuildings +#define SCHEMA_IfcRelServicesBuildings_HAS_RelatingSystem +#define SCHEMA_IfcRelServicesBuildings_HAS_RelatedBuildings +#define SCHEMA_HAS_IfcRelSpaceBoundary +#define SCHEMA_IfcRelSpaceBoundary_HAS_RelatingSpace +#define SCHEMA_IfcRelSpaceBoundary_HAS_RelatedBuildingElement +#define SCHEMA_IfcRelSpaceBoundary_HAS_ConnectionGeometry +#define SCHEMA_IfcRelSpaceBoundary_ConnectionGeometry_IS_OPTIONAL +#define SCHEMA_IfcRelSpaceBoundary_HAS_PhysicalOrVirtualBoundary +#define SCHEMA_IfcRelSpaceBoundary_HAS_InternalOrExternalBoundary +#define SCHEMA_HAS_IfcRelSpaceBoundary1stLevel +#define SCHEMA_IfcRelSpaceBoundary1stLevel_HAS_ParentBoundary +#define SCHEMA_IfcRelSpaceBoundary1stLevel_ParentBoundary_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelSpaceBoundary2ndLevel +#define SCHEMA_IfcRelSpaceBoundary2ndLevel_HAS_CorrespondingBoundary +#define SCHEMA_IfcRelSpaceBoundary2ndLevel_CorrespondingBoundary_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelVoidsElement +#define SCHEMA_IfcRelVoidsElement_HAS_RelatingBuildingElement +#define SCHEMA_IfcRelVoidsElement_HAS_RelatedOpeningElement +#define SCHEMA_HAS_IfcRelationship +#define SCHEMA_HAS_IfcReparametrisedCompositeCurveSegment +#define SCHEMA_IfcReparametrisedCompositeCurveSegment_HAS_ParamLength +#define SCHEMA_HAS_IfcRepresentation +#define SCHEMA_IfcRepresentation_HAS_ContextOfItems +#define SCHEMA_IfcRepresentation_HAS_RepresentationIdentifier +#define SCHEMA_IfcRepresentation_RepresentationIdentifier_IS_OPTIONAL +#define SCHEMA_IfcRepresentation_HAS_RepresentationType +#define SCHEMA_IfcRepresentation_RepresentationType_IS_OPTIONAL +#define SCHEMA_IfcRepresentation_HAS_Items +#define SCHEMA_HAS_IfcRepresentationContext +#define SCHEMA_IfcRepresentationContext_HAS_ContextIdentifier +#define SCHEMA_IfcRepresentationContext_ContextIdentifier_IS_OPTIONAL +#define SCHEMA_IfcRepresentationContext_HAS_ContextType +#define SCHEMA_IfcRepresentationContext_ContextType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRepresentationItem +#define SCHEMA_HAS_IfcRepresentationMap +#define SCHEMA_IfcRepresentationMap_HAS_MappingOrigin +#define SCHEMA_IfcRepresentationMap_HAS_MappedRepresentation +#define SCHEMA_HAS_IfcResource +#define SCHEMA_IfcResource_HAS_Identification +#define SCHEMA_IfcResource_Identification_IS_OPTIONAL +#define SCHEMA_IfcResource_HAS_LongDescription +#define SCHEMA_IfcResource_LongDescription_IS_OPTIONAL +#define SCHEMA_HAS_IfcResourceApprovalRelationship +#define SCHEMA_IfcResourceApprovalRelationship_HAS_RelatedResourceObjects +#define SCHEMA_IfcResourceApprovalRelationship_HAS_RelatingApproval +#define SCHEMA_HAS_IfcResourceConstraintRelationship +#define SCHEMA_IfcResourceConstraintRelationship_HAS_RelatingConstraint +#define SCHEMA_IfcResourceConstraintRelationship_HAS_RelatedResourceObjects +#define SCHEMA_HAS_IfcResourceLevelRelationship +#define SCHEMA_IfcResourceLevelRelationship_HAS_Name +#define SCHEMA_IfcResourceLevelRelationship_Name_IS_OPTIONAL +#define SCHEMA_IfcResourceLevelRelationship_HAS_Description +#define SCHEMA_IfcResourceLevelRelationship_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcResourceTime +#define SCHEMA_IfcResourceTime_HAS_ScheduleWork +#define SCHEMA_IfcResourceTime_ScheduleWork_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ScheduleUsage +#define SCHEMA_IfcResourceTime_ScheduleUsage_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ScheduleStart +#define SCHEMA_IfcResourceTime_ScheduleStart_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ScheduleFinish +#define SCHEMA_IfcResourceTime_ScheduleFinish_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ScheduleContour +#define SCHEMA_IfcResourceTime_ScheduleContour_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_LevelingDelay +#define SCHEMA_IfcResourceTime_LevelingDelay_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_IsOverAllocated +#define SCHEMA_IfcResourceTime_IsOverAllocated_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_StatusTime +#define SCHEMA_IfcResourceTime_StatusTime_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ActualWork +#define SCHEMA_IfcResourceTime_ActualWork_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ActualUsage +#define SCHEMA_IfcResourceTime_ActualUsage_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ActualStart +#define SCHEMA_IfcResourceTime_ActualStart_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ActualFinish +#define SCHEMA_IfcResourceTime_ActualFinish_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_RemainingWork +#define SCHEMA_IfcResourceTime_RemainingWork_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_RemainingUsage +#define SCHEMA_IfcResourceTime_RemainingUsage_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_Completion +#define SCHEMA_IfcResourceTime_Completion_IS_OPTIONAL +#define SCHEMA_HAS_IfcRevolvedAreaSolid +#define SCHEMA_IfcRevolvedAreaSolid_HAS_Axis +#define SCHEMA_IfcRevolvedAreaSolid_HAS_Angle +#define SCHEMA_HAS_IfcRevolvedAreaSolidTapered +#define SCHEMA_IfcRevolvedAreaSolidTapered_HAS_EndSweptArea +#define SCHEMA_HAS_IfcRightCircularCone +#define SCHEMA_IfcRightCircularCone_HAS_Height +#define SCHEMA_IfcRightCircularCone_HAS_BottomRadius +#define SCHEMA_HAS_IfcRightCircularCylinder +#define SCHEMA_IfcRightCircularCylinder_HAS_Height +#define SCHEMA_IfcRightCircularCylinder_HAS_Radius +#define SCHEMA_HAS_IfcRoof +#define SCHEMA_IfcRoof_HAS_PredefinedType +#define SCHEMA_IfcRoof_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRoofType +#define SCHEMA_IfcRoofType_HAS_PredefinedType +#define SCHEMA_HAS_IfcRoot +#define SCHEMA_IfcRoot_HAS_GlobalId +#define SCHEMA_IfcRoot_HAS_OwnerHistory +#define SCHEMA_IfcRoot_OwnerHistory_IS_OPTIONAL +#define SCHEMA_IfcRoot_HAS_Name +#define SCHEMA_IfcRoot_Name_IS_OPTIONAL +#define SCHEMA_IfcRoot_HAS_Description +#define SCHEMA_IfcRoot_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcRoundedRectangleProfileDef +#define SCHEMA_IfcRoundedRectangleProfileDef_HAS_RoundingRadius +#define SCHEMA_HAS_IfcSIUnit +#define SCHEMA_IfcSIUnit_HAS_Prefix +#define SCHEMA_IfcSIUnit_Prefix_IS_OPTIONAL +#define SCHEMA_IfcSIUnit_HAS_Name +#define SCHEMA_HAS_IfcSanitaryTerminal +#define SCHEMA_IfcSanitaryTerminal_HAS_PredefinedType +#define SCHEMA_IfcSanitaryTerminal_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSanitaryTerminalType +#define SCHEMA_IfcSanitaryTerminalType_HAS_PredefinedType +#define SCHEMA_HAS_IfcSchedulingTime +#define SCHEMA_IfcSchedulingTime_HAS_Name +#define SCHEMA_IfcSchedulingTime_Name_IS_OPTIONAL +#define SCHEMA_IfcSchedulingTime_HAS_DataOrigin +#define SCHEMA_IfcSchedulingTime_DataOrigin_IS_OPTIONAL +#define SCHEMA_IfcSchedulingTime_HAS_UserDefinedDataOrigin +#define SCHEMA_IfcSchedulingTime_UserDefinedDataOrigin_IS_OPTIONAL +#define SCHEMA_HAS_IfcSeamCurve +#define SCHEMA_HAS_IfcSectionProperties +#define SCHEMA_IfcSectionProperties_HAS_SectionType +#define SCHEMA_IfcSectionProperties_HAS_StartProfile +#define SCHEMA_IfcSectionProperties_HAS_EndProfile +#define SCHEMA_IfcSectionProperties_EndProfile_IS_OPTIONAL +#define SCHEMA_HAS_IfcSectionReinforcementProperties +#define SCHEMA_IfcSectionReinforcementProperties_HAS_LongitudinalStartPosition +#define SCHEMA_IfcSectionReinforcementProperties_HAS_LongitudinalEndPosition +#define SCHEMA_IfcSectionReinforcementProperties_HAS_TransversePosition +#define SCHEMA_IfcSectionReinforcementProperties_TransversePosition_IS_OPTIONAL +#define SCHEMA_IfcSectionReinforcementProperties_HAS_ReinforcementRole +#define SCHEMA_IfcSectionReinforcementProperties_HAS_SectionDefinition +#define SCHEMA_IfcSectionReinforcementProperties_HAS_CrossSectionReinforcementDefinitions +#define SCHEMA_HAS_IfcSectionedSolid +#define SCHEMA_IfcSectionedSolid_HAS_Directrix +#define SCHEMA_IfcSectionedSolid_HAS_CrossSections +#define SCHEMA_HAS_IfcSectionedSolidHorizontal +#define SCHEMA_IfcSectionedSolidHorizontal_HAS_CrossSectionPositions +#define SCHEMA_IfcSectionedSolidHorizontal_HAS_FixedAxisVertical +#define SCHEMA_HAS_IfcSectionedSpine +#define SCHEMA_IfcSectionedSpine_HAS_SpineCurve +#define SCHEMA_IfcSectionedSpine_HAS_CrossSections +#define SCHEMA_IfcSectionedSpine_HAS_CrossSectionPositions +#define SCHEMA_HAS_IfcSensor +#define SCHEMA_IfcSensor_HAS_PredefinedType +#define SCHEMA_IfcSensor_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSensorType +#define SCHEMA_IfcSensorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcShadingDevice +#define SCHEMA_IfcShadingDevice_HAS_PredefinedType +#define SCHEMA_IfcShadingDevice_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcShadingDeviceType +#define SCHEMA_IfcShadingDeviceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcShapeAspect +#define SCHEMA_IfcShapeAspect_HAS_ShapeRepresentations +#define SCHEMA_IfcShapeAspect_HAS_Name +#define SCHEMA_IfcShapeAspect_Name_IS_OPTIONAL +#define SCHEMA_IfcShapeAspect_HAS_Description +#define SCHEMA_IfcShapeAspect_Description_IS_OPTIONAL +#define SCHEMA_IfcShapeAspect_HAS_ProductDefinitional +#define SCHEMA_IfcShapeAspect_HAS_PartOfProductDefinitionShape +#define SCHEMA_IfcShapeAspect_PartOfProductDefinitionShape_IS_OPTIONAL +#define SCHEMA_HAS_IfcShapeModel +#define SCHEMA_HAS_IfcShapeRepresentation +#define SCHEMA_HAS_IfcShellBasedSurfaceModel +#define SCHEMA_IfcShellBasedSurfaceModel_HAS_SbsmBoundary +#define SCHEMA_HAS_IfcSimpleProperty +#define SCHEMA_HAS_IfcSimplePropertyTemplate +#define SCHEMA_IfcSimplePropertyTemplate_HAS_TemplateType +#define SCHEMA_IfcSimplePropertyTemplate_TemplateType_IS_OPTIONAL +#define SCHEMA_IfcSimplePropertyTemplate_HAS_PrimaryMeasureType +#define SCHEMA_IfcSimplePropertyTemplate_PrimaryMeasureType_IS_OPTIONAL +#define SCHEMA_IfcSimplePropertyTemplate_HAS_SecondaryMeasureType +#define SCHEMA_IfcSimplePropertyTemplate_SecondaryMeasureType_IS_OPTIONAL +#define SCHEMA_IfcSimplePropertyTemplate_HAS_Enumerators +#define SCHEMA_IfcSimplePropertyTemplate_Enumerators_IS_OPTIONAL +#define SCHEMA_IfcSimplePropertyTemplate_HAS_PrimaryUnit +#define SCHEMA_IfcSimplePropertyTemplate_PrimaryUnit_IS_OPTIONAL +#define SCHEMA_IfcSimplePropertyTemplate_HAS_SecondaryUnit +#define SCHEMA_IfcSimplePropertyTemplate_SecondaryUnit_IS_OPTIONAL +#define SCHEMA_IfcSimplePropertyTemplate_HAS_Expression +#define SCHEMA_IfcSimplePropertyTemplate_Expression_IS_OPTIONAL +#define SCHEMA_IfcSimplePropertyTemplate_HAS_AccessState +#define SCHEMA_IfcSimplePropertyTemplate_AccessState_IS_OPTIONAL +#define SCHEMA_HAS_IfcSite +#define SCHEMA_IfcSite_HAS_RefLatitude +#define SCHEMA_IfcSite_RefLatitude_IS_OPTIONAL +#define SCHEMA_IfcSite_HAS_RefLongitude +#define SCHEMA_IfcSite_RefLongitude_IS_OPTIONAL +#define SCHEMA_IfcSite_HAS_RefElevation +#define SCHEMA_IfcSite_RefElevation_IS_OPTIONAL +#define SCHEMA_IfcSite_HAS_LandTitleNumber +#define SCHEMA_IfcSite_LandTitleNumber_IS_OPTIONAL +#define SCHEMA_IfcSite_HAS_SiteAddress +#define SCHEMA_IfcSite_SiteAddress_IS_OPTIONAL +#define SCHEMA_HAS_IfcSlab +#define SCHEMA_IfcSlab_HAS_PredefinedType +#define SCHEMA_IfcSlab_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSlabElementedCase +#define SCHEMA_HAS_IfcSlabStandardCase +#define SCHEMA_HAS_IfcSlabType +#define SCHEMA_IfcSlabType_HAS_PredefinedType +#define SCHEMA_HAS_IfcSlippageConnectionCondition +#define SCHEMA_IfcSlippageConnectionCondition_HAS_SlippageX +#define SCHEMA_IfcSlippageConnectionCondition_SlippageX_IS_OPTIONAL +#define SCHEMA_IfcSlippageConnectionCondition_HAS_SlippageY +#define SCHEMA_IfcSlippageConnectionCondition_SlippageY_IS_OPTIONAL +#define SCHEMA_IfcSlippageConnectionCondition_HAS_SlippageZ +#define SCHEMA_IfcSlippageConnectionCondition_SlippageZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcSolarDevice +#define SCHEMA_IfcSolarDevice_HAS_PredefinedType +#define SCHEMA_IfcSolarDevice_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSolarDeviceType +#define SCHEMA_IfcSolarDeviceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcSolidModel +#define SCHEMA_HAS_IfcSpace +#define SCHEMA_IfcSpace_HAS_PredefinedType +#define SCHEMA_IfcSpace_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcSpace_HAS_ElevationWithFlooring +#define SCHEMA_IfcSpace_ElevationWithFlooring_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpaceHeater +#define SCHEMA_IfcSpaceHeater_HAS_PredefinedType +#define SCHEMA_IfcSpaceHeater_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpaceHeaterType +#define SCHEMA_IfcSpaceHeaterType_HAS_PredefinedType +#define SCHEMA_HAS_IfcSpaceType +#define SCHEMA_IfcSpaceType_HAS_PredefinedType +#define SCHEMA_IfcSpaceType_HAS_LongName +#define SCHEMA_IfcSpaceType_LongName_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpatialElement +#define SCHEMA_IfcSpatialElement_HAS_LongName +#define SCHEMA_IfcSpatialElement_LongName_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpatialElementType +#define SCHEMA_IfcSpatialElementType_HAS_ElementType +#define SCHEMA_IfcSpatialElementType_ElementType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpatialStructureElement +#define SCHEMA_IfcSpatialStructureElement_HAS_CompositionType +#define SCHEMA_IfcSpatialStructureElement_CompositionType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpatialStructureElementType +#define SCHEMA_HAS_IfcSpatialZone +#define SCHEMA_IfcSpatialZone_HAS_PredefinedType +#define SCHEMA_IfcSpatialZone_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpatialZoneType +#define SCHEMA_IfcSpatialZoneType_HAS_PredefinedType +#define SCHEMA_IfcSpatialZoneType_HAS_LongName +#define SCHEMA_IfcSpatialZoneType_LongName_IS_OPTIONAL +#define SCHEMA_HAS_IfcSphere +#define SCHEMA_IfcSphere_HAS_Radius +#define SCHEMA_HAS_IfcSphericalSurface +#define SCHEMA_IfcSphericalSurface_HAS_Radius +#define SCHEMA_HAS_IfcStackTerminal +#define SCHEMA_IfcStackTerminal_HAS_PredefinedType +#define SCHEMA_IfcStackTerminal_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcStackTerminalType +#define SCHEMA_IfcStackTerminalType_HAS_PredefinedType +#define SCHEMA_HAS_IfcStair +#define SCHEMA_IfcStair_HAS_PredefinedType +#define SCHEMA_IfcStair_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcStairFlight +#define SCHEMA_IfcStairFlight_HAS_NumberOfRisers +#define SCHEMA_IfcStairFlight_NumberOfRisers_IS_OPTIONAL +#define SCHEMA_IfcStairFlight_HAS_NumberOfTreads +#define SCHEMA_IfcStairFlight_NumberOfTreads_IS_OPTIONAL +#define SCHEMA_IfcStairFlight_HAS_RiserHeight +#define SCHEMA_IfcStairFlight_RiserHeight_IS_OPTIONAL +#define SCHEMA_IfcStairFlight_HAS_TreadLength +#define SCHEMA_IfcStairFlight_TreadLength_IS_OPTIONAL +#define SCHEMA_IfcStairFlight_HAS_PredefinedType +#define SCHEMA_IfcStairFlight_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcStairFlightType +#define SCHEMA_IfcStairFlightType_HAS_PredefinedType +#define SCHEMA_HAS_IfcStairType +#define SCHEMA_IfcStairType_HAS_PredefinedType +#define SCHEMA_HAS_IfcStructuralAction +#define SCHEMA_IfcStructuralAction_HAS_DestabilizingLoad +#define SCHEMA_IfcStructuralAction_DestabilizingLoad_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralActivity +#define SCHEMA_IfcStructuralActivity_HAS_AppliedLoad +#define SCHEMA_IfcStructuralActivity_HAS_GlobalOrLocal +#define SCHEMA_HAS_IfcStructuralAnalysisModel +#define SCHEMA_IfcStructuralAnalysisModel_HAS_PredefinedType +#define SCHEMA_IfcStructuralAnalysisModel_HAS_OrientationOf2DPlane +#define SCHEMA_IfcStructuralAnalysisModel_OrientationOf2DPlane_IS_OPTIONAL +#define SCHEMA_IfcStructuralAnalysisModel_HAS_LoadedBy +#define SCHEMA_IfcStructuralAnalysisModel_LoadedBy_IS_OPTIONAL +#define SCHEMA_IfcStructuralAnalysisModel_HAS_HasResults +#define SCHEMA_IfcStructuralAnalysisModel_HasResults_IS_OPTIONAL +#define SCHEMA_IfcStructuralAnalysisModel_HAS_SharedPlacement +#define SCHEMA_IfcStructuralAnalysisModel_SharedPlacement_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralConnection +#define SCHEMA_IfcStructuralConnection_HAS_AppliedCondition +#define SCHEMA_IfcStructuralConnection_AppliedCondition_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralConnectionCondition +#define SCHEMA_IfcStructuralConnectionCondition_HAS_Name +#define SCHEMA_IfcStructuralConnectionCondition_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralCurveAction +#define SCHEMA_IfcStructuralCurveAction_HAS_ProjectedOrTrue +#define SCHEMA_IfcStructuralCurveAction_ProjectedOrTrue_IS_OPTIONAL +#define SCHEMA_IfcStructuralCurveAction_HAS_PredefinedType +#define SCHEMA_HAS_IfcStructuralCurveConnection +#define SCHEMA_IfcStructuralCurveConnection_HAS_Axis +#define SCHEMA_HAS_IfcStructuralCurveMember +#define SCHEMA_IfcStructuralCurveMember_HAS_PredefinedType +#define SCHEMA_IfcStructuralCurveMember_HAS_Axis +#define SCHEMA_HAS_IfcStructuralCurveMemberVarying +#define SCHEMA_HAS_IfcStructuralCurveReaction +#define SCHEMA_IfcStructuralCurveReaction_HAS_PredefinedType +#define SCHEMA_HAS_IfcStructuralItem +#define SCHEMA_HAS_IfcStructuralLinearAction +#define SCHEMA_HAS_IfcStructuralLoad +#define SCHEMA_IfcStructuralLoad_HAS_Name +#define SCHEMA_IfcStructuralLoad_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadCase +#define SCHEMA_IfcStructuralLoadCase_HAS_SelfWeightCoefficients +#define SCHEMA_IfcStructuralLoadCase_SelfWeightCoefficients_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadConfiguration +#define SCHEMA_IfcStructuralLoadConfiguration_HAS_Values +#define SCHEMA_IfcStructuralLoadConfiguration_HAS_Locations +#define SCHEMA_IfcStructuralLoadConfiguration_Locations_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadGroup +#define SCHEMA_IfcStructuralLoadGroup_HAS_PredefinedType +#define SCHEMA_IfcStructuralLoadGroup_HAS_ActionType +#define SCHEMA_IfcStructuralLoadGroup_HAS_ActionSource +#define SCHEMA_IfcStructuralLoadGroup_HAS_Coefficient +#define SCHEMA_IfcStructuralLoadGroup_Coefficient_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadGroup_HAS_Purpose +#define SCHEMA_IfcStructuralLoadGroup_Purpose_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadLinearForce +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearForceX +#define SCHEMA_IfcStructuralLoadLinearForce_LinearForceX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearForceY +#define SCHEMA_IfcStructuralLoadLinearForce_LinearForceY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearForceZ +#define SCHEMA_IfcStructuralLoadLinearForce_LinearForceZ_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearMomentX +#define SCHEMA_IfcStructuralLoadLinearForce_LinearMomentX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearMomentY +#define SCHEMA_IfcStructuralLoadLinearForce_LinearMomentY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearMomentZ +#define SCHEMA_IfcStructuralLoadLinearForce_LinearMomentZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadOrResult +#define SCHEMA_HAS_IfcStructuralLoadPlanarForce +#define SCHEMA_IfcStructuralLoadPlanarForce_HAS_PlanarForceX +#define SCHEMA_IfcStructuralLoadPlanarForce_PlanarForceX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadPlanarForce_HAS_PlanarForceY +#define SCHEMA_IfcStructuralLoadPlanarForce_PlanarForceY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadPlanarForce_HAS_PlanarForceZ +#define SCHEMA_IfcStructuralLoadPlanarForce_PlanarForceZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadSingleDisplacement +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_DisplacementX +#define SCHEMA_IfcStructuralLoadSingleDisplacement_DisplacementX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_DisplacementY +#define SCHEMA_IfcStructuralLoadSingleDisplacement_DisplacementY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_DisplacementZ +#define SCHEMA_IfcStructuralLoadSingleDisplacement_DisplacementZ_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_RotationalDisplacementRX +#define SCHEMA_IfcStructuralLoadSingleDisplacement_RotationalDisplacementRX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_RotationalDisplacementRY +#define SCHEMA_IfcStructuralLoadSingleDisplacement_RotationalDisplacementRY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_RotationalDisplacementRZ +#define SCHEMA_IfcStructuralLoadSingleDisplacement_RotationalDisplacementRZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadSingleDisplacementDistortion +#define SCHEMA_IfcStructuralLoadSingleDisplacementDistortion_HAS_Distortion +#define SCHEMA_IfcStructuralLoadSingleDisplacementDistortion_Distortion_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadSingleForce +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_ForceX +#define SCHEMA_IfcStructuralLoadSingleForce_ForceX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_ForceY +#define SCHEMA_IfcStructuralLoadSingleForce_ForceY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_ForceZ +#define SCHEMA_IfcStructuralLoadSingleForce_ForceZ_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_MomentX +#define SCHEMA_IfcStructuralLoadSingleForce_MomentX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_MomentY +#define SCHEMA_IfcStructuralLoadSingleForce_MomentY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_MomentZ +#define SCHEMA_IfcStructuralLoadSingleForce_MomentZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadSingleForceWarping +#define SCHEMA_IfcStructuralLoadSingleForceWarping_HAS_WarpingMoment +#define SCHEMA_IfcStructuralLoadSingleForceWarping_WarpingMoment_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadStatic +#define SCHEMA_HAS_IfcStructuralLoadTemperature +#define SCHEMA_IfcStructuralLoadTemperature_HAS_DeltaTConstant +#define SCHEMA_IfcStructuralLoadTemperature_DeltaTConstant_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadTemperature_HAS_DeltaTY +#define SCHEMA_IfcStructuralLoadTemperature_DeltaTY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadTemperature_HAS_DeltaTZ +#define SCHEMA_IfcStructuralLoadTemperature_DeltaTZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralMember +#define SCHEMA_HAS_IfcStructuralPlanarAction +#define SCHEMA_HAS_IfcStructuralPointAction +#define SCHEMA_HAS_IfcStructuralPointConnection +#define SCHEMA_IfcStructuralPointConnection_HAS_ConditionCoordinateSystem +#define SCHEMA_IfcStructuralPointConnection_ConditionCoordinateSystem_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralPointReaction +#define SCHEMA_HAS_IfcStructuralReaction +#define SCHEMA_HAS_IfcStructuralResultGroup +#define SCHEMA_IfcStructuralResultGroup_HAS_TheoryType +#define SCHEMA_IfcStructuralResultGroup_HAS_ResultForLoadGroup +#define SCHEMA_IfcStructuralResultGroup_ResultForLoadGroup_IS_OPTIONAL +#define SCHEMA_IfcStructuralResultGroup_HAS_IsLinear +#define SCHEMA_HAS_IfcStructuralSurfaceAction +#define SCHEMA_IfcStructuralSurfaceAction_HAS_ProjectedOrTrue +#define SCHEMA_IfcStructuralSurfaceAction_ProjectedOrTrue_IS_OPTIONAL +#define SCHEMA_IfcStructuralSurfaceAction_HAS_PredefinedType +#define SCHEMA_HAS_IfcStructuralSurfaceConnection +#define SCHEMA_HAS_IfcStructuralSurfaceMember +#define SCHEMA_IfcStructuralSurfaceMember_HAS_PredefinedType +#define SCHEMA_IfcStructuralSurfaceMember_HAS_Thickness +#define SCHEMA_IfcStructuralSurfaceMember_Thickness_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralSurfaceMemberVarying +#define SCHEMA_HAS_IfcStructuralSurfaceReaction +#define SCHEMA_IfcStructuralSurfaceReaction_HAS_PredefinedType +#define SCHEMA_HAS_IfcStyleModel +#define SCHEMA_HAS_IfcStyledItem +#define SCHEMA_IfcStyledItem_HAS_Item +#define SCHEMA_IfcStyledItem_Item_IS_OPTIONAL +#define SCHEMA_IfcStyledItem_HAS_Styles +#define SCHEMA_IfcStyledItem_HAS_Name +#define SCHEMA_IfcStyledItem_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcStyledRepresentation +#define SCHEMA_HAS_IfcSubContractResource +#define SCHEMA_IfcSubContractResource_HAS_PredefinedType +#define SCHEMA_IfcSubContractResource_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSubContractResourceType +#define SCHEMA_IfcSubContractResourceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcSubedge +#define SCHEMA_IfcSubedge_HAS_ParentEdge +#define SCHEMA_HAS_IfcSurface +#define SCHEMA_HAS_IfcSurfaceCurve +#define SCHEMA_IfcSurfaceCurve_HAS_Curve3D +#define SCHEMA_IfcSurfaceCurve_HAS_AssociatedGeometry +#define SCHEMA_IfcSurfaceCurve_HAS_MasterRepresentation +#define SCHEMA_HAS_IfcSurfaceCurveSweptAreaSolid +#define SCHEMA_IfcSurfaceCurveSweptAreaSolid_HAS_Directrix +#define SCHEMA_IfcSurfaceCurveSweptAreaSolid_HAS_StartParam +#define SCHEMA_IfcSurfaceCurveSweptAreaSolid_StartParam_IS_OPTIONAL +#define SCHEMA_IfcSurfaceCurveSweptAreaSolid_HAS_EndParam +#define SCHEMA_IfcSurfaceCurveSweptAreaSolid_EndParam_IS_OPTIONAL +#define SCHEMA_IfcSurfaceCurveSweptAreaSolid_HAS_ReferenceSurface +#define SCHEMA_HAS_IfcSurfaceFeature +#define SCHEMA_IfcSurfaceFeature_HAS_PredefinedType +#define SCHEMA_IfcSurfaceFeature_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSurfaceOfLinearExtrusion +#define SCHEMA_IfcSurfaceOfLinearExtrusion_HAS_ExtrudedDirection +#define SCHEMA_IfcSurfaceOfLinearExtrusion_HAS_Depth +#define SCHEMA_HAS_IfcSurfaceOfRevolution +#define SCHEMA_IfcSurfaceOfRevolution_HAS_AxisPosition +#define SCHEMA_HAS_IfcSurfaceReinforcementArea +#define SCHEMA_IfcSurfaceReinforcementArea_HAS_SurfaceReinforcement1 +#define SCHEMA_IfcSurfaceReinforcementArea_SurfaceReinforcement1_IS_OPTIONAL +#define SCHEMA_IfcSurfaceReinforcementArea_HAS_SurfaceReinforcement2 +#define SCHEMA_IfcSurfaceReinforcementArea_SurfaceReinforcement2_IS_OPTIONAL +#define SCHEMA_IfcSurfaceReinforcementArea_HAS_ShearReinforcement +#define SCHEMA_IfcSurfaceReinforcementArea_ShearReinforcement_IS_OPTIONAL +#define SCHEMA_HAS_IfcSurfaceStyle +#define SCHEMA_IfcSurfaceStyle_HAS_Side +#define SCHEMA_IfcSurfaceStyle_HAS_Styles +#define SCHEMA_HAS_IfcSurfaceStyleLighting +#define SCHEMA_IfcSurfaceStyleLighting_HAS_DiffuseTransmissionColour +#define SCHEMA_IfcSurfaceStyleLighting_HAS_DiffuseReflectionColour +#define SCHEMA_IfcSurfaceStyleLighting_HAS_TransmissionColour +#define SCHEMA_IfcSurfaceStyleLighting_HAS_ReflectanceColour +#define SCHEMA_HAS_IfcSurfaceStyleRefraction +#define SCHEMA_IfcSurfaceStyleRefraction_HAS_RefractionIndex +#define SCHEMA_IfcSurfaceStyleRefraction_RefractionIndex_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRefraction_HAS_DispersionFactor +#define SCHEMA_IfcSurfaceStyleRefraction_DispersionFactor_IS_OPTIONAL +#define SCHEMA_HAS_IfcSurfaceStyleRendering +#define SCHEMA_IfcSurfaceStyleRendering_HAS_DiffuseColour +#define SCHEMA_IfcSurfaceStyleRendering_DiffuseColour_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_TransmissionColour +#define SCHEMA_IfcSurfaceStyleRendering_TransmissionColour_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_DiffuseTransmissionColour +#define SCHEMA_IfcSurfaceStyleRendering_DiffuseTransmissionColour_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_ReflectionColour +#define SCHEMA_IfcSurfaceStyleRendering_ReflectionColour_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_SpecularColour +#define SCHEMA_IfcSurfaceStyleRendering_SpecularColour_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_SpecularHighlight +#define SCHEMA_IfcSurfaceStyleRendering_SpecularHighlight_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_ReflectanceMethod +#define SCHEMA_HAS_IfcSurfaceStyleShading +#define SCHEMA_IfcSurfaceStyleShading_HAS_SurfaceColour +#define SCHEMA_IfcSurfaceStyleShading_HAS_Transparency +#define SCHEMA_IfcSurfaceStyleShading_Transparency_IS_OPTIONAL +#define SCHEMA_HAS_IfcSurfaceStyleWithTextures +#define SCHEMA_IfcSurfaceStyleWithTextures_HAS_Textures +#define SCHEMA_HAS_IfcSurfaceTexture +#define SCHEMA_IfcSurfaceTexture_HAS_RepeatS +#define SCHEMA_IfcSurfaceTexture_HAS_RepeatT +#define SCHEMA_IfcSurfaceTexture_HAS_Mode +#define SCHEMA_IfcSurfaceTexture_Mode_IS_OPTIONAL +#define SCHEMA_IfcSurfaceTexture_HAS_TextureTransform +#define SCHEMA_IfcSurfaceTexture_TextureTransform_IS_OPTIONAL +#define SCHEMA_IfcSurfaceTexture_HAS_Parameter +#define SCHEMA_IfcSurfaceTexture_Parameter_IS_OPTIONAL +#define SCHEMA_HAS_IfcSweptAreaSolid +#define SCHEMA_IfcSweptAreaSolid_HAS_SweptArea +#define SCHEMA_IfcSweptAreaSolid_HAS_Position +#define SCHEMA_IfcSweptAreaSolid_Position_IS_OPTIONAL +#define SCHEMA_HAS_IfcSweptDiskSolid +#define SCHEMA_IfcSweptDiskSolid_HAS_Directrix +#define SCHEMA_IfcSweptDiskSolid_HAS_Radius +#define SCHEMA_IfcSweptDiskSolid_HAS_InnerRadius +#define SCHEMA_IfcSweptDiskSolid_InnerRadius_IS_OPTIONAL +#define SCHEMA_IfcSweptDiskSolid_HAS_StartParam +#define SCHEMA_IfcSweptDiskSolid_StartParam_IS_OPTIONAL +#define SCHEMA_IfcSweptDiskSolid_HAS_EndParam +#define SCHEMA_IfcSweptDiskSolid_EndParam_IS_OPTIONAL +#define SCHEMA_HAS_IfcSweptDiskSolidPolygonal +#define SCHEMA_IfcSweptDiskSolidPolygonal_HAS_FilletRadius +#define SCHEMA_IfcSweptDiskSolidPolygonal_FilletRadius_IS_OPTIONAL +#define SCHEMA_HAS_IfcSweptSurface +#define SCHEMA_IfcSweptSurface_HAS_SweptCurve +#define SCHEMA_IfcSweptSurface_HAS_Position +#define SCHEMA_IfcSweptSurface_Position_IS_OPTIONAL +#define SCHEMA_HAS_IfcSwitchingDevice +#define SCHEMA_IfcSwitchingDevice_HAS_PredefinedType +#define SCHEMA_IfcSwitchingDevice_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSwitchingDeviceType +#define SCHEMA_IfcSwitchingDeviceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcSystem +#define SCHEMA_HAS_IfcSystemFurnitureElement +#define SCHEMA_IfcSystemFurnitureElement_HAS_PredefinedType +#define SCHEMA_IfcSystemFurnitureElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSystemFurnitureElementType +#define SCHEMA_IfcSystemFurnitureElementType_HAS_PredefinedType +#define SCHEMA_IfcSystemFurnitureElementType_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTShapeProfileDef +#define SCHEMA_IfcTShapeProfileDef_HAS_Depth +#define SCHEMA_IfcTShapeProfileDef_HAS_FlangeWidth +#define SCHEMA_IfcTShapeProfileDef_HAS_WebThickness +#define SCHEMA_IfcTShapeProfileDef_HAS_FlangeThickness +#define SCHEMA_IfcTShapeProfileDef_HAS_FilletRadius +#define SCHEMA_IfcTShapeProfileDef_FilletRadius_IS_OPTIONAL +#define SCHEMA_IfcTShapeProfileDef_HAS_FlangeEdgeRadius +#define SCHEMA_IfcTShapeProfileDef_FlangeEdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcTShapeProfileDef_HAS_WebEdgeRadius +#define SCHEMA_IfcTShapeProfileDef_WebEdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcTShapeProfileDef_HAS_WebSlope +#define SCHEMA_IfcTShapeProfileDef_WebSlope_IS_OPTIONAL +#define SCHEMA_IfcTShapeProfileDef_HAS_FlangeSlope +#define SCHEMA_IfcTShapeProfileDef_FlangeSlope_IS_OPTIONAL +#define SCHEMA_HAS_IfcTable +#define SCHEMA_IfcTable_HAS_Name +#define SCHEMA_IfcTable_Name_IS_OPTIONAL +#define SCHEMA_IfcTable_HAS_Rows +#define SCHEMA_IfcTable_Rows_IS_OPTIONAL +#define SCHEMA_IfcTable_HAS_Columns +#define SCHEMA_IfcTable_Columns_IS_OPTIONAL +#define SCHEMA_HAS_IfcTableColumn +#define SCHEMA_IfcTableColumn_HAS_Identifier +#define SCHEMA_IfcTableColumn_Identifier_IS_OPTIONAL +#define SCHEMA_IfcTableColumn_HAS_Name +#define SCHEMA_IfcTableColumn_Name_IS_OPTIONAL +#define SCHEMA_IfcTableColumn_HAS_Description +#define SCHEMA_IfcTableColumn_Description_IS_OPTIONAL +#define SCHEMA_IfcTableColumn_HAS_Unit +#define SCHEMA_IfcTableColumn_Unit_IS_OPTIONAL +#define SCHEMA_IfcTableColumn_HAS_ReferencePath +#define SCHEMA_IfcTableColumn_ReferencePath_IS_OPTIONAL +#define SCHEMA_HAS_IfcTableRow +#define SCHEMA_IfcTableRow_HAS_RowCells +#define SCHEMA_IfcTableRow_RowCells_IS_OPTIONAL +#define SCHEMA_IfcTableRow_HAS_IsHeading +#define SCHEMA_IfcTableRow_IsHeading_IS_OPTIONAL +#define SCHEMA_HAS_IfcTank +#define SCHEMA_IfcTank_HAS_PredefinedType +#define SCHEMA_IfcTank_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTankType +#define SCHEMA_IfcTankType_HAS_PredefinedType +#define SCHEMA_HAS_IfcTask +#define SCHEMA_IfcTask_HAS_Status +#define SCHEMA_IfcTask_Status_IS_OPTIONAL +#define SCHEMA_IfcTask_HAS_WorkMethod +#define SCHEMA_IfcTask_WorkMethod_IS_OPTIONAL +#define SCHEMA_IfcTask_HAS_IsMilestone +#define SCHEMA_IfcTask_HAS_Priority +#define SCHEMA_IfcTask_Priority_IS_OPTIONAL +#define SCHEMA_IfcTask_HAS_TaskTime +#define SCHEMA_IfcTask_TaskTime_IS_OPTIONAL +#define SCHEMA_IfcTask_HAS_PredefinedType +#define SCHEMA_IfcTask_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTaskTime +#define SCHEMA_IfcTaskTime_HAS_DurationType +#define SCHEMA_IfcTaskTime_DurationType_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_ScheduleDuration +#define SCHEMA_IfcTaskTime_ScheduleDuration_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_ScheduleStart +#define SCHEMA_IfcTaskTime_ScheduleStart_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_ScheduleFinish +#define SCHEMA_IfcTaskTime_ScheduleFinish_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_EarlyStart +#define SCHEMA_IfcTaskTime_EarlyStart_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_EarlyFinish +#define SCHEMA_IfcTaskTime_EarlyFinish_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_LateStart +#define SCHEMA_IfcTaskTime_LateStart_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_LateFinish +#define SCHEMA_IfcTaskTime_LateFinish_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_FreeFloat +#define SCHEMA_IfcTaskTime_FreeFloat_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_TotalFloat +#define SCHEMA_IfcTaskTime_TotalFloat_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_IsCritical +#define SCHEMA_IfcTaskTime_IsCritical_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_StatusTime +#define SCHEMA_IfcTaskTime_StatusTime_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_ActualDuration +#define SCHEMA_IfcTaskTime_ActualDuration_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_ActualStart +#define SCHEMA_IfcTaskTime_ActualStart_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_ActualFinish +#define SCHEMA_IfcTaskTime_ActualFinish_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_RemainingTime +#define SCHEMA_IfcTaskTime_RemainingTime_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_Completion +#define SCHEMA_IfcTaskTime_Completion_IS_OPTIONAL +#define SCHEMA_HAS_IfcTaskTimeRecurring +#define SCHEMA_IfcTaskTimeRecurring_HAS_Recurrence +#define SCHEMA_HAS_IfcTaskType +#define SCHEMA_IfcTaskType_HAS_PredefinedType +#define SCHEMA_IfcTaskType_HAS_WorkMethod +#define SCHEMA_IfcTaskType_WorkMethod_IS_OPTIONAL +#define SCHEMA_HAS_IfcTelecomAddress +#define SCHEMA_IfcTelecomAddress_HAS_TelephoneNumbers +#define SCHEMA_IfcTelecomAddress_TelephoneNumbers_IS_OPTIONAL +#define SCHEMA_IfcTelecomAddress_HAS_FacsimileNumbers +#define SCHEMA_IfcTelecomAddress_FacsimileNumbers_IS_OPTIONAL +#define SCHEMA_IfcTelecomAddress_HAS_PagerNumber +#define SCHEMA_IfcTelecomAddress_PagerNumber_IS_OPTIONAL +#define SCHEMA_IfcTelecomAddress_HAS_ElectronicMailAddresses +#define SCHEMA_IfcTelecomAddress_ElectronicMailAddresses_IS_OPTIONAL +#define SCHEMA_IfcTelecomAddress_HAS_WWWHomePageURL +#define SCHEMA_IfcTelecomAddress_WWWHomePageURL_IS_OPTIONAL +#define SCHEMA_IfcTelecomAddress_HAS_MessagingIDs +#define SCHEMA_IfcTelecomAddress_MessagingIDs_IS_OPTIONAL +#define SCHEMA_HAS_IfcTendon +#define SCHEMA_IfcTendon_HAS_PredefinedType +#define SCHEMA_IfcTendon_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_NominalDiameter +#define SCHEMA_IfcTendon_NominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_CrossSectionArea +#define SCHEMA_IfcTendon_CrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_TensionForce +#define SCHEMA_IfcTendon_TensionForce_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_PreStress +#define SCHEMA_IfcTendon_PreStress_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_FrictionCoefficient +#define SCHEMA_IfcTendon_FrictionCoefficient_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_AnchorageSlip +#define SCHEMA_IfcTendon_AnchorageSlip_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_MinCurvatureRadius +#define SCHEMA_IfcTendon_MinCurvatureRadius_IS_OPTIONAL +#define SCHEMA_HAS_IfcTendonAnchor +#define SCHEMA_IfcTendonAnchor_HAS_PredefinedType +#define SCHEMA_IfcTendonAnchor_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTendonAnchorType +#define SCHEMA_IfcTendonAnchorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcTendonType +#define SCHEMA_IfcTendonType_HAS_PredefinedType +#define SCHEMA_IfcTendonType_HAS_NominalDiameter +#define SCHEMA_IfcTendonType_NominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcTendonType_HAS_CrossSectionArea +#define SCHEMA_IfcTendonType_CrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcTendonType_HAS_SheathDiameter +#define SCHEMA_IfcTendonType_SheathDiameter_IS_OPTIONAL +#define SCHEMA_HAS_IfcTessellatedFaceSet +#define SCHEMA_IfcTessellatedFaceSet_HAS_Coordinates +#define SCHEMA_HAS_IfcTessellatedItem +#define SCHEMA_HAS_IfcTextLiteral +#define SCHEMA_IfcTextLiteral_HAS_Literal +#define SCHEMA_IfcTextLiteral_HAS_Placement +#define SCHEMA_IfcTextLiteral_HAS_Path +#define SCHEMA_HAS_IfcTextLiteralWithExtent +#define SCHEMA_IfcTextLiteralWithExtent_HAS_Extent +#define SCHEMA_IfcTextLiteralWithExtent_HAS_BoxAlignment +#define SCHEMA_HAS_IfcTextStyle +#define SCHEMA_IfcTextStyle_HAS_TextCharacterAppearance +#define SCHEMA_IfcTextStyle_TextCharacterAppearance_IS_OPTIONAL +#define SCHEMA_IfcTextStyle_HAS_TextStyle +#define SCHEMA_IfcTextStyle_TextStyle_IS_OPTIONAL +#define SCHEMA_IfcTextStyle_HAS_TextFontStyle +#define SCHEMA_IfcTextStyle_HAS_ModelOrDraughting +#define SCHEMA_IfcTextStyle_ModelOrDraughting_IS_OPTIONAL +#define SCHEMA_HAS_IfcTextStyleFontModel +#define SCHEMA_IfcTextStyleFontModel_HAS_FontFamily +#define SCHEMA_IfcTextStyleFontModel_HAS_FontStyle +#define SCHEMA_IfcTextStyleFontModel_FontStyle_IS_OPTIONAL +#define SCHEMA_IfcTextStyleFontModel_HAS_FontVariant +#define SCHEMA_IfcTextStyleFontModel_FontVariant_IS_OPTIONAL +#define SCHEMA_IfcTextStyleFontModel_HAS_FontWeight +#define SCHEMA_IfcTextStyleFontModel_FontWeight_IS_OPTIONAL +#define SCHEMA_IfcTextStyleFontModel_HAS_FontSize +#define SCHEMA_HAS_IfcTextStyleForDefinedFont +#define SCHEMA_IfcTextStyleForDefinedFont_HAS_Colour +#define SCHEMA_IfcTextStyleForDefinedFont_HAS_BackgroundColour +#define SCHEMA_IfcTextStyleForDefinedFont_BackgroundColour_IS_OPTIONAL +#define SCHEMA_HAS_IfcTextStyleTextModel +#define SCHEMA_IfcTextStyleTextModel_HAS_TextIndent +#define SCHEMA_IfcTextStyleTextModel_TextIndent_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_TextAlign +#define SCHEMA_IfcTextStyleTextModel_TextAlign_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_TextDecoration +#define SCHEMA_IfcTextStyleTextModel_TextDecoration_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_LetterSpacing +#define SCHEMA_IfcTextStyleTextModel_LetterSpacing_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_WordSpacing +#define SCHEMA_IfcTextStyleTextModel_WordSpacing_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_TextTransform +#define SCHEMA_IfcTextStyleTextModel_TextTransform_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_LineHeight +#define SCHEMA_IfcTextStyleTextModel_LineHeight_IS_OPTIONAL +#define SCHEMA_HAS_IfcTextureCoordinate +#define SCHEMA_IfcTextureCoordinate_HAS_Maps +#define SCHEMA_HAS_IfcTextureCoordinateGenerator +#define SCHEMA_IfcTextureCoordinateGenerator_HAS_Mode +#define SCHEMA_IfcTextureCoordinateGenerator_HAS_Parameter +#define SCHEMA_IfcTextureCoordinateGenerator_Parameter_IS_OPTIONAL +#define SCHEMA_HAS_IfcTextureMap +#define SCHEMA_IfcTextureMap_HAS_Vertices +#define SCHEMA_IfcTextureMap_HAS_MappedTo +#define SCHEMA_HAS_IfcTextureVertex +#define SCHEMA_IfcTextureVertex_HAS_Coordinates +#define SCHEMA_HAS_IfcTextureVertexList +#define SCHEMA_IfcTextureVertexList_HAS_TexCoordsList +#define SCHEMA_HAS_IfcTimePeriod +#define SCHEMA_IfcTimePeriod_HAS_StartTime +#define SCHEMA_IfcTimePeriod_HAS_EndTime +#define SCHEMA_HAS_IfcTimeSeries +#define SCHEMA_IfcTimeSeries_HAS_Name +#define SCHEMA_IfcTimeSeries_HAS_Description +#define SCHEMA_IfcTimeSeries_Description_IS_OPTIONAL +#define SCHEMA_IfcTimeSeries_HAS_StartTime +#define SCHEMA_IfcTimeSeries_HAS_EndTime +#define SCHEMA_IfcTimeSeries_HAS_TimeSeriesDataType +#define SCHEMA_IfcTimeSeries_HAS_DataOrigin +#define SCHEMA_IfcTimeSeries_HAS_UserDefinedDataOrigin +#define SCHEMA_IfcTimeSeries_UserDefinedDataOrigin_IS_OPTIONAL +#define SCHEMA_IfcTimeSeries_HAS_Unit +#define SCHEMA_IfcTimeSeries_Unit_IS_OPTIONAL +#define SCHEMA_HAS_IfcTimeSeriesValue +#define SCHEMA_IfcTimeSeriesValue_HAS_ListValues +#define SCHEMA_HAS_IfcTopologicalRepresentationItem +#define SCHEMA_HAS_IfcTopologyRepresentation +#define SCHEMA_HAS_IfcToroidalSurface +#define SCHEMA_IfcToroidalSurface_HAS_MajorRadius +#define SCHEMA_IfcToroidalSurface_HAS_MinorRadius +#define SCHEMA_HAS_IfcTransformer +#define SCHEMA_IfcTransformer_HAS_PredefinedType +#define SCHEMA_IfcTransformer_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTransformerType +#define SCHEMA_IfcTransformerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcTransitionCurveSegment2D +#define SCHEMA_IfcTransitionCurveSegment2D_HAS_StartRadius +#define SCHEMA_IfcTransitionCurveSegment2D_StartRadius_IS_OPTIONAL +#define SCHEMA_IfcTransitionCurveSegment2D_HAS_EndRadius +#define SCHEMA_IfcTransitionCurveSegment2D_EndRadius_IS_OPTIONAL +#define SCHEMA_IfcTransitionCurveSegment2D_HAS_IsStartRadiusCCW +#define SCHEMA_IfcTransitionCurveSegment2D_HAS_IsEndRadiusCCW +#define SCHEMA_IfcTransitionCurveSegment2D_HAS_TransitionCurveType +#define SCHEMA_HAS_IfcTransportElement +#define SCHEMA_IfcTransportElement_HAS_PredefinedType +#define SCHEMA_IfcTransportElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTransportElementType +#define SCHEMA_IfcTransportElementType_HAS_PredefinedType +#define SCHEMA_HAS_IfcTrapeziumProfileDef +#define SCHEMA_IfcTrapeziumProfileDef_HAS_BottomXDim +#define SCHEMA_IfcTrapeziumProfileDef_HAS_TopXDim +#define SCHEMA_IfcTrapeziumProfileDef_HAS_YDim +#define SCHEMA_IfcTrapeziumProfileDef_HAS_TopXOffset +#define SCHEMA_HAS_IfcTriangulatedFaceSet +#define SCHEMA_IfcTriangulatedFaceSet_HAS_Normals +#define SCHEMA_IfcTriangulatedFaceSet_Normals_IS_OPTIONAL +#define SCHEMA_IfcTriangulatedFaceSet_HAS_Closed +#define SCHEMA_IfcTriangulatedFaceSet_Closed_IS_OPTIONAL +#define SCHEMA_IfcTriangulatedFaceSet_HAS_CoordIndex +#define SCHEMA_IfcTriangulatedFaceSet_HAS_PnIndex +#define SCHEMA_IfcTriangulatedFaceSet_PnIndex_IS_OPTIONAL +#define SCHEMA_HAS_IfcTriangulatedIrregularNetwork +#define SCHEMA_IfcTriangulatedIrregularNetwork_HAS_Flags +#define SCHEMA_HAS_IfcTrimmedCurve +#define SCHEMA_IfcTrimmedCurve_HAS_BasisCurve +#define SCHEMA_IfcTrimmedCurve_HAS_Trim1 +#define SCHEMA_IfcTrimmedCurve_HAS_Trim2 +#define SCHEMA_IfcTrimmedCurve_HAS_SenseAgreement +#define SCHEMA_IfcTrimmedCurve_HAS_MasterRepresentation +#define SCHEMA_HAS_IfcTubeBundle +#define SCHEMA_IfcTubeBundle_HAS_PredefinedType +#define SCHEMA_IfcTubeBundle_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTubeBundleType +#define SCHEMA_IfcTubeBundleType_HAS_PredefinedType +#define SCHEMA_HAS_IfcTypeObject +#define SCHEMA_IfcTypeObject_HAS_ApplicableOccurrence +#define SCHEMA_IfcTypeObject_ApplicableOccurrence_IS_OPTIONAL +#define SCHEMA_IfcTypeObject_HAS_HasPropertySets +#define SCHEMA_IfcTypeObject_HasPropertySets_IS_OPTIONAL +#define SCHEMA_HAS_IfcTypeProcess +#define SCHEMA_IfcTypeProcess_HAS_Identification +#define SCHEMA_IfcTypeProcess_Identification_IS_OPTIONAL +#define SCHEMA_IfcTypeProcess_HAS_LongDescription +#define SCHEMA_IfcTypeProcess_LongDescription_IS_OPTIONAL +#define SCHEMA_IfcTypeProcess_HAS_ProcessType +#define SCHEMA_IfcTypeProcess_ProcessType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTypeProduct +#define SCHEMA_IfcTypeProduct_HAS_RepresentationMaps +#define SCHEMA_IfcTypeProduct_RepresentationMaps_IS_OPTIONAL +#define SCHEMA_IfcTypeProduct_HAS_Tag +#define SCHEMA_IfcTypeProduct_Tag_IS_OPTIONAL +#define SCHEMA_HAS_IfcTypeResource +#define SCHEMA_IfcTypeResource_HAS_Identification +#define SCHEMA_IfcTypeResource_Identification_IS_OPTIONAL +#define SCHEMA_IfcTypeResource_HAS_LongDescription +#define SCHEMA_IfcTypeResource_LongDescription_IS_OPTIONAL +#define SCHEMA_IfcTypeResource_HAS_ResourceType +#define SCHEMA_IfcTypeResource_ResourceType_IS_OPTIONAL +#define SCHEMA_HAS_IfcUShapeProfileDef +#define SCHEMA_IfcUShapeProfileDef_HAS_Depth +#define SCHEMA_IfcUShapeProfileDef_HAS_FlangeWidth +#define SCHEMA_IfcUShapeProfileDef_HAS_WebThickness +#define SCHEMA_IfcUShapeProfileDef_HAS_FlangeThickness +#define SCHEMA_IfcUShapeProfileDef_HAS_FilletRadius +#define SCHEMA_IfcUShapeProfileDef_FilletRadius_IS_OPTIONAL +#define SCHEMA_IfcUShapeProfileDef_HAS_EdgeRadius +#define SCHEMA_IfcUShapeProfileDef_EdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcUShapeProfileDef_HAS_FlangeSlope +#define SCHEMA_IfcUShapeProfileDef_FlangeSlope_IS_OPTIONAL +#define SCHEMA_HAS_IfcUnitAssignment +#define SCHEMA_IfcUnitAssignment_HAS_Units +#define SCHEMA_HAS_IfcUnitaryControlElement +#define SCHEMA_IfcUnitaryControlElement_HAS_PredefinedType +#define SCHEMA_IfcUnitaryControlElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcUnitaryControlElementType +#define SCHEMA_IfcUnitaryControlElementType_HAS_PredefinedType +#define SCHEMA_HAS_IfcUnitaryEquipment +#define SCHEMA_IfcUnitaryEquipment_HAS_PredefinedType +#define SCHEMA_IfcUnitaryEquipment_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcUnitaryEquipmentType +#define SCHEMA_IfcUnitaryEquipmentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcValve +#define SCHEMA_IfcValve_HAS_PredefinedType +#define SCHEMA_IfcValve_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcValveType +#define SCHEMA_IfcValveType_HAS_PredefinedType +#define SCHEMA_HAS_IfcVector +#define SCHEMA_IfcVector_HAS_Orientation +#define SCHEMA_IfcVector_HAS_Magnitude +#define SCHEMA_HAS_IfcVertex +#define SCHEMA_HAS_IfcVertexLoop +#define SCHEMA_IfcVertexLoop_HAS_LoopVertex +#define SCHEMA_HAS_IfcVertexPoint +#define SCHEMA_IfcVertexPoint_HAS_VertexGeometry +#define SCHEMA_HAS_IfcVibrationIsolator +#define SCHEMA_IfcVibrationIsolator_HAS_PredefinedType +#define SCHEMA_IfcVibrationIsolator_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcVibrationIsolatorType +#define SCHEMA_IfcVibrationIsolatorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcVirtualElement +#define SCHEMA_HAS_IfcVirtualGridIntersection +#define SCHEMA_IfcVirtualGridIntersection_HAS_IntersectingAxes +#define SCHEMA_IfcVirtualGridIntersection_HAS_OffsetDistances +#define SCHEMA_HAS_IfcVoidingFeature +#define SCHEMA_IfcVoidingFeature_HAS_PredefinedType +#define SCHEMA_IfcVoidingFeature_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWall +#define SCHEMA_IfcWall_HAS_PredefinedType +#define SCHEMA_IfcWall_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWallElementedCase +#define SCHEMA_HAS_IfcWallStandardCase +#define SCHEMA_HAS_IfcWallType +#define SCHEMA_IfcWallType_HAS_PredefinedType +#define SCHEMA_HAS_IfcWasteTerminal +#define SCHEMA_IfcWasteTerminal_HAS_PredefinedType +#define SCHEMA_IfcWasteTerminal_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWasteTerminalType +#define SCHEMA_IfcWasteTerminalType_HAS_PredefinedType +#define SCHEMA_HAS_IfcWindow +#define SCHEMA_IfcWindow_HAS_OverallHeight +#define SCHEMA_IfcWindow_OverallHeight_IS_OPTIONAL +#define SCHEMA_IfcWindow_HAS_OverallWidth +#define SCHEMA_IfcWindow_OverallWidth_IS_OPTIONAL +#define SCHEMA_IfcWindow_HAS_PredefinedType +#define SCHEMA_IfcWindow_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcWindow_HAS_PartitioningType +#define SCHEMA_IfcWindow_PartitioningType_IS_OPTIONAL +#define SCHEMA_IfcWindow_HAS_UserDefinedPartitioningType +#define SCHEMA_IfcWindow_UserDefinedPartitioningType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWindowLiningProperties +#define SCHEMA_IfcWindowLiningProperties_HAS_LiningDepth +#define SCHEMA_IfcWindowLiningProperties_LiningDepth_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_LiningThickness +#define SCHEMA_IfcWindowLiningProperties_LiningThickness_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_TransomThickness +#define SCHEMA_IfcWindowLiningProperties_TransomThickness_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_MullionThickness +#define SCHEMA_IfcWindowLiningProperties_MullionThickness_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_FirstTransomOffset +#define SCHEMA_IfcWindowLiningProperties_FirstTransomOffset_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_SecondTransomOffset +#define SCHEMA_IfcWindowLiningProperties_SecondTransomOffset_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_FirstMullionOffset +#define SCHEMA_IfcWindowLiningProperties_FirstMullionOffset_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_SecondMullionOffset +#define SCHEMA_IfcWindowLiningProperties_SecondMullionOffset_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_ShapeAspectStyle +#define SCHEMA_IfcWindowLiningProperties_ShapeAspectStyle_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_LiningOffset +#define SCHEMA_IfcWindowLiningProperties_LiningOffset_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_LiningToPanelOffsetX +#define SCHEMA_IfcWindowLiningProperties_LiningToPanelOffsetX_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_LiningToPanelOffsetY +#define SCHEMA_IfcWindowLiningProperties_LiningToPanelOffsetY_IS_OPTIONAL +#define SCHEMA_HAS_IfcWindowPanelProperties +#define SCHEMA_IfcWindowPanelProperties_HAS_OperationType +#define SCHEMA_IfcWindowPanelProperties_HAS_PanelPosition +#define SCHEMA_IfcWindowPanelProperties_HAS_FrameDepth +#define SCHEMA_IfcWindowPanelProperties_FrameDepth_IS_OPTIONAL +#define SCHEMA_IfcWindowPanelProperties_HAS_FrameThickness +#define SCHEMA_IfcWindowPanelProperties_FrameThickness_IS_OPTIONAL +#define SCHEMA_IfcWindowPanelProperties_HAS_ShapeAspectStyle +#define SCHEMA_IfcWindowPanelProperties_ShapeAspectStyle_IS_OPTIONAL +#define SCHEMA_HAS_IfcWindowStandardCase +#define SCHEMA_HAS_IfcWindowStyle +#define SCHEMA_IfcWindowStyle_HAS_ConstructionType +#define SCHEMA_IfcWindowStyle_HAS_OperationType +#define SCHEMA_IfcWindowStyle_HAS_ParameterTakesPrecedence +#define SCHEMA_IfcWindowStyle_HAS_Sizeable +#define SCHEMA_HAS_IfcWindowType +#define SCHEMA_IfcWindowType_HAS_PredefinedType +#define SCHEMA_IfcWindowType_HAS_PartitioningType +#define SCHEMA_IfcWindowType_HAS_ParameterTakesPrecedence +#define SCHEMA_IfcWindowType_ParameterTakesPrecedence_IS_OPTIONAL +#define SCHEMA_IfcWindowType_HAS_UserDefinedPartitioningType +#define SCHEMA_IfcWindowType_UserDefinedPartitioningType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWorkCalendar +#define SCHEMA_IfcWorkCalendar_HAS_WorkingTimes +#define SCHEMA_IfcWorkCalendar_WorkingTimes_IS_OPTIONAL +#define SCHEMA_IfcWorkCalendar_HAS_ExceptionTimes +#define SCHEMA_IfcWorkCalendar_ExceptionTimes_IS_OPTIONAL +#define SCHEMA_IfcWorkCalendar_HAS_PredefinedType +#define SCHEMA_IfcWorkCalendar_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWorkControl +#define SCHEMA_IfcWorkControl_HAS_CreationDate +#define SCHEMA_IfcWorkControl_HAS_Creators +#define SCHEMA_IfcWorkControl_Creators_IS_OPTIONAL +#define SCHEMA_IfcWorkControl_HAS_Purpose +#define SCHEMA_IfcWorkControl_Purpose_IS_OPTIONAL +#define SCHEMA_IfcWorkControl_HAS_Duration +#define SCHEMA_IfcWorkControl_Duration_IS_OPTIONAL +#define SCHEMA_IfcWorkControl_HAS_TotalFloat +#define SCHEMA_IfcWorkControl_TotalFloat_IS_OPTIONAL +#define SCHEMA_IfcWorkControl_HAS_StartTime +#define SCHEMA_IfcWorkControl_HAS_FinishTime +#define SCHEMA_IfcWorkControl_FinishTime_IS_OPTIONAL +#define SCHEMA_HAS_IfcWorkPlan +#define SCHEMA_IfcWorkPlan_HAS_PredefinedType +#define SCHEMA_IfcWorkPlan_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWorkSchedule +#define SCHEMA_IfcWorkSchedule_HAS_PredefinedType +#define SCHEMA_IfcWorkSchedule_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWorkTime +#define SCHEMA_IfcWorkTime_HAS_RecurrencePattern +#define SCHEMA_IfcWorkTime_RecurrencePattern_IS_OPTIONAL +#define SCHEMA_IfcWorkTime_HAS_Start +#define SCHEMA_IfcWorkTime_Start_IS_OPTIONAL +#define SCHEMA_IfcWorkTime_HAS_Finish +#define SCHEMA_IfcWorkTime_Finish_IS_OPTIONAL +#define SCHEMA_HAS_IfcZShapeProfileDef +#define SCHEMA_IfcZShapeProfileDef_HAS_Depth +#define SCHEMA_IfcZShapeProfileDef_HAS_FlangeWidth +#define SCHEMA_IfcZShapeProfileDef_HAS_WebThickness +#define SCHEMA_IfcZShapeProfileDef_HAS_FlangeThickness +#define SCHEMA_IfcZShapeProfileDef_HAS_FilletRadius +#define SCHEMA_IfcZShapeProfileDef_FilletRadius_IS_OPTIONAL +#define SCHEMA_IfcZShapeProfileDef_HAS_EdgeRadius +#define SCHEMA_IfcZShapeProfileDef_EdgeRadius_IS_OPTIONAL +#define SCHEMA_HAS_IfcZone +#define SCHEMA_IfcZone_HAS_LongName +#define SCHEMA_IfcZone_LongName_IS_OPTIONAL diff --git a/src/ifcparse/Ifc4x1-schema.cpp b/src/ifcparse/Ifc4x1-schema.cpp index 47e12c0716..11714c965d 100644 --- a/src/ifcparse/Ifc4x1-schema.cpp +++ b/src/ifcparse/Ifc4x1-schema.cpp @@ -19,7 +19,7 @@ /******************************************************************************** * * - * This file has been generated from IFC4x1.exp. Do not make modifications * + * This file has been generated from IFC4x1.exp. Do not make modifications * * but instead modify the python script that has been used to generate this. * * * ********************************************************************************/ diff --git a/src/ifcparse/Ifc4x1.cpp b/src/ifcparse/Ifc4x1.cpp index c70d151fdb..fd92632db2 100644 --- a/src/ifcparse/Ifc4x1.cpp +++ b/src/ifcparse/Ifc4x1.cpp @@ -19,7 +19,7 @@ /******************************************************************************** * * - * This file has been generated from IFC4x1.exp. Do not make modifications * + * This file has been generated from IFC4x1.exp. Do not make modifications * * but instead modify the python script that has been used to generate this. * * * ********************************************************************************/ diff --git a/src/ifcparse/Ifc4x1.h b/src/ifcparse/Ifc4x1.h index ecf594d1e5..bd7ef53829 100644 --- a/src/ifcparse/Ifc4x1.h +++ b/src/ifcparse/Ifc4x1.h @@ -19,12 +19,11 @@ /******************************************************************************** * * - * This file has been generated from IFC4x1.exp. Do not make modifications * + * This file has been generated from IFC4x1.exp. Do not make modifications * * but instead modify the python script that has been used to generate this. * * * ********************************************************************************/ - #ifndef IFC4X1_H #define IFC4X1_H @@ -41,8 +40,6 @@ #include "../ifcparse/IfcException.h" #include "../ifcparse/Argument.h" -#include "../ifcparse/Ifc4x1enum.h" - struct Ifc4x1 { static const IfcParse::schema_definition& get_schema(); diff --git a/src/ifcparse/Ifc4x1enum.h b/src/ifcparse/Ifc4x1enum.h deleted file mode 100644 index 8c6f142275..0000000000 --- a/src/ifcparse/Ifc4x1enum.h +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************** - * * - * This file is part of IfcOpenShell. * - * * - * IfcOpenShell is free software: you can redistribute it and/or modify * - * it under the terms of the Lesser GNU General Public License as published by * - * the Free Software Foundation, either version 3.0 of the License, or * - * (at your option) any later version. * - * * - * IfcOpenShell is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * Lesser GNU General Public License for more details. * - * * - * You should have received a copy of the Lesser GNU General Public License * - * along with this program. If not, see . * - * * - ********************************************************************************/ - -/******************************************************************************** - * * - * This file has been generated from IFC4x1.exp. Do not make modifications * - * but instead modify the python script that has been used to generate this. * - * * - ********************************************************************************/ - -#ifndef IFC4X1ENUM_H -#define IFC4X1ENUM_H - -#include "../ifcparse/ifc_parse_api.h" - -#include -#include - -#endif diff --git a/src/ifcparse/Ifc4x2-definitions.h b/src/ifcparse/Ifc4x2-definitions.h new file mode 100644 index 0000000000..82c0cf0122 --- /dev/null +++ b/src/ifcparse/Ifc4x2-definitions.h @@ -0,0 +1,3647 @@ +/******************************************************************************** + * * + * This file is part of IfcOpenShell. * + * * + * IfcOpenShell is free software: you can redistribute it and/or modify * + * it under the terms of the Lesser GNU General Public License as published by * + * the Free Software Foundation, either version 3.0 of the License, or * + * (at your option) any later version. * + * * + * IfcOpenShell is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * Lesser GNU General Public License for more details. * + * * + * You should have received a copy of the Lesser GNU General Public License * + * along with this program. If not, see . * + * * + ********************************************************************************/ + +/******************************************************************************** + * * + * This file has been generated from IFC4x2.exp. Do not make modifications * + * but instead modify the python script that has been used to generate this. * + * * + ********************************************************************************/ + +#define SCHEMA_HAS_IfcAbsorbedDoseMeasure +#define SCHEMA_HAS_IfcAccelerationMeasure +#define SCHEMA_HAS_IfcActionRequestTypeEnum +#define SCHEMA_HAS_IfcActionSourceTypeEnum +#define SCHEMA_HAS_IfcActionTypeEnum +#define SCHEMA_HAS_IfcActorSelect +#define SCHEMA_HAS_IfcActuatorTypeEnum +#define SCHEMA_HAS_IfcAddressTypeEnum +#define SCHEMA_HAS_IfcAirTerminalBoxTypeEnum +#define SCHEMA_HAS_IfcAirTerminalTypeEnum +#define SCHEMA_HAS_IfcAirToAirHeatRecoveryTypeEnum +#define SCHEMA_HAS_IfcAlarmTypeEnum +#define SCHEMA_HAS_IfcAlignmentTypeEnum +#define SCHEMA_HAS_IfcAmountOfSubstanceMeasure +#define SCHEMA_HAS_IfcAnalysisModelTypeEnum +#define SCHEMA_HAS_IfcAnalysisTheoryTypeEnum +#define SCHEMA_HAS_IfcAngularVelocityMeasure +#define SCHEMA_HAS_IfcAppliedValueSelect +#define SCHEMA_HAS_IfcArcIndex +#define SCHEMA_HAS_IfcAreaDensityMeasure +#define SCHEMA_HAS_IfcAreaMeasure +#define SCHEMA_HAS_IfcArithmeticOperatorEnum +#define SCHEMA_HAS_IfcAssemblyPlaceEnum +#define SCHEMA_HAS_IfcAudioVisualApplianceTypeEnum +#define SCHEMA_HAS_IfcAxis2Placement +#define SCHEMA_HAS_IfcBSplineCurveForm +#define SCHEMA_HAS_IfcBSplineSurfaceForm +#define SCHEMA_HAS_IfcBeamTypeEnum +#define SCHEMA_HAS_IfcBearingTypeDisplacementEnum +#define SCHEMA_HAS_IfcBearingTypeEnum +#define SCHEMA_HAS_IfcBenchmarkEnum +#define SCHEMA_HAS_IfcBendingParameterSelect +#define SCHEMA_HAS_IfcBinary +#define SCHEMA_HAS_IfcBoilerTypeEnum +#define SCHEMA_HAS_IfcBoolean +#define SCHEMA_HAS_IfcBooleanOperand +#define SCHEMA_HAS_IfcBooleanOperator +#define SCHEMA_HAS_IfcBoxAlignment +#define SCHEMA_HAS_IfcBridgePartTypeEnum +#define SCHEMA_HAS_IfcBridgeTypeEnum +#define SCHEMA_HAS_IfcBuildingElementPartTypeEnum +#define SCHEMA_HAS_IfcBuildingElementProxyTypeEnum +#define SCHEMA_HAS_IfcBuildingSystemTypeEnum +#define SCHEMA_HAS_IfcBurnerTypeEnum +#define SCHEMA_HAS_IfcCableCarrierFittingTypeEnum +#define SCHEMA_HAS_IfcCableCarrierSegmentTypeEnum +#define SCHEMA_HAS_IfcCableFittingTypeEnum +#define SCHEMA_HAS_IfcCableSegmentTypeEnum +#define SCHEMA_HAS_IfcCaissonFoundationTypeEnum +#define SCHEMA_HAS_IfcCardinalPointReference +#define SCHEMA_HAS_IfcChangeActionEnum +#define SCHEMA_HAS_IfcChillerTypeEnum +#define SCHEMA_HAS_IfcChimneyTypeEnum +#define SCHEMA_HAS_IfcClassificationReferenceSelect +#define SCHEMA_HAS_IfcClassificationSelect +#define SCHEMA_HAS_IfcCoilTypeEnum +#define SCHEMA_HAS_IfcColour +#define SCHEMA_HAS_IfcColourOrFactor +#define SCHEMA_HAS_IfcColumnTypeEnum +#define SCHEMA_HAS_IfcCommunicationsApplianceTypeEnum +#define SCHEMA_HAS_IfcComplexNumber +#define SCHEMA_HAS_IfcComplexPropertyTemplateTypeEnum +#define SCHEMA_HAS_IfcCompoundPlaneAngleMeasure +#define SCHEMA_HAS_IfcCompressorTypeEnum +#define SCHEMA_HAS_IfcCondenserTypeEnum +#define SCHEMA_HAS_IfcConnectionTypeEnum +#define SCHEMA_HAS_IfcConstraintEnum +#define SCHEMA_HAS_IfcConstructionEquipmentResourceTypeEnum +#define SCHEMA_HAS_IfcConstructionMaterialResourceTypeEnum +#define SCHEMA_HAS_IfcConstructionProductResourceTypeEnum +#define SCHEMA_HAS_IfcContextDependentMeasure +#define SCHEMA_HAS_IfcControllerTypeEnum +#define SCHEMA_HAS_IfcCooledBeamTypeEnum +#define SCHEMA_HAS_IfcCoolingTowerTypeEnum +#define SCHEMA_HAS_IfcCoordinateReferenceSystemSelect +#define SCHEMA_HAS_IfcCostItemTypeEnum +#define SCHEMA_HAS_IfcCostScheduleTypeEnum +#define SCHEMA_HAS_IfcCountMeasure +#define SCHEMA_HAS_IfcCoveringTypeEnum +#define SCHEMA_HAS_IfcCrewResourceTypeEnum +#define SCHEMA_HAS_IfcCsgSelect +#define SCHEMA_HAS_IfcCurtainWallTypeEnum +#define SCHEMA_HAS_IfcCurvatureMeasure +#define SCHEMA_HAS_IfcCurveFontOrScaledCurveFontSelect +#define SCHEMA_HAS_IfcCurveInterpolationEnum +#define SCHEMA_HAS_IfcCurveOnSurface +#define SCHEMA_HAS_IfcCurveOrEdgeCurve +#define SCHEMA_HAS_IfcCurveStyleFontSelect +#define SCHEMA_HAS_IfcDamperTypeEnum +#define SCHEMA_HAS_IfcDataOriginEnum +#define SCHEMA_HAS_IfcDate +#define SCHEMA_HAS_IfcDateTime +#define SCHEMA_HAS_IfcDayInMonthNumber +#define SCHEMA_HAS_IfcDayInWeekNumber +#define SCHEMA_HAS_IfcDefinitionSelect +#define SCHEMA_HAS_IfcDerivedMeasureValue +#define SCHEMA_HAS_IfcDerivedUnitEnum +#define SCHEMA_HAS_IfcDescriptiveMeasure +#define SCHEMA_HAS_IfcDimensionCount +#define SCHEMA_HAS_IfcDirectionSenseEnum +#define SCHEMA_HAS_IfcDiscreteAccessoryTypeEnum +#define SCHEMA_HAS_IfcDistributionChamberElementTypeEnum +#define SCHEMA_HAS_IfcDistributionPortTypeEnum +#define SCHEMA_HAS_IfcDistributionSystemEnum +#define SCHEMA_HAS_IfcDocumentConfidentialityEnum +#define SCHEMA_HAS_IfcDocumentSelect +#define SCHEMA_HAS_IfcDocumentStatusEnum +#define SCHEMA_HAS_IfcDoorPanelOperationEnum +#define SCHEMA_HAS_IfcDoorPanelPositionEnum +#define SCHEMA_HAS_IfcDoorStyleConstructionEnum +#define SCHEMA_HAS_IfcDoorStyleOperationEnum +#define SCHEMA_HAS_IfcDoorTypeEnum +#define SCHEMA_HAS_IfcDoorTypeOperationEnum +#define SCHEMA_HAS_IfcDoseEquivalentMeasure +#define SCHEMA_HAS_IfcDuctFittingTypeEnum +#define SCHEMA_HAS_IfcDuctSegmentTypeEnum +#define SCHEMA_HAS_IfcDuctSilencerTypeEnum +#define SCHEMA_HAS_IfcDuration +#define SCHEMA_HAS_IfcDynamicViscosityMeasure +#define SCHEMA_HAS_IfcElectricApplianceTypeEnum +#define SCHEMA_HAS_IfcElectricCapacitanceMeasure +#define SCHEMA_HAS_IfcElectricChargeMeasure +#define SCHEMA_HAS_IfcElectricConductanceMeasure +#define SCHEMA_HAS_IfcElectricCurrentMeasure +#define SCHEMA_HAS_IfcElectricDistributionBoardTypeEnum +#define SCHEMA_HAS_IfcElectricFlowStorageDeviceTypeEnum +#define SCHEMA_HAS_IfcElectricGeneratorTypeEnum +#define SCHEMA_HAS_IfcElectricMotorTypeEnum +#define SCHEMA_HAS_IfcElectricResistanceMeasure +#define SCHEMA_HAS_IfcElectricTimeControlTypeEnum +#define SCHEMA_HAS_IfcElectricVoltageMeasure +#define SCHEMA_HAS_IfcElementAssemblyTypeEnum +#define SCHEMA_HAS_IfcElementCompositionEnum +#define SCHEMA_HAS_IfcEnergyMeasure +#define SCHEMA_HAS_IfcEngineTypeEnum +#define SCHEMA_HAS_IfcEvaporativeCoolerTypeEnum +#define SCHEMA_HAS_IfcEvaporatorTypeEnum +#define SCHEMA_HAS_IfcEventTriggerTypeEnum +#define SCHEMA_HAS_IfcEventTypeEnum +#define SCHEMA_HAS_IfcExternalSpatialElementTypeEnum +#define SCHEMA_HAS_IfcFanTypeEnum +#define SCHEMA_HAS_IfcFastenerTypeEnum +#define SCHEMA_HAS_IfcFillStyleSelect +#define SCHEMA_HAS_IfcFilterTypeEnum +#define SCHEMA_HAS_IfcFireSuppressionTerminalTypeEnum +#define SCHEMA_HAS_IfcFlowDirectionEnum +#define SCHEMA_HAS_IfcFlowInstrumentTypeEnum +#define SCHEMA_HAS_IfcFlowMeterTypeEnum +#define SCHEMA_HAS_IfcFontStyle +#define SCHEMA_HAS_IfcFontVariant +#define SCHEMA_HAS_IfcFontWeight +#define SCHEMA_HAS_IfcFootingTypeEnum +#define SCHEMA_HAS_IfcForceMeasure +#define SCHEMA_HAS_IfcFrequencyMeasure +#define SCHEMA_HAS_IfcFurnitureTypeEnum +#define SCHEMA_HAS_IfcGeographicElementTypeEnum +#define SCHEMA_HAS_IfcGeometricProjectionEnum +#define SCHEMA_HAS_IfcGeometricSetSelect +#define SCHEMA_HAS_IfcGlobalOrLocalEnum +#define SCHEMA_HAS_IfcGloballyUniqueId +#define SCHEMA_HAS_IfcGridPlacementDirectionSelect +#define SCHEMA_HAS_IfcGridTypeEnum +#define SCHEMA_HAS_IfcHatchLineDistanceSelect +#define SCHEMA_HAS_IfcHeatExchangerTypeEnum +#define SCHEMA_HAS_IfcHeatFluxDensityMeasure +#define SCHEMA_HAS_IfcHeatingValueMeasure +#define SCHEMA_HAS_IfcHumidifierTypeEnum +#define SCHEMA_HAS_IfcIdentifier +#define SCHEMA_HAS_IfcIlluminanceMeasure +#define SCHEMA_HAS_IfcInductanceMeasure +#define SCHEMA_HAS_IfcInteger +#define SCHEMA_HAS_IfcIntegerCountRateMeasure +#define SCHEMA_HAS_IfcInterceptorTypeEnum +#define SCHEMA_HAS_IfcInternalOrExternalEnum +#define SCHEMA_HAS_IfcInventoryTypeEnum +#define SCHEMA_HAS_IfcIonConcentrationMeasure +#define SCHEMA_HAS_IfcIsothermalMoistureCapacityMeasure +#define SCHEMA_HAS_IfcJunctionBoxTypeEnum +#define SCHEMA_HAS_IfcKinematicViscosityMeasure +#define SCHEMA_HAS_IfcKnotType +#define SCHEMA_HAS_IfcLabel +#define SCHEMA_HAS_IfcLaborResourceTypeEnum +#define SCHEMA_HAS_IfcLampTypeEnum +#define SCHEMA_HAS_IfcLanguageId +#define SCHEMA_HAS_IfcLayerSetDirectionEnum +#define SCHEMA_HAS_IfcLayeredItem +#define SCHEMA_HAS_IfcLengthMeasure +#define SCHEMA_HAS_IfcLibrarySelect +#define SCHEMA_HAS_IfcLightDistributionCurveEnum +#define SCHEMA_HAS_IfcLightDistributionDataSourceSelect +#define SCHEMA_HAS_IfcLightEmissionSourceEnum +#define SCHEMA_HAS_IfcLightFixtureTypeEnum +#define SCHEMA_HAS_IfcLineIndex +#define SCHEMA_HAS_IfcLinearForceMeasure +#define SCHEMA_HAS_IfcLinearMomentMeasure +#define SCHEMA_HAS_IfcLinearStiffnessMeasure +#define SCHEMA_HAS_IfcLinearVelocityMeasure +#define SCHEMA_HAS_IfcLoadGroupTypeEnum +#define SCHEMA_HAS_IfcLogical +#define SCHEMA_HAS_IfcLogicalOperatorEnum +#define SCHEMA_HAS_IfcLuminousFluxMeasure +#define SCHEMA_HAS_IfcLuminousIntensityDistributionMeasure +#define SCHEMA_HAS_IfcLuminousIntensityMeasure +#define SCHEMA_HAS_IfcMagneticFluxDensityMeasure +#define SCHEMA_HAS_IfcMagneticFluxMeasure +#define SCHEMA_HAS_IfcMassDensityMeasure +#define SCHEMA_HAS_IfcMassFlowRateMeasure +#define SCHEMA_HAS_IfcMassMeasure +#define SCHEMA_HAS_IfcMassPerLengthMeasure +#define SCHEMA_HAS_IfcMaterialSelect +#define SCHEMA_HAS_IfcMeasureValue +#define SCHEMA_HAS_IfcMechanicalFastenerTypeEnum +#define SCHEMA_HAS_IfcMedicalDeviceTypeEnum +#define SCHEMA_HAS_IfcMemberTypeEnum +#define SCHEMA_HAS_IfcMetricValueSelect +#define SCHEMA_HAS_IfcModulusOfElasticityMeasure +#define SCHEMA_HAS_IfcModulusOfLinearSubgradeReactionMeasure +#define SCHEMA_HAS_IfcModulusOfRotationalSubgradeReactionMeasure +#define SCHEMA_HAS_IfcModulusOfRotationalSubgradeReactionSelect +#define SCHEMA_HAS_IfcModulusOfSubgradeReactionMeasure +#define SCHEMA_HAS_IfcModulusOfSubgradeReactionSelect +#define SCHEMA_HAS_IfcModulusOfTranslationalSubgradeReactionSelect +#define SCHEMA_HAS_IfcMoistureDiffusivityMeasure +#define SCHEMA_HAS_IfcMolecularWeightMeasure +#define SCHEMA_HAS_IfcMomentOfInertiaMeasure +#define SCHEMA_HAS_IfcMonetaryMeasure +#define SCHEMA_HAS_IfcMonthInYearNumber +#define SCHEMA_HAS_IfcMotorConnectionTypeEnum +#define SCHEMA_HAS_IfcNonNegativeLengthMeasure +#define SCHEMA_HAS_IfcNormalisedRatioMeasure +#define SCHEMA_HAS_IfcNullStyle +#define SCHEMA_HAS_IfcNumericMeasure +#define SCHEMA_HAS_IfcObjectReferenceSelect +#define SCHEMA_HAS_IfcObjectTypeEnum +#define SCHEMA_HAS_IfcObjectiveEnum +#define SCHEMA_HAS_IfcOccupantTypeEnum +#define SCHEMA_HAS_IfcOpeningElementTypeEnum +#define SCHEMA_HAS_IfcOutletTypeEnum +#define SCHEMA_HAS_IfcPHMeasure +#define SCHEMA_HAS_IfcParameterValue +#define SCHEMA_HAS_IfcPerformanceHistoryTypeEnum +#define SCHEMA_HAS_IfcPermeableCoveringOperationEnum +#define SCHEMA_HAS_IfcPermitTypeEnum +#define SCHEMA_HAS_IfcPhysicalOrVirtualEnum +#define SCHEMA_HAS_IfcPileConstructionEnum +#define SCHEMA_HAS_IfcPileTypeEnum +#define SCHEMA_HAS_IfcPipeFittingTypeEnum +#define SCHEMA_HAS_IfcPipeSegmentTypeEnum +#define SCHEMA_HAS_IfcPlanarForceMeasure +#define SCHEMA_HAS_IfcPlaneAngleMeasure +#define SCHEMA_HAS_IfcPlateTypeEnum +#define SCHEMA_HAS_IfcPointOrVertexPoint +#define SCHEMA_HAS_IfcPositiveInteger +#define SCHEMA_HAS_IfcPositiveLengthMeasure +#define SCHEMA_HAS_IfcPositivePlaneAngleMeasure +#define SCHEMA_HAS_IfcPositiveRatioMeasure +#define SCHEMA_HAS_IfcPowerMeasure +#define SCHEMA_HAS_IfcPreferredSurfaceCurveRepresentation +#define SCHEMA_HAS_IfcPresentableText +#define SCHEMA_HAS_IfcPresentationStyleSelect +#define SCHEMA_HAS_IfcPressureMeasure +#define SCHEMA_HAS_IfcProcedureTypeEnum +#define SCHEMA_HAS_IfcProcessSelect +#define SCHEMA_HAS_IfcProductRepresentationSelect +#define SCHEMA_HAS_IfcProductSelect +#define SCHEMA_HAS_IfcProfileTypeEnum +#define SCHEMA_HAS_IfcProjectOrderTypeEnum +#define SCHEMA_HAS_IfcProjectedOrTrueLengthEnum +#define SCHEMA_HAS_IfcProjectionElementTypeEnum +#define SCHEMA_HAS_IfcPropertySetDefinitionSelect +#define SCHEMA_HAS_IfcPropertySetDefinitionSet +#define SCHEMA_HAS_IfcPropertySetTemplateTypeEnum +#define SCHEMA_HAS_IfcProtectiveDeviceTrippingUnitTypeEnum +#define SCHEMA_HAS_IfcProtectiveDeviceTypeEnum +#define SCHEMA_HAS_IfcPumpTypeEnum +#define SCHEMA_HAS_IfcRadioActivityMeasure +#define SCHEMA_HAS_IfcRailingTypeEnum +#define SCHEMA_HAS_IfcRampFlightTypeEnum +#define SCHEMA_HAS_IfcRampTypeEnum +#define SCHEMA_HAS_IfcRatioMeasure +#define SCHEMA_HAS_IfcReal +#define SCHEMA_HAS_IfcRecurrenceTypeEnum +#define SCHEMA_HAS_IfcReferentTypeEnum +#define SCHEMA_HAS_IfcReflectanceMethodEnum +#define SCHEMA_HAS_IfcReinforcingBarRoleEnum +#define SCHEMA_HAS_IfcReinforcingBarSurfaceEnum +#define SCHEMA_HAS_IfcReinforcingBarTypeEnum +#define SCHEMA_HAS_IfcReinforcingMeshTypeEnum +#define SCHEMA_HAS_IfcResourceObjectSelect +#define SCHEMA_HAS_IfcResourceSelect +#define SCHEMA_HAS_IfcRoleEnum +#define SCHEMA_HAS_IfcRoofTypeEnum +#define SCHEMA_HAS_IfcRotationalFrequencyMeasure +#define SCHEMA_HAS_IfcRotationalMassMeasure +#define SCHEMA_HAS_IfcRotationalStiffnessMeasure +#define SCHEMA_HAS_IfcRotationalStiffnessSelect +#define SCHEMA_HAS_IfcSIPrefix +#define SCHEMA_HAS_IfcSIUnitName +#define SCHEMA_HAS_IfcSanitaryTerminalTypeEnum +#define SCHEMA_HAS_IfcSectionModulusMeasure +#define SCHEMA_HAS_IfcSectionTypeEnum +#define SCHEMA_HAS_IfcSectionalAreaIntegralMeasure +#define SCHEMA_HAS_IfcSegmentIndexSelect +#define SCHEMA_HAS_IfcSensorTypeEnum +#define SCHEMA_HAS_IfcSequenceEnum +#define SCHEMA_HAS_IfcShadingDeviceTypeEnum +#define SCHEMA_HAS_IfcShearModulusMeasure +#define SCHEMA_HAS_IfcShell +#define SCHEMA_HAS_IfcSimplePropertyTemplateTypeEnum +#define SCHEMA_HAS_IfcSimpleValue +#define SCHEMA_HAS_IfcSizeSelect +#define SCHEMA_HAS_IfcSlabTypeEnum +#define SCHEMA_HAS_IfcSolarDeviceTypeEnum +#define SCHEMA_HAS_IfcSolidAngleMeasure +#define SCHEMA_HAS_IfcSolidOrShell +#define SCHEMA_HAS_IfcSoundPowerLevelMeasure +#define SCHEMA_HAS_IfcSoundPowerMeasure +#define SCHEMA_HAS_IfcSoundPressureLevelMeasure +#define SCHEMA_HAS_IfcSoundPressureMeasure +#define SCHEMA_HAS_IfcSpaceBoundarySelect +#define SCHEMA_HAS_IfcSpaceHeaterTypeEnum +#define SCHEMA_HAS_IfcSpaceTypeEnum +#define SCHEMA_HAS_IfcSpatialZoneTypeEnum +#define SCHEMA_HAS_IfcSpecificHeatCapacityMeasure +#define SCHEMA_HAS_IfcSpecularExponent +#define SCHEMA_HAS_IfcSpecularHighlightSelect +#define SCHEMA_HAS_IfcSpecularRoughness +#define SCHEMA_HAS_IfcStackTerminalTypeEnum +#define SCHEMA_HAS_IfcStairFlightTypeEnum +#define SCHEMA_HAS_IfcStairTypeEnum +#define SCHEMA_HAS_IfcStateEnum +#define SCHEMA_HAS_IfcStructuralActivityAssignmentSelect +#define SCHEMA_HAS_IfcStructuralCurveActivityTypeEnum +#define SCHEMA_HAS_IfcStructuralCurveMemberTypeEnum +#define SCHEMA_HAS_IfcStructuralSurfaceActivityTypeEnum +#define SCHEMA_HAS_IfcStructuralSurfaceMemberTypeEnum +#define SCHEMA_HAS_IfcStyleAssignmentSelect +#define SCHEMA_HAS_IfcSubContractResourceTypeEnum +#define SCHEMA_HAS_IfcSurfaceFeatureTypeEnum +#define SCHEMA_HAS_IfcSurfaceOrFaceSurface +#define SCHEMA_HAS_IfcSurfaceSide +#define SCHEMA_HAS_IfcSurfaceStyleElementSelect +#define SCHEMA_HAS_IfcSwitchingDeviceTypeEnum +#define SCHEMA_HAS_IfcSystemFurnitureElementTypeEnum +#define SCHEMA_HAS_IfcTankTypeEnum +#define SCHEMA_HAS_IfcTaskDurationEnum +#define SCHEMA_HAS_IfcTaskTypeEnum +#define SCHEMA_HAS_IfcTemperatureGradientMeasure +#define SCHEMA_HAS_IfcTemperatureRateOfChangeMeasure +#define SCHEMA_HAS_IfcTendonAnchorTypeEnum +#define SCHEMA_HAS_IfcTendonConduitTypeEnum +#define SCHEMA_HAS_IfcTendonTypeEnum +#define SCHEMA_HAS_IfcText +#define SCHEMA_HAS_IfcTextAlignment +#define SCHEMA_HAS_IfcTextDecoration +#define SCHEMA_HAS_IfcTextFontName +#define SCHEMA_HAS_IfcTextFontSelect +#define SCHEMA_HAS_IfcTextPath +#define SCHEMA_HAS_IfcTextTransformation +#define SCHEMA_HAS_IfcThermalAdmittanceMeasure +#define SCHEMA_HAS_IfcThermalConductivityMeasure +#define SCHEMA_HAS_IfcThermalExpansionCoefficientMeasure +#define SCHEMA_HAS_IfcThermalResistanceMeasure +#define SCHEMA_HAS_IfcThermalTransmittanceMeasure +#define SCHEMA_HAS_IfcThermodynamicTemperatureMeasure +#define SCHEMA_HAS_IfcTime +#define SCHEMA_HAS_IfcTimeMeasure +#define SCHEMA_HAS_IfcTimeOrRatioSelect +#define SCHEMA_HAS_IfcTimeSeriesDataTypeEnum +#define SCHEMA_HAS_IfcTimeStamp +#define SCHEMA_HAS_IfcTorqueMeasure +#define SCHEMA_HAS_IfcTransformerTypeEnum +#define SCHEMA_HAS_IfcTransitionCode +#define SCHEMA_HAS_IfcTransitionCurveType +#define SCHEMA_HAS_IfcTranslationalStiffnessSelect +#define SCHEMA_HAS_IfcTransportElementTypeEnum +#define SCHEMA_HAS_IfcTrimmingPreference +#define SCHEMA_HAS_IfcTrimmingSelect +#define SCHEMA_HAS_IfcTubeBundleTypeEnum +#define SCHEMA_HAS_IfcURIReference +#define SCHEMA_HAS_IfcUnit +#define SCHEMA_HAS_IfcUnitEnum +#define SCHEMA_HAS_IfcUnitaryControlElementTypeEnum +#define SCHEMA_HAS_IfcUnitaryEquipmentTypeEnum +#define SCHEMA_HAS_IfcValue +#define SCHEMA_HAS_IfcValveTypeEnum +#define SCHEMA_HAS_IfcVaporPermeabilityMeasure +#define SCHEMA_HAS_IfcVectorOrDirection +#define SCHEMA_HAS_IfcVibrationDamperTypeEnum +#define SCHEMA_HAS_IfcVibrationIsolatorTypeEnum +#define SCHEMA_HAS_IfcVoidingFeatureTypeEnum +#define SCHEMA_HAS_IfcVolumeMeasure +#define SCHEMA_HAS_IfcVolumetricFlowRateMeasure +#define SCHEMA_HAS_IfcWallTypeEnum +#define SCHEMA_HAS_IfcWarpingConstantMeasure +#define SCHEMA_HAS_IfcWarpingMomentMeasure +#define SCHEMA_HAS_IfcWarpingStiffnessSelect +#define SCHEMA_HAS_IfcWasteTerminalTypeEnum +#define SCHEMA_HAS_IfcWindowPanelOperationEnum +#define SCHEMA_HAS_IfcWindowPanelPositionEnum +#define SCHEMA_HAS_IfcWindowStyleConstructionEnum +#define SCHEMA_HAS_IfcWindowStyleOperationEnum +#define SCHEMA_HAS_IfcWindowTypeEnum +#define SCHEMA_HAS_IfcWindowTypePartitioningEnum +#define SCHEMA_HAS_IfcWorkCalendarTypeEnum +#define SCHEMA_HAS_IfcWorkPlanTypeEnum +#define SCHEMA_HAS_IfcWorkScheduleTypeEnum +#define SCHEMA_HAS_IfcActionRequest +#define SCHEMA_IfcActionRequest_HAS_PredefinedType +#define SCHEMA_IfcActionRequest_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcActionRequest_HAS_Status +#define SCHEMA_IfcActionRequest_Status_IS_OPTIONAL +#define SCHEMA_IfcActionRequest_HAS_LongDescription +#define SCHEMA_IfcActionRequest_LongDescription_IS_OPTIONAL +#define SCHEMA_HAS_IfcActor +#define SCHEMA_IfcActor_HAS_TheActor +#define SCHEMA_HAS_IfcActorRole +#define SCHEMA_IfcActorRole_HAS_Role +#define SCHEMA_IfcActorRole_HAS_UserDefinedRole +#define SCHEMA_IfcActorRole_UserDefinedRole_IS_OPTIONAL +#define SCHEMA_IfcActorRole_HAS_Description +#define SCHEMA_IfcActorRole_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcActuator +#define SCHEMA_IfcActuator_HAS_PredefinedType +#define SCHEMA_IfcActuator_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcActuatorType +#define SCHEMA_IfcActuatorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAddress +#define SCHEMA_IfcAddress_HAS_Purpose +#define SCHEMA_IfcAddress_Purpose_IS_OPTIONAL +#define SCHEMA_IfcAddress_HAS_Description +#define SCHEMA_IfcAddress_Description_IS_OPTIONAL +#define SCHEMA_IfcAddress_HAS_UserDefinedPurpose +#define SCHEMA_IfcAddress_UserDefinedPurpose_IS_OPTIONAL +#define SCHEMA_HAS_IfcAdvancedBrep +#define SCHEMA_HAS_IfcAdvancedBrepWithVoids +#define SCHEMA_IfcAdvancedBrepWithVoids_HAS_Voids +#define SCHEMA_HAS_IfcAdvancedFace +#define SCHEMA_HAS_IfcAirTerminal +#define SCHEMA_IfcAirTerminal_HAS_PredefinedType +#define SCHEMA_IfcAirTerminal_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcAirTerminalBox +#define SCHEMA_IfcAirTerminalBox_HAS_PredefinedType +#define SCHEMA_IfcAirTerminalBox_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcAirTerminalBoxType +#define SCHEMA_IfcAirTerminalBoxType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAirTerminalType +#define SCHEMA_IfcAirTerminalType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAirToAirHeatRecovery +#define SCHEMA_IfcAirToAirHeatRecovery_HAS_PredefinedType +#define SCHEMA_IfcAirToAirHeatRecovery_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcAirToAirHeatRecoveryType +#define SCHEMA_IfcAirToAirHeatRecoveryType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAlarm +#define SCHEMA_IfcAlarm_HAS_PredefinedType +#define SCHEMA_IfcAlarm_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcAlarmType +#define SCHEMA_IfcAlarmType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAlignment +#define SCHEMA_IfcAlignment_HAS_PredefinedType +#define SCHEMA_IfcAlignment_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcAlignment2DHorizontal +#define SCHEMA_IfcAlignment2DHorizontal_HAS_StartDistAlong +#define SCHEMA_IfcAlignment2DHorizontal_StartDistAlong_IS_OPTIONAL +#define SCHEMA_IfcAlignment2DHorizontal_HAS_Segments +#define SCHEMA_HAS_IfcAlignment2DHorizontalSegment +#define SCHEMA_IfcAlignment2DHorizontalSegment_HAS_CurveGeometry +#define SCHEMA_HAS_IfcAlignment2DSegment +#define SCHEMA_IfcAlignment2DSegment_HAS_TangentialContinuity +#define SCHEMA_IfcAlignment2DSegment_TangentialContinuity_IS_OPTIONAL +#define SCHEMA_IfcAlignment2DSegment_HAS_StartTag +#define SCHEMA_IfcAlignment2DSegment_StartTag_IS_OPTIONAL +#define SCHEMA_IfcAlignment2DSegment_HAS_EndTag +#define SCHEMA_IfcAlignment2DSegment_EndTag_IS_OPTIONAL +#define SCHEMA_HAS_IfcAlignment2DVerSegCircularArc +#define SCHEMA_IfcAlignment2DVerSegCircularArc_HAS_Radius +#define SCHEMA_IfcAlignment2DVerSegCircularArc_HAS_IsConvex +#define SCHEMA_HAS_IfcAlignment2DVerSegLine +#define SCHEMA_HAS_IfcAlignment2DVerSegParabolicArc +#define SCHEMA_IfcAlignment2DVerSegParabolicArc_HAS_ParabolaConstant +#define SCHEMA_IfcAlignment2DVerSegParabolicArc_HAS_IsConvex +#define SCHEMA_HAS_IfcAlignment2DVertical +#define SCHEMA_IfcAlignment2DVertical_HAS_Segments +#define SCHEMA_HAS_IfcAlignment2DVerticalSegment +#define SCHEMA_IfcAlignment2DVerticalSegment_HAS_StartDistAlong +#define SCHEMA_IfcAlignment2DVerticalSegment_HAS_HorizontalLength +#define SCHEMA_IfcAlignment2DVerticalSegment_HAS_StartHeight +#define SCHEMA_IfcAlignment2DVerticalSegment_HAS_StartGradient +#define SCHEMA_HAS_IfcAlignmentCurve +#define SCHEMA_IfcAlignmentCurve_HAS_Horizontal +#define SCHEMA_IfcAlignmentCurve_HAS_Vertical +#define SCHEMA_IfcAlignmentCurve_Vertical_IS_OPTIONAL +#define SCHEMA_IfcAlignmentCurve_HAS_Tag +#define SCHEMA_IfcAlignmentCurve_Tag_IS_OPTIONAL +#define SCHEMA_HAS_IfcAnnotation +#define SCHEMA_HAS_IfcAnnotationFillArea +#define SCHEMA_IfcAnnotationFillArea_HAS_OuterBoundary +#define SCHEMA_IfcAnnotationFillArea_HAS_InnerBoundaries +#define SCHEMA_IfcAnnotationFillArea_InnerBoundaries_IS_OPTIONAL +#define SCHEMA_HAS_IfcApplication +#define SCHEMA_IfcApplication_HAS_ApplicationDeveloper +#define SCHEMA_IfcApplication_HAS_Version +#define SCHEMA_IfcApplication_HAS_ApplicationFullName +#define SCHEMA_IfcApplication_HAS_ApplicationIdentifier +#define SCHEMA_HAS_IfcAppliedValue +#define SCHEMA_IfcAppliedValue_HAS_Name +#define SCHEMA_IfcAppliedValue_Name_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_Description +#define SCHEMA_IfcAppliedValue_Description_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_AppliedValue +#define SCHEMA_IfcAppliedValue_AppliedValue_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_UnitBasis +#define SCHEMA_IfcAppliedValue_UnitBasis_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_ApplicableDate +#define SCHEMA_IfcAppliedValue_ApplicableDate_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_FixedUntilDate +#define SCHEMA_IfcAppliedValue_FixedUntilDate_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_Category +#define SCHEMA_IfcAppliedValue_Category_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_Condition +#define SCHEMA_IfcAppliedValue_Condition_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_ArithmeticOperator +#define SCHEMA_IfcAppliedValue_ArithmeticOperator_IS_OPTIONAL +#define SCHEMA_IfcAppliedValue_HAS_Components +#define SCHEMA_IfcAppliedValue_Components_IS_OPTIONAL +#define SCHEMA_HAS_IfcApproval +#define SCHEMA_IfcApproval_HAS_Identifier +#define SCHEMA_IfcApproval_Identifier_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_Name +#define SCHEMA_IfcApproval_Name_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_Description +#define SCHEMA_IfcApproval_Description_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_TimeOfApproval +#define SCHEMA_IfcApproval_TimeOfApproval_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_Status +#define SCHEMA_IfcApproval_Status_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_Level +#define SCHEMA_IfcApproval_Level_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_Qualifier +#define SCHEMA_IfcApproval_Qualifier_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_RequestingApproval +#define SCHEMA_IfcApproval_RequestingApproval_IS_OPTIONAL +#define SCHEMA_IfcApproval_HAS_GivingApproval +#define SCHEMA_IfcApproval_GivingApproval_IS_OPTIONAL +#define SCHEMA_HAS_IfcApprovalRelationship +#define SCHEMA_IfcApprovalRelationship_HAS_RelatingApproval +#define SCHEMA_IfcApprovalRelationship_HAS_RelatedApprovals +#define SCHEMA_HAS_IfcArbitraryClosedProfileDef +#define SCHEMA_IfcArbitraryClosedProfileDef_HAS_OuterCurve +#define SCHEMA_HAS_IfcArbitraryOpenProfileDef +#define SCHEMA_IfcArbitraryOpenProfileDef_HAS_Curve +#define SCHEMA_HAS_IfcArbitraryProfileDefWithVoids +#define SCHEMA_IfcArbitraryProfileDefWithVoids_HAS_InnerCurves +#define SCHEMA_HAS_IfcAsset +#define SCHEMA_IfcAsset_HAS_Identification +#define SCHEMA_IfcAsset_Identification_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_OriginalValue +#define SCHEMA_IfcAsset_OriginalValue_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_CurrentValue +#define SCHEMA_IfcAsset_CurrentValue_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_TotalReplacementCost +#define SCHEMA_IfcAsset_TotalReplacementCost_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_Owner +#define SCHEMA_IfcAsset_Owner_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_User +#define SCHEMA_IfcAsset_User_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_ResponsiblePerson +#define SCHEMA_IfcAsset_ResponsiblePerson_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_IncorporationDate +#define SCHEMA_IfcAsset_IncorporationDate_IS_OPTIONAL +#define SCHEMA_IfcAsset_HAS_DepreciatedValue +#define SCHEMA_IfcAsset_DepreciatedValue_IS_OPTIONAL +#define SCHEMA_HAS_IfcAsymmetricIShapeProfileDef +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_BottomFlangeWidth +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_OverallDepth +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_WebThickness +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_BottomFlangeThickness +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_BottomFlangeFilletRadius +#define SCHEMA_IfcAsymmetricIShapeProfileDef_BottomFlangeFilletRadius_IS_OPTIONAL +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_TopFlangeWidth +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_TopFlangeThickness +#define SCHEMA_IfcAsymmetricIShapeProfileDef_TopFlangeThickness_IS_OPTIONAL +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_TopFlangeFilletRadius +#define SCHEMA_IfcAsymmetricIShapeProfileDef_TopFlangeFilletRadius_IS_OPTIONAL +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_BottomFlangeEdgeRadius +#define SCHEMA_IfcAsymmetricIShapeProfileDef_BottomFlangeEdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_BottomFlangeSlope +#define SCHEMA_IfcAsymmetricIShapeProfileDef_BottomFlangeSlope_IS_OPTIONAL +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_TopFlangeEdgeRadius +#define SCHEMA_IfcAsymmetricIShapeProfileDef_TopFlangeEdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcAsymmetricIShapeProfileDef_HAS_TopFlangeSlope +#define SCHEMA_IfcAsymmetricIShapeProfileDef_TopFlangeSlope_IS_OPTIONAL +#define SCHEMA_HAS_IfcAudioVisualAppliance +#define SCHEMA_IfcAudioVisualAppliance_HAS_PredefinedType +#define SCHEMA_IfcAudioVisualAppliance_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcAudioVisualApplianceType +#define SCHEMA_IfcAudioVisualApplianceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcAxis1Placement +#define SCHEMA_IfcAxis1Placement_HAS_Axis +#define SCHEMA_IfcAxis1Placement_Axis_IS_OPTIONAL +#define SCHEMA_HAS_IfcAxis2Placement2D +#define SCHEMA_IfcAxis2Placement2D_HAS_RefDirection +#define SCHEMA_IfcAxis2Placement2D_RefDirection_IS_OPTIONAL +#define SCHEMA_HAS_IfcAxis2Placement3D +#define SCHEMA_IfcAxis2Placement3D_HAS_Axis +#define SCHEMA_IfcAxis2Placement3D_Axis_IS_OPTIONAL +#define SCHEMA_IfcAxis2Placement3D_HAS_RefDirection +#define SCHEMA_IfcAxis2Placement3D_RefDirection_IS_OPTIONAL +#define SCHEMA_HAS_IfcBSplineCurve +#define SCHEMA_IfcBSplineCurve_HAS_Degree +#define SCHEMA_IfcBSplineCurve_HAS_ControlPointsList +#define SCHEMA_IfcBSplineCurve_HAS_CurveForm +#define SCHEMA_IfcBSplineCurve_HAS_ClosedCurve +#define SCHEMA_IfcBSplineCurve_HAS_SelfIntersect +#define SCHEMA_HAS_IfcBSplineCurveWithKnots +#define SCHEMA_IfcBSplineCurveWithKnots_HAS_KnotMultiplicities +#define SCHEMA_IfcBSplineCurveWithKnots_HAS_Knots +#define SCHEMA_IfcBSplineCurveWithKnots_HAS_KnotSpec +#define SCHEMA_HAS_IfcBSplineSurface +#define SCHEMA_IfcBSplineSurface_HAS_UDegree +#define SCHEMA_IfcBSplineSurface_HAS_VDegree +#define SCHEMA_IfcBSplineSurface_HAS_ControlPointsList +#define SCHEMA_IfcBSplineSurface_HAS_SurfaceForm +#define SCHEMA_IfcBSplineSurface_HAS_UClosed +#define SCHEMA_IfcBSplineSurface_HAS_VClosed +#define SCHEMA_IfcBSplineSurface_HAS_SelfIntersect +#define SCHEMA_HAS_IfcBSplineSurfaceWithKnots +#define SCHEMA_IfcBSplineSurfaceWithKnots_HAS_UMultiplicities +#define SCHEMA_IfcBSplineSurfaceWithKnots_HAS_VMultiplicities +#define SCHEMA_IfcBSplineSurfaceWithKnots_HAS_UKnots +#define SCHEMA_IfcBSplineSurfaceWithKnots_HAS_VKnots +#define SCHEMA_IfcBSplineSurfaceWithKnots_HAS_KnotSpec +#define SCHEMA_HAS_IfcBeam +#define SCHEMA_IfcBeam_HAS_PredefinedType +#define SCHEMA_IfcBeam_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcBeamStandardCase +#define SCHEMA_HAS_IfcBeamType +#define SCHEMA_IfcBeamType_HAS_PredefinedType +#define SCHEMA_HAS_IfcBearing +#define SCHEMA_IfcBearing_HAS_PredefinedType +#define SCHEMA_IfcBearing_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcBearingType +#define SCHEMA_IfcBearingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcBlobTexture +#define SCHEMA_IfcBlobTexture_HAS_RasterFormat +#define SCHEMA_IfcBlobTexture_HAS_RasterCode +#define SCHEMA_HAS_IfcBlock +#define SCHEMA_IfcBlock_HAS_XLength +#define SCHEMA_IfcBlock_HAS_YLength +#define SCHEMA_IfcBlock_HAS_ZLength +#define SCHEMA_HAS_IfcBoiler +#define SCHEMA_IfcBoiler_HAS_PredefinedType +#define SCHEMA_IfcBoiler_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoilerType +#define SCHEMA_IfcBoilerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcBooleanClippingResult +#define SCHEMA_HAS_IfcBooleanResult +#define SCHEMA_IfcBooleanResult_HAS_Operator +#define SCHEMA_IfcBooleanResult_HAS_FirstOperand +#define SCHEMA_IfcBooleanResult_HAS_SecondOperand +#define SCHEMA_HAS_IfcBoundaryCondition +#define SCHEMA_IfcBoundaryCondition_HAS_Name +#define SCHEMA_IfcBoundaryCondition_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoundaryCurve +#define SCHEMA_HAS_IfcBoundaryEdgeCondition +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_TranslationalStiffnessByLengthX +#define SCHEMA_IfcBoundaryEdgeCondition_TranslationalStiffnessByLengthX_IS_OPTIONAL +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_TranslationalStiffnessByLengthY +#define SCHEMA_IfcBoundaryEdgeCondition_TranslationalStiffnessByLengthY_IS_OPTIONAL +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_TranslationalStiffnessByLengthZ +#define SCHEMA_IfcBoundaryEdgeCondition_TranslationalStiffnessByLengthZ_IS_OPTIONAL +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_RotationalStiffnessByLengthX +#define SCHEMA_IfcBoundaryEdgeCondition_RotationalStiffnessByLengthX_IS_OPTIONAL +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_RotationalStiffnessByLengthY +#define SCHEMA_IfcBoundaryEdgeCondition_RotationalStiffnessByLengthY_IS_OPTIONAL +#define SCHEMA_IfcBoundaryEdgeCondition_HAS_RotationalStiffnessByLengthZ +#define SCHEMA_IfcBoundaryEdgeCondition_RotationalStiffnessByLengthZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoundaryFaceCondition +#define SCHEMA_IfcBoundaryFaceCondition_HAS_TranslationalStiffnessByAreaX +#define SCHEMA_IfcBoundaryFaceCondition_TranslationalStiffnessByAreaX_IS_OPTIONAL +#define SCHEMA_IfcBoundaryFaceCondition_HAS_TranslationalStiffnessByAreaY +#define SCHEMA_IfcBoundaryFaceCondition_TranslationalStiffnessByAreaY_IS_OPTIONAL +#define SCHEMA_IfcBoundaryFaceCondition_HAS_TranslationalStiffnessByAreaZ +#define SCHEMA_IfcBoundaryFaceCondition_TranslationalStiffnessByAreaZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoundaryNodeCondition +#define SCHEMA_IfcBoundaryNodeCondition_HAS_TranslationalStiffnessX +#define SCHEMA_IfcBoundaryNodeCondition_TranslationalStiffnessX_IS_OPTIONAL +#define SCHEMA_IfcBoundaryNodeCondition_HAS_TranslationalStiffnessY +#define SCHEMA_IfcBoundaryNodeCondition_TranslationalStiffnessY_IS_OPTIONAL +#define SCHEMA_IfcBoundaryNodeCondition_HAS_TranslationalStiffnessZ +#define SCHEMA_IfcBoundaryNodeCondition_TranslationalStiffnessZ_IS_OPTIONAL +#define SCHEMA_IfcBoundaryNodeCondition_HAS_RotationalStiffnessX +#define SCHEMA_IfcBoundaryNodeCondition_RotationalStiffnessX_IS_OPTIONAL +#define SCHEMA_IfcBoundaryNodeCondition_HAS_RotationalStiffnessY +#define SCHEMA_IfcBoundaryNodeCondition_RotationalStiffnessY_IS_OPTIONAL +#define SCHEMA_IfcBoundaryNodeCondition_HAS_RotationalStiffnessZ +#define SCHEMA_IfcBoundaryNodeCondition_RotationalStiffnessZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoundaryNodeConditionWarping +#define SCHEMA_IfcBoundaryNodeConditionWarping_HAS_WarpingStiffness +#define SCHEMA_IfcBoundaryNodeConditionWarping_WarpingStiffness_IS_OPTIONAL +#define SCHEMA_HAS_IfcBoundedCurve +#define SCHEMA_HAS_IfcBoundedSurface +#define SCHEMA_HAS_IfcBoundingBox +#define SCHEMA_IfcBoundingBox_HAS_Corner +#define SCHEMA_IfcBoundingBox_HAS_XDim +#define SCHEMA_IfcBoundingBox_HAS_YDim +#define SCHEMA_IfcBoundingBox_HAS_ZDim +#define SCHEMA_HAS_IfcBoxedHalfSpace +#define SCHEMA_IfcBoxedHalfSpace_HAS_Enclosure +#define SCHEMA_HAS_IfcBridge +#define SCHEMA_IfcBridge_HAS_PredefinedType +#define SCHEMA_IfcBridge_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcBridgePart +#define SCHEMA_IfcBridgePart_HAS_PredefinedType +#define SCHEMA_IfcBridgePart_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcBuilding +#define SCHEMA_IfcBuilding_HAS_ElevationOfRefHeight +#define SCHEMA_IfcBuilding_ElevationOfRefHeight_IS_OPTIONAL +#define SCHEMA_IfcBuilding_HAS_ElevationOfTerrain +#define SCHEMA_IfcBuilding_ElevationOfTerrain_IS_OPTIONAL +#define SCHEMA_IfcBuilding_HAS_BuildingAddress +#define SCHEMA_IfcBuilding_BuildingAddress_IS_OPTIONAL +#define SCHEMA_HAS_IfcBuildingElement +#define SCHEMA_HAS_IfcBuildingElementPart +#define SCHEMA_IfcBuildingElementPart_HAS_PredefinedType +#define SCHEMA_IfcBuildingElementPart_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcBuildingElementPartType +#define SCHEMA_IfcBuildingElementPartType_HAS_PredefinedType +#define SCHEMA_HAS_IfcBuildingElementProxy +#define SCHEMA_IfcBuildingElementProxy_HAS_PredefinedType +#define SCHEMA_IfcBuildingElementProxy_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcBuildingElementProxyType +#define SCHEMA_IfcBuildingElementProxyType_HAS_PredefinedType +#define SCHEMA_HAS_IfcBuildingElementType +#define SCHEMA_HAS_IfcBuildingStorey +#define SCHEMA_IfcBuildingStorey_HAS_Elevation +#define SCHEMA_IfcBuildingStorey_Elevation_IS_OPTIONAL +#define SCHEMA_HAS_IfcBuildingSystem +#define SCHEMA_IfcBuildingSystem_HAS_PredefinedType +#define SCHEMA_IfcBuildingSystem_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcBuildingSystem_HAS_LongName +#define SCHEMA_IfcBuildingSystem_LongName_IS_OPTIONAL +#define SCHEMA_HAS_IfcBurner +#define SCHEMA_IfcBurner_HAS_PredefinedType +#define SCHEMA_IfcBurner_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcBurnerType +#define SCHEMA_IfcBurnerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCShapeProfileDef +#define SCHEMA_IfcCShapeProfileDef_HAS_Depth +#define SCHEMA_IfcCShapeProfileDef_HAS_Width +#define SCHEMA_IfcCShapeProfileDef_HAS_WallThickness +#define SCHEMA_IfcCShapeProfileDef_HAS_Girth +#define SCHEMA_IfcCShapeProfileDef_HAS_InternalFilletRadius +#define SCHEMA_IfcCShapeProfileDef_InternalFilletRadius_IS_OPTIONAL +#define SCHEMA_HAS_IfcCableCarrierFitting +#define SCHEMA_IfcCableCarrierFitting_HAS_PredefinedType +#define SCHEMA_IfcCableCarrierFitting_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCableCarrierFittingType +#define SCHEMA_IfcCableCarrierFittingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCableCarrierSegment +#define SCHEMA_IfcCableCarrierSegment_HAS_PredefinedType +#define SCHEMA_IfcCableCarrierSegment_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCableCarrierSegmentType +#define SCHEMA_IfcCableCarrierSegmentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCableFitting +#define SCHEMA_IfcCableFitting_HAS_PredefinedType +#define SCHEMA_IfcCableFitting_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCableFittingType +#define SCHEMA_IfcCableFittingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCableSegment +#define SCHEMA_IfcCableSegment_HAS_PredefinedType +#define SCHEMA_IfcCableSegment_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCableSegmentType +#define SCHEMA_IfcCableSegmentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCaissonFoundation +#define SCHEMA_IfcCaissonFoundation_HAS_PredefinedType +#define SCHEMA_IfcCaissonFoundation_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCaissonFoundationType +#define SCHEMA_IfcCaissonFoundationType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCartesianPoint +#define SCHEMA_IfcCartesianPoint_HAS_Coordinates +#define SCHEMA_HAS_IfcCartesianPointList +#define SCHEMA_HAS_IfcCartesianPointList2D +#define SCHEMA_IfcCartesianPointList2D_HAS_CoordList +#define SCHEMA_IfcCartesianPointList2D_HAS_TagList +#define SCHEMA_IfcCartesianPointList2D_TagList_IS_OPTIONAL +#define SCHEMA_HAS_IfcCartesianPointList3D +#define SCHEMA_IfcCartesianPointList3D_HAS_CoordList +#define SCHEMA_IfcCartesianPointList3D_HAS_TagList +#define SCHEMA_IfcCartesianPointList3D_TagList_IS_OPTIONAL +#define SCHEMA_HAS_IfcCartesianTransformationOperator +#define SCHEMA_IfcCartesianTransformationOperator_HAS_Axis1 +#define SCHEMA_IfcCartesianTransformationOperator_Axis1_IS_OPTIONAL +#define SCHEMA_IfcCartesianTransformationOperator_HAS_Axis2 +#define SCHEMA_IfcCartesianTransformationOperator_Axis2_IS_OPTIONAL +#define SCHEMA_IfcCartesianTransformationOperator_HAS_LocalOrigin +#define SCHEMA_IfcCartesianTransformationOperator_HAS_Scale +#define SCHEMA_IfcCartesianTransformationOperator_Scale_IS_OPTIONAL +#define SCHEMA_HAS_IfcCartesianTransformationOperator2D +#define SCHEMA_HAS_IfcCartesianTransformationOperator2DnonUniform +#define SCHEMA_IfcCartesianTransformationOperator2DnonUniform_HAS_Scale2 +#define SCHEMA_IfcCartesianTransformationOperator2DnonUniform_Scale2_IS_OPTIONAL +#define SCHEMA_HAS_IfcCartesianTransformationOperator3D +#define SCHEMA_IfcCartesianTransformationOperator3D_HAS_Axis3 +#define SCHEMA_IfcCartesianTransformationOperator3D_Axis3_IS_OPTIONAL +#define SCHEMA_HAS_IfcCartesianTransformationOperator3DnonUniform +#define SCHEMA_IfcCartesianTransformationOperator3DnonUniform_HAS_Scale2 +#define SCHEMA_IfcCartesianTransformationOperator3DnonUniform_Scale2_IS_OPTIONAL +#define SCHEMA_IfcCartesianTransformationOperator3DnonUniform_HAS_Scale3 +#define SCHEMA_IfcCartesianTransformationOperator3DnonUniform_Scale3_IS_OPTIONAL +#define SCHEMA_HAS_IfcCenterLineProfileDef +#define SCHEMA_IfcCenterLineProfileDef_HAS_Thickness +#define SCHEMA_HAS_IfcChiller +#define SCHEMA_IfcChiller_HAS_PredefinedType +#define SCHEMA_IfcChiller_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcChillerType +#define SCHEMA_IfcChillerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcChimney +#define SCHEMA_IfcChimney_HAS_PredefinedType +#define SCHEMA_IfcChimney_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcChimneyType +#define SCHEMA_IfcChimneyType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCircle +#define SCHEMA_IfcCircle_HAS_Radius +#define SCHEMA_HAS_IfcCircleHollowProfileDef +#define SCHEMA_IfcCircleHollowProfileDef_HAS_WallThickness +#define SCHEMA_HAS_IfcCircleProfileDef +#define SCHEMA_IfcCircleProfileDef_HAS_Radius +#define SCHEMA_HAS_IfcCircularArcSegment2D +#define SCHEMA_IfcCircularArcSegment2D_HAS_Radius +#define SCHEMA_IfcCircularArcSegment2D_HAS_IsCCW +#define SCHEMA_HAS_IfcCivilElement +#define SCHEMA_HAS_IfcCivilElementType +#define SCHEMA_HAS_IfcClassification +#define SCHEMA_IfcClassification_HAS_Source +#define SCHEMA_IfcClassification_Source_IS_OPTIONAL +#define SCHEMA_IfcClassification_HAS_Edition +#define SCHEMA_IfcClassification_Edition_IS_OPTIONAL +#define SCHEMA_IfcClassification_HAS_EditionDate +#define SCHEMA_IfcClassification_EditionDate_IS_OPTIONAL +#define SCHEMA_IfcClassification_HAS_Name +#define SCHEMA_IfcClassification_HAS_Description +#define SCHEMA_IfcClassification_Description_IS_OPTIONAL +#define SCHEMA_IfcClassification_HAS_Location +#define SCHEMA_IfcClassification_Location_IS_OPTIONAL +#define SCHEMA_IfcClassification_HAS_ReferenceTokens +#define SCHEMA_IfcClassification_ReferenceTokens_IS_OPTIONAL +#define SCHEMA_HAS_IfcClassificationReference +#define SCHEMA_IfcClassificationReference_HAS_ReferencedSource +#define SCHEMA_IfcClassificationReference_ReferencedSource_IS_OPTIONAL +#define SCHEMA_IfcClassificationReference_HAS_Description +#define SCHEMA_IfcClassificationReference_Description_IS_OPTIONAL +#define SCHEMA_IfcClassificationReference_HAS_Sort +#define SCHEMA_IfcClassificationReference_Sort_IS_OPTIONAL +#define SCHEMA_HAS_IfcClosedShell +#define SCHEMA_HAS_IfcCoil +#define SCHEMA_IfcCoil_HAS_PredefinedType +#define SCHEMA_IfcCoil_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCoilType +#define SCHEMA_IfcCoilType_HAS_PredefinedType +#define SCHEMA_HAS_IfcColourRgb +#define SCHEMA_IfcColourRgb_HAS_Red +#define SCHEMA_IfcColourRgb_HAS_Green +#define SCHEMA_IfcColourRgb_HAS_Blue +#define SCHEMA_HAS_IfcColourRgbList +#define SCHEMA_IfcColourRgbList_HAS_ColourList +#define SCHEMA_HAS_IfcColourSpecification +#define SCHEMA_IfcColourSpecification_HAS_Name +#define SCHEMA_IfcColourSpecification_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcColumn +#define SCHEMA_IfcColumn_HAS_PredefinedType +#define SCHEMA_IfcColumn_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcColumnStandardCase +#define SCHEMA_HAS_IfcColumnType +#define SCHEMA_IfcColumnType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCommunicationsAppliance +#define SCHEMA_IfcCommunicationsAppliance_HAS_PredefinedType +#define SCHEMA_IfcCommunicationsAppliance_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCommunicationsApplianceType +#define SCHEMA_IfcCommunicationsApplianceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcComplexProperty +#define SCHEMA_IfcComplexProperty_HAS_UsageName +#define SCHEMA_IfcComplexProperty_HAS_HasProperties +#define SCHEMA_HAS_IfcComplexPropertyTemplate +#define SCHEMA_IfcComplexPropertyTemplate_HAS_UsageName +#define SCHEMA_IfcComplexPropertyTemplate_UsageName_IS_OPTIONAL +#define SCHEMA_IfcComplexPropertyTemplate_HAS_TemplateType +#define SCHEMA_IfcComplexPropertyTemplate_TemplateType_IS_OPTIONAL +#define SCHEMA_IfcComplexPropertyTemplate_HAS_HasPropertyTemplates +#define SCHEMA_IfcComplexPropertyTemplate_HasPropertyTemplates_IS_OPTIONAL +#define SCHEMA_HAS_IfcCompositeCurve +#define SCHEMA_IfcCompositeCurve_HAS_Segments +#define SCHEMA_IfcCompositeCurve_HAS_SelfIntersect +#define SCHEMA_HAS_IfcCompositeCurveOnSurface +#define SCHEMA_HAS_IfcCompositeCurveSegment +#define SCHEMA_IfcCompositeCurveSegment_HAS_Transition +#define SCHEMA_IfcCompositeCurveSegment_HAS_SameSense +#define SCHEMA_IfcCompositeCurveSegment_HAS_ParentCurve +#define SCHEMA_HAS_IfcCompositeProfileDef +#define SCHEMA_IfcCompositeProfileDef_HAS_Profiles +#define SCHEMA_IfcCompositeProfileDef_HAS_Label +#define SCHEMA_IfcCompositeProfileDef_Label_IS_OPTIONAL +#define SCHEMA_HAS_IfcCompressor +#define SCHEMA_IfcCompressor_HAS_PredefinedType +#define SCHEMA_IfcCompressor_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCompressorType +#define SCHEMA_IfcCompressorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCondenser +#define SCHEMA_IfcCondenser_HAS_PredefinedType +#define SCHEMA_IfcCondenser_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCondenserType +#define SCHEMA_IfcCondenserType_HAS_PredefinedType +#define SCHEMA_HAS_IfcConic +#define SCHEMA_IfcConic_HAS_Position +#define SCHEMA_HAS_IfcConnectedFaceSet +#define SCHEMA_IfcConnectedFaceSet_HAS_CfsFaces +#define SCHEMA_HAS_IfcConnectionCurveGeometry +#define SCHEMA_IfcConnectionCurveGeometry_HAS_CurveOnRelatingElement +#define SCHEMA_IfcConnectionCurveGeometry_HAS_CurveOnRelatedElement +#define SCHEMA_IfcConnectionCurveGeometry_CurveOnRelatedElement_IS_OPTIONAL +#define SCHEMA_HAS_IfcConnectionGeometry +#define SCHEMA_HAS_IfcConnectionPointEccentricity +#define SCHEMA_IfcConnectionPointEccentricity_HAS_EccentricityInX +#define SCHEMA_IfcConnectionPointEccentricity_EccentricityInX_IS_OPTIONAL +#define SCHEMA_IfcConnectionPointEccentricity_HAS_EccentricityInY +#define SCHEMA_IfcConnectionPointEccentricity_EccentricityInY_IS_OPTIONAL +#define SCHEMA_IfcConnectionPointEccentricity_HAS_EccentricityInZ +#define SCHEMA_IfcConnectionPointEccentricity_EccentricityInZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcConnectionPointGeometry +#define SCHEMA_IfcConnectionPointGeometry_HAS_PointOnRelatingElement +#define SCHEMA_IfcConnectionPointGeometry_HAS_PointOnRelatedElement +#define SCHEMA_IfcConnectionPointGeometry_PointOnRelatedElement_IS_OPTIONAL +#define SCHEMA_HAS_IfcConnectionSurfaceGeometry +#define SCHEMA_IfcConnectionSurfaceGeometry_HAS_SurfaceOnRelatingElement +#define SCHEMA_IfcConnectionSurfaceGeometry_HAS_SurfaceOnRelatedElement +#define SCHEMA_IfcConnectionSurfaceGeometry_SurfaceOnRelatedElement_IS_OPTIONAL +#define SCHEMA_HAS_IfcConnectionVolumeGeometry +#define SCHEMA_IfcConnectionVolumeGeometry_HAS_VolumeOnRelatingElement +#define SCHEMA_IfcConnectionVolumeGeometry_HAS_VolumeOnRelatedElement +#define SCHEMA_IfcConnectionVolumeGeometry_VolumeOnRelatedElement_IS_OPTIONAL +#define SCHEMA_HAS_IfcConstraint +#define SCHEMA_IfcConstraint_HAS_Name +#define SCHEMA_IfcConstraint_HAS_Description +#define SCHEMA_IfcConstraint_Description_IS_OPTIONAL +#define SCHEMA_IfcConstraint_HAS_ConstraintGrade +#define SCHEMA_IfcConstraint_HAS_ConstraintSource +#define SCHEMA_IfcConstraint_ConstraintSource_IS_OPTIONAL +#define SCHEMA_IfcConstraint_HAS_CreatingActor +#define SCHEMA_IfcConstraint_CreatingActor_IS_OPTIONAL +#define SCHEMA_IfcConstraint_HAS_CreationTime +#define SCHEMA_IfcConstraint_CreationTime_IS_OPTIONAL +#define SCHEMA_IfcConstraint_HAS_UserDefinedGrade +#define SCHEMA_IfcConstraint_UserDefinedGrade_IS_OPTIONAL +#define SCHEMA_HAS_IfcConstructionEquipmentResource +#define SCHEMA_IfcConstructionEquipmentResource_HAS_PredefinedType +#define SCHEMA_IfcConstructionEquipmentResource_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcConstructionEquipmentResourceType +#define SCHEMA_IfcConstructionEquipmentResourceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcConstructionMaterialResource +#define SCHEMA_IfcConstructionMaterialResource_HAS_PredefinedType +#define SCHEMA_IfcConstructionMaterialResource_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcConstructionMaterialResourceType +#define SCHEMA_IfcConstructionMaterialResourceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcConstructionProductResource +#define SCHEMA_IfcConstructionProductResource_HAS_PredefinedType +#define SCHEMA_IfcConstructionProductResource_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcConstructionProductResourceType +#define SCHEMA_IfcConstructionProductResourceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcConstructionResource +#define SCHEMA_IfcConstructionResource_HAS_Usage +#define SCHEMA_IfcConstructionResource_Usage_IS_OPTIONAL +#define SCHEMA_IfcConstructionResource_HAS_BaseCosts +#define SCHEMA_IfcConstructionResource_BaseCosts_IS_OPTIONAL +#define SCHEMA_IfcConstructionResource_HAS_BaseQuantity +#define SCHEMA_IfcConstructionResource_BaseQuantity_IS_OPTIONAL +#define SCHEMA_HAS_IfcConstructionResourceType +#define SCHEMA_IfcConstructionResourceType_HAS_BaseCosts +#define SCHEMA_IfcConstructionResourceType_BaseCosts_IS_OPTIONAL +#define SCHEMA_IfcConstructionResourceType_HAS_BaseQuantity +#define SCHEMA_IfcConstructionResourceType_BaseQuantity_IS_OPTIONAL +#define SCHEMA_HAS_IfcContext +#define SCHEMA_IfcContext_HAS_ObjectType +#define SCHEMA_IfcContext_ObjectType_IS_OPTIONAL +#define SCHEMA_IfcContext_HAS_LongName +#define SCHEMA_IfcContext_LongName_IS_OPTIONAL +#define SCHEMA_IfcContext_HAS_Phase +#define SCHEMA_IfcContext_Phase_IS_OPTIONAL +#define SCHEMA_IfcContext_HAS_RepresentationContexts +#define SCHEMA_IfcContext_RepresentationContexts_IS_OPTIONAL +#define SCHEMA_IfcContext_HAS_UnitsInContext +#define SCHEMA_IfcContext_UnitsInContext_IS_OPTIONAL +#define SCHEMA_HAS_IfcContextDependentUnit +#define SCHEMA_IfcContextDependentUnit_HAS_Name +#define SCHEMA_HAS_IfcControl +#define SCHEMA_IfcControl_HAS_Identification +#define SCHEMA_IfcControl_Identification_IS_OPTIONAL +#define SCHEMA_HAS_IfcController +#define SCHEMA_IfcController_HAS_PredefinedType +#define SCHEMA_IfcController_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcControllerType +#define SCHEMA_IfcControllerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcConversionBasedUnit +#define SCHEMA_IfcConversionBasedUnit_HAS_Name +#define SCHEMA_IfcConversionBasedUnit_HAS_ConversionFactor +#define SCHEMA_HAS_IfcConversionBasedUnitWithOffset +#define SCHEMA_IfcConversionBasedUnitWithOffset_HAS_ConversionOffset +#define SCHEMA_HAS_IfcCooledBeam +#define SCHEMA_IfcCooledBeam_HAS_PredefinedType +#define SCHEMA_IfcCooledBeam_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCooledBeamType +#define SCHEMA_IfcCooledBeamType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCoolingTower +#define SCHEMA_IfcCoolingTower_HAS_PredefinedType +#define SCHEMA_IfcCoolingTower_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCoolingTowerType +#define SCHEMA_IfcCoolingTowerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCoordinateOperation +#define SCHEMA_IfcCoordinateOperation_HAS_SourceCRS +#define SCHEMA_IfcCoordinateOperation_HAS_TargetCRS +#define SCHEMA_HAS_IfcCoordinateReferenceSystem +#define SCHEMA_IfcCoordinateReferenceSystem_HAS_Name +#define SCHEMA_IfcCoordinateReferenceSystem_HAS_Description +#define SCHEMA_IfcCoordinateReferenceSystem_Description_IS_OPTIONAL +#define SCHEMA_IfcCoordinateReferenceSystem_HAS_GeodeticDatum +#define SCHEMA_IfcCoordinateReferenceSystem_GeodeticDatum_IS_OPTIONAL +#define SCHEMA_IfcCoordinateReferenceSystem_HAS_VerticalDatum +#define SCHEMA_IfcCoordinateReferenceSystem_VerticalDatum_IS_OPTIONAL +#define SCHEMA_HAS_IfcCostItem +#define SCHEMA_IfcCostItem_HAS_PredefinedType +#define SCHEMA_IfcCostItem_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcCostItem_HAS_CostValues +#define SCHEMA_IfcCostItem_CostValues_IS_OPTIONAL +#define SCHEMA_IfcCostItem_HAS_CostQuantities +#define SCHEMA_IfcCostItem_CostQuantities_IS_OPTIONAL +#define SCHEMA_HAS_IfcCostSchedule +#define SCHEMA_IfcCostSchedule_HAS_PredefinedType +#define SCHEMA_IfcCostSchedule_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcCostSchedule_HAS_Status +#define SCHEMA_IfcCostSchedule_Status_IS_OPTIONAL +#define SCHEMA_IfcCostSchedule_HAS_SubmittedOn +#define SCHEMA_IfcCostSchedule_SubmittedOn_IS_OPTIONAL +#define SCHEMA_IfcCostSchedule_HAS_UpdateDate +#define SCHEMA_IfcCostSchedule_UpdateDate_IS_OPTIONAL +#define SCHEMA_HAS_IfcCostValue +#define SCHEMA_HAS_IfcCovering +#define SCHEMA_IfcCovering_HAS_PredefinedType +#define SCHEMA_IfcCovering_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCoveringType +#define SCHEMA_IfcCoveringType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCrewResource +#define SCHEMA_IfcCrewResource_HAS_PredefinedType +#define SCHEMA_IfcCrewResource_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCrewResourceType +#define SCHEMA_IfcCrewResourceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCsgPrimitive3D +#define SCHEMA_IfcCsgPrimitive3D_HAS_Position +#define SCHEMA_HAS_IfcCsgSolid +#define SCHEMA_IfcCsgSolid_HAS_TreeRootExpression +#define SCHEMA_HAS_IfcCurrencyRelationship +#define SCHEMA_IfcCurrencyRelationship_HAS_RelatingMonetaryUnit +#define SCHEMA_IfcCurrencyRelationship_HAS_RelatedMonetaryUnit +#define SCHEMA_IfcCurrencyRelationship_HAS_ExchangeRate +#define SCHEMA_IfcCurrencyRelationship_HAS_RateDateTime +#define SCHEMA_IfcCurrencyRelationship_RateDateTime_IS_OPTIONAL +#define SCHEMA_IfcCurrencyRelationship_HAS_RateSource +#define SCHEMA_IfcCurrencyRelationship_RateSource_IS_OPTIONAL +#define SCHEMA_HAS_IfcCurtainWall +#define SCHEMA_IfcCurtainWall_HAS_PredefinedType +#define SCHEMA_IfcCurtainWall_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcCurtainWallType +#define SCHEMA_IfcCurtainWallType_HAS_PredefinedType +#define SCHEMA_HAS_IfcCurve +#define SCHEMA_HAS_IfcCurveBoundedPlane +#define SCHEMA_IfcCurveBoundedPlane_HAS_BasisSurface +#define SCHEMA_IfcCurveBoundedPlane_HAS_OuterBoundary +#define SCHEMA_IfcCurveBoundedPlane_HAS_InnerBoundaries +#define SCHEMA_HAS_IfcCurveBoundedSurface +#define SCHEMA_IfcCurveBoundedSurface_HAS_BasisSurface +#define SCHEMA_IfcCurveBoundedSurface_HAS_Boundaries +#define SCHEMA_IfcCurveBoundedSurface_HAS_ImplicitOuter +#define SCHEMA_HAS_IfcCurveSegment2D +#define SCHEMA_IfcCurveSegment2D_HAS_StartPoint +#define SCHEMA_IfcCurveSegment2D_HAS_StartDirection +#define SCHEMA_IfcCurveSegment2D_HAS_SegmentLength +#define SCHEMA_HAS_IfcCurveStyle +#define SCHEMA_IfcCurveStyle_HAS_CurveFont +#define SCHEMA_IfcCurveStyle_CurveFont_IS_OPTIONAL +#define SCHEMA_IfcCurveStyle_HAS_CurveWidth +#define SCHEMA_IfcCurveStyle_CurveWidth_IS_OPTIONAL +#define SCHEMA_IfcCurveStyle_HAS_CurveColour +#define SCHEMA_IfcCurveStyle_CurveColour_IS_OPTIONAL +#define SCHEMA_IfcCurveStyle_HAS_ModelOrDraughting +#define SCHEMA_IfcCurveStyle_ModelOrDraughting_IS_OPTIONAL +#define SCHEMA_HAS_IfcCurveStyleFont +#define SCHEMA_IfcCurveStyleFont_HAS_Name +#define SCHEMA_IfcCurveStyleFont_Name_IS_OPTIONAL +#define SCHEMA_IfcCurveStyleFont_HAS_PatternList +#define SCHEMA_HAS_IfcCurveStyleFontAndScaling +#define SCHEMA_IfcCurveStyleFontAndScaling_HAS_Name +#define SCHEMA_IfcCurveStyleFontAndScaling_Name_IS_OPTIONAL +#define SCHEMA_IfcCurveStyleFontAndScaling_HAS_CurveFont +#define SCHEMA_IfcCurveStyleFontAndScaling_HAS_CurveFontScaling +#define SCHEMA_HAS_IfcCurveStyleFontPattern +#define SCHEMA_IfcCurveStyleFontPattern_HAS_VisibleSegmentLength +#define SCHEMA_IfcCurveStyleFontPattern_HAS_InvisibleSegmentLength +#define SCHEMA_HAS_IfcCylindricalSurface +#define SCHEMA_IfcCylindricalSurface_HAS_Radius +#define SCHEMA_HAS_IfcDamper +#define SCHEMA_IfcDamper_HAS_PredefinedType +#define SCHEMA_IfcDamper_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDamperType +#define SCHEMA_IfcDamperType_HAS_PredefinedType +#define SCHEMA_HAS_IfcDeepFoundation +#define SCHEMA_HAS_IfcDeepFoundationType +#define SCHEMA_HAS_IfcDerivedProfileDef +#define SCHEMA_IfcDerivedProfileDef_HAS_ParentProfile +#define SCHEMA_IfcDerivedProfileDef_HAS_Operator +#define SCHEMA_IfcDerivedProfileDef_HAS_Label +#define SCHEMA_IfcDerivedProfileDef_Label_IS_OPTIONAL +#define SCHEMA_HAS_IfcDerivedUnit +#define SCHEMA_IfcDerivedUnit_HAS_Elements +#define SCHEMA_IfcDerivedUnit_HAS_UnitType +#define SCHEMA_IfcDerivedUnit_HAS_UserDefinedType +#define SCHEMA_IfcDerivedUnit_UserDefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDerivedUnitElement +#define SCHEMA_IfcDerivedUnitElement_HAS_Unit +#define SCHEMA_IfcDerivedUnitElement_HAS_Exponent +#define SCHEMA_HAS_IfcDimensionalExponents +#define SCHEMA_IfcDimensionalExponents_HAS_LengthExponent +#define SCHEMA_IfcDimensionalExponents_HAS_MassExponent +#define SCHEMA_IfcDimensionalExponents_HAS_TimeExponent +#define SCHEMA_IfcDimensionalExponents_HAS_ElectricCurrentExponent +#define SCHEMA_IfcDimensionalExponents_HAS_ThermodynamicTemperatureExponent +#define SCHEMA_IfcDimensionalExponents_HAS_AmountOfSubstanceExponent +#define SCHEMA_IfcDimensionalExponents_HAS_LuminousIntensityExponent +#define SCHEMA_HAS_IfcDirection +#define SCHEMA_IfcDirection_HAS_DirectionRatios +#define SCHEMA_HAS_IfcDiscreteAccessory +#define SCHEMA_IfcDiscreteAccessory_HAS_PredefinedType +#define SCHEMA_IfcDiscreteAccessory_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDiscreteAccessoryType +#define SCHEMA_IfcDiscreteAccessoryType_HAS_PredefinedType +#define SCHEMA_HAS_IfcDistanceExpression +#define SCHEMA_IfcDistanceExpression_HAS_DistanceAlong +#define SCHEMA_IfcDistanceExpression_HAS_OffsetLateral +#define SCHEMA_IfcDistanceExpression_OffsetLateral_IS_OPTIONAL +#define SCHEMA_IfcDistanceExpression_HAS_OffsetVertical +#define SCHEMA_IfcDistanceExpression_OffsetVertical_IS_OPTIONAL +#define SCHEMA_IfcDistanceExpression_HAS_OffsetLongitudinal +#define SCHEMA_IfcDistanceExpression_OffsetLongitudinal_IS_OPTIONAL +#define SCHEMA_IfcDistanceExpression_HAS_AlongHorizontal +#define SCHEMA_IfcDistanceExpression_AlongHorizontal_IS_OPTIONAL +#define SCHEMA_HAS_IfcDistributionChamberElement +#define SCHEMA_IfcDistributionChamberElement_HAS_PredefinedType +#define SCHEMA_IfcDistributionChamberElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDistributionChamberElementType +#define SCHEMA_IfcDistributionChamberElementType_HAS_PredefinedType +#define SCHEMA_HAS_IfcDistributionCircuit +#define SCHEMA_HAS_IfcDistributionControlElement +#define SCHEMA_HAS_IfcDistributionControlElementType +#define SCHEMA_HAS_IfcDistributionElement +#define SCHEMA_HAS_IfcDistributionElementType +#define SCHEMA_HAS_IfcDistributionFlowElement +#define SCHEMA_HAS_IfcDistributionFlowElementType +#define SCHEMA_HAS_IfcDistributionPort +#define SCHEMA_IfcDistributionPort_HAS_FlowDirection +#define SCHEMA_IfcDistributionPort_FlowDirection_IS_OPTIONAL +#define SCHEMA_IfcDistributionPort_HAS_PredefinedType +#define SCHEMA_IfcDistributionPort_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcDistributionPort_HAS_SystemType +#define SCHEMA_IfcDistributionPort_SystemType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDistributionSystem +#define SCHEMA_IfcDistributionSystem_HAS_LongName +#define SCHEMA_IfcDistributionSystem_LongName_IS_OPTIONAL +#define SCHEMA_IfcDistributionSystem_HAS_PredefinedType +#define SCHEMA_IfcDistributionSystem_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDocumentInformation +#define SCHEMA_IfcDocumentInformation_HAS_Identification +#define SCHEMA_IfcDocumentInformation_HAS_Name +#define SCHEMA_IfcDocumentInformation_HAS_Description +#define SCHEMA_IfcDocumentInformation_Description_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Location +#define SCHEMA_IfcDocumentInformation_Location_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Purpose +#define SCHEMA_IfcDocumentInformation_Purpose_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_IntendedUse +#define SCHEMA_IfcDocumentInformation_IntendedUse_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Scope +#define SCHEMA_IfcDocumentInformation_Scope_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Revision +#define SCHEMA_IfcDocumentInformation_Revision_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_DocumentOwner +#define SCHEMA_IfcDocumentInformation_DocumentOwner_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Editors +#define SCHEMA_IfcDocumentInformation_Editors_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_CreationTime +#define SCHEMA_IfcDocumentInformation_CreationTime_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_LastRevisionTime +#define SCHEMA_IfcDocumentInformation_LastRevisionTime_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_ElectronicFormat +#define SCHEMA_IfcDocumentInformation_ElectronicFormat_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_ValidFrom +#define SCHEMA_IfcDocumentInformation_ValidFrom_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_ValidUntil +#define SCHEMA_IfcDocumentInformation_ValidUntil_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Confidentiality +#define SCHEMA_IfcDocumentInformation_Confidentiality_IS_OPTIONAL +#define SCHEMA_IfcDocumentInformation_HAS_Status +#define SCHEMA_IfcDocumentInformation_Status_IS_OPTIONAL +#define SCHEMA_HAS_IfcDocumentInformationRelationship +#define SCHEMA_IfcDocumentInformationRelationship_HAS_RelatingDocument +#define SCHEMA_IfcDocumentInformationRelationship_HAS_RelatedDocuments +#define SCHEMA_IfcDocumentInformationRelationship_HAS_RelationshipType +#define SCHEMA_IfcDocumentInformationRelationship_RelationshipType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDocumentReference +#define SCHEMA_IfcDocumentReference_HAS_Description +#define SCHEMA_IfcDocumentReference_Description_IS_OPTIONAL +#define SCHEMA_IfcDocumentReference_HAS_ReferencedDocument +#define SCHEMA_IfcDocumentReference_ReferencedDocument_IS_OPTIONAL +#define SCHEMA_HAS_IfcDoor +#define SCHEMA_IfcDoor_HAS_OverallHeight +#define SCHEMA_IfcDoor_OverallHeight_IS_OPTIONAL +#define SCHEMA_IfcDoor_HAS_OverallWidth +#define SCHEMA_IfcDoor_OverallWidth_IS_OPTIONAL +#define SCHEMA_IfcDoor_HAS_PredefinedType +#define SCHEMA_IfcDoor_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcDoor_HAS_OperationType +#define SCHEMA_IfcDoor_OperationType_IS_OPTIONAL +#define SCHEMA_IfcDoor_HAS_UserDefinedOperationType +#define SCHEMA_IfcDoor_UserDefinedOperationType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDoorLiningProperties +#define SCHEMA_IfcDoorLiningProperties_HAS_LiningDepth +#define SCHEMA_IfcDoorLiningProperties_LiningDepth_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_LiningThickness +#define SCHEMA_IfcDoorLiningProperties_LiningThickness_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_ThresholdDepth +#define SCHEMA_IfcDoorLiningProperties_ThresholdDepth_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_ThresholdThickness +#define SCHEMA_IfcDoorLiningProperties_ThresholdThickness_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_TransomThickness +#define SCHEMA_IfcDoorLiningProperties_TransomThickness_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_TransomOffset +#define SCHEMA_IfcDoorLiningProperties_TransomOffset_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_LiningOffset +#define SCHEMA_IfcDoorLiningProperties_LiningOffset_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_ThresholdOffset +#define SCHEMA_IfcDoorLiningProperties_ThresholdOffset_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_CasingThickness +#define SCHEMA_IfcDoorLiningProperties_CasingThickness_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_CasingDepth +#define SCHEMA_IfcDoorLiningProperties_CasingDepth_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_ShapeAspectStyle +#define SCHEMA_IfcDoorLiningProperties_ShapeAspectStyle_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_LiningToPanelOffsetX +#define SCHEMA_IfcDoorLiningProperties_LiningToPanelOffsetX_IS_OPTIONAL +#define SCHEMA_IfcDoorLiningProperties_HAS_LiningToPanelOffsetY +#define SCHEMA_IfcDoorLiningProperties_LiningToPanelOffsetY_IS_OPTIONAL +#define SCHEMA_HAS_IfcDoorPanelProperties +#define SCHEMA_IfcDoorPanelProperties_HAS_PanelDepth +#define SCHEMA_IfcDoorPanelProperties_PanelDepth_IS_OPTIONAL +#define SCHEMA_IfcDoorPanelProperties_HAS_PanelOperation +#define SCHEMA_IfcDoorPanelProperties_HAS_PanelWidth +#define SCHEMA_IfcDoorPanelProperties_PanelWidth_IS_OPTIONAL +#define SCHEMA_IfcDoorPanelProperties_HAS_PanelPosition +#define SCHEMA_IfcDoorPanelProperties_HAS_ShapeAspectStyle +#define SCHEMA_IfcDoorPanelProperties_ShapeAspectStyle_IS_OPTIONAL +#define SCHEMA_HAS_IfcDoorStandardCase +#define SCHEMA_HAS_IfcDoorStyle +#define SCHEMA_IfcDoorStyle_HAS_OperationType +#define SCHEMA_IfcDoorStyle_HAS_ConstructionType +#define SCHEMA_IfcDoorStyle_HAS_ParameterTakesPrecedence +#define SCHEMA_IfcDoorStyle_HAS_Sizeable +#define SCHEMA_HAS_IfcDoorType +#define SCHEMA_IfcDoorType_HAS_PredefinedType +#define SCHEMA_IfcDoorType_HAS_OperationType +#define SCHEMA_IfcDoorType_HAS_ParameterTakesPrecedence +#define SCHEMA_IfcDoorType_ParameterTakesPrecedence_IS_OPTIONAL +#define SCHEMA_IfcDoorType_HAS_UserDefinedOperationType +#define SCHEMA_IfcDoorType_UserDefinedOperationType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDraughtingPreDefinedColour +#define SCHEMA_HAS_IfcDraughtingPreDefinedCurveFont +#define SCHEMA_HAS_IfcDuctFitting +#define SCHEMA_IfcDuctFitting_HAS_PredefinedType +#define SCHEMA_IfcDuctFitting_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDuctFittingType +#define SCHEMA_IfcDuctFittingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcDuctSegment +#define SCHEMA_IfcDuctSegment_HAS_PredefinedType +#define SCHEMA_IfcDuctSegment_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDuctSegmentType +#define SCHEMA_IfcDuctSegmentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcDuctSilencer +#define SCHEMA_IfcDuctSilencer_HAS_PredefinedType +#define SCHEMA_IfcDuctSilencer_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcDuctSilencerType +#define SCHEMA_IfcDuctSilencerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcEdge +#define SCHEMA_IfcEdge_HAS_EdgeStart +#define SCHEMA_IfcEdge_HAS_EdgeEnd +#define SCHEMA_HAS_IfcEdgeCurve +#define SCHEMA_IfcEdgeCurve_HAS_EdgeGeometry +#define SCHEMA_IfcEdgeCurve_HAS_SameSense +#define SCHEMA_HAS_IfcEdgeLoop +#define SCHEMA_IfcEdgeLoop_HAS_EdgeList +#define SCHEMA_HAS_IfcElectricAppliance +#define SCHEMA_IfcElectricAppliance_HAS_PredefinedType +#define SCHEMA_IfcElectricAppliance_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElectricApplianceType +#define SCHEMA_IfcElectricApplianceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElectricDistributionBoard +#define SCHEMA_IfcElectricDistributionBoard_HAS_PredefinedType +#define SCHEMA_IfcElectricDistributionBoard_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElectricDistributionBoardType +#define SCHEMA_IfcElectricDistributionBoardType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElectricFlowStorageDevice +#define SCHEMA_IfcElectricFlowStorageDevice_HAS_PredefinedType +#define SCHEMA_IfcElectricFlowStorageDevice_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElectricFlowStorageDeviceType +#define SCHEMA_IfcElectricFlowStorageDeviceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElectricGenerator +#define SCHEMA_IfcElectricGenerator_HAS_PredefinedType +#define SCHEMA_IfcElectricGenerator_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElectricGeneratorType +#define SCHEMA_IfcElectricGeneratorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElectricMotor +#define SCHEMA_IfcElectricMotor_HAS_PredefinedType +#define SCHEMA_IfcElectricMotor_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElectricMotorType +#define SCHEMA_IfcElectricMotorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElectricTimeControl +#define SCHEMA_IfcElectricTimeControl_HAS_PredefinedType +#define SCHEMA_IfcElectricTimeControl_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElectricTimeControlType +#define SCHEMA_IfcElectricTimeControlType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElement +#define SCHEMA_IfcElement_HAS_Tag +#define SCHEMA_IfcElement_Tag_IS_OPTIONAL +#define SCHEMA_HAS_IfcElementAssembly +#define SCHEMA_IfcElementAssembly_HAS_AssemblyPlace +#define SCHEMA_IfcElementAssembly_AssemblyPlace_IS_OPTIONAL +#define SCHEMA_IfcElementAssembly_HAS_PredefinedType +#define SCHEMA_IfcElementAssembly_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElementAssemblyType +#define SCHEMA_IfcElementAssemblyType_HAS_PredefinedType +#define SCHEMA_HAS_IfcElementComponent +#define SCHEMA_HAS_IfcElementComponentType +#define SCHEMA_HAS_IfcElementQuantity +#define SCHEMA_IfcElementQuantity_HAS_MethodOfMeasurement +#define SCHEMA_IfcElementQuantity_MethodOfMeasurement_IS_OPTIONAL +#define SCHEMA_IfcElementQuantity_HAS_Quantities +#define SCHEMA_HAS_IfcElementType +#define SCHEMA_IfcElementType_HAS_ElementType +#define SCHEMA_IfcElementType_ElementType_IS_OPTIONAL +#define SCHEMA_HAS_IfcElementarySurface +#define SCHEMA_IfcElementarySurface_HAS_Position +#define SCHEMA_HAS_IfcEllipse +#define SCHEMA_IfcEllipse_HAS_SemiAxis1 +#define SCHEMA_IfcEllipse_HAS_SemiAxis2 +#define SCHEMA_HAS_IfcEllipseProfileDef +#define SCHEMA_IfcEllipseProfileDef_HAS_SemiAxis1 +#define SCHEMA_IfcEllipseProfileDef_HAS_SemiAxis2 +#define SCHEMA_HAS_IfcEnergyConversionDevice +#define SCHEMA_HAS_IfcEnergyConversionDeviceType +#define SCHEMA_HAS_IfcEngine +#define SCHEMA_IfcEngine_HAS_PredefinedType +#define SCHEMA_IfcEngine_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcEngineType +#define SCHEMA_IfcEngineType_HAS_PredefinedType +#define SCHEMA_HAS_IfcEvaporativeCooler +#define SCHEMA_IfcEvaporativeCooler_HAS_PredefinedType +#define SCHEMA_IfcEvaporativeCooler_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcEvaporativeCoolerType +#define SCHEMA_IfcEvaporativeCoolerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcEvaporator +#define SCHEMA_IfcEvaporator_HAS_PredefinedType +#define SCHEMA_IfcEvaporator_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcEvaporatorType +#define SCHEMA_IfcEvaporatorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcEvent +#define SCHEMA_IfcEvent_HAS_PredefinedType +#define SCHEMA_IfcEvent_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcEvent_HAS_EventTriggerType +#define SCHEMA_IfcEvent_EventTriggerType_IS_OPTIONAL +#define SCHEMA_IfcEvent_HAS_UserDefinedEventTriggerType +#define SCHEMA_IfcEvent_UserDefinedEventTriggerType_IS_OPTIONAL +#define SCHEMA_IfcEvent_HAS_EventOccurenceTime +#define SCHEMA_IfcEvent_EventOccurenceTime_IS_OPTIONAL +#define SCHEMA_HAS_IfcEventTime +#define SCHEMA_IfcEventTime_HAS_ActualDate +#define SCHEMA_IfcEventTime_ActualDate_IS_OPTIONAL +#define SCHEMA_IfcEventTime_HAS_EarlyDate +#define SCHEMA_IfcEventTime_EarlyDate_IS_OPTIONAL +#define SCHEMA_IfcEventTime_HAS_LateDate +#define SCHEMA_IfcEventTime_LateDate_IS_OPTIONAL +#define SCHEMA_IfcEventTime_HAS_ScheduleDate +#define SCHEMA_IfcEventTime_ScheduleDate_IS_OPTIONAL +#define SCHEMA_HAS_IfcEventType +#define SCHEMA_IfcEventType_HAS_PredefinedType +#define SCHEMA_IfcEventType_HAS_EventTriggerType +#define SCHEMA_IfcEventType_HAS_UserDefinedEventTriggerType +#define SCHEMA_IfcEventType_UserDefinedEventTriggerType_IS_OPTIONAL +#define SCHEMA_HAS_IfcExtendedProperties +#define SCHEMA_IfcExtendedProperties_HAS_Name +#define SCHEMA_IfcExtendedProperties_Name_IS_OPTIONAL +#define SCHEMA_IfcExtendedProperties_HAS_Description +#define SCHEMA_IfcExtendedProperties_Description_IS_OPTIONAL +#define SCHEMA_IfcExtendedProperties_HAS_Properties +#define SCHEMA_HAS_IfcExternalInformation +#define SCHEMA_HAS_IfcExternalReference +#define SCHEMA_IfcExternalReference_HAS_Location +#define SCHEMA_IfcExternalReference_Location_IS_OPTIONAL +#define SCHEMA_IfcExternalReference_HAS_Identification +#define SCHEMA_IfcExternalReference_Identification_IS_OPTIONAL +#define SCHEMA_IfcExternalReference_HAS_Name +#define SCHEMA_IfcExternalReference_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcExternalReferenceRelationship +#define SCHEMA_IfcExternalReferenceRelationship_HAS_RelatingReference +#define SCHEMA_IfcExternalReferenceRelationship_HAS_RelatedResourceObjects +#define SCHEMA_HAS_IfcExternalSpatialElement +#define SCHEMA_IfcExternalSpatialElement_HAS_PredefinedType +#define SCHEMA_IfcExternalSpatialElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcExternalSpatialStructureElement +#define SCHEMA_HAS_IfcExternallyDefinedHatchStyle +#define SCHEMA_HAS_IfcExternallyDefinedSurfaceStyle +#define SCHEMA_HAS_IfcExternallyDefinedTextFont +#define SCHEMA_HAS_IfcExtrudedAreaSolid +#define SCHEMA_IfcExtrudedAreaSolid_HAS_ExtrudedDirection +#define SCHEMA_IfcExtrudedAreaSolid_HAS_Depth +#define SCHEMA_HAS_IfcExtrudedAreaSolidTapered +#define SCHEMA_IfcExtrudedAreaSolidTapered_HAS_EndSweptArea +#define SCHEMA_HAS_IfcFace +#define SCHEMA_IfcFace_HAS_Bounds +#define SCHEMA_HAS_IfcFaceBasedSurfaceModel +#define SCHEMA_IfcFaceBasedSurfaceModel_HAS_FbsmFaces +#define SCHEMA_HAS_IfcFaceBound +#define SCHEMA_IfcFaceBound_HAS_Bound +#define SCHEMA_IfcFaceBound_HAS_Orientation +#define SCHEMA_HAS_IfcFaceOuterBound +#define SCHEMA_HAS_IfcFaceSurface +#define SCHEMA_IfcFaceSurface_HAS_FaceSurface +#define SCHEMA_IfcFaceSurface_HAS_SameSense +#define SCHEMA_HAS_IfcFacetedBrep +#define SCHEMA_HAS_IfcFacetedBrepWithVoids +#define SCHEMA_IfcFacetedBrepWithVoids_HAS_Voids +#define SCHEMA_HAS_IfcFacility +#define SCHEMA_HAS_IfcFacilityPart +#define SCHEMA_HAS_IfcFailureConnectionCondition +#define SCHEMA_IfcFailureConnectionCondition_HAS_TensionFailureX +#define SCHEMA_IfcFailureConnectionCondition_TensionFailureX_IS_OPTIONAL +#define SCHEMA_IfcFailureConnectionCondition_HAS_TensionFailureY +#define SCHEMA_IfcFailureConnectionCondition_TensionFailureY_IS_OPTIONAL +#define SCHEMA_IfcFailureConnectionCondition_HAS_TensionFailureZ +#define SCHEMA_IfcFailureConnectionCondition_TensionFailureZ_IS_OPTIONAL +#define SCHEMA_IfcFailureConnectionCondition_HAS_CompressionFailureX +#define SCHEMA_IfcFailureConnectionCondition_CompressionFailureX_IS_OPTIONAL +#define SCHEMA_IfcFailureConnectionCondition_HAS_CompressionFailureY +#define SCHEMA_IfcFailureConnectionCondition_CompressionFailureY_IS_OPTIONAL +#define SCHEMA_IfcFailureConnectionCondition_HAS_CompressionFailureZ +#define SCHEMA_IfcFailureConnectionCondition_CompressionFailureZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcFan +#define SCHEMA_IfcFan_HAS_PredefinedType +#define SCHEMA_IfcFan_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFanType +#define SCHEMA_IfcFanType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFastener +#define SCHEMA_IfcFastener_HAS_PredefinedType +#define SCHEMA_IfcFastener_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFastenerType +#define SCHEMA_IfcFastenerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFeatureElement +#define SCHEMA_HAS_IfcFeatureElementAddition +#define SCHEMA_HAS_IfcFeatureElementSubtraction +#define SCHEMA_HAS_IfcFillAreaStyle +#define SCHEMA_IfcFillAreaStyle_HAS_FillStyles +#define SCHEMA_IfcFillAreaStyle_HAS_ModelorDraughting +#define SCHEMA_IfcFillAreaStyle_ModelorDraughting_IS_OPTIONAL +#define SCHEMA_HAS_IfcFillAreaStyleHatching +#define SCHEMA_IfcFillAreaStyleHatching_HAS_HatchLineAppearance +#define SCHEMA_IfcFillAreaStyleHatching_HAS_StartOfNextHatchLine +#define SCHEMA_IfcFillAreaStyleHatching_HAS_PointOfReferenceHatchLine +#define SCHEMA_IfcFillAreaStyleHatching_PointOfReferenceHatchLine_IS_OPTIONAL +#define SCHEMA_IfcFillAreaStyleHatching_HAS_PatternStart +#define SCHEMA_IfcFillAreaStyleHatching_PatternStart_IS_OPTIONAL +#define SCHEMA_IfcFillAreaStyleHatching_HAS_HatchLineAngle +#define SCHEMA_HAS_IfcFillAreaStyleTiles +#define SCHEMA_IfcFillAreaStyleTiles_HAS_TilingPattern +#define SCHEMA_IfcFillAreaStyleTiles_HAS_Tiles +#define SCHEMA_IfcFillAreaStyleTiles_HAS_TilingScale +#define SCHEMA_HAS_IfcFilter +#define SCHEMA_IfcFilter_HAS_PredefinedType +#define SCHEMA_IfcFilter_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFilterType +#define SCHEMA_IfcFilterType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFireSuppressionTerminal +#define SCHEMA_IfcFireSuppressionTerminal_HAS_PredefinedType +#define SCHEMA_IfcFireSuppressionTerminal_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFireSuppressionTerminalType +#define SCHEMA_IfcFireSuppressionTerminalType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFixedReferenceSweptAreaSolid +#define SCHEMA_IfcFixedReferenceSweptAreaSolid_HAS_Directrix +#define SCHEMA_IfcFixedReferenceSweptAreaSolid_HAS_StartParam +#define SCHEMA_IfcFixedReferenceSweptAreaSolid_StartParam_IS_OPTIONAL +#define SCHEMA_IfcFixedReferenceSweptAreaSolid_HAS_EndParam +#define SCHEMA_IfcFixedReferenceSweptAreaSolid_EndParam_IS_OPTIONAL +#define SCHEMA_IfcFixedReferenceSweptAreaSolid_HAS_FixedReference +#define SCHEMA_HAS_IfcFlowController +#define SCHEMA_HAS_IfcFlowControllerType +#define SCHEMA_HAS_IfcFlowFitting +#define SCHEMA_HAS_IfcFlowFittingType +#define SCHEMA_HAS_IfcFlowInstrument +#define SCHEMA_IfcFlowInstrument_HAS_PredefinedType +#define SCHEMA_IfcFlowInstrument_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFlowInstrumentType +#define SCHEMA_IfcFlowInstrumentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFlowMeter +#define SCHEMA_IfcFlowMeter_HAS_PredefinedType +#define SCHEMA_IfcFlowMeter_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFlowMeterType +#define SCHEMA_IfcFlowMeterType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFlowMovingDevice +#define SCHEMA_HAS_IfcFlowMovingDeviceType +#define SCHEMA_HAS_IfcFlowSegment +#define SCHEMA_HAS_IfcFlowSegmentType +#define SCHEMA_HAS_IfcFlowStorageDevice +#define SCHEMA_HAS_IfcFlowStorageDeviceType +#define SCHEMA_HAS_IfcFlowTerminal +#define SCHEMA_HAS_IfcFlowTerminalType +#define SCHEMA_HAS_IfcFlowTreatmentDevice +#define SCHEMA_HAS_IfcFlowTreatmentDeviceType +#define SCHEMA_HAS_IfcFooting +#define SCHEMA_IfcFooting_HAS_PredefinedType +#define SCHEMA_IfcFooting_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFootingType +#define SCHEMA_IfcFootingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcFurnishingElement +#define SCHEMA_HAS_IfcFurnishingElementType +#define SCHEMA_HAS_IfcFurniture +#define SCHEMA_IfcFurniture_HAS_PredefinedType +#define SCHEMA_IfcFurniture_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcFurnitureType +#define SCHEMA_IfcFurnitureType_HAS_AssemblyPlace +#define SCHEMA_IfcFurnitureType_HAS_PredefinedType +#define SCHEMA_IfcFurnitureType_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcGeographicElement +#define SCHEMA_IfcGeographicElement_HAS_PredefinedType +#define SCHEMA_IfcGeographicElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcGeographicElementType +#define SCHEMA_IfcGeographicElementType_HAS_PredefinedType +#define SCHEMA_HAS_IfcGeometricCurveSet +#define SCHEMA_HAS_IfcGeometricRepresentationContext +#define SCHEMA_IfcGeometricRepresentationContext_HAS_CoordinateSpaceDimension +#define SCHEMA_IfcGeometricRepresentationContext_HAS_Precision +#define SCHEMA_IfcGeometricRepresentationContext_Precision_IS_OPTIONAL +#define SCHEMA_IfcGeometricRepresentationContext_HAS_WorldCoordinateSystem +#define SCHEMA_IfcGeometricRepresentationContext_HAS_TrueNorth +#define SCHEMA_IfcGeometricRepresentationContext_TrueNorth_IS_OPTIONAL +#define SCHEMA_HAS_IfcGeometricRepresentationItem +#define SCHEMA_HAS_IfcGeometricRepresentationSubContext +#define SCHEMA_IfcGeometricRepresentationSubContext_HAS_ParentContext +#define SCHEMA_IfcGeometricRepresentationSubContext_HAS_TargetScale +#define SCHEMA_IfcGeometricRepresentationSubContext_TargetScale_IS_OPTIONAL +#define SCHEMA_IfcGeometricRepresentationSubContext_HAS_TargetView +#define SCHEMA_IfcGeometricRepresentationSubContext_HAS_UserDefinedTargetView +#define SCHEMA_IfcGeometricRepresentationSubContext_UserDefinedTargetView_IS_OPTIONAL +#define SCHEMA_HAS_IfcGeometricSet +#define SCHEMA_IfcGeometricSet_HAS_Elements +#define SCHEMA_HAS_IfcGrid +#define SCHEMA_IfcGrid_HAS_UAxes +#define SCHEMA_IfcGrid_HAS_VAxes +#define SCHEMA_IfcGrid_HAS_WAxes +#define SCHEMA_IfcGrid_WAxes_IS_OPTIONAL +#define SCHEMA_IfcGrid_HAS_PredefinedType +#define SCHEMA_IfcGrid_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcGridAxis +#define SCHEMA_IfcGridAxis_HAS_AxisTag +#define SCHEMA_IfcGridAxis_AxisTag_IS_OPTIONAL +#define SCHEMA_IfcGridAxis_HAS_AxisCurve +#define SCHEMA_IfcGridAxis_HAS_SameSense +#define SCHEMA_HAS_IfcGridPlacement +#define SCHEMA_IfcGridPlacement_HAS_PlacementLocation +#define SCHEMA_IfcGridPlacement_HAS_PlacementRefDirection +#define SCHEMA_IfcGridPlacement_PlacementRefDirection_IS_OPTIONAL +#define SCHEMA_HAS_IfcGroup +#define SCHEMA_HAS_IfcHalfSpaceSolid +#define SCHEMA_IfcHalfSpaceSolid_HAS_BaseSurface +#define SCHEMA_IfcHalfSpaceSolid_HAS_AgreementFlag +#define SCHEMA_HAS_IfcHeatExchanger +#define SCHEMA_IfcHeatExchanger_HAS_PredefinedType +#define SCHEMA_IfcHeatExchanger_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcHeatExchangerType +#define SCHEMA_IfcHeatExchangerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcHumidifier +#define SCHEMA_IfcHumidifier_HAS_PredefinedType +#define SCHEMA_IfcHumidifier_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcHumidifierType +#define SCHEMA_IfcHumidifierType_HAS_PredefinedType +#define SCHEMA_HAS_IfcIShapeProfileDef +#define SCHEMA_IfcIShapeProfileDef_HAS_OverallWidth +#define SCHEMA_IfcIShapeProfileDef_HAS_OverallDepth +#define SCHEMA_IfcIShapeProfileDef_HAS_WebThickness +#define SCHEMA_IfcIShapeProfileDef_HAS_FlangeThickness +#define SCHEMA_IfcIShapeProfileDef_HAS_FilletRadius +#define SCHEMA_IfcIShapeProfileDef_FilletRadius_IS_OPTIONAL +#define SCHEMA_IfcIShapeProfileDef_HAS_FlangeEdgeRadius +#define SCHEMA_IfcIShapeProfileDef_FlangeEdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcIShapeProfileDef_HAS_FlangeSlope +#define SCHEMA_IfcIShapeProfileDef_FlangeSlope_IS_OPTIONAL +#define SCHEMA_HAS_IfcImageTexture +#define SCHEMA_IfcImageTexture_HAS_URLReference +#define SCHEMA_HAS_IfcIndexedColourMap +#define SCHEMA_IfcIndexedColourMap_HAS_MappedTo +#define SCHEMA_IfcIndexedColourMap_HAS_Opacity +#define SCHEMA_IfcIndexedColourMap_Opacity_IS_OPTIONAL +#define SCHEMA_IfcIndexedColourMap_HAS_Colours +#define SCHEMA_IfcIndexedColourMap_HAS_ColourIndex +#define SCHEMA_HAS_IfcIndexedPolyCurve +#define SCHEMA_IfcIndexedPolyCurve_HAS_Points +#define SCHEMA_IfcIndexedPolyCurve_HAS_Segments +#define SCHEMA_IfcIndexedPolyCurve_Segments_IS_OPTIONAL +#define SCHEMA_IfcIndexedPolyCurve_HAS_SelfIntersect +#define SCHEMA_IfcIndexedPolyCurve_SelfIntersect_IS_OPTIONAL +#define SCHEMA_HAS_IfcIndexedPolygonalFace +#define SCHEMA_IfcIndexedPolygonalFace_HAS_CoordIndex +#define SCHEMA_HAS_IfcIndexedPolygonalFaceWithVoids +#define SCHEMA_IfcIndexedPolygonalFaceWithVoids_HAS_InnerCoordIndices +#define SCHEMA_HAS_IfcIndexedTextureMap +#define SCHEMA_IfcIndexedTextureMap_HAS_MappedTo +#define SCHEMA_IfcIndexedTextureMap_HAS_TexCoords +#define SCHEMA_HAS_IfcIndexedTriangleTextureMap +#define SCHEMA_IfcIndexedTriangleTextureMap_HAS_TexCoordIndex +#define SCHEMA_IfcIndexedTriangleTextureMap_TexCoordIndex_IS_OPTIONAL +#define SCHEMA_HAS_IfcInterceptor +#define SCHEMA_IfcInterceptor_HAS_PredefinedType +#define SCHEMA_IfcInterceptor_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcInterceptorType +#define SCHEMA_IfcInterceptorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcIntersectionCurve +#define SCHEMA_HAS_IfcInventory +#define SCHEMA_IfcInventory_HAS_PredefinedType +#define SCHEMA_IfcInventory_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcInventory_HAS_Jurisdiction +#define SCHEMA_IfcInventory_Jurisdiction_IS_OPTIONAL +#define SCHEMA_IfcInventory_HAS_ResponsiblePersons +#define SCHEMA_IfcInventory_ResponsiblePersons_IS_OPTIONAL +#define SCHEMA_IfcInventory_HAS_LastUpdateDate +#define SCHEMA_IfcInventory_LastUpdateDate_IS_OPTIONAL +#define SCHEMA_IfcInventory_HAS_CurrentValue +#define SCHEMA_IfcInventory_CurrentValue_IS_OPTIONAL +#define SCHEMA_IfcInventory_HAS_OriginalValue +#define SCHEMA_IfcInventory_OriginalValue_IS_OPTIONAL +#define SCHEMA_HAS_IfcIrregularTimeSeries +#define SCHEMA_IfcIrregularTimeSeries_HAS_Values +#define SCHEMA_HAS_IfcIrregularTimeSeriesValue +#define SCHEMA_IfcIrregularTimeSeriesValue_HAS_TimeStamp +#define SCHEMA_IfcIrregularTimeSeriesValue_HAS_ListValues +#define SCHEMA_HAS_IfcJunctionBox +#define SCHEMA_IfcJunctionBox_HAS_PredefinedType +#define SCHEMA_IfcJunctionBox_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcJunctionBoxType +#define SCHEMA_IfcJunctionBoxType_HAS_PredefinedType +#define SCHEMA_HAS_IfcLShapeProfileDef +#define SCHEMA_IfcLShapeProfileDef_HAS_Depth +#define SCHEMA_IfcLShapeProfileDef_HAS_Width +#define SCHEMA_IfcLShapeProfileDef_Width_IS_OPTIONAL +#define SCHEMA_IfcLShapeProfileDef_HAS_Thickness +#define SCHEMA_IfcLShapeProfileDef_HAS_FilletRadius +#define SCHEMA_IfcLShapeProfileDef_FilletRadius_IS_OPTIONAL +#define SCHEMA_IfcLShapeProfileDef_HAS_EdgeRadius +#define SCHEMA_IfcLShapeProfileDef_EdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcLShapeProfileDef_HAS_LegSlope +#define SCHEMA_IfcLShapeProfileDef_LegSlope_IS_OPTIONAL +#define SCHEMA_HAS_IfcLaborResource +#define SCHEMA_IfcLaborResource_HAS_PredefinedType +#define SCHEMA_IfcLaborResource_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcLaborResourceType +#define SCHEMA_IfcLaborResourceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcLagTime +#define SCHEMA_IfcLagTime_HAS_LagValue +#define SCHEMA_IfcLagTime_HAS_DurationType +#define SCHEMA_HAS_IfcLamp +#define SCHEMA_IfcLamp_HAS_PredefinedType +#define SCHEMA_IfcLamp_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcLampType +#define SCHEMA_IfcLampType_HAS_PredefinedType +#define SCHEMA_HAS_IfcLibraryInformation +#define SCHEMA_IfcLibraryInformation_HAS_Name +#define SCHEMA_IfcLibraryInformation_HAS_Version +#define SCHEMA_IfcLibraryInformation_Version_IS_OPTIONAL +#define SCHEMA_IfcLibraryInformation_HAS_Publisher +#define SCHEMA_IfcLibraryInformation_Publisher_IS_OPTIONAL +#define SCHEMA_IfcLibraryInformation_HAS_VersionDate +#define SCHEMA_IfcLibraryInformation_VersionDate_IS_OPTIONAL +#define SCHEMA_IfcLibraryInformation_HAS_Location +#define SCHEMA_IfcLibraryInformation_Location_IS_OPTIONAL +#define SCHEMA_IfcLibraryInformation_HAS_Description +#define SCHEMA_IfcLibraryInformation_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcLibraryReference +#define SCHEMA_IfcLibraryReference_HAS_Description +#define SCHEMA_IfcLibraryReference_Description_IS_OPTIONAL +#define SCHEMA_IfcLibraryReference_HAS_Language +#define SCHEMA_IfcLibraryReference_Language_IS_OPTIONAL +#define SCHEMA_IfcLibraryReference_HAS_ReferencedLibrary +#define SCHEMA_IfcLibraryReference_ReferencedLibrary_IS_OPTIONAL +#define SCHEMA_HAS_IfcLightDistributionData +#define SCHEMA_IfcLightDistributionData_HAS_MainPlaneAngle +#define SCHEMA_IfcLightDistributionData_HAS_SecondaryPlaneAngle +#define SCHEMA_IfcLightDistributionData_HAS_LuminousIntensity +#define SCHEMA_HAS_IfcLightFixture +#define SCHEMA_IfcLightFixture_HAS_PredefinedType +#define SCHEMA_IfcLightFixture_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcLightFixtureType +#define SCHEMA_IfcLightFixtureType_HAS_PredefinedType +#define SCHEMA_HAS_IfcLightIntensityDistribution +#define SCHEMA_IfcLightIntensityDistribution_HAS_LightDistributionCurve +#define SCHEMA_IfcLightIntensityDistribution_HAS_DistributionData +#define SCHEMA_HAS_IfcLightSource +#define SCHEMA_IfcLightSource_HAS_Name +#define SCHEMA_IfcLightSource_Name_IS_OPTIONAL +#define SCHEMA_IfcLightSource_HAS_LightColour +#define SCHEMA_IfcLightSource_HAS_AmbientIntensity +#define SCHEMA_IfcLightSource_AmbientIntensity_IS_OPTIONAL +#define SCHEMA_IfcLightSource_HAS_Intensity +#define SCHEMA_IfcLightSource_Intensity_IS_OPTIONAL +#define SCHEMA_HAS_IfcLightSourceAmbient +#define SCHEMA_HAS_IfcLightSourceDirectional +#define SCHEMA_IfcLightSourceDirectional_HAS_Orientation +#define SCHEMA_HAS_IfcLightSourceGoniometric +#define SCHEMA_IfcLightSourceGoniometric_HAS_Position +#define SCHEMA_IfcLightSourceGoniometric_HAS_ColourAppearance +#define SCHEMA_IfcLightSourceGoniometric_ColourAppearance_IS_OPTIONAL +#define SCHEMA_IfcLightSourceGoniometric_HAS_ColourTemperature +#define SCHEMA_IfcLightSourceGoniometric_HAS_LuminousFlux +#define SCHEMA_IfcLightSourceGoniometric_HAS_LightEmissionSource +#define SCHEMA_IfcLightSourceGoniometric_HAS_LightDistributionDataSource +#define SCHEMA_HAS_IfcLightSourcePositional +#define SCHEMA_IfcLightSourcePositional_HAS_Position +#define SCHEMA_IfcLightSourcePositional_HAS_Radius +#define SCHEMA_IfcLightSourcePositional_HAS_ConstantAttenuation +#define SCHEMA_IfcLightSourcePositional_HAS_DistanceAttenuation +#define SCHEMA_IfcLightSourcePositional_HAS_QuadricAttenuation +#define SCHEMA_HAS_IfcLightSourceSpot +#define SCHEMA_IfcLightSourceSpot_HAS_Orientation +#define SCHEMA_IfcLightSourceSpot_HAS_ConcentrationExponent +#define SCHEMA_IfcLightSourceSpot_ConcentrationExponent_IS_OPTIONAL +#define SCHEMA_IfcLightSourceSpot_HAS_SpreadAngle +#define SCHEMA_IfcLightSourceSpot_HAS_BeamWidthAngle +#define SCHEMA_HAS_IfcLine +#define SCHEMA_IfcLine_HAS_Pnt +#define SCHEMA_IfcLine_HAS_Dir +#define SCHEMA_HAS_IfcLineSegment2D +#define SCHEMA_HAS_IfcLinearPlacement +#define SCHEMA_IfcLinearPlacement_HAS_PlacementMeasuredAlong +#define SCHEMA_IfcLinearPlacement_HAS_Distance +#define SCHEMA_IfcLinearPlacement_HAS_Orientation +#define SCHEMA_IfcLinearPlacement_Orientation_IS_OPTIONAL +#define SCHEMA_IfcLinearPlacement_HAS_CartesianPosition +#define SCHEMA_IfcLinearPlacement_CartesianPosition_IS_OPTIONAL +#define SCHEMA_HAS_IfcLinearPositioningElement +#define SCHEMA_IfcLinearPositioningElement_HAS_Axis +#define SCHEMA_HAS_IfcLocalPlacement +#define SCHEMA_IfcLocalPlacement_HAS_RelativePlacement +#define SCHEMA_HAS_IfcLoop +#define SCHEMA_HAS_IfcManifoldSolidBrep +#define SCHEMA_IfcManifoldSolidBrep_HAS_Outer +#define SCHEMA_HAS_IfcMapConversion +#define SCHEMA_IfcMapConversion_HAS_Eastings +#define SCHEMA_IfcMapConversion_HAS_Northings +#define SCHEMA_IfcMapConversion_HAS_OrthogonalHeight +#define SCHEMA_IfcMapConversion_HAS_XAxisAbscissa +#define SCHEMA_IfcMapConversion_XAxisAbscissa_IS_OPTIONAL +#define SCHEMA_IfcMapConversion_HAS_XAxisOrdinate +#define SCHEMA_IfcMapConversion_XAxisOrdinate_IS_OPTIONAL +#define SCHEMA_IfcMapConversion_HAS_Scale +#define SCHEMA_IfcMapConversion_Scale_IS_OPTIONAL +#define SCHEMA_HAS_IfcMappedItem +#define SCHEMA_IfcMappedItem_HAS_MappingSource +#define SCHEMA_IfcMappedItem_HAS_MappingTarget +#define SCHEMA_HAS_IfcMaterial +#define SCHEMA_IfcMaterial_HAS_Name +#define SCHEMA_IfcMaterial_HAS_Description +#define SCHEMA_IfcMaterial_Description_IS_OPTIONAL +#define SCHEMA_IfcMaterial_HAS_Category +#define SCHEMA_IfcMaterial_Category_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialClassificationRelationship +#define SCHEMA_IfcMaterialClassificationRelationship_HAS_MaterialClassifications +#define SCHEMA_IfcMaterialClassificationRelationship_HAS_ClassifiedMaterial +#define SCHEMA_HAS_IfcMaterialConstituent +#define SCHEMA_IfcMaterialConstituent_HAS_Name +#define SCHEMA_IfcMaterialConstituent_Name_IS_OPTIONAL +#define SCHEMA_IfcMaterialConstituent_HAS_Description +#define SCHEMA_IfcMaterialConstituent_Description_IS_OPTIONAL +#define SCHEMA_IfcMaterialConstituent_HAS_Material +#define SCHEMA_IfcMaterialConstituent_HAS_Fraction +#define SCHEMA_IfcMaterialConstituent_Fraction_IS_OPTIONAL +#define SCHEMA_IfcMaterialConstituent_HAS_Category +#define SCHEMA_IfcMaterialConstituent_Category_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialConstituentSet +#define SCHEMA_IfcMaterialConstituentSet_HAS_Name +#define SCHEMA_IfcMaterialConstituentSet_Name_IS_OPTIONAL +#define SCHEMA_IfcMaterialConstituentSet_HAS_Description +#define SCHEMA_IfcMaterialConstituentSet_Description_IS_OPTIONAL +#define SCHEMA_IfcMaterialConstituentSet_HAS_MaterialConstituents +#define SCHEMA_IfcMaterialConstituentSet_MaterialConstituents_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialDefinition +#define SCHEMA_HAS_IfcMaterialDefinitionRepresentation +#define SCHEMA_IfcMaterialDefinitionRepresentation_HAS_RepresentedMaterial +#define SCHEMA_HAS_IfcMaterialLayer +#define SCHEMA_IfcMaterialLayer_HAS_Material +#define SCHEMA_IfcMaterialLayer_Material_IS_OPTIONAL +#define SCHEMA_IfcMaterialLayer_HAS_LayerThickness +#define SCHEMA_IfcMaterialLayer_HAS_IsVentilated +#define SCHEMA_IfcMaterialLayer_IsVentilated_IS_OPTIONAL +#define SCHEMA_IfcMaterialLayer_HAS_Name +#define SCHEMA_IfcMaterialLayer_Name_IS_OPTIONAL +#define SCHEMA_IfcMaterialLayer_HAS_Description +#define SCHEMA_IfcMaterialLayer_Description_IS_OPTIONAL +#define SCHEMA_IfcMaterialLayer_HAS_Category +#define SCHEMA_IfcMaterialLayer_Category_IS_OPTIONAL +#define SCHEMA_IfcMaterialLayer_HAS_Priority +#define SCHEMA_IfcMaterialLayer_Priority_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialLayerSet +#define SCHEMA_IfcMaterialLayerSet_HAS_MaterialLayers +#define SCHEMA_IfcMaterialLayerSet_HAS_LayerSetName +#define SCHEMA_IfcMaterialLayerSet_LayerSetName_IS_OPTIONAL +#define SCHEMA_IfcMaterialLayerSet_HAS_Description +#define SCHEMA_IfcMaterialLayerSet_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialLayerSetUsage +#define SCHEMA_IfcMaterialLayerSetUsage_HAS_ForLayerSet +#define SCHEMA_IfcMaterialLayerSetUsage_HAS_LayerSetDirection +#define SCHEMA_IfcMaterialLayerSetUsage_HAS_DirectionSense +#define SCHEMA_IfcMaterialLayerSetUsage_HAS_OffsetFromReferenceLine +#define SCHEMA_IfcMaterialLayerSetUsage_HAS_ReferenceExtent +#define SCHEMA_IfcMaterialLayerSetUsage_ReferenceExtent_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialLayerWithOffsets +#define SCHEMA_IfcMaterialLayerWithOffsets_HAS_OffsetDirection +#define SCHEMA_IfcMaterialLayerWithOffsets_HAS_OffsetValues +#define SCHEMA_HAS_IfcMaterialList +#define SCHEMA_IfcMaterialList_HAS_Materials +#define SCHEMA_HAS_IfcMaterialProfile +#define SCHEMA_IfcMaterialProfile_HAS_Name +#define SCHEMA_IfcMaterialProfile_Name_IS_OPTIONAL +#define SCHEMA_IfcMaterialProfile_HAS_Description +#define SCHEMA_IfcMaterialProfile_Description_IS_OPTIONAL +#define SCHEMA_IfcMaterialProfile_HAS_Material +#define SCHEMA_IfcMaterialProfile_Material_IS_OPTIONAL +#define SCHEMA_IfcMaterialProfile_HAS_Profile +#define SCHEMA_IfcMaterialProfile_HAS_Priority +#define SCHEMA_IfcMaterialProfile_Priority_IS_OPTIONAL +#define SCHEMA_IfcMaterialProfile_HAS_Category +#define SCHEMA_IfcMaterialProfile_Category_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialProfileSet +#define SCHEMA_IfcMaterialProfileSet_HAS_Name +#define SCHEMA_IfcMaterialProfileSet_Name_IS_OPTIONAL +#define SCHEMA_IfcMaterialProfileSet_HAS_Description +#define SCHEMA_IfcMaterialProfileSet_Description_IS_OPTIONAL +#define SCHEMA_IfcMaterialProfileSet_HAS_MaterialProfiles +#define SCHEMA_IfcMaterialProfileSet_HAS_CompositeProfile +#define SCHEMA_IfcMaterialProfileSet_CompositeProfile_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialProfileSetUsage +#define SCHEMA_IfcMaterialProfileSetUsage_HAS_ForProfileSet +#define SCHEMA_IfcMaterialProfileSetUsage_HAS_CardinalPoint +#define SCHEMA_IfcMaterialProfileSetUsage_CardinalPoint_IS_OPTIONAL +#define SCHEMA_IfcMaterialProfileSetUsage_HAS_ReferenceExtent +#define SCHEMA_IfcMaterialProfileSetUsage_ReferenceExtent_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialProfileSetUsageTapering +#define SCHEMA_IfcMaterialProfileSetUsageTapering_HAS_ForProfileEndSet +#define SCHEMA_IfcMaterialProfileSetUsageTapering_HAS_CardinalEndPoint +#define SCHEMA_IfcMaterialProfileSetUsageTapering_CardinalEndPoint_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialProfileWithOffsets +#define SCHEMA_IfcMaterialProfileWithOffsets_HAS_OffsetValues +#define SCHEMA_HAS_IfcMaterialProperties +#define SCHEMA_IfcMaterialProperties_HAS_Material +#define SCHEMA_HAS_IfcMaterialRelationship +#define SCHEMA_IfcMaterialRelationship_HAS_RelatingMaterial +#define SCHEMA_IfcMaterialRelationship_HAS_RelatedMaterials +#define SCHEMA_IfcMaterialRelationship_HAS_Expression +#define SCHEMA_IfcMaterialRelationship_Expression_IS_OPTIONAL +#define SCHEMA_HAS_IfcMaterialUsageDefinition +#define SCHEMA_HAS_IfcMeasureWithUnit +#define SCHEMA_IfcMeasureWithUnit_HAS_ValueComponent +#define SCHEMA_IfcMeasureWithUnit_HAS_UnitComponent +#define SCHEMA_HAS_IfcMechanicalFastener +#define SCHEMA_IfcMechanicalFastener_HAS_NominalDiameter +#define SCHEMA_IfcMechanicalFastener_NominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcMechanicalFastener_HAS_NominalLength +#define SCHEMA_IfcMechanicalFastener_NominalLength_IS_OPTIONAL +#define SCHEMA_IfcMechanicalFastener_HAS_PredefinedType +#define SCHEMA_IfcMechanicalFastener_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcMechanicalFastenerType +#define SCHEMA_IfcMechanicalFastenerType_HAS_PredefinedType +#define SCHEMA_IfcMechanicalFastenerType_HAS_NominalDiameter +#define SCHEMA_IfcMechanicalFastenerType_NominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcMechanicalFastenerType_HAS_NominalLength +#define SCHEMA_IfcMechanicalFastenerType_NominalLength_IS_OPTIONAL +#define SCHEMA_HAS_IfcMedicalDevice +#define SCHEMA_IfcMedicalDevice_HAS_PredefinedType +#define SCHEMA_IfcMedicalDevice_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcMedicalDeviceType +#define SCHEMA_IfcMedicalDeviceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcMember +#define SCHEMA_IfcMember_HAS_PredefinedType +#define SCHEMA_IfcMember_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcMemberStandardCase +#define SCHEMA_HAS_IfcMemberType +#define SCHEMA_IfcMemberType_HAS_PredefinedType +#define SCHEMA_HAS_IfcMetric +#define SCHEMA_IfcMetric_HAS_Benchmark +#define SCHEMA_IfcMetric_HAS_ValueSource +#define SCHEMA_IfcMetric_ValueSource_IS_OPTIONAL +#define SCHEMA_IfcMetric_HAS_DataValue +#define SCHEMA_IfcMetric_DataValue_IS_OPTIONAL +#define SCHEMA_IfcMetric_HAS_ReferencePath +#define SCHEMA_IfcMetric_ReferencePath_IS_OPTIONAL +#define SCHEMA_HAS_IfcMirroredProfileDef +#define SCHEMA_HAS_IfcMonetaryUnit +#define SCHEMA_IfcMonetaryUnit_HAS_Currency +#define SCHEMA_HAS_IfcMotorConnection +#define SCHEMA_IfcMotorConnection_HAS_PredefinedType +#define SCHEMA_IfcMotorConnection_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcMotorConnectionType +#define SCHEMA_IfcMotorConnectionType_HAS_PredefinedType +#define SCHEMA_HAS_IfcNamedUnit +#define SCHEMA_IfcNamedUnit_HAS_Dimensions +#define SCHEMA_IfcNamedUnit_HAS_UnitType +#define SCHEMA_HAS_IfcObject +#define SCHEMA_IfcObject_HAS_ObjectType +#define SCHEMA_IfcObject_ObjectType_IS_OPTIONAL +#define SCHEMA_HAS_IfcObjectDefinition +#define SCHEMA_HAS_IfcObjectPlacement +#define SCHEMA_IfcObjectPlacement_HAS_PlacementRelTo +#define SCHEMA_IfcObjectPlacement_PlacementRelTo_IS_OPTIONAL +#define SCHEMA_HAS_IfcObjective +#define SCHEMA_IfcObjective_HAS_BenchmarkValues +#define SCHEMA_IfcObjective_BenchmarkValues_IS_OPTIONAL +#define SCHEMA_IfcObjective_HAS_LogicalAggregator +#define SCHEMA_IfcObjective_LogicalAggregator_IS_OPTIONAL +#define SCHEMA_IfcObjective_HAS_ObjectiveQualifier +#define SCHEMA_IfcObjective_HAS_UserDefinedQualifier +#define SCHEMA_IfcObjective_UserDefinedQualifier_IS_OPTIONAL +#define SCHEMA_HAS_IfcOccupant +#define SCHEMA_IfcOccupant_HAS_PredefinedType +#define SCHEMA_IfcOccupant_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcOffsetCurve +#define SCHEMA_IfcOffsetCurve_HAS_BasisCurve +#define SCHEMA_HAS_IfcOffsetCurve2D +#define SCHEMA_IfcOffsetCurve2D_HAS_Distance +#define SCHEMA_IfcOffsetCurve2D_HAS_SelfIntersect +#define SCHEMA_HAS_IfcOffsetCurve3D +#define SCHEMA_IfcOffsetCurve3D_HAS_Distance +#define SCHEMA_IfcOffsetCurve3D_HAS_SelfIntersect +#define SCHEMA_IfcOffsetCurve3D_HAS_RefDirection +#define SCHEMA_HAS_IfcOffsetCurveByDistances +#define SCHEMA_IfcOffsetCurveByDistances_HAS_OffsetValues +#define SCHEMA_IfcOffsetCurveByDistances_HAS_Tag +#define SCHEMA_IfcOffsetCurveByDistances_Tag_IS_OPTIONAL +#define SCHEMA_HAS_IfcOpenShell +#define SCHEMA_HAS_IfcOpeningElement +#define SCHEMA_IfcOpeningElement_HAS_PredefinedType +#define SCHEMA_IfcOpeningElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcOpeningStandardCase +#define SCHEMA_HAS_IfcOrganization +#define SCHEMA_IfcOrganization_HAS_Identification +#define SCHEMA_IfcOrganization_Identification_IS_OPTIONAL +#define SCHEMA_IfcOrganization_HAS_Name +#define SCHEMA_IfcOrganization_HAS_Description +#define SCHEMA_IfcOrganization_Description_IS_OPTIONAL +#define SCHEMA_IfcOrganization_HAS_Roles +#define SCHEMA_IfcOrganization_Roles_IS_OPTIONAL +#define SCHEMA_IfcOrganization_HAS_Addresses +#define SCHEMA_IfcOrganization_Addresses_IS_OPTIONAL +#define SCHEMA_HAS_IfcOrganizationRelationship +#define SCHEMA_IfcOrganizationRelationship_HAS_RelatingOrganization +#define SCHEMA_IfcOrganizationRelationship_HAS_RelatedOrganizations +#define SCHEMA_HAS_IfcOrientationExpression +#define SCHEMA_IfcOrientationExpression_HAS_LateralAxisDirection +#define SCHEMA_IfcOrientationExpression_HAS_VerticalAxisDirection +#define SCHEMA_HAS_IfcOrientedEdge +#define SCHEMA_IfcOrientedEdge_HAS_EdgeElement +#define SCHEMA_IfcOrientedEdge_HAS_Orientation +#define SCHEMA_HAS_IfcOuterBoundaryCurve +#define SCHEMA_HAS_IfcOutlet +#define SCHEMA_IfcOutlet_HAS_PredefinedType +#define SCHEMA_IfcOutlet_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcOutletType +#define SCHEMA_IfcOutletType_HAS_PredefinedType +#define SCHEMA_HAS_IfcOwnerHistory +#define SCHEMA_IfcOwnerHistory_HAS_OwningUser +#define SCHEMA_IfcOwnerHistory_HAS_OwningApplication +#define SCHEMA_IfcOwnerHistory_HAS_State +#define SCHEMA_IfcOwnerHistory_State_IS_OPTIONAL +#define SCHEMA_IfcOwnerHistory_HAS_ChangeAction +#define SCHEMA_IfcOwnerHistory_ChangeAction_IS_OPTIONAL +#define SCHEMA_IfcOwnerHistory_HAS_LastModifiedDate +#define SCHEMA_IfcOwnerHistory_LastModifiedDate_IS_OPTIONAL +#define SCHEMA_IfcOwnerHistory_HAS_LastModifyingUser +#define SCHEMA_IfcOwnerHistory_LastModifyingUser_IS_OPTIONAL +#define SCHEMA_IfcOwnerHistory_HAS_LastModifyingApplication +#define SCHEMA_IfcOwnerHistory_LastModifyingApplication_IS_OPTIONAL +#define SCHEMA_IfcOwnerHistory_HAS_CreationDate +#define SCHEMA_HAS_IfcParameterizedProfileDef +#define SCHEMA_IfcParameterizedProfileDef_HAS_Position +#define SCHEMA_IfcParameterizedProfileDef_Position_IS_OPTIONAL +#define SCHEMA_HAS_IfcPath +#define SCHEMA_IfcPath_HAS_EdgeList +#define SCHEMA_HAS_IfcPcurve +#define SCHEMA_IfcPcurve_HAS_BasisSurface +#define SCHEMA_IfcPcurve_HAS_ReferenceCurve +#define SCHEMA_HAS_IfcPerformanceHistory +#define SCHEMA_IfcPerformanceHistory_HAS_LifeCyclePhase +#define SCHEMA_IfcPerformanceHistory_HAS_PredefinedType +#define SCHEMA_IfcPerformanceHistory_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcPermeableCoveringProperties +#define SCHEMA_IfcPermeableCoveringProperties_HAS_OperationType +#define SCHEMA_IfcPermeableCoveringProperties_HAS_PanelPosition +#define SCHEMA_IfcPermeableCoveringProperties_HAS_FrameDepth +#define SCHEMA_IfcPermeableCoveringProperties_FrameDepth_IS_OPTIONAL +#define SCHEMA_IfcPermeableCoveringProperties_HAS_FrameThickness +#define SCHEMA_IfcPermeableCoveringProperties_FrameThickness_IS_OPTIONAL +#define SCHEMA_IfcPermeableCoveringProperties_HAS_ShapeAspectStyle +#define SCHEMA_IfcPermeableCoveringProperties_ShapeAspectStyle_IS_OPTIONAL +#define SCHEMA_HAS_IfcPermit +#define SCHEMA_IfcPermit_HAS_PredefinedType +#define SCHEMA_IfcPermit_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcPermit_HAS_Status +#define SCHEMA_IfcPermit_Status_IS_OPTIONAL +#define SCHEMA_IfcPermit_HAS_LongDescription +#define SCHEMA_IfcPermit_LongDescription_IS_OPTIONAL +#define SCHEMA_HAS_IfcPerson +#define SCHEMA_IfcPerson_HAS_Identification +#define SCHEMA_IfcPerson_Identification_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_FamilyName +#define SCHEMA_IfcPerson_FamilyName_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_GivenName +#define SCHEMA_IfcPerson_GivenName_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_MiddleNames +#define SCHEMA_IfcPerson_MiddleNames_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_PrefixTitles +#define SCHEMA_IfcPerson_PrefixTitles_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_SuffixTitles +#define SCHEMA_IfcPerson_SuffixTitles_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_Roles +#define SCHEMA_IfcPerson_Roles_IS_OPTIONAL +#define SCHEMA_IfcPerson_HAS_Addresses +#define SCHEMA_IfcPerson_Addresses_IS_OPTIONAL +#define SCHEMA_HAS_IfcPersonAndOrganization +#define SCHEMA_IfcPersonAndOrganization_HAS_ThePerson +#define SCHEMA_IfcPersonAndOrganization_HAS_TheOrganization +#define SCHEMA_IfcPersonAndOrganization_HAS_Roles +#define SCHEMA_IfcPersonAndOrganization_Roles_IS_OPTIONAL +#define SCHEMA_HAS_IfcPhysicalComplexQuantity +#define SCHEMA_IfcPhysicalComplexQuantity_HAS_HasQuantities +#define SCHEMA_IfcPhysicalComplexQuantity_HAS_Discrimination +#define SCHEMA_IfcPhysicalComplexQuantity_HAS_Quality +#define SCHEMA_IfcPhysicalComplexQuantity_Quality_IS_OPTIONAL +#define SCHEMA_IfcPhysicalComplexQuantity_HAS_Usage +#define SCHEMA_IfcPhysicalComplexQuantity_Usage_IS_OPTIONAL +#define SCHEMA_HAS_IfcPhysicalQuantity +#define SCHEMA_IfcPhysicalQuantity_HAS_Name +#define SCHEMA_IfcPhysicalQuantity_HAS_Description +#define SCHEMA_IfcPhysicalQuantity_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcPhysicalSimpleQuantity +#define SCHEMA_IfcPhysicalSimpleQuantity_HAS_Unit +#define SCHEMA_IfcPhysicalSimpleQuantity_Unit_IS_OPTIONAL +#define SCHEMA_HAS_IfcPile +#define SCHEMA_IfcPile_HAS_PredefinedType +#define SCHEMA_IfcPile_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcPile_HAS_ConstructionType +#define SCHEMA_IfcPile_ConstructionType_IS_OPTIONAL +#define SCHEMA_HAS_IfcPileType +#define SCHEMA_IfcPileType_HAS_PredefinedType +#define SCHEMA_HAS_IfcPipeFitting +#define SCHEMA_IfcPipeFitting_HAS_PredefinedType +#define SCHEMA_IfcPipeFitting_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcPipeFittingType +#define SCHEMA_IfcPipeFittingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcPipeSegment +#define SCHEMA_IfcPipeSegment_HAS_PredefinedType +#define SCHEMA_IfcPipeSegment_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcPipeSegmentType +#define SCHEMA_IfcPipeSegmentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcPixelTexture +#define SCHEMA_IfcPixelTexture_HAS_Width +#define SCHEMA_IfcPixelTexture_HAS_Height +#define SCHEMA_IfcPixelTexture_HAS_ColourComponents +#define SCHEMA_IfcPixelTexture_HAS_Pixel +#define SCHEMA_HAS_IfcPlacement +#define SCHEMA_IfcPlacement_HAS_Location +#define SCHEMA_HAS_IfcPlanarBox +#define SCHEMA_IfcPlanarBox_HAS_Placement +#define SCHEMA_HAS_IfcPlanarExtent +#define SCHEMA_IfcPlanarExtent_HAS_SizeInX +#define SCHEMA_IfcPlanarExtent_HAS_SizeInY +#define SCHEMA_HAS_IfcPlane +#define SCHEMA_HAS_IfcPlate +#define SCHEMA_IfcPlate_HAS_PredefinedType +#define SCHEMA_IfcPlate_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcPlateStandardCase +#define SCHEMA_HAS_IfcPlateType +#define SCHEMA_IfcPlateType_HAS_PredefinedType +#define SCHEMA_HAS_IfcPoint +#define SCHEMA_HAS_IfcPointOnCurve +#define SCHEMA_IfcPointOnCurve_HAS_BasisCurve +#define SCHEMA_IfcPointOnCurve_HAS_PointParameter +#define SCHEMA_HAS_IfcPointOnSurface +#define SCHEMA_IfcPointOnSurface_HAS_BasisSurface +#define SCHEMA_IfcPointOnSurface_HAS_PointParameterU +#define SCHEMA_IfcPointOnSurface_HAS_PointParameterV +#define SCHEMA_HAS_IfcPolyLoop +#define SCHEMA_IfcPolyLoop_HAS_Polygon +#define SCHEMA_HAS_IfcPolygonalBoundedHalfSpace +#define SCHEMA_IfcPolygonalBoundedHalfSpace_HAS_Position +#define SCHEMA_IfcPolygonalBoundedHalfSpace_HAS_PolygonalBoundary +#define SCHEMA_HAS_IfcPolygonalFaceSet +#define SCHEMA_IfcPolygonalFaceSet_HAS_Closed +#define SCHEMA_IfcPolygonalFaceSet_Closed_IS_OPTIONAL +#define SCHEMA_IfcPolygonalFaceSet_HAS_Faces +#define SCHEMA_IfcPolygonalFaceSet_HAS_PnIndex +#define SCHEMA_IfcPolygonalFaceSet_PnIndex_IS_OPTIONAL +#define SCHEMA_HAS_IfcPolyline +#define SCHEMA_IfcPolyline_HAS_Points +#define SCHEMA_HAS_IfcPort +#define SCHEMA_HAS_IfcPositioningElement +#define SCHEMA_HAS_IfcPostalAddress +#define SCHEMA_IfcPostalAddress_HAS_InternalLocation +#define SCHEMA_IfcPostalAddress_InternalLocation_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_AddressLines +#define SCHEMA_IfcPostalAddress_AddressLines_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_PostalBox +#define SCHEMA_IfcPostalAddress_PostalBox_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_Town +#define SCHEMA_IfcPostalAddress_Town_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_Region +#define SCHEMA_IfcPostalAddress_Region_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_PostalCode +#define SCHEMA_IfcPostalAddress_PostalCode_IS_OPTIONAL +#define SCHEMA_IfcPostalAddress_HAS_Country +#define SCHEMA_IfcPostalAddress_Country_IS_OPTIONAL +#define SCHEMA_HAS_IfcPreDefinedColour +#define SCHEMA_HAS_IfcPreDefinedCurveFont +#define SCHEMA_HAS_IfcPreDefinedItem +#define SCHEMA_IfcPreDefinedItem_HAS_Name +#define SCHEMA_HAS_IfcPreDefinedProperties +#define SCHEMA_HAS_IfcPreDefinedPropertySet +#define SCHEMA_HAS_IfcPreDefinedTextFont +#define SCHEMA_HAS_IfcPresentationItem +#define SCHEMA_HAS_IfcPresentationLayerAssignment +#define SCHEMA_IfcPresentationLayerAssignment_HAS_Name +#define SCHEMA_IfcPresentationLayerAssignment_HAS_Description +#define SCHEMA_IfcPresentationLayerAssignment_Description_IS_OPTIONAL +#define SCHEMA_IfcPresentationLayerAssignment_HAS_AssignedItems +#define SCHEMA_IfcPresentationLayerAssignment_HAS_Identifier +#define SCHEMA_IfcPresentationLayerAssignment_Identifier_IS_OPTIONAL +#define SCHEMA_HAS_IfcPresentationLayerWithStyle +#define SCHEMA_IfcPresentationLayerWithStyle_HAS_LayerOn +#define SCHEMA_IfcPresentationLayerWithStyle_HAS_LayerFrozen +#define SCHEMA_IfcPresentationLayerWithStyle_HAS_LayerBlocked +#define SCHEMA_IfcPresentationLayerWithStyle_HAS_LayerStyles +#define SCHEMA_HAS_IfcPresentationStyle +#define SCHEMA_IfcPresentationStyle_HAS_Name +#define SCHEMA_IfcPresentationStyle_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcPresentationStyleAssignment +#define SCHEMA_IfcPresentationStyleAssignment_HAS_Styles +#define SCHEMA_HAS_IfcProcedure +#define SCHEMA_IfcProcedure_HAS_PredefinedType +#define SCHEMA_IfcProcedure_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcProcedureType +#define SCHEMA_IfcProcedureType_HAS_PredefinedType +#define SCHEMA_HAS_IfcProcess +#define SCHEMA_IfcProcess_HAS_Identification +#define SCHEMA_IfcProcess_Identification_IS_OPTIONAL +#define SCHEMA_IfcProcess_HAS_LongDescription +#define SCHEMA_IfcProcess_LongDescription_IS_OPTIONAL +#define SCHEMA_HAS_IfcProduct +#define SCHEMA_IfcProduct_HAS_ObjectPlacement +#define SCHEMA_IfcProduct_ObjectPlacement_IS_OPTIONAL +#define SCHEMA_IfcProduct_HAS_Representation +#define SCHEMA_IfcProduct_Representation_IS_OPTIONAL +#define SCHEMA_HAS_IfcProductDefinitionShape +#define SCHEMA_HAS_IfcProductRepresentation +#define SCHEMA_IfcProductRepresentation_HAS_Name +#define SCHEMA_IfcProductRepresentation_Name_IS_OPTIONAL +#define SCHEMA_IfcProductRepresentation_HAS_Description +#define SCHEMA_IfcProductRepresentation_Description_IS_OPTIONAL +#define SCHEMA_IfcProductRepresentation_HAS_Representations +#define SCHEMA_HAS_IfcProfileDef +#define SCHEMA_IfcProfileDef_HAS_ProfileType +#define SCHEMA_IfcProfileDef_HAS_ProfileName +#define SCHEMA_IfcProfileDef_ProfileName_IS_OPTIONAL +#define SCHEMA_HAS_IfcProfileProperties +#define SCHEMA_IfcProfileProperties_HAS_ProfileDefinition +#define SCHEMA_HAS_IfcProject +#define SCHEMA_HAS_IfcProjectLibrary +#define SCHEMA_HAS_IfcProjectOrder +#define SCHEMA_IfcProjectOrder_HAS_PredefinedType +#define SCHEMA_IfcProjectOrder_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcProjectOrder_HAS_Status +#define SCHEMA_IfcProjectOrder_Status_IS_OPTIONAL +#define SCHEMA_IfcProjectOrder_HAS_LongDescription +#define SCHEMA_IfcProjectOrder_LongDescription_IS_OPTIONAL +#define SCHEMA_HAS_IfcProjectedCRS +#define SCHEMA_IfcProjectedCRS_HAS_MapProjection +#define SCHEMA_IfcProjectedCRS_MapProjection_IS_OPTIONAL +#define SCHEMA_IfcProjectedCRS_HAS_MapZone +#define SCHEMA_IfcProjectedCRS_MapZone_IS_OPTIONAL +#define SCHEMA_IfcProjectedCRS_HAS_MapUnit +#define SCHEMA_IfcProjectedCRS_MapUnit_IS_OPTIONAL +#define SCHEMA_HAS_IfcProjectionElement +#define SCHEMA_IfcProjectionElement_HAS_PredefinedType +#define SCHEMA_IfcProjectionElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcProperty +#define SCHEMA_IfcProperty_HAS_Name +#define SCHEMA_IfcProperty_HAS_Description +#define SCHEMA_IfcProperty_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyAbstraction +#define SCHEMA_HAS_IfcPropertyBoundedValue +#define SCHEMA_IfcPropertyBoundedValue_HAS_UpperBoundValue +#define SCHEMA_IfcPropertyBoundedValue_UpperBoundValue_IS_OPTIONAL +#define SCHEMA_IfcPropertyBoundedValue_HAS_LowerBoundValue +#define SCHEMA_IfcPropertyBoundedValue_LowerBoundValue_IS_OPTIONAL +#define SCHEMA_IfcPropertyBoundedValue_HAS_Unit +#define SCHEMA_IfcPropertyBoundedValue_Unit_IS_OPTIONAL +#define SCHEMA_IfcPropertyBoundedValue_HAS_SetPointValue +#define SCHEMA_IfcPropertyBoundedValue_SetPointValue_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyDefinition +#define SCHEMA_HAS_IfcPropertyDependencyRelationship +#define SCHEMA_IfcPropertyDependencyRelationship_HAS_DependingProperty +#define SCHEMA_IfcPropertyDependencyRelationship_HAS_DependantProperty +#define SCHEMA_IfcPropertyDependencyRelationship_HAS_Expression +#define SCHEMA_IfcPropertyDependencyRelationship_Expression_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyEnumeratedValue +#define SCHEMA_IfcPropertyEnumeratedValue_HAS_EnumerationValues +#define SCHEMA_IfcPropertyEnumeratedValue_EnumerationValues_IS_OPTIONAL +#define SCHEMA_IfcPropertyEnumeratedValue_HAS_EnumerationReference +#define SCHEMA_IfcPropertyEnumeratedValue_EnumerationReference_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyEnumeration +#define SCHEMA_IfcPropertyEnumeration_HAS_Name +#define SCHEMA_IfcPropertyEnumeration_HAS_EnumerationValues +#define SCHEMA_IfcPropertyEnumeration_HAS_Unit +#define SCHEMA_IfcPropertyEnumeration_Unit_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyListValue +#define SCHEMA_IfcPropertyListValue_HAS_ListValues +#define SCHEMA_IfcPropertyListValue_ListValues_IS_OPTIONAL +#define SCHEMA_IfcPropertyListValue_HAS_Unit +#define SCHEMA_IfcPropertyListValue_Unit_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyReferenceValue +#define SCHEMA_IfcPropertyReferenceValue_HAS_UsageName +#define SCHEMA_IfcPropertyReferenceValue_UsageName_IS_OPTIONAL +#define SCHEMA_IfcPropertyReferenceValue_HAS_PropertyReference +#define SCHEMA_IfcPropertyReferenceValue_PropertyReference_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertySet +#define SCHEMA_IfcPropertySet_HAS_HasProperties +#define SCHEMA_HAS_IfcPropertySetDefinition +#define SCHEMA_HAS_IfcPropertySetTemplate +#define SCHEMA_IfcPropertySetTemplate_HAS_TemplateType +#define SCHEMA_IfcPropertySetTemplate_TemplateType_IS_OPTIONAL +#define SCHEMA_IfcPropertySetTemplate_HAS_ApplicableEntity +#define SCHEMA_IfcPropertySetTemplate_ApplicableEntity_IS_OPTIONAL +#define SCHEMA_IfcPropertySetTemplate_HAS_HasPropertyTemplates +#define SCHEMA_HAS_IfcPropertySingleValue +#define SCHEMA_IfcPropertySingleValue_HAS_NominalValue +#define SCHEMA_IfcPropertySingleValue_NominalValue_IS_OPTIONAL +#define SCHEMA_IfcPropertySingleValue_HAS_Unit +#define SCHEMA_IfcPropertySingleValue_Unit_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyTableValue +#define SCHEMA_IfcPropertyTableValue_HAS_DefiningValues +#define SCHEMA_IfcPropertyTableValue_DefiningValues_IS_OPTIONAL +#define SCHEMA_IfcPropertyTableValue_HAS_DefinedValues +#define SCHEMA_IfcPropertyTableValue_DefinedValues_IS_OPTIONAL +#define SCHEMA_IfcPropertyTableValue_HAS_Expression +#define SCHEMA_IfcPropertyTableValue_Expression_IS_OPTIONAL +#define SCHEMA_IfcPropertyTableValue_HAS_DefiningUnit +#define SCHEMA_IfcPropertyTableValue_DefiningUnit_IS_OPTIONAL +#define SCHEMA_IfcPropertyTableValue_HAS_DefinedUnit +#define SCHEMA_IfcPropertyTableValue_DefinedUnit_IS_OPTIONAL +#define SCHEMA_IfcPropertyTableValue_HAS_CurveInterpolation +#define SCHEMA_IfcPropertyTableValue_CurveInterpolation_IS_OPTIONAL +#define SCHEMA_HAS_IfcPropertyTemplate +#define SCHEMA_HAS_IfcPropertyTemplateDefinition +#define SCHEMA_HAS_IfcProtectiveDevice +#define SCHEMA_IfcProtectiveDevice_HAS_PredefinedType +#define SCHEMA_IfcProtectiveDevice_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcProtectiveDeviceTrippingUnit +#define SCHEMA_IfcProtectiveDeviceTrippingUnit_HAS_PredefinedType +#define SCHEMA_IfcProtectiveDeviceTrippingUnit_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcProtectiveDeviceTrippingUnitType +#define SCHEMA_IfcProtectiveDeviceTrippingUnitType_HAS_PredefinedType +#define SCHEMA_HAS_IfcProtectiveDeviceType +#define SCHEMA_IfcProtectiveDeviceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcProxy +#define SCHEMA_IfcProxy_HAS_ProxyType +#define SCHEMA_IfcProxy_HAS_Tag +#define SCHEMA_IfcProxy_Tag_IS_OPTIONAL +#define SCHEMA_HAS_IfcPump +#define SCHEMA_IfcPump_HAS_PredefinedType +#define SCHEMA_IfcPump_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcPumpType +#define SCHEMA_IfcPumpType_HAS_PredefinedType +#define SCHEMA_HAS_IfcQuantityArea +#define SCHEMA_IfcQuantityArea_HAS_AreaValue +#define SCHEMA_IfcQuantityArea_HAS_Formula +#define SCHEMA_IfcQuantityArea_Formula_IS_OPTIONAL +#define SCHEMA_HAS_IfcQuantityCount +#define SCHEMA_IfcQuantityCount_HAS_CountValue +#define SCHEMA_IfcQuantityCount_HAS_Formula +#define SCHEMA_IfcQuantityCount_Formula_IS_OPTIONAL +#define SCHEMA_HAS_IfcQuantityLength +#define SCHEMA_IfcQuantityLength_HAS_LengthValue +#define SCHEMA_IfcQuantityLength_HAS_Formula +#define SCHEMA_IfcQuantityLength_Formula_IS_OPTIONAL +#define SCHEMA_HAS_IfcQuantitySet +#define SCHEMA_HAS_IfcQuantityTime +#define SCHEMA_IfcQuantityTime_HAS_TimeValue +#define SCHEMA_IfcQuantityTime_HAS_Formula +#define SCHEMA_IfcQuantityTime_Formula_IS_OPTIONAL +#define SCHEMA_HAS_IfcQuantityVolume +#define SCHEMA_IfcQuantityVolume_HAS_VolumeValue +#define SCHEMA_IfcQuantityVolume_HAS_Formula +#define SCHEMA_IfcQuantityVolume_Formula_IS_OPTIONAL +#define SCHEMA_HAS_IfcQuantityWeight +#define SCHEMA_IfcQuantityWeight_HAS_WeightValue +#define SCHEMA_IfcQuantityWeight_HAS_Formula +#define SCHEMA_IfcQuantityWeight_Formula_IS_OPTIONAL +#define SCHEMA_HAS_IfcRailing +#define SCHEMA_IfcRailing_HAS_PredefinedType +#define SCHEMA_IfcRailing_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRailingType +#define SCHEMA_IfcRailingType_HAS_PredefinedType +#define SCHEMA_HAS_IfcRamp +#define SCHEMA_IfcRamp_HAS_PredefinedType +#define SCHEMA_IfcRamp_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRampFlight +#define SCHEMA_IfcRampFlight_HAS_PredefinedType +#define SCHEMA_IfcRampFlight_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRampFlightType +#define SCHEMA_IfcRampFlightType_HAS_PredefinedType +#define SCHEMA_HAS_IfcRampType +#define SCHEMA_IfcRampType_HAS_PredefinedType +#define SCHEMA_HAS_IfcRationalBSplineCurveWithKnots +#define SCHEMA_IfcRationalBSplineCurveWithKnots_HAS_WeightsData +#define SCHEMA_HAS_IfcRationalBSplineSurfaceWithKnots +#define SCHEMA_IfcRationalBSplineSurfaceWithKnots_HAS_WeightsData +#define SCHEMA_HAS_IfcRectangleHollowProfileDef +#define SCHEMA_IfcRectangleHollowProfileDef_HAS_WallThickness +#define SCHEMA_IfcRectangleHollowProfileDef_HAS_InnerFilletRadius +#define SCHEMA_IfcRectangleHollowProfileDef_InnerFilletRadius_IS_OPTIONAL +#define SCHEMA_IfcRectangleHollowProfileDef_HAS_OuterFilletRadius +#define SCHEMA_IfcRectangleHollowProfileDef_OuterFilletRadius_IS_OPTIONAL +#define SCHEMA_HAS_IfcRectangleProfileDef +#define SCHEMA_IfcRectangleProfileDef_HAS_XDim +#define SCHEMA_IfcRectangleProfileDef_HAS_YDim +#define SCHEMA_HAS_IfcRectangularPyramid +#define SCHEMA_IfcRectangularPyramid_HAS_XLength +#define SCHEMA_IfcRectangularPyramid_HAS_YLength +#define SCHEMA_IfcRectangularPyramid_HAS_Height +#define SCHEMA_HAS_IfcRectangularTrimmedSurface +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_BasisSurface +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_U1 +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_V1 +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_U2 +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_V2 +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_Usense +#define SCHEMA_IfcRectangularTrimmedSurface_HAS_Vsense +#define SCHEMA_HAS_IfcRecurrencePattern +#define SCHEMA_IfcRecurrencePattern_HAS_RecurrenceType +#define SCHEMA_IfcRecurrencePattern_HAS_DayComponent +#define SCHEMA_IfcRecurrencePattern_DayComponent_IS_OPTIONAL +#define SCHEMA_IfcRecurrencePattern_HAS_WeekdayComponent +#define SCHEMA_IfcRecurrencePattern_WeekdayComponent_IS_OPTIONAL +#define SCHEMA_IfcRecurrencePattern_HAS_MonthComponent +#define SCHEMA_IfcRecurrencePattern_MonthComponent_IS_OPTIONAL +#define SCHEMA_IfcRecurrencePattern_HAS_Position +#define SCHEMA_IfcRecurrencePattern_Position_IS_OPTIONAL +#define SCHEMA_IfcRecurrencePattern_HAS_Interval +#define SCHEMA_IfcRecurrencePattern_Interval_IS_OPTIONAL +#define SCHEMA_IfcRecurrencePattern_HAS_Occurrences +#define SCHEMA_IfcRecurrencePattern_Occurrences_IS_OPTIONAL +#define SCHEMA_IfcRecurrencePattern_HAS_TimePeriods +#define SCHEMA_IfcRecurrencePattern_TimePeriods_IS_OPTIONAL +#define SCHEMA_HAS_IfcReference +#define SCHEMA_IfcReference_HAS_TypeIdentifier +#define SCHEMA_IfcReference_TypeIdentifier_IS_OPTIONAL +#define SCHEMA_IfcReference_HAS_AttributeIdentifier +#define SCHEMA_IfcReference_AttributeIdentifier_IS_OPTIONAL +#define SCHEMA_IfcReference_HAS_InstanceName +#define SCHEMA_IfcReference_InstanceName_IS_OPTIONAL +#define SCHEMA_IfcReference_HAS_ListPositions +#define SCHEMA_IfcReference_ListPositions_IS_OPTIONAL +#define SCHEMA_IfcReference_HAS_InnerReference +#define SCHEMA_IfcReference_InnerReference_IS_OPTIONAL +#define SCHEMA_HAS_IfcReferent +#define SCHEMA_IfcReferent_HAS_PredefinedType +#define SCHEMA_IfcReferent_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcReferent_HAS_RestartDistance +#define SCHEMA_IfcReferent_RestartDistance_IS_OPTIONAL +#define SCHEMA_HAS_IfcRegularTimeSeries +#define SCHEMA_IfcRegularTimeSeries_HAS_TimeStep +#define SCHEMA_IfcRegularTimeSeries_HAS_Values +#define SCHEMA_HAS_IfcReinforcementBarProperties +#define SCHEMA_IfcReinforcementBarProperties_HAS_TotalCrossSectionArea +#define SCHEMA_IfcReinforcementBarProperties_HAS_SteelGrade +#define SCHEMA_IfcReinforcementBarProperties_HAS_BarSurface +#define SCHEMA_IfcReinforcementBarProperties_BarSurface_IS_OPTIONAL +#define SCHEMA_IfcReinforcementBarProperties_HAS_EffectiveDepth +#define SCHEMA_IfcReinforcementBarProperties_EffectiveDepth_IS_OPTIONAL +#define SCHEMA_IfcReinforcementBarProperties_HAS_NominalBarDiameter +#define SCHEMA_IfcReinforcementBarProperties_NominalBarDiameter_IS_OPTIONAL +#define SCHEMA_IfcReinforcementBarProperties_HAS_BarCount +#define SCHEMA_IfcReinforcementBarProperties_BarCount_IS_OPTIONAL +#define SCHEMA_HAS_IfcReinforcementDefinitionProperties +#define SCHEMA_IfcReinforcementDefinitionProperties_HAS_DefinitionType +#define SCHEMA_IfcReinforcementDefinitionProperties_DefinitionType_IS_OPTIONAL +#define SCHEMA_IfcReinforcementDefinitionProperties_HAS_ReinforcementSectionDefinitions +#define SCHEMA_HAS_IfcReinforcingBar +#define SCHEMA_IfcReinforcingBar_HAS_NominalDiameter +#define SCHEMA_IfcReinforcingBar_NominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBar_HAS_CrossSectionArea +#define SCHEMA_IfcReinforcingBar_CrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBar_HAS_BarLength +#define SCHEMA_IfcReinforcingBar_BarLength_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBar_HAS_PredefinedType +#define SCHEMA_IfcReinforcingBar_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBar_HAS_BarSurface +#define SCHEMA_IfcReinforcingBar_BarSurface_IS_OPTIONAL +#define SCHEMA_HAS_IfcReinforcingBarType +#define SCHEMA_IfcReinforcingBarType_HAS_PredefinedType +#define SCHEMA_IfcReinforcingBarType_HAS_NominalDiameter +#define SCHEMA_IfcReinforcingBarType_NominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBarType_HAS_CrossSectionArea +#define SCHEMA_IfcReinforcingBarType_CrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBarType_HAS_BarLength +#define SCHEMA_IfcReinforcingBarType_BarLength_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBarType_HAS_BarSurface +#define SCHEMA_IfcReinforcingBarType_BarSurface_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBarType_HAS_BendingShapeCode +#define SCHEMA_IfcReinforcingBarType_BendingShapeCode_IS_OPTIONAL +#define SCHEMA_IfcReinforcingBarType_HAS_BendingParameters +#define SCHEMA_IfcReinforcingBarType_BendingParameters_IS_OPTIONAL +#define SCHEMA_HAS_IfcReinforcingElement +#define SCHEMA_IfcReinforcingElement_HAS_SteelGrade +#define SCHEMA_IfcReinforcingElement_SteelGrade_IS_OPTIONAL +#define SCHEMA_HAS_IfcReinforcingElementType +#define SCHEMA_HAS_IfcReinforcingMesh +#define SCHEMA_IfcReinforcingMesh_HAS_MeshLength +#define SCHEMA_IfcReinforcingMesh_MeshLength_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_MeshWidth +#define SCHEMA_IfcReinforcingMesh_MeshWidth_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_LongitudinalBarNominalDiameter +#define SCHEMA_IfcReinforcingMesh_LongitudinalBarNominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_TransverseBarNominalDiameter +#define SCHEMA_IfcReinforcingMesh_TransverseBarNominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_LongitudinalBarCrossSectionArea +#define SCHEMA_IfcReinforcingMesh_LongitudinalBarCrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_TransverseBarCrossSectionArea +#define SCHEMA_IfcReinforcingMesh_TransverseBarCrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_LongitudinalBarSpacing +#define SCHEMA_IfcReinforcingMesh_LongitudinalBarSpacing_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_TransverseBarSpacing +#define SCHEMA_IfcReinforcingMesh_TransverseBarSpacing_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMesh_HAS_PredefinedType +#define SCHEMA_IfcReinforcingMesh_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcReinforcingMeshType +#define SCHEMA_IfcReinforcingMeshType_HAS_PredefinedType +#define SCHEMA_IfcReinforcingMeshType_HAS_MeshLength +#define SCHEMA_IfcReinforcingMeshType_MeshLength_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_MeshWidth +#define SCHEMA_IfcReinforcingMeshType_MeshWidth_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_LongitudinalBarNominalDiameter +#define SCHEMA_IfcReinforcingMeshType_LongitudinalBarNominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_TransverseBarNominalDiameter +#define SCHEMA_IfcReinforcingMeshType_TransverseBarNominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_LongitudinalBarCrossSectionArea +#define SCHEMA_IfcReinforcingMeshType_LongitudinalBarCrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_TransverseBarCrossSectionArea +#define SCHEMA_IfcReinforcingMeshType_TransverseBarCrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_LongitudinalBarSpacing +#define SCHEMA_IfcReinforcingMeshType_LongitudinalBarSpacing_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_TransverseBarSpacing +#define SCHEMA_IfcReinforcingMeshType_TransverseBarSpacing_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_BendingShapeCode +#define SCHEMA_IfcReinforcingMeshType_BendingShapeCode_IS_OPTIONAL +#define SCHEMA_IfcReinforcingMeshType_HAS_BendingParameters +#define SCHEMA_IfcReinforcingMeshType_BendingParameters_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelAggregates +#define SCHEMA_IfcRelAggregates_HAS_RelatingObject +#define SCHEMA_IfcRelAggregates_HAS_RelatedObjects +#define SCHEMA_HAS_IfcRelAssigns +#define SCHEMA_IfcRelAssigns_HAS_RelatedObjects +#define SCHEMA_IfcRelAssigns_HAS_RelatedObjectsType +#define SCHEMA_IfcRelAssigns_RelatedObjectsType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelAssignsToActor +#define SCHEMA_IfcRelAssignsToActor_HAS_RelatingActor +#define SCHEMA_IfcRelAssignsToActor_HAS_ActingRole +#define SCHEMA_IfcRelAssignsToActor_ActingRole_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelAssignsToControl +#define SCHEMA_IfcRelAssignsToControl_HAS_RelatingControl +#define SCHEMA_HAS_IfcRelAssignsToGroup +#define SCHEMA_IfcRelAssignsToGroup_HAS_RelatingGroup +#define SCHEMA_HAS_IfcRelAssignsToGroupByFactor +#define SCHEMA_IfcRelAssignsToGroupByFactor_HAS_Factor +#define SCHEMA_HAS_IfcRelAssignsToProcess +#define SCHEMA_IfcRelAssignsToProcess_HAS_RelatingProcess +#define SCHEMA_IfcRelAssignsToProcess_HAS_QuantityInProcess +#define SCHEMA_IfcRelAssignsToProcess_QuantityInProcess_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelAssignsToProduct +#define SCHEMA_IfcRelAssignsToProduct_HAS_RelatingProduct +#define SCHEMA_HAS_IfcRelAssignsToResource +#define SCHEMA_IfcRelAssignsToResource_HAS_RelatingResource +#define SCHEMA_HAS_IfcRelAssociates +#define SCHEMA_IfcRelAssociates_HAS_RelatedObjects +#define SCHEMA_HAS_IfcRelAssociatesApproval +#define SCHEMA_IfcRelAssociatesApproval_HAS_RelatingApproval +#define SCHEMA_HAS_IfcRelAssociatesClassification +#define SCHEMA_IfcRelAssociatesClassification_HAS_RelatingClassification +#define SCHEMA_HAS_IfcRelAssociatesConstraint +#define SCHEMA_IfcRelAssociatesConstraint_HAS_Intent +#define SCHEMA_IfcRelAssociatesConstraint_Intent_IS_OPTIONAL +#define SCHEMA_IfcRelAssociatesConstraint_HAS_RelatingConstraint +#define SCHEMA_HAS_IfcRelAssociatesDocument +#define SCHEMA_IfcRelAssociatesDocument_HAS_RelatingDocument +#define SCHEMA_HAS_IfcRelAssociatesLibrary +#define SCHEMA_IfcRelAssociatesLibrary_HAS_RelatingLibrary +#define SCHEMA_HAS_IfcRelAssociatesMaterial +#define SCHEMA_IfcRelAssociatesMaterial_HAS_RelatingMaterial +#define SCHEMA_HAS_IfcRelConnects +#define SCHEMA_HAS_IfcRelConnectsElements +#define SCHEMA_IfcRelConnectsElements_HAS_ConnectionGeometry +#define SCHEMA_IfcRelConnectsElements_ConnectionGeometry_IS_OPTIONAL +#define SCHEMA_IfcRelConnectsElements_HAS_RelatingElement +#define SCHEMA_IfcRelConnectsElements_HAS_RelatedElement +#define SCHEMA_HAS_IfcRelConnectsPathElements +#define SCHEMA_IfcRelConnectsPathElements_HAS_RelatingPriorities +#define SCHEMA_IfcRelConnectsPathElements_HAS_RelatedPriorities +#define SCHEMA_IfcRelConnectsPathElements_HAS_RelatedConnectionType +#define SCHEMA_IfcRelConnectsPathElements_HAS_RelatingConnectionType +#define SCHEMA_HAS_IfcRelConnectsPortToElement +#define SCHEMA_IfcRelConnectsPortToElement_HAS_RelatingPort +#define SCHEMA_IfcRelConnectsPortToElement_HAS_RelatedElement +#define SCHEMA_HAS_IfcRelConnectsPorts +#define SCHEMA_IfcRelConnectsPorts_HAS_RelatingPort +#define SCHEMA_IfcRelConnectsPorts_HAS_RelatedPort +#define SCHEMA_IfcRelConnectsPorts_HAS_RealizingElement +#define SCHEMA_IfcRelConnectsPorts_RealizingElement_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelConnectsStructuralActivity +#define SCHEMA_IfcRelConnectsStructuralActivity_HAS_RelatingElement +#define SCHEMA_IfcRelConnectsStructuralActivity_HAS_RelatedStructuralActivity +#define SCHEMA_HAS_IfcRelConnectsStructuralMember +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_RelatingStructuralMember +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_RelatedStructuralConnection +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_AppliedCondition +#define SCHEMA_IfcRelConnectsStructuralMember_AppliedCondition_IS_OPTIONAL +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_AdditionalConditions +#define SCHEMA_IfcRelConnectsStructuralMember_AdditionalConditions_IS_OPTIONAL +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_SupportedLength +#define SCHEMA_IfcRelConnectsStructuralMember_SupportedLength_IS_OPTIONAL +#define SCHEMA_IfcRelConnectsStructuralMember_HAS_ConditionCoordinateSystem +#define SCHEMA_IfcRelConnectsStructuralMember_ConditionCoordinateSystem_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelConnectsWithEccentricity +#define SCHEMA_IfcRelConnectsWithEccentricity_HAS_ConnectionConstraint +#define SCHEMA_HAS_IfcRelConnectsWithRealizingElements +#define SCHEMA_IfcRelConnectsWithRealizingElements_HAS_RealizingElements +#define SCHEMA_IfcRelConnectsWithRealizingElements_HAS_ConnectionType +#define SCHEMA_IfcRelConnectsWithRealizingElements_ConnectionType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelContainedInSpatialStructure +#define SCHEMA_IfcRelContainedInSpatialStructure_HAS_RelatedElements +#define SCHEMA_IfcRelContainedInSpatialStructure_HAS_RelatingStructure +#define SCHEMA_HAS_IfcRelCoversBldgElements +#define SCHEMA_IfcRelCoversBldgElements_HAS_RelatingBuildingElement +#define SCHEMA_IfcRelCoversBldgElements_HAS_RelatedCoverings +#define SCHEMA_HAS_IfcRelCoversSpaces +#define SCHEMA_IfcRelCoversSpaces_HAS_RelatingSpace +#define SCHEMA_IfcRelCoversSpaces_HAS_RelatedCoverings +#define SCHEMA_HAS_IfcRelDeclares +#define SCHEMA_IfcRelDeclares_HAS_RelatingContext +#define SCHEMA_IfcRelDeclares_HAS_RelatedDefinitions +#define SCHEMA_HAS_IfcRelDecomposes +#define SCHEMA_HAS_IfcRelDefines +#define SCHEMA_HAS_IfcRelDefinesByObject +#define SCHEMA_IfcRelDefinesByObject_HAS_RelatedObjects +#define SCHEMA_IfcRelDefinesByObject_HAS_RelatingObject +#define SCHEMA_HAS_IfcRelDefinesByProperties +#define SCHEMA_IfcRelDefinesByProperties_HAS_RelatedObjects +#define SCHEMA_IfcRelDefinesByProperties_HAS_RelatingPropertyDefinition +#define SCHEMA_HAS_IfcRelDefinesByTemplate +#define SCHEMA_IfcRelDefinesByTemplate_HAS_RelatedPropertySets +#define SCHEMA_IfcRelDefinesByTemplate_HAS_RelatingTemplate +#define SCHEMA_HAS_IfcRelDefinesByType +#define SCHEMA_IfcRelDefinesByType_HAS_RelatedObjects +#define SCHEMA_IfcRelDefinesByType_HAS_RelatingType +#define SCHEMA_HAS_IfcRelFillsElement +#define SCHEMA_IfcRelFillsElement_HAS_RelatingOpeningElement +#define SCHEMA_IfcRelFillsElement_HAS_RelatedBuildingElement +#define SCHEMA_HAS_IfcRelFlowControlElements +#define SCHEMA_IfcRelFlowControlElements_HAS_RelatedControlElements +#define SCHEMA_IfcRelFlowControlElements_HAS_RelatingFlowElement +#define SCHEMA_HAS_IfcRelInterferesElements +#define SCHEMA_IfcRelInterferesElements_HAS_RelatingElement +#define SCHEMA_IfcRelInterferesElements_HAS_RelatedElement +#define SCHEMA_IfcRelInterferesElements_HAS_InterferenceGeometry +#define SCHEMA_IfcRelInterferesElements_InterferenceGeometry_IS_OPTIONAL +#define SCHEMA_IfcRelInterferesElements_HAS_InterferenceType +#define SCHEMA_IfcRelInterferesElements_InterferenceType_IS_OPTIONAL +#define SCHEMA_IfcRelInterferesElements_HAS_ImpliedOrder +#define SCHEMA_HAS_IfcRelNests +#define SCHEMA_IfcRelNests_HAS_RelatingObject +#define SCHEMA_IfcRelNests_HAS_RelatedObjects +#define SCHEMA_HAS_IfcRelPositions +#define SCHEMA_IfcRelPositions_HAS_RelatingPositioningElement +#define SCHEMA_IfcRelPositions_HAS_RelatedProducts +#define SCHEMA_HAS_IfcRelProjectsElement +#define SCHEMA_IfcRelProjectsElement_HAS_RelatingElement +#define SCHEMA_IfcRelProjectsElement_HAS_RelatedFeatureElement +#define SCHEMA_HAS_IfcRelReferencedInSpatialStructure +#define SCHEMA_IfcRelReferencedInSpatialStructure_HAS_RelatedElements +#define SCHEMA_IfcRelReferencedInSpatialStructure_HAS_RelatingStructure +#define SCHEMA_HAS_IfcRelSequence +#define SCHEMA_IfcRelSequence_HAS_RelatingProcess +#define SCHEMA_IfcRelSequence_HAS_RelatedProcess +#define SCHEMA_IfcRelSequence_HAS_TimeLag +#define SCHEMA_IfcRelSequence_TimeLag_IS_OPTIONAL +#define SCHEMA_IfcRelSequence_HAS_SequenceType +#define SCHEMA_IfcRelSequence_SequenceType_IS_OPTIONAL +#define SCHEMA_IfcRelSequence_HAS_UserDefinedSequenceType +#define SCHEMA_IfcRelSequence_UserDefinedSequenceType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelServicesBuildings +#define SCHEMA_IfcRelServicesBuildings_HAS_RelatingSystem +#define SCHEMA_IfcRelServicesBuildings_HAS_RelatedBuildings +#define SCHEMA_HAS_IfcRelSpaceBoundary +#define SCHEMA_IfcRelSpaceBoundary_HAS_RelatingSpace +#define SCHEMA_IfcRelSpaceBoundary_HAS_RelatedBuildingElement +#define SCHEMA_IfcRelSpaceBoundary_HAS_ConnectionGeometry +#define SCHEMA_IfcRelSpaceBoundary_ConnectionGeometry_IS_OPTIONAL +#define SCHEMA_IfcRelSpaceBoundary_HAS_PhysicalOrVirtualBoundary +#define SCHEMA_IfcRelSpaceBoundary_HAS_InternalOrExternalBoundary +#define SCHEMA_HAS_IfcRelSpaceBoundary1stLevel +#define SCHEMA_IfcRelSpaceBoundary1stLevel_HAS_ParentBoundary +#define SCHEMA_IfcRelSpaceBoundary1stLevel_ParentBoundary_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelSpaceBoundary2ndLevel +#define SCHEMA_IfcRelSpaceBoundary2ndLevel_HAS_CorrespondingBoundary +#define SCHEMA_IfcRelSpaceBoundary2ndLevel_CorrespondingBoundary_IS_OPTIONAL +#define SCHEMA_HAS_IfcRelVoidsElement +#define SCHEMA_IfcRelVoidsElement_HAS_RelatingBuildingElement +#define SCHEMA_IfcRelVoidsElement_HAS_RelatedOpeningElement +#define SCHEMA_HAS_IfcRelationship +#define SCHEMA_HAS_IfcReparametrisedCompositeCurveSegment +#define SCHEMA_IfcReparametrisedCompositeCurveSegment_HAS_ParamLength +#define SCHEMA_HAS_IfcRepresentation +#define SCHEMA_IfcRepresentation_HAS_ContextOfItems +#define SCHEMA_IfcRepresentation_HAS_RepresentationIdentifier +#define SCHEMA_IfcRepresentation_RepresentationIdentifier_IS_OPTIONAL +#define SCHEMA_IfcRepresentation_HAS_RepresentationType +#define SCHEMA_IfcRepresentation_RepresentationType_IS_OPTIONAL +#define SCHEMA_IfcRepresentation_HAS_Items +#define SCHEMA_HAS_IfcRepresentationContext +#define SCHEMA_IfcRepresentationContext_HAS_ContextIdentifier +#define SCHEMA_IfcRepresentationContext_ContextIdentifier_IS_OPTIONAL +#define SCHEMA_IfcRepresentationContext_HAS_ContextType +#define SCHEMA_IfcRepresentationContext_ContextType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRepresentationItem +#define SCHEMA_HAS_IfcRepresentationMap +#define SCHEMA_IfcRepresentationMap_HAS_MappingOrigin +#define SCHEMA_IfcRepresentationMap_HAS_MappedRepresentation +#define SCHEMA_HAS_IfcResource +#define SCHEMA_IfcResource_HAS_Identification +#define SCHEMA_IfcResource_Identification_IS_OPTIONAL +#define SCHEMA_IfcResource_HAS_LongDescription +#define SCHEMA_IfcResource_LongDescription_IS_OPTIONAL +#define SCHEMA_HAS_IfcResourceApprovalRelationship +#define SCHEMA_IfcResourceApprovalRelationship_HAS_RelatedResourceObjects +#define SCHEMA_IfcResourceApprovalRelationship_HAS_RelatingApproval +#define SCHEMA_HAS_IfcResourceConstraintRelationship +#define SCHEMA_IfcResourceConstraintRelationship_HAS_RelatingConstraint +#define SCHEMA_IfcResourceConstraintRelationship_HAS_RelatedResourceObjects +#define SCHEMA_HAS_IfcResourceLevelRelationship +#define SCHEMA_IfcResourceLevelRelationship_HAS_Name +#define SCHEMA_IfcResourceLevelRelationship_Name_IS_OPTIONAL +#define SCHEMA_IfcResourceLevelRelationship_HAS_Description +#define SCHEMA_IfcResourceLevelRelationship_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcResourceTime +#define SCHEMA_IfcResourceTime_HAS_ScheduleWork +#define SCHEMA_IfcResourceTime_ScheduleWork_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ScheduleUsage +#define SCHEMA_IfcResourceTime_ScheduleUsage_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ScheduleStart +#define SCHEMA_IfcResourceTime_ScheduleStart_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ScheduleFinish +#define SCHEMA_IfcResourceTime_ScheduleFinish_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ScheduleContour +#define SCHEMA_IfcResourceTime_ScheduleContour_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_LevelingDelay +#define SCHEMA_IfcResourceTime_LevelingDelay_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_IsOverAllocated +#define SCHEMA_IfcResourceTime_IsOverAllocated_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_StatusTime +#define SCHEMA_IfcResourceTime_StatusTime_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ActualWork +#define SCHEMA_IfcResourceTime_ActualWork_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ActualUsage +#define SCHEMA_IfcResourceTime_ActualUsage_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ActualStart +#define SCHEMA_IfcResourceTime_ActualStart_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_ActualFinish +#define SCHEMA_IfcResourceTime_ActualFinish_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_RemainingWork +#define SCHEMA_IfcResourceTime_RemainingWork_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_RemainingUsage +#define SCHEMA_IfcResourceTime_RemainingUsage_IS_OPTIONAL +#define SCHEMA_IfcResourceTime_HAS_Completion +#define SCHEMA_IfcResourceTime_Completion_IS_OPTIONAL +#define SCHEMA_HAS_IfcRevolvedAreaSolid +#define SCHEMA_IfcRevolvedAreaSolid_HAS_Axis +#define SCHEMA_IfcRevolvedAreaSolid_HAS_Angle +#define SCHEMA_HAS_IfcRevolvedAreaSolidTapered +#define SCHEMA_IfcRevolvedAreaSolidTapered_HAS_EndSweptArea +#define SCHEMA_HAS_IfcRightCircularCone +#define SCHEMA_IfcRightCircularCone_HAS_Height +#define SCHEMA_IfcRightCircularCone_HAS_BottomRadius +#define SCHEMA_HAS_IfcRightCircularCylinder +#define SCHEMA_IfcRightCircularCylinder_HAS_Height +#define SCHEMA_IfcRightCircularCylinder_HAS_Radius +#define SCHEMA_HAS_IfcRoof +#define SCHEMA_IfcRoof_HAS_PredefinedType +#define SCHEMA_IfcRoof_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcRoofType +#define SCHEMA_IfcRoofType_HAS_PredefinedType +#define SCHEMA_HAS_IfcRoot +#define SCHEMA_IfcRoot_HAS_GlobalId +#define SCHEMA_IfcRoot_HAS_OwnerHistory +#define SCHEMA_IfcRoot_OwnerHistory_IS_OPTIONAL +#define SCHEMA_IfcRoot_HAS_Name +#define SCHEMA_IfcRoot_Name_IS_OPTIONAL +#define SCHEMA_IfcRoot_HAS_Description +#define SCHEMA_IfcRoot_Description_IS_OPTIONAL +#define SCHEMA_HAS_IfcRoundedRectangleProfileDef +#define SCHEMA_IfcRoundedRectangleProfileDef_HAS_RoundingRadius +#define SCHEMA_HAS_IfcSIUnit +#define SCHEMA_IfcSIUnit_HAS_Prefix +#define SCHEMA_IfcSIUnit_Prefix_IS_OPTIONAL +#define SCHEMA_IfcSIUnit_HAS_Name +#define SCHEMA_HAS_IfcSanitaryTerminal +#define SCHEMA_IfcSanitaryTerminal_HAS_PredefinedType +#define SCHEMA_IfcSanitaryTerminal_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSanitaryTerminalType +#define SCHEMA_IfcSanitaryTerminalType_HAS_PredefinedType +#define SCHEMA_HAS_IfcSchedulingTime +#define SCHEMA_IfcSchedulingTime_HAS_Name +#define SCHEMA_IfcSchedulingTime_Name_IS_OPTIONAL +#define SCHEMA_IfcSchedulingTime_HAS_DataOrigin +#define SCHEMA_IfcSchedulingTime_DataOrigin_IS_OPTIONAL +#define SCHEMA_IfcSchedulingTime_HAS_UserDefinedDataOrigin +#define SCHEMA_IfcSchedulingTime_UserDefinedDataOrigin_IS_OPTIONAL +#define SCHEMA_HAS_IfcSeamCurve +#define SCHEMA_HAS_IfcSectionProperties +#define SCHEMA_IfcSectionProperties_HAS_SectionType +#define SCHEMA_IfcSectionProperties_HAS_StartProfile +#define SCHEMA_IfcSectionProperties_HAS_EndProfile +#define SCHEMA_IfcSectionProperties_EndProfile_IS_OPTIONAL +#define SCHEMA_HAS_IfcSectionReinforcementProperties +#define SCHEMA_IfcSectionReinforcementProperties_HAS_LongitudinalStartPosition +#define SCHEMA_IfcSectionReinforcementProperties_HAS_LongitudinalEndPosition +#define SCHEMA_IfcSectionReinforcementProperties_HAS_TransversePosition +#define SCHEMA_IfcSectionReinforcementProperties_TransversePosition_IS_OPTIONAL +#define SCHEMA_IfcSectionReinforcementProperties_HAS_ReinforcementRole +#define SCHEMA_IfcSectionReinforcementProperties_HAS_SectionDefinition +#define SCHEMA_IfcSectionReinforcementProperties_HAS_CrossSectionReinforcementDefinitions +#define SCHEMA_HAS_IfcSectionedSolid +#define SCHEMA_IfcSectionedSolid_HAS_Directrix +#define SCHEMA_IfcSectionedSolid_HAS_CrossSections +#define SCHEMA_HAS_IfcSectionedSolidHorizontal +#define SCHEMA_IfcSectionedSolidHorizontal_HAS_CrossSectionPositions +#define SCHEMA_IfcSectionedSolidHorizontal_HAS_FixedAxisVertical +#define SCHEMA_HAS_IfcSectionedSpine +#define SCHEMA_IfcSectionedSpine_HAS_SpineCurve +#define SCHEMA_IfcSectionedSpine_HAS_CrossSections +#define SCHEMA_IfcSectionedSpine_HAS_CrossSectionPositions +#define SCHEMA_HAS_IfcSensor +#define SCHEMA_IfcSensor_HAS_PredefinedType +#define SCHEMA_IfcSensor_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSensorType +#define SCHEMA_IfcSensorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcShadingDevice +#define SCHEMA_IfcShadingDevice_HAS_PredefinedType +#define SCHEMA_IfcShadingDevice_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcShadingDeviceType +#define SCHEMA_IfcShadingDeviceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcShapeAspect +#define SCHEMA_IfcShapeAspect_HAS_ShapeRepresentations +#define SCHEMA_IfcShapeAspect_HAS_Name +#define SCHEMA_IfcShapeAspect_Name_IS_OPTIONAL +#define SCHEMA_IfcShapeAspect_HAS_Description +#define SCHEMA_IfcShapeAspect_Description_IS_OPTIONAL +#define SCHEMA_IfcShapeAspect_HAS_ProductDefinitional +#define SCHEMA_IfcShapeAspect_HAS_PartOfProductDefinitionShape +#define SCHEMA_IfcShapeAspect_PartOfProductDefinitionShape_IS_OPTIONAL +#define SCHEMA_HAS_IfcShapeModel +#define SCHEMA_HAS_IfcShapeRepresentation +#define SCHEMA_HAS_IfcShellBasedSurfaceModel +#define SCHEMA_IfcShellBasedSurfaceModel_HAS_SbsmBoundary +#define SCHEMA_HAS_IfcSimpleProperty +#define SCHEMA_HAS_IfcSimplePropertyTemplate +#define SCHEMA_IfcSimplePropertyTemplate_HAS_TemplateType +#define SCHEMA_IfcSimplePropertyTemplate_TemplateType_IS_OPTIONAL +#define SCHEMA_IfcSimplePropertyTemplate_HAS_PrimaryMeasureType +#define SCHEMA_IfcSimplePropertyTemplate_PrimaryMeasureType_IS_OPTIONAL +#define SCHEMA_IfcSimplePropertyTemplate_HAS_SecondaryMeasureType +#define SCHEMA_IfcSimplePropertyTemplate_SecondaryMeasureType_IS_OPTIONAL +#define SCHEMA_IfcSimplePropertyTemplate_HAS_Enumerators +#define SCHEMA_IfcSimplePropertyTemplate_Enumerators_IS_OPTIONAL +#define SCHEMA_IfcSimplePropertyTemplate_HAS_PrimaryUnit +#define SCHEMA_IfcSimplePropertyTemplate_PrimaryUnit_IS_OPTIONAL +#define SCHEMA_IfcSimplePropertyTemplate_HAS_SecondaryUnit +#define SCHEMA_IfcSimplePropertyTemplate_SecondaryUnit_IS_OPTIONAL +#define SCHEMA_IfcSimplePropertyTemplate_HAS_Expression +#define SCHEMA_IfcSimplePropertyTemplate_Expression_IS_OPTIONAL +#define SCHEMA_IfcSimplePropertyTemplate_HAS_AccessState +#define SCHEMA_IfcSimplePropertyTemplate_AccessState_IS_OPTIONAL +#define SCHEMA_HAS_IfcSite +#define SCHEMA_IfcSite_HAS_RefLatitude +#define SCHEMA_IfcSite_RefLatitude_IS_OPTIONAL +#define SCHEMA_IfcSite_HAS_RefLongitude +#define SCHEMA_IfcSite_RefLongitude_IS_OPTIONAL +#define SCHEMA_IfcSite_HAS_RefElevation +#define SCHEMA_IfcSite_RefElevation_IS_OPTIONAL +#define SCHEMA_IfcSite_HAS_LandTitleNumber +#define SCHEMA_IfcSite_LandTitleNumber_IS_OPTIONAL +#define SCHEMA_IfcSite_HAS_SiteAddress +#define SCHEMA_IfcSite_SiteAddress_IS_OPTIONAL +#define SCHEMA_HAS_IfcSlab +#define SCHEMA_IfcSlab_HAS_PredefinedType +#define SCHEMA_IfcSlab_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSlabElementedCase +#define SCHEMA_HAS_IfcSlabStandardCase +#define SCHEMA_HAS_IfcSlabType +#define SCHEMA_IfcSlabType_HAS_PredefinedType +#define SCHEMA_HAS_IfcSlippageConnectionCondition +#define SCHEMA_IfcSlippageConnectionCondition_HAS_SlippageX +#define SCHEMA_IfcSlippageConnectionCondition_SlippageX_IS_OPTIONAL +#define SCHEMA_IfcSlippageConnectionCondition_HAS_SlippageY +#define SCHEMA_IfcSlippageConnectionCondition_SlippageY_IS_OPTIONAL +#define SCHEMA_IfcSlippageConnectionCondition_HAS_SlippageZ +#define SCHEMA_IfcSlippageConnectionCondition_SlippageZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcSolarDevice +#define SCHEMA_IfcSolarDevice_HAS_PredefinedType +#define SCHEMA_IfcSolarDevice_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSolarDeviceType +#define SCHEMA_IfcSolarDeviceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcSolidModel +#define SCHEMA_HAS_IfcSpace +#define SCHEMA_IfcSpace_HAS_PredefinedType +#define SCHEMA_IfcSpace_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcSpace_HAS_ElevationWithFlooring +#define SCHEMA_IfcSpace_ElevationWithFlooring_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpaceHeater +#define SCHEMA_IfcSpaceHeater_HAS_PredefinedType +#define SCHEMA_IfcSpaceHeater_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpaceHeaterType +#define SCHEMA_IfcSpaceHeaterType_HAS_PredefinedType +#define SCHEMA_HAS_IfcSpaceType +#define SCHEMA_IfcSpaceType_HAS_PredefinedType +#define SCHEMA_IfcSpaceType_HAS_LongName +#define SCHEMA_IfcSpaceType_LongName_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpatialElement +#define SCHEMA_IfcSpatialElement_HAS_LongName +#define SCHEMA_IfcSpatialElement_LongName_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpatialElementType +#define SCHEMA_IfcSpatialElementType_HAS_ElementType +#define SCHEMA_IfcSpatialElementType_ElementType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpatialStructureElement +#define SCHEMA_IfcSpatialStructureElement_HAS_CompositionType +#define SCHEMA_IfcSpatialStructureElement_CompositionType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpatialStructureElementType +#define SCHEMA_HAS_IfcSpatialZone +#define SCHEMA_IfcSpatialZone_HAS_PredefinedType +#define SCHEMA_IfcSpatialZone_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSpatialZoneType +#define SCHEMA_IfcSpatialZoneType_HAS_PredefinedType +#define SCHEMA_IfcSpatialZoneType_HAS_LongName +#define SCHEMA_IfcSpatialZoneType_LongName_IS_OPTIONAL +#define SCHEMA_HAS_IfcSphere +#define SCHEMA_IfcSphere_HAS_Radius +#define SCHEMA_HAS_IfcSphericalSurface +#define SCHEMA_IfcSphericalSurface_HAS_Radius +#define SCHEMA_HAS_IfcStackTerminal +#define SCHEMA_IfcStackTerminal_HAS_PredefinedType +#define SCHEMA_IfcStackTerminal_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcStackTerminalType +#define SCHEMA_IfcStackTerminalType_HAS_PredefinedType +#define SCHEMA_HAS_IfcStair +#define SCHEMA_IfcStair_HAS_PredefinedType +#define SCHEMA_IfcStair_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcStairFlight +#define SCHEMA_IfcStairFlight_HAS_NumberOfRisers +#define SCHEMA_IfcStairFlight_NumberOfRisers_IS_OPTIONAL +#define SCHEMA_IfcStairFlight_HAS_NumberOfTreads +#define SCHEMA_IfcStairFlight_NumberOfTreads_IS_OPTIONAL +#define SCHEMA_IfcStairFlight_HAS_RiserHeight +#define SCHEMA_IfcStairFlight_RiserHeight_IS_OPTIONAL +#define SCHEMA_IfcStairFlight_HAS_TreadLength +#define SCHEMA_IfcStairFlight_TreadLength_IS_OPTIONAL +#define SCHEMA_IfcStairFlight_HAS_PredefinedType +#define SCHEMA_IfcStairFlight_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcStairFlightType +#define SCHEMA_IfcStairFlightType_HAS_PredefinedType +#define SCHEMA_HAS_IfcStairType +#define SCHEMA_IfcStairType_HAS_PredefinedType +#define SCHEMA_HAS_IfcStructuralAction +#define SCHEMA_IfcStructuralAction_HAS_DestabilizingLoad +#define SCHEMA_IfcStructuralAction_DestabilizingLoad_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralActivity +#define SCHEMA_IfcStructuralActivity_HAS_AppliedLoad +#define SCHEMA_IfcStructuralActivity_HAS_GlobalOrLocal +#define SCHEMA_HAS_IfcStructuralAnalysisModel +#define SCHEMA_IfcStructuralAnalysisModel_HAS_PredefinedType +#define SCHEMA_IfcStructuralAnalysisModel_HAS_OrientationOf2DPlane +#define SCHEMA_IfcStructuralAnalysisModel_OrientationOf2DPlane_IS_OPTIONAL +#define SCHEMA_IfcStructuralAnalysisModel_HAS_LoadedBy +#define SCHEMA_IfcStructuralAnalysisModel_LoadedBy_IS_OPTIONAL +#define SCHEMA_IfcStructuralAnalysisModel_HAS_HasResults +#define SCHEMA_IfcStructuralAnalysisModel_HasResults_IS_OPTIONAL +#define SCHEMA_IfcStructuralAnalysisModel_HAS_SharedPlacement +#define SCHEMA_IfcStructuralAnalysisModel_SharedPlacement_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralConnection +#define SCHEMA_IfcStructuralConnection_HAS_AppliedCondition +#define SCHEMA_IfcStructuralConnection_AppliedCondition_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralConnectionCondition +#define SCHEMA_IfcStructuralConnectionCondition_HAS_Name +#define SCHEMA_IfcStructuralConnectionCondition_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralCurveAction +#define SCHEMA_IfcStructuralCurveAction_HAS_ProjectedOrTrue +#define SCHEMA_IfcStructuralCurveAction_ProjectedOrTrue_IS_OPTIONAL +#define SCHEMA_IfcStructuralCurveAction_HAS_PredefinedType +#define SCHEMA_HAS_IfcStructuralCurveConnection +#define SCHEMA_IfcStructuralCurveConnection_HAS_Axis +#define SCHEMA_HAS_IfcStructuralCurveMember +#define SCHEMA_IfcStructuralCurveMember_HAS_PredefinedType +#define SCHEMA_IfcStructuralCurveMember_HAS_Axis +#define SCHEMA_HAS_IfcStructuralCurveMemberVarying +#define SCHEMA_HAS_IfcStructuralCurveReaction +#define SCHEMA_IfcStructuralCurveReaction_HAS_PredefinedType +#define SCHEMA_HAS_IfcStructuralItem +#define SCHEMA_HAS_IfcStructuralLinearAction +#define SCHEMA_HAS_IfcStructuralLoad +#define SCHEMA_IfcStructuralLoad_HAS_Name +#define SCHEMA_IfcStructuralLoad_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadCase +#define SCHEMA_IfcStructuralLoadCase_HAS_SelfWeightCoefficients +#define SCHEMA_IfcStructuralLoadCase_SelfWeightCoefficients_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadConfiguration +#define SCHEMA_IfcStructuralLoadConfiguration_HAS_Values +#define SCHEMA_IfcStructuralLoadConfiguration_HAS_Locations +#define SCHEMA_IfcStructuralLoadConfiguration_Locations_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadGroup +#define SCHEMA_IfcStructuralLoadGroup_HAS_PredefinedType +#define SCHEMA_IfcStructuralLoadGroup_HAS_ActionType +#define SCHEMA_IfcStructuralLoadGroup_HAS_ActionSource +#define SCHEMA_IfcStructuralLoadGroup_HAS_Coefficient +#define SCHEMA_IfcStructuralLoadGroup_Coefficient_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadGroup_HAS_Purpose +#define SCHEMA_IfcStructuralLoadGroup_Purpose_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadLinearForce +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearForceX +#define SCHEMA_IfcStructuralLoadLinearForce_LinearForceX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearForceY +#define SCHEMA_IfcStructuralLoadLinearForce_LinearForceY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearForceZ +#define SCHEMA_IfcStructuralLoadLinearForce_LinearForceZ_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearMomentX +#define SCHEMA_IfcStructuralLoadLinearForce_LinearMomentX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearMomentY +#define SCHEMA_IfcStructuralLoadLinearForce_LinearMomentY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadLinearForce_HAS_LinearMomentZ +#define SCHEMA_IfcStructuralLoadLinearForce_LinearMomentZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadOrResult +#define SCHEMA_HAS_IfcStructuralLoadPlanarForce +#define SCHEMA_IfcStructuralLoadPlanarForce_HAS_PlanarForceX +#define SCHEMA_IfcStructuralLoadPlanarForce_PlanarForceX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadPlanarForce_HAS_PlanarForceY +#define SCHEMA_IfcStructuralLoadPlanarForce_PlanarForceY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadPlanarForce_HAS_PlanarForceZ +#define SCHEMA_IfcStructuralLoadPlanarForce_PlanarForceZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadSingleDisplacement +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_DisplacementX +#define SCHEMA_IfcStructuralLoadSingleDisplacement_DisplacementX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_DisplacementY +#define SCHEMA_IfcStructuralLoadSingleDisplacement_DisplacementY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_DisplacementZ +#define SCHEMA_IfcStructuralLoadSingleDisplacement_DisplacementZ_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_RotationalDisplacementRX +#define SCHEMA_IfcStructuralLoadSingleDisplacement_RotationalDisplacementRX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_RotationalDisplacementRY +#define SCHEMA_IfcStructuralLoadSingleDisplacement_RotationalDisplacementRY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleDisplacement_HAS_RotationalDisplacementRZ +#define SCHEMA_IfcStructuralLoadSingleDisplacement_RotationalDisplacementRZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadSingleDisplacementDistortion +#define SCHEMA_IfcStructuralLoadSingleDisplacementDistortion_HAS_Distortion +#define SCHEMA_IfcStructuralLoadSingleDisplacementDistortion_Distortion_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadSingleForce +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_ForceX +#define SCHEMA_IfcStructuralLoadSingleForce_ForceX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_ForceY +#define SCHEMA_IfcStructuralLoadSingleForce_ForceY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_ForceZ +#define SCHEMA_IfcStructuralLoadSingleForce_ForceZ_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_MomentX +#define SCHEMA_IfcStructuralLoadSingleForce_MomentX_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_MomentY +#define SCHEMA_IfcStructuralLoadSingleForce_MomentY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadSingleForce_HAS_MomentZ +#define SCHEMA_IfcStructuralLoadSingleForce_MomentZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadSingleForceWarping +#define SCHEMA_IfcStructuralLoadSingleForceWarping_HAS_WarpingMoment +#define SCHEMA_IfcStructuralLoadSingleForceWarping_WarpingMoment_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralLoadStatic +#define SCHEMA_HAS_IfcStructuralLoadTemperature +#define SCHEMA_IfcStructuralLoadTemperature_HAS_DeltaTConstant +#define SCHEMA_IfcStructuralLoadTemperature_DeltaTConstant_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadTemperature_HAS_DeltaTY +#define SCHEMA_IfcStructuralLoadTemperature_DeltaTY_IS_OPTIONAL +#define SCHEMA_IfcStructuralLoadTemperature_HAS_DeltaTZ +#define SCHEMA_IfcStructuralLoadTemperature_DeltaTZ_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralMember +#define SCHEMA_HAS_IfcStructuralPlanarAction +#define SCHEMA_HAS_IfcStructuralPointAction +#define SCHEMA_HAS_IfcStructuralPointConnection +#define SCHEMA_IfcStructuralPointConnection_HAS_ConditionCoordinateSystem +#define SCHEMA_IfcStructuralPointConnection_ConditionCoordinateSystem_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralPointReaction +#define SCHEMA_HAS_IfcStructuralReaction +#define SCHEMA_HAS_IfcStructuralResultGroup +#define SCHEMA_IfcStructuralResultGroup_HAS_TheoryType +#define SCHEMA_IfcStructuralResultGroup_HAS_ResultForLoadGroup +#define SCHEMA_IfcStructuralResultGroup_ResultForLoadGroup_IS_OPTIONAL +#define SCHEMA_IfcStructuralResultGroup_HAS_IsLinear +#define SCHEMA_HAS_IfcStructuralSurfaceAction +#define SCHEMA_IfcStructuralSurfaceAction_HAS_ProjectedOrTrue +#define SCHEMA_IfcStructuralSurfaceAction_ProjectedOrTrue_IS_OPTIONAL +#define SCHEMA_IfcStructuralSurfaceAction_HAS_PredefinedType +#define SCHEMA_HAS_IfcStructuralSurfaceConnection +#define SCHEMA_HAS_IfcStructuralSurfaceMember +#define SCHEMA_IfcStructuralSurfaceMember_HAS_PredefinedType +#define SCHEMA_IfcStructuralSurfaceMember_HAS_Thickness +#define SCHEMA_IfcStructuralSurfaceMember_Thickness_IS_OPTIONAL +#define SCHEMA_HAS_IfcStructuralSurfaceMemberVarying +#define SCHEMA_HAS_IfcStructuralSurfaceReaction +#define SCHEMA_IfcStructuralSurfaceReaction_HAS_PredefinedType +#define SCHEMA_HAS_IfcStyleModel +#define SCHEMA_HAS_IfcStyledItem +#define SCHEMA_IfcStyledItem_HAS_Item +#define SCHEMA_IfcStyledItem_Item_IS_OPTIONAL +#define SCHEMA_IfcStyledItem_HAS_Styles +#define SCHEMA_IfcStyledItem_HAS_Name +#define SCHEMA_IfcStyledItem_Name_IS_OPTIONAL +#define SCHEMA_HAS_IfcStyledRepresentation +#define SCHEMA_HAS_IfcSubContractResource +#define SCHEMA_IfcSubContractResource_HAS_PredefinedType +#define SCHEMA_IfcSubContractResource_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSubContractResourceType +#define SCHEMA_IfcSubContractResourceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcSubedge +#define SCHEMA_IfcSubedge_HAS_ParentEdge +#define SCHEMA_HAS_IfcSurface +#define SCHEMA_HAS_IfcSurfaceCurve +#define SCHEMA_IfcSurfaceCurve_HAS_Curve3D +#define SCHEMA_IfcSurfaceCurve_HAS_AssociatedGeometry +#define SCHEMA_IfcSurfaceCurve_HAS_MasterRepresentation +#define SCHEMA_HAS_IfcSurfaceCurveSweptAreaSolid +#define SCHEMA_IfcSurfaceCurveSweptAreaSolid_HAS_Directrix +#define SCHEMA_IfcSurfaceCurveSweptAreaSolid_HAS_StartParam +#define SCHEMA_IfcSurfaceCurveSweptAreaSolid_StartParam_IS_OPTIONAL +#define SCHEMA_IfcSurfaceCurveSweptAreaSolid_HAS_EndParam +#define SCHEMA_IfcSurfaceCurveSweptAreaSolid_EndParam_IS_OPTIONAL +#define SCHEMA_IfcSurfaceCurveSweptAreaSolid_HAS_ReferenceSurface +#define SCHEMA_HAS_IfcSurfaceFeature +#define SCHEMA_IfcSurfaceFeature_HAS_PredefinedType +#define SCHEMA_IfcSurfaceFeature_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSurfaceOfLinearExtrusion +#define SCHEMA_IfcSurfaceOfLinearExtrusion_HAS_ExtrudedDirection +#define SCHEMA_IfcSurfaceOfLinearExtrusion_HAS_Depth +#define SCHEMA_HAS_IfcSurfaceOfRevolution +#define SCHEMA_IfcSurfaceOfRevolution_HAS_AxisPosition +#define SCHEMA_HAS_IfcSurfaceReinforcementArea +#define SCHEMA_IfcSurfaceReinforcementArea_HAS_SurfaceReinforcement1 +#define SCHEMA_IfcSurfaceReinforcementArea_SurfaceReinforcement1_IS_OPTIONAL +#define SCHEMA_IfcSurfaceReinforcementArea_HAS_SurfaceReinforcement2 +#define SCHEMA_IfcSurfaceReinforcementArea_SurfaceReinforcement2_IS_OPTIONAL +#define SCHEMA_IfcSurfaceReinforcementArea_HAS_ShearReinforcement +#define SCHEMA_IfcSurfaceReinforcementArea_ShearReinforcement_IS_OPTIONAL +#define SCHEMA_HAS_IfcSurfaceStyle +#define SCHEMA_IfcSurfaceStyle_HAS_Side +#define SCHEMA_IfcSurfaceStyle_HAS_Styles +#define SCHEMA_HAS_IfcSurfaceStyleLighting +#define SCHEMA_IfcSurfaceStyleLighting_HAS_DiffuseTransmissionColour +#define SCHEMA_IfcSurfaceStyleLighting_HAS_DiffuseReflectionColour +#define SCHEMA_IfcSurfaceStyleLighting_HAS_TransmissionColour +#define SCHEMA_IfcSurfaceStyleLighting_HAS_ReflectanceColour +#define SCHEMA_HAS_IfcSurfaceStyleRefraction +#define SCHEMA_IfcSurfaceStyleRefraction_HAS_RefractionIndex +#define SCHEMA_IfcSurfaceStyleRefraction_RefractionIndex_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRefraction_HAS_DispersionFactor +#define SCHEMA_IfcSurfaceStyleRefraction_DispersionFactor_IS_OPTIONAL +#define SCHEMA_HAS_IfcSurfaceStyleRendering +#define SCHEMA_IfcSurfaceStyleRendering_HAS_DiffuseColour +#define SCHEMA_IfcSurfaceStyleRendering_DiffuseColour_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_TransmissionColour +#define SCHEMA_IfcSurfaceStyleRendering_TransmissionColour_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_DiffuseTransmissionColour +#define SCHEMA_IfcSurfaceStyleRendering_DiffuseTransmissionColour_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_ReflectionColour +#define SCHEMA_IfcSurfaceStyleRendering_ReflectionColour_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_SpecularColour +#define SCHEMA_IfcSurfaceStyleRendering_SpecularColour_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_SpecularHighlight +#define SCHEMA_IfcSurfaceStyleRendering_SpecularHighlight_IS_OPTIONAL +#define SCHEMA_IfcSurfaceStyleRendering_HAS_ReflectanceMethod +#define SCHEMA_HAS_IfcSurfaceStyleShading +#define SCHEMA_IfcSurfaceStyleShading_HAS_SurfaceColour +#define SCHEMA_IfcSurfaceStyleShading_HAS_Transparency +#define SCHEMA_IfcSurfaceStyleShading_Transparency_IS_OPTIONAL +#define SCHEMA_HAS_IfcSurfaceStyleWithTextures +#define SCHEMA_IfcSurfaceStyleWithTextures_HAS_Textures +#define SCHEMA_HAS_IfcSurfaceTexture +#define SCHEMA_IfcSurfaceTexture_HAS_RepeatS +#define SCHEMA_IfcSurfaceTexture_HAS_RepeatT +#define SCHEMA_IfcSurfaceTexture_HAS_Mode +#define SCHEMA_IfcSurfaceTexture_Mode_IS_OPTIONAL +#define SCHEMA_IfcSurfaceTexture_HAS_TextureTransform +#define SCHEMA_IfcSurfaceTexture_TextureTransform_IS_OPTIONAL +#define SCHEMA_IfcSurfaceTexture_HAS_Parameter +#define SCHEMA_IfcSurfaceTexture_Parameter_IS_OPTIONAL +#define SCHEMA_HAS_IfcSweptAreaSolid +#define SCHEMA_IfcSweptAreaSolid_HAS_SweptArea +#define SCHEMA_IfcSweptAreaSolid_HAS_Position +#define SCHEMA_IfcSweptAreaSolid_Position_IS_OPTIONAL +#define SCHEMA_HAS_IfcSweptDiskSolid +#define SCHEMA_IfcSweptDiskSolid_HAS_Directrix +#define SCHEMA_IfcSweptDiskSolid_HAS_Radius +#define SCHEMA_IfcSweptDiskSolid_HAS_InnerRadius +#define SCHEMA_IfcSweptDiskSolid_InnerRadius_IS_OPTIONAL +#define SCHEMA_IfcSweptDiskSolid_HAS_StartParam +#define SCHEMA_IfcSweptDiskSolid_StartParam_IS_OPTIONAL +#define SCHEMA_IfcSweptDiskSolid_HAS_EndParam +#define SCHEMA_IfcSweptDiskSolid_EndParam_IS_OPTIONAL +#define SCHEMA_HAS_IfcSweptDiskSolidPolygonal +#define SCHEMA_IfcSweptDiskSolidPolygonal_HAS_FilletRadius +#define SCHEMA_IfcSweptDiskSolidPolygonal_FilletRadius_IS_OPTIONAL +#define SCHEMA_HAS_IfcSweptSurface +#define SCHEMA_IfcSweptSurface_HAS_SweptCurve +#define SCHEMA_IfcSweptSurface_HAS_Position +#define SCHEMA_IfcSweptSurface_Position_IS_OPTIONAL +#define SCHEMA_HAS_IfcSwitchingDevice +#define SCHEMA_IfcSwitchingDevice_HAS_PredefinedType +#define SCHEMA_IfcSwitchingDevice_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSwitchingDeviceType +#define SCHEMA_IfcSwitchingDeviceType_HAS_PredefinedType +#define SCHEMA_HAS_IfcSystem +#define SCHEMA_HAS_IfcSystemFurnitureElement +#define SCHEMA_IfcSystemFurnitureElement_HAS_PredefinedType +#define SCHEMA_IfcSystemFurnitureElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcSystemFurnitureElementType +#define SCHEMA_IfcSystemFurnitureElementType_HAS_PredefinedType +#define SCHEMA_IfcSystemFurnitureElementType_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTShapeProfileDef +#define SCHEMA_IfcTShapeProfileDef_HAS_Depth +#define SCHEMA_IfcTShapeProfileDef_HAS_FlangeWidth +#define SCHEMA_IfcTShapeProfileDef_HAS_WebThickness +#define SCHEMA_IfcTShapeProfileDef_HAS_FlangeThickness +#define SCHEMA_IfcTShapeProfileDef_HAS_FilletRadius +#define SCHEMA_IfcTShapeProfileDef_FilletRadius_IS_OPTIONAL +#define SCHEMA_IfcTShapeProfileDef_HAS_FlangeEdgeRadius +#define SCHEMA_IfcTShapeProfileDef_FlangeEdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcTShapeProfileDef_HAS_WebEdgeRadius +#define SCHEMA_IfcTShapeProfileDef_WebEdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcTShapeProfileDef_HAS_WebSlope +#define SCHEMA_IfcTShapeProfileDef_WebSlope_IS_OPTIONAL +#define SCHEMA_IfcTShapeProfileDef_HAS_FlangeSlope +#define SCHEMA_IfcTShapeProfileDef_FlangeSlope_IS_OPTIONAL +#define SCHEMA_HAS_IfcTable +#define SCHEMA_IfcTable_HAS_Name +#define SCHEMA_IfcTable_Name_IS_OPTIONAL +#define SCHEMA_IfcTable_HAS_Rows +#define SCHEMA_IfcTable_Rows_IS_OPTIONAL +#define SCHEMA_IfcTable_HAS_Columns +#define SCHEMA_IfcTable_Columns_IS_OPTIONAL +#define SCHEMA_HAS_IfcTableColumn +#define SCHEMA_IfcTableColumn_HAS_Identifier +#define SCHEMA_IfcTableColumn_Identifier_IS_OPTIONAL +#define SCHEMA_IfcTableColumn_HAS_Name +#define SCHEMA_IfcTableColumn_Name_IS_OPTIONAL +#define SCHEMA_IfcTableColumn_HAS_Description +#define SCHEMA_IfcTableColumn_Description_IS_OPTIONAL +#define SCHEMA_IfcTableColumn_HAS_Unit +#define SCHEMA_IfcTableColumn_Unit_IS_OPTIONAL +#define SCHEMA_IfcTableColumn_HAS_ReferencePath +#define SCHEMA_IfcTableColumn_ReferencePath_IS_OPTIONAL +#define SCHEMA_HAS_IfcTableRow +#define SCHEMA_IfcTableRow_HAS_RowCells +#define SCHEMA_IfcTableRow_RowCells_IS_OPTIONAL +#define SCHEMA_IfcTableRow_HAS_IsHeading +#define SCHEMA_IfcTableRow_IsHeading_IS_OPTIONAL +#define SCHEMA_HAS_IfcTank +#define SCHEMA_IfcTank_HAS_PredefinedType +#define SCHEMA_IfcTank_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTankType +#define SCHEMA_IfcTankType_HAS_PredefinedType +#define SCHEMA_HAS_IfcTask +#define SCHEMA_IfcTask_HAS_Status +#define SCHEMA_IfcTask_Status_IS_OPTIONAL +#define SCHEMA_IfcTask_HAS_WorkMethod +#define SCHEMA_IfcTask_WorkMethod_IS_OPTIONAL +#define SCHEMA_IfcTask_HAS_IsMilestone +#define SCHEMA_IfcTask_HAS_Priority +#define SCHEMA_IfcTask_Priority_IS_OPTIONAL +#define SCHEMA_IfcTask_HAS_TaskTime +#define SCHEMA_IfcTask_TaskTime_IS_OPTIONAL +#define SCHEMA_IfcTask_HAS_PredefinedType +#define SCHEMA_IfcTask_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTaskTime +#define SCHEMA_IfcTaskTime_HAS_DurationType +#define SCHEMA_IfcTaskTime_DurationType_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_ScheduleDuration +#define SCHEMA_IfcTaskTime_ScheduleDuration_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_ScheduleStart +#define SCHEMA_IfcTaskTime_ScheduleStart_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_ScheduleFinish +#define SCHEMA_IfcTaskTime_ScheduleFinish_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_EarlyStart +#define SCHEMA_IfcTaskTime_EarlyStart_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_EarlyFinish +#define SCHEMA_IfcTaskTime_EarlyFinish_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_LateStart +#define SCHEMA_IfcTaskTime_LateStart_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_LateFinish +#define SCHEMA_IfcTaskTime_LateFinish_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_FreeFloat +#define SCHEMA_IfcTaskTime_FreeFloat_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_TotalFloat +#define SCHEMA_IfcTaskTime_TotalFloat_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_IsCritical +#define SCHEMA_IfcTaskTime_IsCritical_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_StatusTime +#define SCHEMA_IfcTaskTime_StatusTime_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_ActualDuration +#define SCHEMA_IfcTaskTime_ActualDuration_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_ActualStart +#define SCHEMA_IfcTaskTime_ActualStart_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_ActualFinish +#define SCHEMA_IfcTaskTime_ActualFinish_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_RemainingTime +#define SCHEMA_IfcTaskTime_RemainingTime_IS_OPTIONAL +#define SCHEMA_IfcTaskTime_HAS_Completion +#define SCHEMA_IfcTaskTime_Completion_IS_OPTIONAL +#define SCHEMA_HAS_IfcTaskTimeRecurring +#define SCHEMA_IfcTaskTimeRecurring_HAS_Recurrence +#define SCHEMA_HAS_IfcTaskType +#define SCHEMA_IfcTaskType_HAS_PredefinedType +#define SCHEMA_IfcTaskType_HAS_WorkMethod +#define SCHEMA_IfcTaskType_WorkMethod_IS_OPTIONAL +#define SCHEMA_HAS_IfcTelecomAddress +#define SCHEMA_IfcTelecomAddress_HAS_TelephoneNumbers +#define SCHEMA_IfcTelecomAddress_TelephoneNumbers_IS_OPTIONAL +#define SCHEMA_IfcTelecomAddress_HAS_FacsimileNumbers +#define SCHEMA_IfcTelecomAddress_FacsimileNumbers_IS_OPTIONAL +#define SCHEMA_IfcTelecomAddress_HAS_PagerNumber +#define SCHEMA_IfcTelecomAddress_PagerNumber_IS_OPTIONAL +#define SCHEMA_IfcTelecomAddress_HAS_ElectronicMailAddresses +#define SCHEMA_IfcTelecomAddress_ElectronicMailAddresses_IS_OPTIONAL +#define SCHEMA_IfcTelecomAddress_HAS_WWWHomePageURL +#define SCHEMA_IfcTelecomAddress_WWWHomePageURL_IS_OPTIONAL +#define SCHEMA_IfcTelecomAddress_HAS_MessagingIDs +#define SCHEMA_IfcTelecomAddress_MessagingIDs_IS_OPTIONAL +#define SCHEMA_HAS_IfcTendon +#define SCHEMA_IfcTendon_HAS_PredefinedType +#define SCHEMA_IfcTendon_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_NominalDiameter +#define SCHEMA_IfcTendon_NominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_CrossSectionArea +#define SCHEMA_IfcTendon_CrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_TensionForce +#define SCHEMA_IfcTendon_TensionForce_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_PreStress +#define SCHEMA_IfcTendon_PreStress_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_FrictionCoefficient +#define SCHEMA_IfcTendon_FrictionCoefficient_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_AnchorageSlip +#define SCHEMA_IfcTendon_AnchorageSlip_IS_OPTIONAL +#define SCHEMA_IfcTendon_HAS_MinCurvatureRadius +#define SCHEMA_IfcTendon_MinCurvatureRadius_IS_OPTIONAL +#define SCHEMA_HAS_IfcTendonAnchor +#define SCHEMA_IfcTendonAnchor_HAS_PredefinedType +#define SCHEMA_IfcTendonAnchor_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTendonAnchorType +#define SCHEMA_IfcTendonAnchorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcTendonConduit +#define SCHEMA_IfcTendonConduit_HAS_PredefinedType +#define SCHEMA_HAS_IfcTendonConduitType +#define SCHEMA_IfcTendonConduitType_HAS_PredefinedType +#define SCHEMA_HAS_IfcTendonType +#define SCHEMA_IfcTendonType_HAS_PredefinedType +#define SCHEMA_IfcTendonType_HAS_NominalDiameter +#define SCHEMA_IfcTendonType_NominalDiameter_IS_OPTIONAL +#define SCHEMA_IfcTendonType_HAS_CrossSectionArea +#define SCHEMA_IfcTendonType_CrossSectionArea_IS_OPTIONAL +#define SCHEMA_IfcTendonType_HAS_SheathDiameter +#define SCHEMA_IfcTendonType_SheathDiameter_IS_OPTIONAL +#define SCHEMA_HAS_IfcTessellatedFaceSet +#define SCHEMA_IfcTessellatedFaceSet_HAS_Coordinates +#define SCHEMA_HAS_IfcTessellatedItem +#define SCHEMA_HAS_IfcTextLiteral +#define SCHEMA_IfcTextLiteral_HAS_Literal +#define SCHEMA_IfcTextLiteral_HAS_Placement +#define SCHEMA_IfcTextLiteral_HAS_Path +#define SCHEMA_HAS_IfcTextLiteralWithExtent +#define SCHEMA_IfcTextLiteralWithExtent_HAS_Extent +#define SCHEMA_IfcTextLiteralWithExtent_HAS_BoxAlignment +#define SCHEMA_HAS_IfcTextStyle +#define SCHEMA_IfcTextStyle_HAS_TextCharacterAppearance +#define SCHEMA_IfcTextStyle_TextCharacterAppearance_IS_OPTIONAL +#define SCHEMA_IfcTextStyle_HAS_TextStyle +#define SCHEMA_IfcTextStyle_TextStyle_IS_OPTIONAL +#define SCHEMA_IfcTextStyle_HAS_TextFontStyle +#define SCHEMA_IfcTextStyle_HAS_ModelOrDraughting +#define SCHEMA_IfcTextStyle_ModelOrDraughting_IS_OPTIONAL +#define SCHEMA_HAS_IfcTextStyleFontModel +#define SCHEMA_IfcTextStyleFontModel_HAS_FontFamily +#define SCHEMA_IfcTextStyleFontModel_HAS_FontStyle +#define SCHEMA_IfcTextStyleFontModel_FontStyle_IS_OPTIONAL +#define SCHEMA_IfcTextStyleFontModel_HAS_FontVariant +#define SCHEMA_IfcTextStyleFontModel_FontVariant_IS_OPTIONAL +#define SCHEMA_IfcTextStyleFontModel_HAS_FontWeight +#define SCHEMA_IfcTextStyleFontModel_FontWeight_IS_OPTIONAL +#define SCHEMA_IfcTextStyleFontModel_HAS_FontSize +#define SCHEMA_HAS_IfcTextStyleForDefinedFont +#define SCHEMA_IfcTextStyleForDefinedFont_HAS_Colour +#define SCHEMA_IfcTextStyleForDefinedFont_HAS_BackgroundColour +#define SCHEMA_IfcTextStyleForDefinedFont_BackgroundColour_IS_OPTIONAL +#define SCHEMA_HAS_IfcTextStyleTextModel +#define SCHEMA_IfcTextStyleTextModel_HAS_TextIndent +#define SCHEMA_IfcTextStyleTextModel_TextIndent_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_TextAlign +#define SCHEMA_IfcTextStyleTextModel_TextAlign_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_TextDecoration +#define SCHEMA_IfcTextStyleTextModel_TextDecoration_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_LetterSpacing +#define SCHEMA_IfcTextStyleTextModel_LetterSpacing_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_WordSpacing +#define SCHEMA_IfcTextStyleTextModel_WordSpacing_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_TextTransform +#define SCHEMA_IfcTextStyleTextModel_TextTransform_IS_OPTIONAL +#define SCHEMA_IfcTextStyleTextModel_HAS_LineHeight +#define SCHEMA_IfcTextStyleTextModel_LineHeight_IS_OPTIONAL +#define SCHEMA_HAS_IfcTextureCoordinate +#define SCHEMA_IfcTextureCoordinate_HAS_Maps +#define SCHEMA_HAS_IfcTextureCoordinateGenerator +#define SCHEMA_IfcTextureCoordinateGenerator_HAS_Mode +#define SCHEMA_IfcTextureCoordinateGenerator_HAS_Parameter +#define SCHEMA_IfcTextureCoordinateGenerator_Parameter_IS_OPTIONAL +#define SCHEMA_HAS_IfcTextureMap +#define SCHEMA_IfcTextureMap_HAS_Vertices +#define SCHEMA_IfcTextureMap_HAS_MappedTo +#define SCHEMA_HAS_IfcTextureVertex +#define SCHEMA_IfcTextureVertex_HAS_Coordinates +#define SCHEMA_HAS_IfcTextureVertexList +#define SCHEMA_IfcTextureVertexList_HAS_TexCoordsList +#define SCHEMA_HAS_IfcTimePeriod +#define SCHEMA_IfcTimePeriod_HAS_StartTime +#define SCHEMA_IfcTimePeriod_HAS_EndTime +#define SCHEMA_HAS_IfcTimeSeries +#define SCHEMA_IfcTimeSeries_HAS_Name +#define SCHEMA_IfcTimeSeries_HAS_Description +#define SCHEMA_IfcTimeSeries_Description_IS_OPTIONAL +#define SCHEMA_IfcTimeSeries_HAS_StartTime +#define SCHEMA_IfcTimeSeries_HAS_EndTime +#define SCHEMA_IfcTimeSeries_HAS_TimeSeriesDataType +#define SCHEMA_IfcTimeSeries_HAS_DataOrigin +#define SCHEMA_IfcTimeSeries_HAS_UserDefinedDataOrigin +#define SCHEMA_IfcTimeSeries_UserDefinedDataOrigin_IS_OPTIONAL +#define SCHEMA_IfcTimeSeries_HAS_Unit +#define SCHEMA_IfcTimeSeries_Unit_IS_OPTIONAL +#define SCHEMA_HAS_IfcTimeSeriesValue +#define SCHEMA_IfcTimeSeriesValue_HAS_ListValues +#define SCHEMA_HAS_IfcTopologicalRepresentationItem +#define SCHEMA_HAS_IfcTopologyRepresentation +#define SCHEMA_HAS_IfcToroidalSurface +#define SCHEMA_IfcToroidalSurface_HAS_MajorRadius +#define SCHEMA_IfcToroidalSurface_HAS_MinorRadius +#define SCHEMA_HAS_IfcTransformer +#define SCHEMA_IfcTransformer_HAS_PredefinedType +#define SCHEMA_IfcTransformer_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTransformerType +#define SCHEMA_IfcTransformerType_HAS_PredefinedType +#define SCHEMA_HAS_IfcTransitionCurveSegment2D +#define SCHEMA_IfcTransitionCurveSegment2D_HAS_StartRadius +#define SCHEMA_IfcTransitionCurveSegment2D_StartRadius_IS_OPTIONAL +#define SCHEMA_IfcTransitionCurveSegment2D_HAS_EndRadius +#define SCHEMA_IfcTransitionCurveSegment2D_EndRadius_IS_OPTIONAL +#define SCHEMA_IfcTransitionCurveSegment2D_HAS_IsStartRadiusCCW +#define SCHEMA_IfcTransitionCurveSegment2D_HAS_IsEndRadiusCCW +#define SCHEMA_IfcTransitionCurveSegment2D_HAS_TransitionCurveType +#define SCHEMA_HAS_IfcTransportElement +#define SCHEMA_IfcTransportElement_HAS_PredefinedType +#define SCHEMA_IfcTransportElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTransportElementType +#define SCHEMA_IfcTransportElementType_HAS_PredefinedType +#define SCHEMA_HAS_IfcTrapeziumProfileDef +#define SCHEMA_IfcTrapeziumProfileDef_HAS_BottomXDim +#define SCHEMA_IfcTrapeziumProfileDef_HAS_TopXDim +#define SCHEMA_IfcTrapeziumProfileDef_HAS_YDim +#define SCHEMA_IfcTrapeziumProfileDef_HAS_TopXOffset +#define SCHEMA_HAS_IfcTriangulatedFaceSet +#define SCHEMA_IfcTriangulatedFaceSet_HAS_Normals +#define SCHEMA_IfcTriangulatedFaceSet_Normals_IS_OPTIONAL +#define SCHEMA_IfcTriangulatedFaceSet_HAS_Closed +#define SCHEMA_IfcTriangulatedFaceSet_Closed_IS_OPTIONAL +#define SCHEMA_IfcTriangulatedFaceSet_HAS_CoordIndex +#define SCHEMA_IfcTriangulatedFaceSet_HAS_PnIndex +#define SCHEMA_IfcTriangulatedFaceSet_PnIndex_IS_OPTIONAL +#define SCHEMA_HAS_IfcTriangulatedIrregularNetwork +#define SCHEMA_IfcTriangulatedIrregularNetwork_HAS_Flags +#define SCHEMA_HAS_IfcTrimmedCurve +#define SCHEMA_IfcTrimmedCurve_HAS_BasisCurve +#define SCHEMA_IfcTrimmedCurve_HAS_Trim1 +#define SCHEMA_IfcTrimmedCurve_HAS_Trim2 +#define SCHEMA_IfcTrimmedCurve_HAS_SenseAgreement +#define SCHEMA_IfcTrimmedCurve_HAS_MasterRepresentation +#define SCHEMA_HAS_IfcTubeBundle +#define SCHEMA_IfcTubeBundle_HAS_PredefinedType +#define SCHEMA_IfcTubeBundle_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTubeBundleType +#define SCHEMA_IfcTubeBundleType_HAS_PredefinedType +#define SCHEMA_HAS_IfcTypeObject +#define SCHEMA_IfcTypeObject_HAS_ApplicableOccurrence +#define SCHEMA_IfcTypeObject_ApplicableOccurrence_IS_OPTIONAL +#define SCHEMA_IfcTypeObject_HAS_HasPropertySets +#define SCHEMA_IfcTypeObject_HasPropertySets_IS_OPTIONAL +#define SCHEMA_HAS_IfcTypeProcess +#define SCHEMA_IfcTypeProcess_HAS_Identification +#define SCHEMA_IfcTypeProcess_Identification_IS_OPTIONAL +#define SCHEMA_IfcTypeProcess_HAS_LongDescription +#define SCHEMA_IfcTypeProcess_LongDescription_IS_OPTIONAL +#define SCHEMA_IfcTypeProcess_HAS_ProcessType +#define SCHEMA_IfcTypeProcess_ProcessType_IS_OPTIONAL +#define SCHEMA_HAS_IfcTypeProduct +#define SCHEMA_IfcTypeProduct_HAS_RepresentationMaps +#define SCHEMA_IfcTypeProduct_RepresentationMaps_IS_OPTIONAL +#define SCHEMA_IfcTypeProduct_HAS_Tag +#define SCHEMA_IfcTypeProduct_Tag_IS_OPTIONAL +#define SCHEMA_HAS_IfcTypeResource +#define SCHEMA_IfcTypeResource_HAS_Identification +#define SCHEMA_IfcTypeResource_Identification_IS_OPTIONAL +#define SCHEMA_IfcTypeResource_HAS_LongDescription +#define SCHEMA_IfcTypeResource_LongDescription_IS_OPTIONAL +#define SCHEMA_IfcTypeResource_HAS_ResourceType +#define SCHEMA_IfcTypeResource_ResourceType_IS_OPTIONAL +#define SCHEMA_HAS_IfcUShapeProfileDef +#define SCHEMA_IfcUShapeProfileDef_HAS_Depth +#define SCHEMA_IfcUShapeProfileDef_HAS_FlangeWidth +#define SCHEMA_IfcUShapeProfileDef_HAS_WebThickness +#define SCHEMA_IfcUShapeProfileDef_HAS_FlangeThickness +#define SCHEMA_IfcUShapeProfileDef_HAS_FilletRadius +#define SCHEMA_IfcUShapeProfileDef_FilletRadius_IS_OPTIONAL +#define SCHEMA_IfcUShapeProfileDef_HAS_EdgeRadius +#define SCHEMA_IfcUShapeProfileDef_EdgeRadius_IS_OPTIONAL +#define SCHEMA_IfcUShapeProfileDef_HAS_FlangeSlope +#define SCHEMA_IfcUShapeProfileDef_FlangeSlope_IS_OPTIONAL +#define SCHEMA_HAS_IfcUnitAssignment +#define SCHEMA_IfcUnitAssignment_HAS_Units +#define SCHEMA_HAS_IfcUnitaryControlElement +#define SCHEMA_IfcUnitaryControlElement_HAS_PredefinedType +#define SCHEMA_IfcUnitaryControlElement_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcUnitaryControlElementType +#define SCHEMA_IfcUnitaryControlElementType_HAS_PredefinedType +#define SCHEMA_HAS_IfcUnitaryEquipment +#define SCHEMA_IfcUnitaryEquipment_HAS_PredefinedType +#define SCHEMA_IfcUnitaryEquipment_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcUnitaryEquipmentType +#define SCHEMA_IfcUnitaryEquipmentType_HAS_PredefinedType +#define SCHEMA_HAS_IfcValve +#define SCHEMA_IfcValve_HAS_PredefinedType +#define SCHEMA_IfcValve_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcValveType +#define SCHEMA_IfcValveType_HAS_PredefinedType +#define SCHEMA_HAS_IfcVector +#define SCHEMA_IfcVector_HAS_Orientation +#define SCHEMA_IfcVector_HAS_Magnitude +#define SCHEMA_HAS_IfcVertex +#define SCHEMA_HAS_IfcVertexLoop +#define SCHEMA_IfcVertexLoop_HAS_LoopVertex +#define SCHEMA_HAS_IfcVertexPoint +#define SCHEMA_IfcVertexPoint_HAS_VertexGeometry +#define SCHEMA_HAS_IfcVibrationDamper +#define SCHEMA_IfcVibrationDamper_HAS_PredefinedType +#define SCHEMA_IfcVibrationDamper_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcVibrationDamperType +#define SCHEMA_IfcVibrationDamperType_HAS_PredefinedType +#define SCHEMA_IfcVibrationDamperType_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcVibrationIsolator +#define SCHEMA_IfcVibrationIsolator_HAS_PredefinedType +#define SCHEMA_IfcVibrationIsolator_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcVibrationIsolatorType +#define SCHEMA_IfcVibrationIsolatorType_HAS_PredefinedType +#define SCHEMA_HAS_IfcVirtualElement +#define SCHEMA_HAS_IfcVirtualGridIntersection +#define SCHEMA_IfcVirtualGridIntersection_HAS_IntersectingAxes +#define SCHEMA_IfcVirtualGridIntersection_HAS_OffsetDistances +#define SCHEMA_HAS_IfcVoidingFeature +#define SCHEMA_IfcVoidingFeature_HAS_PredefinedType +#define SCHEMA_IfcVoidingFeature_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWall +#define SCHEMA_IfcWall_HAS_PredefinedType +#define SCHEMA_IfcWall_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWallElementedCase +#define SCHEMA_HAS_IfcWallStandardCase +#define SCHEMA_HAS_IfcWallType +#define SCHEMA_IfcWallType_HAS_PredefinedType +#define SCHEMA_HAS_IfcWasteTerminal +#define SCHEMA_IfcWasteTerminal_HAS_PredefinedType +#define SCHEMA_IfcWasteTerminal_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWasteTerminalType +#define SCHEMA_IfcWasteTerminalType_HAS_PredefinedType +#define SCHEMA_HAS_IfcWindow +#define SCHEMA_IfcWindow_HAS_OverallHeight +#define SCHEMA_IfcWindow_OverallHeight_IS_OPTIONAL +#define SCHEMA_IfcWindow_HAS_OverallWidth +#define SCHEMA_IfcWindow_OverallWidth_IS_OPTIONAL +#define SCHEMA_IfcWindow_HAS_PredefinedType +#define SCHEMA_IfcWindow_PredefinedType_IS_OPTIONAL +#define SCHEMA_IfcWindow_HAS_PartitioningType +#define SCHEMA_IfcWindow_PartitioningType_IS_OPTIONAL +#define SCHEMA_IfcWindow_HAS_UserDefinedPartitioningType +#define SCHEMA_IfcWindow_UserDefinedPartitioningType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWindowLiningProperties +#define SCHEMA_IfcWindowLiningProperties_HAS_LiningDepth +#define SCHEMA_IfcWindowLiningProperties_LiningDepth_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_LiningThickness +#define SCHEMA_IfcWindowLiningProperties_LiningThickness_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_TransomThickness +#define SCHEMA_IfcWindowLiningProperties_TransomThickness_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_MullionThickness +#define SCHEMA_IfcWindowLiningProperties_MullionThickness_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_FirstTransomOffset +#define SCHEMA_IfcWindowLiningProperties_FirstTransomOffset_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_SecondTransomOffset +#define SCHEMA_IfcWindowLiningProperties_SecondTransomOffset_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_FirstMullionOffset +#define SCHEMA_IfcWindowLiningProperties_FirstMullionOffset_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_SecondMullionOffset +#define SCHEMA_IfcWindowLiningProperties_SecondMullionOffset_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_ShapeAspectStyle +#define SCHEMA_IfcWindowLiningProperties_ShapeAspectStyle_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_LiningOffset +#define SCHEMA_IfcWindowLiningProperties_LiningOffset_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_LiningToPanelOffsetX +#define SCHEMA_IfcWindowLiningProperties_LiningToPanelOffsetX_IS_OPTIONAL +#define SCHEMA_IfcWindowLiningProperties_HAS_LiningToPanelOffsetY +#define SCHEMA_IfcWindowLiningProperties_LiningToPanelOffsetY_IS_OPTIONAL +#define SCHEMA_HAS_IfcWindowPanelProperties +#define SCHEMA_IfcWindowPanelProperties_HAS_OperationType +#define SCHEMA_IfcWindowPanelProperties_HAS_PanelPosition +#define SCHEMA_IfcWindowPanelProperties_HAS_FrameDepth +#define SCHEMA_IfcWindowPanelProperties_FrameDepth_IS_OPTIONAL +#define SCHEMA_IfcWindowPanelProperties_HAS_FrameThickness +#define SCHEMA_IfcWindowPanelProperties_FrameThickness_IS_OPTIONAL +#define SCHEMA_IfcWindowPanelProperties_HAS_ShapeAspectStyle +#define SCHEMA_IfcWindowPanelProperties_ShapeAspectStyle_IS_OPTIONAL +#define SCHEMA_HAS_IfcWindowStandardCase +#define SCHEMA_HAS_IfcWindowStyle +#define SCHEMA_IfcWindowStyle_HAS_ConstructionType +#define SCHEMA_IfcWindowStyle_HAS_OperationType +#define SCHEMA_IfcWindowStyle_HAS_ParameterTakesPrecedence +#define SCHEMA_IfcWindowStyle_HAS_Sizeable +#define SCHEMA_HAS_IfcWindowType +#define SCHEMA_IfcWindowType_HAS_PredefinedType +#define SCHEMA_IfcWindowType_HAS_PartitioningType +#define SCHEMA_IfcWindowType_HAS_ParameterTakesPrecedence +#define SCHEMA_IfcWindowType_ParameterTakesPrecedence_IS_OPTIONAL +#define SCHEMA_IfcWindowType_HAS_UserDefinedPartitioningType +#define SCHEMA_IfcWindowType_UserDefinedPartitioningType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWorkCalendar +#define SCHEMA_IfcWorkCalendar_HAS_WorkingTimes +#define SCHEMA_IfcWorkCalendar_WorkingTimes_IS_OPTIONAL +#define SCHEMA_IfcWorkCalendar_HAS_ExceptionTimes +#define SCHEMA_IfcWorkCalendar_ExceptionTimes_IS_OPTIONAL +#define SCHEMA_IfcWorkCalendar_HAS_PredefinedType +#define SCHEMA_IfcWorkCalendar_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWorkControl +#define SCHEMA_IfcWorkControl_HAS_CreationDate +#define SCHEMA_IfcWorkControl_HAS_Creators +#define SCHEMA_IfcWorkControl_Creators_IS_OPTIONAL +#define SCHEMA_IfcWorkControl_HAS_Purpose +#define SCHEMA_IfcWorkControl_Purpose_IS_OPTIONAL +#define SCHEMA_IfcWorkControl_HAS_Duration +#define SCHEMA_IfcWorkControl_Duration_IS_OPTIONAL +#define SCHEMA_IfcWorkControl_HAS_TotalFloat +#define SCHEMA_IfcWorkControl_TotalFloat_IS_OPTIONAL +#define SCHEMA_IfcWorkControl_HAS_StartTime +#define SCHEMA_IfcWorkControl_HAS_FinishTime +#define SCHEMA_IfcWorkControl_FinishTime_IS_OPTIONAL +#define SCHEMA_HAS_IfcWorkPlan +#define SCHEMA_IfcWorkPlan_HAS_PredefinedType +#define SCHEMA_IfcWorkPlan_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWorkSchedule +#define SCHEMA_IfcWorkSchedule_HAS_PredefinedType +#define SCHEMA_IfcWorkSchedule_PredefinedType_IS_OPTIONAL +#define SCHEMA_HAS_IfcWorkTime +#define SCHEMA_IfcWorkTime_HAS_RecurrencePattern +#define SCHEMA_IfcWorkTime_RecurrencePattern_IS_OPTIONAL +#define SCHEMA_IfcWorkTime_HAS_Start +#define SCHEMA_IfcWorkTime_Start_IS_OPTIONAL +#define SCHEMA_IfcWorkTime_HAS_Finish +#define SCHEMA_IfcWorkTime_Finish_IS_OPTIONAL +#define SCHEMA_HAS_IfcZShapeProfileDef +#define SCHEMA_IfcZShapeProfileDef_HAS_Depth +#define SCHEMA_IfcZShapeProfileDef_HAS_FlangeWidth +#define SCHEMA_IfcZShapeProfileDef_HAS_WebThickness +#define SCHEMA_IfcZShapeProfileDef_HAS_FlangeThickness +#define SCHEMA_IfcZShapeProfileDef_HAS_FilletRadius +#define SCHEMA_IfcZShapeProfileDef_FilletRadius_IS_OPTIONAL +#define SCHEMA_IfcZShapeProfileDef_HAS_EdgeRadius +#define SCHEMA_IfcZShapeProfileDef_EdgeRadius_IS_OPTIONAL +#define SCHEMA_HAS_IfcZone +#define SCHEMA_IfcZone_HAS_LongName +#define SCHEMA_IfcZone_LongName_IS_OPTIONAL diff --git a/src/ifcparse/Ifc4x2-schema.cpp b/src/ifcparse/Ifc4x2-schema.cpp index bd21597825..22dcc2db93 100644 --- a/src/ifcparse/Ifc4x2-schema.cpp +++ b/src/ifcparse/Ifc4x2-schema.cpp @@ -19,7 +19,7 @@ /******************************************************************************** * * - * This file has been generated from IFC4x2.exp Draft. Do not make modifications * + * This file has been generated from IFC4x2.exp. Do not make modifications * * but instead modify the python script that has been used to generate this. * * * ********************************************************************************/ @@ -13249,64 +13249,9 @@ IfcParse::schema_definition* IFC4X2_populate_schema() { IFC4X2_IfcTypeResource_type->set_inverse_attributes(attributes); } { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcPlanarBox_type); - IFC4X2_IfcPlanarExtent_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(5); - defs.push_back(IFC4X2_IfcArbitraryClosedProfileDef_type);defs.push_back(IFC4X2_IfcArbitraryOpenProfileDef_type);defs.push_back(IFC4X2_IfcCompositeProfileDef_type);defs.push_back(IFC4X2_IfcDerivedProfileDef_type);defs.push_back(IFC4X2_IfcParameterizedProfileDef_type); - IFC4X2_IfcProfileDef_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(7); - defs.push_back(IFC4X2_IfcAlignmentCurve_type);defs.push_back(IFC4X2_IfcBSplineCurve_type);defs.push_back(IFC4X2_IfcCompositeCurve_type);defs.push_back(IFC4X2_IfcCurveSegment2D_type);defs.push_back(IFC4X2_IfcIndexedPolyCurve_type);defs.push_back(IFC4X2_IfcPolyline_type);defs.push_back(IFC4X2_IfcTrimmedCurve_type); - IFC4X2_IfcBoundedCurve_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcClassification_type);defs.push_back(IFC4X2_IfcDocumentInformation_type);defs.push_back(IFC4X2_IfcLibraryInformation_type); - IFC4X2_IfcExternalInformation_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(4); - defs.push_back(IFC4X2_IfcDoorStyle_type);defs.push_back(IFC4X2_IfcElementType_type);defs.push_back(IFC4X2_IfcSpatialElementType_type);defs.push_back(IFC4X2_IfcWindowStyle_type); - IFC4X2_IfcTypeProduct_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(5); - defs.push_back(IFC4X2_IfcCableCarrierFittingType_type);defs.push_back(IFC4X2_IfcCableFittingType_type);defs.push_back(IFC4X2_IfcDuctFittingType_type);defs.push_back(IFC4X2_IfcJunctionBoxType_type);defs.push_back(IFC4X2_IfcPipeFittingType_type); - IFC4X2_IfcFlowFittingType_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcCompressor_type);defs.push_back(IFC4X2_IfcFan_type);defs.push_back(IFC4X2_IfcPump_type); - IFC4X2_IfcFlowMovingDevice_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcConversionBasedUnitWithOffset_type); - IFC4X2_IfcConversionBasedUnit_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(4); - defs.push_back(IFC4X2_IfcBuildingSystem_type);defs.push_back(IFC4X2_IfcDistributionSystem_type);defs.push_back(IFC4X2_IfcStructuralAnalysisModel_type);defs.push_back(IFC4X2_IfcZone_type); - IFC4X2_IfcSystem_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcCaissonFoundationType_type); - IFC4X2_IfcDeepFoundationType_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcStructuralCurveMember_type);defs.push_back(IFC4X2_IfcStructuralSurfaceMember_type); - IFC4X2_IfcStructuralMember_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(6); - defs.push_back(IFC4X2_IfcClassificationReference_type);defs.push_back(IFC4X2_IfcDocumentReference_type);defs.push_back(IFC4X2_IfcExternallyDefinedHatchStyle_type);defs.push_back(IFC4X2_IfcExternallyDefinedSurfaceStyle_type);defs.push_back(IFC4X2_IfcExternallyDefinedTextFont_type);defs.push_back(IFC4X2_IfcLibraryReference_type); - IFC4X2_IfcExternalReference_type->set_subtypes(defs); + std::vector defs; defs.reserve(8); + defs.push_back(IFC4X2_IfcActionRequest_type);defs.push_back(IFC4X2_IfcCostItem_type);defs.push_back(IFC4X2_IfcCostSchedule_type);defs.push_back(IFC4X2_IfcPerformanceHistory_type);defs.push_back(IFC4X2_IfcPermit_type);defs.push_back(IFC4X2_IfcProjectOrder_type);defs.push_back(IFC4X2_IfcWorkCalendar_type);defs.push_back(IFC4X2_IfcWorkControl_type); + IFC4X2_IfcControl_type->set_subtypes(defs); } { std::vector defs; defs.reserve(6); @@ -13314,19 +13259,49 @@ IfcParse::schema_definition* IFC4X2_populate_schema() { IFC4X2_IfcObject_type->set_subtypes(defs); } { - std::vector defs; defs.reserve(5); - defs.push_back(IFC4X2_IfcReinforcingBarType_type);defs.push_back(IFC4X2_IfcReinforcingMeshType_type);defs.push_back(IFC4X2_IfcTendonAnchorType_type);defs.push_back(IFC4X2_IfcTendonConduitType_type);defs.push_back(IFC4X2_IfcTendonType_type); - IFC4X2_IfcReinforcingElementType_type->set_subtypes(defs); + std::vector defs; defs.reserve(7); + defs.push_back(IFC4X2_IfcActuator_type);defs.push_back(IFC4X2_IfcAlarm_type);defs.push_back(IFC4X2_IfcController_type);defs.push_back(IFC4X2_IfcFlowInstrument_type);defs.push_back(IFC4X2_IfcProtectiveDeviceTrippingUnit_type);defs.push_back(IFC4X2_IfcSensor_type);defs.push_back(IFC4X2_IfcUnitaryControlElement_type); + IFC4X2_IfcDistributionControlElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC4X2_IfcActuatorType_type);defs.push_back(IFC4X2_IfcAlarmType_type);defs.push_back(IFC4X2_IfcControllerType_type);defs.push_back(IFC4X2_IfcFlowInstrumentType_type);defs.push_back(IFC4X2_IfcProtectiveDeviceTrippingUnitType_type);defs.push_back(IFC4X2_IfcSensorType_type);defs.push_back(IFC4X2_IfcUnitaryControlElementType_type); + IFC4X2_IfcDistributionControlElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcAdvancedBrep_type);defs.push_back(IFC4X2_IfcFacetedBrep_type); + IFC4X2_IfcManifoldSolidBrep_type->set_subtypes(defs); } { std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcMaterialLayerWithOffsets_type); - IFC4X2_IfcMaterialLayer_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcAdvancedBrepWithVoids_type); + IFC4X2_IfcAdvancedBrep_type->set_subtypes(defs); } { - std::vector defs; defs.reserve(5); - defs.push_back(IFC4X2_IfcBuildingStorey_type);defs.push_back(IFC4X2_IfcFacility_type);defs.push_back(IFC4X2_IfcFacilityPart_type);defs.push_back(IFC4X2_IfcSite_type);defs.push_back(IFC4X2_IfcSpace_type); - IFC4X2_IfcSpatialStructureElement_type->set_subtypes(defs); + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcAdvancedFace_type); + IFC4X2_IfcFaceSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(13); + defs.push_back(IFC4X2_IfcAirTerminal_type);defs.push_back(IFC4X2_IfcAudioVisualAppliance_type);defs.push_back(IFC4X2_IfcCommunicationsAppliance_type);defs.push_back(IFC4X2_IfcElectricAppliance_type);defs.push_back(IFC4X2_IfcFireSuppressionTerminal_type);defs.push_back(IFC4X2_IfcLamp_type);defs.push_back(IFC4X2_IfcLightFixture_type);defs.push_back(IFC4X2_IfcMedicalDevice_type);defs.push_back(IFC4X2_IfcOutlet_type);defs.push_back(IFC4X2_IfcSanitaryTerminal_type);defs.push_back(IFC4X2_IfcSpaceHeater_type);defs.push_back(IFC4X2_IfcStackTerminal_type);defs.push_back(IFC4X2_IfcWasteTerminal_type); + IFC4X2_IfcFlowTerminal_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(8); + defs.push_back(IFC4X2_IfcAirTerminalBox_type);defs.push_back(IFC4X2_IfcDamper_type);defs.push_back(IFC4X2_IfcElectricDistributionBoard_type);defs.push_back(IFC4X2_IfcElectricTimeControl_type);defs.push_back(IFC4X2_IfcFlowMeter_type);defs.push_back(IFC4X2_IfcProtectiveDevice_type);defs.push_back(IFC4X2_IfcSwitchingDevice_type);defs.push_back(IFC4X2_IfcValve_type); + IFC4X2_IfcFlowController_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(8); + defs.push_back(IFC4X2_IfcAirTerminalBoxType_type);defs.push_back(IFC4X2_IfcDamperType_type);defs.push_back(IFC4X2_IfcElectricDistributionBoardType_type);defs.push_back(IFC4X2_IfcElectricTimeControlType_type);defs.push_back(IFC4X2_IfcFlowMeterType_type);defs.push_back(IFC4X2_IfcProtectiveDeviceType_type);defs.push_back(IFC4X2_IfcSwitchingDeviceType_type);defs.push_back(IFC4X2_IfcValveType_type); + IFC4X2_IfcFlowControllerType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(13); + defs.push_back(IFC4X2_IfcAirTerminalType_type);defs.push_back(IFC4X2_IfcAudioVisualApplianceType_type);defs.push_back(IFC4X2_IfcCommunicationsApplianceType_type);defs.push_back(IFC4X2_IfcElectricApplianceType_type);defs.push_back(IFC4X2_IfcFireSuppressionTerminalType_type);defs.push_back(IFC4X2_IfcLampType_type);defs.push_back(IFC4X2_IfcLightFixtureType_type);defs.push_back(IFC4X2_IfcMedicalDeviceType_type);defs.push_back(IFC4X2_IfcOutletType_type);defs.push_back(IFC4X2_IfcSanitaryTerminalType_type);defs.push_back(IFC4X2_IfcSpaceHeaterType_type);defs.push_back(IFC4X2_IfcStackTerminalType_type);defs.push_back(IFC4X2_IfcWasteTerminalType_type); + IFC4X2_IfcFlowTerminalType_type->set_subtypes(defs); } { std::vector defs; defs.reserve(20); @@ -13338,230 +13313,35 @@ IfcParse::schema_definition* IFC4X2_populate_schema() { defs.push_back(IFC4X2_IfcAirToAirHeatRecoveryType_type);defs.push_back(IFC4X2_IfcBoilerType_type);defs.push_back(IFC4X2_IfcBurnerType_type);defs.push_back(IFC4X2_IfcChillerType_type);defs.push_back(IFC4X2_IfcCoilType_type);defs.push_back(IFC4X2_IfcCondenserType_type);defs.push_back(IFC4X2_IfcCooledBeamType_type);defs.push_back(IFC4X2_IfcCoolingTowerType_type);defs.push_back(IFC4X2_IfcElectricGeneratorType_type);defs.push_back(IFC4X2_IfcElectricMotorType_type);defs.push_back(IFC4X2_IfcEngineType_type);defs.push_back(IFC4X2_IfcEvaporativeCoolerType_type);defs.push_back(IFC4X2_IfcEvaporatorType_type);defs.push_back(IFC4X2_IfcHeatExchangerType_type);defs.push_back(IFC4X2_IfcHumidifierType_type);defs.push_back(IFC4X2_IfcMotorConnectionType_type);defs.push_back(IFC4X2_IfcSolarDeviceType_type);defs.push_back(IFC4X2_IfcTransformerType_type);defs.push_back(IFC4X2_IfcTubeBundleType_type);defs.push_back(IFC4X2_IfcUnitaryEquipmentType_type); IFC4X2_IfcEnergyConversionDeviceType_type->set_subtypes(defs); } - { - std::vector defs; defs.reserve(6); - defs.push_back(IFC4X2_IfcDoorLiningProperties_type);defs.push_back(IFC4X2_IfcDoorPanelProperties_type);defs.push_back(IFC4X2_IfcPermeableCoveringProperties_type);defs.push_back(IFC4X2_IfcReinforcementDefinitionProperties_type);defs.push_back(IFC4X2_IfcWindowLiningProperties_type);defs.push_back(IFC4X2_IfcWindowPanelProperties_type); - IFC4X2_IfcPreDefinedPropertySet_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcDistributionControlElement_type);defs.push_back(IFC4X2_IfcDistributionFlowElement_type); - IFC4X2_IfcDistributionElement_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcStructuralLoadConfiguration_type);defs.push_back(IFC4X2_IfcStructuralLoadOrResult_type); - IFC4X2_IfcStructuralLoad_type->set_subtypes(defs); - } { std::vector defs; defs.reserve(1); defs.push_back(IFC4X2_IfcAlignment_type); IFC4X2_IfcLinearPositioningElement_type->set_subtypes(defs); } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcRelConnectsPathElements_type);defs.push_back(IFC4X2_IfcRelConnectsWithRealizingElements_type); - IFC4X2_IfcRelConnectsElements_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcProjectedCRS_type); - IFC4X2_IfcCoordinateReferenceSystem_type->set_subtypes(defs); - } { std::vector defs; defs.reserve(30); defs.push_back(IFC4X2_IfcAlignment2DHorizontal_type);defs.push_back(IFC4X2_IfcAlignment2DSegment_type);defs.push_back(IFC4X2_IfcAlignment2DVertical_type);defs.push_back(IFC4X2_IfcAnnotationFillArea_type);defs.push_back(IFC4X2_IfcBooleanResult_type);defs.push_back(IFC4X2_IfcBoundingBox_type);defs.push_back(IFC4X2_IfcCartesianPointList_type);defs.push_back(IFC4X2_IfcCartesianTransformationOperator_type);defs.push_back(IFC4X2_IfcCompositeCurveSegment_type);defs.push_back(IFC4X2_IfcCsgPrimitive3D_type);defs.push_back(IFC4X2_IfcCurve_type);defs.push_back(IFC4X2_IfcDirection_type);defs.push_back(IFC4X2_IfcDistanceExpression_type);defs.push_back(IFC4X2_IfcFaceBasedSurfaceModel_type);defs.push_back(IFC4X2_IfcFillAreaStyleHatching_type);defs.push_back(IFC4X2_IfcFillAreaStyleTiles_type);defs.push_back(IFC4X2_IfcGeometricSet_type);defs.push_back(IFC4X2_IfcHalfSpaceSolid_type);defs.push_back(IFC4X2_IfcLightSource_type);defs.push_back(IFC4X2_IfcOrientationExpression_type);defs.push_back(IFC4X2_IfcPlacement_type);defs.push_back(IFC4X2_IfcPlanarExtent_type);defs.push_back(IFC4X2_IfcPoint_type);defs.push_back(IFC4X2_IfcSectionedSpine_type);defs.push_back(IFC4X2_IfcShellBasedSurfaceModel_type);defs.push_back(IFC4X2_IfcSolidModel_type);defs.push_back(IFC4X2_IfcSurface_type);defs.push_back(IFC4X2_IfcTessellatedItem_type);defs.push_back(IFC4X2_IfcTextLiteral_type);defs.push_back(IFC4X2_IfcVector_type); IFC4X2_IfcGeometricRepresentationItem_type->set_subtypes(defs); } { - std::vector defs; defs.reserve(6); - defs.push_back(IFC4X2_IfcRelAssociatesApproval_type);defs.push_back(IFC4X2_IfcRelAssociatesClassification_type);defs.push_back(IFC4X2_IfcRelAssociatesConstraint_type);defs.push_back(IFC4X2_IfcRelAssociatesDocument_type);defs.push_back(IFC4X2_IfcRelAssociatesLibrary_type);defs.push_back(IFC4X2_IfcRelAssociatesMaterial_type); - IFC4X2_IfcRelAssociates_type->set_subtypes(defs); + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcAlignment2DHorizontalSegment_type);defs.push_back(IFC4X2_IfcAlignment2DVerticalSegment_type); + IFC4X2_IfcAlignment2DSegment_type->set_subtypes(defs); } { std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcOffsetCurve2D_type);defs.push_back(IFC4X2_IfcOffsetCurve3D_type);defs.push_back(IFC4X2_IfcOffsetCurveByDistances_type); - IFC4X2_IfcOffsetCurve_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(4); - defs.push_back(IFC4X2_IfcCableCarrierSegment_type);defs.push_back(IFC4X2_IfcCableSegment_type);defs.push_back(IFC4X2_IfcDuctSegment_type);defs.push_back(IFC4X2_IfcPipeSegment_type); - IFC4X2_IfcFlowSegment_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcBridge_type);defs.push_back(IFC4X2_IfcBuilding_type); - IFC4X2_IfcFacility_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcStructuralCurveConnection_type);defs.push_back(IFC4X2_IfcStructuralPointConnection_type);defs.push_back(IFC4X2_IfcStructuralSurfaceConnection_type); - IFC4X2_IfcStructuralConnection_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(4); - defs.push_back(IFC4X2_IfcExtrudedAreaSolid_type);defs.push_back(IFC4X2_IfcFixedReferenceSweptAreaSolid_type);defs.push_back(IFC4X2_IfcRevolvedAreaSolid_type);defs.push_back(IFC4X2_IfcSurfaceCurveSweptAreaSolid_type); - IFC4X2_IfcSweptAreaSolid_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcBoundaryCurve_type); - IFC4X2_IfcCompositeCurveOnSurface_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcStyledRepresentation_type); - IFC4X2_IfcStyleModel_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcObjectDefinition_type);defs.push_back(IFC4X2_IfcPropertyDefinition_type);defs.push_back(IFC4X2_IfcRelationship_type); - IFC4X2_IfcRoot_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(8); - defs.push_back(IFC4X2_IfcAirTerminalBoxType_type);defs.push_back(IFC4X2_IfcDamperType_type);defs.push_back(IFC4X2_IfcElectricDistributionBoardType_type);defs.push_back(IFC4X2_IfcElectricTimeControlType_type);defs.push_back(IFC4X2_IfcFlowMeterType_type);defs.push_back(IFC4X2_IfcProtectiveDeviceType_type);defs.push_back(IFC4X2_IfcSwitchingDeviceType_type);defs.push_back(IFC4X2_IfcValveType_type); - IFC4X2_IfcFlowControllerType_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(9); - defs.push_back(IFC4X2_IfcDistributionChamberElement_type);defs.push_back(IFC4X2_IfcEnergyConversionDevice_type);defs.push_back(IFC4X2_IfcFlowController_type);defs.push_back(IFC4X2_IfcFlowFitting_type);defs.push_back(IFC4X2_IfcFlowMovingDevice_type);defs.push_back(IFC4X2_IfcFlowSegment_type);defs.push_back(IFC4X2_IfcFlowStorageDevice_type);defs.push_back(IFC4X2_IfcFlowTerminal_type);defs.push_back(IFC4X2_IfcFlowTreatmentDevice_type); - IFC4X2_IfcDistributionFlowElement_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcCartesianPointList2D_type);defs.push_back(IFC4X2_IfcCartesianPointList3D_type); - IFC4X2_IfcCartesianPointList_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcConnectionPointEccentricity_type); - IFC4X2_IfcConnectionPointGeometry_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcStructuralSurfaceMemberVarying_type); - IFC4X2_IfcStructuralSurfaceMember_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcDistributionControlElementType_type);defs.push_back(IFC4X2_IfcDistributionFlowElementType_type); - IFC4X2_IfcDistributionElementType_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(6); - defs.push_back(IFC4X2_IfcQuantityArea_type);defs.push_back(IFC4X2_IfcQuantityCount_type);defs.push_back(IFC4X2_IfcQuantityLength_type);defs.push_back(IFC4X2_IfcQuantityTime_type);defs.push_back(IFC4X2_IfcQuantityVolume_type);defs.push_back(IFC4X2_IfcQuantityWeight_type); - IFC4X2_IfcPhysicalSimpleQuantity_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcBSplineSurfaceWithKnots_type); - IFC4X2_IfcBSplineSurface_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcCompressorType_type);defs.push_back(IFC4X2_IfcFanType_type);defs.push_back(IFC4X2_IfcPumpType_type); - IFC4X2_IfcFlowMovingDeviceType_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcMaterialProperties_type);defs.push_back(IFC4X2_IfcProfileProperties_type); - IFC4X2_IfcExtendedProperties_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcIrregularTimeSeries_type);defs.push_back(IFC4X2_IfcRegularTimeSeries_type); - IFC4X2_IfcTimeSeries_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcBoxedHalfSpace_type);defs.push_back(IFC4X2_IfcPolygonalBoundedHalfSpace_type); - IFC4X2_IfcHalfSpaceSolid_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(5); - defs.push_back(IFC4X2_IfcCsgSolid_type);defs.push_back(IFC4X2_IfcManifoldSolidBrep_type);defs.push_back(IFC4X2_IfcSectionedSolid_type);defs.push_back(IFC4X2_IfcSweptAreaSolid_type);defs.push_back(IFC4X2_IfcSweptDiskSolid_type); - IFC4X2_IfcSolidModel_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(8); - defs.push_back(IFC4X2_IfcActionRequest_type);defs.push_back(IFC4X2_IfcCostItem_type);defs.push_back(IFC4X2_IfcCostSchedule_type);defs.push_back(IFC4X2_IfcPerformanceHistory_type);defs.push_back(IFC4X2_IfcPermit_type);defs.push_back(IFC4X2_IfcProjectOrder_type);defs.push_back(IFC4X2_IfcWorkCalendar_type);defs.push_back(IFC4X2_IfcWorkControl_type); - IFC4X2_IfcControl_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcCenterLineProfileDef_type); - IFC4X2_IfcArbitraryOpenProfileDef_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcBoundaryEdgeCondition_type);defs.push_back(IFC4X2_IfcBoundaryFaceCondition_type);defs.push_back(IFC4X2_IfcBoundaryNodeCondition_type); - IFC4X2_IfcBoundaryCondition_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcBoundedSurface_type);defs.push_back(IFC4X2_IfcElementarySurface_type);defs.push_back(IFC4X2_IfcSweptSurface_type); - IFC4X2_IfcSurface_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(8); - defs.push_back(IFC4X2_IfcAirTerminalBox_type);defs.push_back(IFC4X2_IfcDamper_type);defs.push_back(IFC4X2_IfcElectricDistributionBoard_type);defs.push_back(IFC4X2_IfcElectricTimeControl_type);defs.push_back(IFC4X2_IfcFlowMeter_type);defs.push_back(IFC4X2_IfcProtectiveDevice_type);defs.push_back(IFC4X2_IfcSwitchingDevice_type);defs.push_back(IFC4X2_IfcValve_type); - IFC4X2_IfcFlowController_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcComplexPropertyTemplate_type);defs.push_back(IFC4X2_IfcSimplePropertyTemplate_type); - IFC4X2_IfcPropertyTemplate_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcAlignment2DVerSegCircularArc_type);defs.push_back(IFC4X2_IfcAlignment2DVerSegLine_type);defs.push_back(IFC4X2_IfcAlignment2DVerSegParabolicArc_type); + IFC4X2_IfcAlignment2DVerticalSegment_type->set_subtypes(defs); } { std::vector defs; defs.reserve(7); - defs.push_back(IFC4X2_IfcBuildingElementPart_type);defs.push_back(IFC4X2_IfcDiscreteAccessory_type);defs.push_back(IFC4X2_IfcFastener_type);defs.push_back(IFC4X2_IfcMechanicalFastener_type);defs.push_back(IFC4X2_IfcReinforcingElement_type);defs.push_back(IFC4X2_IfcVibrationDamper_type);defs.push_back(IFC4X2_IfcVibrationIsolator_type); - IFC4X2_IfcElementComponent_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcAlignmentCurve_type);defs.push_back(IFC4X2_IfcBSplineCurve_type);defs.push_back(IFC4X2_IfcCompositeCurve_type);defs.push_back(IFC4X2_IfcCurveSegment2D_type);defs.push_back(IFC4X2_IfcIndexedPolyCurve_type);defs.push_back(IFC4X2_IfcPolyline_type);defs.push_back(IFC4X2_IfcTrimmedCurve_type); + IFC4X2_IfcBoundedCurve_type->set_subtypes(defs); } { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcOuterBoundaryCurve_type); - IFC4X2_IfcBoundaryCurve_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcComplexProperty_type);defs.push_back(IFC4X2_IfcSimpleProperty_type); - IFC4X2_IfcProperty_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcAxis1Placement_type);defs.push_back(IFC4X2_IfcAxis2Placement2D_type);defs.push_back(IFC4X2_IfcAxis2Placement3D_type); - IFC4X2_IfcPlacement_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcShapeModel_type);defs.push_back(IFC4X2_IfcStyleModel_type); - IFC4X2_IfcRepresentation_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcRectangleHollowProfileDef_type);defs.push_back(IFC4X2_IfcRoundedRectangleProfileDef_type); - IFC4X2_IfcRectangleProfileDef_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcIndexedTriangleTextureMap_type); - IFC4X2_IfcIndexedTextureMap_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcDistributionCircuit_type); - IFC4X2_IfcDistributionSystem_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcWallElementedCase_type);defs.push_back(IFC4X2_IfcWallStandardCase_type); - IFC4X2_IfcWall_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(13); - defs.push_back(IFC4X2_IfcAirTerminal_type);defs.push_back(IFC4X2_IfcAudioVisualAppliance_type);defs.push_back(IFC4X2_IfcCommunicationsAppliance_type);defs.push_back(IFC4X2_IfcElectricAppliance_type);defs.push_back(IFC4X2_IfcFireSuppressionTerminal_type);defs.push_back(IFC4X2_IfcLamp_type);defs.push_back(IFC4X2_IfcLightFixture_type);defs.push_back(IFC4X2_IfcMedicalDevice_type);defs.push_back(IFC4X2_IfcOutlet_type);defs.push_back(IFC4X2_IfcSanitaryTerminal_type);defs.push_back(IFC4X2_IfcSpaceHeater_type);defs.push_back(IFC4X2_IfcStackTerminal_type);defs.push_back(IFC4X2_IfcWasteTerminal_type); - IFC4X2_IfcFlowTerminal_type->set_subtypes(defs); + std::vector defs; defs.reserve(8); + defs.push_back(IFC4X2_IfcAnnotation_type);defs.push_back(IFC4X2_IfcElement_type);defs.push_back(IFC4X2_IfcPort_type);defs.push_back(IFC4X2_IfcPositioningElement_type);defs.push_back(IFC4X2_IfcProxy_type);defs.push_back(IFC4X2_IfcSpatialElement_type);defs.push_back(IFC4X2_IfcStructuralActivity_type);defs.push_back(IFC4X2_IfcStructuralItem_type); + IFC4X2_IfcProduct_type->set_subtypes(defs); } { std::vector defs; defs.reserve(9); @@ -13569,74 +13349,164 @@ IfcParse::schema_definition* IFC4X2_populate_schema() { IFC4X2_IfcResourceLevelRelationship_type->set_subtypes(defs); } { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcStructuralLoadSingleForceWarping_type); - IFC4X2_IfcStructuralLoadSingleForce_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcMaterialDefinitionRepresentation_type);defs.push_back(IFC4X2_IfcProductDefinitionShape_type); - IFC4X2_IfcProductRepresentation_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcExternalSpatialStructureElement_type);defs.push_back(IFC4X2_IfcSpatialStructureElement_type);defs.push_back(IFC4X2_IfcSpatialZone_type); - IFC4X2_IfcSpatialElement_type->set_subtypes(defs); + std::vector defs; defs.reserve(5); + defs.push_back(IFC4X2_IfcArbitraryClosedProfileDef_type);defs.push_back(IFC4X2_IfcArbitraryOpenProfileDef_type);defs.push_back(IFC4X2_IfcCompositeProfileDef_type);defs.push_back(IFC4X2_IfcDerivedProfileDef_type);defs.push_back(IFC4X2_IfcParameterizedProfileDef_type); + IFC4X2_IfcProfileDef_type->set_subtypes(defs); } { std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcRelSpaceBoundary2ndLevel_type); - IFC4X2_IfcRelSpaceBoundary1stLevel_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcArbitraryProfileDefWithVoids_type); + IFC4X2_IfcArbitraryClosedProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4X2_IfcAsset_type);defs.push_back(IFC4X2_IfcInventory_type);defs.push_back(IFC4X2_IfcStructuralLoadGroup_type);defs.push_back(IFC4X2_IfcStructuralResultGroup_type);defs.push_back(IFC4X2_IfcSystem_type); + IFC4X2_IfcGroup_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(11); + defs.push_back(IFC4X2_IfcAsymmetricIShapeProfileDef_type);defs.push_back(IFC4X2_IfcCShapeProfileDef_type);defs.push_back(IFC4X2_IfcCircleProfileDef_type);defs.push_back(IFC4X2_IfcEllipseProfileDef_type);defs.push_back(IFC4X2_IfcIShapeProfileDef_type);defs.push_back(IFC4X2_IfcLShapeProfileDef_type);defs.push_back(IFC4X2_IfcRectangleProfileDef_type);defs.push_back(IFC4X2_IfcTShapeProfileDef_type);defs.push_back(IFC4X2_IfcTrapeziumProfileDef_type);defs.push_back(IFC4X2_IfcUShapeProfileDef_type);defs.push_back(IFC4X2_IfcZShapeProfileDef_type); + IFC4X2_IfcParameterizedProfileDef_type->set_subtypes(defs); } { std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcDuctSilencerType_type);defs.push_back(IFC4X2_IfcFilterType_type);defs.push_back(IFC4X2_IfcInterceptorType_type); - IFC4X2_IfcFlowTreatmentDeviceType_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcAxis1Placement_type);defs.push_back(IFC4X2_IfcAxis2Placement2D_type);defs.push_back(IFC4X2_IfcAxis2Placement3D_type); + IFC4X2_IfcPlacement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcBSplineCurveWithKnots_type); + IFC4X2_IfcBSplineCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4X2_IfcBSplineSurface_type);defs.push_back(IFC4X2_IfcCurveBoundedPlane_type);defs.push_back(IFC4X2_IfcCurveBoundedSurface_type);defs.push_back(IFC4X2_IfcRectangularTrimmedSurface_type); + IFC4X2_IfcBoundedSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcBSplineSurfaceWithKnots_type); + IFC4X2_IfcBSplineSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(22); + defs.push_back(IFC4X2_IfcBeam_type);defs.push_back(IFC4X2_IfcBearing_type);defs.push_back(IFC4X2_IfcBuildingElementProxy_type);defs.push_back(IFC4X2_IfcChimney_type);defs.push_back(IFC4X2_IfcColumn_type);defs.push_back(IFC4X2_IfcCovering_type);defs.push_back(IFC4X2_IfcCurtainWall_type);defs.push_back(IFC4X2_IfcDeepFoundation_type);defs.push_back(IFC4X2_IfcDoor_type);defs.push_back(IFC4X2_IfcFooting_type);defs.push_back(IFC4X2_IfcMember_type);defs.push_back(IFC4X2_IfcPlate_type);defs.push_back(IFC4X2_IfcRailing_type);defs.push_back(IFC4X2_IfcRamp_type);defs.push_back(IFC4X2_IfcRampFlight_type);defs.push_back(IFC4X2_IfcRoof_type);defs.push_back(IFC4X2_IfcShadingDevice_type);defs.push_back(IFC4X2_IfcSlab_type);defs.push_back(IFC4X2_IfcStair_type);defs.push_back(IFC4X2_IfcStairFlight_type);defs.push_back(IFC4X2_IfcWall_type);defs.push_back(IFC4X2_IfcWindow_type); + IFC4X2_IfcBuildingElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcBeamStandardCase_type); + IFC4X2_IfcBeam_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(23); + defs.push_back(IFC4X2_IfcBeamType_type);defs.push_back(IFC4X2_IfcBearingType_type);defs.push_back(IFC4X2_IfcBuildingElementProxyType_type);defs.push_back(IFC4X2_IfcChimneyType_type);defs.push_back(IFC4X2_IfcColumnType_type);defs.push_back(IFC4X2_IfcCoveringType_type);defs.push_back(IFC4X2_IfcCurtainWallType_type);defs.push_back(IFC4X2_IfcDeepFoundationType_type);defs.push_back(IFC4X2_IfcDoorType_type);defs.push_back(IFC4X2_IfcFootingType_type);defs.push_back(IFC4X2_IfcMemberType_type);defs.push_back(IFC4X2_IfcPileType_type);defs.push_back(IFC4X2_IfcPlateType_type);defs.push_back(IFC4X2_IfcRailingType_type);defs.push_back(IFC4X2_IfcRampFlightType_type);defs.push_back(IFC4X2_IfcRampType_type);defs.push_back(IFC4X2_IfcRoofType_type);defs.push_back(IFC4X2_IfcShadingDeviceType_type);defs.push_back(IFC4X2_IfcSlabType_type);defs.push_back(IFC4X2_IfcStairFlightType_type);defs.push_back(IFC4X2_IfcStairType_type);defs.push_back(IFC4X2_IfcWallType_type);defs.push_back(IFC4X2_IfcWindowType_type); + IFC4X2_IfcBuildingElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcBlobTexture_type);defs.push_back(IFC4X2_IfcImageTexture_type);defs.push_back(IFC4X2_IfcPixelTexture_type); + IFC4X2_IfcSurfaceTexture_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4X2_IfcBlock_type);defs.push_back(IFC4X2_IfcRectangularPyramid_type);defs.push_back(IFC4X2_IfcRightCircularCone_type);defs.push_back(IFC4X2_IfcRightCircularCylinder_type);defs.push_back(IFC4X2_IfcSphere_type); + IFC4X2_IfcCsgPrimitive3D_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcBooleanClippingResult_type); + IFC4X2_IfcBooleanResult_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcBoundaryCurve_type); + IFC4X2_IfcCompositeCurveOnSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcBoundaryEdgeCondition_type);defs.push_back(IFC4X2_IfcBoundaryFaceCondition_type);defs.push_back(IFC4X2_IfcBoundaryNodeCondition_type); + IFC4X2_IfcBoundaryCondition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcBoundaryNodeConditionWarping_type); + IFC4X2_IfcBoundaryNodeCondition_type->set_subtypes(defs); } { std::vector defs; defs.reserve(6); defs.push_back(IFC4X2_IfcBoundedCurve_type);defs.push_back(IFC4X2_IfcConic_type);defs.push_back(IFC4X2_IfcLine_type);defs.push_back(IFC4X2_IfcOffsetCurve_type);defs.push_back(IFC4X2_IfcPcurve_type);defs.push_back(IFC4X2_IfcSurfaceCurve_type); IFC4X2_IfcCurve_type->set_subtypes(defs); } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcSpaceType_type); - IFC4X2_IfcSpatialStructureElementType_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcRelAssignsToGroupByFactor_type); - IFC4X2_IfcRelAssignsToGroup_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcStructuralPlanarAction_type); - IFC4X2_IfcStructuralSurfaceAction_type->set_subtypes(defs); - } { std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcCartesianPoint_type);defs.push_back(IFC4X2_IfcPointOnCurve_type);defs.push_back(IFC4X2_IfcPointOnSurface_type); - IFC4X2_IfcPoint_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcFacetedBrepWithVoids_type); - IFC4X2_IfcFacetedBrep_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcBoundedSurface_type);defs.push_back(IFC4X2_IfcElementarySurface_type);defs.push_back(IFC4X2_IfcSweptSurface_type); + IFC4X2_IfcSurface_type->set_subtypes(defs); } { std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcCircle_type);defs.push_back(IFC4X2_IfcEllipse_type); - IFC4X2_IfcConic_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcBoxedHalfSpace_type);defs.push_back(IFC4X2_IfcPolygonalBoundedHalfSpace_type); + IFC4X2_IfcHalfSpaceSolid_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcBridge_type);defs.push_back(IFC4X2_IfcBuilding_type); + IFC4X2_IfcFacility_type->set_subtypes(defs); } { std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcTriangulatedIrregularNetwork_type); - IFC4X2_IfcTriangulatedFaceSet_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcBridgePart_type); + IFC4X2_IfcFacilityPart_type->set_subtypes(defs); } { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcStructuralLinearAction_type); - IFC4X2_IfcStructuralCurveAction_type->set_subtypes(defs); + std::vector defs; defs.reserve(10); + defs.push_back(IFC4X2_IfcBuildingElement_type);defs.push_back(IFC4X2_IfcCivilElement_type);defs.push_back(IFC4X2_IfcDistributionElement_type);defs.push_back(IFC4X2_IfcElementAssembly_type);defs.push_back(IFC4X2_IfcElementComponent_type);defs.push_back(IFC4X2_IfcFeatureElement_type);defs.push_back(IFC4X2_IfcFurnishingElement_type);defs.push_back(IFC4X2_IfcGeographicElement_type);defs.push_back(IFC4X2_IfcTransportElement_type);defs.push_back(IFC4X2_IfcVirtualElement_type); + IFC4X2_IfcElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC4X2_IfcBuildingElementPart_type);defs.push_back(IFC4X2_IfcDiscreteAccessory_type);defs.push_back(IFC4X2_IfcFastener_type);defs.push_back(IFC4X2_IfcMechanicalFastener_type);defs.push_back(IFC4X2_IfcReinforcingElement_type);defs.push_back(IFC4X2_IfcVibrationDamper_type);defs.push_back(IFC4X2_IfcVibrationIsolator_type); + IFC4X2_IfcElementComponent_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC4X2_IfcBuildingElementPartType_type);defs.push_back(IFC4X2_IfcDiscreteAccessoryType_type);defs.push_back(IFC4X2_IfcFastenerType_type);defs.push_back(IFC4X2_IfcMechanicalFastenerType_type);defs.push_back(IFC4X2_IfcReinforcingElementType_type);defs.push_back(IFC4X2_IfcVibrationDamperType_type);defs.push_back(IFC4X2_IfcVibrationIsolatorType_type); + IFC4X2_IfcElementComponentType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(8); + defs.push_back(IFC4X2_IfcBuildingElementType_type);defs.push_back(IFC4X2_IfcCivilElementType_type);defs.push_back(IFC4X2_IfcDistributionElementType_type);defs.push_back(IFC4X2_IfcElementAssemblyType_type);defs.push_back(IFC4X2_IfcElementComponentType_type);defs.push_back(IFC4X2_IfcFurnishingElementType_type);defs.push_back(IFC4X2_IfcGeographicElementType_type);defs.push_back(IFC4X2_IfcTransportElementType_type); + IFC4X2_IfcElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4X2_IfcBuildingStorey_type);defs.push_back(IFC4X2_IfcFacility_type);defs.push_back(IFC4X2_IfcFacilityPart_type);defs.push_back(IFC4X2_IfcSite_type);defs.push_back(IFC4X2_IfcSpace_type); + IFC4X2_IfcSpatialStructureElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4X2_IfcBuildingSystem_type);defs.push_back(IFC4X2_IfcDistributionSystem_type);defs.push_back(IFC4X2_IfcStructuralAnalysisModel_type);defs.push_back(IFC4X2_IfcZone_type); + IFC4X2_IfcSystem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4X2_IfcCableCarrierFitting_type);defs.push_back(IFC4X2_IfcCableFitting_type);defs.push_back(IFC4X2_IfcDuctFitting_type);defs.push_back(IFC4X2_IfcJunctionBox_type);defs.push_back(IFC4X2_IfcPipeFitting_type); + IFC4X2_IfcFlowFitting_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4X2_IfcCableCarrierFittingType_type);defs.push_back(IFC4X2_IfcCableFittingType_type);defs.push_back(IFC4X2_IfcDuctFittingType_type);defs.push_back(IFC4X2_IfcJunctionBoxType_type);defs.push_back(IFC4X2_IfcPipeFittingType_type); + IFC4X2_IfcFlowFittingType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4X2_IfcCableCarrierSegment_type);defs.push_back(IFC4X2_IfcCableSegment_type);defs.push_back(IFC4X2_IfcDuctSegment_type);defs.push_back(IFC4X2_IfcPipeSegment_type); + IFC4X2_IfcFlowSegment_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4X2_IfcCableCarrierSegmentType_type);defs.push_back(IFC4X2_IfcCableSegmentType_type);defs.push_back(IFC4X2_IfcDuctSegmentType_type);defs.push_back(IFC4X2_IfcPipeSegmentType_type); + IFC4X2_IfcFlowSegmentType_type->set_subtypes(defs); } { std::vector defs; defs.reserve(2); @@ -13645,33 +13515,148 @@ IfcParse::schema_definition* IFC4X2_populate_schema() { } { std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcDoorStandardCase_type); - IFC4X2_IfcDoor_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcFurnitureType_type);defs.push_back(IFC4X2_IfcSystemFurnitureElementType_type); - IFC4X2_IfcFurnishingElementType_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcPostalAddress_type);defs.push_back(IFC4X2_IfcTelecomAddress_type); - IFC4X2_IfcAddress_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(8); - defs.push_back(IFC4X2_IfcBuildingElementType_type);defs.push_back(IFC4X2_IfcCivilElementType_type);defs.push_back(IFC4X2_IfcDistributionElementType_type);defs.push_back(IFC4X2_IfcElementAssemblyType_type);defs.push_back(IFC4X2_IfcElementComponentType_type);defs.push_back(IFC4X2_IfcFurnishingElementType_type);defs.push_back(IFC4X2_IfcGeographicElementType_type);defs.push_back(IFC4X2_IfcTransportElementType_type); - IFC4X2_IfcElementType_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcCaissonFoundationType_type); + IFC4X2_IfcDeepFoundationType_type->set_subtypes(defs); } { std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcDuctSilencer_type);defs.push_back(IFC4X2_IfcFilter_type);defs.push_back(IFC4X2_IfcInterceptor_type); - IFC4X2_IfcFlowTreatmentDevice_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcCartesianPoint_type);defs.push_back(IFC4X2_IfcPointOnCurve_type);defs.push_back(IFC4X2_IfcPointOnSurface_type); + IFC4X2_IfcPoint_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcCartesianPointList2D_type);defs.push_back(IFC4X2_IfcCartesianPointList3D_type); + IFC4X2_IfcCartesianPointList_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcCartesianTransformationOperator2D_type);defs.push_back(IFC4X2_IfcCartesianTransformationOperator3D_type); + IFC4X2_IfcCartesianTransformationOperator_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcCartesianTransformationOperator2DnonUniform_type); + IFC4X2_IfcCartesianTransformationOperator2D_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcCartesianTransformationOperator3DnonUniform_type); + IFC4X2_IfcCartesianTransformationOperator3D_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcCenterLineProfileDef_type); + IFC4X2_IfcArbitraryOpenProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcCircle_type);defs.push_back(IFC4X2_IfcEllipse_type); + IFC4X2_IfcConic_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcCircleHollowProfileDef_type); + IFC4X2_IfcCircleProfileDef_type->set_subtypes(defs); } { std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcReinforcementBarProperties_type);defs.push_back(IFC4X2_IfcSectionProperties_type);defs.push_back(IFC4X2_IfcSectionReinforcementProperties_type); - IFC4X2_IfcPreDefinedProperties_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcCircularArcSegment2D_type);defs.push_back(IFC4X2_IfcLineSegment2D_type);defs.push_back(IFC4X2_IfcTransitionCurveSegment2D_type); + IFC4X2_IfcCurveSegment2D_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcClassification_type);defs.push_back(IFC4X2_IfcDocumentInformation_type);defs.push_back(IFC4X2_IfcLibraryInformation_type); + IFC4X2_IfcExternalInformation_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4X2_IfcClassificationReference_type);defs.push_back(IFC4X2_IfcDocumentReference_type);defs.push_back(IFC4X2_IfcExternallyDefinedHatchStyle_type);defs.push_back(IFC4X2_IfcExternallyDefinedSurfaceStyle_type);defs.push_back(IFC4X2_IfcExternallyDefinedTextFont_type);defs.push_back(IFC4X2_IfcLibraryReference_type); + IFC4X2_IfcExternalReference_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcClosedShell_type);defs.push_back(IFC4X2_IfcOpenShell_type); + IFC4X2_IfcConnectedFaceSet_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcColourRgb_type); + IFC4X2_IfcColourSpecification_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(17); + defs.push_back(IFC4X2_IfcColourRgbList_type);defs.push_back(IFC4X2_IfcColourSpecification_type);defs.push_back(IFC4X2_IfcCurveStyleFont_type);defs.push_back(IFC4X2_IfcCurveStyleFontAndScaling_type);defs.push_back(IFC4X2_IfcCurveStyleFontPattern_type);defs.push_back(IFC4X2_IfcIndexedColourMap_type);defs.push_back(IFC4X2_IfcPreDefinedItem_type);defs.push_back(IFC4X2_IfcSurfaceStyleLighting_type);defs.push_back(IFC4X2_IfcSurfaceStyleRefraction_type);defs.push_back(IFC4X2_IfcSurfaceStyleShading_type);defs.push_back(IFC4X2_IfcSurfaceStyleWithTextures_type);defs.push_back(IFC4X2_IfcSurfaceTexture_type);defs.push_back(IFC4X2_IfcTextStyleForDefinedFont_type);defs.push_back(IFC4X2_IfcTextStyleTextModel_type);defs.push_back(IFC4X2_IfcTextureCoordinate_type);defs.push_back(IFC4X2_IfcTextureVertex_type);defs.push_back(IFC4X2_IfcTextureVertexList_type); + IFC4X2_IfcPresentationItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcColumnStandardCase_type); + IFC4X2_IfcColumn_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcComplexProperty_type);defs.push_back(IFC4X2_IfcSimpleProperty_type); + IFC4X2_IfcProperty_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcComplexPropertyTemplate_type);defs.push_back(IFC4X2_IfcSimplePropertyTemplate_type); + IFC4X2_IfcPropertyTemplate_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcCompositeCurveOnSurface_type); + IFC4X2_IfcCompositeCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcCompressor_type);defs.push_back(IFC4X2_IfcFan_type);defs.push_back(IFC4X2_IfcPump_type); + IFC4X2_IfcFlowMovingDevice_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcCompressorType_type);defs.push_back(IFC4X2_IfcFanType_type);defs.push_back(IFC4X2_IfcPumpType_type); + IFC4X2_IfcFlowMovingDeviceType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(7); + defs.push_back(IFC4X2_IfcConnectedFaceSet_type);defs.push_back(IFC4X2_IfcEdge_type);defs.push_back(IFC4X2_IfcFace_type);defs.push_back(IFC4X2_IfcFaceBound_type);defs.push_back(IFC4X2_IfcLoop_type);defs.push_back(IFC4X2_IfcPath_type);defs.push_back(IFC4X2_IfcVertex_type); + IFC4X2_IfcTopologicalRepresentationItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4X2_IfcConnectionCurveGeometry_type);defs.push_back(IFC4X2_IfcConnectionPointGeometry_type);defs.push_back(IFC4X2_IfcConnectionSurfaceGeometry_type);defs.push_back(IFC4X2_IfcConnectionVolumeGeometry_type); + IFC4X2_IfcConnectionGeometry_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcConnectionPointEccentricity_type); + IFC4X2_IfcConnectionPointGeometry_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4X2_IfcConstructionEquipmentResource_type);defs.push_back(IFC4X2_IfcConstructionMaterialResource_type);defs.push_back(IFC4X2_IfcConstructionProductResource_type);defs.push_back(IFC4X2_IfcCrewResource_type);defs.push_back(IFC4X2_IfcLaborResource_type);defs.push_back(IFC4X2_IfcSubContractResource_type); + IFC4X2_IfcConstructionResource_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4X2_IfcConstructionEquipmentResourceType_type);defs.push_back(IFC4X2_IfcConstructionMaterialResourceType_type);defs.push_back(IFC4X2_IfcConstructionProductResourceType_type);defs.push_back(IFC4X2_IfcCrewResourceType_type);defs.push_back(IFC4X2_IfcLaborResourceType_type);defs.push_back(IFC4X2_IfcSubContractResourceType_type); + IFC4X2_IfcConstructionResourceType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcConstructionResource_type); + IFC4X2_IfcResource_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcConstructionResourceType_type); + IFC4X2_IfcTypeResource_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcContext_type);defs.push_back(IFC4X2_IfcObject_type);defs.push_back(IFC4X2_IfcTypeObject_type); + IFC4X2_IfcObjectDefinition_type->set_subtypes(defs); } { std::vector defs; defs.reserve(3); @@ -13680,203 +13665,133 @@ IfcParse::schema_definition* IFC4X2_populate_schema() { } { std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcStructuralLoadCase_type); - IFC4X2_IfcStructuralLoadGroup_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcOpeningElement_type);defs.push_back(IFC4X2_IfcVoidingFeature_type); - IFC4X2_IfcFeatureElementSubtraction_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcConversionBasedUnitWithOffset_type); + IFC4X2_IfcConversionBasedUnit_type->set_subtypes(defs); } { std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcExtrudedAreaSolidTapered_type); - IFC4X2_IfcExtrudedAreaSolid_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcCostValue_type); + IFC4X2_IfcAppliedValue_type->set_subtypes(defs); } { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcCircularArcSegment2D_type);defs.push_back(IFC4X2_IfcLineSegment2D_type);defs.push_back(IFC4X2_IfcTransitionCurveSegment2D_type); - IFC4X2_IfcCurveSegment2D_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcIntersectionCurve_type);defs.push_back(IFC4X2_IfcSeamCurve_type); - IFC4X2_IfcSurfaceCurve_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcEventType_type);defs.push_back(IFC4X2_IfcProcedureType_type);defs.push_back(IFC4X2_IfcTaskType_type); - IFC4X2_IfcTypeProcess_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcOpeningStandardCase_type); - IFC4X2_IfcOpeningElement_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcDraughtingPreDefinedCurveFont_type); - IFC4X2_IfcPreDefinedCurveFont_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(7); - defs.push_back(IFC4X2_IfcBuildingElementPartType_type);defs.push_back(IFC4X2_IfcDiscreteAccessoryType_type);defs.push_back(IFC4X2_IfcFastenerType_type);defs.push_back(IFC4X2_IfcMechanicalFastenerType_type);defs.push_back(IFC4X2_IfcReinforcingElementType_type);defs.push_back(IFC4X2_IfcVibrationDamperType_type);defs.push_back(IFC4X2_IfcVibrationIsolatorType_type); - IFC4X2_IfcElementComponentType_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcBridgePart_type); - IFC4X2_IfcFacilityPart_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcProjectionElement_type); - IFC4X2_IfcFeatureElementAddition_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcIndexedTextureMap_type);defs.push_back(IFC4X2_IfcTextureCoordinateGenerator_type);defs.push_back(IFC4X2_IfcTextureMap_type); - IFC4X2_IfcTextureCoordinate_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcStructuralAction_type);defs.push_back(IFC4X2_IfcStructuralReaction_type); - IFC4X2_IfcStructuralActivity_type->set_subtypes(defs); + std::vector defs; defs.reserve(5); + defs.push_back(IFC4X2_IfcCsgSolid_type);defs.push_back(IFC4X2_IfcManifoldSolidBrep_type);defs.push_back(IFC4X2_IfcSectionedSolid_type);defs.push_back(IFC4X2_IfcSweptAreaSolid_type);defs.push_back(IFC4X2_IfcSweptDiskSolid_type); + IFC4X2_IfcSolidModel_type->set_subtypes(defs); } { std::vector defs; defs.reserve(4); - defs.push_back(IFC4X2_IfcLightSourceAmbient_type);defs.push_back(IFC4X2_IfcLightSourceDirectional_type);defs.push_back(IFC4X2_IfcLightSourceGoniometric_type);defs.push_back(IFC4X2_IfcLightSourcePositional_type); - IFC4X2_IfcLightSource_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcStructuralCurveMemberVarying_type); - IFC4X2_IfcStructuralCurveMember_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcGeometricRepresentationSubContext_type); - IFC4X2_IfcGeometricRepresentationContext_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcConstructionResourceType_type); - IFC4X2_IfcTypeResource_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcGeometricCurveSet_type); - IFC4X2_IfcGeometricSet_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcAdvancedFace_type); - IFC4X2_IfcFaceSurface_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(13); - defs.push_back(IFC4X2_IfcAirTerminalType_type);defs.push_back(IFC4X2_IfcAudioVisualApplianceType_type);defs.push_back(IFC4X2_IfcCommunicationsApplianceType_type);defs.push_back(IFC4X2_IfcElectricApplianceType_type);defs.push_back(IFC4X2_IfcFireSuppressionTerminalType_type);defs.push_back(IFC4X2_IfcLampType_type);defs.push_back(IFC4X2_IfcLightFixtureType_type);defs.push_back(IFC4X2_IfcMedicalDeviceType_type);defs.push_back(IFC4X2_IfcOutletType_type);defs.push_back(IFC4X2_IfcSanitaryTerminalType_type);defs.push_back(IFC4X2_IfcSpaceHeaterType_type);defs.push_back(IFC4X2_IfcStackTerminalType_type);defs.push_back(IFC4X2_IfcWasteTerminalType_type); - IFC4X2_IfcFlowTerminalType_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcStructuralLoadStatic_type);defs.push_back(IFC4X2_IfcSurfaceReinforcementArea_type); - IFC4X2_IfcStructuralLoadOrResult_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcGridPlacement_type);defs.push_back(IFC4X2_IfcLinearPlacement_type);defs.push_back(IFC4X2_IfcLocalPlacement_type); - IFC4X2_IfcObjectPlacement_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcSurfaceOfLinearExtrusion_type);defs.push_back(IFC4X2_IfcSurfaceOfRevolution_type); - IFC4X2_IfcSweptSurface_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcCurveStyle_type);defs.push_back(IFC4X2_IfcFillAreaStyle_type);defs.push_back(IFC4X2_IfcSurfaceStyle_type);defs.push_back(IFC4X2_IfcTextStyle_type); + IFC4X2_IfcPresentationStyle_type->set_subtypes(defs); } { std::vector defs; defs.reserve(4); - defs.push_back(IFC4X2_IfcBSplineSurface_type);defs.push_back(IFC4X2_IfcCurveBoundedPlane_type);defs.push_back(IFC4X2_IfcCurveBoundedSurface_type);defs.push_back(IFC4X2_IfcRectangularTrimmedSurface_type); - IFC4X2_IfcBoundedSurface_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcCylindricalSurface_type);defs.push_back(IFC4X2_IfcPlane_type);defs.push_back(IFC4X2_IfcSphericalSurface_type);defs.push_back(IFC4X2_IfcToroidalSurface_type); + IFC4X2_IfcElementarySurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(9); + defs.push_back(IFC4X2_IfcDistributionChamberElement_type);defs.push_back(IFC4X2_IfcEnergyConversionDevice_type);defs.push_back(IFC4X2_IfcFlowController_type);defs.push_back(IFC4X2_IfcFlowFitting_type);defs.push_back(IFC4X2_IfcFlowMovingDevice_type);defs.push_back(IFC4X2_IfcFlowSegment_type);defs.push_back(IFC4X2_IfcFlowStorageDevice_type);defs.push_back(IFC4X2_IfcFlowTerminal_type);defs.push_back(IFC4X2_IfcFlowTreatmentDevice_type); + IFC4X2_IfcDistributionFlowElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(9); + defs.push_back(IFC4X2_IfcDistributionChamberElementType_type);defs.push_back(IFC4X2_IfcEnergyConversionDeviceType_type);defs.push_back(IFC4X2_IfcFlowControllerType_type);defs.push_back(IFC4X2_IfcFlowFittingType_type);defs.push_back(IFC4X2_IfcFlowMovingDeviceType_type);defs.push_back(IFC4X2_IfcFlowSegmentType_type);defs.push_back(IFC4X2_IfcFlowStorageDeviceType_type);defs.push_back(IFC4X2_IfcFlowTerminalType_type);defs.push_back(IFC4X2_IfcFlowTreatmentDeviceType_type); + IFC4X2_IfcDistributionFlowElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcDistributionCircuit_type); + IFC4X2_IfcDistributionSystem_type->set_subtypes(defs); } { std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcElectricFlowStorageDevice_type);defs.push_back(IFC4X2_IfcTank_type); - IFC4X2_IfcFlowStorageDevice_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcDistributionControlElement_type);defs.push_back(IFC4X2_IfcDistributionFlowElement_type); + IFC4X2_IfcDistributionElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcDistributionControlElementType_type);defs.push_back(IFC4X2_IfcDistributionFlowElementType_type); + IFC4X2_IfcDistributionElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcDistributionPort_type); + IFC4X2_IfcPort_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4X2_IfcDoorLiningProperties_type);defs.push_back(IFC4X2_IfcDoorPanelProperties_type);defs.push_back(IFC4X2_IfcPermeableCoveringProperties_type);defs.push_back(IFC4X2_IfcReinforcementDefinitionProperties_type);defs.push_back(IFC4X2_IfcWindowLiningProperties_type);defs.push_back(IFC4X2_IfcWindowPanelProperties_type); + IFC4X2_IfcPreDefinedPropertySet_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcDoorStandardCase_type); + IFC4X2_IfcDoor_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4X2_IfcDoorStyle_type);defs.push_back(IFC4X2_IfcElementType_type);defs.push_back(IFC4X2_IfcSpatialElementType_type);defs.push_back(IFC4X2_IfcWindowStyle_type); + IFC4X2_IfcTypeProduct_type->set_subtypes(defs); } { std::vector defs; defs.reserve(1); defs.push_back(IFC4X2_IfcDraughtingPreDefinedColour_type); IFC4X2_IfcPreDefinedColour_type->set_subtypes(defs); } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcStructuralConnection_type);defs.push_back(IFC4X2_IfcStructuralMember_type); - IFC4X2_IfcStructuralItem_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(6); - defs.push_back(IFC4X2_IfcConstructionEquipmentResourceType_type);defs.push_back(IFC4X2_IfcConstructionMaterialResourceType_type);defs.push_back(IFC4X2_IfcConstructionProductResourceType_type);defs.push_back(IFC4X2_IfcCrewResourceType_type);defs.push_back(IFC4X2_IfcLaborResourceType_type);defs.push_back(IFC4X2_IfcSubContractResourceType_type); - IFC4X2_IfcConstructionResourceType_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(5); - defs.push_back(IFC4X2_IfcCableCarrierFitting_type);defs.push_back(IFC4X2_IfcCableFitting_type);defs.push_back(IFC4X2_IfcDuctFitting_type);defs.push_back(IFC4X2_IfcJunctionBox_type);defs.push_back(IFC4X2_IfcPipeFitting_type); - IFC4X2_IfcFlowFitting_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcAlignment2DHorizontalSegment_type);defs.push_back(IFC4X2_IfcAlignment2DVerticalSegment_type); - IFC4X2_IfcAlignment2DSegment_type->set_subtypes(defs); - } { std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcFaceOuterBound_type); - IFC4X2_IfcFaceBound_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcSweptDiskSolidPolygonal_type); - IFC4X2_IfcSweptDiskSolid_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcPolygonalFaceSet_type);defs.push_back(IFC4X2_IfcTriangulatedFaceSet_type); - IFC4X2_IfcTessellatedFaceSet_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcDraughtingPreDefinedCurveFont_type); + IFC4X2_IfcPreDefinedCurveFont_type->set_subtypes(defs); } { std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcPreDefinedColour_type);defs.push_back(IFC4X2_IfcPreDefinedCurveFont_type);defs.push_back(IFC4X2_IfcPreDefinedTextFont_type); - IFC4X2_IfcPreDefinedItem_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcDuctSilencer_type);defs.push_back(IFC4X2_IfcFilter_type);defs.push_back(IFC4X2_IfcInterceptor_type); + IFC4X2_IfcFlowTreatmentDevice_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcDuctSilencerType_type);defs.push_back(IFC4X2_IfcFilterType_type);defs.push_back(IFC4X2_IfcInterceptorType_type); + IFC4X2_IfcFlowTreatmentDeviceType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcEdgeCurve_type);defs.push_back(IFC4X2_IfcOrientedEdge_type);defs.push_back(IFC4X2_IfcSubedge_type); + IFC4X2_IfcEdge_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcEdgeLoop_type);defs.push_back(IFC4X2_IfcPolyLoop_type);defs.push_back(IFC4X2_IfcVertexLoop_type); + IFC4X2_IfcLoop_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcElectricFlowStorageDevice_type);defs.push_back(IFC4X2_IfcTank_type); + IFC4X2_IfcFlowStorageDevice_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcElectricFlowStorageDeviceType_type);defs.push_back(IFC4X2_IfcTankType_type); + IFC4X2_IfcFlowStorageDeviceType_type->set_subtypes(defs); } { std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcRelSpaceBoundary1stLevel_type); - IFC4X2_IfcRelSpaceBoundary_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcElementQuantity_type); + IFC4X2_IfcQuantitySet_type->set_subtypes(defs); } { - std::vector defs; defs.reserve(7); - defs.push_back(IFC4X2_IfcActuator_type);defs.push_back(IFC4X2_IfcAlarm_type);defs.push_back(IFC4X2_IfcController_type);defs.push_back(IFC4X2_IfcFlowInstrument_type);defs.push_back(IFC4X2_IfcProtectiveDeviceTrippingUnit_type);defs.push_back(IFC4X2_IfcSensor_type);defs.push_back(IFC4X2_IfcUnitaryControlElement_type); - IFC4X2_IfcDistributionControlElement_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcRelConnectsWithEccentricity_type); - IFC4X2_IfcRelConnectsStructuralMember_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcMirroredProfileDef_type); - IFC4X2_IfcDerivedProfileDef_type->set_subtypes(defs); + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcEvent_type);defs.push_back(IFC4X2_IfcProcedure_type);defs.push_back(IFC4X2_IfcTask_type); + IFC4X2_IfcProcess_type->set_subtypes(defs); } { std::vector defs; defs.reserve(5); - defs.push_back(IFC4X2_IfcStructuralLoadLinearForce_type);defs.push_back(IFC4X2_IfcStructuralLoadPlanarForce_type);defs.push_back(IFC4X2_IfcStructuralLoadSingleDisplacement_type);defs.push_back(IFC4X2_IfcStructuralLoadSingleForce_type);defs.push_back(IFC4X2_IfcStructuralLoadTemperature_type); - IFC4X2_IfcStructuralLoadStatic_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcEventTime_type);defs.push_back(IFC4X2_IfcLagTime_type);defs.push_back(IFC4X2_IfcResourceTime_type);defs.push_back(IFC4X2_IfcTaskTime_type);defs.push_back(IFC4X2_IfcWorkTime_type); + IFC4X2_IfcSchedulingTime_type->set_subtypes(defs); } { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcBoundaryNodeConditionWarping_type); - IFC4X2_IfcBoundaryNodeCondition_type->set_subtypes(defs); + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcEventType_type);defs.push_back(IFC4X2_IfcProcedureType_type);defs.push_back(IFC4X2_IfcTaskType_type); + IFC4X2_IfcTypeProcess_type->set_subtypes(defs); } { std::vector defs; defs.reserve(4); @@ -13885,18 +13800,128 @@ IfcParse::schema_definition* IFC4X2_populate_schema() { } { std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcSectionedSolidHorizontal_type); - IFC4X2_IfcSectionedSolid_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcExternalSpatialElement_type); + IFC4X2_IfcExternalSpatialStructureElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcExternalSpatialStructureElement_type);defs.push_back(IFC4X2_IfcSpatialStructureElement_type);defs.push_back(IFC4X2_IfcSpatialZone_type); + IFC4X2_IfcSpatialElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4X2_IfcExtrudedAreaSolid_type);defs.push_back(IFC4X2_IfcFixedReferenceSweptAreaSolid_type);defs.push_back(IFC4X2_IfcRevolvedAreaSolid_type);defs.push_back(IFC4X2_IfcSurfaceCurveSweptAreaSolid_type); + IFC4X2_IfcSweptAreaSolid_type->set_subtypes(defs); } { std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcCircleHollowProfileDef_type); - IFC4X2_IfcCircleProfileDef_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcExtrudedAreaSolidTapered_type); + IFC4X2_IfcExtrudedAreaSolid_type->set_subtypes(defs); } { - std::vector defs; defs.reserve(16); - defs.push_back(IFC4X2_IfcRelConnectsElements_type);defs.push_back(IFC4X2_IfcRelConnectsPortToElement_type);defs.push_back(IFC4X2_IfcRelConnectsPorts_type);defs.push_back(IFC4X2_IfcRelConnectsStructuralActivity_type);defs.push_back(IFC4X2_IfcRelConnectsStructuralMember_type);defs.push_back(IFC4X2_IfcRelContainedInSpatialStructure_type);defs.push_back(IFC4X2_IfcRelCoversBldgElements_type);defs.push_back(IFC4X2_IfcRelCoversSpaces_type);defs.push_back(IFC4X2_IfcRelFillsElement_type);defs.push_back(IFC4X2_IfcRelFlowControlElements_type);defs.push_back(IFC4X2_IfcRelInterferesElements_type);defs.push_back(IFC4X2_IfcRelPositions_type);defs.push_back(IFC4X2_IfcRelReferencedInSpatialStructure_type);defs.push_back(IFC4X2_IfcRelSequence_type);defs.push_back(IFC4X2_IfcRelServicesBuildings_type);defs.push_back(IFC4X2_IfcRelSpaceBoundary_type); - IFC4X2_IfcRelConnects_type->set_subtypes(defs); + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcFaceOuterBound_type); + IFC4X2_IfcFaceBound_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcFaceSurface_type); + IFC4X2_IfcFace_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcFacetedBrepWithVoids_type); + IFC4X2_IfcFacetedBrep_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcFailureConnectionCondition_type);defs.push_back(IFC4X2_IfcSlippageConnectionCondition_type); + IFC4X2_IfcStructuralConnectionCondition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcFeatureElementAddition_type);defs.push_back(IFC4X2_IfcFeatureElementSubtraction_type);defs.push_back(IFC4X2_IfcSurfaceFeature_type); + IFC4X2_IfcFeatureElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcFurniture_type);defs.push_back(IFC4X2_IfcSystemFurnitureElement_type); + IFC4X2_IfcFurnishingElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcFurnitureType_type);defs.push_back(IFC4X2_IfcSystemFurnitureElementType_type); + IFC4X2_IfcFurnishingElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcGeometricCurveSet_type); + IFC4X2_IfcGeometricSet_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcGeometricRepresentationContext_type); + IFC4X2_IfcRepresentationContext_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4X2_IfcGeometricRepresentationItem_type);defs.push_back(IFC4X2_IfcMappedItem_type);defs.push_back(IFC4X2_IfcStyledItem_type);defs.push_back(IFC4X2_IfcTopologicalRepresentationItem_type); + IFC4X2_IfcRepresentationItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcGeometricRepresentationSubContext_type); + IFC4X2_IfcGeometricRepresentationContext_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcGrid_type);defs.push_back(IFC4X2_IfcLinearPositioningElement_type);defs.push_back(IFC4X2_IfcReferent_type); + IFC4X2_IfcPositioningElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcGridPlacement_type);defs.push_back(IFC4X2_IfcLinearPlacement_type);defs.push_back(IFC4X2_IfcLocalPlacement_type); + IFC4X2_IfcObjectPlacement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcIndexedPolygonalFace_type);defs.push_back(IFC4X2_IfcTessellatedFaceSet_type); + IFC4X2_IfcTessellatedItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcIndexedPolygonalFaceWithVoids_type); + IFC4X2_IfcIndexedPolygonalFace_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcIndexedTextureMap_type);defs.push_back(IFC4X2_IfcTextureCoordinateGenerator_type);defs.push_back(IFC4X2_IfcTextureMap_type); + IFC4X2_IfcTextureCoordinate_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcIndexedTriangleTextureMap_type); + IFC4X2_IfcIndexedTextureMap_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcIntersectionCurve_type);defs.push_back(IFC4X2_IfcSeamCurve_type); + IFC4X2_IfcSurfaceCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcIrregularTimeSeries_type);defs.push_back(IFC4X2_IfcRegularTimeSeries_type); + IFC4X2_IfcTimeSeries_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(4); + defs.push_back(IFC4X2_IfcLightSourceAmbient_type);defs.push_back(IFC4X2_IfcLightSourceDirectional_type);defs.push_back(IFC4X2_IfcLightSourceGoniometric_type);defs.push_back(IFC4X2_IfcLightSourcePositional_type); + IFC4X2_IfcLightSource_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcLightSourceSpot_type); + IFC4X2_IfcLightSourcePositional_type->set_subtypes(defs); } { std::vector defs; defs.reserve(1); @@ -13910,8 +13935,183 @@ IfcParse::schema_definition* IFC4X2_populate_schema() { } { std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcElectricFlowStorageDeviceType_type);defs.push_back(IFC4X2_IfcTankType_type); - IFC4X2_IfcFlowStorageDeviceType_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcMaterialDefinitionRepresentation_type);defs.push_back(IFC4X2_IfcProductDefinitionShape_type); + IFC4X2_IfcProductRepresentation_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcMaterialLayerSetUsage_type);defs.push_back(IFC4X2_IfcMaterialProfileSetUsage_type); + IFC4X2_IfcMaterialUsageDefinition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcMaterialLayerWithOffsets_type); + IFC4X2_IfcMaterialLayer_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcMaterialProfileSetUsageTapering_type); + IFC4X2_IfcMaterialProfileSetUsage_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcMaterialProfileWithOffsets_type); + IFC4X2_IfcMaterialProfile_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcMaterialProperties_type);defs.push_back(IFC4X2_IfcProfileProperties_type); + IFC4X2_IfcExtendedProperties_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcMemberStandardCase_type); + IFC4X2_IfcMember_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcMetric_type);defs.push_back(IFC4X2_IfcObjective_type); + IFC4X2_IfcConstraint_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcMirroredProfileDef_type); + IFC4X2_IfcDerivedProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcObjectDefinition_type);defs.push_back(IFC4X2_IfcPropertyDefinition_type);defs.push_back(IFC4X2_IfcRelationship_type); + IFC4X2_IfcRoot_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcOccupant_type); + IFC4X2_IfcActor_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcOffsetCurve2D_type);defs.push_back(IFC4X2_IfcOffsetCurve3D_type);defs.push_back(IFC4X2_IfcOffsetCurveByDistances_type); + IFC4X2_IfcOffsetCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcOpeningElement_type);defs.push_back(IFC4X2_IfcVoidingFeature_type); + IFC4X2_IfcFeatureElementSubtraction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcOpeningStandardCase_type); + IFC4X2_IfcOpeningElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcOuterBoundaryCurve_type); + IFC4X2_IfcBoundaryCurve_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcPhysicalComplexQuantity_type);defs.push_back(IFC4X2_IfcPhysicalSimpleQuantity_type); + IFC4X2_IfcPhysicalQuantity_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcPlanarBox_type); + IFC4X2_IfcPlanarExtent_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcPlateStandardCase_type); + IFC4X2_IfcPlate_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcPolygonalFaceSet_type);defs.push_back(IFC4X2_IfcTriangulatedFaceSet_type); + IFC4X2_IfcTessellatedFaceSet_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcPostalAddress_type);defs.push_back(IFC4X2_IfcTelecomAddress_type); + IFC4X2_IfcAddress_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcPreDefinedColour_type);defs.push_back(IFC4X2_IfcPreDefinedCurveFont_type);defs.push_back(IFC4X2_IfcPreDefinedTextFont_type); + IFC4X2_IfcPreDefinedItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcPreDefinedPropertySet_type);defs.push_back(IFC4X2_IfcPropertySet_type);defs.push_back(IFC4X2_IfcQuantitySet_type); + IFC4X2_IfcPropertySetDefinition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcPresentationLayerWithStyle_type); + IFC4X2_IfcPresentationLayerAssignment_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcProject_type);defs.push_back(IFC4X2_IfcProjectLibrary_type); + IFC4X2_IfcContext_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcProjectedCRS_type); + IFC4X2_IfcCoordinateReferenceSystem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcProjectionElement_type); + IFC4X2_IfcFeatureElementAddition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4X2_IfcPropertyBoundedValue_type);defs.push_back(IFC4X2_IfcPropertyEnumeratedValue_type);defs.push_back(IFC4X2_IfcPropertyListValue_type);defs.push_back(IFC4X2_IfcPropertyReferenceValue_type);defs.push_back(IFC4X2_IfcPropertySingleValue_type);defs.push_back(IFC4X2_IfcPropertyTableValue_type); + IFC4X2_IfcSimpleProperty_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcPropertySetDefinition_type);defs.push_back(IFC4X2_IfcPropertyTemplateDefinition_type); + IFC4X2_IfcPropertyDefinition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcPropertySetTemplate_type);defs.push_back(IFC4X2_IfcPropertyTemplate_type); + IFC4X2_IfcPropertyTemplateDefinition_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4X2_IfcQuantityArea_type);defs.push_back(IFC4X2_IfcQuantityCount_type);defs.push_back(IFC4X2_IfcQuantityLength_type);defs.push_back(IFC4X2_IfcQuantityTime_type);defs.push_back(IFC4X2_IfcQuantityVolume_type);defs.push_back(IFC4X2_IfcQuantityWeight_type); + IFC4X2_IfcPhysicalSimpleQuantity_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcRationalBSplineCurveWithKnots_type); + IFC4X2_IfcBSplineCurveWithKnots_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcRationalBSplineSurfaceWithKnots_type); + IFC4X2_IfcBSplineSurfaceWithKnots_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcRectangleHollowProfileDef_type);defs.push_back(IFC4X2_IfcRoundedRectangleProfileDef_type); + IFC4X2_IfcRectangleProfileDef_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcReinforcementBarProperties_type);defs.push_back(IFC4X2_IfcSectionProperties_type);defs.push_back(IFC4X2_IfcSectionReinforcementProperties_type); + IFC4X2_IfcPreDefinedProperties_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4X2_IfcReinforcingBar_type);defs.push_back(IFC4X2_IfcReinforcingMesh_type);defs.push_back(IFC4X2_IfcTendon_type);defs.push_back(IFC4X2_IfcTendonAnchor_type);defs.push_back(IFC4X2_IfcTendonConduit_type); + IFC4X2_IfcReinforcingElement_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4X2_IfcReinforcingBarType_type);defs.push_back(IFC4X2_IfcReinforcingMeshType_type);defs.push_back(IFC4X2_IfcTendonAnchorType_type);defs.push_back(IFC4X2_IfcTendonConduitType_type);defs.push_back(IFC4X2_IfcTendonType_type); + IFC4X2_IfcReinforcingElementType_type->set_subtypes(defs); } { std::vector defs; defs.reserve(4); @@ -13924,19 +14124,34 @@ IfcParse::schema_definition* IFC4X2_populate_schema() { IFC4X2_IfcRelationship_type->set_subtypes(defs); } { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcStructuralCurveAction_type);defs.push_back(IFC4X2_IfcStructuralPointAction_type);defs.push_back(IFC4X2_IfcStructuralSurfaceAction_type); - IFC4X2_IfcStructuralAction_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(23); - defs.push_back(IFC4X2_IfcBeamType_type);defs.push_back(IFC4X2_IfcBearingType_type);defs.push_back(IFC4X2_IfcBuildingElementProxyType_type);defs.push_back(IFC4X2_IfcChimneyType_type);defs.push_back(IFC4X2_IfcColumnType_type);defs.push_back(IFC4X2_IfcCoveringType_type);defs.push_back(IFC4X2_IfcCurtainWallType_type);defs.push_back(IFC4X2_IfcDeepFoundationType_type);defs.push_back(IFC4X2_IfcDoorType_type);defs.push_back(IFC4X2_IfcFootingType_type);defs.push_back(IFC4X2_IfcMemberType_type);defs.push_back(IFC4X2_IfcPileType_type);defs.push_back(IFC4X2_IfcPlateType_type);defs.push_back(IFC4X2_IfcRailingType_type);defs.push_back(IFC4X2_IfcRampFlightType_type);defs.push_back(IFC4X2_IfcRampType_type);defs.push_back(IFC4X2_IfcRoofType_type);defs.push_back(IFC4X2_IfcShadingDeviceType_type);defs.push_back(IFC4X2_IfcSlabType_type);defs.push_back(IFC4X2_IfcStairFlightType_type);defs.push_back(IFC4X2_IfcStairType_type);defs.push_back(IFC4X2_IfcWallType_type);defs.push_back(IFC4X2_IfcWindowType_type); - IFC4X2_IfcBuildingElementType_type->set_subtypes(defs); + std::vector defs; defs.reserve(6); + defs.push_back(IFC4X2_IfcRelAssignsToActor_type);defs.push_back(IFC4X2_IfcRelAssignsToControl_type);defs.push_back(IFC4X2_IfcRelAssignsToGroup_type);defs.push_back(IFC4X2_IfcRelAssignsToProcess_type);defs.push_back(IFC4X2_IfcRelAssignsToProduct_type);defs.push_back(IFC4X2_IfcRelAssignsToResource_type); + IFC4X2_IfcRelAssigns_type->set_subtypes(defs); } { std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcElementQuantity_type); - IFC4X2_IfcQuantitySet_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcRelAssignsToGroupByFactor_type); + IFC4X2_IfcRelAssignsToGroup_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(6); + defs.push_back(IFC4X2_IfcRelAssociatesApproval_type);defs.push_back(IFC4X2_IfcRelAssociatesClassification_type);defs.push_back(IFC4X2_IfcRelAssociatesConstraint_type);defs.push_back(IFC4X2_IfcRelAssociatesDocument_type);defs.push_back(IFC4X2_IfcRelAssociatesLibrary_type);defs.push_back(IFC4X2_IfcRelAssociatesMaterial_type); + IFC4X2_IfcRelAssociates_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(16); + defs.push_back(IFC4X2_IfcRelConnectsElements_type);defs.push_back(IFC4X2_IfcRelConnectsPortToElement_type);defs.push_back(IFC4X2_IfcRelConnectsPorts_type);defs.push_back(IFC4X2_IfcRelConnectsStructuralActivity_type);defs.push_back(IFC4X2_IfcRelConnectsStructuralMember_type);defs.push_back(IFC4X2_IfcRelContainedInSpatialStructure_type);defs.push_back(IFC4X2_IfcRelCoversBldgElements_type);defs.push_back(IFC4X2_IfcRelCoversSpaces_type);defs.push_back(IFC4X2_IfcRelFillsElement_type);defs.push_back(IFC4X2_IfcRelFlowControlElements_type);defs.push_back(IFC4X2_IfcRelInterferesElements_type);defs.push_back(IFC4X2_IfcRelPositions_type);defs.push_back(IFC4X2_IfcRelReferencedInSpatialStructure_type);defs.push_back(IFC4X2_IfcRelSequence_type);defs.push_back(IFC4X2_IfcRelServicesBuildings_type);defs.push_back(IFC4X2_IfcRelSpaceBoundary_type); + IFC4X2_IfcRelConnects_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcRelConnectsPathElements_type);defs.push_back(IFC4X2_IfcRelConnectsWithRealizingElements_type); + IFC4X2_IfcRelConnectsElements_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcRelConnectsWithEccentricity_type); + IFC4X2_IfcRelConnectsStructuralMember_type->set_subtypes(defs); } { std::vector defs; defs.reserve(4); @@ -13944,339 +14159,14 @@ IfcParse::schema_definition* IFC4X2_populate_schema() { IFC4X2_IfcRelDefines_type->set_subtypes(defs); } { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcIndexedPolygonalFace_type);defs.push_back(IFC4X2_IfcTessellatedFaceSet_type); - IFC4X2_IfcTessellatedItem_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcMetric_type);defs.push_back(IFC4X2_IfcObjective_type); - IFC4X2_IfcConstraint_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcShapeRepresentation_type);defs.push_back(IFC4X2_IfcTopologyRepresentation_type); - IFC4X2_IfcShapeModel_type->set_subtypes(defs); + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcRelSpaceBoundary1stLevel_type); + IFC4X2_IfcRelSpaceBoundary_type->set_subtypes(defs); } { std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcAdvancedBrepWithVoids_type); - IFC4X2_IfcAdvancedBrep_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(7); - defs.push_back(IFC4X2_IfcConnectedFaceSet_type);defs.push_back(IFC4X2_IfcEdge_type);defs.push_back(IFC4X2_IfcFace_type);defs.push_back(IFC4X2_IfcFaceBound_type);defs.push_back(IFC4X2_IfcLoop_type);defs.push_back(IFC4X2_IfcPath_type);defs.push_back(IFC4X2_IfcVertex_type); - IFC4X2_IfcTopologicalRepresentationItem_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcExternalSpatialElement_type); - IFC4X2_IfcExternalSpatialStructureElement_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(17); - defs.push_back(IFC4X2_IfcColourRgbList_type);defs.push_back(IFC4X2_IfcColourSpecification_type);defs.push_back(IFC4X2_IfcCurveStyleFont_type);defs.push_back(IFC4X2_IfcCurveStyleFontAndScaling_type);defs.push_back(IFC4X2_IfcCurveStyleFontPattern_type);defs.push_back(IFC4X2_IfcIndexedColourMap_type);defs.push_back(IFC4X2_IfcPreDefinedItem_type);defs.push_back(IFC4X2_IfcSurfaceStyleLighting_type);defs.push_back(IFC4X2_IfcSurfaceStyleRefraction_type);defs.push_back(IFC4X2_IfcSurfaceStyleShading_type);defs.push_back(IFC4X2_IfcSurfaceStyleWithTextures_type);defs.push_back(IFC4X2_IfcSurfaceTexture_type);defs.push_back(IFC4X2_IfcTextStyleForDefinedFont_type);defs.push_back(IFC4X2_IfcTextStyleTextModel_type);defs.push_back(IFC4X2_IfcTextureCoordinate_type);defs.push_back(IFC4X2_IfcTextureVertex_type);defs.push_back(IFC4X2_IfcTextureVertexList_type); - IFC4X2_IfcPresentationItem_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcTaskTimeRecurring_type); - IFC4X2_IfcTaskTime_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcEdgeLoop_type);defs.push_back(IFC4X2_IfcPolyLoop_type);defs.push_back(IFC4X2_IfcVertexLoop_type); - IFC4X2_IfcLoop_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcTypeProcess_type);defs.push_back(IFC4X2_IfcTypeProduct_type);defs.push_back(IFC4X2_IfcTypeResource_type); - IFC4X2_IfcTypeObject_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcClosedShell_type);defs.push_back(IFC4X2_IfcOpenShell_type); - IFC4X2_IfcConnectedFaceSet_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcSurfaceStyleRendering_type); - IFC4X2_IfcSurfaceStyleShading_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcMaterialLayerSetUsage_type);defs.push_back(IFC4X2_IfcMaterialProfileSetUsage_type); - IFC4X2_IfcMaterialUsageDefinition_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcGrid_type);defs.push_back(IFC4X2_IfcLinearPositioningElement_type);defs.push_back(IFC4X2_IfcReferent_type); - IFC4X2_IfcPositioningElement_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(8); - defs.push_back(IFC4X2_IfcAnnotation_type);defs.push_back(IFC4X2_IfcElement_type);defs.push_back(IFC4X2_IfcPort_type);defs.push_back(IFC4X2_IfcPositioningElement_type);defs.push_back(IFC4X2_IfcProxy_type);defs.push_back(IFC4X2_IfcSpatialElement_type);defs.push_back(IFC4X2_IfcStructuralActivity_type);defs.push_back(IFC4X2_IfcStructuralItem_type); - IFC4X2_IfcProduct_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(10); - defs.push_back(IFC4X2_IfcBuildingElement_type);defs.push_back(IFC4X2_IfcCivilElement_type);defs.push_back(IFC4X2_IfcDistributionElement_type);defs.push_back(IFC4X2_IfcElementAssembly_type);defs.push_back(IFC4X2_IfcElementComponent_type);defs.push_back(IFC4X2_IfcFeatureElement_type);defs.push_back(IFC4X2_IfcFurnishingElement_type);defs.push_back(IFC4X2_IfcGeographicElement_type);defs.push_back(IFC4X2_IfcTransportElement_type);defs.push_back(IFC4X2_IfcVirtualElement_type); - IFC4X2_IfcElement_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcGeometricRepresentationContext_type); - IFC4X2_IfcRepresentationContext_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcLightSourceSpot_type); - IFC4X2_IfcLightSourcePositional_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcColumnStandardCase_type); - IFC4X2_IfcColumn_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcContext_type);defs.push_back(IFC4X2_IfcObject_type);defs.push_back(IFC4X2_IfcTypeObject_type); - IFC4X2_IfcObjectDefinition_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcCartesianTransformationOperator2D_type);defs.push_back(IFC4X2_IfcCartesianTransformationOperator3D_type); - IFC4X2_IfcCartesianTransformationOperator_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(4); - defs.push_back(IFC4X2_IfcCylindricalSurface_type);defs.push_back(IFC4X2_IfcPlane_type);defs.push_back(IFC4X2_IfcSphericalSurface_type);defs.push_back(IFC4X2_IfcToroidalSurface_type); - IFC4X2_IfcElementarySurface_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(5); - defs.push_back(IFC4X2_IfcAsset_type);defs.push_back(IFC4X2_IfcInventory_type);defs.push_back(IFC4X2_IfcStructuralLoadGroup_type);defs.push_back(IFC4X2_IfcStructuralResultGroup_type);defs.push_back(IFC4X2_IfcSystem_type); - IFC4X2_IfcGroup_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcSpatialStructureElementType_type);defs.push_back(IFC4X2_IfcSpatialZoneType_type); - IFC4X2_IfcSpatialElementType_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcEdgeCurve_type);defs.push_back(IFC4X2_IfcOrientedEdge_type);defs.push_back(IFC4X2_IfcSubedge_type); - IFC4X2_IfcEdge_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(7); - defs.push_back(IFC4X2_IfcActuatorType_type);defs.push_back(IFC4X2_IfcAlarmType_type);defs.push_back(IFC4X2_IfcControllerType_type);defs.push_back(IFC4X2_IfcFlowInstrumentType_type);defs.push_back(IFC4X2_IfcProtectiveDeviceTrippingUnitType_type);defs.push_back(IFC4X2_IfcSensorType_type);defs.push_back(IFC4X2_IfcUnitaryControlElementType_type); - IFC4X2_IfcDistributionControlElementType_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(4); - defs.push_back(IFC4X2_IfcCurveStyle_type);defs.push_back(IFC4X2_IfcFillAreaStyle_type);defs.push_back(IFC4X2_IfcSurfaceStyle_type);defs.push_back(IFC4X2_IfcTextStyle_type); - IFC4X2_IfcPresentationStyle_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(5); - defs.push_back(IFC4X2_IfcReinforcingBar_type);defs.push_back(IFC4X2_IfcReinforcingMesh_type);defs.push_back(IFC4X2_IfcTendon_type);defs.push_back(IFC4X2_IfcTendonAnchor_type);defs.push_back(IFC4X2_IfcTendonConduit_type); - IFC4X2_IfcReinforcingElement_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcBooleanClippingResult_type); - IFC4X2_IfcBooleanResult_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcPropertySetTemplate_type);defs.push_back(IFC4X2_IfcPropertyTemplate_type); - IFC4X2_IfcPropertyTemplateDefinition_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(9); - defs.push_back(IFC4X2_IfcDistributionChamberElementType_type);defs.push_back(IFC4X2_IfcEnergyConversionDeviceType_type);defs.push_back(IFC4X2_IfcFlowControllerType_type);defs.push_back(IFC4X2_IfcFlowFittingType_type);defs.push_back(IFC4X2_IfcFlowMovingDeviceType_type);defs.push_back(IFC4X2_IfcFlowSegmentType_type);defs.push_back(IFC4X2_IfcFlowStorageDeviceType_type);defs.push_back(IFC4X2_IfcFlowTerminalType_type);defs.push_back(IFC4X2_IfcFlowTreatmentDeviceType_type); - IFC4X2_IfcDistributionFlowElementType_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(4); - defs.push_back(IFC4X2_IfcConnectionCurveGeometry_type);defs.push_back(IFC4X2_IfcConnectionPointGeometry_type);defs.push_back(IFC4X2_IfcConnectionSurfaceGeometry_type);defs.push_back(IFC4X2_IfcConnectionVolumeGeometry_type); - IFC4X2_IfcConnectionGeometry_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcProject_type);defs.push_back(IFC4X2_IfcProjectLibrary_type); - IFC4X2_IfcContext_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcMaterialProfileWithOffsets_type); - IFC4X2_IfcMaterialProfile_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(6); - defs.push_back(IFC4X2_IfcConstructionEquipmentResource_type);defs.push_back(IFC4X2_IfcConstructionMaterialResource_type);defs.push_back(IFC4X2_IfcConstructionProductResource_type);defs.push_back(IFC4X2_IfcCrewResource_type);defs.push_back(IFC4X2_IfcLaborResource_type);defs.push_back(IFC4X2_IfcSubContractResource_type); - IFC4X2_IfcConstructionResource_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(6); - defs.push_back(IFC4X2_IfcRelAssignsToActor_type);defs.push_back(IFC4X2_IfcRelAssignsToControl_type);defs.push_back(IFC4X2_IfcRelAssignsToGroup_type);defs.push_back(IFC4X2_IfcRelAssignsToProcess_type);defs.push_back(IFC4X2_IfcRelAssignsToProduct_type);defs.push_back(IFC4X2_IfcRelAssignsToResource_type); - IFC4X2_IfcRelAssigns_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcFeatureElementAddition_type);defs.push_back(IFC4X2_IfcFeatureElementSubtraction_type);defs.push_back(IFC4X2_IfcSurfaceFeature_type); - IFC4X2_IfcFeatureElement_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcDistributionPort_type); - IFC4X2_IfcPort_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcPreDefinedPropertySet_type);defs.push_back(IFC4X2_IfcPropertySet_type);defs.push_back(IFC4X2_IfcQuantitySet_type); - IFC4X2_IfcPropertySetDefinition_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcConstructionResource_type); - IFC4X2_IfcResource_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcCartesianTransformationOperator2DnonUniform_type); - IFC4X2_IfcCartesianTransformationOperator2D_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(22); - defs.push_back(IFC4X2_IfcBeam_type);defs.push_back(IFC4X2_IfcBearing_type);defs.push_back(IFC4X2_IfcBuildingElementProxy_type);defs.push_back(IFC4X2_IfcChimney_type);defs.push_back(IFC4X2_IfcColumn_type);defs.push_back(IFC4X2_IfcCovering_type);defs.push_back(IFC4X2_IfcCurtainWall_type);defs.push_back(IFC4X2_IfcDeepFoundation_type);defs.push_back(IFC4X2_IfcDoor_type);defs.push_back(IFC4X2_IfcFooting_type);defs.push_back(IFC4X2_IfcMember_type);defs.push_back(IFC4X2_IfcPlate_type);defs.push_back(IFC4X2_IfcRailing_type);defs.push_back(IFC4X2_IfcRamp_type);defs.push_back(IFC4X2_IfcRampFlight_type);defs.push_back(IFC4X2_IfcRoof_type);defs.push_back(IFC4X2_IfcShadingDevice_type);defs.push_back(IFC4X2_IfcSlab_type);defs.push_back(IFC4X2_IfcStair_type);defs.push_back(IFC4X2_IfcStairFlight_type);defs.push_back(IFC4X2_IfcWall_type);defs.push_back(IFC4X2_IfcWindow_type); - IFC4X2_IfcBuildingElement_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcMaterialProfileSetUsageTapering_type); - IFC4X2_IfcMaterialProfileSetUsage_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcPhysicalComplexQuantity_type);defs.push_back(IFC4X2_IfcPhysicalSimpleQuantity_type); - IFC4X2_IfcPhysicalQuantity_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(11); - defs.push_back(IFC4X2_IfcAsymmetricIShapeProfileDef_type);defs.push_back(IFC4X2_IfcCShapeProfileDef_type);defs.push_back(IFC4X2_IfcCircleProfileDef_type);defs.push_back(IFC4X2_IfcEllipseProfileDef_type);defs.push_back(IFC4X2_IfcIShapeProfileDef_type);defs.push_back(IFC4X2_IfcLShapeProfileDef_type);defs.push_back(IFC4X2_IfcRectangleProfileDef_type);defs.push_back(IFC4X2_IfcTShapeProfileDef_type);defs.push_back(IFC4X2_IfcTrapeziumProfileDef_type);defs.push_back(IFC4X2_IfcUShapeProfileDef_type);defs.push_back(IFC4X2_IfcZShapeProfileDef_type); - IFC4X2_IfcParameterizedProfileDef_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(6); - defs.push_back(IFC4X2_IfcPropertyBoundedValue_type);defs.push_back(IFC4X2_IfcPropertyEnumeratedValue_type);defs.push_back(IFC4X2_IfcPropertyListValue_type);defs.push_back(IFC4X2_IfcPropertyReferenceValue_type);defs.push_back(IFC4X2_IfcPropertySingleValue_type);defs.push_back(IFC4X2_IfcPropertyTableValue_type); - IFC4X2_IfcSimpleProperty_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(4); - defs.push_back(IFC4X2_IfcCableCarrierSegmentType_type);defs.push_back(IFC4X2_IfcCableSegmentType_type);defs.push_back(IFC4X2_IfcDuctSegmentType_type);defs.push_back(IFC4X2_IfcPipeSegmentType_type); - IFC4X2_IfcFlowSegmentType_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(5); - defs.push_back(IFC4X2_IfcEventTime_type);defs.push_back(IFC4X2_IfcLagTime_type);defs.push_back(IFC4X2_IfcResourceTime_type);defs.push_back(IFC4X2_IfcTaskTime_type);defs.push_back(IFC4X2_IfcWorkTime_type); - IFC4X2_IfcSchedulingTime_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcBlobTexture_type);defs.push_back(IFC4X2_IfcImageTexture_type);defs.push_back(IFC4X2_IfcPixelTexture_type); - IFC4X2_IfcSurfaceTexture_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcStructuralCurveReaction_type);defs.push_back(IFC4X2_IfcStructuralPointReaction_type);defs.push_back(IFC4X2_IfcStructuralSurfaceReaction_type); - IFC4X2_IfcStructuralReaction_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcWindowStandardCase_type); - IFC4X2_IfcWindow_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(4); - defs.push_back(IFC4X2_IfcGeometricRepresentationItem_type);defs.push_back(IFC4X2_IfcMappedItem_type);defs.push_back(IFC4X2_IfcStyledItem_type);defs.push_back(IFC4X2_IfcTopologicalRepresentationItem_type); - IFC4X2_IfcRepresentationItem_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcOccupant_type); - IFC4X2_IfcActor_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcFailureConnectionCondition_type);defs.push_back(IFC4X2_IfcSlippageConnectionCondition_type); - IFC4X2_IfcStructuralConnectionCondition_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcVertexPoint_type); - IFC4X2_IfcVertex_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcFurniture_type);defs.push_back(IFC4X2_IfcSystemFurnitureElement_type); - IFC4X2_IfcFurnishingElement_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcPropertySetDefinition_type);defs.push_back(IFC4X2_IfcPropertyTemplateDefinition_type); - IFC4X2_IfcPropertyDefinition_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcMemberStandardCase_type); - IFC4X2_IfcMember_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcRevolvedAreaSolidTapered_type); - IFC4X2_IfcRevolvedAreaSolid_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcPlateStandardCase_type); - IFC4X2_IfcPlate_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcIndexedPolygonalFaceWithVoids_type); - IFC4X2_IfcIndexedPolygonalFace_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcColourRgb_type); - IFC4X2_IfcColourSpecification_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcTextStyleFontModel_type); - IFC4X2_IfcPreDefinedTextFont_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcBeamStandardCase_type); - IFC4X2_IfcBeam_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcArbitraryProfileDefWithVoids_type); - IFC4X2_IfcArbitraryClosedProfileDef_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcCompositeCurveOnSurface_type); - IFC4X2_IfcCompositeCurve_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcTextLiteralWithExtent_type); - IFC4X2_IfcTextLiteral_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcRelSpaceBoundary2ndLevel_type); + IFC4X2_IfcRelSpaceBoundary1stLevel_type->set_subtypes(defs); } { std::vector defs; defs.reserve(1); @@ -14285,53 +14175,93 @@ IfcParse::schema_definition* IFC4X2_populate_schema() { } { std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcCartesianTransformationOperator3DnonUniform_type); - IFC4X2_IfcCartesianTransformationOperator3D_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(5); - defs.push_back(IFC4X2_IfcBlock_type);defs.push_back(IFC4X2_IfcRectangularPyramid_type);defs.push_back(IFC4X2_IfcRightCircularCone_type);defs.push_back(IFC4X2_IfcRightCircularCylinder_type);defs.push_back(IFC4X2_IfcSphere_type); - IFC4X2_IfcCsgPrimitive3D_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcRevolvedAreaSolidTapered_type); + IFC4X2_IfcRevolvedAreaSolid_type->set_subtypes(defs); } { std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcBSplineCurveWithKnots_type); - IFC4X2_IfcBSplineCurve_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcSectionedSolidHorizontal_type); + IFC4X2_IfcSectionedSolid_type->set_subtypes(defs); } { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcFaceSurface_type); - IFC4X2_IfcFace_type->set_subtypes(defs); + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcShapeModel_type);defs.push_back(IFC4X2_IfcStyleModel_type); + IFC4X2_IfcRepresentation_type->set_subtypes(defs); } { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcEvent_type);defs.push_back(IFC4X2_IfcProcedure_type);defs.push_back(IFC4X2_IfcTask_type); - IFC4X2_IfcProcess_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcPresentationLayerWithStyle_type); - IFC4X2_IfcPresentationLayerAssignment_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcRationalBSplineSurfaceWithKnots_type); - IFC4X2_IfcBSplineSurfaceWithKnots_type->set_subtypes(defs); - } - { - std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcCostValue_type); - IFC4X2_IfcAppliedValue_type->set_subtypes(defs); + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcShapeRepresentation_type);defs.push_back(IFC4X2_IfcTopologyRepresentation_type); + IFC4X2_IfcShapeModel_type->set_subtypes(defs); } { std::vector defs; defs.reserve(2); defs.push_back(IFC4X2_IfcSlabElementedCase_type);defs.push_back(IFC4X2_IfcSlabStandardCase_type); IFC4X2_IfcSlab_type->set_subtypes(defs); } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcSpaceType_type); + IFC4X2_IfcSpatialStructureElementType_type->set_subtypes(defs); + } { std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcAdvancedBrep_type);defs.push_back(IFC4X2_IfcFacetedBrep_type); - IFC4X2_IfcManifoldSolidBrep_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcSpatialStructureElementType_type);defs.push_back(IFC4X2_IfcSpatialZoneType_type); + IFC4X2_IfcSpatialElementType_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcStructuralAction_type);defs.push_back(IFC4X2_IfcStructuralReaction_type); + IFC4X2_IfcStructuralActivity_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcStructuralConnection_type);defs.push_back(IFC4X2_IfcStructuralMember_type); + IFC4X2_IfcStructuralItem_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcStructuralCurveAction_type);defs.push_back(IFC4X2_IfcStructuralPointAction_type);defs.push_back(IFC4X2_IfcStructuralSurfaceAction_type); + IFC4X2_IfcStructuralAction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcStructuralCurveConnection_type);defs.push_back(IFC4X2_IfcStructuralPointConnection_type);defs.push_back(IFC4X2_IfcStructuralSurfaceConnection_type); + IFC4X2_IfcStructuralConnection_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcStructuralCurveMember_type);defs.push_back(IFC4X2_IfcStructuralSurfaceMember_type); + IFC4X2_IfcStructuralMember_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcStructuralCurveMemberVarying_type); + IFC4X2_IfcStructuralCurveMember_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcStructuralCurveReaction_type);defs.push_back(IFC4X2_IfcStructuralPointReaction_type);defs.push_back(IFC4X2_IfcStructuralSurfaceReaction_type); + IFC4X2_IfcStructuralReaction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcStructuralLinearAction_type); + IFC4X2_IfcStructuralCurveAction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcStructuralLoadCase_type); + IFC4X2_IfcStructuralLoadGroup_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcStructuralLoadConfiguration_type);defs.push_back(IFC4X2_IfcStructuralLoadOrResult_type); + IFC4X2_IfcStructuralLoad_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(5); + defs.push_back(IFC4X2_IfcStructuralLoadLinearForce_type);defs.push_back(IFC4X2_IfcStructuralLoadPlanarForce_type);defs.push_back(IFC4X2_IfcStructuralLoadSingleDisplacement_type);defs.push_back(IFC4X2_IfcStructuralLoadSingleForce_type);defs.push_back(IFC4X2_IfcStructuralLoadTemperature_type); + IFC4X2_IfcStructuralLoadStatic_type->set_subtypes(defs); } { std::vector defs; defs.reserve(1); @@ -14339,19 +14269,89 @@ IfcParse::schema_definition* IFC4X2_populate_schema() { IFC4X2_IfcStructuralLoadSingleDisplacement_type->set_subtypes(defs); } { - std::vector defs; defs.reserve(2); - defs.push_back(IFC4X2_IfcWorkPlan_type);defs.push_back(IFC4X2_IfcWorkSchedule_type); - IFC4X2_IfcWorkControl_type->set_subtypes(defs); + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcStructuralLoadSingleForceWarping_type); + IFC4X2_IfcStructuralLoadSingleForce_type->set_subtypes(defs); } { - std::vector defs; defs.reserve(3); - defs.push_back(IFC4X2_IfcAlignment2DVerSegCircularArc_type);defs.push_back(IFC4X2_IfcAlignment2DVerSegLine_type);defs.push_back(IFC4X2_IfcAlignment2DVerSegParabolicArc_type); - IFC4X2_IfcAlignment2DVerticalSegment_type->set_subtypes(defs); + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcStructuralLoadStatic_type);defs.push_back(IFC4X2_IfcSurfaceReinforcementArea_type); + IFC4X2_IfcStructuralLoadOrResult_type->set_subtypes(defs); } { std::vector defs; defs.reserve(1); - defs.push_back(IFC4X2_IfcRationalBSplineCurveWithKnots_type); - IFC4X2_IfcBSplineCurveWithKnots_type->set_subtypes(defs); + defs.push_back(IFC4X2_IfcStructuralPlanarAction_type); + IFC4X2_IfcStructuralSurfaceAction_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcStructuralSurfaceMemberVarying_type); + IFC4X2_IfcStructuralSurfaceMember_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcStyledRepresentation_type); + IFC4X2_IfcStyleModel_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcSurfaceOfLinearExtrusion_type);defs.push_back(IFC4X2_IfcSurfaceOfRevolution_type); + IFC4X2_IfcSweptSurface_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcSurfaceStyleRendering_type); + IFC4X2_IfcSurfaceStyleShading_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcSweptDiskSolidPolygonal_type); + IFC4X2_IfcSweptDiskSolid_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcTaskTimeRecurring_type); + IFC4X2_IfcTaskTime_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcTextLiteralWithExtent_type); + IFC4X2_IfcTextLiteral_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcTextStyleFontModel_type); + IFC4X2_IfcPreDefinedTextFont_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcTriangulatedIrregularNetwork_type); + IFC4X2_IfcTriangulatedFaceSet_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(3); + defs.push_back(IFC4X2_IfcTypeProcess_type);defs.push_back(IFC4X2_IfcTypeProduct_type);defs.push_back(IFC4X2_IfcTypeResource_type); + IFC4X2_IfcTypeObject_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcVertexPoint_type); + IFC4X2_IfcVertex_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcWallElementedCase_type);defs.push_back(IFC4X2_IfcWallStandardCase_type); + IFC4X2_IfcWall_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X2_IfcWindowStandardCase_type); + IFC4X2_IfcWindow_type->set_subtypes(defs); + } + { + std::vector defs; defs.reserve(2); + defs.push_back(IFC4X2_IfcWorkPlan_type);defs.push_back(IFC4X2_IfcWorkSchedule_type); + IFC4X2_IfcWorkControl_type->set_subtypes(defs); } std::vector declarations; declarations.reserve(1223); diff --git a/src/ifcparse/Ifc4x2.cpp b/src/ifcparse/Ifc4x2.cpp index 445be88a51..101cc1d3cd 100644 --- a/src/ifcparse/Ifc4x2.cpp +++ b/src/ifcparse/Ifc4x2.cpp @@ -19,7 +19,7 @@ /******************************************************************************** * * - * This file has been generated from IFC4x2.exp Draft. Do not make modifications * + * This file has been generated from IFC4x2.exp. Do not make modifications * * but instead modify the python script that has been used to generate this. * * * ********************************************************************************/ diff --git a/src/ifcparse/Ifc4x2.h b/src/ifcparse/Ifc4x2.h index 7a46804e27..4f68aa4841 100644 --- a/src/ifcparse/Ifc4x2.h +++ b/src/ifcparse/Ifc4x2.h @@ -19,7 +19,7 @@ /******************************************************************************** * * - * This file has been generated from IFC4x2.exp Draft. Do not make modifications * + * This file has been generated from IFC4x2.exp. Do not make modifications * * but instead modify the python script that has been used to generate this. * * * ********************************************************************************/ @@ -40,8 +40,6 @@ #include "../ifcparse/IfcException.h" #include "../ifcparse/Argument.h" -#include "../ifcparse/Ifc4x2enum.h" - struct Ifc4x2 { static const IfcParse::schema_definition& get_schema(); @@ -172,13 +170,13 @@ typedef IfcUtil::IfcBaseClass IfcCurveOrEdgeCurve; /// /// HISTORY New entity in IFC2x2. typedef IfcUtil::IfcBaseClass IfcCurveStyleFontSelect; -/// IfcDefinitionSelect provides the option to either select an object or type object IfcObjectDefinition, or a property set template or property set, IfcPropertyDefinition. +/// IfcDefinitionSelectprovides the option to either select an object or type object IfcObjectDefinition, or a property set template or property set, IfcPropertyDefinition. /// SELECT /// /// IfcObjectDefinition, /// IfcPropertyDefinition /// -/// HISTORY  New select type in IFC2x4. +/// HISTORY New select type in IFC2x4. typedef IfcUtil::IfcBaseClass IfcDefinitionSelect; /// IfcDerivedMeasureValue is a select type for selecting between derived measure types. /// @@ -284,7 +282,7 @@ typedef IfcUtil::IfcBaseClass IfcGeometricSetSelect; /// IfcDirection, /// IfcVirtualGridIntersection /// -/// HISTORY  New select type in IFC2x4. +/// HISTORY New select type in IFC2x4. typedef IfcUtil::IfcBaseClass IfcGridPlacementDirectionSelect; /// The IfcHatchLineDistanceSelect is a selection between different ways to determine the distance and potentially start point of hatch lines, either by an offset distance length measure or by a vector. /// @@ -415,7 +413,7 @@ typedef IfcUtil::IfcBaseClass IfcPointOrVertexPoint; /// /// IFC2x4 CHANGE The select type has been deprecated. typedef IfcUtil::IfcBaseClass IfcPresentationStyleSelect; -/// IfcProcessSelect provides the option to either +/// IfcProcessSelectprovides the option to either /// select a process or activity occurrence, IfcProcess, /// or a process or activity type, IfcTypeProcess. /// SELECT @@ -424,11 +422,11 @@ typedef IfcUtil::IfcBaseClass IfcPresentationStyleSelect; /// /// IfcTypeProcess /// -/// HISTORY  New select type in IFC2x4. +/// HISTORY New select type in IFC2x4. typedef IfcUtil::IfcBaseClass IfcProcessSelect; typedef IfcUtil::IfcBaseClass IfcProductRepresentationSelect; -/// IfcProductSelect provides the option to either select a +/// IfcProductSelectprovides the option to either select a /// product occurrence, IfcProduct, or a product type, /// IfcTypeProduct. /// SELECT @@ -436,7 +434,7 @@ typedef IfcUtil::IfcBaseClass IfcProductRepresentationSelect; /// IfcProduct, /// IfcTypeProduct /// -/// HISTORY  New select type in IFC2x4. +/// HISTORY New select type in IFC2x4. typedef IfcUtil::IfcBaseClass IfcProductSelect; typedef IfcUtil::IfcBaseClass IfcPropertySetDefinitionSelect; @@ -444,7 +442,7 @@ typedef IfcUtil::IfcBaseClass IfcPropertySetDefinitionSelect; /// /// HISTORY  New Select type in IFC2x4. typedef IfcUtil::IfcBaseClass IfcResourceObjectSelect; -/// IfcResourceSelect provides the option to either select a +/// IfcResourceSelectprovides the option to either select a /// resource occurrence, IfcResource, or a resource type, /// IfcTypeResource. /// SELECT @@ -452,7 +450,7 @@ typedef IfcUtil::IfcBaseClass IfcResourceObjectSelect; /// IfcResource, /// IfcTypeResource /// -/// HISTORY  New select type in IFC2x4. +/// HISTORY New select type in IFC2x4. typedef IfcUtil::IfcBaseClass IfcResourceSelect; /// Definition from IAI: A measure of rotational stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness. /// @@ -511,10 +509,10 @@ typedef IfcUtil::IfcBaseClass IfcSizeSelect; /// IfcSolidModel /// IfcClosedShell /// -/// HISTORY  New select type in IFC2x4. +/// HISTORY New select type in IFC2x4. typedef IfcUtil::IfcBaseClass IfcSolidOrShell; /// Definition from IAI: The -/// IfcSpaceBoundarySelect selects either an internal space +/// IfcSpaceBoundarySelectselects either an internal space /// for internal or external space boundaries, or an external spatial /// element for external space boundaries at the outer envelop of the /// building. @@ -523,7 +521,7 @@ typedef IfcUtil::IfcBaseClass IfcSolidOrShell; /// IfcSpace, /// IfcExternalSpatialElement /// -/// HISTORY  New select type +/// HISTORY New select type /// in IFC2x4. typedef IfcUtil::IfcBaseClass IfcSpaceBoundarySelect; /// The IfcSpecularHighlightSelect defines the selectable types of value for specular highlight sharpness. @@ -880,9 +878,9 @@ struct IfcBSplineCurveForm { /// hyperbolic arc: An arc of finite length of one branch of a hyperbola represented by a B-spline curve. /// unspecified: A B-spline curve for which no particular form is specified. /// -/// NOTE  Corresponding ISO 10303 type: b_spline_curve_form. Please refer to ISO/IS 10303-42:1994, p. 15 for the final definition of the formal standard. +/// NOTE Corresponding ISO 10303 type: b_spline_curve_form. Please refer to ISO/IS 10303-42:1994, p. 15 for the final definition of the formal standard. /// -/// HISTORY  New type in Release IFC2x2. +/// HISTORY New type in Release IFC2x2. typedef enum {IfcBSplineCurveForm_POLYLINE_FORM, IfcBSplineCurveForm_CIRCULAR_ARC, IfcBSplineCurveForm_ELLIPTIC_ARC, IfcBSplineCurveForm_PARABOLIC_ARC, IfcBSplineCurveForm_HYPERBOLIC_ARC, IfcBSplineCurveForm_UNSPECIFIED} Value; IFC_PARSE_API static const char* ToString(Value v); IFC_PARSE_API static Value FromString(const std::string& s); @@ -909,7 +907,7 @@ struct IfcBeamTypeEnum { /// exterior of the building. Can be used to support joists or slab /// elements on its interior side. /// -/// NOTE  They are also referred to as "spandrel +/// NOTE They are also referred to as "spandrel /// panels", which are parts of a facade and sometimes have /// supporting consoles for floor slabs /// integrated. @@ -919,7 +917,7 @@ struct IfcBeamTypeEnum { /// often of T-shape (therefore the English name), but may have other /// shapes as well, e.g. an L-Shape or an Inverted-T-Shape. /// -/// NOTE  In order to distinguish beams by shape, +/// NOTE In order to distinguish beams by shape, /// the assigned IfcProfileDef subtypes provide the shape type /// and, if using a subtype of /// IfcParameterizedProfileDef, also the shape @@ -928,9 +926,9 @@ struct IfcBeamTypeEnum { /// USERDEFINED: User-defined linear beam element. /// NOTDEFINED: Undefined linear beam element /// -/// HISTORY  New Enumeration +/// HISTORY New Enumeration /// in Release IFC2x Edition 2. -/// IFC2x4 CHANGE  The enumerators +/// IFC2x4 CHANGE The enumerators /// HOLLOWCORE and SPANDREL have been /// added. typedef enum {IfcBeamType_BEAM, IfcBeamType_JOIST, IfcBeamType_HOLLOWCORE, IfcBeamType_LINTEL, IfcBeamType_SPANDREL, IfcBeamType_T_BEAM, IfcBeamType_GIRDER_SEGMENT, IfcBeamType_DIAPHRAGM, IfcBeamType_PIERCAP, IfcBeamType_HATSTONE, IfcBeamType_CORNICE, IfcBeamType_EDGEBEAM, IfcBeamType_USERDEFINED, IfcBeamType_NOTDEFINED} Value; @@ -1042,7 +1040,7 @@ struct IfcBuildingElementPartTypeEnum { /// USERDEFINED: User-defined accessory /// NOTDEFINED: Undefined accessory /// -/// HISTORY  New Enumeration in IFC 2x4. +/// HISTORY New Enumeration in IFC 2x4. typedef enum {IfcBuildingElementPartType_INSULATION, IfcBuildingElementPartType_PRECASTPANEL, IfcBuildingElementPartType_APRON, IfcBuildingElementPartType_USERDEFINED, IfcBuildingElementPartType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); IFC_PARSE_API static Value FromString(const std::string& s); @@ -1051,8 +1049,8 @@ struct IfcBuildingElementProxyTypeEnum { /// Definition from IAI: This enumeration defines the /// available generic types for IfcBuildingElementProxyType. /// -/// HISTORY  New enumeration -/// in Release IFC2x Edition 3. +/// HISTORY New enumeration +/// inRelease IFC2x Edition 3. /// /// Enumeration /// @@ -1203,10 +1201,10 @@ struct IfcChimneyTypeEnum { /// types of chimneys that can be predefined using the /// enumeration values. /// -/// HISTORY  New Enumeration in -/// Release IFC2x4 +/// HISTORY New Enumeration in +/// ReleaseIFC2x4 /// -/// NOTE  Currently there are no specific enumerators +/// NOTE Currently there are no specific enumerators /// defined, the IfcChimneyTypeEnum has been added /// for future extensions. typedef enum {IfcChimneyType_USERDEFINED, IfcChimneyType_NOTDEFINED} Value; @@ -1744,7 +1742,7 @@ struct IfcDiscreteAccessoryTypeEnum { /// USERDEFINED: User-defined accessory /// NOTDEFINED: Undefined accessory /// -/// HISTORY  New Enumeration in IFC 2x4. +/// HISTORY New Enumeration in IFC 2x4. typedef enum {IfcDiscreteAccessoryType_ANCHORPLATE, IfcDiscreteAccessoryType_BRACKET, IfcDiscreteAccessoryType_SHOE, IfcDiscreteAccessoryType_EXPANSION_JOINT_DEVICE, IfcDiscreteAccessoryType_USERDEFINED, IfcDiscreteAccessoryType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); IFC_PARSE_API static Value FromString(const std::string& s); @@ -1875,10 +1873,8 @@ struct IfcDoorPanelOperationEnum { /// NOTE Enumerator added in IFC2x4. /// /// UserDefined -///   /// /// NotDefined -///   /// /// Figure 164 — Door operations /// @@ -2106,7 +2102,7 @@ struct IfcDoorTypeEnum { /// USERDEFINED: User-defined linear beam element. /// NOTDEFINED: Undefined linear beam element /// -/// HISTORY  New Enumeration +/// HISTORY New Enumeration /// in IFC2x4. typedef enum {IfcDoorType_DOOR, IfcDoorType_GATE, IfcDoorType_TRAPDOOR, IfcDoorType_USERDEFINED, IfcDoorType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); @@ -2117,16 +2113,15 @@ struct IfcDoorTypeOperationEnum { /// /// In the most common case of swinging doors the IfcDoorTypeOperationEnum defined the hinge side (left hing or right hung) and the opening direction (opening to the left, opening to the right). Whether the door opens inwards or outwards is determined by the local coordinate system of the IfcDoor, or IfcDoorStandardCase. /// -/// NOTE There are different definitions in various countries on what a left opening or left hung or left swing door is (same for right). Therefore the IFC definition terms may derivate from the local standard and may need to be mapped appropriately. +/// NOTEThere are different definitions in various countries on what a left opening or left hung or left swing door is (same for right). Therefore the IFC definition terms may derivate from the local standard and may need to be mapped appropriately. /// -/// HISTORY  New Enumeration in IFC2x4. +/// HISTORY New Enumeration in IFC2x4. /// /// IFC2x4 CHANGE The new IfcDoorTypeOperationEnum replaces the use of IfcDoorStyleOperationEnum that is deprecated from IFC2x4 onwards. /// /// Enumerator /// Description /// Figures -///   /// /// SINGLE_SWING_LEFT /// @@ -2153,7 +2148,7 @@ struct IfcDoorTypeOperationEnum { /// (swings) to the left the other opens (swings) to the right. /// Note: Direction of swing (whether in or out) /// is determined at the IfcDoor or -/// IfcDoorStandardCase.  +/// IfcDoorStandardCase. /// /// DOUBLE_SWING_LEFT /// @@ -2162,7 +2157,7 @@ struct IfcDoorTypeOperationEnum { /// Also called double acting door. /// Note: Direction of main swing (whether in or /// out) is determined at the IfcDoor or -/// IfcDoorStandardCase.  +/// IfcDoorStandardCase. /// /// DOUBLE_SWING_RIGHT /// @@ -2195,9 +2190,6 @@ struct IfcDoorTypeOperationEnum { /// out) is determined at the IfcDoor or /// IfcDoorStandardCase. /// -///   -///   -/// /// DOUBLE_DOOR_ /// SINGLE_SWING_ /// OPPOSITE_RIGHT @@ -2208,9 +2200,6 @@ struct IfcDoorTypeOperationEnum { /// out) is determined at the IfcDoor or /// IfcDoorStandardCase. /// -///   -///   -/// /// SLIDING_TO_LEFT /// /// Door with one panel that is sliding @@ -2246,8 +2235,6 @@ struct IfcDoorTypeOperationEnum { /// leaves set in a form of a cross and revolving around a central /// vertical axis (the four panels are described by a single /// IfcDoor panel property). -///   -///   /// /// ROLLINGUP /// @@ -2281,16 +2268,12 @@ struct IfcDoorTypeOperationEnum { /// /// USERDEFINED /// User defined operation type -///   -///   /// /// NOTDEFINED /// A door with a not defined operation /// type is considered as a door with a lining, but no panels. It is /// thereby always open. /// -///   -/// /// Figure 66 — Door operations /// /// NOTE @@ -2304,7 +2287,7 @@ struct IfcDoorTypeOperationEnum { /// the positive y-axis, determined by the ObjectPlacement at /// IfcDoor /// The location of the panel relative to the wall thickness is -/// defined by the ObjectPlacement at IfcDoor, and the +/// defined by theObjectPlacement at IfcDoor, and the /// IfcDoorLiningProperties.LiningOffset parameter. typedef enum {IfcDoorTypeOperation_SINGLE_SWING_LEFT, IfcDoorTypeOperation_SINGLE_SWING_RIGHT, IfcDoorTypeOperation_DOUBLE_DOOR_SINGLE_SWING, IfcDoorTypeOperation_DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT, IfcDoorTypeOperation_DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT, IfcDoorTypeOperation_DOUBLE_SWING_LEFT, IfcDoorTypeOperation_DOUBLE_SWING_RIGHT, IfcDoorTypeOperation_DOUBLE_DOOR_DOUBLE_SWING, IfcDoorTypeOperation_SLIDING_TO_LEFT, IfcDoorTypeOperation_SLIDING_TO_RIGHT, IfcDoorTypeOperation_DOUBLE_DOOR_SLIDING, IfcDoorTypeOperation_FOLDING_TO_LEFT, IfcDoorTypeOperation_FOLDING_TO_RIGHT, IfcDoorTypeOperation_DOUBLE_DOOR_FOLDING, IfcDoorTypeOperation_REVOLVING, IfcDoorTypeOperation_ROLLINGUP, IfcDoorTypeOperation_SWING_FIXED_LEFT, IfcDoorTypeOperation_SWING_FIXED_RIGHT, IfcDoorTypeOperation_USERDEFINED, IfcDoorTypeOperation_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); @@ -2667,7 +2650,7 @@ struct IfcFastenerTypeEnum { /// USERDEFINED: User-defined fastener /// NOTDEFINED: Undefined fastener /// -/// HISTORY  New Enumeration in IFC 2x4. +/// HISTORY New Enumeration in IFC 2x4. typedef enum {IfcFastenerType_GLUE, IfcFastenerType_MORTAR, IfcFastenerType_WELD, IfcFastenerType_USERDEFINED, IfcFastenerType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); IFC_PARSE_API static Value FromString(const std::string& s); @@ -3433,7 +3416,7 @@ struct IfcMechanicalFastenerTypeEnum { /// USERDEFINED: User-defined mechanical fastener /// NOTDEFINED: Undefined mechanical fastener /// -/// HISTORY  New Enumeration in IFC 2x4. +/// HISTORY New Enumeration in IFC 2x4. typedef enum {IfcMechanicalFastenerType_ANCHORBOLT, IfcMechanicalFastenerType_BOLT, IfcMechanicalFastenerType_DOWEL, IfcMechanicalFastenerType_NAIL, IfcMechanicalFastenerType_NAILPLATE, IfcMechanicalFastenerType_RIVET, IfcMechanicalFastenerType_SCREW, IfcMechanicalFastenerType_SHEARCONNECTOR, IfcMechanicalFastenerType_STAPLE, IfcMechanicalFastenerType_STUDSHEARCONNECTOR, IfcMechanicalFastenerType_COUPLER, IfcMechanicalFastenerType_USERDEFINED, IfcMechanicalFastenerType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); IFC_PARSE_API static Value FromString(const std::string& s); @@ -3471,10 +3454,10 @@ struct IfcMemberTypeEnum { /// no further meaning. /// MULLION: A linear element within a curtain wall system /// to connect two (or more) panels. -/// PLATE: A linear continuous horizontal element in wall +/// PLATE: Alinear continuous horizontal element in wall /// framing, e.g. a head piece or a sole plate. /// -/// NOTE  This head piece or sole plate shall not +/// NOTE This head piece or sole plate shall not /// be mixed up with planar elements, such as sheets and panels, that /// are handled as IfcPlate (and /// IfcPlateType). @@ -3496,9 +3479,9 @@ struct IfcMemberTypeEnum { /// HISTORY: New /// Enumeration in Release IFC2x Edition 2. /// IFC2x Edition 2 -/// Addendum 1 CHANGE  The additional identifiers CHORD, PLATE, STUD +/// Addendum 1 CHANGE The additional identifiers CHORD, PLATE, STUD /// are added. -/// IFC2x Edition 3 CHANGE  The additional identifier MULLION has +/// IFC2x Edition 3 CHANGE The additional identifier MULLION has /// been added. typedef enum {IfcMemberType_BRACE, IfcMemberType_CHORD, IfcMemberType_COLLAR, IfcMemberType_MEMBER, IfcMemberType_MULLION, IfcMemberType_PLATE, IfcMemberType_POST, IfcMemberType_PURLIN, IfcMemberType_RAFTER, IfcMemberType_STRINGER, IfcMemberType_STRUT, IfcMemberType_STUD, IfcMemberType_STIFFENING_RIB, IfcMemberType_ARCH_SEGMENT, IfcMemberType_SUSPENSION_CABLE, IfcMemberType_SUSPENDER, IfcMemberType_STAY_CABLE, IfcMemberType_USERDEFINED, IfcMemberType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); @@ -4497,8 +4480,8 @@ struct IfcShadingDeviceTypeEnum { /// SHUTTER /// AWNING /// -/// HISTORY  New Enumeration -/// in Release IFC2x4 +/// HISTORY New Enumeration +/// in ReleaseIFC2x4 typedef enum {IfcShadingDeviceType_JALOUSIE, IfcShadingDeviceType_SHUTTER, IfcShadingDeviceType_AWNING, IfcShadingDeviceType_USERDEFINED, IfcShadingDeviceType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); IFC_PARSE_API static Value FromString(const std::string& s); @@ -4534,7 +4517,7 @@ struct IfcSlabTypeEnum { /// special property set definition may be provided for each /// predefined type. /// -/// HISTORY  New type in IFC +/// HISTORY New type in IFC /// Release 2.0 /// /// Floor @@ -4558,7 +4541,7 @@ struct IfcSlabTypeEnum { /// foundation). Another name is mat foundation. /// /// IFC2x3 CHANGE -///  new enumerator added. +/// new enumerator added. typedef enum {IfcSlabType_FLOOR, IfcSlabType_ROOF, IfcSlabType_LANDING, IfcSlabType_BASESLAB, IfcSlabType_APPROACH_SLAB, IfcSlabType_PAVING, IfcSlabType_WEARING, IfcSlabType_SIDEWALK, IfcSlabType_USERDEFINED, IfcSlabType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); IFC_PARSE_API static Value FromString(const std::string& s); @@ -5144,9 +5127,9 @@ struct IfcTransportElementTypeEnum { /// heavy goods. It may be manually operated or electrically or /// pneumatically driven. /// -/// HISTORY  New enumeration +/// HISTORY New enumeration /// in IFC Release 2x. -/// IFC2x4 CHANGE  New enumerators +/// IFC2x4 CHANGE New enumerators /// CRANEWAY and LIFTINGGEAR added in /// IFC2x4. typedef enum {IfcTransportElementType_ELEVATOR, IfcTransportElementType_ESCALATOR, IfcTransportElementType_MOVINGWALKWAY, IfcTransportElementType_CRANEWAY, IfcTransportElementType_LIFTINGGEAR, IfcTransportElementType_USERDEFINED, IfcTransportElementType_NOTDEFINED} Value; @@ -5376,15 +5359,15 @@ struct IfcWallTypeEnum { /// USERDEFINED: User-defined wall element. /// NOTDEFINED: Undefined wall element /// -/// HISTORY  New +/// HISTORY New /// Enumeration in Release IFC2x Edition 2. -/// IFC2x2 ADDENDUM CHANGE  +/// IFC2x2 ADDENDUM CHANGE /// The enumerator POLYGON has been changed to /// POLYGONAL. -/// IFC2x3 CHANGE  The enumerators +/// IFC2x3 CHANGE The enumerators /// ELEMENTEDWALL and PLUMBINGWALL have been /// added. -/// IFC2x4 CHANGE  New enumerator +/// IFC2x4 CHANGE New enumerator /// MOVABLE has been added. typedef enum {IfcWallType_MOVABLE, IfcWallType_PARAPET, IfcWallType_PARTITIONING, IfcWallType_PLUMBINGWALL, IfcWallType_SHEAR, IfcWallType_SOLIDWALL, IfcWallType_STANDARD, IfcWallType_POLYGONAL, IfcWallType_ELEMENTEDWALL, IfcWallType_RETAININGWALL, IfcWallType_USERDEFINED, IfcWallType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); @@ -5673,7 +5656,7 @@ struct IfcWindowTypeEnum { /// USERDEFINED: User-defined window element. /// NOTDEFINED: Undefined window element /// -/// HISTORY  New Enumeration +/// HISTORY New Enumeration /// in IFC2x4. typedef enum {IfcWindowType_WINDOW, IfcWindowType_SKYLIGHT, IfcWindowType_LIGHTDOME, IfcWindowType_USERDEFINED, IfcWindowType_NOTDEFINED} Value; IFC_PARSE_API static const char* ToString(Value v); @@ -5684,7 +5667,7 @@ struct IfcWindowTypePartitioningEnum { /// /// Windows which are subdivided into more than three panels have to be defined by the geometry only. The type of such windows is USERDEFINED. /// -/// HISTORY  New Enumeration in IFC2x4. +/// HISTORY New Enumeration in IFC2x4. /// NOTE The new IfcWindowTypePartitioningEnum replaces the use of /// IfcWindowStyleOperationEnum that is deprecated from IFC2x4 onwards. /// @@ -5735,11 +5718,8 @@ struct IfcWindowTypePartitioningEnum { /// UserDefined /// user defined operation /// type -///   /// /// NotDefined -///   -///   /// /// Figure 70 — Window partitioning /// @@ -5921,7 +5901,7 @@ public: /// describe the spatial relationship between the section of a member /// and a reference axis of the same member. /// -/// HISTORY  New Type in IFC2x4. +/// HISTORY New Type in IFC2x4. /// /// Indexes 1...9 refer to points at the bounding box of a /// profile. Indexes 10...19 refer to points defined by geometric @@ -8342,10 +8322,10 @@ public: }; /// IfcConnectionVolumeGeometry is used to describe the geometric constraints that facilitate the physical connection (or overlap) of two objects at a volume defined by a solid or closed shell. It is envisioned as a control that applies to the element connection or interference relationships. /// -/// HISTORYÿ New entity in IFC2x4. +/// HISTORY New entity in IFC2x4. /// /// Geometry use definitions -/// The IfcSolidModel (or the IfcClosedShell) at the VolumeOnRelatingElement attribute defines the volume where the basic geometry items of the interfering elements overlap. The volume geometry and coordinates are provided within the local coordinate system of the RelatingElement, as specified at the subtypes of the relationship IfcRelConnects that utilizes the IfcConnectionSurfaceGeometry. Optionally, the sameÿvolume geometry and coordinates can also be provided within the local coordinate system of the RelatedElement by using the VolumeOnRelatedElement attribute. +/// The IfcSolidModel (or the IfcClosedShell) at the VolumeOnRelatingElement attribute defines the volume where the basic geometry items of the interfering elements overlap. The volume geometry and coordinates are provided within the local coordinate system of the RelatingElement, as specified at the subtypes of the relationship IfcRelConnects that utilizes the IfcConnectionSurfaceGeometry. Optionally, the samevolume geometry and coordinates can also be provided within the local coordinate system of the RelatedElement by using the VolumeOnRelatedElement attribute. class IFC_PARSE_API IfcConnectionVolumeGeometry : public IfcConnectionGeometry { public: /// Volume at which related object overlaps with the relating element, given in the LCS of the relating element. @@ -8459,7 +8439,7 @@ public: /// SourceCRS being the more local, or child coordinate /// reference system, and the TargetCRS being the more /// remote or parent coordinate reference system, in -/// theÿspecial case the coordinate operation between the local +/// thespecial case the coordinate operation between the local /// engineering coordinate system of the construction project /// and any map or other coordinate reference system. /// @@ -8988,7 +8968,7 @@ public: /// /// NOTE  The z axis of the local engineering coordinate system is always parallel to the z axis of the map coordinate system. /// -/// The scale factor can be used when the length unit for the 3 axes of the map coordinate system are not identical with the length unit established for this project (seeÿIfcProject.UnitsInContext), if omitted, the scale factor 1.0 is assumed. +/// The scale factor can be used when the length unit for the 3 axes of the map coordinate system are not identical with the length unit established for this project (seeIfcProject.UnitsInContext), if omitted, the scale factor 1.0 is assumed. /// /// HISTORY  New entity in IFC2x4. class IFC_PARSE_API IfcMapConversion : public IfcCoordinateOperation { @@ -9032,9 +9012,9 @@ public: }; /// IfcMaterialClassificationRelationship is a relationship assigning classifications to materials. /// -/// HISTORYÿ New entity in IFC2x. +/// HISTORY New entity in IFC2x. /// -/// IFC2x4 CHANGEÿ The entity IfcMaterialClassificationRelationship is deprecated since IFC2x4 and shall no longer be used. Use IfcExternalReferenceRelationship instead. +/// IFC2x4 CHANGE The entity IfcMaterialClassificationRelationship is deprecated since IFC2x4 and shall no longer be used. Use IfcExternalReferenceRelationship instead. class IFC_PARSE_API IfcMaterialClassificationRelationship : public IfcUtil::IfcBaseEntity { public: /// The material classifications identifying the type of material. @@ -9072,7 +9052,7 @@ public: /// IfcElementType by using the objectified relationship /// IfcRelAssociatesMaterial. /// -/// HISTORYÿ New entity in IFC2x4 +/// HISTORY New entity in IFC2x4 class IFC_PARSE_API IfcMaterialDefinition : public IfcUtil::IfcBaseEntity { public: IfcTemplatedEntityList< IfcRelAssociatesMaterial >::ptr AssociatedTo() const; // INVERSE IfcRelAssociatesMaterial::RelatingMaterial @@ -9285,7 +9265,7 @@ public: /// of a single identifiable material (for example, to represent anisotropic /// material). /// -/// IFC2x4 CHANGEÿ The entity IfcMaterialList is deprecated and shall no longer +/// IFC2x4 CHANGE The entity IfcMaterialList is deprecated and shall no longer /// be used. Use IfcMaterialConstituentSet instead. class IFC_PARSE_API IfcMaterialList : public IfcUtil::IfcBaseEntity { public: @@ -9300,9 +9280,9 @@ public: }; /// IfcMaterialProfile is a single and identifiable part of an element which is constructed of a number of profiles (one or more). /// -/// NOTE ÿ In case of multiple MaterialProfiles, the relative positioning of individual profiles in IfcMaterialProfileSet are defined using the concept of IfcCompositeProfileDef in IfcProfileResource schema; otherwise, only one MaterialProfile is given and defined by an individual IfcProfileDef (subtype). +/// NOTE In case of multiple MaterialProfiles, the relative positioning of individual profiles in IfcMaterialProfileSet are defined using the concept of IfcCompositeProfileDef in IfcProfileResource schema; otherwise, only one MaterialProfile is given and defined by an individual IfcProfileDef (subtype). /// -/// HISTORYÿNew Entity in IFC2x4 +/// HISTORYNew Entity in IFC2x4 class IFC_PARSE_API IfcMaterialProfile : public IfcMaterialDefinition { public: /// Whether the optional attribute Name is defined for this IfcMaterialProfile @@ -9342,9 +9322,9 @@ public: }; /// IfcMaterialProfileSet is a designation by which individual material(s) of a prismatic element (for example, beam or column) constructed of a single or multiple material profiles is known. If only a single material profile is used (the most typical case) then no CompositeProfile is asserted. /// -/// NOTE ÿ In case of multiple MaterialProfiles, the relative positioning of individual profiles in IfcMaterialProfileSet are defined using the concept of IfcCompositeProfileDef in IfcProfileResource schema; otherwise, only one MaterialProfile is given and defined by an individual IfcProfileDef (subtype). +/// NOTE In case of multiple MaterialProfiles, the relative positioning of individual profiles in IfcMaterialProfileSet are defined using the concept of IfcCompositeProfileDef in IfcProfileResource schema; otherwise, only one MaterialProfile is given and defined by an individual IfcProfileDef (subtype). /// -/// HISTORYÿNew Entity in IFC2x4. +/// HISTORYNew Entity in IFC2x4. class IFC_PARSE_API IfcMaterialProfileSet : public IfcMaterialDefinition { public: /// Whether the optional attribute Name is defined for this IfcMaterialProfileSet @@ -9378,7 +9358,7 @@ public: /// /// Relative positions of IfcMaterialProfileWithOffsets in the longitudinal direction of an element can be defined giving offsets at the start and end. This shall not be used for relative positions of individual profiles in the plane of profile definition, which is given in composite profile definition itself. Also, care should be taken especially when used with IfcMaterialProfileSetUsageTapering for correct start and end offset assignement. /// -/// HISTORYÿ New Entity in IFC2x4. +/// HISTORY New Entity in IFC2x4. class IFC_PARSE_API IfcMaterialProfileWithOffsets : public IfcMaterialProfile { public: /// The numerical value of profile offset, in the direction of the axis direction - always AXIS1 i.e. the axis along the extrusion path. The OffsetValues[1] identifies the offset from the lower position along the axis direction (normally the start of the standard extrusion), the OffsetValues[2] identifies the offset from the upper position along the axis direction (normally the end of the standard extrusion), @@ -9413,7 +9393,7 @@ public: /// objectified relationship IfcRelAssociatesMaterial; it is /// only valid in conjunction with an element occurrence. /// -/// HISTORYÿ New entity in IFC2x4 +/// HISTORY New entity in IFC2x4 /// /// Informal proposition /// @@ -10037,7 +10017,7 @@ public: /// /// HISTORY New entity in IFC Release 2.0 /// -/// IFC2x3 NOTE ÿUsers should not instantiate the entity from IFC2x Edition 3 onwards. +/// IFC2x3 NOTE Users should not instantiate the entity from IFC2x Edition 3 onwards. /// /// IFC2x4 CHANGE  Entity made abstract. class IFC_PARSE_API IfcProductRepresentation : public IfcUtil::IfcBaseEntity { @@ -10640,7 +10620,7 @@ public: /// IfcElement, or in view definitions / implementer /// agreements. /// -/// NOTE ÿThe definition of this +/// NOTE The definition of this /// entity relates to the ISO 10303 entity representation. Please /// refer to ISO/IS 10303-43:1994 for the final definition of /// the formal standard. @@ -10905,7 +10885,7 @@ public: /// product shape represent a distinctive part to a product /// that can be explicitly addressed. /// -/// NOTE ÿThe definition of +/// NOTE The definition of /// this class relates to the ISO 10303 entity shape_aspect. Please /// refer to ISO/IS 10303-41:1994 for the final definition of /// the formal standard. @@ -10924,9 +10904,9 @@ public: /// PartOfProductDefinitionShape must refer to this /// instance of IfcProductDefinitionShape. /// -/// NOTEÿ PartOfProductDefinitionShape is +/// NOTE PartOfProductDefinitionShape is /// only to be omitted if the shape representations are -/// attached to an IfcRepresentationMap. ÿThis +/// attached to an IfcRepresentationMap. This /// enables the use of IfcShapeAspect with /// IfcRepresentationMap's that are used by an /// IfcTypeProduct through the @@ -13015,12 +12995,12 @@ public: }; /// IfcConnectionPointEccentricity is used to describe the geometric constraints that facilitate the physical connection of two objects at a point or vertex point with associated point coordinates. There is a physical distance, or eccentricity, etween the connection points of both object. The eccentricity can be either given by: /// -/// providing the PointOnRelatingElement and the PointOnRelatedElement, where bothÿpoint coordinates are not identical within a common parent coordinate system (latestly within the world coordinate system), +/// providing the PointOnRelatingElement and the PointOnRelatedElement, where bothpoint coordinates are not identical within a common parent coordinate system (latestly within the world coordinate system), /// providing the PointOnRelatingElement and the three distance measures, EccentricityInX, EccentricityInY, and EccentricityInZ (or only EccentricityInX, and EccentricityInY if the /// underlying coordinate system is two-dimensional), or /// providing both. /// -/// NOTEÿ If both, PointOnRelatedElement, and EccentricityInX, EccentricityInY, (EccentricityInZ) are provided, the values should be consistent. In case of any non-consistency, the calculated distance between PointOnRelatingElement and PointOnRelatedElement takes precedence. +/// NOTE If both, PointOnRelatedElement, and EccentricityInX, EccentricityInY, (EccentricityInZ) are provided, the values should be consistent. In case of any non-consistency, the calculated distance between PointOnRelatingElement and PointOnRelatedElement takes precedence. /// /// The explicit values for EccentricityInX, EccentricityInY, and EccentricityInZ are always /// measured in the following direction and coordinate system (defining when the value is positive or negative): @@ -13028,7 +13008,7 @@ public: /// from the PointOnRelatedElement to PointOnRelatingElement within the coordinate system of the RelatingElement. /// in addition: when used to specify connections in structural analysis models, the IfcStructuralMember is to be used as the RelatingElement of the relationship object utilizing IfcConnectionPointEccentricity, and the IfcStructuralConnection is the RelatedElement. /// -/// HISTORYÿ New entity in IFC 2x Edition 3. +/// HISTORY New entity in IFC 2x Edition 3. /// /// Geometry use definitions /// The IfcPoint (or the IfcVertexPoint with an associated IfcPoint) at the PointOnRelatingElement attribute defines the point where the basic geometry items of the connected elements connects. The point coordinates are provided within the local coordinate system of the RelatingElement, as specified at the IfcRelConnects subtype that utilizes the IfcConnectionPointGeometry. Optionally, the same point coordinates can also be provided within the local coordinate system of the RelatedElement by using the PointOnRelatedElement attribute, otherwise the distance to the point at the RelatedElement has to be given by the three eccentricity values. @@ -14052,7 +14032,7 @@ public: /// /// Figure 329 — Geometric representation context true north /// -/// NOTE ÿThe inherited attribute +/// NOTE The inherited attribute /// ContextType shall have one of the following recognized /// values: 'Sketch', 'Outline', 'Design', 'Detail', /// 'Model', 'Plan', @@ -14075,9 +14055,9 @@ public: /// /// NOTE  The definition of this class relates to the ISO 10303 entity geometric_representation_context. Please refer to ISO/IS 10303-42:1994 for the final definition of the formal standard. /// -/// HISTORY ÿNew Entity in IFC Release 2.0 +/// HISTORY New Entity in IFC Release 2.0 /// -/// IFC2x3 CHANGE ÿApplicable values for ContextType are only 'Model',ÿ 'Plan', andÿ'NotDefined'. All other sub contexts are now handled by the new subtype in IFC2x Edition 2 IfcGeometricRepresentationSubContext. Upward compatibility for file based exchange is guaranteed. +/// IFC2x3 CHANGE Applicable values for ContextType are only 'Model', 'Plan', and'NotDefined'. All other sub contexts are now handled by the new subtype in IFC2x Edition 2 IfcGeometricRepresentationSubContext. Upward compatibility for file based exchange is guaranteed. class IFC_PARSE_API IfcGeometricRepresentationContext : public IfcRepresentationContext { public: /// The integer dimension count of the coordinate space modeled in a geometric representation context. @@ -14209,14 +14189,14 @@ public: /// PlacementRefDirection = IfcDirection: by the explicitly provided direction information; /// PlacementRefDirection = IfcVirtualGridIntersection: by the tangent between the virtual grid intersection of PlacementLocation and the virtual grid intersection of PlacementRefDirection. Offsets as potentially provided in the IfcVirtualGridIntersection's of PlacementLocation and PlacementRefDirection have to be taken into account. /// -/// The direction of the y-axis of the IfcGridPlacement is the orthogonal complement to the x-axis. The plane defined by the x and y axis shall be co-planar to the xy plane of the local placement of the IfcGrid.ÿ +/// The direction of the y-axis of the IfcGridPlacement is the orthogonal complement to the x-axis. The plane defined by the x and y axis shall be co-planar to the xy plane of the local placement of the IfcGrid. /// The direction of the z-axis is the orientation of the cross product of the x-axis and the y-axis, i.e. the z-axis of the IfcGridPlacement shall be co-linear to the z-axis of the local placement of the IfcGrid. /// /// NOTE The IfcGrid local placement, that can be provided relative to the local placement of another spatial structure element, has to be taken into account for calculating the absolute placement of the virtual grid intersection. /// /// NOTE The PlacementLocation.OffsetDistances[3] and the PlacementRefDirection.OffsetDistances[3] shall either not be assigned or should have the same z offset value. /// -/// HISTORY ÿNew entity in IFC Release 1.5. The entity name was changed from IfcConstrainedPlacement in IFC Release 2x. +/// HISTORY New entity in IFC Release 1.5. The entity name was changed from IfcConstrainedPlacement in IFC Release 2x. /// /// IFC2x4 CHANGE Attribute data type of PlacementRefDirection has been changed to IfcGridPlacementDirectionSelect. /// @@ -14810,9 +14790,9 @@ public: /// styles, hatching definitions or surface coloring/rendering /// information to a material. /// -/// HISTORYÿNew entity in IFC2x4 +/// HISTORYNew entity in IFC2x4 /// -/// IFC2x4 CHANGEÿ The attributes Description and Category have been added. +/// IFC2x4 CHANGE The attributes Description and Category have been added. class IFC_PARSE_API IfcMaterial : public IfcMaterialDefinition { public: /// Name of the material. @@ -14851,7 +14831,7 @@ public: /// /// NOTE See the "Material Use Definition" at the individual element to which an IfcMaterialConstituentSet may apply for a required or recommended definition of such keywords as value for IfcMaterialConstituent.Name. /// -/// HISTORYÿNew Entity in IFC2x4 +/// HISTORYNew Entity in IFC2x4 class IFC_PARSE_API IfcMaterialConstituent : public IfcMaterialDefinition { public: /// Whether the optional attribute Name is defined for this IfcMaterialConstituent @@ -14897,7 +14877,7 @@ public: /// for a required or recommended definition of such /// keywords. /// -/// HISTORYÿNew Entity in IFC2x4. +/// HISTORYNew Entity in IFC2x4. class IFC_PARSE_API IfcMaterialConstituentSet : public IfcMaterialDefinition { public: /// Whether the optional attribute Name is defined for this IfcMaterialConstituentSet @@ -14970,7 +14950,7 @@ public: /// the element geometry). The rules to ensure the compatibility /// depend on the type of the building element. /// -/// EXAMPLE ÿFor a cavity brick wall with shape +/// EXAMPLE For a cavity brick wall with shape /// representation SweptSolid, the /// IfcMaterialLayerSet.TotalThickness shall be equal to the /// wall thickness. Also the OffsetFromReferenceLine shall @@ -14980,7 +14960,7 @@ public: /// RepresentationIdentifier="Axis" and /// RepresentationIdentifier="Body". /// -/// NOTE ÿRefer to the implementation guide and agreements for +/// NOTE Refer to the implementation guide and agreements for /// more information on matching between building element geometry /// and material layer set usage. /// @@ -14991,7 +14971,7 @@ public: /// objects. If the element type is available (i.e. the relevant /// subtype of IfcElementType, then the /// IfcMaterialLayerSet can be assigned to the type object. -/// The assignment between aÿsubtype of IfcElement and the +/// The assignment between asubtype of IfcElement and the /// IfcMaterialLayerSetUsage is handled by /// IfcRelAssociatesMaterial. /// @@ -15004,8 +14984,8 @@ public: /// material layer thicknesses are constant. /// Generally, an element may be layered in any of its primary /// directions, denoted by its x, y or z axis. The geometry use -/// definitions at eachÿspecific types of building element will -/// determine the applicableÿLayerSetDirection. +/// definitions at eachspecific types of building element will +/// determine the applicableLayerSetDirection. /// /// The following examples illustrate how the IfcMaterialLayerSetUsage attributes (LayerSetDirection, DirectionSense, OffsetFromReferenceLine) can /// be used in different cases. The normative material use definitions are documented at each element (how these shall be used). @@ -15015,14 +14995,14 @@ public: /// EXAMPLE  For a standard wall with extruded /// geometric representation (vertical extrusion), the layer set /// direction will be perpendicular to extrusion direction, -/// andÿcan be derived from the direction of the wall +/// andcan be derived from the direction of the wall /// axis. With the DirectionSense(positive in /// this example) the individual IfcMaterialLayers are /// assigned consecutively right-to-left or left-to-right. For a /// curved wall, "direction denoting the wall thickness" can be /// derived from the direction of the wall axis, and it will remain /// perpendicular to the wall path. The -/// DirectionSenseÿapplies as well. +/// DirectionSenseapplies as well. /// /// NOTE  According to the IfcWallStandardCase material use /// definition the LayerSetDirection for @@ -15033,17 +15013,17 @@ public: /// /// Figure 287 shows an example of the use of IfcMaterialLayerSetUsage aligned to a slab. /// -/// EXAMPLE ÿFor a slab with perpendicular +/// EXAMPLE For a slab with perpendicular /// extruded geometric representation, the LayerSetDirection /// will coincide with the extrusion direction (in positive or /// negative sense). In this example, the material layer set base is /// the extruded profile and consistent with the -/// IfcExtrudedAreaSolid.Position,ÿwith the +/// IfcExtrudedAreaSolid.Position,with the /// DirectionSensebeing positive, the /// individual IfcMaterialLayers are built up from the base /// towards positive z direction in this case. /// -/// NOTE ÿAccording to the IfcSlabStandardCase +/// NOTE According to the IfcSlabStandardCase /// material use definition the LayerSetDirection for /// IfcSlabStandardCase is always AXIS3 (i.e. along the /// z-axis). @@ -15052,7 +15032,7 @@ public: /// /// Figure 288 shows an example of the use of IfcMaterialLayerSetUsage aligned to a roof slab with non-perpendicular extrusion. /// -/// EXAMPLE ÿFor a slab with non-perpendicular +/// EXAMPLE For a slab with non-perpendicular /// extruded geometric representation, the guidelines above apply as /// well. The material layer thickness and the /// OffsetFromReferenceLine is always measured @@ -15101,11 +15081,11 @@ public: }; /// IfcMaterialProfileSetUsage determines the usage of IfcMaterialProfileSet in terms of its location relative to the associated element geometry. The location of a material profile set shall be compatible with the building element geometry (that is, material profiles shall fit inside the element geometry). The rules to ensure the compatibility depend on the type of the building element. For building elements with shape representations which are based on extruded solids, this is accomplished by referring to the identical profile definition in the shape model as in the material profile set. /// -/// NOTE ÿ Refer to the implementation guide and agreements for more information on matching between building element geometry and material profile set usage. -/// NOTE ÿ The referenced IfcMaterialProfileSet may represent a single material +/// NOTE Refer to the implementation guide and agreements for more information on matching between building element geometry and material profile set usage. +/// NOTE The referenced IfcMaterialProfileSet may represent a single material /// profile, or a composite profile with two or more material profiles. /// -/// HISTORYÿNew Entity in IFC2x4. +/// HISTORYNew Entity in IFC2x4. class IFC_PARSE_API IfcMaterialProfileSetUsage : public IfcMaterialUsageDefinition { public: /// The IfcMaterialProfileSet set to which the usage is applied. @@ -15134,7 +15114,7 @@ public: }; /// IfcMaterialProfileSetUsageTapering specifies dual material profile sets in association with tapered prismatic (beam- or column-like) elements. /// -/// HISTORYÿ New entity in IFC 2x4 +/// HISTORY New entity in IFC 2x4 /// /// Usage with tapered building elements /// The inherited attribute ForProfileSet specifies the @@ -15210,7 +15190,7 @@ public: }; /// IfcMaterialRelationship defines a relationship between part and whole in material definitions (as in composite materials). The parts, expressed by the set of RelatedMaterials, are material constituents of which a single material aggregate is composed. /// -/// HISTORYÿNew Entity in IFC2x4 +/// HISTORYNew Entity in IFC2x4 class IFC_PARSE_API IfcMaterialRelationship : public IfcResourceLevelRelationship { public: /// Reference to the relating material (the composite). @@ -17482,7 +17462,7 @@ public: }; /// IfcTypeProcess defines a /// specific (or type) definition of a process or activity without -/// being assigned to a schedule or a time.ÿIt is used to define a +/// being assigned to a schedule or a time.It is used to define a /// process or activity specification, that is, the specific process or /// activity information that is common to all occurrences that are /// defined for that process or activity type. @@ -17538,29 +17518,29 @@ public: /// definition of a product without being already inserted into a /// project structure (without having a placement), and not being /// included into the geometric representation context of the -/// project.ÿIt is used to define a product specification, that is, the +/// project.It is used to define a product specification, that is, the /// specific product information that is common to all occurrences /// of that product type. /// /// An IfcTypeProduct may have a list of property set /// attached and an optional set of product representations. Values /// of these properties and the representation maps are common to all -/// occurrencesÿof that product type.ÿThe type occurrence +/// occurrencesof that product type.The type occurrence /// relationship is realized using the objectified relationship /// IfcRelDefinesByType. /// -/// NOTE 1ÿ The product representations are +/// NOTE 1 The product representations are /// defined as representation maps, which gets assigned by a product /// instance through the representation item(s) being an /// IfcShapeRepresentation and having Items of -/// typeÿIfcMappedItem. -/// NOTE 2 ÿThe representations at the occurrence +/// typeIfcMappedItem. +/// NOTE 2 The representations at the occurrence /// level (represented by subtypes of IfcProduct) can override -/// the specific representations at the type level, ÿ +/// the specific representations at the type level, /// /// for geometric representations: a Cartesian /// transformation operator can be applied at the occurrence level, -/// andÿ +/// and /// for property sets: A property within an occurrence /// property set, assigned at the product occurrence, overrides the /// same property assigned to the product type. @@ -17619,7 +17599,7 @@ public: IfcTypeProduct (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< ::Ifc4x2::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< ::Ifc4x2::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag); typedef IfcTemplatedEntityList< IfcTypeProduct > list; }; -/// IfcTypeResource defines a specific (or type) definition of a resource.ÿIt is used to define a resource specification (the specific resource, that is common to all occurrences that are defined for that resource) and could act as a resource template. +/// IfcTypeResource defines a specific (or type) definition of a resource.It is used to define a resource specification (the specific resource, that is common to all occurrences that are defined for that resource) and could act as a resource template. /// /// An IfcTypeResource may have a list of property sets attached. Values of these properties are common to all occurrences of that resource type. The type occurrence relationship is realized using the objectified relationship IfcRelDefinesByType. /// @@ -18801,9 +18781,9 @@ public: }; /// IfcCsgPrimitive3D is an abstract supertype of all three dimensional primitives used as either tree root item, or as Boolean results within a CSG solid model. All 3D CSG primitives are defined within a three-dimensional placement coordinate system. /// -/// NOTEÿ No directly corresponding ISO 10303-42 entity, the select type primitive_3d covers the same individual 3D CSG primitives, the position attribute has been added to apply equally to all subtypes. Please refer to ISO/IS 10303-42:1994, p. 234 for the final definition of the formal standard. +/// NOTE No directly corresponding ISO 10303-42 entity, the select type primitive_3d covers the same individual 3D CSG primitives, the position attribute has been added to apply equally to all subtypes. Please refer to ISO/IS 10303-42:1994, p. 234 for the final definition of the formal standard. /// -/// HISTORYÿ New entity in IFC2x3. +/// HISTORY New entity in IFC2x3. class IFC_PARSE_API IfcCsgPrimitive3D : public IfcGeometricRepresentationItem { public: /// The placement coordinate system to which the parameters of each individual CSG primitive apply. @@ -19004,7 +18984,7 @@ public: /// is related by the inverse relationship IsDefinedBy pointing to IfcRelDefinedByType. The IfcDoorStyle /// also defines the particular attributes for the lining, IfcDoorLiningProperties, and panels, IfcDoorPanelProperties. /// -/// HISTORYÿNew entity in IFC Release 2x. +/// HISTORYNew entity in IFC Release 2x. /// /// IFC2x4 CHANGE The entity is deprecated and shall not be used. The new entity /// IfcDoorType shall be used instead. @@ -19020,7 +19000,7 @@ public: /// The IfcDoorStyleOperationTypeEnum defines the general layout of the door style. Depending on the enumerator, the /// appropriate instances of IfcDoorLiningProperties and IfcDoorPanelProperties are attached in the list of /// HasPropertySets. The IfcDoorStyleOperationTypeEnum mainly determines the hinge side (left hung, or right hung), the -/// operation (swinging, sliding, folding, etc.)ÿand the number of panels. +/// operation (swinging, sliding, folding, etc.)and the number of panels. /// /// See geometry use definitions at IfcDoorStyleOperationTypeEnum for the correct usage of opening symbols for different operation types. class IFC_PARSE_API IfcDoorStyle : public IfcTypeProduct { @@ -19677,7 +19657,7 @@ public: /// product representations. It is used to define an element /// specification (i.e. the specific product information, that is /// common to all occurrences of that product type). -/// NOTEÿ The product representations are defined +/// NOTE The product representations are defined /// as representation maps (at the level of the supertype /// IfcTypeProduct, which gets assigned by an element /// occurrence instance through the @@ -19692,7 +19672,7 @@ public: /// The occurrences of the IfcFurnishingElementType are /// represented by instances of IfcFurnishingElement (or its /// subtypes). -/// HISTORYÿNew entity in +/// HISTORYNew entity in /// Release IFC2x Edition 2. /// IFC2x3 CHANGE The entity has been /// made non-abstract @@ -19763,11 +19743,11 @@ public: /// IfcGeographicElementType is used to define an /// element specification of a geographic element (i.e. the /// specific product information, that is common to all -/// occurrences of that product type).ÿGeographic element types +/// occurrences of that product type).Geographic element types /// include for different types of element that may be used to /// represent information within a geographical landscape /// external to a building. Within the world of geographic -/// information they are referred to generally as 'features'.ÿ +/// information they are referred to generally as 'features'. /// Geographic element types includes for many possibilities: /// /// linear elements such as sections of a roadway @@ -19786,9 +19766,9 @@ public: /// /// The specification of the specific types are given by the /// inherited attribute IfcElementType.ElementType given -/// as an IfcLabel.ÿ +/// as an IfcLabel. /// -/// NOTE ÿThis is due to the range of choices of +/// NOTE This is due to the range of choices of /// element type thyat are available and their expression in /// different languages. It is not considered possible to /// create a reasonably full list of types within an @@ -19796,14 +19776,14 @@ public: /// relevant type be drawn from an available 'feature /// catalog'. /// -/// HISTORYÿ New entity in +/// HISTORY New entity in /// Release IFC2x Edition 4. /// /// Feature Catalog Use Definition /// /// Geographic element types are frequently identified in /// feature catalogs that are produced for particular -/// purposes.ÿThe IfcGeographicElementType entity +/// purposes.The IfcGeographicElementType entity /// enables the continued use of existing feature catalogs /// through capture of their identity and attributes. /// @@ -20785,7 +20765,7 @@ public: /// and the second value specifying the lower bound. It defines /// a property - value bound (min-max) combination for which /// the property Name, an optional -/// Description,ÿthe optional UpperBoundValue +/// Description,the optional UpperBoundValue /// with measure type, the optional LowerBoundValue with /// measure type, and the optional Unit is given. /// @@ -20871,7 +20851,7 @@ public: /// /// kg /// -/// HISTORY ÿNew entity in IFC Release 2x. +/// HISTORY New entity in IFC Release 2x. /// /// IFC2x2 CHANGE  The attribute type of the attribute UpperBoundValue and LowerBoundValue has been changed from mandatory to optional with upward compatibility for file based exchange. /// @@ -20916,7 +20896,7 @@ public: /// value, IfcPropertyEnumeratedValue, defines a property /// object which has a value assigned that is chosen from an /// enumeration. It defines a property - value combination for which -/// theÿproperty Name, an optional Description,ÿthe +/// theproperty Name, an optional Description,the /// optional EnumerationValues /// with measure type and optionally an Unit is given. /// @@ -20940,18 +20920,18 @@ public: /// (see IfcPropertyEnumeration). This enables applications to /// use an enumeration value as a property within a property set /// (IfcPropertySet) including the allowed list of -/// values.ÿ +/// values. /// /// NOTE  An IfcPropertyEnumeratedValue may be exchanged with no values assigned yet. In this case the EnumerationValues are set to NIL. /// /// Examples of a property with enumerated value are: /// -/// Nameÿ +/// Name /// Value (EnumerationValue) /// Type (through /// IfcValue) /// ref.IfcPropertyEnumeration -/// (Name)ÿ +/// (Name) /// /// BladeAction /// Opposed @@ -20984,7 +20964,7 @@ public: /// referenced by multiple instances of /// IfcPropertyEnumeratedValue. /// -/// HISTORY ÿNew Entity in IFC Release 2.0, capabilities enhanced in IFC2x. The entity has +/// HISTORY New Entity in IFC Release 2.0, capabilities enhanced in IFC2x. The entity has /// been renamed from IfcEnumeratedProperty in IFC2x. /// /// IFC2x4 CHANGE Attribute EnumerationValues has been made OPTIONAL with upward @@ -21012,9 +20992,9 @@ public: /// An IfcPropertyListValue /// defines a property that has several (numeric or /// descriptive) values assigned, these values are given by an -/// ordered list.ÿIt defines a property - list value +/// ordered list.It defines a property - list value /// combination for which the property Name, an optional -/// Description,ÿthe optional ListValues with measure +/// Description,the optional ListValues with measure /// type and optionally an Unit is given. /// /// An IfcPropertyListValue is a list of values. The @@ -21260,7 +21240,7 @@ public: /// IfcPropertySingleValue defines a property object which has /// a single (numeric or descriptive) value assigned. It defines a /// property - single value combination for which the property -/// Name, an optional Description,ÿand an optional +/// Name, an optional Description,and an optional /// NominalValue with measure type is provided. In addition, /// the default unit as specified within the project unit context can /// be overriden by assigning an Unit. @@ -21297,9 +21277,9 @@ public: /// IfcThermalTransmittanceMeasure /// W/(m2K) /// -/// HISTORY ÿNew entity in IFC Release 1.0. The entity has been renamed from IfcSimpleProperty in IFC Release 2x. +/// HISTORY New entity in IFC Release 1.0. The entity has been renamed from IfcSimpleProperty in IFC Release 2x. /// -/// IFC2x3 CHANGE ÿAttribute NominalValue has been made OPTIONAL with upward compatibility for file based exchange. +/// IFC2x3 CHANGE Attribute NominalValue has been made OPTIONAL with upward compatibility for file based exchange. class IFC_PARSE_API IfcPropertySingleValue : public IfcSimpleProperty { public: /// Whether the optional attribute NominalValue is defined for this IfcPropertySingleValue @@ -21390,8 +21370,6 @@ public: /// /// dB /// -/// ÿ -/// /// 200 /// /// IfcFrequencyMeasure @@ -21400,12 +21378,6 @@ public: /// /// IfcNumericMeasure /// -/// ÿ -/// -/// ÿ -/// -/// ÿ -/// /// 400 /// /// IfcFrequencyMeasure @@ -21414,12 +21386,6 @@ public: /// /// IfcNumericMeasure /// -/// ÿ -/// -/// ÿ -/// -/// ÿ -/// /// 800 /// /// IfcFrequencyMeasure @@ -21428,12 +21394,6 @@ public: /// /// IfcNumericMeasure /// -/// ÿ -/// -/// ÿ -/// -/// ÿ -/// /// 1600 /// /// IfcFrequencyMeasure @@ -21442,12 +21402,6 @@ public: /// /// IfcNumericMeasure /// -/// ÿ -/// -/// ÿ -/// -/// ÿ -/// /// 3200 /// /// IfcFrequencyMeasure @@ -21456,10 +21410,6 @@ public: /// /// IfcNumericMeasure /// -/// ÿ -/// -/// ÿ -/// /// HISTORY: New entity in IFC2x. /// /// IFC2x4 CHANGE  Attributes DefiningValues and DefinedValues have been made OPTIONAL with upward compatibility for file based exchange. The attribute CurveInterpolation has been added.. @@ -21865,9 +21815,9 @@ public: }; /// The objectified relationship IfcRelAssignsToControl handles the assignment of a control (represented by subtypes of IfcControl) to other objects (represented by subtypes of IfcObject, with the exception of controls). /// -/// EXAMPLEÿ The assignment of a performance history (as subtype of IfcControl) for a building service element (as subtype of IfcObject) is an application of this generic relationship. +/// EXAMPLE The assignment of a performance history (as subtype of IfcControl) for a building service element (as subtype of IfcObject) is an application of this generic relationship. /// -/// HISTORYÿ New Entity in IFC Release 2.0. Has been renamed from IfcRelControls in IFC Release 2x. +/// HISTORY New Entity in IFC Release 2.0. Has been renamed from IfcRelControls in IFC Release 2x. class IFC_PARSE_API IfcRelAssignsToControl : public IfcRelAssigns { public: /// Reference to the IfcControl that applies a control upon objects. @@ -21963,14 +21913,14 @@ public: IfcRelAssignsToProcess (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, IfcTemplatedEntityList< ::Ifc4x2::IfcObjectDefinition >::ptr v5_RelatedObjects, boost::optional< ::Ifc4x2::IfcObjectTypeEnum::Value > v6_RelatedObjectsType, ::Ifc4x2::IfcProcessSelect* v7_RelatingProcess, ::Ifc4x2::IfcMeasureWithUnit* v8_QuantityInProcess); typedef IfcTemplatedEntityList< IfcRelAssignsToProcess > list; }; -/// The objectified relationshipÿIfcRelAssignsToProduct handles the assignment of objects (subtypes of IfcObject) to a product (subtypes of IfcProduct). The Name attribute should be used to classify the usage of the IfcRelAssignsToProduct objectified relationship. The following Name values are proposed: +/// The objectified relationshipIfcRelAssignsToProduct handles the assignment of objects (subtypes of IfcObject) to a product (subtypes of IfcProduct). The Name attribute should be used to classify the usage of the IfcRelAssignsToProduct objectified relationship. The following Name values are proposed: /// -/// 'Context' : Assignment of a context specific representation, such as of structural members to a different context representation (with potentially different decomposition breakdown) such as of building elementsÿfor a specificÿcontext specific representation.ÿ +/// 'Context' : Assignment of a context specific representation, such as of structural members to a different context representation (with potentially different decomposition breakdown) such as of building elementsfor a specificcontext specific representation. /// 'View' : Assignment of a product (via RelatingProduct) that is decomposed according to a discipline view, to another product (via RelatedObjects) that is decomposed according to a different discipline view. An example is the assignment of the architectural slab to a different decomposition of the pre manufactured sections of a slab (under a precast concrete discipline view). /// /// HISTORY New Entity in IFC Release 2x /// -/// IFC2x3 CHANGE ÿThe reference of a product within a spatial structure is now handled by a new relationship object IfcRelReferencedInSpatialStructure. The IfcRelAssignsToProduct shall not be used to represent this relation from IFC2x3 onwards. +/// IFC2x3 CHANGE The reference of a product within a spatial structure is now handled by a new relationship object IfcRelReferencedInSpatialStructure. The IfcRelAssignsToProduct shall not be used to represent this relation from IFC2x3 onwards. class IFC_PARSE_API IfcRelAssignsToProduct : public IfcRelAssigns { public: /// Reference to the product or product type to which the objects are assigned to. @@ -22352,8 +22302,6 @@ public: /// Figure 117 illustrates using the IfcRelConnectsPathElements for a "L" type connection between two instances of IfcWallStandardCase. /// NOTE  The two wall axes connect in each case. /// -/// ÿ -/// /// Figure 116 — Path connection T-Type /// Figure 117 — Path connection L-Type class IFC_PARSE_API IfcRelConnectsPathElements : public IfcRelConnectsElements { @@ -22650,8 +22598,6 @@ public: /// Containment Use Definition /// Figure 39 shows the use of IfcRelContainedInSpatialStructure to assign a stair and two walls to two different levels within the spatial structure. /// -/// ÿ -/// /// Figure 39 — Relationship for spatial structure containment class IFC_PARSE_API IfcRelContainedInSpatialStructure : public IfcRelConnects { public: @@ -22702,7 +22648,7 @@ public: typedef IfcTemplatedEntityList< IfcRelCoversBldgElements > list; }; /// Definition from IAI: The objectified relationship, -/// IfcRelCoversSpace, relatesÿa space object to one or +/// IfcRelCoversSpace, relatesa space object to one or /// many coverings, which faces (or is assigned to) the space. /// /// NOTE Particularly floorings, ceilings and wall @@ -22725,7 +22671,7 @@ public: /// NOTE View definition may determine the necessity /// to use either of the two relationship elements /// -/// HISTORYÿ New Entity in Release +/// HISTORY New Entity in Release /// IFC 2x Edition 3. class IFC_PARSE_API IfcRelCoversSpaces : public IfcRelConnects { public: @@ -22812,7 +22758,7 @@ public: /// assign a property set to an object instance /// assign a property set template to a property set /// -/// EXAMPLE ÿSeveral instances of windows within +/// EXAMPLE Several instances of windows within /// the IFC project model may be of the same (catalogue or /// manufacturer) type. Thereby they share the same properties. This /// relationship is established by the subtype @@ -22820,7 +22766,7 @@ public: /// assigning an IfcWindowStyle to multiple occurrences /// IfcWindow. /// -/// EXAMPLE ÿThe (same) property set, e.g.ÿ +/// EXAMPLE The (same) property set, e.g. /// Pset_ProductManufacturerInfo, keeping the manufacturer name, /// label and production year of a product, can be assigned to one, /// or many instances of furnishing. This relationship is established @@ -22983,18 +22929,16 @@ public: /// /// Pset_WallCommon /// Pset_WallCommon -/// ÿ /// -/// ÿ-ÿExtendToStructure = TRUE -/// ÿ +/// -ExtendToStructure = TRUE +/// /// TRUE /// -/// ÿ -/// ÿ-ÿThermalTransmittance = 0.375 +/// -ThermalTransmittance = 0.375 /// 0.375 /// -/// ÿ-ÿExtendToStructure = FALSE -/// ÿ-ÿExtendToStructure = TRUE +/// -ExtendToStructure = FALSE +/// -ExtendToStructure = TRUE /// FALSE class IFC_PARSE_API IfcRelDefinesByType : public IfcRelDefines { public: @@ -23082,7 +23026,7 @@ public: /// roles. This is controlled by the attribute /// ImpliedOrder. /// -/// ImpliedOrder=TRUEÿ The RelatingElement +/// ImpliedOrder=TRUE The RelatingElement /// constitutes the primary element of the interference relationship. /// If the interference is to be resolved by subtracting the /// overlapping part, it should be subtracted from the @@ -23091,16 +23035,16 @@ public: /// InterferenceGeometry. This would be the case in /// interference relationships where the RelatedElement /// creates a void in the RelatingElement dynamically. -/// ImpliedOrder=FALSEÿ The RelatingElement and +/// ImpliedOrder=FALSE The RelatingElement and /// RelatedElement have no priority among each other. If the /// interference is to be resolved then no information about whether /// the InterferenceGeometry should be subtracted from the /// RelatingElement or thed RelatedElement can be /// traced. This would be the case for clash detection results. -/// ImpliedOrder=UNKNOWÿ No information about the +/// ImpliedOrder=UNKNOW No information about the /// priorities is provided. /// -/// HISTORYÿ New entity in +/// HISTORY New entity in /// IFC2x4. class IFC_PARSE_API IfcRelInterferesElements : public IfcRelConnects { public: @@ -23234,14 +23178,14 @@ public: /// The objectified relationship, /// IfcRelReferencedInSpatialStructure is used to /// assign elements in addition to those levels of the project -/// spatialÿstructure, in which they are referenced, but not -/// primarily contained.ÿ +/// spatialstructure, in which they are referenced, but not +/// primarily contained. /// -/// NOTE ÿThe primary containment relationship between +/// NOTE The primary containment relationship between /// an element and the spatial structure is handled -/// byÿIfcRelContainsInSpatialStructure. +/// byIfcRelContainsInSpatialStructure. /// -/// Any element can be referencedÿto zero, one or several +/// Any element can be referencedto zero, one or several /// levels of the spatial structure. Whereas the /// IfcRelContainsInSpatialStructure relationship is /// required to be hierarchical (an element can only be @@ -23274,10 +23218,10 @@ public: /// structure elements depending on the context. /// /// HISTORY New entity -/// inÿRelease IFC2x Edition 3. +/// inRelease IFC2x Edition 3. /// /// Use Definition -/// Figure 41 shows the use of IfcRelContainedInSpatialStructure and IfcRelReferencedInSpatialStructure to assign an IfcCurtainWallÿto two different levels within the spatial structure. It is primarily contained within the ground floor, and additionally referenced within the first and second floor. +/// Figure 41 shows the use of IfcRelContainedInSpatialStructure and IfcRelReferencedInSpatialStructure to assign an IfcCurtainWallto two different levels within the spatial structure. It is primarily contained within the ground floor, and additionally referenced within the first and second floor. /// /// Figure 41 — Relationship for spatial structure referencing class IFC_PARSE_API IfcRelReferencedInSpatialStructure : public IfcRelConnects { @@ -23404,12 +23348,12 @@ public: /// HISTORY New entity in IFC /// Release 1.0 /// -/// IFC2x PLATFORM CHANGEÿ The +/// IFC2x PLATFORM CHANGE The /// data type of the attributeRelatedBuildings has been /// changed from IfcBuilding to its supertype /// IfcSpatialStructureElement with upward compatibility /// for file based exchange. The name -/// IfcRelServicesBuildings is a knownÿanomaly, as the +/// IfcRelServicesBuildings is a knownanomaly, as the /// relationship is not restricted to buildings anymore. class IFC_PARSE_API IfcRelServicesBuildings : public IfcRelConnects { public: @@ -24348,7 +24292,7 @@ public: /// specification (i.e. the specific element information, that is /// common to all occurrences of that element type). /// -/// NOTE ÿThe product representations are defined as +/// NOTE The product representations are defined as /// representation maps (at the level of the supertype /// IfcTypeProduct, which gets assigned by an element /// occurrence instance through the @@ -24357,11 +24301,11 @@ public: /// /// A spatial element type is used to define the common properties /// of a certain type of a spatial structure element that may be -/// applied to many instances of thatÿtype to assign a specific +/// applied to many instances of thattype to assign a specific /// style. Spatial element types (i.e. the instantiable subtypes) may /// be exchanged without being already assigned to occurrences. /// -/// NOTE ÿThe spatial element types are often used to +/// NOTE The spatial element types are often used to /// represent catalogues of predefined spatial types for shared /// attributes, less so for sharing a common representation /// map. @@ -24370,7 +24314,7 @@ public: /// IfcSpatialElementType are represented by instances of /// subtypes of the abstract IfcSpatialElement. /// -/// HISTORY ÿNew entity in Release +/// HISTORY New entity in Release /// IFC2x Edition 4. class IFC_PARSE_API IfcSpatialElementType : public IfcTypeProduct { public: @@ -24483,7 +24427,7 @@ public: /// specification (i.e. the specific element information, that /// is common to all occurrences of that element type). /// -/// NOTE ÿThe product representations are defined as +/// NOTE The product representations are defined as /// representation maps (at the level of the supertype /// IfcTypeProduct, which gets assigned by an element /// occurrence instance through the @@ -24492,22 +24436,22 @@ public: /// /// A spatial structure element type is used to define the /// common properties of a certain type of a spatial structure -/// element that may be applied to many instances of thatÿtype +/// element that may be applied to many instances of thattype /// to assign a specific style. Spatial structure element types /// (i.e. the instantiable subtypes) may be exchanged without /// being already assigned to occurrences. /// -/// NOTE ÿThe spatial structure element types are +/// NOTE The spatial structure element types are /// often used to represent catalogues of predefined spatial /// types for shared attributes, less so for sharing a common /// representation map. /// /// The occurrences of subtypes of the -/// abstractÿIfcSpatialStructureElementType are +/// abstractIfcSpatialStructureElementType are /// represented by instances of subtypes of /// IfcSpatialStructureElement. /// -/// HISTORY ÿNew entity in +/// HISTORY New entity in /// Release IFC2x Edition 3. class IFC_PARSE_API IfcSpatialStructureElementType : public IfcSpatialElementType { public: @@ -24586,7 +24530,7 @@ public: /// information, that is common to all occurrences of that space /// type). /// -/// NOTE ÿThe product representations are defined as +/// NOTE The product representations are defined as /// representation maps (at the level of the supertype /// IfcTypeProduct, which gets assigned by an element /// occurrence instance through the @@ -24598,7 +24542,7 @@ public: /// that type to assign a specific style. Space types may be /// exchanged without being already assigned to occurrences. /// -/// NOTE ÿThe spatial zone types are often used to +/// NOTE The spatial zone types are often used to /// represent space catalogues, less so for sharing a common /// representation map. Spatial zone types in a space catalogue share /// same space classification and a common set of space requirement @@ -24607,7 +24551,7 @@ public: /// The occurrences of IfcSpatialZoneType are represented /// by instances of IfcSpatialZone. /// -/// HISTORY ÿNew entity in Release +/// HISTORY New entity in Release /// IFC2x Edition 4. class IFC_PARSE_API IfcSpatialZoneType : public IfcSpatialElementType { public: @@ -25777,7 +25721,7 @@ public: /// casements. The parameter of the IfcWindowLiningProperties /// define the geometrically relevant parameter of the lining. /// -/// NOTEÿ The IfcWindowLiningProperties +/// NOTE The IfcWindowLiningProperties /// shall only be applied to construct the 3D shape of a window, if /// the attribute IfcWindowStyle.ParameterTakesPrecedence is /// set TRUE. @@ -25791,7 +25735,7 @@ public: /// HISTORY New Entity in IFC Release 2.0. Has been renamed from IfcWindowLining in /// IFC Release 2x. /// -/// IFC2x4 CHANGEÿ The following attributes have been added LiningOffset, +/// IFC2x4 CHANGE The following attributes have been added LiningOffset, /// LiningToPanelOffsetX, LiningToPanelOffsetY. The /// attribute ShapeAspectStyle is deprecated and shall no /// longer be used. Supertype changed to new @@ -26094,9 +26038,9 @@ public: /// The voids are represented as closed shells which are defined so /// that the shell normal point into the void. /// -/// NOTEÿ Corresponding ISO 10303-42 entity: brep_with_voids (see note above). Please refer to ISO/IS 10303-42:1994, p. 173 for the final definition of the formal standard. In IFC advanced B-rep with voids is represented by this subtype IfcAdvancedBrepWithVoids and not defined via an implicit ANDOR supertype constraint as in ISO/IS 10303-42:1994 between an instance of manifold_solid_brep AND brep_with_voids. This change has been made due to the fact, that only ONEOF supertype constraint is allowed within the IFC object model. +/// NOTE Corresponding ISO 10303-42 entity: brep_with_voids (see note above). Please refer to ISO/IS 10303-42:1994, p. 173 for the final definition of the formal standard. In IFC advanced B-rep with voids is represented by this subtype IfcAdvancedBrepWithVoids and not defined via an implicit ANDOR supertype constraint as in ISO/IS 10303-42:1994 between an instance of manifold_solid_brep AND brep_with_voids. This change has been made due to the fact, that only ONEOF supertype constraint is allowed within the IFC object model. /// -/// HISTORYÿ New entity in IFC2x4 +/// HISTORY New entity in IFC2x4 /// /// Informal propositions: /// @@ -26718,7 +26662,7 @@ public: /// IfcBuildingStorey.Decomposes -- referencing /// (IfcBuilding || IfcBuildingStorey) by /// IfcRelAggregates.RelatingObject, If it refers to another -/// instance ofÿIfcBuildingStorey, the referenced +/// instance ofIfcBuildingStorey, the referenced /// IfcBuildingStorey needs to have a different and higher /// CompositionType, i.e. COMPLEX (if the other /// IfcBuildingStorey has ELEMENT), or ELEMENT (if the other @@ -26726,7 +26670,7 @@ public: /// IfcBuildingStorey.IsDecomposedBy -- referencing /// (IfcBuildingStorey || IfcSpace) by /// IfcRelAggregates.RelatedObjects. If it refers to another -/// instance ofÿIfcBuildingStorey, the referenced +/// instance ofIfcBuildingStorey, the referenced /// IfcBuildingStorey needs to have a different and lower /// CompositionType, i.e. ELEMENT (if the other /// IfcBuildingStorey has COMPLEX), or PARTIAL (if the other @@ -27742,7 +27686,7 @@ public: /// of product representations. It is used to define an element /// specification (i.e. the specific product information, that is /// common to all occurrences of that product type). -/// NOTEÿ The product representations are defined +/// NOTE The product representations are defined /// as representation maps (at the level of the supertype /// IfcTypeProduct, which gets assigned by an element /// occurrence instance through the @@ -27757,9 +27701,9 @@ public: /// The occurrences of the IfcDistributionElementType are /// represented by instances of IfcDistributionElement (or its /// subtypes). -/// HISTORYÿ New entity in +/// HISTORY New entity in /// Release IFC2x Edition 2. -/// IFC2x3 CHANGEÿ The entity has been made +/// IFC2x3 CHANGE The entity has been made /// non-abstract /// IFC2x4 CHANGE The entity is marked /// as deprecated for instantiation - will be made ABSTRACT after @@ -27851,7 +27795,7 @@ public: /// (IfcDoorLiningProperties) define the geometrically /// relevant parameter of the lining. /// -/// NOTEÿ The IfcDoorLiningProperties +/// NOTE The IfcDoorLiningProperties /// shall only be applied to construct the 3D shape of a door, if the /// attribute IfcDoorStyle.ParameterTakesPrecedence is set /// TRUE. @@ -27864,7 +27808,7 @@ public: /// /// HISTORY New entity in IFC Release 2.0. Has been renamed from IfcDoorLining in IFC Release 2x. /// -/// IFC2x4 CHANGEÿ The following attributes have been added LiningToPanelOffsetX, LiningToPanelOffsetY. The attribute ShapeAspectStyle is deprecated and shall no longer be used. Supertype changed to new IfcPreDefinedPropertySet. +/// IFC2x4 CHANGE The following attributes have been added LiningToPanelOffsetX, LiningToPanelOffsetY. The attribute ShapeAspectStyle is deprecated and shall no longer be used. Supertype changed to new IfcPreDefinedPropertySet. /// /// Geometry use definitions /// The IfcDoorLiningProperties does not hold its own @@ -27898,7 +27842,7 @@ public: /// LiningOffset : given if lining edge has an offset to /// the x axis of the local placement. /// -/// NOTE ÿIn addition to theÿLiningOffset, +/// NOTE In addition to theLiningOffset, /// the local placement of the IfcDoor can already have an /// offset to the wall edge and thereby shift the lining along the y /// axis. The actual position of the lining is calculated from the @@ -28040,7 +27984,7 @@ public: /// included in the same list of the IfcDoorStyle using the /// IfcPropertySet for dynamic extensions. /// -/// HISTORYÿ New Entity in IFC Release 2.0. +/// HISTORY New Entity in IFC Release 2.0. /// /// IFC2x4 CHANGE Supertype changed to new IfcPreDefinedPropertySet. /// @@ -28137,7 +28081,7 @@ public: /// IfcDoorTypeOperationEnum mainly determines the hinge side /// (left hung, or right hung), the operation (swinging, sliding, /// folding, etc.) and the number of panels. -/// Note ÿThere are different definitions in +/// Note There are different definitions in /// various countries on what a left opening or left hung or left /// swing door is (same for right). Therefore the IFC definition may /// derivate from the local standard and may need to be mapped @@ -28257,7 +28201,7 @@ public: /// 'white', /// 'by layer' /// -/// NOTE ÿThe IfcDraughtingPreDefinedColour is an entity that had been adopted from ISO 10303-202, Industrial automation systems and integration—Product data representation and exchange, Part 202: Application protocol: Associative draughting. +/// NOTE The IfcDraughtingPreDefinedColour is an entity that had been adopted from ISO 10303-202, Industrial automation systems and integration—Product data representation and exchange, Part 202: Application protocol: Associative draughting. /// /// The following table states the RGB values associated with the names given by the IfcDraughtingPreDefinedColour. /// @@ -28310,9 +28254,9 @@ public: /// colour values obtained from /// IfcPresentationLayerWithStyle. /// -/// NOTE ÿCorresponding ISO 10303 name: draughting_pre_defined_colour. Please refer to ISO/IS 10303-202:1994 page 194 for the final definition of the formal standard. +/// NOTE Corresponding ISO 10303 name: draughting_pre_defined_colour. Please refer to ISO/IS 10303-202:1994 page 194 for the final definition of the formal standard. /// -/// HISTORY ÿNew entity in IFC2x2. +/// HISTORY New entity in IFC2x2. /// /// Informal proposition /// @@ -28475,7 +28419,7 @@ public: /// SELF\IfcObjectDefinition.IsDecomposedBy. Components of an /// assembly are described by instances of subtypes of /// IfcElement. -/// In this case, the containedÿsubtypes of IfcElement +/// In this case, the containedsubtypes of IfcElement /// shall not be additionally contained in the project spatial /// hierarchy, i.e. the inverse attribute /// SELF\IfcElement.ContainedInStructure of those @@ -28509,7 +28453,7 @@ public: /// have an explicit geometric representation. In some cases it may /// be useful to also expose an own explicit representation of the /// aggregate. -/// NOTEÿ View definitions or implementer +/// NOTE View definitions or implementer /// agreements may further constrain the applicability of certain /// shape representations at the IfcElementAssembly in respect /// of the shape representations of its parts. @@ -28544,7 +28488,7 @@ public: /// used to define an element specification (i.e. the specific /// product information, that is common to all occurrences of that /// product type). -/// NOTEÿ The product representations are defined +/// NOTE The product representations are defined /// as representation maps (at the level of the supertype /// IfcTypeProduct, which gets assigned by an element /// occurrence instance through the @@ -28558,7 +28502,7 @@ public: /// occurrences. /// The occurrences of the IfcElementAssemblyType are /// represented by instances of IfcElementAssembly. -/// HISTORYÿ New entity in +/// HISTORY New entity in /// Release IFC2x Edition 4. class IFC_PARSE_API IfcElementAssemblyType : public IfcElementType { public: @@ -29017,11 +28961,11 @@ public: /// which are defined so that the shell normal point into the /// void. /// -/// NOTEÿ Corresponding ISO 10303-42 entity: brep_with_voids (see note above). Please refer to ISO/IS 10303-42:1994, p. 173 for the final definition of the formal standard. In IFC faceted B-rep with voids is represented by this subtype IfcFacetedBrepWithVoids and not defined via an implicit ANDOR supertype constraint as in ISO/IS 10303-42:1994 between an instance of faceted_brep AND brep_with_voids. This change has been made due to the fact, that only ONEOF supertype constraint is allowed within the IFC object model. +/// NOTE Corresponding ISO 10303-42 entity: brep_with_voids (see note above). Please refer to ISO/IS 10303-42:1994, p. 173 for the final definition of the formal standard. In IFC faceted B-rep with voids is represented by this subtype IfcFacetedBrepWithVoids and not defined via an implicit ANDOR supertype constraint as in ISO/IS 10303-42:1994 between an instance of faceted_brep AND brep_with_voids. This change has been made due to the fact, that only ONEOF supertype constraint is allowed within the IFC object model. /// -/// HISTORYÿ New entity in IFC Release 1.0 +/// HISTORY New entity in IFC Release 1.0 /// -/// IFC2x4 CHANGEÿ Subtyping changed from IfcManifoldSolidBrep to IfcFacetedBrep with upward compatibility for file based exchange. +/// IFC2x4 CHANGE Subtyping changed from IfcManifoldSolidBrep to IfcFacetedBrep with upward compatibility for file based exchange. /// /// Informal propositions: /// @@ -29751,8 +29695,8 @@ public: /// referred to as features, such as roads, zones, trees, etc. Common /// type information behind several occurrences of /// IfcGeographicElement is provided by the -/// IfcGeographicElementType.ÿ -/// HISTORY ÿNew entity in +/// IfcGeographicElementType. +/// HISTORY New entity in /// Release IFC2x4. /// Type Use Definition /// An IfcGeographicElement defines the occuurence of any @@ -29760,7 +29704,7 @@ public: /// geographic elements is handled by /// IfcGeographicElementType. The /// IfcGeographicElementType (if present) may establish the -/// commonÿtype name, usage (or predefined) type, common set of +/// commontype name, usage (or predefined) type, common set of /// properties and common shape representations (using /// IfcRepresentationMap). The IfcGeographicElementType /// is attached using the IfcRelDefinedByType.RelatingType @@ -29791,13 +29735,13 @@ public: /// relationships. The first (and in most implementation scenarios /// mandatory) relationship is the hierachical spatial containment, /// the second (optional) relationship is the aggregation within -/// anÿelement assembly. +/// anelement assembly. /// /// The IfcGeographicElement is places within the project /// spatial hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, refering to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcSite being the default container. /// The IfcGeographicElement may be aggregated into an /// element assembly using the objectified relationship @@ -29807,7 +29751,7 @@ public: /// IfcElementAssembly as a special focus subtype. In this /// case it should not be additionally contained in the project /// spatial hierarchy, -/// i.e.ÿSELF\IfcElement.ContainedInStructure should be +/// i.e.SELF\IfcElement.ContainedInStructure should be /// NIL. /// /// Geometry Use Definitions @@ -29834,15 +29778,15 @@ public: /// The standard representation of IfcGeographicElement is /// defined using 'GeometricCurveSet' or, when including surfaces, /// the 'GeometricSet' geometry. This also supports a 2D -/// representation of IfcGeographicElement.ÿ +/// representation of IfcGeographicElement. /// The following attribute values for the /// IfcShapeRepresentation holding this geometric /// representation shall be used: /// /// RepresentationIdentifier : 'FootPrint' for 2D /// representation -/// RepresentationType :ÿ'GeometricCurveSet' -/// orÿ'GeometricSet' +/// RepresentationType :'GeometricCurveSet' +/// or'GeometricSet' /// /// Annotation2D Representation /// Additional annotation objects, like text or hatching, and @@ -29857,7 +29801,7 @@ public: /// /// RepresentationIdentifier : 'FootPrint' for 2D /// representation -/// RepresentationType :ÿ'Annotation2D' +/// RepresentationType :'Annotation2D' /// /// SurfaceModel and Brep Representation /// For full 3D representations, the use of 'SurfaceModel' and @@ -29869,13 +29813,13 @@ public: /// /// RepresentationIdentifier : 'Body' for 3D /// representation -/// RepresentationType :ÿ'SurfaceModel' orÿ'Brep' +/// RepresentationType :'SurfaceModel' or'Brep' /// /// MappedRepresentation Representation /// When using the IfcGeographicElement in conjunction with /// the IfcGeographicElementType having /// RepresentationMaps defined, the geometric representation -/// ofÿIfcGeographicElementÿshall be based on +/// ofIfcGeographicElementshall be based on /// 'MappedRepresentation', referencing the /// IfcRepresentationMap given at the type object. /// The following attribute values for the @@ -29884,7 +29828,7 @@ public: /// /// RepresentationIdentifier : 'FootPrint' for 2D /// representation, 'Body' for 3D representation -/// RepresentationType :ÿ'MappedRepresentation' +/// RepresentationType :'MappedRepresentation' class IFC_PARSE_API IfcGeographicElement : public IfcElement { public: /// Whether the optional attribute PredefinedType is defined for this IfcGeographicElement @@ -29904,7 +29848,7 @@ public: /// /// EXAMPLE An example for a group is a system, since it groups elements under the aspect of their role, regardless of their position in a building. /// -/// A group can hold any collection of objects (beingÿproducts, processes, controls, resources, actors or other groups). Thus groups can be nested. An object can be part of zero, one, or many groups. Grouping relationships are not required to be hierarchical nor do they imply a dependency. +/// A group can hold any collection of objects (beingproducts, processes, controls, resources, actors or other groups). Thus groups can be nested. An object can be part of zero, one, or many groups. Grouping relationships are not required to be hierarchical nor do they imply a dependency. /// /// NOTE Use IfcRelDecomposes together with the appropriate subtypes of IfcProduct to define an hierarchical aggregation of products. /// @@ -30810,7 +30754,7 @@ public: /// IfcArbitraryClosedProfileDef shall be supported. /// Extrusion: The profile shall be extruded vertically, /// i.e. for wall openings along the extrusion direction of the -/// voided element.ÿ If multiple instances of +/// voided element. If multiple instances of /// IfcExtrudedAreaSolid are used, the extrusion direction /// should be equal. /// @@ -31913,7 +31857,7 @@ public: /// IfcShapeRepresentation.Item[1] being an /// IfcMappedItem. /// -/// An IfcRampTypeÿis used to define the common +/// An IfcRampTypeis used to define the common /// properties of a specific ramp that may be applied to many /// instances of that type to assign a specific style. /// Building element types (or the instantiable subtypes) @@ -32208,7 +32152,7 @@ public: /// IfcShapeRepresentation.Item[1] being an /// IfcMappedItem. /// -/// An IfcRoofTypeÿis used to define the common +/// An IfcRoofTypeis used to define the common /// properties of a specific roof that may be applied to many /// instances of that type to assign a specific style. Building /// element types (or the instantiable subtypes) may be @@ -33004,7 +32948,7 @@ public: /// space information, that is common to all occurrences of that /// space type. Space types may be exchanged without being already /// assigned to occurrences. -/// NOTE ÿThe space types are often used to +/// NOTE The space types are often used to /// represent space catalogues, less so for sharing a common /// representation map. Space types in a space catalogue share same /// space classification and a common set of space requirement @@ -33012,7 +32956,7 @@ public: /// The occurrences of IfcSpaceType are represented by /// instances of IfcSpace. /// -/// HISTORY ÿNew entity in +/// HISTORY New entity in /// IFC2x3. /// /// Property Set Use Definition: @@ -33049,7 +32993,7 @@ public: /// property set for all types of spaces to capture the thermal /// requirements /// Pset_SpaceThermalDesign: common property set -/// for allÿall types of spaces to capture building service design +/// for allall types of spaces to capture building service design /// values /// /// Geometry Use Definition: @@ -33060,7 +33004,7 @@ public: /// representations (e.g. with IfcShaperepresentation's having /// an RepresentationIdentifier 'Box', 'FootPrint', or 'Body'). /// -/// NOTE ÿThe product representations are defined as +/// NOTE The product representations are defined as /// representation maps (at the level of the supertype /// IfcTypeProduct, which gets assigned by an element /// occurrence instance through the @@ -33168,7 +33112,7 @@ public: /// IfcShapeRepresentation.Item[1] being an /// IfcMappedItem. /// -/// An IfcStairTypeÿis used to define the common +/// An IfcStairTypeis used to define the common /// properties of a specific stair that may be applied to many /// instances of that type to assign a specific style. /// Building element types (or the instantiable subtypes) @@ -34246,13 +34190,13 @@ public: /// device types (or styles) is handled by /// IfcTransportElementType. The /// IfcTransportElementType (if present) may establish the -/// commonÿtype name, usage (or predefined) type, common material +/// commontype name, usage (or predefined) type, common material /// layer set, common set of properties and common shape /// representations (using IfcRepresentationMap). The /// IfcTransportElementType is attached using the /// IfcRelDefinedByType.RelatingType objectified relationship /// and is accessible by the inverse IsTypedBy attribute. -/// If no IfcTransportElementType is attachedÿ(i.e. if only +/// If no IfcTransportElementType is attached(i.e. if only /// occurrence information is given) the PredefinedType should /// be provided. If set to .USERDEFINED. a user defined value can be /// provided by the ObjectType attribute. @@ -34281,7 +34225,7 @@ public: /// spatial hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, refering to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcBuilding being the default /// container. /// @@ -35328,7 +35272,7 @@ public: IfcWorkSchedule (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, boost::optional< std::string > v6_Identification, std::string v7_CreationDate, boost::optional< IfcTemplatedEntityList< ::Ifc4x2::IfcPerson >::ptr > v8_Creators, boost::optional< std::string > v9_Purpose, boost::optional< std::string > v10_Duration, boost::optional< std::string > v11_TotalFloat, std::string v12_StartTime, boost::optional< std::string > v13_FinishTime, boost::optional< ::Ifc4x2::IfcWorkScheduleTypeEnum::Value > v14_PredefinedType); typedef IfcTemplatedEntityList< IfcWorkSchedule > list; }; -/// Definition from IAI: A zone isÿa group of spaces, +/// Definition from IAI: A zone isa group of spaces, /// partial spaces or other zones. Zone structures may not be /// hierarchical (in contrary to the spatial structure of a project - /// see IfcSpatialStructureElement), i.e. one individual @@ -35337,9 +35281,9 @@ public: /// IfcZone by using the objectified relationship /// IfcRelAssignsToGroup as specified at the supertype /// IfcGroup. -/// NOTE ÿCertain use cases may restrict the +/// NOTE Certain use cases may restrict the /// freedom of non hierarchical relationships. In some building -/// service use cases the zone denotes aÿview based delimited volume +/// service use cases the zone denotes aview based delimited volume /// for the purpose of analysis and calculation. This type of zone /// cannot overlap with respect to that analysis, but may overlap /// otherwise. @@ -35350,12 +35294,12 @@ public: /// and placement. Therefore it cannot be used for spatial zones /// having a different shape and size compared to the shape and size /// of aggregated spaces. -/// NOTEÿ The IfcZone is regarded as the +/// NOTE The IfcZone is regarded as the /// spatial system (as compared to the building service, electrical, /// or analytical system), the name remains IfcZone for /// compatibility reasons, instead of using a proper naming /// convention, like IfcSpatialSystem. -/// NOTE ÿOne of the purposes of a zone is to +/// NOTE One of the purposes of a zone is to /// define a fire compartmentation. In this case it defines the /// geometric information about the fire compartment (through the /// contained spaces) and information, whether this compartment is @@ -35366,7 +35310,7 @@ public: /// independent shape has to be provided to the fire compartment, /// then the entity IfcSpatialZone shall be /// used. -/// RECOMMENDATIONÿ In case of a zone denoting a +/// RECOMMENDATION In case of a zone denoting a /// (fire) compartment, the following types should be used, if /// applicable, as values of the ObjectType attribute: /// @@ -35385,9 +35329,9 @@ public: /// refers to, e.g. to a particular IfcBuildingStorey by using /// the IfcRelServicesBuildings relationship, accessible via /// the inverse attribute ServicesBuilding. -/// HISTORYÿ New entity in +/// HISTORY New entity in /// IFC Release 1.0 -/// IFC2x4 CHANGEÿ The entity is now +/// IFC2x4 CHANGE The entity is now /// subtyped from IfcSystem (not its supertype /// IfcGroup) with upward compatibility for file based /// exchange. @@ -36031,13 +35975,13 @@ public: IfcBoilerType (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< ::Ifc4x2::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< ::Ifc4x2::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x2::IfcBoilerTypeEnum::Value v10_PredefinedType); typedef IfcTemplatedEntityList< IfcBoilerType > list; }; -/// Definition from ISO/CD 10303-42:1992ÿ A boundary curve +/// Definition from ISO/CD 10303-42:1992 A boundary curve /// is a type of bounded curve suitable for the definition of a /// surface boundary. /// -/// NOTEÿ Corresponding ISO 10303 entity: boundary_curve. Please refer to ISO/IS 10303-42:1994, p.89 for the final definition of the formal standard. +/// NOTE Corresponding ISO 10303 entity: boundary_curve. Please refer to ISO/IS 10303-42:1994, p.89 for the final definition of the formal standard. /// -/// HISTORYÿ New entity in IFC2x4. +/// HISTORY New entity in IFC2x4. class IFC_PARSE_API IfcBoundaryCurve : public IfcCompositeCurveOnSurface { public: virtual const IfcParse::entity& declaration() const; @@ -36148,13 +36092,13 @@ public: /// IfcBuilding.IsDecomposedBy -- referencing /// (IfcBuilding || IfcBuildingStorey) by /// IfcRelAggregates.RelatedObjects. If it refers to another -/// instance ofÿIfcBuilding, the referenced IfcBuilding +/// instance ofIfcBuilding, the referenced IfcBuilding /// needs to have a different and lower CompositionType, i.e. ELEMENT /// (if the other IfcBuilding has COMPLEX), or PARTIAL (if the /// other IfcBuilding has ELEMENT). /// /// If there are building elements and/or other elements directly -/// related to the IfcBuildingÿ(like a curtain wall spanning +/// related to the IfcBuilding(like a curtain wall spanning /// several stories), they are associated with the IfcBuilding /// by using the objectified relationship /// IfcRelContainedInSpatialStructure. The IfcBuilding @@ -36188,7 +36132,6 @@ public: /// total height of building, also referred to as ridge height (top of roof structure, e.g the ridge against terrain): provided by BaseQuantity with Name="TotalHeight" /// eaves height of building (base of roof structure, e.g the eaves against terrain): provided by BaseQuantity with Name="EavesHeight" /// -/// ÿ /// Figure 21 — Building elevations /// /// Geometry Use Definitions @@ -36889,14 +36832,14 @@ public: typedef IfcTemplatedEntityList< IfcBuildingElementProxy > list; }; /// Definition from IAI: -/// TheÿIfcBuildingElementProxyType defines a list of +/// TheIfcBuildingElementProxyType defines a list of /// commonly shared property set definitions of a building /// element proxy and an optional set of product /// representations. It is used to define an element /// specification (i.e. the specific product information, that /// is common to all occurrences of that product type). /// -/// NOTEÿ The product representations are defined as +/// NOTE The product representations are defined as /// representation maps (at the level of the supertype /// IfcTypeProduct, which gets assigned by an element /// occurrence instance through the @@ -36905,8 +36848,8 @@ public: /// /// A building element proxy type is used to define the common /// properties of a certain type of a building element proxy -/// that may be applied to many instances of thatÿtype to -/// assign a specific style. Building element proxy typesÿmay +/// that may be applied to many instances of thattype to +/// assign a specific style. Building element proxy typesmay /// be exchanged without being already assigned to occurrences. /// /// NOTE Although an building element proxy does not have @@ -36920,7 +36863,7 @@ public: /// are represented by instances of /// IfcBuildingElementProxy. /// -/// HISTORYÿ New entity in +/// HISTORY New entity in /// Release IFC2x Edition 3. class IFC_PARSE_API IfcBuildingElementProxyType : public IfcBuildingElementType { public: @@ -37271,7 +37214,7 @@ public: /// /// Property sets can also be given at the IfcChimneyType, /// defining the common property data for all occurrences of the same -/// type.ÿIt is then accessible by the inverse IsTypedBy relationship pointing to +/// type.It is then accessible by the inverse IsTypedBy relationship pointing to /// IfcChimneyType.HasPropertySets. If both are given, then /// the properties directly assigned to IfcChimney overrides /// the properties assigned to IfcChimneyType. @@ -37416,7 +37359,7 @@ public: /// IfcStructuralCurveMember being part of an /// IfcStructuralAnalysisModel. /// -/// NOTE ÿFor any longitudial structural member, not +/// NOTE For any longitudial structural member, not /// constrained to be predominately horizontal nor vertical, or where /// this semantic information is irrelevant, the entity /// IfcMember exists. @@ -37434,7 +37377,7 @@ public: /// geometry based on the swept solid), if a 3D geometric /// representation is assigned. In addition they have to have a /// corresponding IfcMaterialProfileSetUsage assigned. -/// NOTEÿ View definitions and implementer +/// NOTE View definitions and implementer /// agreements may further constrain the applicable geometry types, /// e.g. by excluding tapering from an IfcColumnStandardCase /// implementation. @@ -37450,13 +37393,13 @@ public: /// IfcColumn defines the occuurence of any column, common /// information about column types (or styles) is handled by /// IfcColumnType. The IfcColumnType (if present) may -/// establish the commonÿtype name, usage (or predefined) type, +/// establish the commontype name, usage (or predefined) type, /// common material layer set, common set of properties and common /// shape representations (using IfcRepresentationMap). The /// IfcColumnType is attached using the /// IfcRelDefinedByType.RelatingType objectified relationship /// and is accessible by the inverse IsTypedBy attribute. -/// If no IfcColumnType is attachedÿ(i.e. if only +/// If no IfcColumnType is attached(i.e. if only /// occurrence information is given) the PredefinedType should /// be provided. If set to .USERDEFINED. a user defined value can be /// provided by the ObjectType attribute. @@ -37473,7 +37416,7 @@ public: /// concept. /// Material information can also be given at the /// IfcColumnType, defining the common attribute data for all -/// occurrences of the same type.ÿIt is then accessible by the +/// occurrences of the same type.It is then accessible by the /// inverse IsTypedBy /// relationship pointing to /// IfcColumnType.HasAssociations and via @@ -37494,7 +37437,7 @@ public: /// /// Property sets can also be given at the IfcColumnType, /// defining the common property data for all occurrences of the same -/// type.ÿIt is then accessible by the inverse IsTypedBy relationship pointing to +/// type.It is then accessible by the inverse IsTypedBy relationship pointing to /// IfcColumnType.HasPropertySets. If both are given, then the /// properties directly assigned to IfcColumn overrides the /// properties assigned to IfcColumnType. @@ -37519,13 +37462,13 @@ public: /// containment relationships. The first (and in most implementation /// scenarios mandatory) relationship is the hierachical spatial /// containment, the second (optional) relationship is the -/// aggregation within anÿelement assembly. +/// aggregation within anelement assembly. /// /// The IfcColumn, is places within the project spatial /// hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, refering to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcBuildingStorey being the default /// container. /// The IfcColumn, may be aggregated into an element @@ -37536,7 +37479,7 @@ public: /// IfcElementAssembly as a special focus subtype. In this /// case it should not be additionally contained in the project /// spatial hierarchy, -/// i.e.ÿSELF\IfcElement.ContainedInStructure should be +/// i.e.SELF\IfcElement.ContainedInStructure should be /// NIL. /// /// Geometry Use Definition @@ -37595,8 +37538,8 @@ public: /// Solid: IfcExtrudedAreaSolid, /// IfcRevolvedAreaSolid shall be supported /// Profile: all subtypes of IfcProfileDef (with -/// exception of IfcArbitraryOpenProfileDef)ÿ -/// Extrusion:ÿAll extrusion directions shall be +/// exception of IfcArbitraryOpenProfileDef) +/// Extrusion:All extrusion directions shall be /// supported /// /// Figure 81 illustrates a 'SweptSolid' geometric representation. There are no restrictions or conventions on @@ -37655,7 +37598,7 @@ public: /// /// Profile: see 'SweptSolid' geometric /// representation -/// Extrusion:ÿnot applicable +/// Extrusion:not applicable /// /// MappedRepresentation Representation Type /// The 'MappedRepresentation' representation type is supported as @@ -37667,7 +37610,7 @@ public: /// RepresentationIdentifier : 'Body' /// RepresentationType : 'MappedRepresentation' /// -/// The same constraints, as given for theÿ 'SweptSolid', +/// The same constraints, as given for the 'SweptSolid', /// 'Clipping', 'AdvancedSweptSolid', 'SurfaceModel' and 'Bre' /// geometric representation, shall apply to the /// MappedRepresentation of the @@ -37714,7 +37657,7 @@ public: /// are extruded perpendicular to the profile definition /// plane /// -/// NOTEÿ View definitions and implementer +/// NOTE View definitions and implementer /// agreements may further constrain the applicable geometry types, /// e.g. by excluding tapering from an IfcBeamStandardCase /// implementation. @@ -37725,7 +37668,7 @@ public: /// IfcColumn defines the occuurence of any column, common /// information about column types (or styles) is handled by /// IfcColumnType. The IfcColumnType (if present) may -/// establish the commonÿtype name, usage (or predefined) type, +/// establish the commontype name, usage (or predefined) type, /// common material layer set, common set of properties and common /// shape representations (using IfcRepresentationMap). The /// IfcColumnType is attached using the @@ -37743,9 +37686,9 @@ public: /// Figure 84 — Column profile usage /// /// Figure 85 illustrates cardinal point alignment. -/// NOTEÿ It has to be guaranteed that the use of IfcCardinalPointEnum is consistent to the placement of the +/// NOTE It has to be guaranteed that the use of IfcCardinalPointEnum is consistent to the placement of the /// extrusion body provided by IfcExtrudedAreaSolid.Position -/// NOTEÿ The cardinal points 7 (top left), and 6 (mid-depth right) are assigned according to the +/// NOTE The cardinal points 7 (top left), and 6 (mid-depth right) are assigned according to the /// definition at IfcCardinalPointReference /// /// Figure 85 — Column cardinal points @@ -37857,7 +37800,7 @@ public: /// IfcParameterizedProfileDef.Position shall be NIL, or /// having Location = 0.,0. and RefDirection = /// 1.,0. -/// Extrusion:ÿperpendicular to the profile direction. The +/// Extrusion:perpendicular to the profile direction. The /// IfcExtrudedAreaSolid.ExtrudedDirection shall be /// [0.,0.,1.]. /// Orientation: The y-axis of the profile, as determined @@ -37894,7 +37837,7 @@ public: /// representation /// Profile Position : see 'SweptSolid' geometric /// representation -/// Extrusion:ÿsee 'SweptSolid' geometric +/// Extrusion:see 'SweptSolid' geometric /// representation /// Orientation: see 'SweptSolid' geometric /// representation @@ -37932,7 +37875,7 @@ public: /// representation /// Profile Position : see 'SweptSolid' geometric /// representation -/// Extrusion:ÿnot applicable +/// Extrusion:not applicable class IFC_PARSE_API IfcColumnStandardCase : public IfcColumn { public: virtual const IfcParse::entity& declaration() const; @@ -38305,7 +38248,7 @@ public: /// representation and the space has defined space boundaries, then /// the covering, which relates to that space, may be assigned to the /// space boundaries using the link -/// toÿIfcRelSpaceBoundary, +/// toIfcRelSpaceBoundary, /// if the covering does not relate to a space, then the covering /// should be assigned to the building element or a distribution /// element using the IfcRelCoversBldgElements @@ -38320,7 +38263,7 @@ public: /// The IfcCovering defines the occuurence of any covering, /// common information about covering types (or styles) is handled by /// IfcCoveringType. The IfcCoveringType (if present) -/// may establish the commonÿtype name, usage (or predefined) type, +/// may establish the commontype name, usage (or predefined) type, /// common set of properties, common material layer set, and common /// shape representations (using IfcRepresentationMap). The /// IfcCoveringType is attached using the @@ -38331,7 +38274,7 @@ public: /// slabs with constant thickness along the extrusion direction), the /// IfcCoveringType should have a unique /// IfcMaterialLayerSet, that is referenced by -/// theÿIfcMaterialLayerSetUsage assigned to all occurrences +/// theIfcMaterialLayerSetUsage assigned to all occurrences /// of this covering type. /// /// Figure 91 illustrates assignment of IfcMaterialLayerSetUsage and IfcMaterialLayerSet to the covering type and the covering occurrence. @@ -38421,7 +38364,7 @@ public: /// /// GeometricSet Representation /// The 'GeometricSet' geometric representation of -/// IfcCovering supports area definitions as 3D surfaces.ÿ +/// IfcCovering supports area definitions as 3D surfaces. /// /// RepresentationIdentifier : 'Surface' /// RepresentationType : 'GeometricSet' @@ -38449,7 +38392,7 @@ public: /// /// SweptSolid Representation /// The 'SweptSolid' geometric representation of -/// IfcCovering supports volume definitions as 3D solids.ÿ +/// IfcCovering supports volume definitions as 3D solids. /// /// RepresentationIdentifier : 'Body' /// RepresentationType : 'SweptSolid' @@ -38503,14 +38446,14 @@ public: /// wall, common information about curtain wall types (or styles) is /// handled by IfcCurtainWallType. The /// IfcCurtainWallType (if present) may establish the -/// commonÿtype name, usage (or predefined) type, common material +/// commontype name, usage (or predefined) type, common material /// information, common set of properties and common shape /// representations (using IfcRepresentationMap). The /// IfcCurtainWallType is attached using the /// IfcRelDefinedByType.RelatingType objectified relationship /// and is accessible by the inverse IsDefinedBy /// attribute. -/// If no IfcCurtainWallType is attachedÿ(i.e. if only +/// If no IfcCurtainWallType is attached(i.e. if only /// occurrence information is given) the predefined type may be given /// by using the ObjectType attribute. /// NOTE Since the IfcCurtainWall might be @@ -39254,13 +39197,13 @@ public: /// different containment relationships. The first (and in most /// implementation scenarios mandatory) relationship is the /// hierachical spatial containment, the second (optional) -/// relationship is the aggregation within anÿelement assembly. +/// relationship is the aggregation within anelement assembly. /// /// The IfcDistributionElement is places within the /// project spatial hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, referring to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcSpace being the default /// container. /// The IfcDistributionElement may be aggregated into an @@ -39271,7 +39214,7 @@ public: /// IfcElementAssembly as a special focus subtype. In this /// case it should not be additionally contained in the project /// spatial hierarchy, -/// i.e.ÿSELF\IfcElement.ContainedInStructure should be +/// i.e.SELF\IfcElement.ContainedInStructure should be /// NIL. /// /// Geometry Use Definitions @@ -39618,7 +39561,7 @@ public: /// IfcRelFillsElement relationship, then the IfcDoor /// has an inverse attribute FillsVoids provided, /// -/// NOTEÿ View definitions or +/// NOTE View definitions or /// implementer agreements may restrict the relationship to only /// include one window (or door) into one opening. /// @@ -39640,7 +39583,7 @@ public: /// that references one IfcDoorLiningProperties and on to many /// IfcDoorPanelProperties. /// -/// NOTEÿ see +/// NOTE see /// IfcDoorStandardCase for all specific constraints imposed /// by this subtype. /// @@ -39673,7 +39616,7 @@ public: /// the construction material type /// the particular attributes for the lining by the /// IfcDoorLiningProperties -/// the particular attributes for the panels by theÿ +/// the particular attributes for the panels by the /// IfcDoorPanelProperties /// /// HISTORY New entity in IFC Release 1.0. @@ -39738,13 +39681,13 @@ public: /// containment relationships as shown in Figure 96. The first (and in most implementation /// scenarios mandatory) relationship is the hierachical spatial /// containment, the second (optional) relationship is the -/// aggregation within anÿelement assembly. +/// aggregation within anelement assembly. /// /// The IfcDoor is places within the project spatial /// hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, refering to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcBuildingStorey being the default /// container. /// The IfcDoor may be aggregated into an element assembly @@ -39753,7 +39696,7 @@ public: /// SELF\IfcObjectDefinition.Decomposes. Doors may be part of /// an IfcCurtainWall as a special focus subtype. In this case /// it should not be additionally contained in the project spatial -/// hierarchy, i.e.ÿSELF\IfcElement.ContainedInStructure +/// hierarchy, i.e.SELF\IfcElement.ContainedInStructure /// should be NIL. /// /// NOTE The containment shall be defined independently of the @@ -39794,12 +39737,12 @@ public: /// is defined within the world coordinate system. /// /// Geometric Representation -/// Theÿgeometric representation of IfcDoor is defined -/// using the following (potentiallyÿmultiple) +/// Thegeometric representation of IfcDoor is defined +/// using the following (potentiallymultiple) /// IfcShapeRepresentation's for its /// IfcProductDefinitionShape: /// -/// Profile: Aÿ'Curve3D' +/// Profile: A'Curve3D' /// consisting of a single losed curve defining the outer boundary of /// the door (lining). The door parametric representation uses this /// profile in order to apply the door lining and panel parameter. If @@ -39816,11 +39759,11 @@ public: /// IfcDoorPanelProperties. The purpose of the parameter is /// described at those entities and below (door opening operation by /// door type). -/// Profile -ÿ'Curve3D' representation +/// Profile -'Curve3D' representation /// The door profile is represented by a three-dimensional closed /// curve within a particular shape representation. The profile is /// used to apply the parameter of the parametric door -/// representation.ÿThe following attribute values for the +/// representation.The following attribute values for the /// IfcShapeRepresentation holding this geometric /// representation shall be used: /// @@ -39834,18 +39777,18 @@ public: /// a parametric representation shall be applied to the door /// AND /// -/// theÿdoor is 'free standing', or -/// the opening into which theÿdoor is inserted is not extruded +/// thedoor is 'free standing', or +/// the opening into which thedoor is inserted is not extruded /// horizontally (i.e. where the opening profile does not match -/// theÿdoor profile) +/// thedoor profile) /// -/// FootPrint -ÿ'GeometricCurveSet' or 'Annotation2D' +/// FootPrint -'GeometricCurveSet' or 'Annotation2D' /// representation /// The door foot print is represented by a set of -/// two-dimensionalÿcurves (or in case of 'Annotation2D' additional +/// two-dimensionalcurves (or in case of 'Annotation2D' additional /// hatching and text) within a particular shape representation. The /// foot print is used for the planview representation of the -/// door.ÿThe following attribute values for the +/// door.The following attribute values for the /// IfcShapeRepresentation holding this geometric /// representation shall be used: /// @@ -39859,7 +39802,7 @@ public: /// parametric representation) or by explicit 3D shape. The 3D shape /// is given by using extrusion geometry, or surface models, or Brep /// models within a particular shape representation. The body is used -/// for the model view representation of the door.ÿThe following +/// for the model view representation of the door.The following /// attribute values for the IfcShapeRepresentation holding /// this geometric representation shall be used: /// @@ -39877,7 +39820,7 @@ public: /// RepresentationIdentifier : 'FootPrint', 'Body' /// RepresentationType : 'MappedRepresentation' /// -/// The same constraints, as given for theÿ 'FootPrint', 'Body' +/// The same constraints, as given for the 'FootPrint', 'Body' /// representation identifiers, shall apply to the /// MappedRepresentation of the /// IfcRepresentationMap. @@ -39896,13 +39839,13 @@ public: /// relatioship, having a horizontal extrusion (along the y-axis of /// the IfcDoor), the overall size is determined by the /// extrusion profile of the IfcOpeningElement. -/// NOTE ÿThe OverallWidth and +/// NOTE The OverallWidth and /// OverallHeight parameters are for informational purpose /// only. /// The opening direction is determined by the local placement of /// IfcDoor and the OperationType of the door /// style as shown in Figure 97. -/// NOTE ÿThere are different definitions in +/// NOTE There are different definitions in /// various countries on what a left opening or left hung or left /// swing door is (same for right). Therefore the IFC definition may /// derivate from the local standard and need to be mapped @@ -39920,7 +39863,7 @@ public: /// placement. The determination of whether the door opens to the /// left or to the right is done at the level of the /// IfcDoorType. Here it is a left side opening door given -/// byÿIfcDoorType.OperationType = +/// byIfcDoorType.OperationType = /// SingleSwingLeft /// refered to as LEFT HAND (LH) in US * /// @@ -39939,7 +39882,7 @@ public: /// opens to the right, a separate door style needs to be used (here /// IfcDoorTypee.OperationType = SingleSwingRight) and it /// always opens into the direction of the positive Y axis of the -/// local placement.ÿ +/// local placement. /// refered to as RIGHT HAND (RH) in US * /// /// refered to as DIN-L (left hung) in Germany @@ -41729,7 +41672,7 @@ public: /// geometry based on the swept solid), if a 3D geometric /// representation is assigned. In addition they have to have a /// corresponding IfcMaterialProfileSetUsage assigned. -/// NOTEÿ View definitions and implementer +/// NOTE View definitions and implementer /// agreements may further constrain the applicable geometry types, /// e.g. by excluding tapering from an IfcMemberStandardCase /// implementation. @@ -41745,13 +41688,13 @@ public: /// IfcMember defines the occuurence of any member, common /// information about member types (or styles) is handled by /// IfcMemberType. The IfcMemberType (if present) may -/// establish the commonÿtype name, usage (or predefined) type, +/// establish the commontype name, usage (or predefined) type, /// common material profile set, common set of properties and common /// shape representations (using IfcRepresentationMap). The /// IfcMemberType is attached using the /// IfcRelDefinedByType.RelatingType objectified relationship /// and is accessible by the inverse IsTypedBy attribute. -/// If no IfcMemberType is attachedÿ(i.e. if only +/// If no IfcMemberType is attached(i.e. if only /// occurrence information is given) the PredefinedType should /// be provided. If set to .USERDEFINED. a user defined value can be /// provided by the ObjectType attribute. @@ -41762,14 +41705,14 @@ public: /// IfcRelAssociatesMaterial.RelatingMaterial. It is /// accessible by the inverse HasAssociations relationship. /// Material information can also be given at -/// theÿIfcMemberType, defining the common attribute data for -/// all occurrences of the same type.ÿIt is then accessible by the +/// theIfcMemberType, defining the common attribute data for +/// all occurrences of the same type.It is then accessible by the /// inverse v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc4x2::IfcObjectPlacement* v6_ObjectPlacement, ::Ifc4x2::IfcProductRepresentation* v7_Representation, boost::optional< std::string > v8_Tag, boost::optional< ::Ifc4x2::IfcMotorConnectionTypeEnum::Value > v9_PredefinedType); typedef IfcTemplatedEntityList< IfcMotorConnection > list; }; -/// Definition from ISO/CD 10303-42:1992ÿ This is a special subtype of boundary curve which has the additional semantics of defining an outer boundary of a surface. No more than one such curve shall be included in the set of boundaries of a curve bounded surface. +/// Definition from ISO/CD 10303-42:1992 This is a special subtype of boundary curve which has the additional semantics of defining an outer boundary of a surface. No more than one such curve shall be included in the set of boundaries of a curve bounded surface. /// -/// NOTEÿ Corresponding ISO 10303 entity: outer_boundary_curve. Please refer to ISO/IS 10303-42:1994, p.89 for the final definition of the formal standard. +/// NOTE Corresponding ISO 10303 entity: outer_boundary_curve. Please refer to ISO/IS 10303-42:1994, p.89 for the final definition of the formal standard. /// -/// HISTORYÿ New entity in IFC2x4. +/// HISTORY New entity in IFC2x4. class IFC_PARSE_API IfcOuterBoundaryCurve : public IfcBoundaryCurve { public: virtual const IfcParse::entity& declaration() const; @@ -42570,22 +42513,22 @@ public: /// Definition from IAI: An IfcPlate is a planar and /// often flat part with constant thickness. A plate can be a /// structural part carrying loads between or beyond points of -/// support, however it is not required to be load bearing.ÿThe +/// support, however it is not required to be load bearing.The /// location of the plate (being horizontal, vertical or sloped) is /// not relevant to its definition (in contrary to IfcWall and -/// IfcSlab (as floor slab)).ÿ -/// NOTE ÿPlates areÿnormally made of steel, other +/// IfcSlab (as floor slab)). +/// NOTE Plates arenormally made of steel, other /// metallic material, or by glass panels. However the definition of /// IfcPlate is material independent and specific material /// information shall be handled by using /// IfcAssociatesMaterial to assign a material specification -/// to the IfcPlate.ÿ +/// to the IfcPlate. /// -/// NOTE ÿAlthough not necessarily, plates are often add-on +/// NOTE Although not necessarily, plates are often add-on /// parts. This is represented by the IfcRelAggregates /// decomposition mechanism used to aggregate parts, such as /// IfcPlate, into a container element, e.g. -/// IfcElementAssembly, or IfcCurtainWall.ÿ +/// IfcElementAssembly, or IfcCurtainWall. /// /// NOTE The representation of a plate in a structural /// analysis model is provided by IfcStructuralSurfaceMember @@ -42625,13 +42568,13 @@ public: /// The IfcPlate defines the occuurence of any plate, /// common information about plate types (or styles) is handled by /// IfcPlateType. The IfcPlateType (if present) may -/// establish the commonÿtype name, usage (or predefined) type, +/// establish the commontype name, usage (or predefined) type, /// common set of properties, common material layer set, and common /// shape representations (using IfcRepresentationMap). The /// IfcPlateType is attached using the /// IfcRelDefinedByType.RelatingType objectified relationship /// and is accessible by the inverse IsTypedBy attribute. -/// If no IfcPlateType is attachedÿ(i.e. if only occurrence +/// If no IfcPlateType is attached(i.e. if only occurrence /// information is given) the PredefinedType should be /// provided. If set to .USERDEFINED. a user defined value can be /// provided by the ObjectType attribute. @@ -42647,7 +42590,7 @@ public: /// concept. /// Material information can also be given at the /// IfcPlateType, defining the common attribute data for all -/// occurrences of the same type.ÿIt is then accessible by the +/// occurrences of the same type.It is then accessible by the /// inverse IsTypedBy /// relationship pointing to IfcPlateType.HasAssociations and /// via IfcRelAssociatesMaterial.RelatingMaterial. @@ -42684,23 +42627,23 @@ public: /// containment relationships. The first (and in most implementation /// scenarios mandatory) relationship is the hierachical spatial /// containment, the second relationship is the aggregation within -/// anÿelement assembly. +/// anelement assembly. /// -/// TheÿIfcPlate is places within the project spatial +/// TheIfcPlate is places within the project spatial /// hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, referring to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcBuildingStorey being the default /// container. -/// TheÿIfcPlate may be aggregated into an element +/// TheIfcPlate may be aggregated into an element /// assembly using the objectified relationship /// IfcRelAggregates, referring to it by its inverse attribute /// SELF\IfcObjectDefinition.Decomposes. Any subtype of /// IfcElement can be an element assembly, with /// IfcElementAssembly as a special focus subtype. In this /// case, no additional relationship to the spatial hierarchy shall -/// be given (i.e.ÿSELF\IfcElement.ContainedInStructure = +/// be given (i.e.SELF\IfcElement.ContainedInStructure = /// NIL), the relationship to the spatial container is handled by the /// element assembly. /// @@ -43183,7 +43126,7 @@ public: /// IfcRailing defines the occuurence of any railing, /// common information about railing types (or styles) is handled by /// IfcRailingType. The IfcRailingType (if present) may -/// establish the commonÿtype name, usage (or predefined) type, +/// establish the commontype name, usage (or predefined) type, /// common material, common set of properties and common shape /// representations (using IfcRepresentationMap). The /// IfcRailingType is attached using the @@ -43198,7 +43141,7 @@ public: /// relationship. /// Material information can also be given at the /// IfcRailingType, defining the common attribute data for all -/// occurrences of the same type.ÿIt is then accessible by the +/// occurrences of the same type.It is then accessible by the /// inverse IsDefinedBy relationship pointing to /// IfcRailingType.HasAssociations and via /// IfcRelAssociatesMaterial.RelatingMaterial to @@ -43236,13 +43179,13 @@ public: /// containment relationships. The first (and in most implementation /// scenarios mandatory) relationship is the hierachical spatial /// containment, the second (optional) relationship is the -/// aggregation within anÿelement assembly. +/// aggregation within anelement assembly. /// /// The IfcRailing is places within the project spatial /// hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, refering to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcBuildingStorey being the default /// container. /// The IfcRailing may be aggregated into an element @@ -43253,7 +43196,7 @@ public: /// IfcStair, or IfcRamp as a special focus subtypes. /// In this case it should not be additionally contained in the /// project spatial hierarchy, -/// i.e.ÿSELF\IfcElement.ContainedInStructure should be +/// i.e.SELF\IfcElement.ContainedInStructure should be /// NIL. /// /// Geometry Use Definition @@ -43342,7 +43285,7 @@ public: /// IfcRamp defines the occuurence of any ramp, common /// information about ramp types (or styles) is handled by /// IfcRampType. The IfcRampType (if present) may -/// establish the commonÿtype name, usage (or predefined) type, +/// establish the commontype name, usage (or predefined) type, /// common material, common set of properties and common shape /// representations (using IfcRepresentationMap). The /// IfcRampType is attached using the @@ -43363,7 +43306,7 @@ public: /// relationship. /// Material information can also be given at the /// IfcRampType, defining the common attribute data for all -/// occurrences of the same type.ÿIt is then accessible by the +/// occurrences of the same type.It is then accessible by the /// inverse IsDefinedBy relationship pointing to /// IfcRampType.HasAssociations and via /// IfcRelAssociatesMaterial.RelatingMaterial to @@ -43891,7 +43834,7 @@ public: /// spatial hierarchy, i.e. /// SELF\IfcElement.ContainedInStructure should be NIL. /// -/// NOTEÿ A roof contained in another roof could +/// NOTE A roof contained in another roof could /// be the representation of a dormer. /// The IfcRoof may be an aggregate i.e. being composed by /// other elements and acting as an assembly using the objectified @@ -43919,7 +43862,7 @@ public: /// aggregate. If defined as an aggregate, the geometric /// representation is the sum of the representation of the components /// within the aggregate. -/// NOTEÿ View definitions and implementer +/// NOTE View definitions and implementer /// agreements may restrict the IfcRoof to not have an /// independent geometry, but to always require aggregated elements /// to represent the shape of the roof. @@ -44232,7 +44175,7 @@ public: /// IfcStructuralMember being part of the /// IfcStructuralAnalysisModel. /// -/// NOTE ÿAn arbitrary planar element to which this semantic +/// NOTE An arbitrary planar element to which this semantic /// information is not applicable or irrelevant shall be modeled as /// IfcPlate. /// A slab may have openings, such as floor openings, or recesses. @@ -44266,13 +44209,13 @@ public: /// The IfcSlab defines the occurrence of any slab, common /// information about slab types (or styles) is handled by /// IfcSlabType. The IfcSlabType (if present) may -/// establish the commonÿtype name, usage (or predefined) type, +/// establish the commontype name, usage (or predefined) type, /// common set of properties, common material layer set, and common /// shape representations (using IfcRepresentationMap). The /// IfcSlabType is attached using the /// IfcRelDefinedByType.RelatingType objectified relationship /// and is accessible by the inverse IsTypedBy attribute. -/// If no IfcSlabType is attachedÿ(i.e. if only occurrence +/// If no IfcSlabType is attached(i.e. if only occurrence /// information is given) the PredefinedType should be /// provided. Values of the enumeration are .FLOOR. (the default), /// .ROOF., .LANDING., .BASESLAB. If set to .USERDEFINED. a user @@ -44294,12 +44237,12 @@ public: /// the slab is extruded along the slab thickness, are exchanged as /// IfcSlabStandardCase, The material for /// IfcSlabStandardCase shall be defined -/// byÿIfcMaterialLayerSetUsage. Multi-layer slabs can be +/// byIfcMaterialLayerSetUsage. Multi-layer slabs can be /// represented by referring to several IfcMaterialLayer's -/// within the IfcMaterialLayerSet.ÿ +/// within the IfcMaterialLayerSet. /// Material information can also be given at the /// IfcSlabType, defining the common attribute data for all -/// occurrences of the same type.ÿIt is then accessible by the +/// occurrences of the same type.It is then accessible by the /// inverse IsTypedBy /// relationship pointing to IfcSlabType.HasAssociations and /// via IfcRelAssociatesMaterial.RelatingMaterial. @@ -44316,7 +44259,7 @@ public: /// /// Property sets can also be given at the IfcSlabType, /// defining the common property data for all occurrences of the same -/// type.ÿIt is then accessible by the inverse IsTypedBy relationship pointing to +/// type.It is then accessible by the inverse IsTypedBy relationship pointing to /// IfcSlabType.HasPropertySets. If both are given, then the /// properties directly assigned to IfcSlab overrides the /// properties assigned to IfcSlabType. @@ -44342,16 +44285,16 @@ public: /// containment relationships. The first (and in most implementation /// scenarios mandatory) relationship is the hierarchical spatial /// containment, the second (optional) relationship is the -/// aggregation within anÿelement assembly. +/// aggregation within anelement assembly. /// -/// TheÿIfcSlab is places within the project spatial +/// TheIfcSlab is places within the project spatial /// hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, referring to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcBuildingStorey being the default /// container. -/// TheÿIfcSlab may be aggregated into an element assembly +/// TheIfcSlab may be aggregated into an element assembly /// using the objectified relationship IfcRelAggregates, /// referring to it by its inverse attribute /// SELF\IfcObjectDefinition.Decomposes. Any subtype of @@ -44359,10 +44302,10 @@ public: /// IfcElementAssembly as a special focus subtype. /// In this case it should not be additionally contained in the /// project spatial hierarchy, -/// i.e.ÿSELF\IfcElement.ContainedInStructure should be +/// i.e.SELF\IfcElement.ContainedInStructure should be /// NIL. /// -/// The IfcSlabÿmay also be an aggregate i.e. being +/// The IfcSlabmay also be an aggregate i.e. being /// composed by other elements and acting as an assembly using the /// objectified relationship IfcRelAggregates, referring to it /// by its inverse attribute @@ -44466,8 +44409,8 @@ public: /// representation: /// /// Solid: see 'SweptSolid' shape representation, -/// Profile:ÿsee 'SweptSolid' shape representation, -/// Extrusion:ÿsee 'SweptSolid' shape representation, +/// Profile:see 'SweptSolid' shape representation, +/// Extrusion:see 'SweptSolid' shape representation, /// Boolean result: The IfcBooleanClippingResult /// shall be supported, allowing for Boolean differences between the /// swept solid (here IfcExtrudedAreaSolid) and one or several @@ -44496,7 +44439,7 @@ public: /// The IfcSlabElementedCase /// defines a slab with certain constraints for the provision of its /// components. The IfcSlabElementedCase handles all cases of -/// slabs, that are decomposed into parts:ÿ +/// slabs, that are decomposed into parts: /// /// having components being assigned to the /// IfcSlabElementedCase using the IfcRelAggregates @@ -44559,7 +44502,7 @@ public: /// the elemented slab. It maybe used as a simplified representation /// directly at the elemented slab. /// -/// NOTEÿ It is invalid to exhange a 'Body' shape +/// NOTE It is invalid to exhange a 'Body' shape /// representation of an IfcSlabElementedCase. The body /// geometry is defined by the parts within the /// decomposition. @@ -45148,7 +45091,7 @@ public: /// flight, common information about stair flight types (or styles) /// is handled by IfcStairFlightType. The /// IfcStairFlightType (if present) may establish the -/// commonÿtype name, usage (or predefined) type, common material +/// commontype name, usage (or predefined) type, common material /// layer set, common set of properties and common shape /// representations (using IfcRepresentationMap). The /// IfcStairFlightType is attached using the @@ -45192,13 +45135,13 @@ public: /// IfcBuildingElement, may participate in two different /// containment relationships. The first relationship is the /// hierachical spatial containment, the second relationship is the -/// aggregation within anÿelement assembly. +/// aggregation within anelement assembly. /// /// The IfcStairFlight is placed within the project /// spatial hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, refering to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcBuildingStorey being the default /// container. /// The IfcStairFlight may be aggregated into an element @@ -45208,7 +45151,7 @@ public: /// IfcElement can be an element assembly, with /// IfcStair as a special focus subtype. In this case it /// shall not be additionally contained in the project spatial -/// hierarchy, i.e.ÿSELF\IfcElement.ContainedInStructure +/// hierarchy, i.e.SELF\IfcElement.ContainedInStructure /// shall be NIL. /// /// Geometry Use Definition @@ -46047,7 +45990,7 @@ public: /// Definition from IAI: The wall represents a vertical /// construction that bounds or subdivides spaces. Wall are usually /// vertical, or nearly vertical, planar elements, often designed to -/// bear structural loads. A wall is howeverÿnot required to be load +/// bear structural loads. A wall is howevernot required to be load /// bearing. /// NOTE NOTE There is a representation of walls /// for structural analysis provided by a proper subtype of @@ -46066,7 +46009,7 @@ public: /// The IFC specification provides two entities for wall /// occurrences: /// -/// IfcWallStandardCase ÿused for all occurrences of +/// IfcWallStandardCase used for all occurrences of /// walls, that have a non-changing thickness along the wall path and /// where the thickness parameter can be fully described by a /// material layer set. These walls are always represented @@ -46079,7 +46022,7 @@ public: /// which are aggregated from subordinate elements, following /// specific decomposition rules expressed by the mandatory use of /// IfcRelAggregates relationship. -/// IfcWall ÿused for all other occurrences of wall, +/// IfcWall used for all other occurrences of wall, /// particularly for walls with changing thickness along the wall /// path (e.g. polygonal walls), or walls with a non-rectangular /// cross sections (e.g. L-shaped retaining walls), and walls having @@ -46091,15 +46034,15 @@ public: /// IFC Release 1.0 /// Type Use Definition /// IfcWall defines the occurrence of any wall, common -/// information aboutÿwall types (or styles) is handled by +/// information aboutwall types (or styles) is handled by /// IfcWallType. The IfcWallType (if present) may -/// establish the commonÿtype name, usage (or predefined) type, +/// establish the commontype name, usage (or predefined) type, /// common material layer set, common set of properties and common /// shape representations (using IfcRepresentationMap). The /// IfcWallType is attached using the /// IfcRelDefinedByType.RelatingType objectified relationship /// and is accessible by the inverse IsTypedBy attribute. -/// If no IfcWallType is attachedÿ(i.e. if only occurrence +/// If no IfcWallType is attached(i.e. if only occurrence /// information is given) the PredefinedType should be /// provided. If set to .USERDEFINED. a user defined value can be /// provided by the ObjectType attribute. @@ -46110,14 +46053,14 @@ public: /// accessible by the inverse HasAssociations relationship. /// Multi-layer walls can be represented by referring to several /// IfcMaterialLayer's within the -/// IfcMaterialLayerSet.ÿ +/// IfcMaterialLayerSet. /// Note: It is illegal to assign an /// IfcMaterialLayerSetUsage to an IfcWall. Only the /// subtype IfcWallStandardCase supports this /// concept. /// Material information can also be given at the /// IfcWallType, defining the common attribute data for all -/// occurrences of the same type.ÿIt is then in addition accessible +/// occurrences of the same type.It is then in addition accessible /// by the inverse IsTypedBy /// relationship pointing to IfcWallType.HasAssociations and /// via IfcRelAssociatesMaterial.RelatingMaterial. @@ -46134,7 +46077,7 @@ public: /// /// Property sets can also be given at the IfcWallType, /// defining the common property data for all occurrences of the same -/// type.ÿIt is then accessible by the inverse IsTypedBy relationship pointing to +/// type.It is then accessible by the inverse IsTypedBy relationship pointing to /// IfcWallType.HasPropertySets. If both are given, then the /// properties directly assigned to IfcWall overrides the /// properties assigned to IfcWallType. @@ -46161,16 +46104,16 @@ public: /// containment relationships. The first (and in most implementation /// scenarios mandatory) relationship is the hierarchical spatial /// containment, the second (optional) relationship is the -/// aggregation within anÿelement assembly. +/// aggregation within anelement assembly. /// /// The IfcWall is places within the project spatial /// hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, referring to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcBuildingStorey being the default /// container. -/// TheÿIfcWall may be aggregated into an element assembly +/// TheIfcWall may be aggregated into an element assembly /// using the objectified relationship IfcRelAggregates, /// referring to it by its inverse attribute /// SELF\IfcObjectDefinition.Decomposes. Any subtype of @@ -46178,17 +46121,17 @@ public: /// IfcElementAssembly as a special focus subtype. /// In this case the wall should not be additionally contained in the /// project spatial hierarchy, -/// i.e.ÿSELF\IfcElement.ContainedInStructure should be +/// i.e.SELF\IfcElement.ContainedInStructure should be /// NIL. /// -/// TheÿIfcWallÿmay also be an aggregate i.e. being +/// TheIfcWallmay also be an aggregate i.e. being /// composed by other elements and acting as an assembly using the /// objectified relationship IfcRelAggregates, referring to it /// by its inverse attribute /// SELF\IfcObjectDefinition.IsDecomposedBy. Components of a /// wall are described by instances of IfcBuildingElementPart /// that are aggregated to form a complex wall. -/// In this case, the containedÿIfcBuildingElementPart's +/// In this case, the containedIfcBuildingElementPart's /// should not be additionally contained in the project spatial /// hierarchy, i.e. the inverse attribute /// SELF\IfcElement.ContainedInStructure of @@ -46263,7 +46206,7 @@ public: /// Solid: IfcExtrudedAreaSolid is required, /// Profile: IfcArbitraryClosedProfileDef is /// required. -/// Extrusion:ÿAll extrusion directions shall be +/// Extrusion:All extrusion directions shall be /// supported. /// /// Clipping Representation Type @@ -46301,7 +46244,7 @@ public: /// The IfcWallElementedCase /// defines a wall with certain constraints for the provision of its /// components. The IfcWallElementedCase handles all cases of -/// walls, that are decomposed into parts:ÿ +/// walls, that are decomposed into parts: /// /// having components being assigned to the /// IfcWallElementedCase using the IfcRelAggregates @@ -46372,7 +46315,7 @@ public: /// the elemented wall. It maybe used as a simplified representation /// directly at the elemented wall. /// -/// NOTEÿ It is invalid to exhange a 'Body' shape +/// NOTE It is invalid to exhange a 'Body' shape /// representation of an IfcWallElementedCase. The body /// geometry is defined by the parts within the /// decomposition. @@ -46747,7 +46690,7 @@ public: /// IfcRelFillsElement relationship, , then the IfcDoor /// has an inverse attribute FillsVoids provided, /// -/// NOTEÿ View definitions or +/// NOTE View definitions or /// implementer agreements may restrict the relationship to only /// include one window (or door) into one opening. /// @@ -46770,7 +46713,7 @@ public: /// IfcWindowLiningProperties and on to many /// IfcWindowPanelProperties. /// -/// NOTEÿ see +/// NOTE see /// IfcWindowStandardCase for all specific constraints imposed /// by this subtype. /// @@ -46805,7 +46748,7 @@ public: /// the construction material type /// the particular attributes for the lining by the /// IfcWindowLiningProperties -/// the particular attributes for the panels by theÿ +/// the particular attributes for the panels by the /// IfcWindowPanelProperties /// /// HISTORY New entity in IFC Release 1.0. @@ -46871,13 +46814,13 @@ public: /// containment relationships. The first (and in most implementation /// scenarios mandatory) relationship is the hierachical spatial /// containment, the second (optional) relationship is the -/// aggregation within anÿelement assembly. +/// aggregation within anelement assembly. /// /// The IfcWindow is placed within the project spatial /// hierarchy using the objectified relationship /// IfcRelContainedInSpatialStructure, refering to it by its /// inverse attribute SELF\IfcElement.ContainedInStructure. -/// Subtypes ofÿIfcSpatialStructureElement are valid spatial +/// Subtypes ofIfcSpatialStructureElement are valid spatial /// containers, with IfcBuildingStorey being the default /// container. /// The IfcWindow may be aggregated into an element @@ -46887,7 +46830,7 @@ public: /// of an IfcCurtainWall as a special focus subtype. In this /// case it should not be additionally contained in the project /// spatial hierarchy, -/// i.e.ÿSELF\IfcElement.ContainedInStructure should be +/// i.e.SELF\IfcElement.ContainedInStructure should be /// NIL. /// /// Figure 141 illustrates window containment. @@ -46926,34 +46869,34 @@ public: /// is defined within the world coordinate system. /// /// Geometric Representation -/// Theÿgeometric representation of IfcWindow is defined -/// using the following (potentiallyÿmultiple) +/// Thegeometric representation of IfcWindow is defined +/// using the following (potentiallymultiple) /// IfcShapeRepresentation's for its /// IfcProductDefinitionShape: /// -/// Profile: Aÿ'Curve3D' +/// Profile: A'Curve3D' /// consisting of a single losed curve defining the outer boundary of -/// the window (lining). Theÿwindow parametric representation uses -/// this profile in order to apply theÿwindow lining and panel +/// the window (lining). Thewindow parametric representation uses +/// this profile in order to apply thewindow lining and panel /// parameter. If not provided, the profile of the /// IfcOpeningElement is taken. /// FootPrint: A 'GeometricCurveSet', or 'Annotation2D' -/// representation defining the 2D shape of theÿwindow +/// representation defining the 2D shape of thewindow /// Body: A 'SweptSolid', 'SurfaceModel', or 'Brep' -/// representation defining the 3D shape of theÿwindow. +/// representation defining the 3D shape of thewindow. /// /// In addition the parametric representation of a -/// (limited)ÿwindow shape is available by applying the parameters -/// fromÿIfcWindowType -/// referencingÿIfcWindowLiningProperties -/// andÿIfcWindowPanelProperties. The purpose of the parameter +/// (limited)window shape is available by applying the parameters +/// fromIfcWindowType +/// referencingIfcWindowLiningProperties +/// andIfcWindowPanelProperties. The purpose of the parameter /// is described at those entities and below (parametric /// representation). -/// Profile -ÿ'Curve3D' representation -/// Theÿwindow profile is represented by a three-dimensional +/// Profile -'Curve3D' representation +/// Thewindow profile is represented by a three-dimensional /// closed curve within a particular shape representation. The -/// profile is used to apply the parameter of the parametricÿwindow -/// representation.ÿThe following attribute values for the +/// profile is used to apply the parameter of the parametricwindow +/// representation.The following attribute values for the /// IfcShapeRepresentation holding this geometric /// representation shall be used: /// @@ -46965,20 +46908,20 @@ public: /// A 'Profile' representation has to be provided if: /// /// a parametric representation shall be applied to the -/// windowÿAND +/// windowAND /// /// the window is 'free standing', or /// the opening into which the window is inserted is not extruded /// horizontally (i.e. where the opening profile does not match the /// window profile) /// -/// FootPrint -ÿ'GeometricCurveSet' or 'Annotation2D' +/// FootPrint -'GeometricCurveSet' or 'Annotation2D' /// representation -/// Theÿwindow foot print is represented by a set of -/// two-dimensionalÿcurves (or in case of 'Annotation2D' additional +/// Thewindow foot print is represented by a set of +/// two-dimensionalcurves (or in case of 'Annotation2D' additional /// hatching and text) within a particular shape representation. The /// foot print is used for the plan view representation of -/// theÿwindow.ÿThe following attribute values for the +/// thewindow.The following attribute values for the /// IfcShapeRepresentation holding this geometric /// representation shall be used: /// @@ -46988,11 +46931,11 @@ public: /// /// Body - 'SweptSolid', 'SurfaceModel', or 'Brep' /// representation -/// Theÿwindow body is either represented parameterically (see +/// Thewindow body is either represented parameterically (see /// parametric representation) or by explicit 3D shape. The 3D shape /// is given by using extrusion geometry, or surface models, or Brep /// models within a particular shape representation. The body is used -/// for the model view representation of theÿwindow.ÿThe following +/// for the model view representation of thewindow.The following /// attribute values for the IfcShapeRepresentation holding /// this geometric representation shall be used: /// @@ -47002,7 +46945,7 @@ public: /// /// MappedRepresentation /// The 'FootPrint' and 'Body' geometric representation -/// ofÿIfcWindow can be shared among several identicalÿwindows +/// ofIfcWindow can be shared among several identicalwindows /// using the 'MappedRepresentation'. The following attribute values /// for the IfcShapeRepresentation holding this geometric /// representation shall be used: @@ -47010,7 +46953,7 @@ public: /// RepresentationIdentifier : 'FootPrint', 'Body' /// RepresentationType : 'MappedRepresentation' /// -/// The same constraints, as given for theÿ 'FootPrint', 'Body' +/// The same constraints, as given for the 'FootPrint', 'Body' /// representation identifiers, shall apply to the /// MappedRepresentation of the /// IfcRepresentationMap. @@ -47046,14 +46989,14 @@ public: /// IfcWindow only defines the local placement which /// determines the opening direction of the window. The overall /// layout of the IfcWindow is determined by -/// itsÿIfcWindowType.PartitioningType. Each window panel has +/// itsIfcWindowType.PartitioningType. Each window panel has /// its own operation type, provided by /// IfcWindowPanelProperties.OperationType. All window panels /// are assumed to open into the same direction (if relevant for the /// particular window panel operation. The hindge side (whether a /// window opens to the left or to the right) is determined by the /// IfcWindowPanelProperties.OperationType. -/// NOTE ÿThere are different conventions in +/// NOTE There are different conventions in /// different countries on how to show the symbolic presentation of /// the window panel operation (the "triangles"). Either as seen from /// the exterior, or from the interior side. The following figures @@ -47067,24 +47010,24 @@ public: /// The determination of whether the window opens to the left or to /// the right is done at /// IfcWindowPanelProperties.OperationType. Here it is a left -/// side opening window given byÿOperationType = +/// side opening window given byOperationType = /// SideHungLeftHand. /// /// If the window should open to the other side, then the /// local placement has to be changed. It is still a left hung /// window, given by IfcWindowPanelProperties.OperationType -/// =ÿSideHungLeftHand. +/// =SideHungLeftHand. /// /// If the window panel (for side hung windows) opens to /// the right, a separate window panel style needs to be used (here /// IfcWindowPanelProperties.OperationType -/// =ÿSideHungRightHand) and it always opens into the direction of -/// the positive Y axis of the local placement.ÿ +/// =SideHungRightHand) and it always opens into the direction of +/// the positive Y axis of the local placement. /// /// If the window should open to the other side, then the /// local placement has to be changed. It is still a right hung /// window, given by IfcWindowPanelProperties.OperationType -/// =ÿSideHungRightHand. +/// =SideHungRightHand. /// . /// /// Figure 144 — Window operations diff --git a/src/ifcparse/Ifc4x2enum.h b/src/ifcparse/Ifc4x2enum.h deleted file mode 100644 index 52e93e4257..0000000000 --- a/src/ifcparse/Ifc4x2enum.h +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************** - * * - * This file is part of IfcOpenShell. * - * * - * IfcOpenShell is free software: you can redistribute it and/or modify * - * it under the terms of the Lesser GNU General Public License as published by * - * the Free Software Foundation, either version 3.0 of the License, or * - * (at your option) any later version. * - * * - * IfcOpenShell is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * Lesser GNU General Public License for more details. * - * * - * You should have received a copy of the Lesser GNU General Public License * - * along with this program. If not, see . * - * * - ********************************************************************************/ - -/******************************************************************************** - * * - * This file has been generated from IFC4x2.exp (Draft). Do not make modifications * - * but instead modify the python script that has been used to generate this. * - * * - ********************************************************************************/ - -#ifndef IFC4X2ENUM_H -#define IFC4X2ENUM_H - -#include "../ifcparse/ifc_parse_api.h" - -#include -#include - -#endif diff --git a/src/ifcparse/IfcBaseClass.h b/src/ifcparse/IfcBaseClass.h index 65b4e28557..3caa6534fd 100644 --- a/src/ifcparse/IfcBaseClass.h +++ b/src/ifcparse/IfcBaseClass.h @@ -22,16 +22,6 @@ #include "ifc_parse_api.h" -#ifdef USE_IFC4X2 -#include "../ifcparse/Ifc4x2enum.h" -#elif USE_IFC4X1 -#include "../ifcparse/Ifc4x1enum.h" -#elif USE_IFC4 -#include "../ifcparse/Ifc4enum.h" -#else -#include "../ifcparse/Ifc2x3enum.h" -#endif - #include "../ifcparse/IfcEntityInstanceData.h" #include "../ifcparse/IfcSchema.h" diff --git a/src/ifcparse/IfcEntityDescriptor.h b/src/ifcparse/IfcEntityDescriptor.h deleted file mode 100644 index 96bd2de9a7..0000000000 --- a/src/ifcparse/IfcEntityDescriptor.h +++ /dev/null @@ -1,137 +0,0 @@ -/******************************************************************************** - * * - * This file is part of IfcOpenShell. * - * * - * IfcOpenShell is free software: you can redistribute it and/or modify * - * it under the terms of the Lesser GNU General Public License as published by * - * the Free Software Foundation, either version 3.0 of the License, or * - * (at your option) any later version. * - * * - * IfcOpenShell is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * Lesser GNU General Public License for more details. * - * * - * You should have received a copy of the Lesser GNU General Public License * - * along with this program. If not, see . * - * * - ********************************************************************************/ - -#ifndef IFCENTITYDESCRIPTOR_H -#define IFCENTITYDESCRIPTOR_H - -#include -#include -#include -#include -#include - -#include - -#include "../ifcparse/IfcBaseClass.h" -#include "../ifcparse/IfcException.h" - -#ifdef USE_IFC4X2 -#include "../ifcparse/Ifc4x2enum.h" -#elif USE_IFC4X1 -#include "../ifcparse/Ifc4x1enum.h" -#elif USE_IFC4 -#include "../ifcparse/Ifc4enum.h" -#else -#include "../ifcparse/Ifc2x3enum.h" -#endif - -namespace IfcUtil { - - class IFC_PARSE_API IfcEnumerationDescriptor { - private: - IfcSchema::Type::Enum type; - std::vector values; - public: - IfcEnumerationDescriptor(IfcSchema::Type::Enum type, const std::vector& values) - : type(type), values(values) {} - std::pair getIndex(const std::string& value) const { - std::vector::const_iterator it = std::find(values.begin(), values.end(), value); - if (it != values.end()) { - return std::make_pair(it->c_str(), (int)std::distance(it, values.begin())); - } else { - throw IfcParse::IfcException("Invalid enumeration value"); - } - } - const std::vector& getValues() { - return values; - } - IfcSchema::Type::Enum getType() { - return type; - } - }; - - class IFC_PARSE_API IfcEntityDescriptor { - public: - class IfcArgumentDescriptor - { - public: - std::string name; - bool optional; - ArgumentType argument_type; - IfcSchema::Type::Enum data_type; - IfcArgumentDescriptor(const std::string& name, bool optional, ArgumentType argument_type, IfcSchema::Type::Enum data_type) - : name(name), optional(optional), argument_type(argument_type), data_type(data_type) {} - }; - private: - IfcSchema::Type::Enum type; - IfcEntityDescriptor* parent; - std::vector arguments; - unsigned argument_start() const { - return parent ? parent->getArgumentCount() : 0; - } - const IfcArgumentDescriptor& get_argument(unsigned i) const { - if (i < arguments.size()) return arguments[i]; - else throw IfcParse::IfcAttributeOutOfRangeException("Argument index out of range"); - } - public: - IfcEntityDescriptor(IfcSchema::Type::Enum type, IfcEntityDescriptor* parent) - : type(type), parent(parent) {} - void add(const std::string& name, bool optional, ArgumentType argument_type, IfcSchema::Type::Enum data_type = IfcSchema::Type::UNDEFINED) { - arguments.push_back(IfcArgumentDescriptor(name, optional, argument_type, data_type)); - } - unsigned getArgumentCount() const { - return (parent ? parent->getArgumentCount() : 0) + (unsigned)arguments.size(); - } - const std::string& getArgumentName(unsigned i) const { - const unsigned a = argument_start(); - return i < a - ? parent->getArgumentName(i) - : get_argument(i-a).name; - } - ArgumentType getArgumentType(unsigned i) const { - const unsigned a = argument_start(); - return i < a - ? parent->getArgumentType(i) - : get_argument(i-a).argument_type; - } - bool getArgumentOptional(unsigned i) const { - const unsigned a = argument_start(); - return i < a - ? parent->getArgumentOptional(i) - : get_argument(i-a).optional; - } - IfcSchema::Type::Enum getArgumentEntity(unsigned i) const { - const unsigned a = argument_start(); - return i < a - ? parent->getArgumentEntity(i) - : get_argument(i-a).data_type; - } - unsigned getArgumentIndex(const std::string& s) const { - unsigned a = argument_start(); - for(std::vector::const_iterator i = arguments.begin(); i != arguments.end(); ++i) { - if (i->name == s) return a; - a++; - } - if (parent) return parent->getArgumentIndex(s); - throw IfcParse::IfcException(std::string("Argument ") + s + " not found on " + IfcSchema::Type::ToString(type)); - } - }; -} - -#endif diff --git a/src/ifcparse/IfcEntityInstanceData.h b/src/ifcparse/IfcEntityInstanceData.h index 67412ed08f..7d2c4ee8ca 100644 --- a/src/ifcparse/IfcEntityInstanceData.h +++ b/src/ifcparse/IfcEntityInstanceData.h @@ -22,6 +22,7 @@ #include "../ifcparse/ArgumentType.h" +#include #include #include diff --git a/src/ifcparse/IfcSIPrefix.cpp b/src/ifcparse/IfcSIPrefix.cpp index f7f032a031..c8b2d858ca 100644 --- a/src/ifcparse/IfcSIPrefix.cpp +++ b/src/ifcparse/IfcSIPrefix.cpp @@ -21,6 +21,8 @@ #include "../ifcparse/Ifc2x3.h" #include "../ifcparse/Ifc4.h" +#include "../ifcparse/Ifc4x1.h" +#include "../ifcparse/Ifc4x2.h" double IfcParse::IfcSIPrefixToValue(const std::string& v) { if ( v == "EXA" ) return 1.e18; @@ -72,3 +74,5 @@ double IfcParse::get_SI_equivalent(typename Schema::IfcNamedUnit* named_unit) { template double IfcParse::get_SI_equivalent(typename Ifc2x3::IfcNamedUnit* named_unit); template double IfcParse::get_SI_equivalent(typename Ifc4::IfcNamedUnit* named_unit); +template double IfcParse::get_SI_equivalent(typename Ifc4x1::IfcNamedUnit* named_unit); +template double IfcParse::get_SI_equivalent(typename Ifc4x2::IfcNamedUnit* named_unit); diff --git a/src/ifcparse/IfcSchema.cpp b/src/ifcparse/IfcSchema.cpp index bfc0017ccd..51c97274f3 100644 --- a/src/ifcparse/IfcSchema.cpp +++ b/src/ifcparse/IfcSchema.cpp @@ -64,16 +64,19 @@ IfcParse::schema_definition::~schema_definition() { #include "../ifcparse/Ifc2x3.h" #include "../ifcparse/Ifc4.h" +#include "../ifcparse/Ifc4x1.h" #include "../ifcparse/Ifc4x2.h" const IfcParse::schema_definition* IfcParse::schema_by_name(const std::string& name) { // TODO: initialize automatically somehow Ifc2x3::get_schema(); Ifc4::get_schema(); + Ifc4x1::get_schema(); + Ifc4x2::get_schema(); std::map::const_iterator it = schemas.find(name); if (it == schemas.end()) { throw IfcParse::IfcException("No schema named " + name); } return it->second; -} \ No newline at end of file +} diff --git a/src/ifcparse/IfcSchema.h b/src/ifcparse/IfcSchema.h index 22ec3ef55a..158dcd1547 100644 --- a/src/ifcparse/IfcSchema.h +++ b/src/ifcparse/IfcSchema.h @@ -29,18 +29,6 @@ #include "../ifcparse/IfcException.h" - -#ifdef USE_IFC4X2 -#include "../ifcparse/Ifc4x2enum.h" -#elif USE_IFC4X1 -#include "../ifcparse/Ifc4x1enum.h" -#elif USE_IFC4 -#include "../ifcparse/Ifc4enum.h" -#else -#include "../ifcparse/Ifc2x3enum.h" -#endif - - // Forward declarations class IfcEntityInstanceData; diff --git a/src/ifcparse/parse_ifcxml.cpp b/src/ifcparse/parse_ifcxml.cpp index b7e4746204..876893148f 100644 --- a/src/ifcparse/parse_ifcxml.cpp +++ b/src/ifcparse/parse_ifcxml.cpp @@ -6,7 +6,7 @@ #include -#include +#include #include #include @@ -328,9 +328,24 @@ static void start_element(void* user, const xmlChar* tag, const xmlChar** attrs) attributes.push_back(std::make_pair(attrname, value)); if ((tagname == "ifc:ifcXML" || tagname == "ifcXML") && attrname == "xsi:schemaLocation" && boost::starts_with(value, "http://www.buildingsmart-tech.org/ifcXML/IFC4")) { - state->file = new IfcParse::IfcFile(IfcParse::schema_by_name("IFC4")); - state->file->parsing_complete() = false; - state->dialect = ifcxml_dialect_ifc4; + // We're expecting a schemaLocation like "http://www.buildingsmart-tech.org/ifcXML/IFC4/Add2 IFC4_ADD2_TC1.xsd" + // With token compression this is split into: + // [0] http: + // [1] www.buildingsmart-tech.org + // [2] ifcXML + // [3] IFC4 + // [4] Add2 + // [5] IFC4_ADD2_TC1.xsd + // The hosstname will likely change though. + auto it = boost::algorithm::make_split_iterator(value, boost::algorithm::token_finder(boost::algorithm::is_any_of("/ "), boost::algorithm::token_compress_on)); + decltype(it) end; + for (int tok = 0; it != end && tok < 3; ++it, ++tok) {} + if (it != end) { + const std::string schema_name(&it->front(), it->size()); + state->file = new IfcParse::IfcFile(IfcParse::schema_by_name(schema_name)); + state->file->parsing_complete() = false; + state->dialect = ifcxml_dialect_ifc4; + } goto end; } else if (tagname == "ex:iso_10303_28" && attrname == "xsi:schemaLocation" && boost::starts_with(value, "http://www.iai-tech.org/ifcXML/IFC2x3")) { state->file = new IfcParse::IfcFile(IfcParse::schema_by_name("IFC2X3")); diff --git a/src/serializers/schema_dependent/XmlSerializer.cpp b/src/serializers/schema_dependent/XmlSerializer.cpp index dd36ce63ff..a513675fab 100644 --- a/src/serializers/schema_dependent/XmlSerializer.cpp +++ b/src/serializers/schema_dependent/XmlSerializer.cpp @@ -255,7 +255,7 @@ ptree& descend(IfcSchema::IfcObjectDefinition* product, ptree& tree) { } } -#ifndef USE_IFC4 +#ifdef SCHEMA_IfcRelDecomposes_HAS_RelatedObjects IfcSchema::IfcObjectDefinition::list::ptr structures = get_related (product, &IfcSchema::IfcObjectDefinition::IsDecomposedBy, &IfcSchema::IfcRelDecomposes::RelatedObjects);