1 /*
2 Open Asset Import Library (ASSIMP)
3 ----------------------------------------------------------------------
4 
5 Copyright (c) 2006-2010, ASSIMP Development Team
6 All rights reserved.
7 
8 Redistribution and use of this software in source and binary forms,
9 with or without modification, are permitted provided that the
10 following conditions are met:
11 
12 * Redistributions of source code must retain the above
13   copyright notice, this list of conditions and the
14   following disclaimer.
15 
16 * Redistributions in binary form must reproduce the above
17   copyright notice, this list of conditions and the
18   following disclaimer in the documentation and/or other
19   materials provided with the distribution.
20 
21 * Neither the name of the ASSIMP team, nor the names of its
22   contributors may be used to endorse or promote products
23   derived from this software without specific prior
24   written permission of the ASSIMP Development Team.
25 
26 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
27 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
28 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
29 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
30 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
31 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
32 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
33 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
34 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
35 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 
38 ----------------------------------------------------------------------
39 */
40 
41 /** MACHINE-GENERATED by scripts/ICFImporter/CppGenerator.py */
42 
43 #ifndef INCLUDED_IFC_READER_GEN_H
44 #define INCLUDED_IFC_READER_GEN_H
45 
46 #include "STEPFile.h"
47 
48 namespace Assimp {
49 namespace IFC {
50 namespace Schema_4 {
51 
52 	using namespace STEP;
53 	using namespace STEP::EXPRESS;
54 
55 
56 	struct NotImplemented : public ObjectHelper<NotImplemented,0> {
57 
58 	};
59 
60 
61 	// ******************************************************************************
62 	// IFC Custom data types
63 	// ******************************************************************************
64 
65 
66     // C++ wrapper type for IfcStrippedOptional
67     typedef BOOLEAN IfcStrippedOptional;
68     // C++ wrapper type for IfcAbsorbedDoseMeasure
69     typedef REAL IfcAbsorbedDoseMeasure;
70     // C++ wrapper type for IfcAccelerationMeasure
71     typedef REAL IfcAccelerationMeasure;
72     // C++ wrapper type for IfcAmountOfSubstanceMeasure
73     typedef REAL IfcAmountOfSubstanceMeasure;
74     // C++ wrapper type for IfcAngularVelocityMeasure
75     typedef REAL IfcAngularVelocityMeasure;
76     // C++ wrapper type for IfcArcIndex
77     typedef ListOf< INTEGER, 3, 3 > IfcArcIndex;
78     // C++ wrapper type for IfcAreaDensityMeasure
79     typedef REAL IfcAreaDensityMeasure;
80     // C++ wrapper type for IfcAreaMeasure
81     typedef REAL IfcAreaMeasure;
82     // C++ wrapper type for IfcBoolean
83     typedef BOOLEAN IfcBoolean;
84     // C++ wrapper type for IfcBoxAlignment
85     typedef STRING IfcBoxAlignment;
86     // C++ wrapper type for IfcCardinalPointReference
87     typedef INTEGER IfcCardinalPointReference;
88     // C++ wrapper type for IfcCompoundPlaneAngleMeasure
89     typedef ListOf< INTEGER, 3, 4 > IfcCompoundPlaneAngleMeasure;
90     // C++ wrapper type for IfcContextDependentMeasure
91     typedef REAL IfcContextDependentMeasure;
92     // C++ wrapper type for IfcCountMeasure
93     typedef NUMBER IfcCountMeasure;
94     // C++ wrapper type for IfcCurvatureMeasure
95     typedef REAL IfcCurvatureMeasure;
96     // C++ wrapper type for IfcDate
97     typedef STRING IfcDate;
98     // C++ wrapper type for IfcDateTime
99     typedef STRING IfcDateTime;
100     // C++ wrapper type for IfcDayInMonthNumber
101     typedef INTEGER IfcDayInMonthNumber;
102     // C++ wrapper type for IfcDayInWeekNumber
103     typedef INTEGER IfcDayInWeekNumber;
104     // C++ wrapper type for IfcDescriptiveMeasure
105     typedef STRING IfcDescriptiveMeasure;
106     // C++ wrapper type for IfcDimensionCount
107     typedef INTEGER IfcDimensionCount;
108     // C++ wrapper type for IfcDoseEquivalentMeasure
109     typedef REAL IfcDoseEquivalentMeasure;
110     // C++ wrapper type for IfcDuration
111     typedef STRING IfcDuration;
112     // C++ wrapper type for IfcDynamicViscosityMeasure
113     typedef REAL IfcDynamicViscosityMeasure;
114     // C++ wrapper type for IfcElectricCapacitanceMeasure
115     typedef REAL IfcElectricCapacitanceMeasure;
116     // C++ wrapper type for IfcElectricChargeMeasure
117     typedef REAL IfcElectricChargeMeasure;
118     // C++ wrapper type for IfcElectricConductanceMeasure
119     typedef REAL IfcElectricConductanceMeasure;
120     // C++ wrapper type for IfcElectricCurrentMeasure
121     typedef REAL IfcElectricCurrentMeasure;
122     // C++ wrapper type for IfcElectricResistanceMeasure
123     typedef REAL IfcElectricResistanceMeasure;
124     // C++ wrapper type for IfcElectricVoltageMeasure
125     typedef REAL IfcElectricVoltageMeasure;
126     // C++ wrapper type for IfcEnergyMeasure
127     typedef REAL IfcEnergyMeasure;
128     // C++ wrapper type for IfcFontStyle
129     typedef STRING IfcFontStyle;
130     // C++ wrapper type for IfcFontVariant
131     typedef STRING IfcFontVariant;
132     // C++ wrapper type for IfcFontWeight
133     typedef STRING IfcFontWeight;
134     // C++ wrapper type for IfcForceMeasure
135     typedef REAL IfcForceMeasure;
136     // C++ wrapper type for IfcFrequencyMeasure
137     typedef REAL IfcFrequencyMeasure;
138     // C++ wrapper type for IfcGloballyUniqueId
139     typedef STRING IfcGloballyUniqueId;
140     // C++ wrapper type for IfcHeatFluxDensityMeasure
141     typedef REAL IfcHeatFluxDensityMeasure;
142     // C++ wrapper type for IfcHeatingValueMeasure
143     typedef REAL IfcHeatingValueMeasure;
144     // C++ wrapper type for IfcIdentifier
145     typedef STRING IfcIdentifier;
146     // C++ wrapper type for IfcIlluminanceMeasure
147     typedef REAL IfcIlluminanceMeasure;
148     // C++ wrapper type for IfcInductanceMeasure
149     typedef REAL IfcInductanceMeasure;
150     // C++ wrapper type for IfcInteger
151     typedef INTEGER IfcInteger;
152     // C++ wrapper type for IfcIntegerCountRateMeasure
153     typedef INTEGER IfcIntegerCountRateMeasure;
154     // C++ wrapper type for IfcIonConcentrationMeasure
155     typedef REAL IfcIonConcentrationMeasure;
156     // C++ wrapper type for IfcIsothermalMoistureCapacityMeasure
157     typedef REAL IfcIsothermalMoistureCapacityMeasure;
158     // C++ wrapper type for IfcKinematicViscosityMeasure
159     typedef REAL IfcKinematicViscosityMeasure;
160     // C++ wrapper type for IfcLabel
161     typedef STRING IfcLabel;
162     // C++ wrapper type for IfcLanguageId
163     typedef STRING IfcLanguageId;
164     // C++ wrapper type for IfcLengthMeasure
165     typedef REAL IfcLengthMeasure;
166     // C++ wrapper type for IfcLineIndex
167     typedef ListOf< INTEGER, 2, 0 > IfcLineIndex;
168     // C++ wrapper type for IfcLinearForceMeasure
169     typedef REAL IfcLinearForceMeasure;
170     // C++ wrapper type for IfcLinearMomentMeasure
171     typedef REAL IfcLinearMomentMeasure;
172     // C++ wrapper type for IfcLinearStiffnessMeasure
173     typedef REAL IfcLinearStiffnessMeasure;
174     // C++ wrapper type for IfcLinearVelocityMeasure
175     typedef REAL IfcLinearVelocityMeasure;
176     // C++ wrapper type for IfcLogical
177     typedef LOGICAL IfcLogical;
178     // C++ wrapper type for IfcLuminousFluxMeasure
179     typedef REAL IfcLuminousFluxMeasure;
180     // C++ wrapper type for IfcLuminousIntensityDistributionMeasure
181     typedef REAL IfcLuminousIntensityDistributionMeasure;
182     // C++ wrapper type for IfcLuminousIntensityMeasure
183     typedef REAL IfcLuminousIntensityMeasure;
184     // C++ wrapper type for IfcMagneticFluxDensityMeasure
185     typedef REAL IfcMagneticFluxDensityMeasure;
186     // C++ wrapper type for IfcMagneticFluxMeasure
187     typedef REAL IfcMagneticFluxMeasure;
188     // C++ wrapper type for IfcMassDensityMeasure
189     typedef REAL IfcMassDensityMeasure;
190     // C++ wrapper type for IfcMassFlowRateMeasure
191     typedef REAL IfcMassFlowRateMeasure;
192     // C++ wrapper type for IfcMassMeasure
193     typedef REAL IfcMassMeasure;
194     // C++ wrapper type for IfcMassPerLengthMeasure
195     typedef REAL IfcMassPerLengthMeasure;
196     // C++ wrapper type for IfcModulusOfElasticityMeasure
197     typedef REAL IfcModulusOfElasticityMeasure;
198     // C++ wrapper type for IfcModulusOfLinearSubgradeReactionMeasure
199     typedef REAL IfcModulusOfLinearSubgradeReactionMeasure;
200     // C++ wrapper type for IfcModulusOfRotationalSubgradeReactionMeasure
201     typedef REAL IfcModulusOfRotationalSubgradeReactionMeasure;
202     // C++ wrapper type for IfcModulusOfSubgradeReactionMeasure
203     typedef REAL IfcModulusOfSubgradeReactionMeasure;
204     // C++ wrapper type for IfcMoistureDiffusivityMeasure
205     typedef REAL IfcMoistureDiffusivityMeasure;
206     // C++ wrapper type for IfcMolecularWeightMeasure
207     typedef REAL IfcMolecularWeightMeasure;
208     // C++ wrapper type for IfcMomentOfInertiaMeasure
209     typedef REAL IfcMomentOfInertiaMeasure;
210     // C++ wrapper type for IfcMonetaryMeasure
211     typedef REAL IfcMonetaryMeasure;
212     // C++ wrapper type for IfcMonthInYearNumber
213     typedef INTEGER IfcMonthInYearNumber;
214     // C++ wrapper type for IfcNonNegativeLengthMeasure
215     typedef REAL IfcNonNegativeLengthMeasure;
216     // C++ wrapper type for IfcNormalisedRatioMeasure
217     typedef REAL IfcNormalisedRatioMeasure;
218     // C++ wrapper type for IfcNumericMeasure
219     typedef NUMBER IfcNumericMeasure;
220     // C++ wrapper type for IfcPHMeasure
221     typedef REAL IfcPHMeasure;
222     // C++ wrapper type for IfcParameterValue
223     typedef REAL IfcParameterValue;
224     // C++ wrapper type for IfcPlanarForceMeasure
225     typedef REAL IfcPlanarForceMeasure;
226     // C++ wrapper type for IfcPlaneAngleMeasure
227     typedef REAL IfcPlaneAngleMeasure;
228     // C++ wrapper type for IfcPositiveInteger
229     typedef INTEGER IfcPositiveInteger;
230     // C++ wrapper type for IfcPositiveLengthMeasure
231     typedef REAL IfcPositiveLengthMeasure;
232     // C++ wrapper type for IfcPositivePlaneAngleMeasure
233     typedef REAL IfcPositivePlaneAngleMeasure;
234     // C++ wrapper type for IfcPositiveRatioMeasure
235     typedef REAL IfcPositiveRatioMeasure;
236     // C++ wrapper type for IfcPowerMeasure
237     typedef REAL IfcPowerMeasure;
238     // C++ wrapper type for IfcPresentableText
239     typedef STRING IfcPresentableText;
240     // C++ wrapper type for IfcPressureMeasure
241     typedef REAL IfcPressureMeasure;
242     // C++ wrapper type for IfcRadioActivityMeasure
243     typedef REAL IfcRadioActivityMeasure;
244     // C++ wrapper type for IfcRatioMeasure
245     typedef REAL IfcRatioMeasure;
246     // C++ wrapper type for IfcReal
247     typedef REAL IfcReal;
248     // C++ wrapper type for IfcRotationalFrequencyMeasure
249     typedef REAL IfcRotationalFrequencyMeasure;
250     // C++ wrapper type for IfcRotationalMassMeasure
251     typedef REAL IfcRotationalMassMeasure;
252     // C++ wrapper type for IfcRotationalStiffnessMeasure
253     typedef REAL IfcRotationalStiffnessMeasure;
254     // C++ wrapper type for IfcSectionModulusMeasure
255     typedef REAL IfcSectionModulusMeasure;
256     // C++ wrapper type for IfcSectionalAreaIntegralMeasure
257     typedef REAL IfcSectionalAreaIntegralMeasure;
258     // C++ wrapper type for IfcShearModulusMeasure
259     typedef REAL IfcShearModulusMeasure;
260     // C++ wrapper type for IfcSolidAngleMeasure
261     typedef REAL IfcSolidAngleMeasure;
262     // C++ wrapper type for IfcSoundPowerLevelMeasure
263     typedef REAL IfcSoundPowerLevelMeasure;
264     // C++ wrapper type for IfcSoundPowerMeasure
265     typedef REAL IfcSoundPowerMeasure;
266     // C++ wrapper type for IfcSoundPressureLevelMeasure
267     typedef REAL IfcSoundPressureLevelMeasure;
268     // C++ wrapper type for IfcSoundPressureMeasure
269     typedef REAL IfcSoundPressureMeasure;
270     // C++ wrapper type for IfcSpecificHeatCapacityMeasure
271     typedef REAL IfcSpecificHeatCapacityMeasure;
272     // C++ wrapper type for IfcSpecularExponent
273     typedef REAL IfcSpecularExponent;
274     // C++ wrapper type for IfcSpecularRoughness
275     typedef REAL IfcSpecularRoughness;
276     // C++ wrapper type for IfcTemperatureGradientMeasure
277     typedef REAL IfcTemperatureGradientMeasure;
278     // C++ wrapper type for IfcTemperatureRateOfChangeMeasure
279     typedef REAL IfcTemperatureRateOfChangeMeasure;
280     // C++ wrapper type for IfcText
281     typedef STRING IfcText;
282     // C++ wrapper type for IfcTextAlignment
283     typedef STRING IfcTextAlignment;
284     // C++ wrapper type for IfcTextDecoration
285     typedef STRING IfcTextDecoration;
286     // C++ wrapper type for IfcTextFontName
287     typedef STRING IfcTextFontName;
288     // C++ wrapper type for IfcTextTransformation
289     typedef STRING IfcTextTransformation;
290     // C++ wrapper type for IfcThermalAdmittanceMeasure
291     typedef REAL IfcThermalAdmittanceMeasure;
292     // C++ wrapper type for IfcThermalConductivityMeasure
293     typedef REAL IfcThermalConductivityMeasure;
294     // C++ wrapper type for IfcThermalExpansionCoefficientMeasure
295     typedef REAL IfcThermalExpansionCoefficientMeasure;
296     // C++ wrapper type for IfcThermalResistanceMeasure
297     typedef REAL IfcThermalResistanceMeasure;
298     // C++ wrapper type for IfcThermalTransmittanceMeasure
299     typedef REAL IfcThermalTransmittanceMeasure;
300     // C++ wrapper type for IfcThermodynamicTemperatureMeasure
301     typedef REAL IfcThermodynamicTemperatureMeasure;
302     // C++ wrapper type for IfcTime
303     typedef STRING IfcTime;
304     // C++ wrapper type for IfcTimeMeasure
305     typedef REAL IfcTimeMeasure;
306     // C++ wrapper type for IfcTimeStamp
307     typedef INTEGER IfcTimeStamp;
308     // C++ wrapper type for IfcTorqueMeasure
309     typedef REAL IfcTorqueMeasure;
310     // C++ wrapper type for IfcURIReference
311     typedef STRING IfcURIReference;
312     // C++ wrapper type for IfcVaporPermeabilityMeasure
313     typedef REAL IfcVaporPermeabilityMeasure;
314     // C++ wrapper type for IfcVolumeMeasure
315     typedef REAL IfcVolumeMeasure;
316     // C++ wrapper type for IfcVolumetricFlowRateMeasure
317     typedef REAL IfcVolumetricFlowRateMeasure;
318     // C++ wrapper type for IfcWarpingConstantMeasure
319     typedef REAL IfcWarpingConstantMeasure;
320     // C++ wrapper type for IfcWarpingMomentMeasure
321     typedef REAL IfcWarpingMomentMeasure;
322     // C++ wrapper type for IfcActionRequestTypeEnum
323     typedef ENUMERATION IfcActionRequestTypeEnum;
324     // C++ wrapper type for IfcActionSourceTypeEnum
325     typedef ENUMERATION IfcActionSourceTypeEnum;
326     // C++ wrapper type for IfcActionTypeEnum
327     typedef ENUMERATION IfcActionTypeEnum;
328     // C++ wrapper type for IfcActuatorTypeEnum
329     typedef ENUMERATION IfcActuatorTypeEnum;
330     // C++ wrapper type for IfcAddressTypeEnum
331     typedef ENUMERATION IfcAddressTypeEnum;
332     // C++ wrapper type for IfcAirTerminalBoxTypeEnum
333     typedef ENUMERATION IfcAirTerminalBoxTypeEnum;
334     // C++ wrapper type for IfcAirTerminalTypeEnum
335     typedef ENUMERATION IfcAirTerminalTypeEnum;
336     // C++ wrapper type for IfcAirToAirHeatRecoveryTypeEnum
337     typedef ENUMERATION IfcAirToAirHeatRecoveryTypeEnum;
338     // C++ wrapper type for IfcAlarmTypeEnum
339     typedef ENUMERATION IfcAlarmTypeEnum;
340     // C++ wrapper type for IfcAnalysisModelTypeEnum
341     typedef ENUMERATION IfcAnalysisModelTypeEnum;
342     // C++ wrapper type for IfcAnalysisTheoryTypeEnum
343     typedef ENUMERATION IfcAnalysisTheoryTypeEnum;
344     // C++ wrapper type for IfcArithmeticOperatorEnum
345     typedef ENUMERATION IfcArithmeticOperatorEnum;
346     // C++ wrapper type for IfcAssemblyPlaceEnum
347     typedef ENUMERATION IfcAssemblyPlaceEnum;
348     // C++ wrapper type for IfcAudioVisualApplianceTypeEnum
349     typedef ENUMERATION IfcAudioVisualApplianceTypeEnum;
350     // C++ wrapper type for IfcBSplineCurveForm
351     typedef ENUMERATION IfcBSplineCurveForm;
352     // C++ wrapper type for IfcBSplineSurfaceForm
353     typedef ENUMERATION IfcBSplineSurfaceForm;
354     // C++ wrapper type for IfcBeamTypeEnum
355     typedef ENUMERATION IfcBeamTypeEnum;
356     // C++ wrapper type for IfcBenchmarkEnum
357     typedef ENUMERATION IfcBenchmarkEnum;
358     // C++ wrapper type for IfcBoilerTypeEnum
359     typedef ENUMERATION IfcBoilerTypeEnum;
360     // C++ wrapper type for IfcBooleanOperator
361     typedef ENUMERATION IfcBooleanOperator;
362     // C++ wrapper type for IfcBuildingElementPartTypeEnum
363     typedef ENUMERATION IfcBuildingElementPartTypeEnum;
364     // C++ wrapper type for IfcBuildingElementProxyTypeEnum
365     typedef ENUMERATION IfcBuildingElementProxyTypeEnum;
366     // C++ wrapper type for IfcBuildingSystemTypeEnum
367     typedef ENUMERATION IfcBuildingSystemTypeEnum;
368     // C++ wrapper type for IfcBurnerTypeEnum
369     typedef ENUMERATION IfcBurnerTypeEnum;
370     // C++ wrapper type for IfcCableCarrierFittingTypeEnum
371     typedef ENUMERATION IfcCableCarrierFittingTypeEnum;
372     // C++ wrapper type for IfcCableCarrierSegmentTypeEnum
373     typedef ENUMERATION IfcCableCarrierSegmentTypeEnum;
374     // C++ wrapper type for IfcCableFittingTypeEnum
375     typedef ENUMERATION IfcCableFittingTypeEnum;
376     // C++ wrapper type for IfcCableSegmentTypeEnum
377     typedef ENUMERATION IfcCableSegmentTypeEnum;
378     // C++ wrapper type for IfcChangeActionEnum
379     typedef ENUMERATION IfcChangeActionEnum;
380     // C++ wrapper type for IfcChillerTypeEnum
381     typedef ENUMERATION IfcChillerTypeEnum;
382     // C++ wrapper type for IfcChimneyTypeEnum
383     typedef ENUMERATION IfcChimneyTypeEnum;
384     // C++ wrapper type for IfcCoilTypeEnum
385     typedef ENUMERATION IfcCoilTypeEnum;
386     // C++ wrapper type for IfcColumnTypeEnum
387     typedef ENUMERATION IfcColumnTypeEnum;
388     // C++ wrapper type for IfcCommunicationsApplianceTypeEnum
389     typedef ENUMERATION IfcCommunicationsApplianceTypeEnum;
390     // C++ wrapper type for IfcComplexPropertyTemplateTypeEnum
391     typedef ENUMERATION IfcComplexPropertyTemplateTypeEnum;
392     // C++ wrapper type for IfcCompressorTypeEnum
393     typedef ENUMERATION IfcCompressorTypeEnum;
394     // C++ wrapper type for IfcCondenserTypeEnum
395     typedef ENUMERATION IfcCondenserTypeEnum;
396     // C++ wrapper type for IfcConnectionTypeEnum
397     typedef ENUMERATION IfcConnectionTypeEnum;
398     // C++ wrapper type for IfcConstraintEnum
399     typedef ENUMERATION IfcConstraintEnum;
400     // C++ wrapper type for IfcConstructionEquipmentResourceTypeEnum
401     typedef ENUMERATION IfcConstructionEquipmentResourceTypeEnum;
402     // C++ wrapper type for IfcConstructionMaterialResourceTypeEnum
403     typedef ENUMERATION IfcConstructionMaterialResourceTypeEnum;
404     // C++ wrapper type for IfcConstructionProductResourceTypeEnum
405     typedef ENUMERATION IfcConstructionProductResourceTypeEnum;
406     // C++ wrapper type for IfcControllerTypeEnum
407     typedef ENUMERATION IfcControllerTypeEnum;
408     // C++ wrapper type for IfcCooledBeamTypeEnum
409     typedef ENUMERATION IfcCooledBeamTypeEnum;
410     // C++ wrapper type for IfcCoolingTowerTypeEnum
411     typedef ENUMERATION IfcCoolingTowerTypeEnum;
412     // C++ wrapper type for IfcCostItemTypeEnum
413     typedef ENUMERATION IfcCostItemTypeEnum;
414     // C++ wrapper type for IfcCostScheduleTypeEnum
415     typedef ENUMERATION IfcCostScheduleTypeEnum;
416     // C++ wrapper type for IfcCoveringTypeEnum
417     typedef ENUMERATION IfcCoveringTypeEnum;
418     // C++ wrapper type for IfcCrewResourceTypeEnum
419     typedef ENUMERATION IfcCrewResourceTypeEnum;
420     // C++ wrapper type for IfcCurtainWallTypeEnum
421     typedef ENUMERATION IfcCurtainWallTypeEnum;
422     // C++ wrapper type for IfcCurveInterpolationEnum
423     typedef ENUMERATION IfcCurveInterpolationEnum;
424     // C++ wrapper type for IfcDamperTypeEnum
425     typedef ENUMERATION IfcDamperTypeEnum;
426     // C++ wrapper type for IfcDataOriginEnum
427     typedef ENUMERATION IfcDataOriginEnum;
428     // C++ wrapper type for IfcDerivedUnitEnum
429     typedef ENUMERATION IfcDerivedUnitEnum;
430     // C++ wrapper type for IfcDirectionSenseEnum
431     typedef ENUMERATION IfcDirectionSenseEnum;
432     // C++ wrapper type for IfcDiscreteAccessoryTypeEnum
433     typedef ENUMERATION IfcDiscreteAccessoryTypeEnum;
434     // C++ wrapper type for IfcDistributionChamberElementTypeEnum
435     typedef ENUMERATION IfcDistributionChamberElementTypeEnum;
436     // C++ wrapper type for IfcDistributionPortTypeEnum
437     typedef ENUMERATION IfcDistributionPortTypeEnum;
438     // C++ wrapper type for IfcDistributionSystemEnum
439     typedef ENUMERATION IfcDistributionSystemEnum;
440     // C++ wrapper type for IfcDocumentConfidentialityEnum
441     typedef ENUMERATION IfcDocumentConfidentialityEnum;
442     // C++ wrapper type for IfcDocumentStatusEnum
443     typedef ENUMERATION IfcDocumentStatusEnum;
444     // C++ wrapper type for IfcDoorPanelOperationEnum
445     typedef ENUMERATION IfcDoorPanelOperationEnum;
446     // C++ wrapper type for IfcDoorPanelPositionEnum
447     typedef ENUMERATION IfcDoorPanelPositionEnum;
448     // C++ wrapper type for IfcDoorStyleConstructionEnum
449     typedef ENUMERATION IfcDoorStyleConstructionEnum;
450     // C++ wrapper type for IfcDoorStyleOperationEnum
451     typedef ENUMERATION IfcDoorStyleOperationEnum;
452     // C++ wrapper type for IfcDoorTypeEnum
453     typedef ENUMERATION IfcDoorTypeEnum;
454     // C++ wrapper type for IfcDoorTypeOperationEnum
455     typedef ENUMERATION IfcDoorTypeOperationEnum;
456     // C++ wrapper type for IfcDuctFittingTypeEnum
457     typedef ENUMERATION IfcDuctFittingTypeEnum;
458     // C++ wrapper type for IfcDuctSegmentTypeEnum
459     typedef ENUMERATION IfcDuctSegmentTypeEnum;
460     // C++ wrapper type for IfcDuctSilencerTypeEnum
461     typedef ENUMERATION IfcDuctSilencerTypeEnum;
462     // C++ wrapper type for IfcElectricApplianceTypeEnum
463     typedef ENUMERATION IfcElectricApplianceTypeEnum;
464     // C++ wrapper type for IfcElectricDistributionBoardTypeEnum
465     typedef ENUMERATION IfcElectricDistributionBoardTypeEnum;
466     // C++ wrapper type for IfcElectricFlowStorageDeviceTypeEnum
467     typedef ENUMERATION IfcElectricFlowStorageDeviceTypeEnum;
468     // C++ wrapper type for IfcElectricGeneratorTypeEnum
469     typedef ENUMERATION IfcElectricGeneratorTypeEnum;
470     // C++ wrapper type for IfcElectricMotorTypeEnum
471     typedef ENUMERATION IfcElectricMotorTypeEnum;
472     // C++ wrapper type for IfcElectricTimeControlTypeEnum
473     typedef ENUMERATION IfcElectricTimeControlTypeEnum;
474     // C++ wrapper type for IfcElementAssemblyTypeEnum
475     typedef ENUMERATION IfcElementAssemblyTypeEnum;
476     // C++ wrapper type for IfcElementCompositionEnum
477     typedef ENUMERATION IfcElementCompositionEnum;
478     // C++ wrapper type for IfcEngineTypeEnum
479     typedef ENUMERATION IfcEngineTypeEnum;
480     // C++ wrapper type for IfcEvaporativeCoolerTypeEnum
481     typedef ENUMERATION IfcEvaporativeCoolerTypeEnum;
482     // C++ wrapper type for IfcEvaporatorTypeEnum
483     typedef ENUMERATION IfcEvaporatorTypeEnum;
484     // C++ wrapper type for IfcEventTriggerTypeEnum
485     typedef ENUMERATION IfcEventTriggerTypeEnum;
486     // C++ wrapper type for IfcEventTypeEnum
487     typedef ENUMERATION IfcEventTypeEnum;
488     // C++ wrapper type for IfcExternalSpatialElementTypeEnum
489     typedef ENUMERATION IfcExternalSpatialElementTypeEnum;
490     // C++ wrapper type for IfcFanTypeEnum
491     typedef ENUMERATION IfcFanTypeEnum;
492     // C++ wrapper type for IfcFastenerTypeEnum
493     typedef ENUMERATION IfcFastenerTypeEnum;
494     // C++ wrapper type for IfcFilterTypeEnum
495     typedef ENUMERATION IfcFilterTypeEnum;
496     // C++ wrapper type for IfcFireSuppressionTerminalTypeEnum
497     typedef ENUMERATION IfcFireSuppressionTerminalTypeEnum;
498     // C++ wrapper type for IfcFlowDirectionEnum
499     typedef ENUMERATION IfcFlowDirectionEnum;
500     // C++ wrapper type for IfcFlowInstrumentTypeEnum
501     typedef ENUMERATION IfcFlowInstrumentTypeEnum;
502     // C++ wrapper type for IfcFlowMeterTypeEnum
503     typedef ENUMERATION IfcFlowMeterTypeEnum;
504     // C++ wrapper type for IfcFootingTypeEnum
505     typedef ENUMERATION IfcFootingTypeEnum;
506     // C++ wrapper type for IfcFurnitureTypeEnum
507     typedef ENUMERATION IfcFurnitureTypeEnum;
508     // C++ wrapper type for IfcGeographicElementTypeEnum
509     typedef ENUMERATION IfcGeographicElementTypeEnum;
510     // C++ wrapper type for IfcGeometricProjectionEnum
511     typedef ENUMERATION IfcGeometricProjectionEnum;
512     // C++ wrapper type for IfcGlobalOrLocalEnum
513     typedef ENUMERATION IfcGlobalOrLocalEnum;
514     // C++ wrapper type for IfcGridTypeEnum
515     typedef ENUMERATION IfcGridTypeEnum;
516     // C++ wrapper type for IfcHeatExchangerTypeEnum
517     typedef ENUMERATION IfcHeatExchangerTypeEnum;
518     // C++ wrapper type for IfcHumidifierTypeEnum
519     typedef ENUMERATION IfcHumidifierTypeEnum;
520     // C++ wrapper type for IfcInterceptorTypeEnum
521     typedef ENUMERATION IfcInterceptorTypeEnum;
522     // C++ wrapper type for IfcInternalOrExternalEnum
523     typedef ENUMERATION IfcInternalOrExternalEnum;
524     // C++ wrapper type for IfcInventoryTypeEnum
525     typedef ENUMERATION IfcInventoryTypeEnum;
526     // C++ wrapper type for IfcJunctionBoxTypeEnum
527     typedef ENUMERATION IfcJunctionBoxTypeEnum;
528     // C++ wrapper type for IfcKnotType
529     typedef ENUMERATION IfcKnotType;
530     // C++ wrapper type for IfcLaborResourceTypeEnum
531     typedef ENUMERATION IfcLaborResourceTypeEnum;
532     // C++ wrapper type for IfcLampTypeEnum
533     typedef ENUMERATION IfcLampTypeEnum;
534     // C++ wrapper type for IfcLayerSetDirectionEnum
535     typedef ENUMERATION IfcLayerSetDirectionEnum;
536     // C++ wrapper type for IfcLightDistributionCurveEnum
537     typedef ENUMERATION IfcLightDistributionCurveEnum;
538     // C++ wrapper type for IfcLightEmissionSourceEnum
539     typedef ENUMERATION IfcLightEmissionSourceEnum;
540     // C++ wrapper type for IfcLightFixtureTypeEnum
541     typedef ENUMERATION IfcLightFixtureTypeEnum;
542     // C++ wrapper type for IfcLoadGroupTypeEnum
543     typedef ENUMERATION IfcLoadGroupTypeEnum;
544     // C++ wrapper type for IfcLogicalOperatorEnum
545     typedef ENUMERATION IfcLogicalOperatorEnum;
546     // C++ wrapper type for IfcMechanicalFastenerTypeEnum
547     typedef ENUMERATION IfcMechanicalFastenerTypeEnum;
548     // C++ wrapper type for IfcMedicalDeviceTypeEnum
549     typedef ENUMERATION IfcMedicalDeviceTypeEnum;
550     // C++ wrapper type for IfcMemberTypeEnum
551     typedef ENUMERATION IfcMemberTypeEnum;
552     // C++ wrapper type for IfcMotorConnectionTypeEnum
553     typedef ENUMERATION IfcMotorConnectionTypeEnum;
554     // C++ wrapper type for IfcNullStyle
555     typedef ENUMERATION IfcNullStyle;
556     // C++ wrapper type for IfcObjectTypeEnum
557     typedef ENUMERATION IfcObjectTypeEnum;
558     // C++ wrapper type for IfcObjectiveEnum
559     typedef ENUMERATION IfcObjectiveEnum;
560     // C++ wrapper type for IfcOccupantTypeEnum
561     typedef ENUMERATION IfcOccupantTypeEnum;
562     // C++ wrapper type for IfcOpeningElementTypeEnum
563     typedef ENUMERATION IfcOpeningElementTypeEnum;
564     // C++ wrapper type for IfcOutletTypeEnum
565     typedef ENUMERATION IfcOutletTypeEnum;
566     // C++ wrapper type for IfcPerformanceHistoryTypeEnum
567     typedef ENUMERATION IfcPerformanceHistoryTypeEnum;
568     // C++ wrapper type for IfcPermeableCoveringOperationEnum
569     typedef ENUMERATION IfcPermeableCoveringOperationEnum;
570     // C++ wrapper type for IfcPermitTypeEnum
571     typedef ENUMERATION IfcPermitTypeEnum;
572     // C++ wrapper type for IfcPhysicalOrVirtualEnum
573     typedef ENUMERATION IfcPhysicalOrVirtualEnum;
574     // C++ wrapper type for IfcPileConstructionEnum
575     typedef ENUMERATION IfcPileConstructionEnum;
576     // C++ wrapper type for IfcPileTypeEnum
577     typedef ENUMERATION IfcPileTypeEnum;
578     // C++ wrapper type for IfcPipeFittingTypeEnum
579     typedef ENUMERATION IfcPipeFittingTypeEnum;
580     // C++ wrapper type for IfcPipeSegmentTypeEnum
581     typedef ENUMERATION IfcPipeSegmentTypeEnum;
582     // C++ wrapper type for IfcPlateTypeEnum
583     typedef ENUMERATION IfcPlateTypeEnum;
584     // C++ wrapper type for IfcPreferredSurfaceCurveRepresentation
585     typedef ENUMERATION IfcPreferredSurfaceCurveRepresentation;
586     // C++ wrapper type for IfcProcedureTypeEnum
587     typedef ENUMERATION IfcProcedureTypeEnum;
588     // C++ wrapper type for IfcProfileTypeEnum
589     typedef ENUMERATION IfcProfileTypeEnum;
590     // C++ wrapper type for IfcProjectOrderTypeEnum
591     typedef ENUMERATION IfcProjectOrderTypeEnum;
592     // C++ wrapper type for IfcProjectedOrTrueLengthEnum
593     typedef ENUMERATION IfcProjectedOrTrueLengthEnum;
594     // C++ wrapper type for IfcProjectionElementTypeEnum
595     typedef ENUMERATION IfcProjectionElementTypeEnum;
596     // C++ wrapper type for IfcPropertySetTemplateTypeEnum
597     typedef ENUMERATION IfcPropertySetTemplateTypeEnum;
598     // C++ wrapper type for IfcProtectiveDeviceTrippingUnitTypeEnum
599     typedef ENUMERATION IfcProtectiveDeviceTrippingUnitTypeEnum;
600     // C++ wrapper type for IfcProtectiveDeviceTypeEnum
601     typedef ENUMERATION IfcProtectiveDeviceTypeEnum;
602     // C++ wrapper type for IfcPumpTypeEnum
603     typedef ENUMERATION IfcPumpTypeEnum;
604     // C++ wrapper type for IfcRailingTypeEnum
605     typedef ENUMERATION IfcRailingTypeEnum;
606     // C++ wrapper type for IfcRampFlightTypeEnum
607     typedef ENUMERATION IfcRampFlightTypeEnum;
608     // C++ wrapper type for IfcRampTypeEnum
609     typedef ENUMERATION IfcRampTypeEnum;
610     // C++ wrapper type for IfcRecurrenceTypeEnum
611     typedef ENUMERATION IfcRecurrenceTypeEnum;
612     // C++ wrapper type for IfcReflectanceMethodEnum
613     typedef ENUMERATION IfcReflectanceMethodEnum;
614     // C++ wrapper type for IfcReinforcingBarRoleEnum
615     typedef ENUMERATION IfcReinforcingBarRoleEnum;
616     // C++ wrapper type for IfcReinforcingBarSurfaceEnum
617     typedef ENUMERATION IfcReinforcingBarSurfaceEnum;
618     // C++ wrapper type for IfcReinforcingBarTypeEnum
619     typedef ENUMERATION IfcReinforcingBarTypeEnum;
620     // C++ wrapper type for IfcReinforcingMeshTypeEnum
621     typedef ENUMERATION IfcReinforcingMeshTypeEnum;
622     // C++ wrapper type for IfcRoleEnum
623     typedef ENUMERATION IfcRoleEnum;
624     // C++ wrapper type for IfcRoofTypeEnum
625     typedef ENUMERATION IfcRoofTypeEnum;
626     // C++ wrapper type for IfcSIPrefix
627     typedef ENUMERATION IfcSIPrefix;
628     // C++ wrapper type for IfcSIUnitName
629     typedef ENUMERATION IfcSIUnitName;
630     // C++ wrapper type for IfcSanitaryTerminalTypeEnum
631     typedef ENUMERATION IfcSanitaryTerminalTypeEnum;
632     // C++ wrapper type for IfcSectionTypeEnum
633     typedef ENUMERATION IfcSectionTypeEnum;
634     // C++ wrapper type for IfcSensorTypeEnum
635     typedef ENUMERATION IfcSensorTypeEnum;
636     // C++ wrapper type for IfcSequenceEnum
637     typedef ENUMERATION IfcSequenceEnum;
638     // C++ wrapper type for IfcShadingDeviceTypeEnum
639     typedef ENUMERATION IfcShadingDeviceTypeEnum;
640     // C++ wrapper type for IfcSimplePropertyTemplateTypeEnum
641     typedef ENUMERATION IfcSimplePropertyTemplateTypeEnum;
642     // C++ wrapper type for IfcSlabTypeEnum
643     typedef ENUMERATION IfcSlabTypeEnum;
644     // C++ wrapper type for IfcSolarDeviceTypeEnum
645     typedef ENUMERATION IfcSolarDeviceTypeEnum;
646     // C++ wrapper type for IfcSpaceHeaterTypeEnum
647     typedef ENUMERATION IfcSpaceHeaterTypeEnum;
648     // C++ wrapper type for IfcSpaceTypeEnum
649     typedef ENUMERATION IfcSpaceTypeEnum;
650     // C++ wrapper type for IfcSpatialZoneTypeEnum
651     typedef ENUMERATION IfcSpatialZoneTypeEnum;
652     // C++ wrapper type for IfcStackTerminalTypeEnum
653     typedef ENUMERATION IfcStackTerminalTypeEnum;
654     // C++ wrapper type for IfcStairFlightTypeEnum
655     typedef ENUMERATION IfcStairFlightTypeEnum;
656     // C++ wrapper type for IfcStairTypeEnum
657     typedef ENUMERATION IfcStairTypeEnum;
658     // C++ wrapper type for IfcStateEnum
659     typedef ENUMERATION IfcStateEnum;
660     // C++ wrapper type for IfcStructuralCurveActivityTypeEnum
661     typedef ENUMERATION IfcStructuralCurveActivityTypeEnum;
662     // C++ wrapper type for IfcStructuralCurveMemberTypeEnum
663     typedef ENUMERATION IfcStructuralCurveMemberTypeEnum;
664     // C++ wrapper type for IfcStructuralSurfaceActivityTypeEnum
665     typedef ENUMERATION IfcStructuralSurfaceActivityTypeEnum;
666     // C++ wrapper type for IfcStructuralSurfaceMemberTypeEnum
667     typedef ENUMERATION IfcStructuralSurfaceMemberTypeEnum;
668     // C++ wrapper type for IfcSubContractResourceTypeEnum
669     typedef ENUMERATION IfcSubContractResourceTypeEnum;
670     // C++ wrapper type for IfcSurfaceFeatureTypeEnum
671     typedef ENUMERATION IfcSurfaceFeatureTypeEnum;
672     // C++ wrapper type for IfcSurfaceSide
673     typedef ENUMERATION IfcSurfaceSide;
674     // C++ wrapper type for IfcSwitchingDeviceTypeEnum
675     typedef ENUMERATION IfcSwitchingDeviceTypeEnum;
676     // C++ wrapper type for IfcSystemFurnitureElementTypeEnum
677     typedef ENUMERATION IfcSystemFurnitureElementTypeEnum;
678     // C++ wrapper type for IfcTankTypeEnum
679     typedef ENUMERATION IfcTankTypeEnum;
680     // C++ wrapper type for IfcTaskDurationEnum
681     typedef ENUMERATION IfcTaskDurationEnum;
682     // C++ wrapper type for IfcTaskTypeEnum
683     typedef ENUMERATION IfcTaskTypeEnum;
684     // C++ wrapper type for IfcTendonAnchorTypeEnum
685     typedef ENUMERATION IfcTendonAnchorTypeEnum;
686     // C++ wrapper type for IfcTendonTypeEnum
687     typedef ENUMERATION IfcTendonTypeEnum;
688     // C++ wrapper type for IfcTextPath
689     typedef ENUMERATION IfcTextPath;
690     // C++ wrapper type for IfcTimeSeriesDataTypeEnum
691     typedef ENUMERATION IfcTimeSeriesDataTypeEnum;
692     // C++ wrapper type for IfcTransformerTypeEnum
693     typedef ENUMERATION IfcTransformerTypeEnum;
694     // C++ wrapper type for IfcTransitionCode
695     typedef ENUMERATION IfcTransitionCode;
696     // C++ wrapper type for IfcTransportElementTypeEnum
697     typedef ENUMERATION IfcTransportElementTypeEnum;
698     // C++ wrapper type for IfcTrimmingPreference
699     typedef ENUMERATION IfcTrimmingPreference;
700     // C++ wrapper type for IfcTubeBundleTypeEnum
701     typedef ENUMERATION IfcTubeBundleTypeEnum;
702     // C++ wrapper type for IfcUnitEnum
703     typedef ENUMERATION IfcUnitEnum;
704     // C++ wrapper type for IfcUnitaryControlElementTypeEnum
705     typedef ENUMERATION IfcUnitaryControlElementTypeEnum;
706     // C++ wrapper type for IfcUnitaryEquipmentTypeEnum
707     typedef ENUMERATION IfcUnitaryEquipmentTypeEnum;
708     // C++ wrapper type for IfcValveTypeEnum
709     typedef ENUMERATION IfcValveTypeEnum;
710     // C++ wrapper type for IfcVibrationIsolatorTypeEnum
711     typedef ENUMERATION IfcVibrationIsolatorTypeEnum;
712     // C++ wrapper type for IfcVoidingFeatureTypeEnum
713     typedef ENUMERATION IfcVoidingFeatureTypeEnum;
714     // C++ wrapper type for IfcWallTypeEnum
715     typedef ENUMERATION IfcWallTypeEnum;
716     // C++ wrapper type for IfcWasteTerminalTypeEnum
717     typedef ENUMERATION IfcWasteTerminalTypeEnum;
718     // C++ wrapper type for IfcWindowPanelOperationEnum
719     typedef ENUMERATION IfcWindowPanelOperationEnum;
720     // C++ wrapper type for IfcWindowPanelPositionEnum
721     typedef ENUMERATION IfcWindowPanelPositionEnum;
722     // C++ wrapper type for IfcWindowStyleConstructionEnum
723     typedef ENUMERATION IfcWindowStyleConstructionEnum;
724     // C++ wrapper type for IfcWindowStyleOperationEnum
725     typedef ENUMERATION IfcWindowStyleOperationEnum;
726     // C++ wrapper type for IfcWindowTypeEnum
727     typedef ENUMERATION IfcWindowTypeEnum;
728     // C++ wrapper type for IfcWindowTypePartitioningEnum
729     typedef ENUMERATION IfcWindowTypePartitioningEnum;
730     // C++ wrapper type for IfcWorkCalendarTypeEnum
731     typedef ENUMERATION IfcWorkCalendarTypeEnum;
732     // C++ wrapper type for IfcWorkPlanTypeEnum
733     typedef ENUMERATION IfcWorkPlanTypeEnum;
734     // C++ wrapper type for IfcWorkScheduleTypeEnum
735     typedef ENUMERATION IfcWorkScheduleTypeEnum;
736     // C++ wrapper type for IfcActorSelect
737     typedef SELECT IfcActorSelect;
738     // C++ wrapper type for IfcAppliedValueSelect
739     typedef SELECT IfcAppliedValueSelect;
740     // C++ wrapper type for IfcAxis2Placement
741     typedef SELECT IfcAxis2Placement;
742     // C++ wrapper type for IfcBendingParameterSelect
743     typedef SELECT IfcBendingParameterSelect;
744     // C++ wrapper type for IfcBooleanOperand
745     typedef SELECT IfcBooleanOperand;
746     // C++ wrapper type for IfcClassificationReferenceSelect
747     typedef SELECT IfcClassificationReferenceSelect;
748     // C++ wrapper type for IfcClassificationSelect
749     typedef SELECT IfcClassificationSelect;
750     // C++ wrapper type for IfcColour
751     typedef SELECT IfcColour;
752     // C++ wrapper type for IfcColourOrFactor
753     typedef SELECT IfcColourOrFactor;
754     // C++ wrapper type for IfcCoordinateReferenceSystemSelect
755     typedef SELECT IfcCoordinateReferenceSystemSelect;
756     // C++ wrapper type for IfcCsgSelect
757     typedef SELECT IfcCsgSelect;
758     // C++ wrapper type for IfcCurveFontOrScaledCurveFontSelect
759     typedef SELECT IfcCurveFontOrScaledCurveFontSelect;
760     // C++ wrapper type for IfcCurveOnSurface
761     typedef SELECT IfcCurveOnSurface;
762     // C++ wrapper type for IfcCurveOrEdgeCurve
763     typedef SELECT IfcCurveOrEdgeCurve;
764     // C++ wrapper type for IfcCurveStyleFontSelect
765     typedef SELECT IfcCurveStyleFontSelect;
766     // C++ wrapper type for IfcDefinitionSelect
767     typedef SELECT IfcDefinitionSelect;
768     // C++ wrapper type for IfcDerivedMeasureValue
769     typedef SELECT IfcDerivedMeasureValue;
770     // C++ wrapper type for IfcDocumentSelect
771     typedef SELECT IfcDocumentSelect;
772     // C++ wrapper type for IfcFillStyleSelect
773     typedef SELECT IfcFillStyleSelect;
774     // C++ wrapper type for IfcGeometricSetSelect
775     typedef SELECT IfcGeometricSetSelect;
776     // C++ wrapper type for IfcGridPlacementDirectionSelect
777     typedef SELECT IfcGridPlacementDirectionSelect;
778     // C++ wrapper type for IfcHatchLineDistanceSelect
779     typedef SELECT IfcHatchLineDistanceSelect;
780     // C++ wrapper type for IfcLayeredItem
781     typedef SELECT IfcLayeredItem;
782     // C++ wrapper type for IfcLibrarySelect
783     typedef SELECT IfcLibrarySelect;
784     // C++ wrapper type for IfcLightDistributionDataSourceSelect
785     typedef SELECT IfcLightDistributionDataSourceSelect;
786     // C++ wrapper type for IfcMaterialSelect
787     typedef SELECT IfcMaterialSelect;
788     // C++ wrapper type for IfcMeasureValue
789     typedef SELECT IfcMeasureValue;
790     // C++ wrapper type for IfcMetricValueSelect
791     typedef SELECT IfcMetricValueSelect;
792     // C++ wrapper type for IfcModulusOfRotationalSubgradeReactionSelect
793     typedef SELECT IfcModulusOfRotationalSubgradeReactionSelect;
794     // C++ wrapper type for IfcModulusOfSubgradeReactionSelect
795     typedef SELECT IfcModulusOfSubgradeReactionSelect;
796     // C++ wrapper type for IfcModulusOfTranslationalSubgradeReactionSelect
797     typedef SELECT IfcModulusOfTranslationalSubgradeReactionSelect;
798     // C++ wrapper type for IfcObjectReferenceSelect
799     typedef SELECT IfcObjectReferenceSelect;
800     // C++ wrapper type for IfcPointOrVertexPoint
801     typedef SELECT IfcPointOrVertexPoint;
802     // C++ wrapper type for IfcPresentationStyleSelect
803     typedef SELECT IfcPresentationStyleSelect;
804     // C++ wrapper type for IfcProcessSelect
805     typedef SELECT IfcProcessSelect;
806     // C++ wrapper type for IfcProductRepresentationSelect
807     typedef SELECT IfcProductRepresentationSelect;
808     // C++ wrapper type for IfcProductSelect
809     typedef SELECT IfcProductSelect;
810     // C++ wrapper type for IfcPropertySetDefinitionSelect
811     typedef SELECT IfcPropertySetDefinitionSelect;
812     // C++ wrapper type for IfcResourceObjectSelect
813     typedef SELECT IfcResourceObjectSelect;
814     // C++ wrapper type for IfcResourceSelect
815     typedef SELECT IfcResourceSelect;
816     // C++ wrapper type for IfcRotationalStiffnessSelect
817     typedef SELECT IfcRotationalStiffnessSelect;
818     // C++ wrapper type for IfcSegmentIndexSelect
819     typedef SELECT IfcSegmentIndexSelect;
820     // C++ wrapper type for IfcShell
821     typedef SELECT IfcShell;
822     // C++ wrapper type for IfcSimpleValue
823     typedef SELECT IfcSimpleValue;
824     // C++ wrapper type for IfcSizeSelect
825     typedef SELECT IfcSizeSelect;
826     // C++ wrapper type for IfcSolidOrShell
827     typedef SELECT IfcSolidOrShell;
828     // C++ wrapper type for IfcSpaceBoundarySelect
829     typedef SELECT IfcSpaceBoundarySelect;
830     // C++ wrapper type for IfcSpecularHighlightSelect
831     typedef SELECT IfcSpecularHighlightSelect;
832     // C++ wrapper type for IfcStructuralActivityAssignmentSelect
833     typedef SELECT IfcStructuralActivityAssignmentSelect;
834     // C++ wrapper type for IfcStyleAssignmentSelect
835     typedef SELECT IfcStyleAssignmentSelect;
836     // C++ wrapper type for IfcSurfaceOrFaceSurface
837     typedef SELECT IfcSurfaceOrFaceSurface;
838     // C++ wrapper type for IfcSurfaceStyleElementSelect
839     typedef SELECT IfcSurfaceStyleElementSelect;
840     // C++ wrapper type for IfcTextFontSelect
841     typedef SELECT IfcTextFontSelect;
842     // C++ wrapper type for IfcTimeOrRatioSelect
843     typedef SELECT IfcTimeOrRatioSelect;
844     // C++ wrapper type for IfcTranslationalStiffnessSelect
845     typedef SELECT IfcTranslationalStiffnessSelect;
846     // C++ wrapper type for IfcTrimmingSelect
847     typedef SELECT IfcTrimmingSelect;
848     // C++ wrapper type for IfcUnit
849     typedef SELECT IfcUnit;
850     // C++ wrapper type for IfcValue
851     typedef SELECT IfcValue;
852     // C++ wrapper type for IfcVectorOrDirection
853     typedef SELECT IfcVectorOrDirection;
854     // C++ wrapper type for IfcWarpingStiffnessSelect
855     typedef SELECT IfcWarpingStiffnessSelect;
856 
857 
858 	// ******************************************************************************
859 	// IFC Entities
860 	// ******************************************************************************
861 
862 	struct IfcRoot;
863 	struct IfcObjectDefinition;
864 	struct IfcObject;
865 	struct IfcControl;
866 	struct IfcActionRequest;
867 	struct IfcActor;
868 	typedef NotImplemented IfcActorRole; // (not currently used by Assimp)
869 	struct IfcProduct;
870 	struct IfcElement;
871 	struct IfcDistributionElement;
872 	struct IfcDistributionControlElement;
873 	struct IfcActuator;
874 	struct IfcTypeObject;
875 	struct IfcTypeProduct;
876 	struct IfcElementType;
877 	struct IfcDistributionElementType;
878 	struct IfcDistributionControlElementType;
879 	struct IfcActuatorType;
880 	typedef NotImplemented IfcAddress; // (not currently used by Assimp)
881 	struct IfcRepresentationItem;
882 	struct IfcGeometricRepresentationItem;
883 	struct IfcSolidModel;
884 	struct IfcManifoldSolidBrep;
885 	struct IfcAdvancedBrep;
886 	struct IfcAdvancedBrepWithVoids;
887 	struct IfcTopologicalRepresentationItem;
888 	struct IfcFace;
889 	struct IfcFaceSurface;
890 	struct IfcAdvancedFace;
891 	struct IfcDistributionFlowElement;
892 	struct IfcFlowTerminal;
893 	struct IfcAirTerminal;
894 	struct IfcFlowController;
895 	struct IfcAirTerminalBox;
896 	struct IfcDistributionFlowElementType;
897 	struct IfcFlowControllerType;
898 	struct IfcAirTerminalBoxType;
899 	struct IfcFlowTerminalType;
900 	struct IfcAirTerminalType;
901 	struct IfcEnergyConversionDevice;
902 	struct IfcAirToAirHeatRecovery;
903 	struct IfcEnergyConversionDeviceType;
904 	struct IfcAirToAirHeatRecoveryType;
905 	struct IfcAlarm;
906 	struct IfcAlarmType;
907 	struct IfcAnnotation;
908 	struct IfcAnnotationFillArea;
909 	typedef NotImplemented IfcApplication; // (not currently used by Assimp)
910 	typedef NotImplemented IfcAppliedValue; // (not currently used by Assimp)
911 	typedef NotImplemented IfcApproval; // (not currently used by Assimp)
912 	typedef NotImplemented IfcResourceLevelRelationship; // (not currently used by Assimp)
913 	typedef NotImplemented IfcApprovalRelationship; // (not currently used by Assimp)
914 	struct IfcProfileDef;
915 	struct IfcArbitraryClosedProfileDef;
916 	struct IfcArbitraryOpenProfileDef;
917 	struct IfcArbitraryProfileDefWithVoids;
918 	struct IfcGroup;
919 	struct IfcAsset;
920 	struct IfcParameterizedProfileDef;
921 	struct IfcAsymmetricIShapeProfileDef;
922 	struct IfcAudioVisualAppliance;
923 	struct IfcAudioVisualApplianceType;
924 	struct IfcPlacement;
925 	struct IfcAxis1Placement;
926 	struct IfcAxis2Placement2D;
927 	struct IfcAxis2Placement3D;
928 	struct IfcCurve;
929 	struct IfcBoundedCurve;
930 	struct IfcBSplineCurve;
931 	struct IfcBSplineCurveWithKnots;
932 	struct IfcSurface;
933 	struct IfcBoundedSurface;
934 	struct IfcBSplineSurface;
935 	struct IfcBSplineSurfaceWithKnots;
936 	struct IfcBuildingElement;
937 	struct IfcBeam;
938 	struct IfcBeamStandardCase;
939 	struct IfcBuildingElementType;
940 	struct IfcBeamType;
941 	struct IfcPresentationItem;
942 	typedef NotImplemented IfcSurfaceTexture; // (not currently used by Assimp)
943 	typedef NotImplemented IfcBlobTexture; // (not currently used by Assimp)
944 	struct IfcCsgPrimitive3D;
945 	struct IfcBlock;
946 	struct IfcBoiler;
947 	struct IfcBoilerType;
948 	struct IfcBooleanResult;
949 	struct IfcBooleanClippingResult;
950 	typedef NotImplemented IfcBoundaryCondition; // (not currently used by Assimp)
951 	struct IfcCompositeCurve;
952 	struct IfcCompositeCurveOnSurface;
953 	struct IfcBoundaryCurve;
954 	typedef NotImplemented IfcBoundaryEdgeCondition; // (not currently used by Assimp)
955 	typedef NotImplemented IfcBoundaryFaceCondition; // (not currently used by Assimp)
956 	typedef NotImplemented IfcBoundaryNodeCondition; // (not currently used by Assimp)
957 	typedef NotImplemented IfcBoundaryNodeConditionWarping; // (not currently used by Assimp)
958 	struct IfcBoundingBox;
959 	struct IfcHalfSpaceSolid;
960 	struct IfcBoxedHalfSpace;
961 	struct IfcSpatialElement;
962 	struct IfcSpatialStructureElement;
963 	struct IfcBuilding;
964 	struct IfcElementComponent;
965 	struct IfcBuildingElementPart;
966 	struct IfcElementComponentType;
967 	struct IfcBuildingElementPartType;
968 	struct IfcBuildingElementProxy;
969 	struct IfcBuildingElementProxyType;
970 	struct IfcBuildingStorey;
971 	struct IfcSystem;
972 	struct IfcBuildingSystem;
973 	struct IfcBurner;
974 	struct IfcBurnerType;
975 	struct IfcCShapeProfileDef;
976 	struct IfcFlowFitting;
977 	struct IfcCableCarrierFitting;
978 	struct IfcFlowFittingType;
979 	struct IfcCableCarrierFittingType;
980 	struct IfcFlowSegment;
981 	struct IfcCableCarrierSegment;
982 	struct IfcFlowSegmentType;
983 	struct IfcCableCarrierSegmentType;
984 	struct IfcCableFitting;
985 	struct IfcCableFittingType;
986 	struct IfcCableSegment;
987 	struct IfcCableSegmentType;
988 	struct IfcPoint;
989 	struct IfcCartesianPoint;
990 	struct IfcCartesianPointList;
991 	struct IfcCartesianPointList2D;
992 	struct IfcCartesianPointList3D;
993 	struct IfcCartesianTransformationOperator;
994 	struct IfcCartesianTransformationOperator2D;
995 	struct IfcCartesianTransformationOperator2DnonUniform;
996 	struct IfcCartesianTransformationOperator3D;
997 	struct IfcCartesianTransformationOperator3DnonUniform;
998 	struct IfcCenterLineProfileDef;
999 	struct IfcChiller;
1000 	struct IfcChillerType;
1001 	struct IfcChimney;
1002 	struct IfcChimneyType;
1003 	struct IfcConic;
1004 	struct IfcCircle;
1005 	struct IfcCircleProfileDef;
1006 	struct IfcCircleHollowProfileDef;
1007 	struct IfcCivilElement;
1008 	struct IfcCivilElementType;
1009 	typedef NotImplemented IfcExternalInformation; // (not currently used by Assimp)
1010 	typedef NotImplemented IfcClassification; // (not currently used by Assimp)
1011 	typedef NotImplemented IfcExternalReference; // (not currently used by Assimp)
1012 	typedef NotImplemented IfcClassificationReference; // (not currently used by Assimp)
1013 	struct IfcConnectedFaceSet;
1014 	struct IfcClosedShell;
1015 	struct IfcCoil;
1016 	struct IfcCoilType;
1017 	struct IfcColourSpecification;
1018 	struct IfcColourRgb;
1019 	typedef NotImplemented IfcColourRgbList; // (not currently used by Assimp)
1020 	struct IfcColumn;
1021 	struct IfcColumnStandardCase;
1022 	struct IfcColumnType;
1023 	struct IfcCommunicationsAppliance;
1024 	struct IfcCommunicationsApplianceType;
1025 	struct IfcPropertyAbstraction;
1026 	struct IfcProperty;
1027 	struct IfcComplexProperty;
1028 	struct IfcPropertyDefinition;
1029 	typedef NotImplemented IfcPropertyTemplateDefinition; // (not currently used by Assimp)
1030 	typedef NotImplemented IfcPropertyTemplate; // (not currently used by Assimp)
1031 	typedef NotImplemented IfcComplexPropertyTemplate; // (not currently used by Assimp)
1032 	struct IfcCompositeCurveSegment;
1033 	struct IfcCompositeProfileDef;
1034 	struct IfcFlowMovingDevice;
1035 	struct IfcCompressor;
1036 	struct IfcFlowMovingDeviceType;
1037 	struct IfcCompressorType;
1038 	struct IfcCondenser;
1039 	struct IfcCondenserType;
1040 	typedef NotImplemented IfcConnectionGeometry; // (not currently used by Assimp)
1041 	typedef NotImplemented IfcConnectionCurveGeometry; // (not currently used by Assimp)
1042 	typedef NotImplemented IfcConnectionPointGeometry; // (not currently used by Assimp)
1043 	typedef NotImplemented IfcConnectionPointEccentricity; // (not currently used by Assimp)
1044 	typedef NotImplemented IfcConnectionSurfaceGeometry; // (not currently used by Assimp)
1045 	typedef NotImplemented IfcConnectionVolumeGeometry; // (not currently used by Assimp)
1046 	typedef NotImplemented IfcConstraint; // (not currently used by Assimp)
1047 	struct IfcResource;
1048 	struct IfcConstructionResource;
1049 	struct IfcConstructionEquipmentResource;
1050 	struct IfcTypeResource;
1051 	struct IfcConstructionResourceType;
1052 	struct IfcConstructionEquipmentResourceType;
1053 	struct IfcConstructionMaterialResource;
1054 	struct IfcConstructionMaterialResourceType;
1055 	struct IfcConstructionProductResource;
1056 	struct IfcConstructionProductResourceType;
1057 	struct IfcContext;
1058 	struct IfcNamedUnit;
1059 	struct IfcContextDependentUnit;
1060 	struct IfcController;
1061 	struct IfcControllerType;
1062 	struct IfcConversionBasedUnit;
1063 	struct IfcConversionBasedUnitWithOffset;
1064 	struct IfcCooledBeam;
1065 	struct IfcCooledBeamType;
1066 	struct IfcCoolingTower;
1067 	struct IfcCoolingTowerType;
1068 	typedef NotImplemented IfcCoordinateOperation; // (not currently used by Assimp)
1069 	typedef NotImplemented IfcCoordinateReferenceSystem; // (not currently used by Assimp)
1070 	struct IfcCostItem;
1071 	struct IfcCostSchedule;
1072 	typedef NotImplemented IfcCostValue; // (not currently used by Assimp)
1073 	struct IfcCovering;
1074 	struct IfcCoveringType;
1075 	struct IfcCrewResource;
1076 	struct IfcCrewResourceType;
1077 	struct IfcCsgSolid;
1078 	typedef NotImplemented IfcCurrencyRelationship; // (not currently used by Assimp)
1079 	struct IfcCurtainWall;
1080 	struct IfcCurtainWallType;
1081 	struct IfcCurveBoundedPlane;
1082 	struct IfcCurveBoundedSurface;
1083 	struct IfcPresentationStyle;
1084 	typedef NotImplemented IfcCurveStyle; // (not currently used by Assimp)
1085 	typedef NotImplemented IfcCurveStyleFont; // (not currently used by Assimp)
1086 	typedef NotImplemented IfcCurveStyleFontAndScaling; // (not currently used by Assimp)
1087 	typedef NotImplemented IfcCurveStyleFontPattern; // (not currently used by Assimp)
1088 	struct IfcElementarySurface;
1089 	struct IfcCylindricalSurface;
1090 	struct IfcDamper;
1091 	struct IfcDamperType;
1092 	struct IfcDerivedProfileDef;
1093 	typedef NotImplemented IfcDerivedUnit; // (not currently used by Assimp)
1094 	typedef NotImplemented IfcDerivedUnitElement; // (not currently used by Assimp)
1095 	typedef NotImplemented IfcDimensionalExponents; // (not currently used by Assimp)
1096 	struct IfcDirection;
1097 	struct IfcDiscreteAccessory;
1098 	struct IfcDiscreteAccessoryType;
1099 	struct IfcDistributionChamberElement;
1100 	struct IfcDistributionChamberElementType;
1101 	struct IfcDistributionSystem;
1102 	struct IfcDistributionCircuit;
1103 	struct IfcPort;
1104 	struct IfcDistributionPort;
1105 	typedef NotImplemented IfcDocumentInformation; // (not currently used by Assimp)
1106 	typedef NotImplemented IfcDocumentInformationRelationship; // (not currently used by Assimp)
1107 	typedef NotImplemented IfcDocumentReference; // (not currently used by Assimp)
1108 	struct IfcDoor;
1109 	struct IfcPropertySetDefinition;
1110 	typedef NotImplemented IfcPreDefinedPropertySet; // (not currently used by Assimp)
1111 	typedef NotImplemented IfcDoorLiningProperties; // (not currently used by Assimp)
1112 	typedef NotImplemented IfcDoorPanelProperties; // (not currently used by Assimp)
1113 	struct IfcDoorStandardCase;
1114 	struct IfcDoorStyle;
1115 	struct IfcDoorType;
1116 	typedef NotImplemented IfcPreDefinedItem; // (not currently used by Assimp)
1117 	typedef NotImplemented IfcPreDefinedColour; // (not currently used by Assimp)
1118 	typedef NotImplemented IfcDraughtingPreDefinedColour; // (not currently used by Assimp)
1119 	typedef NotImplemented IfcPreDefinedCurveFont; // (not currently used by Assimp)
1120 	typedef NotImplemented IfcDraughtingPreDefinedCurveFont; // (not currently used by Assimp)
1121 	struct IfcDuctFitting;
1122 	struct IfcDuctFittingType;
1123 	struct IfcDuctSegment;
1124 	struct IfcDuctSegmentType;
1125 	struct IfcFlowTreatmentDevice;
1126 	struct IfcDuctSilencer;
1127 	struct IfcFlowTreatmentDeviceType;
1128 	struct IfcDuctSilencerType;
1129 	struct IfcEdge;
1130 	struct IfcEdgeCurve;
1131 	struct IfcLoop;
1132 	struct IfcEdgeLoop;
1133 	struct IfcElectricAppliance;
1134 	struct IfcElectricApplianceType;
1135 	struct IfcElectricDistributionBoard;
1136 	struct IfcElectricDistributionBoardType;
1137 	struct IfcFlowStorageDevice;
1138 	struct IfcElectricFlowStorageDevice;
1139 	struct IfcFlowStorageDeviceType;
1140 	struct IfcElectricFlowStorageDeviceType;
1141 	struct IfcElectricGenerator;
1142 	struct IfcElectricGeneratorType;
1143 	struct IfcElectricMotor;
1144 	struct IfcElectricMotorType;
1145 	struct IfcElectricTimeControl;
1146 	struct IfcElectricTimeControlType;
1147 	struct IfcElementAssembly;
1148 	struct IfcElementAssemblyType;
1149 	struct IfcQuantitySet;
1150 	struct IfcElementQuantity;
1151 	struct IfcEllipse;
1152 	struct IfcEllipseProfileDef;
1153 	struct IfcEngine;
1154 	struct IfcEngineType;
1155 	struct IfcEvaporativeCooler;
1156 	struct IfcEvaporativeCoolerType;
1157 	struct IfcEvaporator;
1158 	struct IfcEvaporatorType;
1159 	struct IfcProcess;
1160 	struct IfcEvent;
1161 	typedef NotImplemented IfcSchedulingTime; // (not currently used by Assimp)
1162 	typedef NotImplemented IfcEventTime; // (not currently used by Assimp)
1163 	struct IfcTypeProcess;
1164 	struct IfcEventType;
1165 	typedef NotImplemented IfcExtendedProperties; // (not currently used by Assimp)
1166 	typedef NotImplemented IfcExternalReferenceRelationship; // (not currently used by Assimp)
1167 	struct IfcExternalSpatialStructureElement;
1168 	struct IfcExternalSpatialElement;
1169 	typedef NotImplemented IfcExternallyDefinedHatchStyle; // (not currently used by Assimp)
1170 	typedef NotImplemented IfcExternallyDefinedSurfaceStyle; // (not currently used by Assimp)
1171 	typedef NotImplemented IfcExternallyDefinedTextFont; // (not currently used by Assimp)
1172 	struct IfcSweptAreaSolid;
1173 	struct IfcExtrudedAreaSolid;
1174 	struct IfcExtrudedAreaSolidTapered;
1175 	struct IfcFaceBasedSurfaceModel;
1176 	struct IfcFaceBound;
1177 	struct IfcFaceOuterBound;
1178 	struct IfcFacetedBrep;
1179 	struct IfcFacetedBrepWithVoids;
1180 	typedef NotImplemented IfcStructuralConnectionCondition; // (not currently used by Assimp)
1181 	typedef NotImplemented IfcFailureConnectionCondition; // (not currently used by Assimp)
1182 	struct IfcFan;
1183 	struct IfcFanType;
1184 	struct IfcFastener;
1185 	struct IfcFastenerType;
1186 	struct IfcFeatureElement;
1187 	struct IfcFeatureElementAddition;
1188 	struct IfcFeatureElementSubtraction;
1189 	typedef NotImplemented IfcFillAreaStyle; // (not currently used by Assimp)
1190 	struct IfcFillAreaStyleHatching;
1191 	struct IfcFillAreaStyleTiles;
1192 	struct IfcFilter;
1193 	struct IfcFilterType;
1194 	struct IfcFireSuppressionTerminal;
1195 	struct IfcFireSuppressionTerminalType;
1196 	struct IfcFixedReferenceSweptAreaSolid;
1197 	struct IfcFlowInstrument;
1198 	struct IfcFlowInstrumentType;
1199 	struct IfcFlowMeter;
1200 	struct IfcFlowMeterType;
1201 	struct IfcFooting;
1202 	struct IfcFootingType;
1203 	struct IfcFurnishingElement;
1204 	struct IfcFurnishingElementType;
1205 	struct IfcFurniture;
1206 	struct IfcFurnitureType;
1207 	struct IfcGeographicElement;
1208 	struct IfcGeographicElementType;
1209 	struct IfcGeometricSet;
1210 	struct IfcGeometricCurveSet;
1211 	struct IfcRepresentationContext;
1212 	struct IfcGeometricRepresentationContext;
1213 	struct IfcGeometricRepresentationSubContext;
1214 	struct IfcGrid;
1215 	typedef NotImplemented IfcGridAxis; // (not currently used by Assimp)
1216 	struct IfcObjectPlacement;
1217 	struct IfcGridPlacement;
1218 	struct IfcHeatExchanger;
1219 	struct IfcHeatExchangerType;
1220 	struct IfcHumidifier;
1221 	struct IfcHumidifierType;
1222 	struct IfcIShapeProfileDef;
1223 	typedef NotImplemented IfcImageTexture; // (not currently used by Assimp)
1224 	typedef NotImplemented IfcIndexedColourMap; // (not currently used by Assimp)
1225 	struct IfcIndexedPolyCurve;
1226 	struct IfcTessellatedItem;
1227 	struct IfcIndexedPolygonalFace;
1228 	struct IfcIndexedPolygonalFaceWithVoids;
1229 	typedef NotImplemented IfcTextureCoordinate; // (not currently used by Assimp)
1230 	typedef NotImplemented IfcIndexedTextureMap; // (not currently used by Assimp)
1231 	typedef NotImplemented IfcIndexedTriangleTextureMap; // (not currently used by Assimp)
1232 	struct IfcInterceptor;
1233 	struct IfcInterceptorType;
1234 	struct IfcSurfaceCurve;
1235 	struct IfcIntersectionCurve;
1236 	struct IfcInventory;
1237 	typedef NotImplemented IfcTimeSeries; // (not currently used by Assimp)
1238 	typedef NotImplemented IfcIrregularTimeSeries; // (not currently used by Assimp)
1239 	typedef NotImplemented IfcIrregularTimeSeriesValue; // (not currently used by Assimp)
1240 	struct IfcJunctionBox;
1241 	struct IfcJunctionBoxType;
1242 	struct IfcLShapeProfileDef;
1243 	struct IfcLaborResource;
1244 	struct IfcLaborResourceType;
1245 	typedef NotImplemented IfcLagTime; // (not currently used by Assimp)
1246 	struct IfcLamp;
1247 	struct IfcLampType;
1248 	typedef NotImplemented IfcLibraryInformation; // (not currently used by Assimp)
1249 	typedef NotImplemented IfcLibraryReference; // (not currently used by Assimp)
1250 	typedef NotImplemented IfcLightDistributionData; // (not currently used by Assimp)
1251 	struct IfcLightFixture;
1252 	struct IfcLightFixtureType;
1253 	typedef NotImplemented IfcLightIntensityDistribution; // (not currently used by Assimp)
1254 	struct IfcLightSource;
1255 	struct IfcLightSourceAmbient;
1256 	struct IfcLightSourceDirectional;
1257 	struct IfcLightSourceGoniometric;
1258 	struct IfcLightSourcePositional;
1259 	struct IfcLightSourceSpot;
1260 	struct IfcLine;
1261 	struct IfcLocalPlacement;
1262 	typedef NotImplemented IfcMapConversion; // (not currently used by Assimp)
1263 	struct IfcMappedItem;
1264 	typedef NotImplemented IfcMaterialDefinition; // (not currently used by Assimp)
1265 	typedef NotImplemented IfcMaterial; // (not currently used by Assimp)
1266 	typedef NotImplemented IfcMaterialClassificationRelationship; // (not currently used by Assimp)
1267 	typedef NotImplemented IfcMaterialConstituent; // (not currently used by Assimp)
1268 	typedef NotImplemented IfcMaterialConstituentSet; // (not currently used by Assimp)
1269 	struct IfcProductRepresentation;
1270 	struct IfcMaterialDefinitionRepresentation;
1271 	typedef NotImplemented IfcMaterialLayer; // (not currently used by Assimp)
1272 	typedef NotImplemented IfcMaterialLayerSet; // (not currently used by Assimp)
1273 	typedef NotImplemented IfcMaterialUsageDefinition; // (not currently used by Assimp)
1274 	typedef NotImplemented IfcMaterialLayerSetUsage; // (not currently used by Assimp)
1275 	typedef NotImplemented IfcMaterialLayerWithOffsets; // (not currently used by Assimp)
1276 	typedef NotImplemented IfcMaterialList; // (not currently used by Assimp)
1277 	typedef NotImplemented IfcMaterialProfile; // (not currently used by Assimp)
1278 	typedef NotImplemented IfcMaterialProfileSet; // (not currently used by Assimp)
1279 	typedef NotImplemented IfcMaterialProfileSetUsage; // (not currently used by Assimp)
1280 	typedef NotImplemented IfcMaterialProfileSetUsageTapering; // (not currently used by Assimp)
1281 	typedef NotImplemented IfcMaterialProfileWithOffsets; // (not currently used by Assimp)
1282 	typedef NotImplemented IfcMaterialProperties; // (not currently used by Assimp)
1283 	typedef NotImplemented IfcMaterialRelationship; // (not currently used by Assimp)
1284 	struct IfcMeasureWithUnit;
1285 	struct IfcMechanicalFastener;
1286 	struct IfcMechanicalFastenerType;
1287 	struct IfcMedicalDevice;
1288 	struct IfcMedicalDeviceType;
1289 	struct IfcMember;
1290 	struct IfcMemberStandardCase;
1291 	struct IfcMemberType;
1292 	typedef NotImplemented IfcMetric; // (not currently used by Assimp)
1293 	struct IfcMirroredProfileDef;
1294 	typedef NotImplemented IfcMonetaryUnit; // (not currently used by Assimp)
1295 	struct IfcMotorConnection;
1296 	struct IfcMotorConnectionType;
1297 	typedef NotImplemented IfcObjective; // (not currently used by Assimp)
1298 	struct IfcOccupant;
1299 	struct IfcOffsetCurve2D;
1300 	struct IfcOffsetCurve3D;
1301 	struct IfcOpenShell;
1302 	struct IfcOpeningElement;
1303 	struct IfcOpeningStandardCase;
1304 	typedef NotImplemented IfcOrganization; // (not currently used by Assimp)
1305 	typedef NotImplemented IfcOrganizationRelationship; // (not currently used by Assimp)
1306 	struct IfcOrientedEdge;
1307 	struct IfcOuterBoundaryCurve;
1308 	struct IfcOutlet;
1309 	struct IfcOutletType;
1310 	typedef NotImplemented IfcOwnerHistory; // (not currently used by Assimp)
1311 	struct IfcPath;
1312 	struct IfcPcurve;
1313 	struct IfcPerformanceHistory;
1314 	typedef NotImplemented IfcPermeableCoveringProperties; // (not currently used by Assimp)
1315 	struct IfcPermit;
1316 	typedef NotImplemented IfcPerson; // (not currently used by Assimp)
1317 	typedef NotImplemented IfcPersonAndOrganization; // (not currently used by Assimp)
1318 	typedef NotImplemented IfcPhysicalQuantity; // (not currently used by Assimp)
1319 	typedef NotImplemented IfcPhysicalComplexQuantity; // (not currently used by Assimp)
1320 	typedef NotImplemented IfcPhysicalSimpleQuantity; // (not currently used by Assimp)
1321 	struct IfcPile;
1322 	struct IfcPileType;
1323 	struct IfcPipeFitting;
1324 	struct IfcPipeFittingType;
1325 	struct IfcPipeSegment;
1326 	struct IfcPipeSegmentType;
1327 	typedef NotImplemented IfcPixelTexture; // (not currently used by Assimp)
1328 	struct IfcPlanarExtent;
1329 	struct IfcPlanarBox;
1330 	struct IfcPlane;
1331 	struct IfcPlate;
1332 	struct IfcPlateStandardCase;
1333 	struct IfcPlateType;
1334 	struct IfcPointOnCurve;
1335 	struct IfcPointOnSurface;
1336 	struct IfcPolyLoop;
1337 	struct IfcPolygonalBoundedHalfSpace;
1338 	struct IfcTessellatedFaceSet;
1339 	struct IfcPolygonalFaceSet;
1340 	struct IfcPolyline;
1341 	typedef NotImplemented IfcPostalAddress; // (not currently used by Assimp)
1342 	typedef NotImplemented IfcPreDefinedProperties; // (not currently used by Assimp)
1343 	typedef NotImplemented IfcPreDefinedTextFont; // (not currently used by Assimp)
1344 	typedef NotImplemented IfcPresentationLayerAssignment; // (not currently used by Assimp)
1345 	typedef NotImplemented IfcPresentationLayerWithStyle; // (not currently used by Assimp)
1346 	struct IfcPresentationStyleAssignment;
1347 	struct IfcProcedure;
1348 	struct IfcProcedureType;
1349 	struct IfcProductDefinitionShape;
1350 	typedef NotImplemented IfcProfileProperties; // (not currently used by Assimp)
1351 	struct IfcProject;
1352 	struct IfcProjectLibrary;
1353 	struct IfcProjectOrder;
1354 	typedef NotImplemented IfcProjectedCRS; // (not currently used by Assimp)
1355 	struct IfcProjectionElement;
1356 	struct IfcSimpleProperty;
1357 	struct IfcPropertyBoundedValue;
1358 	typedef NotImplemented IfcPropertyDependencyRelationship; // (not currently used by Assimp)
1359 	struct IfcPropertyEnumeratedValue;
1360 	typedef NotImplemented IfcPropertyEnumeration; // (not currently used by Assimp)
1361 	struct IfcPropertyListValue;
1362 	struct IfcPropertyReferenceValue;
1363 	struct IfcPropertySet;
1364 	typedef NotImplemented IfcPropertySetTemplate; // (not currently used by Assimp)
1365 	struct IfcPropertySingleValue;
1366 	struct IfcPropertyTableValue;
1367 	struct IfcProtectiveDevice;
1368 	struct IfcProtectiveDeviceTrippingUnit;
1369 	struct IfcProtectiveDeviceTrippingUnitType;
1370 	struct IfcProtectiveDeviceType;
1371 	struct IfcProxy;
1372 	struct IfcPump;
1373 	struct IfcPumpType;
1374 	typedef NotImplemented IfcQuantityArea; // (not currently used by Assimp)
1375 	typedef NotImplemented IfcQuantityCount; // (not currently used by Assimp)
1376 	typedef NotImplemented IfcQuantityLength; // (not currently used by Assimp)
1377 	typedef NotImplemented IfcQuantityTime; // (not currently used by Assimp)
1378 	typedef NotImplemented IfcQuantityVolume; // (not currently used by Assimp)
1379 	typedef NotImplemented IfcQuantityWeight; // (not currently used by Assimp)
1380 	struct IfcRailing;
1381 	struct IfcRailingType;
1382 	struct IfcRamp;
1383 	struct IfcRampFlight;
1384 	struct IfcRampFlightType;
1385 	struct IfcRampType;
1386 	struct IfcRationalBSplineCurveWithKnots;
1387 	struct IfcRationalBSplineSurfaceWithKnots;
1388 	struct IfcRectangleProfileDef;
1389 	struct IfcRectangleHollowProfileDef;
1390 	struct IfcRectangularPyramid;
1391 	struct IfcRectangularTrimmedSurface;
1392 	typedef NotImplemented IfcRecurrencePattern; // (not currently used by Assimp)
1393 	typedef NotImplemented IfcReference; // (not currently used by Assimp)
1394 	typedef NotImplemented IfcRegularTimeSeries; // (not currently used by Assimp)
1395 	typedef NotImplemented IfcReinforcementBarProperties; // (not currently used by Assimp)
1396 	typedef NotImplemented IfcReinforcementDefinitionProperties; // (not currently used by Assimp)
1397 	struct IfcReinforcingElement;
1398 	struct IfcReinforcingBar;
1399 	struct IfcReinforcingElementType;
1400 	struct IfcReinforcingBarType;
1401 	struct IfcReinforcingMesh;
1402 	struct IfcReinforcingMeshType;
1403 	struct IfcRelationship;
1404 	struct IfcRelDecomposes;
1405 	struct IfcRelAggregates;
1406 	typedef NotImplemented IfcRelAssigns; // (not currently used by Assimp)
1407 	typedef NotImplemented IfcRelAssignsToActor; // (not currently used by Assimp)
1408 	typedef NotImplemented IfcRelAssignsToControl; // (not currently used by Assimp)
1409 	typedef NotImplemented IfcRelAssignsToGroup; // (not currently used by Assimp)
1410 	typedef NotImplemented IfcRelAssignsToGroupByFactor; // (not currently used by Assimp)
1411 	typedef NotImplemented IfcRelAssignsToProcess; // (not currently used by Assimp)
1412 	typedef NotImplemented IfcRelAssignsToProduct; // (not currently used by Assimp)
1413 	typedef NotImplemented IfcRelAssignsToResource; // (not currently used by Assimp)
1414 	typedef NotImplemented IfcRelAssociates; // (not currently used by Assimp)
1415 	typedef NotImplemented IfcRelAssociatesApproval; // (not currently used by Assimp)
1416 	typedef NotImplemented IfcRelAssociatesClassification; // (not currently used by Assimp)
1417 	typedef NotImplemented IfcRelAssociatesConstraint; // (not currently used by Assimp)
1418 	typedef NotImplemented IfcRelAssociatesDocument; // (not currently used by Assimp)
1419 	typedef NotImplemented IfcRelAssociatesLibrary; // (not currently used by Assimp)
1420 	typedef NotImplemented IfcRelAssociatesMaterial; // (not currently used by Assimp)
1421 	struct IfcRelConnects;
1422 	typedef NotImplemented IfcRelConnectsElements; // (not currently used by Assimp)
1423 	typedef NotImplemented IfcRelConnectsPathElements; // (not currently used by Assimp)
1424 	typedef NotImplemented IfcRelConnectsPortToElement; // (not currently used by Assimp)
1425 	typedef NotImplemented IfcRelConnectsPorts; // (not currently used by Assimp)
1426 	typedef NotImplemented IfcRelConnectsStructuralActivity; // (not currently used by Assimp)
1427 	typedef NotImplemented IfcRelConnectsStructuralMember; // (not currently used by Assimp)
1428 	typedef NotImplemented IfcRelConnectsWithEccentricity; // (not currently used by Assimp)
1429 	typedef NotImplemented IfcRelConnectsWithRealizingElements; // (not currently used by Assimp)
1430 	struct IfcRelContainedInSpatialStructure;
1431 	typedef NotImplemented IfcRelCoversBldgElements; // (not currently used by Assimp)
1432 	typedef NotImplemented IfcRelCoversSpaces; // (not currently used by Assimp)
1433 	typedef NotImplemented IfcRelDeclares; // (not currently used by Assimp)
1434 	struct IfcRelDefines;
1435 	typedef NotImplemented IfcRelDefinesByObject; // (not currently used by Assimp)
1436 	struct IfcRelDefinesByProperties;
1437 	typedef NotImplemented IfcRelDefinesByTemplate; // (not currently used by Assimp)
1438 	typedef NotImplemented IfcRelDefinesByType; // (not currently used by Assimp)
1439 	struct IfcRelFillsElement;
1440 	typedef NotImplemented IfcRelFlowControlElements; // (not currently used by Assimp)
1441 	typedef NotImplemented IfcRelInterferesElements; // (not currently used by Assimp)
1442 	typedef NotImplemented IfcRelNests; // (not currently used by Assimp)
1443 	typedef NotImplemented IfcRelProjectsElement; // (not currently used by Assimp)
1444 	typedef NotImplemented IfcRelReferencedInSpatialStructure; // (not currently used by Assimp)
1445 	typedef NotImplemented IfcRelSequence; // (not currently used by Assimp)
1446 	typedef NotImplemented IfcRelServicesBuildings; // (not currently used by Assimp)
1447 	typedef NotImplemented IfcRelSpaceBoundary; // (not currently used by Assimp)
1448 	typedef NotImplemented IfcRelSpaceBoundary1stLevel; // (not currently used by Assimp)
1449 	typedef NotImplemented IfcRelSpaceBoundary2ndLevel; // (not currently used by Assimp)
1450 	struct IfcRelVoidsElement;
1451 	struct IfcReparametrisedCompositeCurveSegment;
1452 	struct IfcRepresentation;
1453 	struct IfcRepresentationMap;
1454 	typedef NotImplemented IfcResourceApprovalRelationship; // (not currently used by Assimp)
1455 	typedef NotImplemented IfcResourceConstraintRelationship; // (not currently used by Assimp)
1456 	typedef NotImplemented IfcResourceTime; // (not currently used by Assimp)
1457 	struct IfcRevolvedAreaSolid;
1458 	struct IfcRevolvedAreaSolidTapered;
1459 	struct IfcRightCircularCone;
1460 	struct IfcRightCircularCylinder;
1461 	struct IfcRoof;
1462 	struct IfcRoofType;
1463 	struct IfcRoundedRectangleProfileDef;
1464 	struct IfcSIUnit;
1465 	struct IfcSanitaryTerminal;
1466 	struct IfcSanitaryTerminalType;
1467 	struct IfcSeamCurve;
1468 	typedef NotImplemented IfcSectionProperties; // (not currently used by Assimp)
1469 	typedef NotImplemented IfcSectionReinforcementProperties; // (not currently used by Assimp)
1470 	struct IfcSectionedSpine;
1471 	struct IfcSensor;
1472 	struct IfcSensorType;
1473 	struct IfcShadingDevice;
1474 	struct IfcShadingDeviceType;
1475 	typedef NotImplemented IfcShapeAspect; // (not currently used by Assimp)
1476 	struct IfcShapeModel;
1477 	struct IfcShapeRepresentation;
1478 	struct IfcShellBasedSurfaceModel;
1479 	typedef NotImplemented IfcSimplePropertyTemplate; // (not currently used by Assimp)
1480 	struct IfcSite;
1481 	struct IfcSlab;
1482 	struct IfcSlabElementedCase;
1483 	struct IfcSlabStandardCase;
1484 	struct IfcSlabType;
1485 	typedef NotImplemented IfcSlippageConnectionCondition; // (not currently used by Assimp)
1486 	struct IfcSolarDevice;
1487 	struct IfcSolarDeviceType;
1488 	struct IfcSpace;
1489 	struct IfcSpaceHeater;
1490 	struct IfcSpaceHeaterType;
1491 	struct IfcSpatialElementType;
1492 	struct IfcSpatialStructureElementType;
1493 	struct IfcSpaceType;
1494 	struct IfcSpatialZone;
1495 	struct IfcSpatialZoneType;
1496 	struct IfcSphere;
1497 	struct IfcSphericalSurface;
1498 	struct IfcStackTerminal;
1499 	struct IfcStackTerminalType;
1500 	struct IfcStair;
1501 	struct IfcStairFlight;
1502 	struct IfcStairFlightType;
1503 	struct IfcStairType;
1504 	struct IfcStructuralActivity;
1505 	struct IfcStructuralAction;
1506 	struct IfcStructuralAnalysisModel;
1507 	struct IfcStructuralItem;
1508 	struct IfcStructuralConnection;
1509 	struct IfcStructuralCurveAction;
1510 	struct IfcStructuralCurveConnection;
1511 	struct IfcStructuralMember;
1512 	struct IfcStructuralCurveMember;
1513 	struct IfcStructuralCurveMemberVarying;
1514 	struct IfcStructuralReaction;
1515 	struct IfcStructuralCurveReaction;
1516 	struct IfcStructuralLinearAction;
1517 	typedef NotImplemented IfcStructuralLoad; // (not currently used by Assimp)
1518 	struct IfcStructuralLoadGroup;
1519 	struct IfcStructuralLoadCase;
1520 	typedef NotImplemented IfcStructuralLoadConfiguration; // (not currently used by Assimp)
1521 	typedef NotImplemented IfcStructuralLoadOrResult; // (not currently used by Assimp)
1522 	typedef NotImplemented IfcStructuralLoadStatic; // (not currently used by Assimp)
1523 	typedef NotImplemented IfcStructuralLoadLinearForce; // (not currently used by Assimp)
1524 	typedef NotImplemented IfcStructuralLoadPlanarForce; // (not currently used by Assimp)
1525 	typedef NotImplemented IfcStructuralLoadSingleDisplacement; // (not currently used by Assimp)
1526 	typedef NotImplemented IfcStructuralLoadSingleDisplacementDistortion; // (not currently used by Assimp)
1527 	typedef NotImplemented IfcStructuralLoadSingleForce; // (not currently used by Assimp)
1528 	typedef NotImplemented IfcStructuralLoadSingleForceWarping; // (not currently used by Assimp)
1529 	typedef NotImplemented IfcStructuralLoadTemperature; // (not currently used by Assimp)
1530 	struct IfcStructuralSurfaceAction;
1531 	struct IfcStructuralPlanarAction;
1532 	struct IfcStructuralPointAction;
1533 	struct IfcStructuralPointConnection;
1534 	struct IfcStructuralPointReaction;
1535 	struct IfcStructuralResultGroup;
1536 	struct IfcStructuralSurfaceConnection;
1537 	struct IfcStructuralSurfaceMember;
1538 	struct IfcStructuralSurfaceMemberVarying;
1539 	struct IfcStructuralSurfaceReaction;
1540 	struct IfcStyleModel;
1541 	struct IfcStyledItem;
1542 	struct IfcStyledRepresentation;
1543 	struct IfcSubContractResource;
1544 	struct IfcSubContractResourceType;
1545 	struct IfcSubedge;
1546 	struct IfcSurfaceCurveSweptAreaSolid;
1547 	struct IfcSurfaceFeature;
1548 	struct IfcSweptSurface;
1549 	struct IfcSurfaceOfLinearExtrusion;
1550 	struct IfcSurfaceOfRevolution;
1551 	typedef NotImplemented IfcSurfaceReinforcementArea; // (not currently used by Assimp)
1552 	struct IfcSurfaceStyle;
1553 	typedef NotImplemented IfcSurfaceStyleLighting; // (not currently used by Assimp)
1554 	typedef NotImplemented IfcSurfaceStyleRefraction; // (not currently used by Assimp)
1555 	struct IfcSurfaceStyleShading;
1556 	struct IfcSurfaceStyleRendering;
1557 	struct IfcSurfaceStyleWithTextures;
1558 	struct IfcSweptDiskSolid;
1559 	struct IfcSweptDiskSolidPolygonal;
1560 	struct IfcSwitchingDevice;
1561 	struct IfcSwitchingDeviceType;
1562 	struct IfcSystemFurnitureElement;
1563 	struct IfcSystemFurnitureElementType;
1564 	struct IfcTShapeProfileDef;
1565 	typedef NotImplemented IfcTable; // (not currently used by Assimp)
1566 	typedef NotImplemented IfcTableColumn; // (not currently used by Assimp)
1567 	typedef NotImplemented IfcTableRow; // (not currently used by Assimp)
1568 	struct IfcTank;
1569 	struct IfcTankType;
1570 	struct IfcTask;
1571 	typedef NotImplemented IfcTaskTime; // (not currently used by Assimp)
1572 	typedef NotImplemented IfcTaskTimeRecurring; // (not currently used by Assimp)
1573 	struct IfcTaskType;
1574 	typedef NotImplemented IfcTelecomAddress; // (not currently used by Assimp)
1575 	struct IfcTendon;
1576 	struct IfcTendonAnchor;
1577 	struct IfcTendonAnchorType;
1578 	struct IfcTendonType;
1579 	struct IfcTextLiteral;
1580 	struct IfcTextLiteralWithExtent;
1581 	typedef NotImplemented IfcTextStyle; // (not currently used by Assimp)
1582 	typedef NotImplemented IfcTextStyleFontModel; // (not currently used by Assimp)
1583 	typedef NotImplemented IfcTextStyleForDefinedFont; // (not currently used by Assimp)
1584 	typedef NotImplemented IfcTextStyleTextModel; // (not currently used by Assimp)
1585 	typedef NotImplemented IfcTextureCoordinateGenerator; // (not currently used by Assimp)
1586 	typedef NotImplemented IfcTextureMap; // (not currently used by Assimp)
1587 	typedef NotImplemented IfcTextureVertex; // (not currently used by Assimp)
1588 	typedef NotImplemented IfcTextureVertexList; // (not currently used by Assimp)
1589 	typedef NotImplemented IfcTimePeriod; // (not currently used by Assimp)
1590 	typedef NotImplemented IfcTimeSeriesValue; // (not currently used by Assimp)
1591 	struct IfcTopologyRepresentation;
1592 	struct IfcToroidalSurface;
1593 	struct IfcTransformer;
1594 	struct IfcTransformerType;
1595 	struct IfcTransportElement;
1596 	struct IfcTransportElementType;
1597 	struct IfcTrapeziumProfileDef;
1598 	struct IfcTriangulatedFaceSet;
1599 	struct IfcTrimmedCurve;
1600 	struct IfcTubeBundle;
1601 	struct IfcTubeBundleType;
1602 	struct IfcUShapeProfileDef;
1603 	struct IfcUnitAssignment;
1604 	struct IfcUnitaryControlElement;
1605 	struct IfcUnitaryControlElementType;
1606 	struct IfcUnitaryEquipment;
1607 	struct IfcUnitaryEquipmentType;
1608 	struct IfcValve;
1609 	struct IfcValveType;
1610 	struct IfcVector;
1611 	struct IfcVertex;
1612 	struct IfcVertexLoop;
1613 	struct IfcVertexPoint;
1614 	struct IfcVibrationIsolator;
1615 	struct IfcVibrationIsolatorType;
1616 	struct IfcVirtualElement;
1617 	typedef NotImplemented IfcVirtualGridIntersection; // (not currently used by Assimp)
1618 	struct IfcVoidingFeature;
1619 	struct IfcWall;
1620 	struct IfcWallElementedCase;
1621 	struct IfcWallStandardCase;
1622 	struct IfcWallType;
1623 	struct IfcWasteTerminal;
1624 	struct IfcWasteTerminalType;
1625 	struct IfcWindow;
1626 	typedef NotImplemented IfcWindowLiningProperties; // (not currently used by Assimp)
1627 	typedef NotImplemented IfcWindowPanelProperties; // (not currently used by Assimp)
1628 	struct IfcWindowStandardCase;
1629 	struct IfcWindowStyle;
1630 	struct IfcWindowType;
1631 	struct IfcWorkCalendar;
1632 	struct IfcWorkControl;
1633 	struct IfcWorkPlan;
1634 	struct IfcWorkSchedule;
1635 	typedef NotImplemented IfcWorkTime; // (not currently used by Assimp)
1636 	struct IfcZShapeProfileDef;
1637 	struct IfcZone;
1638 
1639 
1640 
1641     // C++ wrapper for IfcRoot
IfcRootIfcRoot1642     struct IfcRoot :  ObjectHelper<IfcRoot,4> { IfcRoot() : Object("IfcRoot") {}
1643 		IfcGloballyUniqueId::Out GlobalId;
1644 		Maybe< Lazy< NotImplemented > > OwnerHistory;
1645 		Maybe< IfcLabel::Out > Name;
1646 		Maybe< IfcText::Out > Description;
1647     };
1648 
1649     // C++ wrapper for IfcObjectDefinition
IfcObjectDefinitionIfcObjectDefinition1650     struct IfcObjectDefinition : IfcRoot, ObjectHelper<IfcObjectDefinition,0> { IfcObjectDefinition() : Object("IfcObjectDefinition") {}
1651 
1652     };
1653 
1654     // C++ wrapper for IfcObject
IfcObjectIfcObject1655     struct IfcObject : IfcObjectDefinition, ObjectHelper<IfcObject,1> { IfcObject() : Object("IfcObject") {}
1656 		Maybe< IfcLabel::Out > ObjectType;
1657     };
1658 
1659     // C++ wrapper for IfcControl
IfcControlIfcControl1660     struct IfcControl : IfcObject, ObjectHelper<IfcControl,1> { IfcControl() : Object("IfcControl") {}
1661 		Maybe< IfcIdentifier::Out > Identification;
1662     };
1663 
1664     // C++ wrapper for IfcActionRequest
IfcActionRequestIfcActionRequest1665     struct IfcActionRequest : IfcControl, ObjectHelper<IfcActionRequest,3> { IfcActionRequest() : Object("IfcActionRequest") {}
1666 		Maybe< IfcActionRequestTypeEnum::Out > PredefinedType;
1667 		Maybe< IfcLabel::Out > Status;
1668 		Maybe< IfcText::Out > LongDescription;
1669     };
1670 
1671     // C++ wrapper for IfcActor
IfcActorIfcActor1672     struct IfcActor : IfcObject, ObjectHelper<IfcActor,1> { IfcActor() : Object("IfcActor") {}
1673 		IfcActorSelect::Out TheActor;
1674     };
1675 
1676     // C++ wrapper for IfcProduct
IfcProductIfcProduct1677     struct IfcProduct : IfcObject, ObjectHelper<IfcProduct,2> { IfcProduct() : Object("IfcProduct") {}
1678 		Maybe< Lazy< IfcObjectPlacement > > ObjectPlacement;
1679 		Maybe< Lazy< IfcProductRepresentation > > Representation;
1680     };
1681 
1682     // C++ wrapper for IfcElement
IfcElementIfcElement1683     struct IfcElement : IfcProduct, ObjectHelper<IfcElement,1> { IfcElement() : Object("IfcElement") {}
1684 		Maybe< IfcIdentifier::Out > Tag;
1685     };
1686 
1687     // C++ wrapper for IfcDistributionElement
IfcDistributionElementIfcDistributionElement1688     struct IfcDistributionElement : IfcElement, ObjectHelper<IfcDistributionElement,0> { IfcDistributionElement() : Object("IfcDistributionElement") {}
1689 
1690     };
1691 
1692     // C++ wrapper for IfcDistributionControlElement
IfcDistributionControlElementIfcDistributionControlElement1693     struct IfcDistributionControlElement : IfcDistributionElement, ObjectHelper<IfcDistributionControlElement,0> { IfcDistributionControlElement() : Object("IfcDistributionControlElement") {}
1694 
1695     };
1696 
1697     // C++ wrapper for IfcActuator
IfcActuatorIfcActuator1698     struct IfcActuator : IfcDistributionControlElement, ObjectHelper<IfcActuator,1> { IfcActuator() : Object("IfcActuator") {}
1699 		Maybe< IfcActuatorTypeEnum::Out > PredefinedType;
1700     };
1701 
1702     // C++ wrapper for IfcTypeObject
IfcTypeObjectIfcTypeObject1703     struct IfcTypeObject : IfcObjectDefinition, ObjectHelper<IfcTypeObject,2> { IfcTypeObject() : Object("IfcTypeObject") {}
1704 		Maybe< IfcIdentifier::Out > ApplicableOccurrence;
1705 		Maybe< ListOf< Lazy< IfcPropertySetDefinition >, 1, 0 > > HasPropertySets;
1706     };
1707 
1708     // C++ wrapper for IfcTypeProduct
IfcTypeProductIfcTypeProduct1709     struct IfcTypeProduct : IfcTypeObject, ObjectHelper<IfcTypeProduct,2> { IfcTypeProduct() : Object("IfcTypeProduct") {}
1710 		Maybe< ListOf< Lazy< IfcRepresentationMap >, 1, 0 > > RepresentationMaps;
1711 		Maybe< IfcLabel::Out > Tag;
1712     };
1713 
1714     // C++ wrapper for IfcElementType
IfcElementTypeIfcElementType1715     struct IfcElementType : IfcTypeProduct, ObjectHelper<IfcElementType,1> { IfcElementType() : Object("IfcElementType") {}
1716 		Maybe< IfcLabel::Out > ElementType;
1717     };
1718 
1719     // C++ wrapper for IfcDistributionElementType
IfcDistributionElementTypeIfcDistributionElementType1720     struct IfcDistributionElementType : IfcElementType, ObjectHelper<IfcDistributionElementType,0> { IfcDistributionElementType() : Object("IfcDistributionElementType") {}
1721 
1722     };
1723 
1724     // C++ wrapper for IfcDistributionControlElementType
IfcDistributionControlElementTypeIfcDistributionControlElementType1725     struct IfcDistributionControlElementType : IfcDistributionElementType, ObjectHelper<IfcDistributionControlElementType,0> { IfcDistributionControlElementType() : Object("IfcDistributionControlElementType") {}
1726 
1727     };
1728 
1729     // C++ wrapper for IfcActuatorType
IfcActuatorTypeIfcActuatorType1730     struct IfcActuatorType : IfcDistributionControlElementType, ObjectHelper<IfcActuatorType,1> { IfcActuatorType() : Object("IfcActuatorType") {}
1731 		IfcActuatorTypeEnum::Out PredefinedType;
1732     };
1733 
1734     // C++ wrapper for IfcRepresentationItem
IfcRepresentationItemIfcRepresentationItem1735     struct IfcRepresentationItem :  ObjectHelper<IfcRepresentationItem,0> { IfcRepresentationItem() : Object("IfcRepresentationItem") {}
1736 
1737     };
1738 
1739     // C++ wrapper for IfcGeometricRepresentationItem
IfcGeometricRepresentationItemIfcGeometricRepresentationItem1740     struct IfcGeometricRepresentationItem : IfcRepresentationItem, ObjectHelper<IfcGeometricRepresentationItem,0> { IfcGeometricRepresentationItem() : Object("IfcGeometricRepresentationItem") {}
1741 
1742     };
1743 
1744     // C++ wrapper for IfcSolidModel
IfcSolidModelIfcSolidModel1745     struct IfcSolidModel : IfcGeometricRepresentationItem, ObjectHelper<IfcSolidModel,0> { IfcSolidModel() : Object("IfcSolidModel") {}
1746 
1747     };
1748 
1749     // C++ wrapper for IfcManifoldSolidBrep
IfcManifoldSolidBrepIfcManifoldSolidBrep1750     struct IfcManifoldSolidBrep : IfcSolidModel, ObjectHelper<IfcManifoldSolidBrep,1> { IfcManifoldSolidBrep() : Object("IfcManifoldSolidBrep") {}
1751 		Lazy< IfcClosedShell > Outer;
1752     };
1753 
1754     // C++ wrapper for IfcAdvancedBrep
IfcAdvancedBrepIfcAdvancedBrep1755     struct IfcAdvancedBrep : IfcManifoldSolidBrep, ObjectHelper<IfcAdvancedBrep,0> { IfcAdvancedBrep() : Object("IfcAdvancedBrep") {}
1756 
1757     };
1758 
1759     // C++ wrapper for IfcAdvancedBrepWithVoids
IfcAdvancedBrepWithVoidsIfcAdvancedBrepWithVoids1760     struct IfcAdvancedBrepWithVoids : IfcAdvancedBrep, ObjectHelper<IfcAdvancedBrepWithVoids,1> { IfcAdvancedBrepWithVoids() : Object("IfcAdvancedBrepWithVoids") {}
1761 		ListOf< Lazy< IfcClosedShell >, 1, 0 > Voids;
1762     };
1763 
1764     // C++ wrapper for IfcTopologicalRepresentationItem
IfcTopologicalRepresentationItemIfcTopologicalRepresentationItem1765     struct IfcTopologicalRepresentationItem : IfcRepresentationItem, ObjectHelper<IfcTopologicalRepresentationItem,0> { IfcTopologicalRepresentationItem() : Object("IfcTopologicalRepresentationItem") {}
1766 
1767     };
1768 
1769     // C++ wrapper for IfcFace
IfcFaceIfcFace1770     struct IfcFace : IfcTopologicalRepresentationItem, ObjectHelper<IfcFace,1> { IfcFace() : Object("IfcFace") {}
1771 		ListOf< Lazy< IfcFaceBound >, 1, 0 > Bounds;
1772     };
1773 
1774     // C++ wrapper for IfcFaceSurface
IfcFaceSurfaceIfcFaceSurface1775     struct IfcFaceSurface : IfcFace, ObjectHelper<IfcFaceSurface,2> { IfcFaceSurface() : Object("IfcFaceSurface") {}
1776 		Lazy< IfcSurface > FaceSurface;
1777 		IfcBoolean::Out SameSense;
1778     };
1779 
1780     // C++ wrapper for IfcAdvancedFace
IfcAdvancedFaceIfcAdvancedFace1781     struct IfcAdvancedFace : IfcFaceSurface, ObjectHelper<IfcAdvancedFace,0> { IfcAdvancedFace() : Object("IfcAdvancedFace") {}
1782 
1783     };
1784 
1785     // C++ wrapper for IfcDistributionFlowElement
IfcDistributionFlowElementIfcDistributionFlowElement1786     struct IfcDistributionFlowElement : IfcDistributionElement, ObjectHelper<IfcDistributionFlowElement,0> { IfcDistributionFlowElement() : Object("IfcDistributionFlowElement") {}
1787 
1788     };
1789 
1790     // C++ wrapper for IfcFlowTerminal
IfcFlowTerminalIfcFlowTerminal1791     struct IfcFlowTerminal : IfcDistributionFlowElement, ObjectHelper<IfcFlowTerminal,0> { IfcFlowTerminal() : Object("IfcFlowTerminal") {}
1792 
1793     };
1794 
1795     // C++ wrapper for IfcAirTerminal
IfcAirTerminalIfcAirTerminal1796     struct IfcAirTerminal : IfcFlowTerminal, ObjectHelper<IfcAirTerminal,1> { IfcAirTerminal() : Object("IfcAirTerminal") {}
1797 		Maybe< IfcAirTerminalTypeEnum::Out > PredefinedType;
1798     };
1799 
1800     // C++ wrapper for IfcFlowController
IfcFlowControllerIfcFlowController1801     struct IfcFlowController : IfcDistributionFlowElement, ObjectHelper<IfcFlowController,0> { IfcFlowController() : Object("IfcFlowController") {}
1802 
1803     };
1804 
1805     // C++ wrapper for IfcAirTerminalBox
IfcAirTerminalBoxIfcAirTerminalBox1806     struct IfcAirTerminalBox : IfcFlowController, ObjectHelper<IfcAirTerminalBox,1> { IfcAirTerminalBox() : Object("IfcAirTerminalBox") {}
1807 		Maybe< IfcAirTerminalBoxTypeEnum::Out > PredefinedType;
1808     };
1809 
1810     // C++ wrapper for IfcDistributionFlowElementType
IfcDistributionFlowElementTypeIfcDistributionFlowElementType1811     struct IfcDistributionFlowElementType : IfcDistributionElementType, ObjectHelper<IfcDistributionFlowElementType,0> { IfcDistributionFlowElementType() : Object("IfcDistributionFlowElementType") {}
1812 
1813     };
1814 
1815     // C++ wrapper for IfcFlowControllerType
IfcFlowControllerTypeIfcFlowControllerType1816     struct IfcFlowControllerType : IfcDistributionFlowElementType, ObjectHelper<IfcFlowControllerType,0> { IfcFlowControllerType() : Object("IfcFlowControllerType") {}
1817 
1818     };
1819 
1820     // C++ wrapper for IfcAirTerminalBoxType
IfcAirTerminalBoxTypeIfcAirTerminalBoxType1821     struct IfcAirTerminalBoxType : IfcFlowControllerType, ObjectHelper<IfcAirTerminalBoxType,1> { IfcAirTerminalBoxType() : Object("IfcAirTerminalBoxType") {}
1822 		IfcAirTerminalBoxTypeEnum::Out PredefinedType;
1823     };
1824 
1825     // C++ wrapper for IfcFlowTerminalType
IfcFlowTerminalTypeIfcFlowTerminalType1826     struct IfcFlowTerminalType : IfcDistributionFlowElementType, ObjectHelper<IfcFlowTerminalType,0> { IfcFlowTerminalType() : Object("IfcFlowTerminalType") {}
1827 
1828     };
1829 
1830     // C++ wrapper for IfcAirTerminalType
IfcAirTerminalTypeIfcAirTerminalType1831     struct IfcAirTerminalType : IfcFlowTerminalType, ObjectHelper<IfcAirTerminalType,1> { IfcAirTerminalType() : Object("IfcAirTerminalType") {}
1832 		IfcAirTerminalTypeEnum::Out PredefinedType;
1833     };
1834 
1835     // C++ wrapper for IfcEnergyConversionDevice
IfcEnergyConversionDeviceIfcEnergyConversionDevice1836     struct IfcEnergyConversionDevice : IfcDistributionFlowElement, ObjectHelper<IfcEnergyConversionDevice,0> { IfcEnergyConversionDevice() : Object("IfcEnergyConversionDevice") {}
1837 
1838     };
1839 
1840     // C++ wrapper for IfcAirToAirHeatRecovery
IfcAirToAirHeatRecoveryIfcAirToAirHeatRecovery1841     struct IfcAirToAirHeatRecovery : IfcEnergyConversionDevice, ObjectHelper<IfcAirToAirHeatRecovery,1> { IfcAirToAirHeatRecovery() : Object("IfcAirToAirHeatRecovery") {}
1842 		Maybe< IfcAirToAirHeatRecoveryTypeEnum::Out > PredefinedType;
1843     };
1844 
1845     // C++ wrapper for IfcEnergyConversionDeviceType
IfcEnergyConversionDeviceTypeIfcEnergyConversionDeviceType1846     struct IfcEnergyConversionDeviceType : IfcDistributionFlowElementType, ObjectHelper<IfcEnergyConversionDeviceType,0> { IfcEnergyConversionDeviceType() : Object("IfcEnergyConversionDeviceType") {}
1847 
1848     };
1849 
1850     // C++ wrapper for IfcAirToAirHeatRecoveryType
IfcAirToAirHeatRecoveryTypeIfcAirToAirHeatRecoveryType1851     struct IfcAirToAirHeatRecoveryType : IfcEnergyConversionDeviceType, ObjectHelper<IfcAirToAirHeatRecoveryType,1> { IfcAirToAirHeatRecoveryType() : Object("IfcAirToAirHeatRecoveryType") {}
1852 		IfcAirToAirHeatRecoveryTypeEnum::Out PredefinedType;
1853     };
1854 
1855     // C++ wrapper for IfcAlarm
IfcAlarmIfcAlarm1856     struct IfcAlarm : IfcDistributionControlElement, ObjectHelper<IfcAlarm,1> { IfcAlarm() : Object("IfcAlarm") {}
1857 		Maybe< IfcAlarmTypeEnum::Out > PredefinedType;
1858     };
1859 
1860     // C++ wrapper for IfcAlarmType
IfcAlarmTypeIfcAlarmType1861     struct IfcAlarmType : IfcDistributionControlElementType, ObjectHelper<IfcAlarmType,1> { IfcAlarmType() : Object("IfcAlarmType") {}
1862 		IfcAlarmTypeEnum::Out PredefinedType;
1863     };
1864 
1865     // C++ wrapper for IfcAnnotation
IfcAnnotationIfcAnnotation1866     struct IfcAnnotation : IfcProduct, ObjectHelper<IfcAnnotation,0> { IfcAnnotation() : Object("IfcAnnotation") {}
1867 
1868     };
1869 
1870     // C++ wrapper for IfcAnnotationFillArea
IfcAnnotationFillAreaIfcAnnotationFillArea1871     struct IfcAnnotationFillArea : IfcGeometricRepresentationItem, ObjectHelper<IfcAnnotationFillArea,2> { IfcAnnotationFillArea() : Object("IfcAnnotationFillArea") {}
1872 		Lazy< IfcCurve > OuterBoundary;
1873 		Maybe< ListOf< Lazy< IfcCurve >, 1, 0 > > InnerBoundaries;
1874     };
1875 
1876     // C++ wrapper for IfcProfileDef
IfcProfileDefIfcProfileDef1877     struct IfcProfileDef :  ObjectHelper<IfcProfileDef,2> { IfcProfileDef() : Object("IfcProfileDef") {}
1878 		IfcProfileTypeEnum::Out ProfileType;
1879 		Maybe< IfcLabel::Out > ProfileName;
1880     };
1881 
1882     // C++ wrapper for IfcArbitraryClosedProfileDef
IfcArbitraryClosedProfileDefIfcArbitraryClosedProfileDef1883     struct IfcArbitraryClosedProfileDef : IfcProfileDef, ObjectHelper<IfcArbitraryClosedProfileDef,1> { IfcArbitraryClosedProfileDef() : Object("IfcArbitraryClosedProfileDef") {}
1884 		Lazy< IfcCurve > OuterCurve;
1885     };
1886 
1887     // C++ wrapper for IfcArbitraryOpenProfileDef
IfcArbitraryOpenProfileDefIfcArbitraryOpenProfileDef1888     struct IfcArbitraryOpenProfileDef : IfcProfileDef, ObjectHelper<IfcArbitraryOpenProfileDef,1> { IfcArbitraryOpenProfileDef() : Object("IfcArbitraryOpenProfileDef") {}
1889 		Lazy< IfcBoundedCurve > Curve;
1890     };
1891 
1892     // C++ wrapper for IfcArbitraryProfileDefWithVoids
IfcArbitraryProfileDefWithVoidsIfcArbitraryProfileDefWithVoids1893     struct IfcArbitraryProfileDefWithVoids : IfcArbitraryClosedProfileDef, ObjectHelper<IfcArbitraryProfileDefWithVoids,1> { IfcArbitraryProfileDefWithVoids() : Object("IfcArbitraryProfileDefWithVoids") {}
1894 		ListOf< Lazy< IfcCurve >, 1, 0 > InnerCurves;
1895     };
1896 
1897     // C++ wrapper for IfcGroup
IfcGroupIfcGroup1898     struct IfcGroup : IfcObject, ObjectHelper<IfcGroup,0> { IfcGroup() : Object("IfcGroup") {}
1899 
1900     };
1901 
1902     // C++ wrapper for IfcAsset
IfcAssetIfcAsset1903     struct IfcAsset : IfcGroup, ObjectHelper<IfcAsset,9> { IfcAsset() : Object("IfcAsset") {}
1904 		Maybe< IfcIdentifier::Out > Identification;
1905 		Maybe< Lazy< NotImplemented > > OriginalValue;
1906 		Maybe< Lazy< NotImplemented > > CurrentValue;
1907 		Maybe< Lazy< NotImplemented > > TotalReplacementCost;
1908 		Maybe< IfcActorSelect::Out > Owner;
1909 		Maybe< IfcActorSelect::Out > User;
1910 		Maybe< Lazy< NotImplemented > > ResponsiblePerson;
1911 		Maybe< IfcDate::Out > IncorporationDate;
1912 		Maybe< Lazy< NotImplemented > > DepreciatedValue;
1913     };
1914 
1915     // C++ wrapper for IfcParameterizedProfileDef
IfcParameterizedProfileDefIfcParameterizedProfileDef1916     struct IfcParameterizedProfileDef : IfcProfileDef, ObjectHelper<IfcParameterizedProfileDef,1> { IfcParameterizedProfileDef() : Object("IfcParameterizedProfileDef") {}
1917 		Maybe< Lazy< IfcAxis2Placement2D > > Position;
1918     };
1919 
1920     // C++ wrapper for IfcAsymmetricIShapeProfileDef
IfcAsymmetricIShapeProfileDefIfcAsymmetricIShapeProfileDef1921     struct IfcAsymmetricIShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper<IfcAsymmetricIShapeProfileDef,12> { IfcAsymmetricIShapeProfileDef() : Object("IfcAsymmetricIShapeProfileDef") {}
1922 		IfcPositiveLengthMeasure::Out BottomFlangeWidth;
1923 		IfcPositiveLengthMeasure::Out OverallDepth;
1924 		IfcPositiveLengthMeasure::Out WebThickness;
1925 		IfcPositiveLengthMeasure::Out BottomFlangeThickness;
1926 		Maybe< IfcNonNegativeLengthMeasure::Out > BottomFlangeFilletRadius;
1927 		IfcPositiveLengthMeasure::Out TopFlangeWidth;
1928 		Maybe< IfcPositiveLengthMeasure::Out > TopFlangeThickness;
1929 		Maybe< IfcNonNegativeLengthMeasure::Out > TopFlangeFilletRadius;
1930 		Maybe< IfcNonNegativeLengthMeasure::Out > BottomFlangeEdgeRadius;
1931 		Maybe< IfcPlaneAngleMeasure::Out > BottomFlangeSlope;
1932 		Maybe< IfcNonNegativeLengthMeasure::Out > TopFlangeEdgeRadius;
1933 		Maybe< IfcPlaneAngleMeasure::Out > TopFlangeSlope;
1934     };
1935 
1936     // C++ wrapper for IfcAudioVisualAppliance
IfcAudioVisualApplianceIfcAudioVisualAppliance1937     struct IfcAudioVisualAppliance : IfcFlowTerminal, ObjectHelper<IfcAudioVisualAppliance,1> { IfcAudioVisualAppliance() : Object("IfcAudioVisualAppliance") {}
1938 		Maybe< IfcAudioVisualApplianceTypeEnum::Out > PredefinedType;
1939     };
1940 
1941     // C++ wrapper for IfcAudioVisualApplianceType
IfcAudioVisualApplianceTypeIfcAudioVisualApplianceType1942     struct IfcAudioVisualApplianceType : IfcFlowTerminalType, ObjectHelper<IfcAudioVisualApplianceType,1> { IfcAudioVisualApplianceType() : Object("IfcAudioVisualApplianceType") {}
1943 		IfcAudioVisualApplianceTypeEnum::Out PredefinedType;
1944     };
1945 
1946     // C++ wrapper for IfcPlacement
IfcPlacementIfcPlacement1947     struct IfcPlacement : IfcGeometricRepresentationItem, ObjectHelper<IfcPlacement,1> { IfcPlacement() : Object("IfcPlacement") {}
1948 		Lazy< IfcCartesianPoint > Location;
1949     };
1950 
1951     // C++ wrapper for IfcAxis1Placement
IfcAxis1PlacementIfcAxis1Placement1952     struct IfcAxis1Placement : IfcPlacement, ObjectHelper<IfcAxis1Placement,1> { IfcAxis1Placement() : Object("IfcAxis1Placement") {}
1953 		Maybe< Lazy< IfcDirection > > Axis;
1954     };
1955 
1956     // C++ wrapper for IfcAxis2Placement2D
IfcAxis2Placement2DIfcAxis2Placement2D1957     struct IfcAxis2Placement2D : IfcPlacement, ObjectHelper<IfcAxis2Placement2D,1> { IfcAxis2Placement2D() : Object("IfcAxis2Placement2D") {}
1958 		Maybe< Lazy< IfcDirection > > RefDirection;
1959     };
1960 
1961     // C++ wrapper for IfcAxis2Placement3D
IfcAxis2Placement3DIfcAxis2Placement3D1962     struct IfcAxis2Placement3D : IfcPlacement, ObjectHelper<IfcAxis2Placement3D,2> { IfcAxis2Placement3D() : Object("IfcAxis2Placement3D") {}
1963 		Maybe< Lazy< IfcDirection > > Axis;
1964 		Maybe< Lazy< IfcDirection > > RefDirection;
1965     };
1966 
1967     // C++ wrapper for IfcCurve
IfcCurveIfcCurve1968     struct IfcCurve : IfcGeometricRepresentationItem, ObjectHelper<IfcCurve,0> { IfcCurve() : Object("IfcCurve") {}
1969 
1970     };
1971 
1972     // C++ wrapper for IfcBoundedCurve
IfcBoundedCurveIfcBoundedCurve1973     struct IfcBoundedCurve : IfcCurve, ObjectHelper<IfcBoundedCurve,0> { IfcBoundedCurve() : Object("IfcBoundedCurve") {}
1974 
1975     };
1976 
1977     // C++ wrapper for IfcBSplineCurve
IfcBSplineCurveIfcBSplineCurve1978     struct IfcBSplineCurve : IfcBoundedCurve, ObjectHelper<IfcBSplineCurve,5> { IfcBSplineCurve() : Object("IfcBSplineCurve") {}
1979 		IfcInteger::Out Degree;
1980 		ListOf< Lazy< IfcCartesianPoint >, 2, 0 > ControlPointsList;
1981 		IfcBSplineCurveForm::Out CurveForm;
1982 		IfcLogical::Out ClosedCurve;
1983 		IfcLogical::Out SelfIntersect;
1984     };
1985 
1986     // C++ wrapper for IfcBSplineCurveWithKnots
IfcBSplineCurveWithKnotsIfcBSplineCurveWithKnots1987     struct IfcBSplineCurveWithKnots : IfcBSplineCurve, ObjectHelper<IfcBSplineCurveWithKnots,3> { IfcBSplineCurveWithKnots() : Object("IfcBSplineCurveWithKnots") {}
1988 		ListOf< IfcInteger, 2, 0 >::Out KnotMultiplicities;
1989 		ListOf< IfcParameterValue, 2, 0 >::Out Knots;
1990 		IfcKnotType::Out KnotSpec;
1991     };
1992 
1993     // C++ wrapper for IfcSurface
IfcSurfaceIfcSurface1994     struct IfcSurface : IfcGeometricRepresentationItem, ObjectHelper<IfcSurface,0> { IfcSurface() : Object("IfcSurface") {}
1995 
1996     };
1997 
1998     // C++ wrapper for IfcBoundedSurface
IfcBoundedSurfaceIfcBoundedSurface1999     struct IfcBoundedSurface : IfcSurface, ObjectHelper<IfcBoundedSurface,0> { IfcBoundedSurface() : Object("IfcBoundedSurface") {}
2000 
2001     };
2002 
2003     // C++ wrapper for IfcBSplineSurface
IfcBSplineSurfaceIfcBSplineSurface2004     struct IfcBSplineSurface : IfcBoundedSurface, ObjectHelper<IfcBSplineSurface,6> { IfcBSplineSurface() : Object("IfcBSplineSurface") {}
2005 		IfcInteger::Out UDegree;
2006 		IfcInteger::Out VDegree;
2007 		IfcBSplineSurfaceForm::Out SurfaceForm;
2008 		IfcLogical::Out UClosed;
2009 		IfcLogical::Out VClosed;
2010 		IfcLogical::Out SelfIntersect;
2011     };
2012 
2013     // C++ wrapper for IfcBSplineSurfaceWithKnots
IfcBSplineSurfaceWithKnotsIfcBSplineSurfaceWithKnots2014     struct IfcBSplineSurfaceWithKnots : IfcBSplineSurface, ObjectHelper<IfcBSplineSurfaceWithKnots,5> { IfcBSplineSurfaceWithKnots() : Object("IfcBSplineSurfaceWithKnots") {}
2015 		ListOf< IfcInteger, 2, 0 >::Out UMultiplicities;
2016 		ListOf< IfcInteger, 2, 0 >::Out VMultiplicities;
2017 		ListOf< IfcParameterValue, 2, 0 >::Out UKnots;
2018 		ListOf< IfcParameterValue, 2, 0 >::Out VKnots;
2019 		IfcKnotType::Out KnotSpec;
2020     };
2021 
2022     // C++ wrapper for IfcBuildingElement
IfcBuildingElementIfcBuildingElement2023     struct IfcBuildingElement : IfcElement, ObjectHelper<IfcBuildingElement,0> { IfcBuildingElement() : Object("IfcBuildingElement") {}
2024 
2025     };
2026 
2027     // C++ wrapper for IfcBeam
IfcBeamIfcBeam2028     struct IfcBeam : IfcBuildingElement, ObjectHelper<IfcBeam,1> { IfcBeam() : Object("IfcBeam") {}
2029 		Maybe< IfcBeamTypeEnum::Out > PredefinedType;
2030     };
2031 
2032     // C++ wrapper for IfcBeamStandardCase
IfcBeamStandardCaseIfcBeamStandardCase2033     struct IfcBeamStandardCase : IfcBeam, ObjectHelper<IfcBeamStandardCase,0> { IfcBeamStandardCase() : Object("IfcBeamStandardCase") {}
2034 
2035     };
2036 
2037     // C++ wrapper for IfcBuildingElementType
IfcBuildingElementTypeIfcBuildingElementType2038     struct IfcBuildingElementType : IfcElementType, ObjectHelper<IfcBuildingElementType,0> { IfcBuildingElementType() : Object("IfcBuildingElementType") {}
2039 
2040     };
2041 
2042     // C++ wrapper for IfcBeamType
IfcBeamTypeIfcBeamType2043     struct IfcBeamType : IfcBuildingElementType, ObjectHelper<IfcBeamType,1> { IfcBeamType() : Object("IfcBeamType") {}
2044 		IfcBeamTypeEnum::Out PredefinedType;
2045     };
2046 
2047     // C++ wrapper for IfcPresentationItem
IfcPresentationItemIfcPresentationItem2048     struct IfcPresentationItem :  ObjectHelper<IfcPresentationItem,0> { IfcPresentationItem() : Object("IfcPresentationItem") {}
2049 
2050     };
2051 
2052     // C++ wrapper for IfcCsgPrimitive3D
IfcCsgPrimitive3DIfcCsgPrimitive3D2053     struct IfcCsgPrimitive3D : IfcGeometricRepresentationItem, ObjectHelper<IfcCsgPrimitive3D,1> { IfcCsgPrimitive3D() : Object("IfcCsgPrimitive3D") {}
2054 		Lazy< IfcAxis2Placement3D > Position;
2055     };
2056 
2057     // C++ wrapper for IfcBlock
IfcBlockIfcBlock2058     struct IfcBlock : IfcCsgPrimitive3D, ObjectHelper<IfcBlock,3> { IfcBlock() : Object("IfcBlock") {}
2059 		IfcPositiveLengthMeasure::Out XLength;
2060 		IfcPositiveLengthMeasure::Out YLength;
2061 		IfcPositiveLengthMeasure::Out ZLength;
2062     };
2063 
2064     // C++ wrapper for IfcBoiler
IfcBoilerIfcBoiler2065     struct IfcBoiler : IfcEnergyConversionDevice, ObjectHelper<IfcBoiler,1> { IfcBoiler() : Object("IfcBoiler") {}
2066 		Maybe< IfcBoilerTypeEnum::Out > PredefinedType;
2067     };
2068 
2069     // C++ wrapper for IfcBoilerType
IfcBoilerTypeIfcBoilerType2070     struct IfcBoilerType : IfcEnergyConversionDeviceType, ObjectHelper<IfcBoilerType,1> { IfcBoilerType() : Object("IfcBoilerType") {}
2071 		IfcBoilerTypeEnum::Out PredefinedType;
2072     };
2073 
2074     // C++ wrapper for IfcBooleanResult
IfcBooleanResultIfcBooleanResult2075     struct IfcBooleanResult : IfcGeometricRepresentationItem, ObjectHelper<IfcBooleanResult,3> { IfcBooleanResult() : Object("IfcBooleanResult") {}
2076 		IfcBooleanOperator::Out Operator;
2077 		IfcBooleanOperand::Out FirstOperand;
2078 		IfcBooleanOperand::Out SecondOperand;
2079     };
2080 
2081     // C++ wrapper for IfcBooleanClippingResult
IfcBooleanClippingResultIfcBooleanClippingResult2082     struct IfcBooleanClippingResult : IfcBooleanResult, ObjectHelper<IfcBooleanClippingResult,0> { IfcBooleanClippingResult() : Object("IfcBooleanClippingResult") {}
2083 
2084     };
2085 
2086     // C++ wrapper for IfcCompositeCurve
IfcCompositeCurveIfcCompositeCurve2087     struct IfcCompositeCurve : IfcBoundedCurve, ObjectHelper<IfcCompositeCurve,2> { IfcCompositeCurve() : Object("IfcCompositeCurve") {}
2088 		ListOf< Lazy< IfcCompositeCurveSegment >, 1, 0 > Segments;
2089 		IfcLogical::Out SelfIntersect;
2090     };
2091 
2092     // C++ wrapper for IfcCompositeCurveOnSurface
IfcCompositeCurveOnSurfaceIfcCompositeCurveOnSurface2093     struct IfcCompositeCurveOnSurface : IfcCompositeCurve, ObjectHelper<IfcCompositeCurveOnSurface,0> { IfcCompositeCurveOnSurface() : Object("IfcCompositeCurveOnSurface") {}
2094 
2095     };
2096 
2097     // C++ wrapper for IfcBoundaryCurve
IfcBoundaryCurveIfcBoundaryCurve2098     struct IfcBoundaryCurve : IfcCompositeCurveOnSurface, ObjectHelper<IfcBoundaryCurve,0> { IfcBoundaryCurve() : Object("IfcBoundaryCurve") {}
2099 
2100     };
2101 
2102     // C++ wrapper for IfcBoundingBox
IfcBoundingBoxIfcBoundingBox2103     struct IfcBoundingBox : IfcGeometricRepresentationItem, ObjectHelper<IfcBoundingBox,4> { IfcBoundingBox() : Object("IfcBoundingBox") {}
2104 		Lazy< IfcCartesianPoint > Corner;
2105 		IfcPositiveLengthMeasure::Out XDim;
2106 		IfcPositiveLengthMeasure::Out YDim;
2107 		IfcPositiveLengthMeasure::Out ZDim;
2108     };
2109 
2110     // C++ wrapper for IfcHalfSpaceSolid
IfcHalfSpaceSolidIfcHalfSpaceSolid2111     struct IfcHalfSpaceSolid : IfcGeometricRepresentationItem, ObjectHelper<IfcHalfSpaceSolid,2> { IfcHalfSpaceSolid() : Object("IfcHalfSpaceSolid") {}
2112 		Lazy< IfcSurface > BaseSurface;
2113 		IfcBoolean::Out AgreementFlag;
2114     };
2115 
2116     // C++ wrapper for IfcBoxedHalfSpace
IfcBoxedHalfSpaceIfcBoxedHalfSpace2117     struct IfcBoxedHalfSpace : IfcHalfSpaceSolid, ObjectHelper<IfcBoxedHalfSpace,1> { IfcBoxedHalfSpace() : Object("IfcBoxedHalfSpace") {}
2118 		Lazy< IfcBoundingBox > Enclosure;
2119     };
2120 
2121     // C++ wrapper for IfcSpatialElement
IfcSpatialElementIfcSpatialElement2122     struct IfcSpatialElement : IfcProduct, ObjectHelper<IfcSpatialElement,1> { IfcSpatialElement() : Object("IfcSpatialElement") {}
2123 		Maybe< IfcLabel::Out > LongName;
2124     };
2125 
2126     // C++ wrapper for IfcSpatialStructureElement
IfcSpatialStructureElementIfcSpatialStructureElement2127     struct IfcSpatialStructureElement : IfcSpatialElement, ObjectHelper<IfcSpatialStructureElement,1> { IfcSpatialStructureElement() : Object("IfcSpatialStructureElement") {}
2128 		Maybe< IfcElementCompositionEnum::Out > CompositionType;
2129     };
2130 
2131     // C++ wrapper for IfcBuilding
IfcBuildingIfcBuilding2132     struct IfcBuilding : IfcSpatialStructureElement, ObjectHelper<IfcBuilding,3> { IfcBuilding() : Object("IfcBuilding") {}
2133 		Maybe< IfcLengthMeasure::Out > ElevationOfRefHeight;
2134 		Maybe< IfcLengthMeasure::Out > ElevationOfTerrain;
2135 		Maybe< Lazy< NotImplemented > > BuildingAddress;
2136     };
2137 
2138     // C++ wrapper for IfcElementComponent
IfcElementComponentIfcElementComponent2139     struct IfcElementComponent : IfcElement, ObjectHelper<IfcElementComponent,0> { IfcElementComponent() : Object("IfcElementComponent") {}
2140 
2141     };
2142 
2143     // C++ wrapper for IfcBuildingElementPart
IfcBuildingElementPartIfcBuildingElementPart2144     struct IfcBuildingElementPart : IfcElementComponent, ObjectHelper<IfcBuildingElementPart,1> { IfcBuildingElementPart() : Object("IfcBuildingElementPart") {}
2145 		Maybe< IfcBuildingElementPartTypeEnum::Out > PredefinedType;
2146     };
2147 
2148     // C++ wrapper for IfcElementComponentType
IfcElementComponentTypeIfcElementComponentType2149     struct IfcElementComponentType : IfcElementType, ObjectHelper<IfcElementComponentType,0> { IfcElementComponentType() : Object("IfcElementComponentType") {}
2150 
2151     };
2152 
2153     // C++ wrapper for IfcBuildingElementPartType
IfcBuildingElementPartTypeIfcBuildingElementPartType2154     struct IfcBuildingElementPartType : IfcElementComponentType, ObjectHelper<IfcBuildingElementPartType,1> { IfcBuildingElementPartType() : Object("IfcBuildingElementPartType") {}
2155 		IfcBuildingElementPartTypeEnum::Out PredefinedType;
2156     };
2157 
2158     // C++ wrapper for IfcBuildingElementProxy
IfcBuildingElementProxyIfcBuildingElementProxy2159     struct IfcBuildingElementProxy : IfcBuildingElement, ObjectHelper<IfcBuildingElementProxy,1> { IfcBuildingElementProxy() : Object("IfcBuildingElementProxy") {}
2160 		Maybe< IfcBuildingElementProxyTypeEnum::Out > PredefinedType;
2161     };
2162 
2163     // C++ wrapper for IfcBuildingElementProxyType
IfcBuildingElementProxyTypeIfcBuildingElementProxyType2164     struct IfcBuildingElementProxyType : IfcBuildingElementType, ObjectHelper<IfcBuildingElementProxyType,1> { IfcBuildingElementProxyType() : Object("IfcBuildingElementProxyType") {}
2165 		IfcBuildingElementProxyTypeEnum::Out PredefinedType;
2166     };
2167 
2168     // C++ wrapper for IfcBuildingStorey
IfcBuildingStoreyIfcBuildingStorey2169     struct IfcBuildingStorey : IfcSpatialStructureElement, ObjectHelper<IfcBuildingStorey,1> { IfcBuildingStorey() : Object("IfcBuildingStorey") {}
2170 		Maybe< IfcLengthMeasure::Out > Elevation;
2171     };
2172 
2173     // C++ wrapper for IfcSystem
IfcSystemIfcSystem2174     struct IfcSystem : IfcGroup, ObjectHelper<IfcSystem,0> { IfcSystem() : Object("IfcSystem") {}
2175 
2176     };
2177 
2178     // C++ wrapper for IfcBuildingSystem
IfcBuildingSystemIfcBuildingSystem2179     struct IfcBuildingSystem : IfcSystem, ObjectHelper<IfcBuildingSystem,2> { IfcBuildingSystem() : Object("IfcBuildingSystem") {}
2180 		Maybe< IfcBuildingSystemTypeEnum::Out > PredefinedType;
2181 		Maybe< IfcLabel::Out > LongName;
2182     };
2183 
2184     // C++ wrapper for IfcBurner
IfcBurnerIfcBurner2185     struct IfcBurner : IfcEnergyConversionDevice, ObjectHelper<IfcBurner,1> { IfcBurner() : Object("IfcBurner") {}
2186 		Maybe< IfcBurnerTypeEnum::Out > PredefinedType;
2187     };
2188 
2189     // C++ wrapper for IfcBurnerType
IfcBurnerTypeIfcBurnerType2190     struct IfcBurnerType : IfcEnergyConversionDeviceType, ObjectHelper<IfcBurnerType,1> { IfcBurnerType() : Object("IfcBurnerType") {}
2191 		IfcBurnerTypeEnum::Out PredefinedType;
2192     };
2193 
2194     // C++ wrapper for IfcCShapeProfileDef
IfcCShapeProfileDefIfcCShapeProfileDef2195     struct IfcCShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper<IfcCShapeProfileDef,5> { IfcCShapeProfileDef() : Object("IfcCShapeProfileDef") {}
2196 		IfcPositiveLengthMeasure::Out Depth;
2197 		IfcPositiveLengthMeasure::Out Width;
2198 		IfcPositiveLengthMeasure::Out WallThickness;
2199 		IfcPositiveLengthMeasure::Out Girth;
2200 		Maybe< IfcNonNegativeLengthMeasure::Out > InternalFilletRadius;
2201     };
2202 
2203     // C++ wrapper for IfcFlowFitting
IfcFlowFittingIfcFlowFitting2204     struct IfcFlowFitting : IfcDistributionFlowElement, ObjectHelper<IfcFlowFitting,0> { IfcFlowFitting() : Object("IfcFlowFitting") {}
2205 
2206     };
2207 
2208     // C++ wrapper for IfcCableCarrierFitting
IfcCableCarrierFittingIfcCableCarrierFitting2209     struct IfcCableCarrierFitting : IfcFlowFitting, ObjectHelper<IfcCableCarrierFitting,1> { IfcCableCarrierFitting() : Object("IfcCableCarrierFitting") {}
2210 		Maybe< IfcCableCarrierFittingTypeEnum::Out > PredefinedType;
2211     };
2212 
2213     // C++ wrapper for IfcFlowFittingType
IfcFlowFittingTypeIfcFlowFittingType2214     struct IfcFlowFittingType : IfcDistributionFlowElementType, ObjectHelper<IfcFlowFittingType,0> { IfcFlowFittingType() : Object("IfcFlowFittingType") {}
2215 
2216     };
2217 
2218     // C++ wrapper for IfcCableCarrierFittingType
IfcCableCarrierFittingTypeIfcCableCarrierFittingType2219     struct IfcCableCarrierFittingType : IfcFlowFittingType, ObjectHelper<IfcCableCarrierFittingType,1> { IfcCableCarrierFittingType() : Object("IfcCableCarrierFittingType") {}
2220 		IfcCableCarrierFittingTypeEnum::Out PredefinedType;
2221     };
2222 
2223     // C++ wrapper for IfcFlowSegment
IfcFlowSegmentIfcFlowSegment2224     struct IfcFlowSegment : IfcDistributionFlowElement, ObjectHelper<IfcFlowSegment,0> { IfcFlowSegment() : Object("IfcFlowSegment") {}
2225 
2226     };
2227 
2228     // C++ wrapper for IfcCableCarrierSegment
IfcCableCarrierSegmentIfcCableCarrierSegment2229     struct IfcCableCarrierSegment : IfcFlowSegment, ObjectHelper<IfcCableCarrierSegment,1> { IfcCableCarrierSegment() : Object("IfcCableCarrierSegment") {}
2230 		Maybe< IfcCableCarrierSegmentTypeEnum::Out > PredefinedType;
2231     };
2232 
2233     // C++ wrapper for IfcFlowSegmentType
IfcFlowSegmentTypeIfcFlowSegmentType2234     struct IfcFlowSegmentType : IfcDistributionFlowElementType, ObjectHelper<IfcFlowSegmentType,0> { IfcFlowSegmentType() : Object("IfcFlowSegmentType") {}
2235 
2236     };
2237 
2238     // C++ wrapper for IfcCableCarrierSegmentType
IfcCableCarrierSegmentTypeIfcCableCarrierSegmentType2239     struct IfcCableCarrierSegmentType : IfcFlowSegmentType, ObjectHelper<IfcCableCarrierSegmentType,1> { IfcCableCarrierSegmentType() : Object("IfcCableCarrierSegmentType") {}
2240 		IfcCableCarrierSegmentTypeEnum::Out PredefinedType;
2241     };
2242 
2243     // C++ wrapper for IfcCableFitting
IfcCableFittingIfcCableFitting2244     struct IfcCableFitting : IfcFlowFitting, ObjectHelper<IfcCableFitting,1> { IfcCableFitting() : Object("IfcCableFitting") {}
2245 		Maybe< IfcCableFittingTypeEnum::Out > PredefinedType;
2246     };
2247 
2248     // C++ wrapper for IfcCableFittingType
IfcCableFittingTypeIfcCableFittingType2249     struct IfcCableFittingType : IfcFlowFittingType, ObjectHelper<IfcCableFittingType,1> { IfcCableFittingType() : Object("IfcCableFittingType") {}
2250 		IfcCableFittingTypeEnum::Out PredefinedType;
2251     };
2252 
2253     // C++ wrapper for IfcCableSegment
IfcCableSegmentIfcCableSegment2254     struct IfcCableSegment : IfcFlowSegment, ObjectHelper<IfcCableSegment,1> { IfcCableSegment() : Object("IfcCableSegment") {}
2255 		Maybe< IfcCableSegmentTypeEnum::Out > PredefinedType;
2256     };
2257 
2258     // C++ wrapper for IfcCableSegmentType
IfcCableSegmentTypeIfcCableSegmentType2259     struct IfcCableSegmentType : IfcFlowSegmentType, ObjectHelper<IfcCableSegmentType,1> { IfcCableSegmentType() : Object("IfcCableSegmentType") {}
2260 		IfcCableSegmentTypeEnum::Out PredefinedType;
2261     };
2262 
2263     // C++ wrapper for IfcPoint
IfcPointIfcPoint2264     struct IfcPoint : IfcGeometricRepresentationItem, ObjectHelper<IfcPoint,0> { IfcPoint() : Object("IfcPoint") {}
2265 
2266     };
2267 
2268     // C++ wrapper for IfcCartesianPoint
IfcCartesianPointIfcCartesianPoint2269     struct IfcCartesianPoint : IfcPoint, ObjectHelper<IfcCartesianPoint,1> { IfcCartesianPoint() : Object("IfcCartesianPoint") {}
2270 		ListOf< IfcLengthMeasure, 1, 3 >::Out Coordinates;
2271     };
2272 
2273     // C++ wrapper for IfcCartesianPointList
IfcCartesianPointListIfcCartesianPointList2274     struct IfcCartesianPointList : IfcGeometricRepresentationItem, ObjectHelper<IfcCartesianPointList,0> { IfcCartesianPointList() : Object("IfcCartesianPointList") {}
2275 
2276     };
2277 
2278     // C++ wrapper for IfcCartesianPointList2D
IfcCartesianPointList2DIfcCartesianPointList2D2279     struct IfcCartesianPointList2D : IfcCartesianPointList, ObjectHelper<IfcCartesianPointList2D,0> { IfcCartesianPointList2D() : Object("IfcCartesianPointList2D") {}
2280 
2281     };
2282 
2283     // C++ wrapper for IfcCartesianPointList3D
IfcCartesianPointList3DIfcCartesianPointList3D2284     struct IfcCartesianPointList3D : IfcCartesianPointList, ObjectHelper<IfcCartesianPointList3D,0> { IfcCartesianPointList3D() : Object("IfcCartesianPointList3D") {}
2285 
2286     };
2287 
2288     // C++ wrapper for IfcCartesianTransformationOperator
IfcCartesianTransformationOperatorIfcCartesianTransformationOperator2289     struct IfcCartesianTransformationOperator : IfcGeometricRepresentationItem, ObjectHelper<IfcCartesianTransformationOperator,4> { IfcCartesianTransformationOperator() : Object("IfcCartesianTransformationOperator") {}
2290 		Maybe< Lazy< IfcDirection > > Axis1;
2291 		Maybe< Lazy< IfcDirection > > Axis2;
2292 		Lazy< IfcCartesianPoint > LocalOrigin;
2293 		Maybe< IfcReal::Out > Scale;
2294     };
2295 
2296     // C++ wrapper for IfcCartesianTransformationOperator2D
IfcCartesianTransformationOperator2DIfcCartesianTransformationOperator2D2297     struct IfcCartesianTransformationOperator2D : IfcCartesianTransformationOperator, ObjectHelper<IfcCartesianTransformationOperator2D,0> { IfcCartesianTransformationOperator2D() : Object("IfcCartesianTransformationOperator2D") {}
2298 
2299     };
2300 
2301     // C++ wrapper for IfcCartesianTransformationOperator2DnonUniform
IfcCartesianTransformationOperator2DnonUniformIfcCartesianTransformationOperator2DnonUniform2302     struct IfcCartesianTransformationOperator2DnonUniform : IfcCartesianTransformationOperator2D, ObjectHelper<IfcCartesianTransformationOperator2DnonUniform,1> { IfcCartesianTransformationOperator2DnonUniform() : Object("IfcCartesianTransformationOperator2DnonUniform") {}
2303 		Maybe< IfcReal::Out > Scale2;
2304     };
2305 
2306     // C++ wrapper for IfcCartesianTransformationOperator3D
IfcCartesianTransformationOperator3DIfcCartesianTransformationOperator3D2307     struct IfcCartesianTransformationOperator3D : IfcCartesianTransformationOperator, ObjectHelper<IfcCartesianTransformationOperator3D,1> { IfcCartesianTransformationOperator3D() : Object("IfcCartesianTransformationOperator3D") {}
2308 		Maybe< Lazy< IfcDirection > > Axis3;
2309     };
2310 
2311     // C++ wrapper for IfcCartesianTransformationOperator3DnonUniform
IfcCartesianTransformationOperator3DnonUniformIfcCartesianTransformationOperator3DnonUniform2312     struct IfcCartesianTransformationOperator3DnonUniform : IfcCartesianTransformationOperator3D, ObjectHelper<IfcCartesianTransformationOperator3DnonUniform,2> { IfcCartesianTransformationOperator3DnonUniform() : Object("IfcCartesianTransformationOperator3DnonUniform") {}
2313 		Maybe< IfcReal::Out > Scale2;
2314 		Maybe< IfcReal::Out > Scale3;
2315     };
2316 
2317     // C++ wrapper for IfcCenterLineProfileDef
IfcCenterLineProfileDefIfcCenterLineProfileDef2318     struct IfcCenterLineProfileDef : IfcArbitraryOpenProfileDef, ObjectHelper<IfcCenterLineProfileDef,1> { IfcCenterLineProfileDef() : Object("IfcCenterLineProfileDef") {}
2319 		IfcPositiveLengthMeasure::Out Thickness;
2320     };
2321 
2322     // C++ wrapper for IfcChiller
IfcChillerIfcChiller2323     struct IfcChiller : IfcEnergyConversionDevice, ObjectHelper<IfcChiller,1> { IfcChiller() : Object("IfcChiller") {}
2324 		Maybe< IfcChillerTypeEnum::Out > PredefinedType;
2325     };
2326 
2327     // C++ wrapper for IfcChillerType
IfcChillerTypeIfcChillerType2328     struct IfcChillerType : IfcEnergyConversionDeviceType, ObjectHelper<IfcChillerType,1> { IfcChillerType() : Object("IfcChillerType") {}
2329 		IfcChillerTypeEnum::Out PredefinedType;
2330     };
2331 
2332     // C++ wrapper for IfcChimney
IfcChimneyIfcChimney2333     struct IfcChimney : IfcBuildingElement, ObjectHelper<IfcChimney,1> { IfcChimney() : Object("IfcChimney") {}
2334 		Maybe< IfcChimneyTypeEnum::Out > PredefinedType;
2335     };
2336 
2337     // C++ wrapper for IfcChimneyType
IfcChimneyTypeIfcChimneyType2338     struct IfcChimneyType : IfcBuildingElementType, ObjectHelper<IfcChimneyType,1> { IfcChimneyType() : Object("IfcChimneyType") {}
2339 		IfcChimneyTypeEnum::Out PredefinedType;
2340     };
2341 
2342     // C++ wrapper for IfcConic
IfcConicIfcConic2343     struct IfcConic : IfcCurve, ObjectHelper<IfcConic,1> { IfcConic() : Object("IfcConic") {}
2344 		IfcAxis2Placement::Out Position;
2345     };
2346 
2347     // C++ wrapper for IfcCircle
IfcCircleIfcCircle2348     struct IfcCircle : IfcConic, ObjectHelper<IfcCircle,1> { IfcCircle() : Object("IfcCircle") {}
2349 		IfcPositiveLengthMeasure::Out Radius;
2350     };
2351 
2352     // C++ wrapper for IfcCircleProfileDef
IfcCircleProfileDefIfcCircleProfileDef2353     struct IfcCircleProfileDef : IfcParameterizedProfileDef, ObjectHelper<IfcCircleProfileDef,1> { IfcCircleProfileDef() : Object("IfcCircleProfileDef") {}
2354 		IfcPositiveLengthMeasure::Out Radius;
2355     };
2356 
2357     // C++ wrapper for IfcCircleHollowProfileDef
IfcCircleHollowProfileDefIfcCircleHollowProfileDef2358     struct IfcCircleHollowProfileDef : IfcCircleProfileDef, ObjectHelper<IfcCircleHollowProfileDef,1> { IfcCircleHollowProfileDef() : Object("IfcCircleHollowProfileDef") {}
2359 		IfcPositiveLengthMeasure::Out WallThickness;
2360     };
2361 
2362     // C++ wrapper for IfcCivilElement
IfcCivilElementIfcCivilElement2363     struct IfcCivilElement : IfcElement, ObjectHelper<IfcCivilElement,0> { IfcCivilElement() : Object("IfcCivilElement") {}
2364 
2365     };
2366 
2367     // C++ wrapper for IfcCivilElementType
IfcCivilElementTypeIfcCivilElementType2368     struct IfcCivilElementType : IfcElementType, ObjectHelper<IfcCivilElementType,0> { IfcCivilElementType() : Object("IfcCivilElementType") {}
2369 
2370     };
2371 
2372     // C++ wrapper for IfcConnectedFaceSet
IfcConnectedFaceSetIfcConnectedFaceSet2373     struct IfcConnectedFaceSet : IfcTopologicalRepresentationItem, ObjectHelper<IfcConnectedFaceSet,1> { IfcConnectedFaceSet() : Object("IfcConnectedFaceSet") {}
2374 		ListOf< Lazy< IfcFace >, 1, 0 > CfsFaces;
2375     };
2376 
2377     // C++ wrapper for IfcClosedShell
IfcClosedShellIfcClosedShell2378     struct IfcClosedShell : IfcConnectedFaceSet, ObjectHelper<IfcClosedShell,0> { IfcClosedShell() : Object("IfcClosedShell") {}
2379 
2380     };
2381 
2382     // C++ wrapper for IfcCoil
IfcCoilIfcCoil2383     struct IfcCoil : IfcEnergyConversionDevice, ObjectHelper<IfcCoil,1> { IfcCoil() : Object("IfcCoil") {}
2384 		Maybe< IfcCoilTypeEnum::Out > PredefinedType;
2385     };
2386 
2387     // C++ wrapper for IfcCoilType
IfcCoilTypeIfcCoilType2388     struct IfcCoilType : IfcEnergyConversionDeviceType, ObjectHelper<IfcCoilType,1> { IfcCoilType() : Object("IfcCoilType") {}
2389 		IfcCoilTypeEnum::Out PredefinedType;
2390     };
2391 
2392     // C++ wrapper for IfcColourSpecification
IfcColourSpecificationIfcColourSpecification2393     struct IfcColourSpecification : IfcPresentationItem, ObjectHelper<IfcColourSpecification,1> { IfcColourSpecification() : Object("IfcColourSpecification") {}
2394 		Maybe< IfcLabel::Out > Name;
2395     };
2396 
2397     // C++ wrapper for IfcColourRgb
IfcColourRgbIfcColourRgb2398     struct IfcColourRgb : IfcColourSpecification, ObjectHelper<IfcColourRgb,3> { IfcColourRgb() : Object("IfcColourRgb") {}
2399 		IfcNormalisedRatioMeasure::Out Red;
2400 		IfcNormalisedRatioMeasure::Out Green;
2401 		IfcNormalisedRatioMeasure::Out Blue;
2402     };
2403 
2404     // C++ wrapper for IfcColumn
IfcColumnIfcColumn2405     struct IfcColumn : IfcBuildingElement, ObjectHelper<IfcColumn,1> { IfcColumn() : Object("IfcColumn") {}
2406 		Maybe< IfcColumnTypeEnum::Out > PredefinedType;
2407     };
2408 
2409     // C++ wrapper for IfcColumnStandardCase
IfcColumnStandardCaseIfcColumnStandardCase2410     struct IfcColumnStandardCase : IfcColumn, ObjectHelper<IfcColumnStandardCase,0> { IfcColumnStandardCase() : Object("IfcColumnStandardCase") {}
2411 
2412     };
2413 
2414     // C++ wrapper for IfcColumnType
IfcColumnTypeIfcColumnType2415     struct IfcColumnType : IfcBuildingElementType, ObjectHelper<IfcColumnType,1> { IfcColumnType() : Object("IfcColumnType") {}
2416 		IfcColumnTypeEnum::Out PredefinedType;
2417     };
2418 
2419     // C++ wrapper for IfcCommunicationsAppliance
IfcCommunicationsApplianceIfcCommunicationsAppliance2420     struct IfcCommunicationsAppliance : IfcFlowTerminal, ObjectHelper<IfcCommunicationsAppliance,1> { IfcCommunicationsAppliance() : Object("IfcCommunicationsAppliance") {}
2421 		Maybe< IfcCommunicationsApplianceTypeEnum::Out > PredefinedType;
2422     };
2423 
2424     // C++ wrapper for IfcCommunicationsApplianceType
IfcCommunicationsApplianceTypeIfcCommunicationsApplianceType2425     struct IfcCommunicationsApplianceType : IfcFlowTerminalType, ObjectHelper<IfcCommunicationsApplianceType,1> { IfcCommunicationsApplianceType() : Object("IfcCommunicationsApplianceType") {}
2426 		IfcCommunicationsApplianceTypeEnum::Out PredefinedType;
2427     };
2428 
2429     // C++ wrapper for IfcPropertyAbstraction
IfcPropertyAbstractionIfcPropertyAbstraction2430     struct IfcPropertyAbstraction :  ObjectHelper<IfcPropertyAbstraction,0> { IfcPropertyAbstraction() : Object("IfcPropertyAbstraction") {}
2431 
2432     };
2433 
2434     // C++ wrapper for IfcProperty
IfcPropertyIfcProperty2435     struct IfcProperty : IfcPropertyAbstraction, ObjectHelper<IfcProperty,2> { IfcProperty() : Object("IfcProperty") {}
2436 		IfcIdentifier::Out Name;
2437 		Maybe< IfcText::Out > Description;
2438     };
2439 
2440     // C++ wrapper for IfcComplexProperty
IfcComplexPropertyIfcComplexProperty2441     struct IfcComplexProperty : IfcProperty, ObjectHelper<IfcComplexProperty,2> { IfcComplexProperty() : Object("IfcComplexProperty") {}
2442 		IfcIdentifier::Out UsageName;
2443 		ListOf< Lazy< IfcProperty >, 1, 0 > HasProperties;
2444     };
2445 
2446     // C++ wrapper for IfcPropertyDefinition
IfcPropertyDefinitionIfcPropertyDefinition2447     struct IfcPropertyDefinition : IfcRoot, ObjectHelper<IfcPropertyDefinition,0> { IfcPropertyDefinition() : Object("IfcPropertyDefinition") {}
2448 
2449     };
2450 
2451     // C++ wrapper for IfcCompositeCurveSegment
IfcCompositeCurveSegmentIfcCompositeCurveSegment2452     struct IfcCompositeCurveSegment : IfcGeometricRepresentationItem, ObjectHelper<IfcCompositeCurveSegment,3> { IfcCompositeCurveSegment() : Object("IfcCompositeCurveSegment") {}
2453 		IfcTransitionCode::Out Transition;
2454 		IfcBoolean::Out SameSense;
2455 		Lazy< IfcCurve > ParentCurve;
2456     };
2457 
2458     // C++ wrapper for IfcCompositeProfileDef
IfcCompositeProfileDefIfcCompositeProfileDef2459     struct IfcCompositeProfileDef : IfcProfileDef, ObjectHelper<IfcCompositeProfileDef,2> { IfcCompositeProfileDef() : Object("IfcCompositeProfileDef") {}
2460 		ListOf< Lazy< IfcProfileDef >, 2, 0 > Profiles;
2461 		Maybe< IfcLabel::Out > Label;
2462     };
2463 
2464     // C++ wrapper for IfcFlowMovingDevice
IfcFlowMovingDeviceIfcFlowMovingDevice2465     struct IfcFlowMovingDevice : IfcDistributionFlowElement, ObjectHelper<IfcFlowMovingDevice,0> { IfcFlowMovingDevice() : Object("IfcFlowMovingDevice") {}
2466 
2467     };
2468 
2469     // C++ wrapper for IfcCompressor
IfcCompressorIfcCompressor2470     struct IfcCompressor : IfcFlowMovingDevice, ObjectHelper<IfcCompressor,1> { IfcCompressor() : Object("IfcCompressor") {}
2471 		Maybe< IfcCompressorTypeEnum::Out > PredefinedType;
2472     };
2473 
2474     // C++ wrapper for IfcFlowMovingDeviceType
IfcFlowMovingDeviceTypeIfcFlowMovingDeviceType2475     struct IfcFlowMovingDeviceType : IfcDistributionFlowElementType, ObjectHelper<IfcFlowMovingDeviceType,0> { IfcFlowMovingDeviceType() : Object("IfcFlowMovingDeviceType") {}
2476 
2477     };
2478 
2479     // C++ wrapper for IfcCompressorType
IfcCompressorTypeIfcCompressorType2480     struct IfcCompressorType : IfcFlowMovingDeviceType, ObjectHelper<IfcCompressorType,1> { IfcCompressorType() : Object("IfcCompressorType") {}
2481 		IfcCompressorTypeEnum::Out PredefinedType;
2482     };
2483 
2484     // C++ wrapper for IfcCondenser
IfcCondenserIfcCondenser2485     struct IfcCondenser : IfcEnergyConversionDevice, ObjectHelper<IfcCondenser,1> { IfcCondenser() : Object("IfcCondenser") {}
2486 		Maybe< IfcCondenserTypeEnum::Out > PredefinedType;
2487     };
2488 
2489     // C++ wrapper for IfcCondenserType
IfcCondenserTypeIfcCondenserType2490     struct IfcCondenserType : IfcEnergyConversionDeviceType, ObjectHelper<IfcCondenserType,1> { IfcCondenserType() : Object("IfcCondenserType") {}
2491 		IfcCondenserTypeEnum::Out PredefinedType;
2492     };
2493 
2494     // C++ wrapper for IfcResource
IfcResourceIfcResource2495     struct IfcResource : IfcObject, ObjectHelper<IfcResource,2> { IfcResource() : Object("IfcResource") {}
2496 		Maybe< IfcIdentifier::Out > Identification;
2497 		Maybe< IfcText::Out > LongDescription;
2498     };
2499 
2500     // C++ wrapper for IfcConstructionResource
IfcConstructionResourceIfcConstructionResource2501     struct IfcConstructionResource : IfcResource, ObjectHelper<IfcConstructionResource,3> { IfcConstructionResource() : Object("IfcConstructionResource") {}
2502 		Maybe< Lazy< NotImplemented > > Usage;
2503 		Maybe< ListOf< Lazy< NotImplemented >, 1, 0 > > BaseCosts;
2504 		Maybe< Lazy< NotImplemented > > BaseQuantity;
2505     };
2506 
2507     // C++ wrapper for IfcConstructionEquipmentResource
IfcConstructionEquipmentResourceIfcConstructionEquipmentResource2508     struct IfcConstructionEquipmentResource : IfcConstructionResource, ObjectHelper<IfcConstructionEquipmentResource,1> { IfcConstructionEquipmentResource() : Object("IfcConstructionEquipmentResource") {}
2509 		Maybe< IfcConstructionEquipmentResourceTypeEnum::Out > PredefinedType;
2510     };
2511 
2512     // C++ wrapper for IfcTypeResource
IfcTypeResourceIfcTypeResource2513     struct IfcTypeResource : IfcTypeObject, ObjectHelper<IfcTypeResource,3> { IfcTypeResource() : Object("IfcTypeResource") {}
2514 		Maybe< IfcIdentifier::Out > Identification;
2515 		Maybe< IfcText::Out > LongDescription;
2516 		Maybe< IfcLabel::Out > ResourceType;
2517     };
2518 
2519     // C++ wrapper for IfcConstructionResourceType
IfcConstructionResourceTypeIfcConstructionResourceType2520     struct IfcConstructionResourceType : IfcTypeResource, ObjectHelper<IfcConstructionResourceType,2> { IfcConstructionResourceType() : Object("IfcConstructionResourceType") {}
2521 		Maybe< ListOf< Lazy< NotImplemented >, 1, 0 > > BaseCosts;
2522 		Maybe< Lazy< NotImplemented > > BaseQuantity;
2523     };
2524 
2525     // C++ wrapper for IfcConstructionEquipmentResourceType
IfcConstructionEquipmentResourceTypeIfcConstructionEquipmentResourceType2526     struct IfcConstructionEquipmentResourceType : IfcConstructionResourceType, ObjectHelper<IfcConstructionEquipmentResourceType,1> { IfcConstructionEquipmentResourceType() : Object("IfcConstructionEquipmentResourceType") {}
2527 		IfcConstructionEquipmentResourceTypeEnum::Out PredefinedType;
2528     };
2529 
2530     // C++ wrapper for IfcConstructionMaterialResource
IfcConstructionMaterialResourceIfcConstructionMaterialResource2531     struct IfcConstructionMaterialResource : IfcConstructionResource, ObjectHelper<IfcConstructionMaterialResource,1> { IfcConstructionMaterialResource() : Object("IfcConstructionMaterialResource") {}
2532 		Maybe< IfcConstructionMaterialResourceTypeEnum::Out > PredefinedType;
2533     };
2534 
2535     // C++ wrapper for IfcConstructionMaterialResourceType
IfcConstructionMaterialResourceTypeIfcConstructionMaterialResourceType2536     struct IfcConstructionMaterialResourceType : IfcConstructionResourceType, ObjectHelper<IfcConstructionMaterialResourceType,1> { IfcConstructionMaterialResourceType() : Object("IfcConstructionMaterialResourceType") {}
2537 		IfcConstructionMaterialResourceTypeEnum::Out PredefinedType;
2538     };
2539 
2540     // C++ wrapper for IfcConstructionProductResource
IfcConstructionProductResourceIfcConstructionProductResource2541     struct IfcConstructionProductResource : IfcConstructionResource, ObjectHelper<IfcConstructionProductResource,1> { IfcConstructionProductResource() : Object("IfcConstructionProductResource") {}
2542 		Maybe< IfcConstructionProductResourceTypeEnum::Out > PredefinedType;
2543     };
2544 
2545     // C++ wrapper for IfcConstructionProductResourceType
IfcConstructionProductResourceTypeIfcConstructionProductResourceType2546     struct IfcConstructionProductResourceType : IfcConstructionResourceType, ObjectHelper<IfcConstructionProductResourceType,1> { IfcConstructionProductResourceType() : Object("IfcConstructionProductResourceType") {}
2547 		IfcConstructionProductResourceTypeEnum::Out PredefinedType;
2548     };
2549 
2550     // C++ wrapper for IfcContext
IfcContextIfcContext2551     struct IfcContext : IfcObjectDefinition, ObjectHelper<IfcContext,5> { IfcContext() : Object("IfcContext") {}
2552 		Maybe< IfcLabel::Out > ObjectType;
2553 		Maybe< IfcLabel::Out > LongName;
2554 		Maybe< IfcLabel::Out > Phase;
2555 		Maybe< ListOf< Lazy< IfcRepresentationContext >, 1, 0 > > RepresentationContexts;
2556 		Maybe< Lazy< IfcUnitAssignment > > UnitsInContext;
2557     };
2558 
2559     // C++ wrapper for IfcNamedUnit
IfcNamedUnitIfcNamedUnit2560     struct IfcNamedUnit :  ObjectHelper<IfcNamedUnit,2> { IfcNamedUnit() : Object("IfcNamedUnit") {}
2561 		Lazy< NotImplemented > Dimensions;
2562 		IfcUnitEnum::Out UnitType;
2563     };
2564 
2565     // C++ wrapper for IfcContextDependentUnit
IfcContextDependentUnitIfcContextDependentUnit2566     struct IfcContextDependentUnit : IfcNamedUnit, ObjectHelper<IfcContextDependentUnit,1> { IfcContextDependentUnit() : Object("IfcContextDependentUnit") {}
2567 		IfcLabel::Out Name;
2568     };
2569 
2570     // C++ wrapper for IfcController
IfcControllerIfcController2571     struct IfcController : IfcDistributionControlElement, ObjectHelper<IfcController,1> { IfcController() : Object("IfcController") {}
2572 		Maybe< IfcControllerTypeEnum::Out > PredefinedType;
2573     };
2574 
2575     // C++ wrapper for IfcControllerType
IfcControllerTypeIfcControllerType2576     struct IfcControllerType : IfcDistributionControlElementType, ObjectHelper<IfcControllerType,1> { IfcControllerType() : Object("IfcControllerType") {}
2577 		IfcControllerTypeEnum::Out PredefinedType;
2578     };
2579 
2580     // C++ wrapper for IfcConversionBasedUnit
IfcConversionBasedUnitIfcConversionBasedUnit2581     struct IfcConversionBasedUnit : IfcNamedUnit, ObjectHelper<IfcConversionBasedUnit,2> { IfcConversionBasedUnit() : Object("IfcConversionBasedUnit") {}
2582 		IfcLabel::Out Name;
2583 		Lazy< IfcMeasureWithUnit > ConversionFactor;
2584     };
2585 
2586     // C++ wrapper for IfcConversionBasedUnitWithOffset
IfcConversionBasedUnitWithOffsetIfcConversionBasedUnitWithOffset2587     struct IfcConversionBasedUnitWithOffset : IfcConversionBasedUnit, ObjectHelper<IfcConversionBasedUnitWithOffset,1> { IfcConversionBasedUnitWithOffset() : Object("IfcConversionBasedUnitWithOffset") {}
2588 		IfcReal::Out ConversionOffset;
2589     };
2590 
2591     // C++ wrapper for IfcCooledBeam
IfcCooledBeamIfcCooledBeam2592     struct IfcCooledBeam : IfcEnergyConversionDevice, ObjectHelper<IfcCooledBeam,1> { IfcCooledBeam() : Object("IfcCooledBeam") {}
2593 		Maybe< IfcCooledBeamTypeEnum::Out > PredefinedType;
2594     };
2595 
2596     // C++ wrapper for IfcCooledBeamType
IfcCooledBeamTypeIfcCooledBeamType2597     struct IfcCooledBeamType : IfcEnergyConversionDeviceType, ObjectHelper<IfcCooledBeamType,1> { IfcCooledBeamType() : Object("IfcCooledBeamType") {}
2598 		IfcCooledBeamTypeEnum::Out PredefinedType;
2599     };
2600 
2601     // C++ wrapper for IfcCoolingTower
IfcCoolingTowerIfcCoolingTower2602     struct IfcCoolingTower : IfcEnergyConversionDevice, ObjectHelper<IfcCoolingTower,1> { IfcCoolingTower() : Object("IfcCoolingTower") {}
2603 		Maybe< IfcCoolingTowerTypeEnum::Out > PredefinedType;
2604     };
2605 
2606     // C++ wrapper for IfcCoolingTowerType
IfcCoolingTowerTypeIfcCoolingTowerType2607     struct IfcCoolingTowerType : IfcEnergyConversionDeviceType, ObjectHelper<IfcCoolingTowerType,1> { IfcCoolingTowerType() : Object("IfcCoolingTowerType") {}
2608 		IfcCoolingTowerTypeEnum::Out PredefinedType;
2609     };
2610 
2611     // C++ wrapper for IfcCostItem
IfcCostItemIfcCostItem2612     struct IfcCostItem : IfcControl, ObjectHelper<IfcCostItem,3> { IfcCostItem() : Object("IfcCostItem") {}
2613 		Maybe< IfcCostItemTypeEnum::Out > PredefinedType;
2614 		Maybe< ListOf< Lazy< NotImplemented >, 1, 0 > > CostValues;
2615 		Maybe< ListOf< Lazy< NotImplemented >, 1, 0 > > CostQuantities;
2616     };
2617 
2618     // C++ wrapper for IfcCostSchedule
IfcCostScheduleIfcCostSchedule2619     struct IfcCostSchedule : IfcControl, ObjectHelper<IfcCostSchedule,4> { IfcCostSchedule() : Object("IfcCostSchedule") {}
2620 		Maybe< IfcCostScheduleTypeEnum::Out > PredefinedType;
2621 		Maybe< IfcLabel::Out > Status;
2622 		Maybe< IfcDateTime::Out > SubmittedOn;
2623 		Maybe< IfcDateTime::Out > UpdateDate;
2624     };
2625 
2626     // C++ wrapper for IfcCovering
IfcCoveringIfcCovering2627     struct IfcCovering : IfcBuildingElement, ObjectHelper<IfcCovering,1> { IfcCovering() : Object("IfcCovering") {}
2628 		Maybe< IfcCoveringTypeEnum::Out > PredefinedType;
2629     };
2630 
2631     // C++ wrapper for IfcCoveringType
IfcCoveringTypeIfcCoveringType2632     struct IfcCoveringType : IfcBuildingElementType, ObjectHelper<IfcCoveringType,1> { IfcCoveringType() : Object("IfcCoveringType") {}
2633 		IfcCoveringTypeEnum::Out PredefinedType;
2634     };
2635 
2636     // C++ wrapper for IfcCrewResource
IfcCrewResourceIfcCrewResource2637     struct IfcCrewResource : IfcConstructionResource, ObjectHelper<IfcCrewResource,1> { IfcCrewResource() : Object("IfcCrewResource") {}
2638 		Maybe< IfcCrewResourceTypeEnum::Out > PredefinedType;
2639     };
2640 
2641     // C++ wrapper for IfcCrewResourceType
IfcCrewResourceTypeIfcCrewResourceType2642     struct IfcCrewResourceType : IfcConstructionResourceType, ObjectHelper<IfcCrewResourceType,1> { IfcCrewResourceType() : Object("IfcCrewResourceType") {}
2643 		IfcCrewResourceTypeEnum::Out PredefinedType;
2644     };
2645 
2646     // C++ wrapper for IfcCsgSolid
IfcCsgSolidIfcCsgSolid2647     struct IfcCsgSolid : IfcSolidModel, ObjectHelper<IfcCsgSolid,1> { IfcCsgSolid() : Object("IfcCsgSolid") {}
2648 		IfcCsgSelect::Out TreeRootExpression;
2649     };
2650 
2651     // C++ wrapper for IfcCurtainWall
IfcCurtainWallIfcCurtainWall2652     struct IfcCurtainWall : IfcBuildingElement, ObjectHelper<IfcCurtainWall,1> { IfcCurtainWall() : Object("IfcCurtainWall") {}
2653 		Maybe< IfcCurtainWallTypeEnum::Out > PredefinedType;
2654     };
2655 
2656     // C++ wrapper for IfcCurtainWallType
IfcCurtainWallTypeIfcCurtainWallType2657     struct IfcCurtainWallType : IfcBuildingElementType, ObjectHelper<IfcCurtainWallType,1> { IfcCurtainWallType() : Object("IfcCurtainWallType") {}
2658 		IfcCurtainWallTypeEnum::Out PredefinedType;
2659     };
2660 
2661     // C++ wrapper for IfcCurveBoundedPlane
IfcCurveBoundedPlaneIfcCurveBoundedPlane2662     struct IfcCurveBoundedPlane : IfcBoundedSurface, ObjectHelper<IfcCurveBoundedPlane,3> { IfcCurveBoundedPlane() : Object("IfcCurveBoundedPlane") {}
2663 		Lazy< IfcPlane > BasisSurface;
2664 		Lazy< IfcCurve > OuterBoundary;
2665 		ListOf< Lazy< IfcCurve >, 0, 0 > InnerBoundaries;
2666     };
2667 
2668     // C++ wrapper for IfcCurveBoundedSurface
IfcCurveBoundedSurfaceIfcCurveBoundedSurface2669     struct IfcCurveBoundedSurface : IfcBoundedSurface, ObjectHelper<IfcCurveBoundedSurface,3> { IfcCurveBoundedSurface() : Object("IfcCurveBoundedSurface") {}
2670 		Lazy< IfcSurface > BasisSurface;
2671 		ListOf< Lazy< IfcBoundaryCurve >, 1, 0 > Boundaries;
2672 		IfcBoolean::Out ImplicitOuter;
2673     };
2674 
2675     // C++ wrapper for IfcPresentationStyle
IfcPresentationStyleIfcPresentationStyle2676     struct IfcPresentationStyle :  ObjectHelper<IfcPresentationStyle,1> { IfcPresentationStyle() : Object("IfcPresentationStyle") {}
2677 		Maybe< IfcLabel::Out > Name;
2678     };
2679 
2680     // C++ wrapper for IfcElementarySurface
IfcElementarySurfaceIfcElementarySurface2681     struct IfcElementarySurface : IfcSurface, ObjectHelper<IfcElementarySurface,1> { IfcElementarySurface() : Object("IfcElementarySurface") {}
2682 		Lazy< IfcAxis2Placement3D > Position;
2683     };
2684 
2685     // C++ wrapper for IfcCylindricalSurface
IfcCylindricalSurfaceIfcCylindricalSurface2686     struct IfcCylindricalSurface : IfcElementarySurface, ObjectHelper<IfcCylindricalSurface,1> { IfcCylindricalSurface() : Object("IfcCylindricalSurface") {}
2687 		IfcPositiveLengthMeasure::Out Radius;
2688     };
2689 
2690     // C++ wrapper for IfcDamper
IfcDamperIfcDamper2691     struct IfcDamper : IfcFlowController, ObjectHelper<IfcDamper,1> { IfcDamper() : Object("IfcDamper") {}
2692 		Maybe< IfcDamperTypeEnum::Out > PredefinedType;
2693     };
2694 
2695     // C++ wrapper for IfcDamperType
IfcDamperTypeIfcDamperType2696     struct IfcDamperType : IfcFlowControllerType, ObjectHelper<IfcDamperType,1> { IfcDamperType() : Object("IfcDamperType") {}
2697 		IfcDamperTypeEnum::Out PredefinedType;
2698     };
2699 
2700     // C++ wrapper for IfcDerivedProfileDef
IfcDerivedProfileDefIfcDerivedProfileDef2701     struct IfcDerivedProfileDef : IfcProfileDef, ObjectHelper<IfcDerivedProfileDef,3> { IfcDerivedProfileDef() : Object("IfcDerivedProfileDef") {}
2702 		Lazy< IfcProfileDef > ParentProfile;
2703 		Lazy< IfcCartesianTransformationOperator2D > Operator;
2704 		Maybe< IfcLabel::Out > Label;
2705     };
2706 
2707     // C++ wrapper for IfcDirection
IfcDirectionIfcDirection2708     struct IfcDirection : IfcGeometricRepresentationItem, ObjectHelper<IfcDirection,1> { IfcDirection() : Object("IfcDirection") {}
2709 		ListOf< IfcReal, 2, 3 >::Out DirectionRatios;
2710     };
2711 
2712     // C++ wrapper for IfcDiscreteAccessory
IfcDiscreteAccessoryIfcDiscreteAccessory2713     struct IfcDiscreteAccessory : IfcElementComponent, ObjectHelper<IfcDiscreteAccessory,1> { IfcDiscreteAccessory() : Object("IfcDiscreteAccessory") {}
2714 		Maybe< IfcDiscreteAccessoryTypeEnum::Out > PredefinedType;
2715     };
2716 
2717     // C++ wrapper for IfcDiscreteAccessoryType
IfcDiscreteAccessoryTypeIfcDiscreteAccessoryType2718     struct IfcDiscreteAccessoryType : IfcElementComponentType, ObjectHelper<IfcDiscreteAccessoryType,1> { IfcDiscreteAccessoryType() : Object("IfcDiscreteAccessoryType") {}
2719 		IfcDiscreteAccessoryTypeEnum::Out PredefinedType;
2720     };
2721 
2722     // C++ wrapper for IfcDistributionChamberElement
IfcDistributionChamberElementIfcDistributionChamberElement2723     struct IfcDistributionChamberElement : IfcDistributionFlowElement, ObjectHelper<IfcDistributionChamberElement,1> { IfcDistributionChamberElement() : Object("IfcDistributionChamberElement") {}
2724 		Maybe< IfcDistributionChamberElementTypeEnum::Out > PredefinedType;
2725     };
2726 
2727     // C++ wrapper for IfcDistributionChamberElementType
IfcDistributionChamberElementTypeIfcDistributionChamberElementType2728     struct IfcDistributionChamberElementType : IfcDistributionFlowElementType, ObjectHelper<IfcDistributionChamberElementType,1> { IfcDistributionChamberElementType() : Object("IfcDistributionChamberElementType") {}
2729 		IfcDistributionChamberElementTypeEnum::Out PredefinedType;
2730     };
2731 
2732     // C++ wrapper for IfcDistributionSystem
IfcDistributionSystemIfcDistributionSystem2733     struct IfcDistributionSystem : IfcSystem, ObjectHelper<IfcDistributionSystem,2> { IfcDistributionSystem() : Object("IfcDistributionSystem") {}
2734 		Maybe< IfcLabel::Out > LongName;
2735 		Maybe< IfcDistributionSystemEnum::Out > PredefinedType;
2736     };
2737 
2738     // C++ wrapper for IfcDistributionCircuit
IfcDistributionCircuitIfcDistributionCircuit2739     struct IfcDistributionCircuit : IfcDistributionSystem, ObjectHelper<IfcDistributionCircuit,0> { IfcDistributionCircuit() : Object("IfcDistributionCircuit") {}
2740 
2741     };
2742 
2743     // C++ wrapper for IfcPort
IfcPortIfcPort2744     struct IfcPort : IfcProduct, ObjectHelper<IfcPort,0> { IfcPort() : Object("IfcPort") {}
2745 
2746     };
2747 
2748     // C++ wrapper for IfcDistributionPort
IfcDistributionPortIfcDistributionPort2749     struct IfcDistributionPort : IfcPort, ObjectHelper<IfcDistributionPort,3> { IfcDistributionPort() : Object("IfcDistributionPort") {}
2750 		Maybe< IfcFlowDirectionEnum::Out > FlowDirection;
2751 		Maybe< IfcDistributionPortTypeEnum::Out > PredefinedType;
2752 		Maybe< IfcDistributionSystemEnum::Out > SystemType;
2753     };
2754 
2755     // C++ wrapper for IfcDoor
IfcDoorIfcDoor2756     struct IfcDoor : IfcBuildingElement, ObjectHelper<IfcDoor,5> { IfcDoor() : Object("IfcDoor") {}
2757 		Maybe< IfcPositiveLengthMeasure::Out > OverallHeight;
2758 		Maybe< IfcPositiveLengthMeasure::Out > OverallWidth;
2759 		Maybe< IfcDoorTypeEnum::Out > PredefinedType;
2760 		Maybe< IfcDoorTypeOperationEnum::Out > OperationType;
2761 		Maybe< IfcLabel::Out > UserDefinedOperationType;
2762     };
2763 
2764     // C++ wrapper for IfcPropertySetDefinition
IfcPropertySetDefinitionIfcPropertySetDefinition2765     struct IfcPropertySetDefinition : IfcPropertyDefinition, ObjectHelper<IfcPropertySetDefinition,0> { IfcPropertySetDefinition() : Object("IfcPropertySetDefinition") {}
2766 
2767     };
2768 
2769     // C++ wrapper for IfcDoorStandardCase
IfcDoorStandardCaseIfcDoorStandardCase2770     struct IfcDoorStandardCase : IfcDoor, ObjectHelper<IfcDoorStandardCase,0> { IfcDoorStandardCase() : Object("IfcDoorStandardCase") {}
2771 
2772     };
2773 
2774     // C++ wrapper for IfcDoorStyle
IfcDoorStyleIfcDoorStyle2775     struct IfcDoorStyle : IfcTypeProduct, ObjectHelper<IfcDoorStyle,4> { IfcDoorStyle() : Object("IfcDoorStyle") {}
2776 		IfcDoorStyleOperationEnum::Out OperationType;
2777 		IfcDoorStyleConstructionEnum::Out ConstructionType;
2778 		IfcBoolean::Out ParameterTakesPrecedence;
2779 		IfcBoolean::Out Sizeable;
2780     };
2781 
2782     // C++ wrapper for IfcDoorType
IfcDoorTypeIfcDoorType2783     struct IfcDoorType : IfcBuildingElementType, ObjectHelper<IfcDoorType,4> { IfcDoorType() : Object("IfcDoorType") {}
2784 		IfcDoorTypeEnum::Out PredefinedType;
2785 		IfcDoorTypeOperationEnum::Out OperationType;
2786 		Maybe< IfcBoolean::Out > ParameterTakesPrecedence;
2787 		Maybe< IfcLabel::Out > UserDefinedOperationType;
2788     };
2789 
2790     // C++ wrapper for IfcDuctFitting
IfcDuctFittingIfcDuctFitting2791     struct IfcDuctFitting : IfcFlowFitting, ObjectHelper<IfcDuctFitting,1> { IfcDuctFitting() : Object("IfcDuctFitting") {}
2792 		Maybe< IfcDuctFittingTypeEnum::Out > PredefinedType;
2793     };
2794 
2795     // C++ wrapper for IfcDuctFittingType
IfcDuctFittingTypeIfcDuctFittingType2796     struct IfcDuctFittingType : IfcFlowFittingType, ObjectHelper<IfcDuctFittingType,1> { IfcDuctFittingType() : Object("IfcDuctFittingType") {}
2797 		IfcDuctFittingTypeEnum::Out PredefinedType;
2798     };
2799 
2800     // C++ wrapper for IfcDuctSegment
IfcDuctSegmentIfcDuctSegment2801     struct IfcDuctSegment : IfcFlowSegment, ObjectHelper<IfcDuctSegment,1> { IfcDuctSegment() : Object("IfcDuctSegment") {}
2802 		Maybe< IfcDuctSegmentTypeEnum::Out > PredefinedType;
2803     };
2804 
2805     // C++ wrapper for IfcDuctSegmentType
IfcDuctSegmentTypeIfcDuctSegmentType2806     struct IfcDuctSegmentType : IfcFlowSegmentType, ObjectHelper<IfcDuctSegmentType,1> { IfcDuctSegmentType() : Object("IfcDuctSegmentType") {}
2807 		IfcDuctSegmentTypeEnum::Out PredefinedType;
2808     };
2809 
2810     // C++ wrapper for IfcFlowTreatmentDevice
IfcFlowTreatmentDeviceIfcFlowTreatmentDevice2811     struct IfcFlowTreatmentDevice : IfcDistributionFlowElement, ObjectHelper<IfcFlowTreatmentDevice,0> { IfcFlowTreatmentDevice() : Object("IfcFlowTreatmentDevice") {}
2812 
2813     };
2814 
2815     // C++ wrapper for IfcDuctSilencer
IfcDuctSilencerIfcDuctSilencer2816     struct IfcDuctSilencer : IfcFlowTreatmentDevice, ObjectHelper<IfcDuctSilencer,1> { IfcDuctSilencer() : Object("IfcDuctSilencer") {}
2817 		Maybe< IfcDuctSilencerTypeEnum::Out > PredefinedType;
2818     };
2819 
2820     // C++ wrapper for IfcFlowTreatmentDeviceType
IfcFlowTreatmentDeviceTypeIfcFlowTreatmentDeviceType2821     struct IfcFlowTreatmentDeviceType : IfcDistributionFlowElementType, ObjectHelper<IfcFlowTreatmentDeviceType,0> { IfcFlowTreatmentDeviceType() : Object("IfcFlowTreatmentDeviceType") {}
2822 
2823     };
2824 
2825     // C++ wrapper for IfcDuctSilencerType
IfcDuctSilencerTypeIfcDuctSilencerType2826     struct IfcDuctSilencerType : IfcFlowTreatmentDeviceType, ObjectHelper<IfcDuctSilencerType,1> { IfcDuctSilencerType() : Object("IfcDuctSilencerType") {}
2827 		IfcDuctSilencerTypeEnum::Out PredefinedType;
2828     };
2829 
2830     // C++ wrapper for IfcEdge
IfcEdgeIfcEdge2831     struct IfcEdge : IfcTopologicalRepresentationItem, ObjectHelper<IfcEdge,2> { IfcEdge() : Object("IfcEdge") {}
2832 		Lazy< IfcVertex > EdgeStart;
2833 		Lazy< IfcVertex > EdgeEnd;
2834     };
2835 
2836     // C++ wrapper for IfcEdgeCurve
IfcEdgeCurveIfcEdgeCurve2837     struct IfcEdgeCurve : IfcEdge, ObjectHelper<IfcEdgeCurve,2> { IfcEdgeCurve() : Object("IfcEdgeCurve") {}
2838 		Lazy< IfcCurve > EdgeGeometry;
2839 		IfcBoolean::Out SameSense;
2840     };
2841 
2842     // C++ wrapper for IfcLoop
IfcLoopIfcLoop2843     struct IfcLoop : IfcTopologicalRepresentationItem, ObjectHelper<IfcLoop,0> { IfcLoop() : Object("IfcLoop") {}
2844 
2845     };
2846 
2847     // C++ wrapper for IfcEdgeLoop
IfcEdgeLoopIfcEdgeLoop2848     struct IfcEdgeLoop : IfcLoop, ObjectHelper<IfcEdgeLoop,1> { IfcEdgeLoop() : Object("IfcEdgeLoop") {}
2849 		ListOf< Lazy< IfcOrientedEdge >, 1, 0 > EdgeList;
2850     };
2851 
2852     // C++ wrapper for IfcElectricAppliance
IfcElectricApplianceIfcElectricAppliance2853     struct IfcElectricAppliance : IfcFlowTerminal, ObjectHelper<IfcElectricAppliance,1> { IfcElectricAppliance() : Object("IfcElectricAppliance") {}
2854 		Maybe< IfcElectricApplianceTypeEnum::Out > PredefinedType;
2855     };
2856 
2857     // C++ wrapper for IfcElectricApplianceType
IfcElectricApplianceTypeIfcElectricApplianceType2858     struct IfcElectricApplianceType : IfcFlowTerminalType, ObjectHelper<IfcElectricApplianceType,1> { IfcElectricApplianceType() : Object("IfcElectricApplianceType") {}
2859 		IfcElectricApplianceTypeEnum::Out PredefinedType;
2860     };
2861 
2862     // C++ wrapper for IfcElectricDistributionBoard
IfcElectricDistributionBoardIfcElectricDistributionBoard2863     struct IfcElectricDistributionBoard : IfcFlowController, ObjectHelper<IfcElectricDistributionBoard,1> { IfcElectricDistributionBoard() : Object("IfcElectricDistributionBoard") {}
2864 		Maybe< IfcElectricDistributionBoardTypeEnum::Out > PredefinedType;
2865     };
2866 
2867     // C++ wrapper for IfcElectricDistributionBoardType
IfcElectricDistributionBoardTypeIfcElectricDistributionBoardType2868     struct IfcElectricDistributionBoardType : IfcFlowControllerType, ObjectHelper<IfcElectricDistributionBoardType,1> { IfcElectricDistributionBoardType() : Object("IfcElectricDistributionBoardType") {}
2869 		IfcElectricDistributionBoardTypeEnum::Out PredefinedType;
2870     };
2871 
2872     // C++ wrapper for IfcFlowStorageDevice
IfcFlowStorageDeviceIfcFlowStorageDevice2873     struct IfcFlowStorageDevice : IfcDistributionFlowElement, ObjectHelper<IfcFlowStorageDevice,0> { IfcFlowStorageDevice() : Object("IfcFlowStorageDevice") {}
2874 
2875     };
2876 
2877     // C++ wrapper for IfcElectricFlowStorageDevice
IfcElectricFlowStorageDeviceIfcElectricFlowStorageDevice2878     struct IfcElectricFlowStorageDevice : IfcFlowStorageDevice, ObjectHelper<IfcElectricFlowStorageDevice,1> { IfcElectricFlowStorageDevice() : Object("IfcElectricFlowStorageDevice") {}
2879 		Maybe< IfcElectricFlowStorageDeviceTypeEnum::Out > PredefinedType;
2880     };
2881 
2882     // C++ wrapper for IfcFlowStorageDeviceType
IfcFlowStorageDeviceTypeIfcFlowStorageDeviceType2883     struct IfcFlowStorageDeviceType : IfcDistributionFlowElementType, ObjectHelper<IfcFlowStorageDeviceType,0> { IfcFlowStorageDeviceType() : Object("IfcFlowStorageDeviceType") {}
2884 
2885     };
2886 
2887     // C++ wrapper for IfcElectricFlowStorageDeviceType
IfcElectricFlowStorageDeviceTypeIfcElectricFlowStorageDeviceType2888     struct IfcElectricFlowStorageDeviceType : IfcFlowStorageDeviceType, ObjectHelper<IfcElectricFlowStorageDeviceType,1> { IfcElectricFlowStorageDeviceType() : Object("IfcElectricFlowStorageDeviceType") {}
2889 		IfcElectricFlowStorageDeviceTypeEnum::Out PredefinedType;
2890     };
2891 
2892     // C++ wrapper for IfcElectricGenerator
IfcElectricGeneratorIfcElectricGenerator2893     struct IfcElectricGenerator : IfcEnergyConversionDevice, ObjectHelper<IfcElectricGenerator,1> { IfcElectricGenerator() : Object("IfcElectricGenerator") {}
2894 		Maybe< IfcElectricGeneratorTypeEnum::Out > PredefinedType;
2895     };
2896 
2897     // C++ wrapper for IfcElectricGeneratorType
IfcElectricGeneratorTypeIfcElectricGeneratorType2898     struct IfcElectricGeneratorType : IfcEnergyConversionDeviceType, ObjectHelper<IfcElectricGeneratorType,1> { IfcElectricGeneratorType() : Object("IfcElectricGeneratorType") {}
2899 		IfcElectricGeneratorTypeEnum::Out PredefinedType;
2900     };
2901 
2902     // C++ wrapper for IfcElectricMotor
IfcElectricMotorIfcElectricMotor2903     struct IfcElectricMotor : IfcEnergyConversionDevice, ObjectHelper<IfcElectricMotor,1> { IfcElectricMotor() : Object("IfcElectricMotor") {}
2904 		Maybe< IfcElectricMotorTypeEnum::Out > PredefinedType;
2905     };
2906 
2907     // C++ wrapper for IfcElectricMotorType
IfcElectricMotorTypeIfcElectricMotorType2908     struct IfcElectricMotorType : IfcEnergyConversionDeviceType, ObjectHelper<IfcElectricMotorType,1> { IfcElectricMotorType() : Object("IfcElectricMotorType") {}
2909 		IfcElectricMotorTypeEnum::Out PredefinedType;
2910     };
2911 
2912     // C++ wrapper for IfcElectricTimeControl
IfcElectricTimeControlIfcElectricTimeControl2913     struct IfcElectricTimeControl : IfcFlowController, ObjectHelper<IfcElectricTimeControl,1> { IfcElectricTimeControl() : Object("IfcElectricTimeControl") {}
2914 		Maybe< IfcElectricTimeControlTypeEnum::Out > PredefinedType;
2915     };
2916 
2917     // C++ wrapper for IfcElectricTimeControlType
IfcElectricTimeControlTypeIfcElectricTimeControlType2918     struct IfcElectricTimeControlType : IfcFlowControllerType, ObjectHelper<IfcElectricTimeControlType,1> { IfcElectricTimeControlType() : Object("IfcElectricTimeControlType") {}
2919 		IfcElectricTimeControlTypeEnum::Out PredefinedType;
2920     };
2921 
2922     // C++ wrapper for IfcElementAssembly
IfcElementAssemblyIfcElementAssembly2923     struct IfcElementAssembly : IfcElement, ObjectHelper<IfcElementAssembly,2> { IfcElementAssembly() : Object("IfcElementAssembly") {}
2924 		Maybe< IfcAssemblyPlaceEnum::Out > AssemblyPlace;
2925 		Maybe< IfcElementAssemblyTypeEnum::Out > PredefinedType;
2926     };
2927 
2928     // C++ wrapper for IfcElementAssemblyType
IfcElementAssemblyTypeIfcElementAssemblyType2929     struct IfcElementAssemblyType : IfcElementType, ObjectHelper<IfcElementAssemblyType,1> { IfcElementAssemblyType() : Object("IfcElementAssemblyType") {}
2930 		IfcElementAssemblyTypeEnum::Out PredefinedType;
2931     };
2932 
2933     // C++ wrapper for IfcQuantitySet
IfcQuantitySetIfcQuantitySet2934     struct IfcQuantitySet : IfcPropertySetDefinition, ObjectHelper<IfcQuantitySet,0> { IfcQuantitySet() : Object("IfcQuantitySet") {}
2935 
2936     };
2937 
2938     // C++ wrapper for IfcElementQuantity
IfcElementQuantityIfcElementQuantity2939     struct IfcElementQuantity : IfcQuantitySet, ObjectHelper<IfcElementQuantity,2> { IfcElementQuantity() : Object("IfcElementQuantity") {}
2940 		Maybe< IfcLabel::Out > MethodOfMeasurement;
2941 		ListOf< Lazy< NotImplemented >, 1, 0 > Quantities;
2942     };
2943 
2944     // C++ wrapper for IfcEllipse
IfcEllipseIfcEllipse2945     struct IfcEllipse : IfcConic, ObjectHelper<IfcEllipse,2> { IfcEllipse() : Object("IfcEllipse") {}
2946 		IfcPositiveLengthMeasure::Out SemiAxis1;
2947 		IfcPositiveLengthMeasure::Out SemiAxis2;
2948     };
2949 
2950     // C++ wrapper for IfcEllipseProfileDef
IfcEllipseProfileDefIfcEllipseProfileDef2951     struct IfcEllipseProfileDef : IfcParameterizedProfileDef, ObjectHelper<IfcEllipseProfileDef,2> { IfcEllipseProfileDef() : Object("IfcEllipseProfileDef") {}
2952 		IfcPositiveLengthMeasure::Out SemiAxis1;
2953 		IfcPositiveLengthMeasure::Out SemiAxis2;
2954     };
2955 
2956     // C++ wrapper for IfcEngine
IfcEngineIfcEngine2957     struct IfcEngine : IfcEnergyConversionDevice, ObjectHelper<IfcEngine,1> { IfcEngine() : Object("IfcEngine") {}
2958 		Maybe< IfcEngineTypeEnum::Out > PredefinedType;
2959     };
2960 
2961     // C++ wrapper for IfcEngineType
IfcEngineTypeIfcEngineType2962     struct IfcEngineType : IfcEnergyConversionDeviceType, ObjectHelper<IfcEngineType,1> { IfcEngineType() : Object("IfcEngineType") {}
2963 		IfcEngineTypeEnum::Out PredefinedType;
2964     };
2965 
2966     // C++ wrapper for IfcEvaporativeCooler
IfcEvaporativeCoolerIfcEvaporativeCooler2967     struct IfcEvaporativeCooler : IfcEnergyConversionDevice, ObjectHelper<IfcEvaporativeCooler,1> { IfcEvaporativeCooler() : Object("IfcEvaporativeCooler") {}
2968 		Maybe< IfcEvaporativeCoolerTypeEnum::Out > PredefinedType;
2969     };
2970 
2971     // C++ wrapper for IfcEvaporativeCoolerType
IfcEvaporativeCoolerTypeIfcEvaporativeCoolerType2972     struct IfcEvaporativeCoolerType : IfcEnergyConversionDeviceType, ObjectHelper<IfcEvaporativeCoolerType,1> { IfcEvaporativeCoolerType() : Object("IfcEvaporativeCoolerType") {}
2973 		IfcEvaporativeCoolerTypeEnum::Out PredefinedType;
2974     };
2975 
2976     // C++ wrapper for IfcEvaporator
IfcEvaporatorIfcEvaporator2977     struct IfcEvaporator : IfcEnergyConversionDevice, ObjectHelper<IfcEvaporator,1> { IfcEvaporator() : Object("IfcEvaporator") {}
2978 		Maybe< IfcEvaporatorTypeEnum::Out > PredefinedType;
2979     };
2980 
2981     // C++ wrapper for IfcEvaporatorType
IfcEvaporatorTypeIfcEvaporatorType2982     struct IfcEvaporatorType : IfcEnergyConversionDeviceType, ObjectHelper<IfcEvaporatorType,1> { IfcEvaporatorType() : Object("IfcEvaporatorType") {}
2983 		IfcEvaporatorTypeEnum::Out PredefinedType;
2984     };
2985 
2986     // C++ wrapper for IfcProcess
IfcProcessIfcProcess2987     struct IfcProcess : IfcObject, ObjectHelper<IfcProcess,2> { IfcProcess() : Object("IfcProcess") {}
2988 		Maybe< IfcIdentifier::Out > Identification;
2989 		Maybe< IfcText::Out > LongDescription;
2990     };
2991 
2992     // C++ wrapper for IfcEvent
IfcEventIfcEvent2993     struct IfcEvent : IfcProcess, ObjectHelper<IfcEvent,4> { IfcEvent() : Object("IfcEvent") {}
2994 		Maybe< IfcEventTypeEnum::Out > PredefinedType;
2995 		Maybe< IfcEventTriggerTypeEnum::Out > EventTriggerType;
2996 		Maybe< IfcLabel::Out > UserDefinedEventTriggerType;
2997 		Maybe< Lazy< NotImplemented > > EventOccurenceTime;
2998     };
2999 
3000     // C++ wrapper for IfcTypeProcess
IfcTypeProcessIfcTypeProcess3001     struct IfcTypeProcess : IfcTypeObject, ObjectHelper<IfcTypeProcess,3> { IfcTypeProcess() : Object("IfcTypeProcess") {}
3002 		Maybe< IfcIdentifier::Out > Identification;
3003 		Maybe< IfcText::Out > LongDescription;
3004 		Maybe< IfcLabel::Out > ProcessType;
3005     };
3006 
3007     // C++ wrapper for IfcEventType
IfcEventTypeIfcEventType3008     struct IfcEventType : IfcTypeProcess, ObjectHelper<IfcEventType,3> { IfcEventType() : Object("IfcEventType") {}
3009 		IfcEventTypeEnum::Out PredefinedType;
3010 		IfcEventTriggerTypeEnum::Out EventTriggerType;
3011 		Maybe< IfcLabel::Out > UserDefinedEventTriggerType;
3012     };
3013 
3014     // C++ wrapper for IfcExternalSpatialStructureElement
IfcExternalSpatialStructureElementIfcExternalSpatialStructureElement3015     struct IfcExternalSpatialStructureElement : IfcSpatialElement, ObjectHelper<IfcExternalSpatialStructureElement,0> { IfcExternalSpatialStructureElement() : Object("IfcExternalSpatialStructureElement") {}
3016 
3017     };
3018 
3019     // C++ wrapper for IfcExternalSpatialElement
IfcExternalSpatialElementIfcExternalSpatialElement3020     struct IfcExternalSpatialElement : IfcExternalSpatialStructureElement, ObjectHelper<IfcExternalSpatialElement,1> { IfcExternalSpatialElement() : Object("IfcExternalSpatialElement") {}
3021 		Maybe< IfcExternalSpatialElementTypeEnum::Out > PredefinedType;
3022     };
3023 
3024     // C++ wrapper for IfcSweptAreaSolid
IfcSweptAreaSolidIfcSweptAreaSolid3025     struct IfcSweptAreaSolid : IfcSolidModel, ObjectHelper<IfcSweptAreaSolid,2> { IfcSweptAreaSolid() : Object("IfcSweptAreaSolid") {}
3026 		Lazy< IfcProfileDef > SweptArea;
3027 		Maybe< Lazy< IfcAxis2Placement3D > > Position;
3028     };
3029 
3030     // C++ wrapper for IfcExtrudedAreaSolid
IfcExtrudedAreaSolidIfcExtrudedAreaSolid3031     struct IfcExtrudedAreaSolid : IfcSweptAreaSolid, ObjectHelper<IfcExtrudedAreaSolid,2> { IfcExtrudedAreaSolid() : Object("IfcExtrudedAreaSolid") {}
3032 		Lazy< IfcDirection > ExtrudedDirection;
3033 		IfcPositiveLengthMeasure::Out Depth;
3034     };
3035 
3036     // C++ wrapper for IfcExtrudedAreaSolidTapered
IfcExtrudedAreaSolidTaperedIfcExtrudedAreaSolidTapered3037     struct IfcExtrudedAreaSolidTapered : IfcExtrudedAreaSolid, ObjectHelper<IfcExtrudedAreaSolidTapered,1> { IfcExtrudedAreaSolidTapered() : Object("IfcExtrudedAreaSolidTapered") {}
3038 		Lazy< IfcProfileDef > EndSweptArea;
3039     };
3040 
3041     // C++ wrapper for IfcFaceBasedSurfaceModel
IfcFaceBasedSurfaceModelIfcFaceBasedSurfaceModel3042     struct IfcFaceBasedSurfaceModel : IfcGeometricRepresentationItem, ObjectHelper<IfcFaceBasedSurfaceModel,1> { IfcFaceBasedSurfaceModel() : Object("IfcFaceBasedSurfaceModel") {}
3043 		ListOf< Lazy< IfcConnectedFaceSet >, 1, 0 > FbsmFaces;
3044     };
3045 
3046     // C++ wrapper for IfcFaceBound
IfcFaceBoundIfcFaceBound3047     struct IfcFaceBound : IfcTopologicalRepresentationItem, ObjectHelper<IfcFaceBound,2> { IfcFaceBound() : Object("IfcFaceBound") {}
3048 		Lazy< IfcLoop > Bound;
3049 		IfcBoolean::Out Orientation;
3050     };
3051 
3052     // C++ wrapper for IfcFaceOuterBound
IfcFaceOuterBoundIfcFaceOuterBound3053     struct IfcFaceOuterBound : IfcFaceBound, ObjectHelper<IfcFaceOuterBound,0> { IfcFaceOuterBound() : Object("IfcFaceOuterBound") {}
3054 
3055     };
3056 
3057     // C++ wrapper for IfcFacetedBrep
IfcFacetedBrepIfcFacetedBrep3058     struct IfcFacetedBrep : IfcManifoldSolidBrep, ObjectHelper<IfcFacetedBrep,0> { IfcFacetedBrep() : Object("IfcFacetedBrep") {}
3059 
3060     };
3061 
3062     // C++ wrapper for IfcFacetedBrepWithVoids
IfcFacetedBrepWithVoidsIfcFacetedBrepWithVoids3063     struct IfcFacetedBrepWithVoids : IfcFacetedBrep, ObjectHelper<IfcFacetedBrepWithVoids,1> { IfcFacetedBrepWithVoids() : Object("IfcFacetedBrepWithVoids") {}
3064 		ListOf< Lazy< IfcClosedShell >, 1, 0 > Voids;
3065     };
3066 
3067     // C++ wrapper for IfcFan
IfcFanIfcFan3068     struct IfcFan : IfcFlowMovingDevice, ObjectHelper<IfcFan,1> { IfcFan() : Object("IfcFan") {}
3069 		Maybe< IfcFanTypeEnum::Out > PredefinedType;
3070     };
3071 
3072     // C++ wrapper for IfcFanType
IfcFanTypeIfcFanType3073     struct IfcFanType : IfcFlowMovingDeviceType, ObjectHelper<IfcFanType,1> { IfcFanType() : Object("IfcFanType") {}
3074 		IfcFanTypeEnum::Out PredefinedType;
3075     };
3076 
3077     // C++ wrapper for IfcFastener
IfcFastenerIfcFastener3078     struct IfcFastener : IfcElementComponent, ObjectHelper<IfcFastener,1> { IfcFastener() : Object("IfcFastener") {}
3079 		Maybe< IfcFastenerTypeEnum::Out > PredefinedType;
3080     };
3081 
3082     // C++ wrapper for IfcFastenerType
IfcFastenerTypeIfcFastenerType3083     struct IfcFastenerType : IfcElementComponentType, ObjectHelper<IfcFastenerType,1> { IfcFastenerType() : Object("IfcFastenerType") {}
3084 		IfcFastenerTypeEnum::Out PredefinedType;
3085     };
3086 
3087     // C++ wrapper for IfcFeatureElement
IfcFeatureElementIfcFeatureElement3088     struct IfcFeatureElement : IfcElement, ObjectHelper<IfcFeatureElement,0> { IfcFeatureElement() : Object("IfcFeatureElement") {}
3089 
3090     };
3091 
3092     // C++ wrapper for IfcFeatureElementAddition
IfcFeatureElementAdditionIfcFeatureElementAddition3093     struct IfcFeatureElementAddition : IfcFeatureElement, ObjectHelper<IfcFeatureElementAddition,0> { IfcFeatureElementAddition() : Object("IfcFeatureElementAddition") {}
3094 
3095     };
3096 
3097     // C++ wrapper for IfcFeatureElementSubtraction
IfcFeatureElementSubtractionIfcFeatureElementSubtraction3098     struct IfcFeatureElementSubtraction : IfcFeatureElement, ObjectHelper<IfcFeatureElementSubtraction,0> { IfcFeatureElementSubtraction() : Object("IfcFeatureElementSubtraction") {}
3099 
3100     };
3101 
3102     // C++ wrapper for IfcFillAreaStyleHatching
IfcFillAreaStyleHatchingIfcFillAreaStyleHatching3103     struct IfcFillAreaStyleHatching : IfcGeometricRepresentationItem, ObjectHelper<IfcFillAreaStyleHatching,5> { IfcFillAreaStyleHatching() : Object("IfcFillAreaStyleHatching") {}
3104 		Lazy< NotImplemented > HatchLineAppearance;
3105 		IfcHatchLineDistanceSelect::Out StartOfNextHatchLine;
3106 		Maybe< Lazy< IfcCartesianPoint > > PointOfReferenceHatchLine;
3107 		Maybe< Lazy< IfcCartesianPoint > > PatternStart;
3108 		IfcPlaneAngleMeasure::Out HatchLineAngle;
3109     };
3110 
3111     // C++ wrapper for IfcFillAreaStyleTiles
IfcFillAreaStyleTilesIfcFillAreaStyleTiles3112     struct IfcFillAreaStyleTiles : IfcGeometricRepresentationItem, ObjectHelper<IfcFillAreaStyleTiles,3> { IfcFillAreaStyleTiles() : Object("IfcFillAreaStyleTiles") {}
3113 		ListOf< Lazy< IfcVector >, 2, 2 > TilingPattern;
3114 		ListOf< Lazy< IfcStyledItem >, 1, 0 > Tiles;
3115 		IfcPositiveRatioMeasure::Out TilingScale;
3116     };
3117 
3118     // C++ wrapper for IfcFilter
IfcFilterIfcFilter3119     struct IfcFilter : IfcFlowTreatmentDevice, ObjectHelper<IfcFilter,1> { IfcFilter() : Object("IfcFilter") {}
3120 		Maybe< IfcFilterTypeEnum::Out > PredefinedType;
3121     };
3122 
3123     // C++ wrapper for IfcFilterType
IfcFilterTypeIfcFilterType3124     struct IfcFilterType : IfcFlowTreatmentDeviceType, ObjectHelper<IfcFilterType,1> { IfcFilterType() : Object("IfcFilterType") {}
3125 		IfcFilterTypeEnum::Out PredefinedType;
3126     };
3127 
3128     // C++ wrapper for IfcFireSuppressionTerminal
IfcFireSuppressionTerminalIfcFireSuppressionTerminal3129     struct IfcFireSuppressionTerminal : IfcFlowTerminal, ObjectHelper<IfcFireSuppressionTerminal,1> { IfcFireSuppressionTerminal() : Object("IfcFireSuppressionTerminal") {}
3130 		Maybe< IfcFireSuppressionTerminalTypeEnum::Out > PredefinedType;
3131     };
3132 
3133     // C++ wrapper for IfcFireSuppressionTerminalType
IfcFireSuppressionTerminalTypeIfcFireSuppressionTerminalType3134     struct IfcFireSuppressionTerminalType : IfcFlowTerminalType, ObjectHelper<IfcFireSuppressionTerminalType,1> { IfcFireSuppressionTerminalType() : Object("IfcFireSuppressionTerminalType") {}
3135 		IfcFireSuppressionTerminalTypeEnum::Out PredefinedType;
3136     };
3137 
3138     // C++ wrapper for IfcFixedReferenceSweptAreaSolid
IfcFixedReferenceSweptAreaSolidIfcFixedReferenceSweptAreaSolid3139     struct IfcFixedReferenceSweptAreaSolid : IfcSweptAreaSolid, ObjectHelper<IfcFixedReferenceSweptAreaSolid,4> { IfcFixedReferenceSweptAreaSolid() : Object("IfcFixedReferenceSweptAreaSolid") {}
3140 		Lazy< IfcCurve > Directrix;
3141 		Maybe< IfcParameterValue::Out > StartParam;
3142 		Maybe< IfcParameterValue::Out > EndParam;
3143 		Lazy< IfcDirection > FixedReference;
3144     };
3145 
3146     // C++ wrapper for IfcFlowInstrument
IfcFlowInstrumentIfcFlowInstrument3147     struct IfcFlowInstrument : IfcDistributionControlElement, ObjectHelper<IfcFlowInstrument,1> { IfcFlowInstrument() : Object("IfcFlowInstrument") {}
3148 		Maybe< IfcFlowInstrumentTypeEnum::Out > PredefinedType;
3149     };
3150 
3151     // C++ wrapper for IfcFlowInstrumentType
IfcFlowInstrumentTypeIfcFlowInstrumentType3152     struct IfcFlowInstrumentType : IfcDistributionControlElementType, ObjectHelper<IfcFlowInstrumentType,1> { IfcFlowInstrumentType() : Object("IfcFlowInstrumentType") {}
3153 		IfcFlowInstrumentTypeEnum::Out PredefinedType;
3154     };
3155 
3156     // C++ wrapper for IfcFlowMeter
IfcFlowMeterIfcFlowMeter3157     struct IfcFlowMeter : IfcFlowController, ObjectHelper<IfcFlowMeter,1> { IfcFlowMeter() : Object("IfcFlowMeter") {}
3158 		Maybe< IfcFlowMeterTypeEnum::Out > PredefinedType;
3159     };
3160 
3161     // C++ wrapper for IfcFlowMeterType
IfcFlowMeterTypeIfcFlowMeterType3162     struct IfcFlowMeterType : IfcFlowControllerType, ObjectHelper<IfcFlowMeterType,1> { IfcFlowMeterType() : Object("IfcFlowMeterType") {}
3163 		IfcFlowMeterTypeEnum::Out PredefinedType;
3164     };
3165 
3166     // C++ wrapper for IfcFooting
IfcFootingIfcFooting3167     struct IfcFooting : IfcBuildingElement, ObjectHelper<IfcFooting,1> { IfcFooting() : Object("IfcFooting") {}
3168 		Maybe< IfcFootingTypeEnum::Out > PredefinedType;
3169     };
3170 
3171     // C++ wrapper for IfcFootingType
IfcFootingTypeIfcFootingType3172     struct IfcFootingType : IfcBuildingElementType, ObjectHelper<IfcFootingType,1> { IfcFootingType() : Object("IfcFootingType") {}
3173 		IfcFootingTypeEnum::Out PredefinedType;
3174     };
3175 
3176     // C++ wrapper for IfcFurnishingElement
IfcFurnishingElementIfcFurnishingElement3177     struct IfcFurnishingElement : IfcElement, ObjectHelper<IfcFurnishingElement,0> { IfcFurnishingElement() : Object("IfcFurnishingElement") {}
3178 
3179     };
3180 
3181     // C++ wrapper for IfcFurnishingElementType
IfcFurnishingElementTypeIfcFurnishingElementType3182     struct IfcFurnishingElementType : IfcElementType, ObjectHelper<IfcFurnishingElementType,0> { IfcFurnishingElementType() : Object("IfcFurnishingElementType") {}
3183 
3184     };
3185 
3186     // C++ wrapper for IfcFurniture
IfcFurnitureIfcFurniture3187     struct IfcFurniture : IfcFurnishingElement, ObjectHelper<IfcFurniture,1> { IfcFurniture() : Object("IfcFurniture") {}
3188 		Maybe< IfcFurnitureTypeEnum::Out > PredefinedType;
3189     };
3190 
3191     // C++ wrapper for IfcFurnitureType
IfcFurnitureTypeIfcFurnitureType3192     struct IfcFurnitureType : IfcFurnishingElementType, ObjectHelper<IfcFurnitureType,2> { IfcFurnitureType() : Object("IfcFurnitureType") {}
3193 		IfcAssemblyPlaceEnum::Out AssemblyPlace;
3194 		Maybe< IfcFurnitureTypeEnum::Out > PredefinedType;
3195     };
3196 
3197     // C++ wrapper for IfcGeographicElement
IfcGeographicElementIfcGeographicElement3198     struct IfcGeographicElement : IfcElement, ObjectHelper<IfcGeographicElement,1> { IfcGeographicElement() : Object("IfcGeographicElement") {}
3199 		Maybe< IfcGeographicElementTypeEnum::Out > PredefinedType;
3200     };
3201 
3202     // C++ wrapper for IfcGeographicElementType
IfcGeographicElementTypeIfcGeographicElementType3203     struct IfcGeographicElementType : IfcElementType, ObjectHelper<IfcGeographicElementType,1> { IfcGeographicElementType() : Object("IfcGeographicElementType") {}
3204 		IfcGeographicElementTypeEnum::Out PredefinedType;
3205     };
3206 
3207     // C++ wrapper for IfcGeometricSet
IfcGeometricSetIfcGeometricSet3208     struct IfcGeometricSet : IfcGeometricRepresentationItem, ObjectHelper<IfcGeometricSet,1> { IfcGeometricSet() : Object("IfcGeometricSet") {}
3209 		ListOf< IfcGeometricSetSelect, 1, 0 >::Out Elements;
3210     };
3211 
3212     // C++ wrapper for IfcGeometricCurveSet
IfcGeometricCurveSetIfcGeometricCurveSet3213     struct IfcGeometricCurveSet : IfcGeometricSet, ObjectHelper<IfcGeometricCurveSet,0> { IfcGeometricCurveSet() : Object("IfcGeometricCurveSet") {}
3214 
3215     };
3216 
3217     // C++ wrapper for IfcRepresentationContext
IfcRepresentationContextIfcRepresentationContext3218     struct IfcRepresentationContext :  ObjectHelper<IfcRepresentationContext,2> { IfcRepresentationContext() : Object("IfcRepresentationContext") {}
3219 		Maybe< IfcLabel::Out > ContextIdentifier;
3220 		Maybe< IfcLabel::Out > ContextType;
3221     };
3222 
3223     // C++ wrapper for IfcGeometricRepresentationContext
IfcGeometricRepresentationContextIfcGeometricRepresentationContext3224     struct IfcGeometricRepresentationContext : IfcRepresentationContext, ObjectHelper<IfcGeometricRepresentationContext,4> { IfcGeometricRepresentationContext() : Object("IfcGeometricRepresentationContext") {}
3225 		IfcDimensionCount::Out CoordinateSpaceDimension;
3226 		Maybe< IfcReal::Out > Precision;
3227 		IfcAxis2Placement::Out WorldCoordinateSystem;
3228 		Maybe< Lazy< IfcDirection > > TrueNorth;
3229     };
3230 
3231     // C++ wrapper for IfcGeometricRepresentationSubContext
IfcGeometricRepresentationSubContextIfcGeometricRepresentationSubContext3232     struct IfcGeometricRepresentationSubContext : IfcGeometricRepresentationContext, ObjectHelper<IfcGeometricRepresentationSubContext,4> { IfcGeometricRepresentationSubContext() : Object("IfcGeometricRepresentationSubContext") {}
3233 		Lazy< IfcGeometricRepresentationContext > ParentContext;
3234 		Maybe< IfcPositiveRatioMeasure::Out > TargetScale;
3235 		IfcGeometricProjectionEnum::Out TargetView;
3236 		Maybe< IfcLabel::Out > UserDefinedTargetView;
3237     };
3238 
3239     // C++ wrapper for IfcGrid
IfcGridIfcGrid3240     struct IfcGrid : IfcProduct, ObjectHelper<IfcGrid,4> { IfcGrid() : Object("IfcGrid") {}
3241 		ListOf< Lazy< NotImplemented >, 1, 0 > UAxes;
3242 		ListOf< Lazy< NotImplemented >, 1, 0 > VAxes;
3243 		Maybe< ListOf< Lazy< NotImplemented >, 1, 0 > > WAxes;
3244 		Maybe< IfcGridTypeEnum::Out > PredefinedType;
3245     };
3246 
3247     // C++ wrapper for IfcObjectPlacement
IfcObjectPlacementIfcObjectPlacement3248     struct IfcObjectPlacement :  ObjectHelper<IfcObjectPlacement,0> { IfcObjectPlacement() : Object("IfcObjectPlacement") {}
3249 
3250     };
3251 
3252     // C++ wrapper for IfcGridPlacement
IfcGridPlacementIfcGridPlacement3253     struct IfcGridPlacement : IfcObjectPlacement, ObjectHelper<IfcGridPlacement,2> { IfcGridPlacement() : Object("IfcGridPlacement") {}
3254 		Lazy< NotImplemented > PlacementLocation;
3255 		Maybe< IfcGridPlacementDirectionSelect::Out > PlacementRefDirection;
3256     };
3257 
3258     // C++ wrapper for IfcHeatExchanger
IfcHeatExchangerIfcHeatExchanger3259     struct IfcHeatExchanger : IfcEnergyConversionDevice, ObjectHelper<IfcHeatExchanger,1> { IfcHeatExchanger() : Object("IfcHeatExchanger") {}
3260 		Maybe< IfcHeatExchangerTypeEnum::Out > PredefinedType;
3261     };
3262 
3263     // C++ wrapper for IfcHeatExchangerType
IfcHeatExchangerTypeIfcHeatExchangerType3264     struct IfcHeatExchangerType : IfcEnergyConversionDeviceType, ObjectHelper<IfcHeatExchangerType,1> { IfcHeatExchangerType() : Object("IfcHeatExchangerType") {}
3265 		IfcHeatExchangerTypeEnum::Out PredefinedType;
3266     };
3267 
3268     // C++ wrapper for IfcHumidifier
IfcHumidifierIfcHumidifier3269     struct IfcHumidifier : IfcEnergyConversionDevice, ObjectHelper<IfcHumidifier,1> { IfcHumidifier() : Object("IfcHumidifier") {}
3270 		Maybe< IfcHumidifierTypeEnum::Out > PredefinedType;
3271     };
3272 
3273     // C++ wrapper for IfcHumidifierType
IfcHumidifierTypeIfcHumidifierType3274     struct IfcHumidifierType : IfcEnergyConversionDeviceType, ObjectHelper<IfcHumidifierType,1> { IfcHumidifierType() : Object("IfcHumidifierType") {}
3275 		IfcHumidifierTypeEnum::Out PredefinedType;
3276     };
3277 
3278     // C++ wrapper for IfcIShapeProfileDef
IfcIShapeProfileDefIfcIShapeProfileDef3279     struct IfcIShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper<IfcIShapeProfileDef,7> { IfcIShapeProfileDef() : Object("IfcIShapeProfileDef") {}
3280 		IfcPositiveLengthMeasure::Out OverallWidth;
3281 		IfcPositiveLengthMeasure::Out OverallDepth;
3282 		IfcPositiveLengthMeasure::Out WebThickness;
3283 		IfcPositiveLengthMeasure::Out FlangeThickness;
3284 		Maybe< IfcNonNegativeLengthMeasure::Out > FilletRadius;
3285 		Maybe< IfcNonNegativeLengthMeasure::Out > FlangeEdgeRadius;
3286 		Maybe< IfcPlaneAngleMeasure::Out > FlangeSlope;
3287     };
3288 
3289     // C++ wrapper for IfcIndexedPolyCurve
IfcIndexedPolyCurveIfcIndexedPolyCurve3290     struct IfcIndexedPolyCurve : IfcBoundedCurve, ObjectHelper<IfcIndexedPolyCurve,3> { IfcIndexedPolyCurve() : Object("IfcIndexedPolyCurve") {}
3291 		Lazy< IfcCartesianPointList > Points;
3292 		Maybe< ListOf< IfcSegmentIndexSelect, 1, 0 >::Out > Segments;
3293 		Maybe< IfcBoolean::Out > SelfIntersect;
3294     };
3295 
3296     // C++ wrapper for IfcTessellatedItem
IfcTessellatedItemIfcTessellatedItem3297     struct IfcTessellatedItem : IfcGeometricRepresentationItem, ObjectHelper<IfcTessellatedItem,0> { IfcTessellatedItem() : Object("IfcTessellatedItem") {}
3298 
3299     };
3300 
3301     // C++ wrapper for IfcIndexedPolygonalFace
IfcIndexedPolygonalFaceIfcIndexedPolygonalFace3302     struct IfcIndexedPolygonalFace : IfcTessellatedItem, ObjectHelper<IfcIndexedPolygonalFace,1> { IfcIndexedPolygonalFace() : Object("IfcIndexedPolygonalFace") {}
3303 		ListOf< IfcPositiveInteger, 3, 0 >::Out CoordIndex;
3304     };
3305 
3306     // C++ wrapper for IfcIndexedPolygonalFaceWithVoids
IfcIndexedPolygonalFaceWithVoidsIfcIndexedPolygonalFaceWithVoids3307     struct IfcIndexedPolygonalFaceWithVoids : IfcIndexedPolygonalFace, ObjectHelper<IfcIndexedPolygonalFaceWithVoids,0> { IfcIndexedPolygonalFaceWithVoids() : Object("IfcIndexedPolygonalFaceWithVoids") {}
3308 
3309     };
3310 
3311     // C++ wrapper for IfcInterceptor
IfcInterceptorIfcInterceptor3312     struct IfcInterceptor : IfcFlowTreatmentDevice, ObjectHelper<IfcInterceptor,1> { IfcInterceptor() : Object("IfcInterceptor") {}
3313 		Maybe< IfcInterceptorTypeEnum::Out > PredefinedType;
3314     };
3315 
3316     // C++ wrapper for IfcInterceptorType
IfcInterceptorTypeIfcInterceptorType3317     struct IfcInterceptorType : IfcFlowTreatmentDeviceType, ObjectHelper<IfcInterceptorType,1> { IfcInterceptorType() : Object("IfcInterceptorType") {}
3318 		IfcInterceptorTypeEnum::Out PredefinedType;
3319     };
3320 
3321     // C++ wrapper for IfcSurfaceCurve
IfcSurfaceCurveIfcSurfaceCurve3322     struct IfcSurfaceCurve : IfcCurve, ObjectHelper<IfcSurfaceCurve,3> { IfcSurfaceCurve() : Object("IfcSurfaceCurve") {}
3323 		Lazy< IfcCurve > Curve3D;
3324 		ListOf< Lazy< IfcPcurve >, 1, 2 > AssociatedGeometry;
3325 		IfcPreferredSurfaceCurveRepresentation::Out MasterRepresentation;
3326     };
3327 
3328     // C++ wrapper for IfcIntersectionCurve
IfcIntersectionCurveIfcIntersectionCurve3329     struct IfcIntersectionCurve : IfcSurfaceCurve, ObjectHelper<IfcIntersectionCurve,0> { IfcIntersectionCurve() : Object("IfcIntersectionCurve") {}
3330 
3331     };
3332 
3333     // C++ wrapper for IfcInventory
IfcInventoryIfcInventory3334     struct IfcInventory : IfcGroup, ObjectHelper<IfcInventory,6> { IfcInventory() : Object("IfcInventory") {}
3335 		Maybe< IfcInventoryTypeEnum::Out > PredefinedType;
3336 		Maybe< IfcActorSelect::Out > Jurisdiction;
3337 		Maybe< ListOf< Lazy< NotImplemented >, 1, 0 > > ResponsiblePersons;
3338 		Maybe< IfcDate::Out > LastUpdateDate;
3339 		Maybe< Lazy< NotImplemented > > CurrentValue;
3340 		Maybe< Lazy< NotImplemented > > OriginalValue;
3341     };
3342 
3343     // C++ wrapper for IfcJunctionBox
IfcJunctionBoxIfcJunctionBox3344     struct IfcJunctionBox : IfcFlowFitting, ObjectHelper<IfcJunctionBox,1> { IfcJunctionBox() : Object("IfcJunctionBox") {}
3345 		Maybe< IfcJunctionBoxTypeEnum::Out > PredefinedType;
3346     };
3347 
3348     // C++ wrapper for IfcJunctionBoxType
IfcJunctionBoxTypeIfcJunctionBoxType3349     struct IfcJunctionBoxType : IfcFlowFittingType, ObjectHelper<IfcJunctionBoxType,1> { IfcJunctionBoxType() : Object("IfcJunctionBoxType") {}
3350 		IfcJunctionBoxTypeEnum::Out PredefinedType;
3351     };
3352 
3353     // C++ wrapper for IfcLShapeProfileDef
IfcLShapeProfileDefIfcLShapeProfileDef3354     struct IfcLShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper<IfcLShapeProfileDef,6> { IfcLShapeProfileDef() : Object("IfcLShapeProfileDef") {}
3355 		IfcPositiveLengthMeasure::Out Depth;
3356 		Maybe< IfcPositiveLengthMeasure::Out > Width;
3357 		IfcPositiveLengthMeasure::Out Thickness;
3358 		Maybe< IfcNonNegativeLengthMeasure::Out > FilletRadius;
3359 		Maybe< IfcNonNegativeLengthMeasure::Out > EdgeRadius;
3360 		Maybe< IfcPlaneAngleMeasure::Out > LegSlope;
3361     };
3362 
3363     // C++ wrapper for IfcLaborResource
IfcLaborResourceIfcLaborResource3364     struct IfcLaborResource : IfcConstructionResource, ObjectHelper<IfcLaborResource,1> { IfcLaborResource() : Object("IfcLaborResource") {}
3365 		Maybe< IfcLaborResourceTypeEnum::Out > PredefinedType;
3366     };
3367 
3368     // C++ wrapper for IfcLaborResourceType
IfcLaborResourceTypeIfcLaborResourceType3369     struct IfcLaborResourceType : IfcConstructionResourceType, ObjectHelper<IfcLaborResourceType,1> { IfcLaborResourceType() : Object("IfcLaborResourceType") {}
3370 		IfcLaborResourceTypeEnum::Out PredefinedType;
3371     };
3372 
3373     // C++ wrapper for IfcLamp
IfcLampIfcLamp3374     struct IfcLamp : IfcFlowTerminal, ObjectHelper<IfcLamp,1> { IfcLamp() : Object("IfcLamp") {}
3375 		Maybe< IfcLampTypeEnum::Out > PredefinedType;
3376     };
3377 
3378     // C++ wrapper for IfcLampType
IfcLampTypeIfcLampType3379     struct IfcLampType : IfcFlowTerminalType, ObjectHelper<IfcLampType,1> { IfcLampType() : Object("IfcLampType") {}
3380 		IfcLampTypeEnum::Out PredefinedType;
3381     };
3382 
3383     // C++ wrapper for IfcLightFixture
IfcLightFixtureIfcLightFixture3384     struct IfcLightFixture : IfcFlowTerminal, ObjectHelper<IfcLightFixture,1> { IfcLightFixture() : Object("IfcLightFixture") {}
3385 		Maybe< IfcLightFixtureTypeEnum::Out > PredefinedType;
3386     };
3387 
3388     // C++ wrapper for IfcLightFixtureType
IfcLightFixtureTypeIfcLightFixtureType3389     struct IfcLightFixtureType : IfcFlowTerminalType, ObjectHelper<IfcLightFixtureType,1> { IfcLightFixtureType() : Object("IfcLightFixtureType") {}
3390 		IfcLightFixtureTypeEnum::Out PredefinedType;
3391     };
3392 
3393     // C++ wrapper for IfcLightSource
IfcLightSourceIfcLightSource3394     struct IfcLightSource : IfcGeometricRepresentationItem, ObjectHelper<IfcLightSource,4> { IfcLightSource() : Object("IfcLightSource") {}
3395 		Maybe< IfcLabel::Out > Name;
3396 		Lazy< IfcColourRgb > LightColour;
3397 		Maybe< IfcNormalisedRatioMeasure::Out > AmbientIntensity;
3398 		Maybe< IfcNormalisedRatioMeasure::Out > Intensity;
3399     };
3400 
3401     // C++ wrapper for IfcLightSourceAmbient
IfcLightSourceAmbientIfcLightSourceAmbient3402     struct IfcLightSourceAmbient : IfcLightSource, ObjectHelper<IfcLightSourceAmbient,0> { IfcLightSourceAmbient() : Object("IfcLightSourceAmbient") {}
3403 
3404     };
3405 
3406     // C++ wrapper for IfcLightSourceDirectional
IfcLightSourceDirectionalIfcLightSourceDirectional3407     struct IfcLightSourceDirectional : IfcLightSource, ObjectHelper<IfcLightSourceDirectional,1> { IfcLightSourceDirectional() : Object("IfcLightSourceDirectional") {}
3408 		Lazy< IfcDirection > Orientation;
3409     };
3410 
3411     // C++ wrapper for IfcLightSourceGoniometric
IfcLightSourceGoniometricIfcLightSourceGoniometric3412     struct IfcLightSourceGoniometric : IfcLightSource, ObjectHelper<IfcLightSourceGoniometric,6> { IfcLightSourceGoniometric() : Object("IfcLightSourceGoniometric") {}
3413 		Lazy< IfcAxis2Placement3D > Position;
3414 		Maybe< Lazy< IfcColourRgb > > ColourAppearance;
3415 		IfcThermodynamicTemperatureMeasure::Out ColourTemperature;
3416 		IfcLuminousFluxMeasure::Out LuminousFlux;
3417 		IfcLightEmissionSourceEnum::Out LightEmissionSource;
3418 		IfcLightDistributionDataSourceSelect::Out LightDistributionDataSource;
3419     };
3420 
3421     // C++ wrapper for IfcLightSourcePositional
IfcLightSourcePositionalIfcLightSourcePositional3422     struct IfcLightSourcePositional : IfcLightSource, ObjectHelper<IfcLightSourcePositional,5> { IfcLightSourcePositional() : Object("IfcLightSourcePositional") {}
3423 		Lazy< IfcCartesianPoint > Position;
3424 		IfcPositiveLengthMeasure::Out Radius;
3425 		IfcReal::Out ConstantAttenuation;
3426 		IfcReal::Out DistanceAttenuation;
3427 		IfcReal::Out QuadricAttenuation;
3428     };
3429 
3430     // C++ wrapper for IfcLightSourceSpot
IfcLightSourceSpotIfcLightSourceSpot3431     struct IfcLightSourceSpot : IfcLightSourcePositional, ObjectHelper<IfcLightSourceSpot,4> { IfcLightSourceSpot() : Object("IfcLightSourceSpot") {}
3432 		Lazy< IfcDirection > Orientation;
3433 		Maybe< IfcReal::Out > ConcentrationExponent;
3434 		IfcPositivePlaneAngleMeasure::Out SpreadAngle;
3435 		IfcPositivePlaneAngleMeasure::Out BeamWidthAngle;
3436     };
3437 
3438     // C++ wrapper for IfcLine
IfcLineIfcLine3439     struct IfcLine : IfcCurve, ObjectHelper<IfcLine,2> { IfcLine() : Object("IfcLine") {}
3440 		Lazy< IfcCartesianPoint > Pnt;
3441 		Lazy< IfcVector > Dir;
3442     };
3443 
3444     // C++ wrapper for IfcLocalPlacement
IfcLocalPlacementIfcLocalPlacement3445     struct IfcLocalPlacement : IfcObjectPlacement, ObjectHelper<IfcLocalPlacement,2> { IfcLocalPlacement() : Object("IfcLocalPlacement") {}
3446 		Maybe< Lazy< IfcObjectPlacement > > PlacementRelTo;
3447 		IfcAxis2Placement::Out RelativePlacement;
3448     };
3449 
3450     // C++ wrapper for IfcMappedItem
IfcMappedItemIfcMappedItem3451     struct IfcMappedItem : IfcRepresentationItem, ObjectHelper<IfcMappedItem,2> { IfcMappedItem() : Object("IfcMappedItem") {}
3452 		Lazy< IfcRepresentationMap > MappingSource;
3453 		Lazy< IfcCartesianTransformationOperator > MappingTarget;
3454     };
3455 
3456     // C++ wrapper for IfcProductRepresentation
IfcProductRepresentationIfcProductRepresentation3457     struct IfcProductRepresentation :  ObjectHelper<IfcProductRepresentation,3> { IfcProductRepresentation() : Object("IfcProductRepresentation") {}
3458 		Maybe< IfcLabel::Out > Name;
3459 		Maybe< IfcText::Out > Description;
3460 		ListOf< Lazy< IfcRepresentation >, 1, 0 > Representations;
3461     };
3462 
3463     // C++ wrapper for IfcMaterialDefinitionRepresentation
IfcMaterialDefinitionRepresentationIfcMaterialDefinitionRepresentation3464     struct IfcMaterialDefinitionRepresentation : IfcProductRepresentation, ObjectHelper<IfcMaterialDefinitionRepresentation,1> { IfcMaterialDefinitionRepresentation() : Object("IfcMaterialDefinitionRepresentation") {}
3465 		Lazy< NotImplemented > RepresentedMaterial;
3466     };
3467 
3468     // C++ wrapper for IfcMeasureWithUnit
IfcMeasureWithUnitIfcMeasureWithUnit3469     struct IfcMeasureWithUnit :  ObjectHelper<IfcMeasureWithUnit,2> { IfcMeasureWithUnit() : Object("IfcMeasureWithUnit") {}
3470 		IfcValue::Out ValueComponent;
3471 		IfcUnit::Out UnitComponent;
3472     };
3473 
3474     // C++ wrapper for IfcMechanicalFastener
IfcMechanicalFastenerIfcMechanicalFastener3475     struct IfcMechanicalFastener : IfcElementComponent, ObjectHelper<IfcMechanicalFastener,3> { IfcMechanicalFastener() : Object("IfcMechanicalFastener") {}
3476 		Maybe< IfcPositiveLengthMeasure::Out > NominalDiameter;
3477 		Maybe< IfcPositiveLengthMeasure::Out > NominalLength;
3478 		Maybe< IfcMechanicalFastenerTypeEnum::Out > PredefinedType;
3479     };
3480 
3481     // C++ wrapper for IfcMechanicalFastenerType
IfcMechanicalFastenerTypeIfcMechanicalFastenerType3482     struct IfcMechanicalFastenerType : IfcElementComponentType, ObjectHelper<IfcMechanicalFastenerType,3> { IfcMechanicalFastenerType() : Object("IfcMechanicalFastenerType") {}
3483 		IfcMechanicalFastenerTypeEnum::Out PredefinedType;
3484 		Maybe< IfcPositiveLengthMeasure::Out > NominalDiameter;
3485 		Maybe< IfcPositiveLengthMeasure::Out > NominalLength;
3486     };
3487 
3488     // C++ wrapper for IfcMedicalDevice
IfcMedicalDeviceIfcMedicalDevice3489     struct IfcMedicalDevice : IfcFlowTerminal, ObjectHelper<IfcMedicalDevice,1> { IfcMedicalDevice() : Object("IfcMedicalDevice") {}
3490 		Maybe< IfcMedicalDeviceTypeEnum::Out > PredefinedType;
3491     };
3492 
3493     // C++ wrapper for IfcMedicalDeviceType
IfcMedicalDeviceTypeIfcMedicalDeviceType3494     struct IfcMedicalDeviceType : IfcFlowTerminalType, ObjectHelper<IfcMedicalDeviceType,1> { IfcMedicalDeviceType() : Object("IfcMedicalDeviceType") {}
3495 		IfcMedicalDeviceTypeEnum::Out PredefinedType;
3496     };
3497 
3498     // C++ wrapper for IfcMember
IfcMemberIfcMember3499     struct IfcMember : IfcBuildingElement, ObjectHelper<IfcMember,1> { IfcMember() : Object("IfcMember") {}
3500 		Maybe< IfcMemberTypeEnum::Out > PredefinedType;
3501     };
3502 
3503     // C++ wrapper for IfcMemberStandardCase
IfcMemberStandardCaseIfcMemberStandardCase3504     struct IfcMemberStandardCase : IfcMember, ObjectHelper<IfcMemberStandardCase,0> { IfcMemberStandardCase() : Object("IfcMemberStandardCase") {}
3505 
3506     };
3507 
3508     // C++ wrapper for IfcMemberType
IfcMemberTypeIfcMemberType3509     struct IfcMemberType : IfcBuildingElementType, ObjectHelper<IfcMemberType,1> { IfcMemberType() : Object("IfcMemberType") {}
3510 		IfcMemberTypeEnum::Out PredefinedType;
3511     };
3512 
3513     // C++ wrapper for IfcMirroredProfileDef
IfcMirroredProfileDefIfcMirroredProfileDef3514     struct IfcMirroredProfileDef : IfcDerivedProfileDef, ObjectHelper<IfcMirroredProfileDef,0> { IfcMirroredProfileDef() : Object("IfcMirroredProfileDef") {}
3515 
3516     };
3517 
3518     // C++ wrapper for IfcMotorConnection
IfcMotorConnectionIfcMotorConnection3519     struct IfcMotorConnection : IfcEnergyConversionDevice, ObjectHelper<IfcMotorConnection,1> { IfcMotorConnection() : Object("IfcMotorConnection") {}
3520 		Maybe< IfcMotorConnectionTypeEnum::Out > PredefinedType;
3521     };
3522 
3523     // C++ wrapper for IfcMotorConnectionType
IfcMotorConnectionTypeIfcMotorConnectionType3524     struct IfcMotorConnectionType : IfcEnergyConversionDeviceType, ObjectHelper<IfcMotorConnectionType,1> { IfcMotorConnectionType() : Object("IfcMotorConnectionType") {}
3525 		IfcMotorConnectionTypeEnum::Out PredefinedType;
3526     };
3527 
3528     // C++ wrapper for IfcOccupant
IfcOccupantIfcOccupant3529     struct IfcOccupant : IfcActor, ObjectHelper<IfcOccupant,1> { IfcOccupant() : Object("IfcOccupant") {}
3530 		Maybe< IfcOccupantTypeEnum::Out > PredefinedType;
3531     };
3532 
3533     // C++ wrapper for IfcOffsetCurve2D
IfcOffsetCurve2DIfcOffsetCurve2D3534     struct IfcOffsetCurve2D : IfcCurve, ObjectHelper<IfcOffsetCurve2D,3> { IfcOffsetCurve2D() : Object("IfcOffsetCurve2D") {}
3535 		Lazy< IfcCurve > BasisCurve;
3536 		IfcLengthMeasure::Out Distance;
3537 		IfcLogical::Out SelfIntersect;
3538     };
3539 
3540     // C++ wrapper for IfcOffsetCurve3D
IfcOffsetCurve3DIfcOffsetCurve3D3541     struct IfcOffsetCurve3D : IfcCurve, ObjectHelper<IfcOffsetCurve3D,4> { IfcOffsetCurve3D() : Object("IfcOffsetCurve3D") {}
3542 		Lazy< IfcCurve > BasisCurve;
3543 		IfcLengthMeasure::Out Distance;
3544 		IfcLogical::Out SelfIntersect;
3545 		Lazy< IfcDirection > RefDirection;
3546     };
3547 
3548     // C++ wrapper for IfcOpenShell
IfcOpenShellIfcOpenShell3549     struct IfcOpenShell : IfcConnectedFaceSet, ObjectHelper<IfcOpenShell,0> { IfcOpenShell() : Object("IfcOpenShell") {}
3550 
3551     };
3552 
3553     // C++ wrapper for IfcOpeningElement
IfcOpeningElementIfcOpeningElement3554     struct IfcOpeningElement : IfcFeatureElementSubtraction, ObjectHelper<IfcOpeningElement,1> { IfcOpeningElement() : Object("IfcOpeningElement") {}
3555 		Maybe< IfcOpeningElementTypeEnum::Out > PredefinedType;
3556     };
3557 
3558     // C++ wrapper for IfcOpeningStandardCase
IfcOpeningStandardCaseIfcOpeningStandardCase3559     struct IfcOpeningStandardCase : IfcOpeningElement, ObjectHelper<IfcOpeningStandardCase,0> { IfcOpeningStandardCase() : Object("IfcOpeningStandardCase") {}
3560 
3561     };
3562 
3563     // C++ wrapper for IfcOrientedEdge
IfcOrientedEdgeIfcOrientedEdge3564     struct IfcOrientedEdge : IfcEdge, ObjectHelper<IfcOrientedEdge,2> { IfcOrientedEdge() : Object("IfcOrientedEdge") {}
3565 		Lazy< IfcEdge > EdgeElement;
3566 		IfcBoolean::Out Orientation;
3567     };
3568 
3569     // C++ wrapper for IfcOuterBoundaryCurve
IfcOuterBoundaryCurveIfcOuterBoundaryCurve3570     struct IfcOuterBoundaryCurve : IfcBoundaryCurve, ObjectHelper<IfcOuterBoundaryCurve,0> { IfcOuterBoundaryCurve() : Object("IfcOuterBoundaryCurve") {}
3571 
3572     };
3573 
3574     // C++ wrapper for IfcOutlet
IfcOutletIfcOutlet3575     struct IfcOutlet : IfcFlowTerminal, ObjectHelper<IfcOutlet,1> { IfcOutlet() : Object("IfcOutlet") {}
3576 		Maybe< IfcOutletTypeEnum::Out > PredefinedType;
3577     };
3578 
3579     // C++ wrapper for IfcOutletType
IfcOutletTypeIfcOutletType3580     struct IfcOutletType : IfcFlowTerminalType, ObjectHelper<IfcOutletType,1> { IfcOutletType() : Object("IfcOutletType") {}
3581 		IfcOutletTypeEnum::Out PredefinedType;
3582     };
3583 
3584     // C++ wrapper for IfcPath
IfcPathIfcPath3585     struct IfcPath : IfcTopologicalRepresentationItem, ObjectHelper<IfcPath,1> { IfcPath() : Object("IfcPath") {}
3586 		ListOf< Lazy< IfcOrientedEdge >, 1, 0 > EdgeList;
3587     };
3588 
3589     // C++ wrapper for IfcPcurve
IfcPcurveIfcPcurve3590     struct IfcPcurve : IfcCurve, ObjectHelper<IfcPcurve,2> { IfcPcurve() : Object("IfcPcurve") {}
3591 		Lazy< IfcSurface > BasisSurface;
3592 		Lazy< IfcCurve > ReferenceCurve;
3593     };
3594 
3595     // C++ wrapper for IfcPerformanceHistory
IfcPerformanceHistoryIfcPerformanceHistory3596     struct IfcPerformanceHistory : IfcControl, ObjectHelper<IfcPerformanceHistory,2> { IfcPerformanceHistory() : Object("IfcPerformanceHistory") {}
3597 		IfcLabel::Out LifeCyclePhase;
3598 		Maybe< IfcPerformanceHistoryTypeEnum::Out > PredefinedType;
3599     };
3600 
3601     // C++ wrapper for IfcPermit
IfcPermitIfcPermit3602     struct IfcPermit : IfcControl, ObjectHelper<IfcPermit,3> { IfcPermit() : Object("IfcPermit") {}
3603 		Maybe< IfcPermitTypeEnum::Out > PredefinedType;
3604 		Maybe< IfcLabel::Out > Status;
3605 		Maybe< IfcText::Out > LongDescription;
3606     };
3607 
3608     // C++ wrapper for IfcPile
IfcPileIfcPile3609     struct IfcPile : IfcBuildingElement, ObjectHelper<IfcPile,2> { IfcPile() : Object("IfcPile") {}
3610 		Maybe< IfcPileTypeEnum::Out > PredefinedType;
3611 		Maybe< IfcPileConstructionEnum::Out > ConstructionType;
3612     };
3613 
3614     // C++ wrapper for IfcPileType
IfcPileTypeIfcPileType3615     struct IfcPileType : IfcBuildingElementType, ObjectHelper<IfcPileType,1> { IfcPileType() : Object("IfcPileType") {}
3616 		IfcPileTypeEnum::Out PredefinedType;
3617     };
3618 
3619     // C++ wrapper for IfcPipeFitting
IfcPipeFittingIfcPipeFitting3620     struct IfcPipeFitting : IfcFlowFitting, ObjectHelper<IfcPipeFitting,1> { IfcPipeFitting() : Object("IfcPipeFitting") {}
3621 		Maybe< IfcPipeFittingTypeEnum::Out > PredefinedType;
3622     };
3623 
3624     // C++ wrapper for IfcPipeFittingType
IfcPipeFittingTypeIfcPipeFittingType3625     struct IfcPipeFittingType : IfcFlowFittingType, ObjectHelper<IfcPipeFittingType,1> { IfcPipeFittingType() : Object("IfcPipeFittingType") {}
3626 		IfcPipeFittingTypeEnum::Out PredefinedType;
3627     };
3628 
3629     // C++ wrapper for IfcPipeSegment
IfcPipeSegmentIfcPipeSegment3630     struct IfcPipeSegment : IfcFlowSegment, ObjectHelper<IfcPipeSegment,1> { IfcPipeSegment() : Object("IfcPipeSegment") {}
3631 		Maybe< IfcPipeSegmentTypeEnum::Out > PredefinedType;
3632     };
3633 
3634     // C++ wrapper for IfcPipeSegmentType
IfcPipeSegmentTypeIfcPipeSegmentType3635     struct IfcPipeSegmentType : IfcFlowSegmentType, ObjectHelper<IfcPipeSegmentType,1> { IfcPipeSegmentType() : Object("IfcPipeSegmentType") {}
3636 		IfcPipeSegmentTypeEnum::Out PredefinedType;
3637     };
3638 
3639     // C++ wrapper for IfcPlanarExtent
IfcPlanarExtentIfcPlanarExtent3640     struct IfcPlanarExtent : IfcGeometricRepresentationItem, ObjectHelper<IfcPlanarExtent,2> { IfcPlanarExtent() : Object("IfcPlanarExtent") {}
3641 		IfcLengthMeasure::Out SizeInX;
3642 		IfcLengthMeasure::Out SizeInY;
3643     };
3644 
3645     // C++ wrapper for IfcPlanarBox
IfcPlanarBoxIfcPlanarBox3646     struct IfcPlanarBox : IfcPlanarExtent, ObjectHelper<IfcPlanarBox,1> { IfcPlanarBox() : Object("IfcPlanarBox") {}
3647 		IfcAxis2Placement::Out Placement;
3648     };
3649 
3650     // C++ wrapper for IfcPlane
IfcPlaneIfcPlane3651     struct IfcPlane : IfcElementarySurface, ObjectHelper<IfcPlane,0> { IfcPlane() : Object("IfcPlane") {}
3652 
3653     };
3654 
3655     // C++ wrapper for IfcPlate
IfcPlateIfcPlate3656     struct IfcPlate : IfcBuildingElement, ObjectHelper<IfcPlate,1> { IfcPlate() : Object("IfcPlate") {}
3657 		Maybe< IfcPlateTypeEnum::Out > PredefinedType;
3658     };
3659 
3660     // C++ wrapper for IfcPlateStandardCase
IfcPlateStandardCaseIfcPlateStandardCase3661     struct IfcPlateStandardCase : IfcPlate, ObjectHelper<IfcPlateStandardCase,0> { IfcPlateStandardCase() : Object("IfcPlateStandardCase") {}
3662 
3663     };
3664 
3665     // C++ wrapper for IfcPlateType
IfcPlateTypeIfcPlateType3666     struct IfcPlateType : IfcBuildingElementType, ObjectHelper<IfcPlateType,1> { IfcPlateType() : Object("IfcPlateType") {}
3667 		IfcPlateTypeEnum::Out PredefinedType;
3668     };
3669 
3670     // C++ wrapper for IfcPointOnCurve
IfcPointOnCurveIfcPointOnCurve3671     struct IfcPointOnCurve : IfcPoint, ObjectHelper<IfcPointOnCurve,2> { IfcPointOnCurve() : Object("IfcPointOnCurve") {}
3672 		Lazy< IfcCurve > BasisCurve;
3673 		IfcParameterValue::Out PointParameter;
3674     };
3675 
3676     // C++ wrapper for IfcPointOnSurface
IfcPointOnSurfaceIfcPointOnSurface3677     struct IfcPointOnSurface : IfcPoint, ObjectHelper<IfcPointOnSurface,3> { IfcPointOnSurface() : Object("IfcPointOnSurface") {}
3678 		Lazy< IfcSurface > BasisSurface;
3679 		IfcParameterValue::Out PointParameterU;
3680 		IfcParameterValue::Out PointParameterV;
3681     };
3682 
3683     // C++ wrapper for IfcPolyLoop
IfcPolyLoopIfcPolyLoop3684     struct IfcPolyLoop : IfcLoop, ObjectHelper<IfcPolyLoop,1> { IfcPolyLoop() : Object("IfcPolyLoop") {}
3685 		ListOf< Lazy< IfcCartesianPoint >, 3, 0 > Polygon;
3686     };
3687 
3688     // C++ wrapper for IfcPolygonalBoundedHalfSpace
IfcPolygonalBoundedHalfSpaceIfcPolygonalBoundedHalfSpace3689     struct IfcPolygonalBoundedHalfSpace : IfcHalfSpaceSolid, ObjectHelper<IfcPolygonalBoundedHalfSpace,2> { IfcPolygonalBoundedHalfSpace() : Object("IfcPolygonalBoundedHalfSpace") {}
3690 		Lazy< IfcAxis2Placement3D > Position;
3691 		Lazy< IfcBoundedCurve > PolygonalBoundary;
3692     };
3693 
3694     // C++ wrapper for IfcTessellatedFaceSet
IfcTessellatedFaceSetIfcTessellatedFaceSet3695     struct IfcTessellatedFaceSet : IfcTessellatedItem, ObjectHelper<IfcTessellatedFaceSet,1> { IfcTessellatedFaceSet() : Object("IfcTessellatedFaceSet") {}
3696 		Lazy< IfcCartesianPointList3D > Coordinates;
3697     };
3698 
3699     // C++ wrapper for IfcPolygonalFaceSet
IfcPolygonalFaceSetIfcPolygonalFaceSet3700     struct IfcPolygonalFaceSet : IfcTessellatedFaceSet, ObjectHelper<IfcPolygonalFaceSet,3> { IfcPolygonalFaceSet() : Object("IfcPolygonalFaceSet") {}
3701 		Maybe< IfcBoolean::Out > Closed;
3702 		ListOf< Lazy< IfcIndexedPolygonalFace >, 1, 0 > Faces;
3703 		Maybe< ListOf< IfcPositiveInteger, 1, 0 >::Out > PnIndex;
3704     };
3705 
3706     // C++ wrapper for IfcPolyline
IfcPolylineIfcPolyline3707     struct IfcPolyline : IfcBoundedCurve, ObjectHelper<IfcPolyline,1> { IfcPolyline() : Object("IfcPolyline") {}
3708 		ListOf< Lazy< IfcCartesianPoint >, 2, 0 > Points;
3709     };
3710 
3711     // C++ wrapper for IfcPresentationStyleAssignment
IfcPresentationStyleAssignmentIfcPresentationStyleAssignment3712     struct IfcPresentationStyleAssignment :  ObjectHelper<IfcPresentationStyleAssignment,1> { IfcPresentationStyleAssignment() : Object("IfcPresentationStyleAssignment") {}
3713 		ListOf< IfcPresentationStyleSelect, 1, 0 >::Out Styles;
3714     };
3715 
3716     // C++ wrapper for IfcProcedure
IfcProcedureIfcProcedure3717     struct IfcProcedure : IfcProcess, ObjectHelper<IfcProcedure,1> { IfcProcedure() : Object("IfcProcedure") {}
3718 		Maybe< IfcProcedureTypeEnum::Out > PredefinedType;
3719     };
3720 
3721     // C++ wrapper for IfcProcedureType
IfcProcedureTypeIfcProcedureType3722     struct IfcProcedureType : IfcTypeProcess, ObjectHelper<IfcProcedureType,1> { IfcProcedureType() : Object("IfcProcedureType") {}
3723 		IfcProcedureTypeEnum::Out PredefinedType;
3724     };
3725 
3726     // C++ wrapper for IfcProductDefinitionShape
IfcProductDefinitionShapeIfcProductDefinitionShape3727     struct IfcProductDefinitionShape : IfcProductRepresentation, ObjectHelper<IfcProductDefinitionShape,0> { IfcProductDefinitionShape() : Object("IfcProductDefinitionShape") {}
3728 
3729     };
3730 
3731     // C++ wrapper for IfcProject
IfcProjectIfcProject3732     struct IfcProject : IfcContext, ObjectHelper<IfcProject,0> { IfcProject() : Object("IfcProject") {}
3733 
3734     };
3735 
3736     // C++ wrapper for IfcProjectLibrary
IfcProjectLibraryIfcProjectLibrary3737     struct IfcProjectLibrary : IfcContext, ObjectHelper<IfcProjectLibrary,0> { IfcProjectLibrary() : Object("IfcProjectLibrary") {}
3738 
3739     };
3740 
3741     // C++ wrapper for IfcProjectOrder
IfcProjectOrderIfcProjectOrder3742     struct IfcProjectOrder : IfcControl, ObjectHelper<IfcProjectOrder,3> { IfcProjectOrder() : Object("IfcProjectOrder") {}
3743 		Maybe< IfcProjectOrderTypeEnum::Out > PredefinedType;
3744 		Maybe< IfcLabel::Out > Status;
3745 		Maybe< IfcText::Out > LongDescription;
3746     };
3747 
3748     // C++ wrapper for IfcProjectionElement
IfcProjectionElementIfcProjectionElement3749     struct IfcProjectionElement : IfcFeatureElementAddition, ObjectHelper<IfcProjectionElement,1> { IfcProjectionElement() : Object("IfcProjectionElement") {}
3750 		Maybe< IfcProjectionElementTypeEnum::Out > PredefinedType;
3751     };
3752 
3753     // C++ wrapper for IfcSimpleProperty
IfcSimplePropertyIfcSimpleProperty3754     struct IfcSimpleProperty : IfcProperty, ObjectHelper<IfcSimpleProperty,0> { IfcSimpleProperty() : Object("IfcSimpleProperty") {}
3755 
3756     };
3757 
3758     // C++ wrapper for IfcPropertyBoundedValue
IfcPropertyBoundedValueIfcPropertyBoundedValue3759     struct IfcPropertyBoundedValue : IfcSimpleProperty, ObjectHelper<IfcPropertyBoundedValue,4> { IfcPropertyBoundedValue() : Object("IfcPropertyBoundedValue") {}
3760 		Maybe< IfcValue::Out > UpperBoundValue;
3761 		Maybe< IfcValue::Out > LowerBoundValue;
3762 		Maybe< IfcUnit::Out > Unit;
3763 		Maybe< IfcValue::Out > SetPointValue;
3764     };
3765 
3766     // C++ wrapper for IfcPropertyEnumeratedValue
IfcPropertyEnumeratedValueIfcPropertyEnumeratedValue3767     struct IfcPropertyEnumeratedValue : IfcSimpleProperty, ObjectHelper<IfcPropertyEnumeratedValue,2> { IfcPropertyEnumeratedValue() : Object("IfcPropertyEnumeratedValue") {}
3768 		Maybe< ListOf< IfcValue, 1, 0 >::Out > EnumerationValues;
3769 		Maybe< Lazy< NotImplemented > > EnumerationReference;
3770     };
3771 
3772     // C++ wrapper for IfcPropertyListValue
IfcPropertyListValueIfcPropertyListValue3773     struct IfcPropertyListValue : IfcSimpleProperty, ObjectHelper<IfcPropertyListValue,2> { IfcPropertyListValue() : Object("IfcPropertyListValue") {}
3774 		Maybe< ListOf< IfcValue, 1, 0 >::Out > ListValues;
3775 		Maybe< IfcUnit::Out > Unit;
3776     };
3777 
3778     // C++ wrapper for IfcPropertyReferenceValue
IfcPropertyReferenceValueIfcPropertyReferenceValue3779     struct IfcPropertyReferenceValue : IfcSimpleProperty, ObjectHelper<IfcPropertyReferenceValue,2> { IfcPropertyReferenceValue() : Object("IfcPropertyReferenceValue") {}
3780 		Maybe< IfcText::Out > UsageName;
3781 		Maybe< IfcObjectReferenceSelect::Out > PropertyReference;
3782     };
3783 
3784     // C++ wrapper for IfcPropertySet
IfcPropertySetIfcPropertySet3785     struct IfcPropertySet : IfcPropertySetDefinition, ObjectHelper<IfcPropertySet,1> { IfcPropertySet() : Object("IfcPropertySet") {}
3786 		ListOf< Lazy< IfcProperty >, 1, 0 > HasProperties;
3787     };
3788 
3789     // C++ wrapper for IfcPropertySingleValue
IfcPropertySingleValueIfcPropertySingleValue3790     struct IfcPropertySingleValue : IfcSimpleProperty, ObjectHelper<IfcPropertySingleValue,2> { IfcPropertySingleValue() : Object("IfcPropertySingleValue") {}
3791 		Maybe< IfcValue::Out > NominalValue;
3792 		Maybe< IfcUnit::Out > Unit;
3793     };
3794 
3795     // C++ wrapper for IfcPropertyTableValue
IfcPropertyTableValueIfcPropertyTableValue3796     struct IfcPropertyTableValue : IfcSimpleProperty, ObjectHelper<IfcPropertyTableValue,6> { IfcPropertyTableValue() : Object("IfcPropertyTableValue") {}
3797 		Maybe< ListOf< IfcValue, 1, 0 >::Out > DefiningValues;
3798 		Maybe< ListOf< IfcValue, 1, 0 >::Out > DefinedValues;
3799 		Maybe< IfcText::Out > Expression;
3800 		Maybe< IfcUnit::Out > DefiningUnit;
3801 		Maybe< IfcUnit::Out > DefinedUnit;
3802 		Maybe< IfcCurveInterpolationEnum::Out > CurveInterpolation;
3803     };
3804 
3805     // C++ wrapper for IfcProtectiveDevice
IfcProtectiveDeviceIfcProtectiveDevice3806     struct IfcProtectiveDevice : IfcFlowController, ObjectHelper<IfcProtectiveDevice,1> { IfcProtectiveDevice() : Object("IfcProtectiveDevice") {}
3807 		Maybe< IfcProtectiveDeviceTypeEnum::Out > PredefinedType;
3808     };
3809 
3810     // C++ wrapper for IfcProtectiveDeviceTrippingUnit
IfcProtectiveDeviceTrippingUnitIfcProtectiveDeviceTrippingUnit3811     struct IfcProtectiveDeviceTrippingUnit : IfcDistributionControlElement, ObjectHelper<IfcProtectiveDeviceTrippingUnit,1> { IfcProtectiveDeviceTrippingUnit() : Object("IfcProtectiveDeviceTrippingUnit") {}
3812 		Maybe< IfcProtectiveDeviceTrippingUnitTypeEnum::Out > PredefinedType;
3813     };
3814 
3815     // C++ wrapper for IfcProtectiveDeviceTrippingUnitType
IfcProtectiveDeviceTrippingUnitTypeIfcProtectiveDeviceTrippingUnitType3816     struct IfcProtectiveDeviceTrippingUnitType : IfcDistributionControlElementType, ObjectHelper<IfcProtectiveDeviceTrippingUnitType,1> { IfcProtectiveDeviceTrippingUnitType() : Object("IfcProtectiveDeviceTrippingUnitType") {}
3817 		IfcProtectiveDeviceTrippingUnitTypeEnum::Out PredefinedType;
3818     };
3819 
3820     // C++ wrapper for IfcProtectiveDeviceType
IfcProtectiveDeviceTypeIfcProtectiveDeviceType3821     struct IfcProtectiveDeviceType : IfcFlowControllerType, ObjectHelper<IfcProtectiveDeviceType,1> { IfcProtectiveDeviceType() : Object("IfcProtectiveDeviceType") {}
3822 		IfcProtectiveDeviceTypeEnum::Out PredefinedType;
3823     };
3824 
3825     // C++ wrapper for IfcProxy
IfcProxyIfcProxy3826     struct IfcProxy : IfcProduct, ObjectHelper<IfcProxy,2> { IfcProxy() : Object("IfcProxy") {}
3827 		IfcObjectTypeEnum::Out ProxyType;
3828 		Maybe< IfcLabel::Out > Tag;
3829     };
3830 
3831     // C++ wrapper for IfcPump
IfcPumpIfcPump3832     struct IfcPump : IfcFlowMovingDevice, ObjectHelper<IfcPump,1> { IfcPump() : Object("IfcPump") {}
3833 		Maybe< IfcPumpTypeEnum::Out > PredefinedType;
3834     };
3835 
3836     // C++ wrapper for IfcPumpType
IfcPumpTypeIfcPumpType3837     struct IfcPumpType : IfcFlowMovingDeviceType, ObjectHelper<IfcPumpType,1> { IfcPumpType() : Object("IfcPumpType") {}
3838 		IfcPumpTypeEnum::Out PredefinedType;
3839     };
3840 
3841     // C++ wrapper for IfcRailing
IfcRailingIfcRailing3842     struct IfcRailing : IfcBuildingElement, ObjectHelper<IfcRailing,1> { IfcRailing() : Object("IfcRailing") {}
3843 		Maybe< IfcRailingTypeEnum::Out > PredefinedType;
3844     };
3845 
3846     // C++ wrapper for IfcRailingType
IfcRailingTypeIfcRailingType3847     struct IfcRailingType : IfcBuildingElementType, ObjectHelper<IfcRailingType,1> { IfcRailingType() : Object("IfcRailingType") {}
3848 		IfcRailingTypeEnum::Out PredefinedType;
3849     };
3850 
3851     // C++ wrapper for IfcRamp
IfcRampIfcRamp3852     struct IfcRamp : IfcBuildingElement, ObjectHelper<IfcRamp,1> { IfcRamp() : Object("IfcRamp") {}
3853 		Maybe< IfcRampTypeEnum::Out > PredefinedType;
3854     };
3855 
3856     // C++ wrapper for IfcRampFlight
IfcRampFlightIfcRampFlight3857     struct IfcRampFlight : IfcBuildingElement, ObjectHelper<IfcRampFlight,1> { IfcRampFlight() : Object("IfcRampFlight") {}
3858 		Maybe< IfcRampFlightTypeEnum::Out > PredefinedType;
3859     };
3860 
3861     // C++ wrapper for IfcRampFlightType
IfcRampFlightTypeIfcRampFlightType3862     struct IfcRampFlightType : IfcBuildingElementType, ObjectHelper<IfcRampFlightType,1> { IfcRampFlightType() : Object("IfcRampFlightType") {}
3863 		IfcRampFlightTypeEnum::Out PredefinedType;
3864     };
3865 
3866     // C++ wrapper for IfcRampType
IfcRampTypeIfcRampType3867     struct IfcRampType : IfcBuildingElementType, ObjectHelper<IfcRampType,1> { IfcRampType() : Object("IfcRampType") {}
3868 		IfcRampTypeEnum::Out PredefinedType;
3869     };
3870 
3871     // C++ wrapper for IfcRationalBSplineCurveWithKnots
IfcRationalBSplineCurveWithKnotsIfcRationalBSplineCurveWithKnots3872     struct IfcRationalBSplineCurveWithKnots : IfcBSplineCurveWithKnots, ObjectHelper<IfcRationalBSplineCurveWithKnots,1> { IfcRationalBSplineCurveWithKnots() : Object("IfcRationalBSplineCurveWithKnots") {}
3873 		ListOf< IfcReal, 2, 0 >::Out WeightsData;
3874     };
3875 
3876     // C++ wrapper for IfcRationalBSplineSurfaceWithKnots
IfcRationalBSplineSurfaceWithKnotsIfcRationalBSplineSurfaceWithKnots3877     struct IfcRationalBSplineSurfaceWithKnots : IfcBSplineSurfaceWithKnots, ObjectHelper<IfcRationalBSplineSurfaceWithKnots,0> { IfcRationalBSplineSurfaceWithKnots() : Object("IfcRationalBSplineSurfaceWithKnots") {}
3878 
3879     };
3880 
3881     // C++ wrapper for IfcRectangleProfileDef
IfcRectangleProfileDefIfcRectangleProfileDef3882     struct IfcRectangleProfileDef : IfcParameterizedProfileDef, ObjectHelper<IfcRectangleProfileDef,2> { IfcRectangleProfileDef() : Object("IfcRectangleProfileDef") {}
3883 		IfcPositiveLengthMeasure::Out XDim;
3884 		IfcPositiveLengthMeasure::Out YDim;
3885     };
3886 
3887     // C++ wrapper for IfcRectangleHollowProfileDef
IfcRectangleHollowProfileDefIfcRectangleHollowProfileDef3888     struct IfcRectangleHollowProfileDef : IfcRectangleProfileDef, ObjectHelper<IfcRectangleHollowProfileDef,3> { IfcRectangleHollowProfileDef() : Object("IfcRectangleHollowProfileDef") {}
3889 		IfcPositiveLengthMeasure::Out WallThickness;
3890 		Maybe< IfcNonNegativeLengthMeasure::Out > InnerFilletRadius;
3891 		Maybe< IfcNonNegativeLengthMeasure::Out > OuterFilletRadius;
3892     };
3893 
3894     // C++ wrapper for IfcRectangularPyramid
IfcRectangularPyramidIfcRectangularPyramid3895     struct IfcRectangularPyramid : IfcCsgPrimitive3D, ObjectHelper<IfcRectangularPyramid,3> { IfcRectangularPyramid() : Object("IfcRectangularPyramid") {}
3896 		IfcPositiveLengthMeasure::Out XLength;
3897 		IfcPositiveLengthMeasure::Out YLength;
3898 		IfcPositiveLengthMeasure::Out Height;
3899     };
3900 
3901     // C++ wrapper for IfcRectangularTrimmedSurface
IfcRectangularTrimmedSurfaceIfcRectangularTrimmedSurface3902     struct IfcRectangularTrimmedSurface : IfcBoundedSurface, ObjectHelper<IfcRectangularTrimmedSurface,7> { IfcRectangularTrimmedSurface() : Object("IfcRectangularTrimmedSurface") {}
3903 		Lazy< IfcSurface > BasisSurface;
3904 		IfcParameterValue::Out U1;
3905 		IfcParameterValue::Out V1;
3906 		IfcParameterValue::Out U2;
3907 		IfcParameterValue::Out V2;
3908 		IfcBoolean::Out Usense;
3909 		IfcBoolean::Out Vsense;
3910     };
3911 
3912     // C++ wrapper for IfcReinforcingElement
IfcReinforcingElementIfcReinforcingElement3913     struct IfcReinforcingElement : IfcElementComponent, ObjectHelper<IfcReinforcingElement,1> { IfcReinforcingElement() : Object("IfcReinforcingElement") {}
3914 		Maybe< IfcLabel::Out > SteelGrade;
3915     };
3916 
3917     // C++ wrapper for IfcReinforcingBar
IfcReinforcingBarIfcReinforcingBar3918     struct IfcReinforcingBar : IfcReinforcingElement, ObjectHelper<IfcReinforcingBar,5> { IfcReinforcingBar() : Object("IfcReinforcingBar") {}
3919 		Maybe< IfcPositiveLengthMeasure::Out > NominalDiameter;
3920 		Maybe< IfcAreaMeasure::Out > CrossSectionArea;
3921 		Maybe< IfcPositiveLengthMeasure::Out > BarLength;
3922 		Maybe< IfcReinforcingBarTypeEnum::Out > PredefinedType;
3923 		Maybe< IfcReinforcingBarSurfaceEnum::Out > BarSurface;
3924     };
3925 
3926     // C++ wrapper for IfcReinforcingElementType
IfcReinforcingElementTypeIfcReinforcingElementType3927     struct IfcReinforcingElementType : IfcElementComponentType, ObjectHelper<IfcReinforcingElementType,0> { IfcReinforcingElementType() : Object("IfcReinforcingElementType") {}
3928 
3929     };
3930 
3931     // C++ wrapper for IfcReinforcingBarType
IfcReinforcingBarTypeIfcReinforcingBarType3932     struct IfcReinforcingBarType : IfcReinforcingElementType, ObjectHelper<IfcReinforcingBarType,7> { IfcReinforcingBarType() : Object("IfcReinforcingBarType") {}
3933 		IfcReinforcingBarTypeEnum::Out PredefinedType;
3934 		Maybe< IfcPositiveLengthMeasure::Out > NominalDiameter;
3935 		Maybe< IfcAreaMeasure::Out > CrossSectionArea;
3936 		Maybe< IfcPositiveLengthMeasure::Out > BarLength;
3937 		Maybe< IfcReinforcingBarSurfaceEnum::Out > BarSurface;
3938 		Maybe< IfcLabel::Out > BendingShapeCode;
3939 		Maybe< ListOf< IfcBendingParameterSelect, 1, 0 >::Out > BendingParameters;
3940     };
3941 
3942     // C++ wrapper for IfcReinforcingMesh
IfcReinforcingMeshIfcReinforcingMesh3943     struct IfcReinforcingMesh : IfcReinforcingElement, ObjectHelper<IfcReinforcingMesh,9> { IfcReinforcingMesh() : Object("IfcReinforcingMesh") {}
3944 		Maybe< IfcPositiveLengthMeasure::Out > MeshLength;
3945 		Maybe< IfcPositiveLengthMeasure::Out > MeshWidth;
3946 		Maybe< IfcPositiveLengthMeasure::Out > LongitudinalBarNominalDiameter;
3947 		Maybe< IfcPositiveLengthMeasure::Out > TransverseBarNominalDiameter;
3948 		Maybe< IfcAreaMeasure::Out > LongitudinalBarCrossSectionArea;
3949 		Maybe< IfcAreaMeasure::Out > TransverseBarCrossSectionArea;
3950 		Maybe< IfcPositiveLengthMeasure::Out > LongitudinalBarSpacing;
3951 		Maybe< IfcPositiveLengthMeasure::Out > TransverseBarSpacing;
3952 		Maybe< IfcReinforcingMeshTypeEnum::Out > PredefinedType;
3953     };
3954 
3955     // C++ wrapper for IfcReinforcingMeshType
IfcReinforcingMeshTypeIfcReinforcingMeshType3956     struct IfcReinforcingMeshType : IfcReinforcingElementType, ObjectHelper<IfcReinforcingMeshType,11> { IfcReinforcingMeshType() : Object("IfcReinforcingMeshType") {}
3957 		IfcReinforcingMeshTypeEnum::Out PredefinedType;
3958 		Maybe< IfcPositiveLengthMeasure::Out > MeshLength;
3959 		Maybe< IfcPositiveLengthMeasure::Out > MeshWidth;
3960 		Maybe< IfcPositiveLengthMeasure::Out > LongitudinalBarNominalDiameter;
3961 		Maybe< IfcPositiveLengthMeasure::Out > TransverseBarNominalDiameter;
3962 		Maybe< IfcAreaMeasure::Out > LongitudinalBarCrossSectionArea;
3963 		Maybe< IfcAreaMeasure::Out > TransverseBarCrossSectionArea;
3964 		Maybe< IfcPositiveLengthMeasure::Out > LongitudinalBarSpacing;
3965 		Maybe< IfcPositiveLengthMeasure::Out > TransverseBarSpacing;
3966 		Maybe< IfcLabel::Out > BendingShapeCode;
3967 		Maybe< ListOf< IfcBendingParameterSelect, 1, 0 >::Out > BendingParameters;
3968     };
3969 
3970     // C++ wrapper for IfcRelationship
IfcRelationshipIfcRelationship3971     struct IfcRelationship : IfcRoot, ObjectHelper<IfcRelationship,0> { IfcRelationship() : Object("IfcRelationship") {}
3972 
3973     };
3974 
3975     // C++ wrapper for IfcRelDecomposes
IfcRelDecomposesIfcRelDecomposes3976     struct IfcRelDecomposes : IfcRelationship, ObjectHelper<IfcRelDecomposes,0> { IfcRelDecomposes() : Object("IfcRelDecomposes") {}
3977 
3978     };
3979 
3980     // C++ wrapper for IfcRelAggregates
IfcRelAggregatesIfcRelAggregates3981     struct IfcRelAggregates : IfcRelDecomposes, ObjectHelper<IfcRelAggregates,2> { IfcRelAggregates() : Object("IfcRelAggregates") {}
3982 		Lazy< IfcObjectDefinition > RelatingObject;
3983 		ListOf< Lazy< IfcObjectDefinition >, 1, 0 > RelatedObjects;
3984     };
3985 
3986     // C++ wrapper for IfcRelConnects
IfcRelConnectsIfcRelConnects3987     struct IfcRelConnects : IfcRelationship, ObjectHelper<IfcRelConnects,0> { IfcRelConnects() : Object("IfcRelConnects") {}
3988 
3989     };
3990 
3991     // C++ wrapper for IfcRelContainedInSpatialStructure
IfcRelContainedInSpatialStructureIfcRelContainedInSpatialStructure3992     struct IfcRelContainedInSpatialStructure : IfcRelConnects, ObjectHelper<IfcRelContainedInSpatialStructure,2> { IfcRelContainedInSpatialStructure() : Object("IfcRelContainedInSpatialStructure") {}
3993 		ListOf< Lazy< IfcProduct >, 1, 0 > RelatedElements;
3994 		Lazy< IfcSpatialElement > RelatingStructure;
3995     };
3996 
3997     // C++ wrapper for IfcRelDefines
IfcRelDefinesIfcRelDefines3998     struct IfcRelDefines : IfcRelationship, ObjectHelper<IfcRelDefines,0> { IfcRelDefines() : Object("IfcRelDefines") {}
3999 
4000     };
4001 
4002     // C++ wrapper for IfcRelDefinesByProperties
IfcRelDefinesByPropertiesIfcRelDefinesByProperties4003     struct IfcRelDefinesByProperties : IfcRelDefines, ObjectHelper<IfcRelDefinesByProperties,2> { IfcRelDefinesByProperties() : Object("IfcRelDefinesByProperties") {}
4004 		ListOf< Lazy< IfcObjectDefinition >, 1, 0 > RelatedObjects;
4005 		IfcPropertySetDefinitionSelect::Out RelatingPropertyDefinition;
4006     };
4007 
4008     // C++ wrapper for IfcRelFillsElement
IfcRelFillsElementIfcRelFillsElement4009     struct IfcRelFillsElement : IfcRelConnects, ObjectHelper<IfcRelFillsElement,2> { IfcRelFillsElement() : Object("IfcRelFillsElement") {}
4010 		Lazy< IfcOpeningElement > RelatingOpeningElement;
4011 		Lazy< IfcElement > RelatedBuildingElement;
4012     };
4013 
4014     // C++ wrapper for IfcRelVoidsElement
IfcRelVoidsElementIfcRelVoidsElement4015     struct IfcRelVoidsElement : IfcRelDecomposes, ObjectHelper<IfcRelVoidsElement,2> { IfcRelVoidsElement() : Object("IfcRelVoidsElement") {}
4016 		Lazy< IfcElement > RelatingBuildingElement;
4017 		Lazy< IfcFeatureElementSubtraction > RelatedOpeningElement;
4018     };
4019 
4020     // C++ wrapper for IfcReparametrisedCompositeCurveSegment
IfcReparametrisedCompositeCurveSegmentIfcReparametrisedCompositeCurveSegment4021     struct IfcReparametrisedCompositeCurveSegment : IfcCompositeCurveSegment, ObjectHelper<IfcReparametrisedCompositeCurveSegment,1> { IfcReparametrisedCompositeCurveSegment() : Object("IfcReparametrisedCompositeCurveSegment") {}
4022 		IfcParameterValue::Out ParamLength;
4023     };
4024 
4025     // C++ wrapper for IfcRepresentation
IfcRepresentationIfcRepresentation4026     struct IfcRepresentation :  ObjectHelper<IfcRepresentation,4> { IfcRepresentation() : Object("IfcRepresentation") {}
4027 		Lazy< IfcRepresentationContext > ContextOfItems;
4028 		Maybe< IfcLabel::Out > RepresentationIdentifier;
4029 		Maybe< IfcLabel::Out > RepresentationType;
4030 		ListOf< Lazy< IfcRepresentationItem >, 1, 0 > Items;
4031     };
4032 
4033     // C++ wrapper for IfcRepresentationMap
IfcRepresentationMapIfcRepresentationMap4034     struct IfcRepresentationMap :  ObjectHelper<IfcRepresentationMap,2> { IfcRepresentationMap() : Object("IfcRepresentationMap") {}
4035 		IfcAxis2Placement::Out MappingOrigin;
4036 		Lazy< IfcRepresentation > MappedRepresentation;
4037     };
4038 
4039     // C++ wrapper for IfcRevolvedAreaSolid
IfcRevolvedAreaSolidIfcRevolvedAreaSolid4040     struct IfcRevolvedAreaSolid : IfcSweptAreaSolid, ObjectHelper<IfcRevolvedAreaSolid,2> { IfcRevolvedAreaSolid() : Object("IfcRevolvedAreaSolid") {}
4041 		Lazy< IfcAxis1Placement > Axis;
4042 		IfcPlaneAngleMeasure::Out Angle;
4043     };
4044 
4045     // C++ wrapper for IfcRevolvedAreaSolidTapered
IfcRevolvedAreaSolidTaperedIfcRevolvedAreaSolidTapered4046     struct IfcRevolvedAreaSolidTapered : IfcRevolvedAreaSolid, ObjectHelper<IfcRevolvedAreaSolidTapered,1> { IfcRevolvedAreaSolidTapered() : Object("IfcRevolvedAreaSolidTapered") {}
4047 		Lazy< IfcProfileDef > EndSweptArea;
4048     };
4049 
4050     // C++ wrapper for IfcRightCircularCone
IfcRightCircularConeIfcRightCircularCone4051     struct IfcRightCircularCone : IfcCsgPrimitive3D, ObjectHelper<IfcRightCircularCone,2> { IfcRightCircularCone() : Object("IfcRightCircularCone") {}
4052 		IfcPositiveLengthMeasure::Out Height;
4053 		IfcPositiveLengthMeasure::Out BottomRadius;
4054     };
4055 
4056     // C++ wrapper for IfcRightCircularCylinder
IfcRightCircularCylinderIfcRightCircularCylinder4057     struct IfcRightCircularCylinder : IfcCsgPrimitive3D, ObjectHelper<IfcRightCircularCylinder,2> { IfcRightCircularCylinder() : Object("IfcRightCircularCylinder") {}
4058 		IfcPositiveLengthMeasure::Out Height;
4059 		IfcPositiveLengthMeasure::Out Radius;
4060     };
4061 
4062     // C++ wrapper for IfcRoof
IfcRoofIfcRoof4063     struct IfcRoof : IfcBuildingElement, ObjectHelper<IfcRoof,1> { IfcRoof() : Object("IfcRoof") {}
4064 		Maybe< IfcRoofTypeEnum::Out > PredefinedType;
4065     };
4066 
4067     // C++ wrapper for IfcRoofType
IfcRoofTypeIfcRoofType4068     struct IfcRoofType : IfcBuildingElementType, ObjectHelper<IfcRoofType,1> { IfcRoofType() : Object("IfcRoofType") {}
4069 		IfcRoofTypeEnum::Out PredefinedType;
4070     };
4071 
4072     // C++ wrapper for IfcRoundedRectangleProfileDef
IfcRoundedRectangleProfileDefIfcRoundedRectangleProfileDef4073     struct IfcRoundedRectangleProfileDef : IfcRectangleProfileDef, ObjectHelper<IfcRoundedRectangleProfileDef,1> { IfcRoundedRectangleProfileDef() : Object("IfcRoundedRectangleProfileDef") {}
4074 		IfcPositiveLengthMeasure::Out RoundingRadius;
4075     };
4076 
4077     // C++ wrapper for IfcSIUnit
IfcSIUnitIfcSIUnit4078     struct IfcSIUnit : IfcNamedUnit, ObjectHelper<IfcSIUnit,2> { IfcSIUnit() : Object("IfcSIUnit") {}
4079 		Maybe< IfcSIPrefix::Out > Prefix;
4080 		IfcSIUnitName::Out Name;
4081     };
4082 
4083     // C++ wrapper for IfcSanitaryTerminal
IfcSanitaryTerminalIfcSanitaryTerminal4084     struct IfcSanitaryTerminal : IfcFlowTerminal, ObjectHelper<IfcSanitaryTerminal,1> { IfcSanitaryTerminal() : Object("IfcSanitaryTerminal") {}
4085 		Maybe< IfcSanitaryTerminalTypeEnum::Out > PredefinedType;
4086     };
4087 
4088     // C++ wrapper for IfcSanitaryTerminalType
IfcSanitaryTerminalTypeIfcSanitaryTerminalType4089     struct IfcSanitaryTerminalType : IfcFlowTerminalType, ObjectHelper<IfcSanitaryTerminalType,1> { IfcSanitaryTerminalType() : Object("IfcSanitaryTerminalType") {}
4090 		IfcSanitaryTerminalTypeEnum::Out PredefinedType;
4091     };
4092 
4093     // C++ wrapper for IfcSeamCurve
IfcSeamCurveIfcSeamCurve4094     struct IfcSeamCurve : IfcSurfaceCurve, ObjectHelper<IfcSeamCurve,0> { IfcSeamCurve() : Object("IfcSeamCurve") {}
4095 
4096     };
4097 
4098     // C++ wrapper for IfcSectionedSpine
IfcSectionedSpineIfcSectionedSpine4099     struct IfcSectionedSpine : IfcGeometricRepresentationItem, ObjectHelper<IfcSectionedSpine,3> { IfcSectionedSpine() : Object("IfcSectionedSpine") {}
4100 		Lazy< IfcCompositeCurve > SpineCurve;
4101 		ListOf< Lazy< IfcProfileDef >, 2, 0 > CrossSections;
4102 		ListOf< Lazy< IfcAxis2Placement3D >, 2, 0 > CrossSectionPositions;
4103     };
4104 
4105     // C++ wrapper for IfcSensor
IfcSensorIfcSensor4106     struct IfcSensor : IfcDistributionControlElement, ObjectHelper<IfcSensor,1> { IfcSensor() : Object("IfcSensor") {}
4107 		Maybe< IfcSensorTypeEnum::Out > PredefinedType;
4108     };
4109 
4110     // C++ wrapper for IfcSensorType
IfcSensorTypeIfcSensorType4111     struct IfcSensorType : IfcDistributionControlElementType, ObjectHelper<IfcSensorType,1> { IfcSensorType() : Object("IfcSensorType") {}
4112 		IfcSensorTypeEnum::Out PredefinedType;
4113     };
4114 
4115     // C++ wrapper for IfcShadingDevice
IfcShadingDeviceIfcShadingDevice4116     struct IfcShadingDevice : IfcBuildingElement, ObjectHelper<IfcShadingDevice,1> { IfcShadingDevice() : Object("IfcShadingDevice") {}
4117 		Maybe< IfcShadingDeviceTypeEnum::Out > PredefinedType;
4118     };
4119 
4120     // C++ wrapper for IfcShadingDeviceType
IfcShadingDeviceTypeIfcShadingDeviceType4121     struct IfcShadingDeviceType : IfcBuildingElementType, ObjectHelper<IfcShadingDeviceType,1> { IfcShadingDeviceType() : Object("IfcShadingDeviceType") {}
4122 		IfcShadingDeviceTypeEnum::Out PredefinedType;
4123     };
4124 
4125     // C++ wrapper for IfcShapeModel
IfcShapeModelIfcShapeModel4126     struct IfcShapeModel : IfcRepresentation, ObjectHelper<IfcShapeModel,0> { IfcShapeModel() : Object("IfcShapeModel") {}
4127 
4128     };
4129 
4130     // C++ wrapper for IfcShapeRepresentation
IfcShapeRepresentationIfcShapeRepresentation4131     struct IfcShapeRepresentation : IfcShapeModel, ObjectHelper<IfcShapeRepresentation,0> { IfcShapeRepresentation() : Object("IfcShapeRepresentation") {}
4132 
4133     };
4134 
4135     // C++ wrapper for IfcShellBasedSurfaceModel
IfcShellBasedSurfaceModelIfcShellBasedSurfaceModel4136     struct IfcShellBasedSurfaceModel : IfcGeometricRepresentationItem, ObjectHelper<IfcShellBasedSurfaceModel,1> { IfcShellBasedSurfaceModel() : Object("IfcShellBasedSurfaceModel") {}
4137 		ListOf< IfcShell, 1, 0 >::Out SbsmBoundary;
4138     };
4139 
4140     // C++ wrapper for IfcSite
IfcSiteIfcSite4141     struct IfcSite : IfcSpatialStructureElement, ObjectHelper<IfcSite,5> { IfcSite() : Object("IfcSite") {}
4142 		Maybe< IfcCompoundPlaneAngleMeasure::Out > RefLatitude;
4143 		Maybe< IfcCompoundPlaneAngleMeasure::Out > RefLongitude;
4144 		Maybe< IfcLengthMeasure::Out > RefElevation;
4145 		Maybe< IfcLabel::Out > LandTitleNumber;
4146 		Maybe< Lazy< NotImplemented > > SiteAddress;
4147     };
4148 
4149     // C++ wrapper for IfcSlab
IfcSlabIfcSlab4150     struct IfcSlab : IfcBuildingElement, ObjectHelper<IfcSlab,1> { IfcSlab() : Object("IfcSlab") {}
4151 		Maybe< IfcSlabTypeEnum::Out > PredefinedType;
4152     };
4153 
4154     // C++ wrapper for IfcSlabElementedCase
IfcSlabElementedCaseIfcSlabElementedCase4155     struct IfcSlabElementedCase : IfcSlab, ObjectHelper<IfcSlabElementedCase,0> { IfcSlabElementedCase() : Object("IfcSlabElementedCase") {}
4156 
4157     };
4158 
4159     // C++ wrapper for IfcSlabStandardCase
IfcSlabStandardCaseIfcSlabStandardCase4160     struct IfcSlabStandardCase : IfcSlab, ObjectHelper<IfcSlabStandardCase,0> { IfcSlabStandardCase() : Object("IfcSlabStandardCase") {}
4161 
4162     };
4163 
4164     // C++ wrapper for IfcSlabType
IfcSlabTypeIfcSlabType4165     struct IfcSlabType : IfcBuildingElementType, ObjectHelper<IfcSlabType,1> { IfcSlabType() : Object("IfcSlabType") {}
4166 		IfcSlabTypeEnum::Out PredefinedType;
4167     };
4168 
4169     // C++ wrapper for IfcSolarDevice
IfcSolarDeviceIfcSolarDevice4170     struct IfcSolarDevice : IfcEnergyConversionDevice, ObjectHelper<IfcSolarDevice,1> { IfcSolarDevice() : Object("IfcSolarDevice") {}
4171 		Maybe< IfcSolarDeviceTypeEnum::Out > PredefinedType;
4172     };
4173 
4174     // C++ wrapper for IfcSolarDeviceType
IfcSolarDeviceTypeIfcSolarDeviceType4175     struct IfcSolarDeviceType : IfcEnergyConversionDeviceType, ObjectHelper<IfcSolarDeviceType,1> { IfcSolarDeviceType() : Object("IfcSolarDeviceType") {}
4176 		IfcSolarDeviceTypeEnum::Out PredefinedType;
4177     };
4178 
4179     // C++ wrapper for IfcSpace
IfcSpaceIfcSpace4180     struct IfcSpace : IfcSpatialStructureElement, ObjectHelper<IfcSpace,2> { IfcSpace() : Object("IfcSpace") {}
4181 		Maybe< IfcSpaceTypeEnum::Out > PredefinedType;
4182 		Maybe< IfcLengthMeasure::Out > ElevationWithFlooring;
4183     };
4184 
4185     // C++ wrapper for IfcSpaceHeater
IfcSpaceHeaterIfcSpaceHeater4186     struct IfcSpaceHeater : IfcFlowTerminal, ObjectHelper<IfcSpaceHeater,1> { IfcSpaceHeater() : Object("IfcSpaceHeater") {}
4187 		Maybe< IfcSpaceHeaterTypeEnum::Out > PredefinedType;
4188     };
4189 
4190     // C++ wrapper for IfcSpaceHeaterType
IfcSpaceHeaterTypeIfcSpaceHeaterType4191     struct IfcSpaceHeaterType : IfcFlowTerminalType, ObjectHelper<IfcSpaceHeaterType,1> { IfcSpaceHeaterType() : Object("IfcSpaceHeaterType") {}
4192 		IfcSpaceHeaterTypeEnum::Out PredefinedType;
4193     };
4194 
4195     // C++ wrapper for IfcSpatialElementType
IfcSpatialElementTypeIfcSpatialElementType4196     struct IfcSpatialElementType : IfcTypeProduct, ObjectHelper<IfcSpatialElementType,1> { IfcSpatialElementType() : Object("IfcSpatialElementType") {}
4197 		Maybe< IfcLabel::Out > ElementType;
4198     };
4199 
4200     // C++ wrapper for IfcSpatialStructureElementType
IfcSpatialStructureElementTypeIfcSpatialStructureElementType4201     struct IfcSpatialStructureElementType : IfcSpatialElementType, ObjectHelper<IfcSpatialStructureElementType,0> { IfcSpatialStructureElementType() : Object("IfcSpatialStructureElementType") {}
4202 
4203     };
4204 
4205     // C++ wrapper for IfcSpaceType
IfcSpaceTypeIfcSpaceType4206     struct IfcSpaceType : IfcSpatialStructureElementType, ObjectHelper<IfcSpaceType,2> { IfcSpaceType() : Object("IfcSpaceType") {}
4207 		IfcSpaceTypeEnum::Out PredefinedType;
4208 		Maybe< IfcLabel::Out > LongName;
4209     };
4210 
4211     // C++ wrapper for IfcSpatialZone
IfcSpatialZoneIfcSpatialZone4212     struct IfcSpatialZone : IfcSpatialElement, ObjectHelper<IfcSpatialZone,1> { IfcSpatialZone() : Object("IfcSpatialZone") {}
4213 		Maybe< IfcSpatialZoneTypeEnum::Out > PredefinedType;
4214     };
4215 
4216     // C++ wrapper for IfcSpatialZoneType
IfcSpatialZoneTypeIfcSpatialZoneType4217     struct IfcSpatialZoneType : IfcSpatialElementType, ObjectHelper<IfcSpatialZoneType,2> { IfcSpatialZoneType() : Object("IfcSpatialZoneType") {}
4218 		IfcSpatialZoneTypeEnum::Out PredefinedType;
4219 		Maybe< IfcLabel::Out > LongName;
4220     };
4221 
4222     // C++ wrapper for IfcSphere
IfcSphereIfcSphere4223     struct IfcSphere : IfcCsgPrimitive3D, ObjectHelper<IfcSphere,1> { IfcSphere() : Object("IfcSphere") {}
4224 		IfcPositiveLengthMeasure::Out Radius;
4225     };
4226 
4227     // C++ wrapper for IfcSphericalSurface
IfcSphericalSurfaceIfcSphericalSurface4228     struct IfcSphericalSurface : IfcElementarySurface, ObjectHelper<IfcSphericalSurface,1> { IfcSphericalSurface() : Object("IfcSphericalSurface") {}
4229 		IfcPositiveLengthMeasure::Out Radius;
4230     };
4231 
4232     // C++ wrapper for IfcStackTerminal
IfcStackTerminalIfcStackTerminal4233     struct IfcStackTerminal : IfcFlowTerminal, ObjectHelper<IfcStackTerminal,1> { IfcStackTerminal() : Object("IfcStackTerminal") {}
4234 		Maybe< IfcStackTerminalTypeEnum::Out > PredefinedType;
4235     };
4236 
4237     // C++ wrapper for IfcStackTerminalType
IfcStackTerminalTypeIfcStackTerminalType4238     struct IfcStackTerminalType : IfcFlowTerminalType, ObjectHelper<IfcStackTerminalType,1> { IfcStackTerminalType() : Object("IfcStackTerminalType") {}
4239 		IfcStackTerminalTypeEnum::Out PredefinedType;
4240     };
4241 
4242     // C++ wrapper for IfcStair
IfcStairIfcStair4243     struct IfcStair : IfcBuildingElement, ObjectHelper<IfcStair,1> { IfcStair() : Object("IfcStair") {}
4244 		Maybe< IfcStairTypeEnum::Out > PredefinedType;
4245     };
4246 
4247     // C++ wrapper for IfcStairFlight
IfcStairFlightIfcStairFlight4248     struct IfcStairFlight : IfcBuildingElement, ObjectHelper<IfcStairFlight,5> { IfcStairFlight() : Object("IfcStairFlight") {}
4249 		Maybe< IfcInteger::Out > NumberOfRisers;
4250 		Maybe< IfcInteger::Out > NumberOfTreads;
4251 		Maybe< IfcPositiveLengthMeasure::Out > RiserHeight;
4252 		Maybe< IfcPositiveLengthMeasure::Out > TreadLength;
4253 		Maybe< IfcStairFlightTypeEnum::Out > PredefinedType;
4254     };
4255 
4256     // C++ wrapper for IfcStairFlightType
IfcStairFlightTypeIfcStairFlightType4257     struct IfcStairFlightType : IfcBuildingElementType, ObjectHelper<IfcStairFlightType,1> { IfcStairFlightType() : Object("IfcStairFlightType") {}
4258 		IfcStairFlightTypeEnum::Out PredefinedType;
4259     };
4260 
4261     // C++ wrapper for IfcStairType
IfcStairTypeIfcStairType4262     struct IfcStairType : IfcBuildingElementType, ObjectHelper<IfcStairType,1> { IfcStairType() : Object("IfcStairType") {}
4263 		IfcStairTypeEnum::Out PredefinedType;
4264     };
4265 
4266     // C++ wrapper for IfcStructuralActivity
IfcStructuralActivityIfcStructuralActivity4267     struct IfcStructuralActivity : IfcProduct, ObjectHelper<IfcStructuralActivity,2> { IfcStructuralActivity() : Object("IfcStructuralActivity") {}
4268 		Lazy< NotImplemented > AppliedLoad;
4269 		IfcGlobalOrLocalEnum::Out GlobalOrLocal;
4270     };
4271 
4272     // C++ wrapper for IfcStructuralAction
IfcStructuralActionIfcStructuralAction4273     struct IfcStructuralAction : IfcStructuralActivity, ObjectHelper<IfcStructuralAction,1> { IfcStructuralAction() : Object("IfcStructuralAction") {}
4274 		Maybe< IfcBoolean::Out > DestabilizingLoad;
4275     };
4276 
4277     // C++ wrapper for IfcStructuralAnalysisModel
IfcStructuralAnalysisModelIfcStructuralAnalysisModel4278     struct IfcStructuralAnalysisModel : IfcSystem, ObjectHelper<IfcStructuralAnalysisModel,5> { IfcStructuralAnalysisModel() : Object("IfcStructuralAnalysisModel") {}
4279 		IfcAnalysisModelTypeEnum::Out PredefinedType;
4280 		Maybe< Lazy< IfcAxis2Placement3D > > OrientationOf2DPlane;
4281 		Maybe< ListOf< Lazy< IfcStructuralLoadGroup >, 1, 0 > > LoadedBy;
4282 		Maybe< ListOf< Lazy< IfcStructuralResultGroup >, 1, 0 > > HasResults;
4283 		Maybe< Lazy< IfcObjectPlacement > > SharedPlacement;
4284     };
4285 
4286     // C++ wrapper for IfcStructuralItem
IfcStructuralItemIfcStructuralItem4287     struct IfcStructuralItem : IfcProduct, ObjectHelper<IfcStructuralItem,0> { IfcStructuralItem() : Object("IfcStructuralItem") {}
4288 
4289     };
4290 
4291     // C++ wrapper for IfcStructuralConnection
IfcStructuralConnectionIfcStructuralConnection4292     struct IfcStructuralConnection : IfcStructuralItem, ObjectHelper<IfcStructuralConnection,1> { IfcStructuralConnection() : Object("IfcStructuralConnection") {}
4293 		Maybe< Lazy< NotImplemented > > AppliedCondition;
4294     };
4295 
4296     // C++ wrapper for IfcStructuralCurveAction
IfcStructuralCurveActionIfcStructuralCurveAction4297     struct IfcStructuralCurveAction : IfcStructuralAction, ObjectHelper<IfcStructuralCurveAction,2> { IfcStructuralCurveAction() : Object("IfcStructuralCurveAction") {}
4298 		Maybe< IfcProjectedOrTrueLengthEnum::Out > ProjectedOrTrue;
4299 		IfcStructuralCurveActivityTypeEnum::Out PredefinedType;
4300     };
4301 
4302     // C++ wrapper for IfcStructuralCurveConnection
IfcStructuralCurveConnectionIfcStructuralCurveConnection4303     struct IfcStructuralCurveConnection : IfcStructuralConnection, ObjectHelper<IfcStructuralCurveConnection,1> { IfcStructuralCurveConnection() : Object("IfcStructuralCurveConnection") {}
4304 		Lazy< IfcDirection > Axis;
4305     };
4306 
4307     // C++ wrapper for IfcStructuralMember
IfcStructuralMemberIfcStructuralMember4308     struct IfcStructuralMember : IfcStructuralItem, ObjectHelper<IfcStructuralMember,0> { IfcStructuralMember() : Object("IfcStructuralMember") {}
4309 
4310     };
4311 
4312     // C++ wrapper for IfcStructuralCurveMember
IfcStructuralCurveMemberIfcStructuralCurveMember4313     struct IfcStructuralCurveMember : IfcStructuralMember, ObjectHelper<IfcStructuralCurveMember,2> { IfcStructuralCurveMember() : Object("IfcStructuralCurveMember") {}
4314 		IfcStructuralCurveMemberTypeEnum::Out PredefinedType;
4315 		Lazy< IfcDirection > Axis;
4316     };
4317 
4318     // C++ wrapper for IfcStructuralCurveMemberVarying
IfcStructuralCurveMemberVaryingIfcStructuralCurveMemberVarying4319     struct IfcStructuralCurveMemberVarying : IfcStructuralCurveMember, ObjectHelper<IfcStructuralCurveMemberVarying,0> { IfcStructuralCurveMemberVarying() : Object("IfcStructuralCurveMemberVarying") {}
4320 
4321     };
4322 
4323     // C++ wrapper for IfcStructuralReaction
IfcStructuralReactionIfcStructuralReaction4324     struct IfcStructuralReaction : IfcStructuralActivity, ObjectHelper<IfcStructuralReaction,0> { IfcStructuralReaction() : Object("IfcStructuralReaction") {}
4325 
4326     };
4327 
4328     // C++ wrapper for IfcStructuralCurveReaction
IfcStructuralCurveReactionIfcStructuralCurveReaction4329     struct IfcStructuralCurveReaction : IfcStructuralReaction, ObjectHelper<IfcStructuralCurveReaction,1> { IfcStructuralCurveReaction() : Object("IfcStructuralCurveReaction") {}
4330 		IfcStructuralCurveActivityTypeEnum::Out PredefinedType;
4331     };
4332 
4333     // C++ wrapper for IfcStructuralLinearAction
IfcStructuralLinearActionIfcStructuralLinearAction4334     struct IfcStructuralLinearAction : IfcStructuralCurveAction, ObjectHelper<IfcStructuralLinearAction,0> { IfcStructuralLinearAction() : Object("IfcStructuralLinearAction") {}
4335 
4336     };
4337 
4338     // C++ wrapper for IfcStructuralLoadGroup
IfcStructuralLoadGroupIfcStructuralLoadGroup4339     struct IfcStructuralLoadGroup : IfcGroup, ObjectHelper<IfcStructuralLoadGroup,5> { IfcStructuralLoadGroup() : Object("IfcStructuralLoadGroup") {}
4340 		IfcLoadGroupTypeEnum::Out PredefinedType;
4341 		IfcActionTypeEnum::Out ActionType;
4342 		IfcActionSourceTypeEnum::Out ActionSource;
4343 		Maybe< IfcRatioMeasure::Out > Coefficient;
4344 		Maybe< IfcLabel::Out > Purpose;
4345     };
4346 
4347     // C++ wrapper for IfcStructuralLoadCase
IfcStructuralLoadCaseIfcStructuralLoadCase4348     struct IfcStructuralLoadCase : IfcStructuralLoadGroup, ObjectHelper<IfcStructuralLoadCase,1> { IfcStructuralLoadCase() : Object("IfcStructuralLoadCase") {}
4349 		Maybe< ListOf< IfcRatioMeasure, 3, 3 >::Out > SelfWeightCoefficients;
4350     };
4351 
4352     // C++ wrapper for IfcStructuralSurfaceAction
IfcStructuralSurfaceActionIfcStructuralSurfaceAction4353     struct IfcStructuralSurfaceAction : IfcStructuralAction, ObjectHelper<IfcStructuralSurfaceAction,2> { IfcStructuralSurfaceAction() : Object("IfcStructuralSurfaceAction") {}
4354 		Maybe< IfcProjectedOrTrueLengthEnum::Out > ProjectedOrTrue;
4355 		IfcStructuralSurfaceActivityTypeEnum::Out PredefinedType;
4356     };
4357 
4358     // C++ wrapper for IfcStructuralPlanarAction
IfcStructuralPlanarActionIfcStructuralPlanarAction4359     struct IfcStructuralPlanarAction : IfcStructuralSurfaceAction, ObjectHelper<IfcStructuralPlanarAction,0> { IfcStructuralPlanarAction() : Object("IfcStructuralPlanarAction") {}
4360 
4361     };
4362 
4363     // C++ wrapper for IfcStructuralPointAction
IfcStructuralPointActionIfcStructuralPointAction4364     struct IfcStructuralPointAction : IfcStructuralAction, ObjectHelper<IfcStructuralPointAction,0> { IfcStructuralPointAction() : Object("IfcStructuralPointAction") {}
4365 
4366     };
4367 
4368     // C++ wrapper for IfcStructuralPointConnection
IfcStructuralPointConnectionIfcStructuralPointConnection4369     struct IfcStructuralPointConnection : IfcStructuralConnection, ObjectHelper<IfcStructuralPointConnection,1> { IfcStructuralPointConnection() : Object("IfcStructuralPointConnection") {}
4370 		Maybe< Lazy< IfcAxis2Placement3D > > ConditionCoordinateSystem;
4371     };
4372 
4373     // C++ wrapper for IfcStructuralPointReaction
IfcStructuralPointReactionIfcStructuralPointReaction4374     struct IfcStructuralPointReaction : IfcStructuralReaction, ObjectHelper<IfcStructuralPointReaction,0> { IfcStructuralPointReaction() : Object("IfcStructuralPointReaction") {}
4375 
4376     };
4377 
4378     // C++ wrapper for IfcStructuralResultGroup
IfcStructuralResultGroupIfcStructuralResultGroup4379     struct IfcStructuralResultGroup : IfcGroup, ObjectHelper<IfcStructuralResultGroup,3> { IfcStructuralResultGroup() : Object("IfcStructuralResultGroup") {}
4380 		IfcAnalysisTheoryTypeEnum::Out TheoryType;
4381 		Maybe< Lazy< IfcStructuralLoadGroup > > ResultForLoadGroup;
4382 		IfcBoolean::Out IsLinear;
4383     };
4384 
4385     // C++ wrapper for IfcStructuralSurfaceConnection
IfcStructuralSurfaceConnectionIfcStructuralSurfaceConnection4386     struct IfcStructuralSurfaceConnection : IfcStructuralConnection, ObjectHelper<IfcStructuralSurfaceConnection,0> { IfcStructuralSurfaceConnection() : Object("IfcStructuralSurfaceConnection") {}
4387 
4388     };
4389 
4390     // C++ wrapper for IfcStructuralSurfaceMember
IfcStructuralSurfaceMemberIfcStructuralSurfaceMember4391     struct IfcStructuralSurfaceMember : IfcStructuralMember, ObjectHelper<IfcStructuralSurfaceMember,2> { IfcStructuralSurfaceMember() : Object("IfcStructuralSurfaceMember") {}
4392 		IfcStructuralSurfaceMemberTypeEnum::Out PredefinedType;
4393 		Maybe< IfcPositiveLengthMeasure::Out > Thickness;
4394     };
4395 
4396     // C++ wrapper for IfcStructuralSurfaceMemberVarying
IfcStructuralSurfaceMemberVaryingIfcStructuralSurfaceMemberVarying4397     struct IfcStructuralSurfaceMemberVarying : IfcStructuralSurfaceMember, ObjectHelper<IfcStructuralSurfaceMemberVarying,0> { IfcStructuralSurfaceMemberVarying() : Object("IfcStructuralSurfaceMemberVarying") {}
4398 
4399     };
4400 
4401     // C++ wrapper for IfcStructuralSurfaceReaction
IfcStructuralSurfaceReactionIfcStructuralSurfaceReaction4402     struct IfcStructuralSurfaceReaction : IfcStructuralReaction, ObjectHelper<IfcStructuralSurfaceReaction,1> { IfcStructuralSurfaceReaction() : Object("IfcStructuralSurfaceReaction") {}
4403 		IfcStructuralSurfaceActivityTypeEnum::Out PredefinedType;
4404     };
4405 
4406     // C++ wrapper for IfcStyleModel
IfcStyleModelIfcStyleModel4407     struct IfcStyleModel : IfcRepresentation, ObjectHelper<IfcStyleModel,0> { IfcStyleModel() : Object("IfcStyleModel") {}
4408 
4409     };
4410 
4411     // C++ wrapper for IfcStyledItem
IfcStyledItemIfcStyledItem4412     struct IfcStyledItem : IfcRepresentationItem, ObjectHelper<IfcStyledItem,3> { IfcStyledItem() : Object("IfcStyledItem") {}
4413 		Maybe< Lazy< IfcRepresentationItem > > Item;
4414 		ListOf< IfcStyleAssignmentSelect, 1, 0 >::Out Styles;
4415 		Maybe< IfcLabel::Out > Name;
4416     };
4417 
4418     // C++ wrapper for IfcStyledRepresentation
IfcStyledRepresentationIfcStyledRepresentation4419     struct IfcStyledRepresentation : IfcStyleModel, ObjectHelper<IfcStyledRepresentation,0> { IfcStyledRepresentation() : Object("IfcStyledRepresentation") {}
4420 
4421     };
4422 
4423     // C++ wrapper for IfcSubContractResource
IfcSubContractResourceIfcSubContractResource4424     struct IfcSubContractResource : IfcConstructionResource, ObjectHelper<IfcSubContractResource,1> { IfcSubContractResource() : Object("IfcSubContractResource") {}
4425 		Maybe< IfcSubContractResourceTypeEnum::Out > PredefinedType;
4426     };
4427 
4428     // C++ wrapper for IfcSubContractResourceType
IfcSubContractResourceTypeIfcSubContractResourceType4429     struct IfcSubContractResourceType : IfcConstructionResourceType, ObjectHelper<IfcSubContractResourceType,1> { IfcSubContractResourceType() : Object("IfcSubContractResourceType") {}
4430 		IfcSubContractResourceTypeEnum::Out PredefinedType;
4431     };
4432 
4433     // C++ wrapper for IfcSubedge
IfcSubedgeIfcSubedge4434     struct IfcSubedge : IfcEdge, ObjectHelper<IfcSubedge,1> { IfcSubedge() : Object("IfcSubedge") {}
4435 		Lazy< IfcEdge > ParentEdge;
4436     };
4437 
4438     // C++ wrapper for IfcSurfaceCurveSweptAreaSolid
IfcSurfaceCurveSweptAreaSolidIfcSurfaceCurveSweptAreaSolid4439     struct IfcSurfaceCurveSweptAreaSolid : IfcSweptAreaSolid, ObjectHelper<IfcSurfaceCurveSweptAreaSolid,4> { IfcSurfaceCurveSweptAreaSolid() : Object("IfcSurfaceCurveSweptAreaSolid") {}
4440 		Lazy< IfcCurve > Directrix;
4441 		Maybe< IfcParameterValue::Out > StartParam;
4442 		Maybe< IfcParameterValue::Out > EndParam;
4443 		Lazy< IfcSurface > ReferenceSurface;
4444     };
4445 
4446     // C++ wrapper for IfcSurfaceFeature
IfcSurfaceFeatureIfcSurfaceFeature4447     struct IfcSurfaceFeature : IfcFeatureElement, ObjectHelper<IfcSurfaceFeature,1> { IfcSurfaceFeature() : Object("IfcSurfaceFeature") {}
4448 		Maybe< IfcSurfaceFeatureTypeEnum::Out > PredefinedType;
4449     };
4450 
4451     // C++ wrapper for IfcSweptSurface
IfcSweptSurfaceIfcSweptSurface4452     struct IfcSweptSurface : IfcSurface, ObjectHelper<IfcSweptSurface,2> { IfcSweptSurface() : Object("IfcSweptSurface") {}
4453 		Lazy< IfcProfileDef > SweptCurve;
4454 		Maybe< Lazy< IfcAxis2Placement3D > > Position;
4455     };
4456 
4457     // C++ wrapper for IfcSurfaceOfLinearExtrusion
IfcSurfaceOfLinearExtrusionIfcSurfaceOfLinearExtrusion4458     struct IfcSurfaceOfLinearExtrusion : IfcSweptSurface, ObjectHelper<IfcSurfaceOfLinearExtrusion,2> { IfcSurfaceOfLinearExtrusion() : Object("IfcSurfaceOfLinearExtrusion") {}
4459 		Lazy< IfcDirection > ExtrudedDirection;
4460 		IfcLengthMeasure::Out Depth;
4461     };
4462 
4463     // C++ wrapper for IfcSurfaceOfRevolution
IfcSurfaceOfRevolutionIfcSurfaceOfRevolution4464     struct IfcSurfaceOfRevolution : IfcSweptSurface, ObjectHelper<IfcSurfaceOfRevolution,1> { IfcSurfaceOfRevolution() : Object("IfcSurfaceOfRevolution") {}
4465 		Lazy< IfcAxis1Placement > AxisPosition;
4466     };
4467 
4468     // C++ wrapper for IfcSurfaceStyle
IfcSurfaceStyleIfcSurfaceStyle4469     struct IfcSurfaceStyle : IfcPresentationStyle, ObjectHelper<IfcSurfaceStyle,2> { IfcSurfaceStyle() : Object("IfcSurfaceStyle") {}
4470 		IfcSurfaceSide::Out Side;
4471 		ListOf< IfcSurfaceStyleElementSelect, 1, 5 >::Out Styles;
4472     };
4473 
4474     // C++ wrapper for IfcSurfaceStyleShading
IfcSurfaceStyleShadingIfcSurfaceStyleShading4475     struct IfcSurfaceStyleShading : IfcPresentationItem, ObjectHelper<IfcSurfaceStyleShading,2> { IfcSurfaceStyleShading() : Object("IfcSurfaceStyleShading") {}
4476 		Lazy< IfcColourRgb > SurfaceColour;
4477 		Maybe< IfcNormalisedRatioMeasure::Out > Transparency;
4478     };
4479 
4480     // C++ wrapper for IfcSurfaceStyleRendering
IfcSurfaceStyleRenderingIfcSurfaceStyleRendering4481     struct IfcSurfaceStyleRendering : IfcSurfaceStyleShading, ObjectHelper<IfcSurfaceStyleRendering,7> { IfcSurfaceStyleRendering() : Object("IfcSurfaceStyleRendering") {}
4482 		Maybe< IfcColourOrFactor::Out > DiffuseColour;
4483 		Maybe< IfcColourOrFactor::Out > TransmissionColour;
4484 		Maybe< IfcColourOrFactor::Out > DiffuseTransmissionColour;
4485 		Maybe< IfcColourOrFactor::Out > ReflectionColour;
4486 		Maybe< IfcColourOrFactor::Out > SpecularColour;
4487 		Maybe< IfcSpecularHighlightSelect::Out > SpecularHighlight;
4488 		IfcReflectanceMethodEnum::Out ReflectanceMethod;
4489     };
4490 
4491     // C++ wrapper for IfcSurfaceStyleWithTextures
IfcSurfaceStyleWithTexturesIfcSurfaceStyleWithTextures4492     struct IfcSurfaceStyleWithTextures : IfcPresentationItem, ObjectHelper<IfcSurfaceStyleWithTextures,1> { IfcSurfaceStyleWithTextures() : Object("IfcSurfaceStyleWithTextures") {}
4493 		ListOf< Lazy< NotImplemented >, 1, 0 > Textures;
4494     };
4495 
4496     // C++ wrapper for IfcSweptDiskSolid
IfcSweptDiskSolidIfcSweptDiskSolid4497     struct IfcSweptDiskSolid : IfcSolidModel, ObjectHelper<IfcSweptDiskSolid,5> { IfcSweptDiskSolid() : Object("IfcSweptDiskSolid") {}
4498 		Lazy< IfcCurve > Directrix;
4499 		IfcPositiveLengthMeasure::Out Radius;
4500 		Maybe< IfcPositiveLengthMeasure::Out > InnerRadius;
4501 		Maybe< IfcParameterValue::Out > StartParam;
4502 		Maybe< IfcParameterValue::Out > EndParam;
4503     };
4504 
4505     // C++ wrapper for IfcSweptDiskSolidPolygonal
IfcSweptDiskSolidPolygonalIfcSweptDiskSolidPolygonal4506     struct IfcSweptDiskSolidPolygonal : IfcSweptDiskSolid, ObjectHelper<IfcSweptDiskSolidPolygonal,1> { IfcSweptDiskSolidPolygonal() : Object("IfcSweptDiskSolidPolygonal") {}
4507 		Maybe< IfcPositiveLengthMeasure::Out > FilletRadius;
4508     };
4509 
4510     // C++ wrapper for IfcSwitchingDevice
IfcSwitchingDeviceIfcSwitchingDevice4511     struct IfcSwitchingDevice : IfcFlowController, ObjectHelper<IfcSwitchingDevice,1> { IfcSwitchingDevice() : Object("IfcSwitchingDevice") {}
4512 		Maybe< IfcSwitchingDeviceTypeEnum::Out > PredefinedType;
4513     };
4514 
4515     // C++ wrapper for IfcSwitchingDeviceType
IfcSwitchingDeviceTypeIfcSwitchingDeviceType4516     struct IfcSwitchingDeviceType : IfcFlowControllerType, ObjectHelper<IfcSwitchingDeviceType,1> { IfcSwitchingDeviceType() : Object("IfcSwitchingDeviceType") {}
4517 		IfcSwitchingDeviceTypeEnum::Out PredefinedType;
4518     };
4519 
4520     // C++ wrapper for IfcSystemFurnitureElement
IfcSystemFurnitureElementIfcSystemFurnitureElement4521     struct IfcSystemFurnitureElement : IfcFurnishingElement, ObjectHelper<IfcSystemFurnitureElement,1> { IfcSystemFurnitureElement() : Object("IfcSystemFurnitureElement") {}
4522 		Maybe< IfcSystemFurnitureElementTypeEnum::Out > PredefinedType;
4523     };
4524 
4525     // C++ wrapper for IfcSystemFurnitureElementType
IfcSystemFurnitureElementTypeIfcSystemFurnitureElementType4526     struct IfcSystemFurnitureElementType : IfcFurnishingElementType, ObjectHelper<IfcSystemFurnitureElementType,1> { IfcSystemFurnitureElementType() : Object("IfcSystemFurnitureElementType") {}
4527 		Maybe< IfcSystemFurnitureElementTypeEnum::Out > PredefinedType;
4528     };
4529 
4530     // C++ wrapper for IfcTShapeProfileDef
IfcTShapeProfileDefIfcTShapeProfileDef4531     struct IfcTShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper<IfcTShapeProfileDef,9> { IfcTShapeProfileDef() : Object("IfcTShapeProfileDef") {}
4532 		IfcPositiveLengthMeasure::Out Depth;
4533 		IfcPositiveLengthMeasure::Out FlangeWidth;
4534 		IfcPositiveLengthMeasure::Out WebThickness;
4535 		IfcPositiveLengthMeasure::Out FlangeThickness;
4536 		Maybe< IfcNonNegativeLengthMeasure::Out > FilletRadius;
4537 		Maybe< IfcNonNegativeLengthMeasure::Out > FlangeEdgeRadius;
4538 		Maybe< IfcNonNegativeLengthMeasure::Out > WebEdgeRadius;
4539 		Maybe< IfcPlaneAngleMeasure::Out > WebSlope;
4540 		Maybe< IfcPlaneAngleMeasure::Out > FlangeSlope;
4541     };
4542 
4543     // C++ wrapper for IfcTank
IfcTankIfcTank4544     struct IfcTank : IfcFlowStorageDevice, ObjectHelper<IfcTank,1> { IfcTank() : Object("IfcTank") {}
4545 		Maybe< IfcTankTypeEnum::Out > PredefinedType;
4546     };
4547 
4548     // C++ wrapper for IfcTankType
IfcTankTypeIfcTankType4549     struct IfcTankType : IfcFlowStorageDeviceType, ObjectHelper<IfcTankType,1> { IfcTankType() : Object("IfcTankType") {}
4550 		IfcTankTypeEnum::Out PredefinedType;
4551     };
4552 
4553     // C++ wrapper for IfcTask
IfcTaskIfcTask4554     struct IfcTask : IfcProcess, ObjectHelper<IfcTask,6> { IfcTask() : Object("IfcTask") {}
4555 		Maybe< IfcLabel::Out > Status;
4556 		Maybe< IfcLabel::Out > WorkMethod;
4557 		IfcBoolean::Out IsMilestone;
4558 		Maybe< IfcInteger::Out > Priority;
4559 		Maybe< Lazy< NotImplemented > > TaskTime;
4560 		Maybe< IfcTaskTypeEnum::Out > PredefinedType;
4561     };
4562 
4563     // C++ wrapper for IfcTaskType
IfcTaskTypeIfcTaskType4564     struct IfcTaskType : IfcTypeProcess, ObjectHelper<IfcTaskType,2> { IfcTaskType() : Object("IfcTaskType") {}
4565 		IfcTaskTypeEnum::Out PredefinedType;
4566 		Maybe< IfcLabel::Out > WorkMethod;
4567     };
4568 
4569     // C++ wrapper for IfcTendon
IfcTendonIfcTendon4570     struct IfcTendon : IfcReinforcingElement, ObjectHelper<IfcTendon,8> { IfcTendon() : Object("IfcTendon") {}
4571 		Maybe< IfcTendonTypeEnum::Out > PredefinedType;
4572 		Maybe< IfcPositiveLengthMeasure::Out > NominalDiameter;
4573 		Maybe< IfcAreaMeasure::Out > CrossSectionArea;
4574 		Maybe< IfcForceMeasure::Out > TensionForce;
4575 		Maybe< IfcPressureMeasure::Out > PreStress;
4576 		Maybe< IfcNormalisedRatioMeasure::Out > FrictionCoefficient;
4577 		Maybe< IfcPositiveLengthMeasure::Out > AnchorageSlip;
4578 		Maybe< IfcPositiveLengthMeasure::Out > MinCurvatureRadius;
4579     };
4580 
4581     // C++ wrapper for IfcTendonAnchor
IfcTendonAnchorIfcTendonAnchor4582     struct IfcTendonAnchor : IfcReinforcingElement, ObjectHelper<IfcTendonAnchor,1> { IfcTendonAnchor() : Object("IfcTendonAnchor") {}
4583 		Maybe< IfcTendonAnchorTypeEnum::Out > PredefinedType;
4584     };
4585 
4586     // C++ wrapper for IfcTendonAnchorType
IfcTendonAnchorTypeIfcTendonAnchorType4587     struct IfcTendonAnchorType : IfcReinforcingElementType, ObjectHelper<IfcTendonAnchorType,1> { IfcTendonAnchorType() : Object("IfcTendonAnchorType") {}
4588 		IfcTendonAnchorTypeEnum::Out PredefinedType;
4589     };
4590 
4591     // C++ wrapper for IfcTendonType
IfcTendonTypeIfcTendonType4592     struct IfcTendonType : IfcReinforcingElementType, ObjectHelper<IfcTendonType,4> { IfcTendonType() : Object("IfcTendonType") {}
4593 		IfcTendonTypeEnum::Out PredefinedType;
4594 		Maybe< IfcPositiveLengthMeasure::Out > NominalDiameter;
4595 		Maybe< IfcAreaMeasure::Out > CrossSectionArea;
4596 		Maybe< IfcPositiveLengthMeasure::Out > SheathDiameter;
4597     };
4598 
4599     // C++ wrapper for IfcTextLiteral
IfcTextLiteralIfcTextLiteral4600     struct IfcTextLiteral : IfcGeometricRepresentationItem, ObjectHelper<IfcTextLiteral,3> { IfcTextLiteral() : Object("IfcTextLiteral") {}
4601 		IfcPresentableText::Out Literal;
4602 		IfcAxis2Placement::Out Placement;
4603 		IfcTextPath::Out Path;
4604     };
4605 
4606     // C++ wrapper for IfcTextLiteralWithExtent
IfcTextLiteralWithExtentIfcTextLiteralWithExtent4607     struct IfcTextLiteralWithExtent : IfcTextLiteral, ObjectHelper<IfcTextLiteralWithExtent,2> { IfcTextLiteralWithExtent() : Object("IfcTextLiteralWithExtent") {}
4608 		Lazy< IfcPlanarExtent > Extent;
4609 		IfcBoxAlignment::Out BoxAlignment;
4610     };
4611 
4612     // C++ wrapper for IfcTopologyRepresentation
IfcTopologyRepresentationIfcTopologyRepresentation4613     struct IfcTopologyRepresentation : IfcShapeModel, ObjectHelper<IfcTopologyRepresentation,0> { IfcTopologyRepresentation() : Object("IfcTopologyRepresentation") {}
4614 
4615     };
4616 
4617     // C++ wrapper for IfcToroidalSurface
IfcToroidalSurfaceIfcToroidalSurface4618     struct IfcToroidalSurface : IfcElementarySurface, ObjectHelper<IfcToroidalSurface,2> { IfcToroidalSurface() : Object("IfcToroidalSurface") {}
4619 		IfcPositiveLengthMeasure::Out MajorRadius;
4620 		IfcPositiveLengthMeasure::Out MinorRadius;
4621     };
4622 
4623     // C++ wrapper for IfcTransformer
IfcTransformerIfcTransformer4624     struct IfcTransformer : IfcEnergyConversionDevice, ObjectHelper<IfcTransformer,1> { IfcTransformer() : Object("IfcTransformer") {}
4625 		Maybe< IfcTransformerTypeEnum::Out > PredefinedType;
4626     };
4627 
4628     // C++ wrapper for IfcTransformerType
IfcTransformerTypeIfcTransformerType4629     struct IfcTransformerType : IfcEnergyConversionDeviceType, ObjectHelper<IfcTransformerType,1> { IfcTransformerType() : Object("IfcTransformerType") {}
4630 		IfcTransformerTypeEnum::Out PredefinedType;
4631     };
4632 
4633     // C++ wrapper for IfcTransportElement
IfcTransportElementIfcTransportElement4634     struct IfcTransportElement : IfcElement, ObjectHelper<IfcTransportElement,1> { IfcTransportElement() : Object("IfcTransportElement") {}
4635 		Maybe< IfcTransportElementTypeEnum::Out > PredefinedType;
4636     };
4637 
4638     // C++ wrapper for IfcTransportElementType
IfcTransportElementTypeIfcTransportElementType4639     struct IfcTransportElementType : IfcElementType, ObjectHelper<IfcTransportElementType,1> { IfcTransportElementType() : Object("IfcTransportElementType") {}
4640 		IfcTransportElementTypeEnum::Out PredefinedType;
4641     };
4642 
4643     // C++ wrapper for IfcTrapeziumProfileDef
IfcTrapeziumProfileDefIfcTrapeziumProfileDef4644     struct IfcTrapeziumProfileDef : IfcParameterizedProfileDef, ObjectHelper<IfcTrapeziumProfileDef,4> { IfcTrapeziumProfileDef() : Object("IfcTrapeziumProfileDef") {}
4645 		IfcPositiveLengthMeasure::Out BottomXDim;
4646 		IfcPositiveLengthMeasure::Out TopXDim;
4647 		IfcPositiveLengthMeasure::Out YDim;
4648 		IfcLengthMeasure::Out TopXOffset;
4649     };
4650 
4651     // C++ wrapper for IfcTriangulatedFaceSet
IfcTriangulatedFaceSetIfcTriangulatedFaceSet4652     struct IfcTriangulatedFaceSet : IfcTessellatedFaceSet, ObjectHelper<IfcTriangulatedFaceSet,2> { IfcTriangulatedFaceSet() : Object("IfcTriangulatedFaceSet") {}
4653 		Maybe< IfcBoolean::Out > Closed;
4654 		Maybe< ListOf< IfcPositiveInteger, 1, 0 >::Out > PnIndex;
4655     };
4656 
4657     // C++ wrapper for IfcTrimmedCurve
IfcTrimmedCurveIfcTrimmedCurve4658     struct IfcTrimmedCurve : IfcBoundedCurve, ObjectHelper<IfcTrimmedCurve,5> { IfcTrimmedCurve() : Object("IfcTrimmedCurve") {}
4659 		Lazy< IfcCurve > BasisCurve;
4660 		ListOf< IfcTrimmingSelect, 1, 2 >::Out Trim1;
4661 		ListOf< IfcTrimmingSelect, 1, 2 >::Out Trim2;
4662 		IfcBoolean::Out SenseAgreement;
4663 		IfcTrimmingPreference::Out MasterRepresentation;
4664     };
4665 
4666     // C++ wrapper for IfcTubeBundle
IfcTubeBundleIfcTubeBundle4667     struct IfcTubeBundle : IfcEnergyConversionDevice, ObjectHelper<IfcTubeBundle,1> { IfcTubeBundle() : Object("IfcTubeBundle") {}
4668 		Maybe< IfcTubeBundleTypeEnum::Out > PredefinedType;
4669     };
4670 
4671     // C++ wrapper for IfcTubeBundleType
IfcTubeBundleTypeIfcTubeBundleType4672     struct IfcTubeBundleType : IfcEnergyConversionDeviceType, ObjectHelper<IfcTubeBundleType,1> { IfcTubeBundleType() : Object("IfcTubeBundleType") {}
4673 		IfcTubeBundleTypeEnum::Out PredefinedType;
4674     };
4675 
4676     // C++ wrapper for IfcUShapeProfileDef
IfcUShapeProfileDefIfcUShapeProfileDef4677     struct IfcUShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper<IfcUShapeProfileDef,7> { IfcUShapeProfileDef() : Object("IfcUShapeProfileDef") {}
4678 		IfcPositiveLengthMeasure::Out Depth;
4679 		IfcPositiveLengthMeasure::Out FlangeWidth;
4680 		IfcPositiveLengthMeasure::Out WebThickness;
4681 		IfcPositiveLengthMeasure::Out FlangeThickness;
4682 		Maybe< IfcNonNegativeLengthMeasure::Out > FilletRadius;
4683 		Maybe< IfcNonNegativeLengthMeasure::Out > EdgeRadius;
4684 		Maybe< IfcPlaneAngleMeasure::Out > FlangeSlope;
4685     };
4686 
4687     // C++ wrapper for IfcUnitAssignment
IfcUnitAssignmentIfcUnitAssignment4688     struct IfcUnitAssignment :  ObjectHelper<IfcUnitAssignment,1> { IfcUnitAssignment() : Object("IfcUnitAssignment") {}
4689 		ListOf< IfcUnit, 1, 0 >::Out Units;
4690     };
4691 
4692     // C++ wrapper for IfcUnitaryControlElement
IfcUnitaryControlElementIfcUnitaryControlElement4693     struct IfcUnitaryControlElement : IfcDistributionControlElement, ObjectHelper<IfcUnitaryControlElement,1> { IfcUnitaryControlElement() : Object("IfcUnitaryControlElement") {}
4694 		Maybe< IfcUnitaryControlElementTypeEnum::Out > PredefinedType;
4695     };
4696 
4697     // C++ wrapper for IfcUnitaryControlElementType
IfcUnitaryControlElementTypeIfcUnitaryControlElementType4698     struct IfcUnitaryControlElementType : IfcDistributionControlElementType, ObjectHelper<IfcUnitaryControlElementType,1> { IfcUnitaryControlElementType() : Object("IfcUnitaryControlElementType") {}
4699 		IfcUnitaryControlElementTypeEnum::Out PredefinedType;
4700     };
4701 
4702     // C++ wrapper for IfcUnitaryEquipment
IfcUnitaryEquipmentIfcUnitaryEquipment4703     struct IfcUnitaryEquipment : IfcEnergyConversionDevice, ObjectHelper<IfcUnitaryEquipment,1> { IfcUnitaryEquipment() : Object("IfcUnitaryEquipment") {}
4704 		Maybe< IfcUnitaryEquipmentTypeEnum::Out > PredefinedType;
4705     };
4706 
4707     // C++ wrapper for IfcUnitaryEquipmentType
IfcUnitaryEquipmentTypeIfcUnitaryEquipmentType4708     struct IfcUnitaryEquipmentType : IfcEnergyConversionDeviceType, ObjectHelper<IfcUnitaryEquipmentType,1> { IfcUnitaryEquipmentType() : Object("IfcUnitaryEquipmentType") {}
4709 		IfcUnitaryEquipmentTypeEnum::Out PredefinedType;
4710     };
4711 
4712     // C++ wrapper for IfcValve
IfcValveIfcValve4713     struct IfcValve : IfcFlowController, ObjectHelper<IfcValve,1> { IfcValve() : Object("IfcValve") {}
4714 		Maybe< IfcValveTypeEnum::Out > PredefinedType;
4715     };
4716 
4717     // C++ wrapper for IfcValveType
IfcValveTypeIfcValveType4718     struct IfcValveType : IfcFlowControllerType, ObjectHelper<IfcValveType,1> { IfcValveType() : Object("IfcValveType") {}
4719 		IfcValveTypeEnum::Out PredefinedType;
4720     };
4721 
4722     // C++ wrapper for IfcVector
IfcVectorIfcVector4723     struct IfcVector : IfcGeometricRepresentationItem, ObjectHelper<IfcVector,2> { IfcVector() : Object("IfcVector") {}
4724 		Lazy< IfcDirection > Orientation;
4725 		IfcLengthMeasure::Out Magnitude;
4726     };
4727 
4728     // C++ wrapper for IfcVertex
IfcVertexIfcVertex4729     struct IfcVertex : IfcTopologicalRepresentationItem, ObjectHelper<IfcVertex,0> { IfcVertex() : Object("IfcVertex") {}
4730 
4731     };
4732 
4733     // C++ wrapper for IfcVertexLoop
IfcVertexLoopIfcVertexLoop4734     struct IfcVertexLoop : IfcLoop, ObjectHelper<IfcVertexLoop,1> { IfcVertexLoop() : Object("IfcVertexLoop") {}
4735 		Lazy< IfcVertex > LoopVertex;
4736     };
4737 
4738     // C++ wrapper for IfcVertexPoint
IfcVertexPointIfcVertexPoint4739     struct IfcVertexPoint : IfcVertex, ObjectHelper<IfcVertexPoint,1> { IfcVertexPoint() : Object("IfcVertexPoint") {}
4740 		Lazy< IfcPoint > VertexGeometry;
4741     };
4742 
4743     // C++ wrapper for IfcVibrationIsolator
IfcVibrationIsolatorIfcVibrationIsolator4744     struct IfcVibrationIsolator : IfcElementComponent, ObjectHelper<IfcVibrationIsolator,1> { IfcVibrationIsolator() : Object("IfcVibrationIsolator") {}
4745 		Maybe< IfcVibrationIsolatorTypeEnum::Out > PredefinedType;
4746     };
4747 
4748     // C++ wrapper for IfcVibrationIsolatorType
IfcVibrationIsolatorTypeIfcVibrationIsolatorType4749     struct IfcVibrationIsolatorType : IfcElementComponentType, ObjectHelper<IfcVibrationIsolatorType,1> { IfcVibrationIsolatorType() : Object("IfcVibrationIsolatorType") {}
4750 		IfcVibrationIsolatorTypeEnum::Out PredefinedType;
4751     };
4752 
4753     // C++ wrapper for IfcVirtualElement
IfcVirtualElementIfcVirtualElement4754     struct IfcVirtualElement : IfcElement, ObjectHelper<IfcVirtualElement,0> { IfcVirtualElement() : Object("IfcVirtualElement") {}
4755 
4756     };
4757 
4758     // C++ wrapper for IfcVoidingFeature
IfcVoidingFeatureIfcVoidingFeature4759     struct IfcVoidingFeature : IfcFeatureElementSubtraction, ObjectHelper<IfcVoidingFeature,1> { IfcVoidingFeature() : Object("IfcVoidingFeature") {}
4760 		Maybe< IfcVoidingFeatureTypeEnum::Out > PredefinedType;
4761     };
4762 
4763     // C++ wrapper for IfcWall
IfcWallIfcWall4764     struct IfcWall : IfcBuildingElement, ObjectHelper<IfcWall,1> { IfcWall() : Object("IfcWall") {}
4765 		Maybe< IfcWallTypeEnum::Out > PredefinedType;
4766     };
4767 
4768     // C++ wrapper for IfcWallElementedCase
IfcWallElementedCaseIfcWallElementedCase4769     struct IfcWallElementedCase : IfcWall, ObjectHelper<IfcWallElementedCase,0> { IfcWallElementedCase() : Object("IfcWallElementedCase") {}
4770 
4771     };
4772 
4773     // C++ wrapper for IfcWallStandardCase
IfcWallStandardCaseIfcWallStandardCase4774     struct IfcWallStandardCase : IfcWall, ObjectHelper<IfcWallStandardCase,0> { IfcWallStandardCase() : Object("IfcWallStandardCase") {}
4775 
4776     };
4777 
4778     // C++ wrapper for IfcWallType
IfcWallTypeIfcWallType4779     struct IfcWallType : IfcBuildingElementType, ObjectHelper<IfcWallType,1> { IfcWallType() : Object("IfcWallType") {}
4780 		IfcWallTypeEnum::Out PredefinedType;
4781     };
4782 
4783     // C++ wrapper for IfcWasteTerminal
IfcWasteTerminalIfcWasteTerminal4784     struct IfcWasteTerminal : IfcFlowTerminal, ObjectHelper<IfcWasteTerminal,1> { IfcWasteTerminal() : Object("IfcWasteTerminal") {}
4785 		Maybe< IfcWasteTerminalTypeEnum::Out > PredefinedType;
4786     };
4787 
4788     // C++ wrapper for IfcWasteTerminalType
IfcWasteTerminalTypeIfcWasteTerminalType4789     struct IfcWasteTerminalType : IfcFlowTerminalType, ObjectHelper<IfcWasteTerminalType,1> { IfcWasteTerminalType() : Object("IfcWasteTerminalType") {}
4790 		IfcWasteTerminalTypeEnum::Out PredefinedType;
4791     };
4792 
4793     // C++ wrapper for IfcWindow
IfcWindowIfcWindow4794     struct IfcWindow : IfcBuildingElement, ObjectHelper<IfcWindow,5> { IfcWindow() : Object("IfcWindow") {}
4795 		Maybe< IfcPositiveLengthMeasure::Out > OverallHeight;
4796 		Maybe< IfcPositiveLengthMeasure::Out > OverallWidth;
4797 		Maybe< IfcWindowTypeEnum::Out > PredefinedType;
4798 		Maybe< IfcWindowTypePartitioningEnum::Out > PartitioningType;
4799 		Maybe< IfcLabel::Out > UserDefinedPartitioningType;
4800     };
4801 
4802     // C++ wrapper for IfcWindowStandardCase
IfcWindowStandardCaseIfcWindowStandardCase4803     struct IfcWindowStandardCase : IfcWindow, ObjectHelper<IfcWindowStandardCase,0> { IfcWindowStandardCase() : Object("IfcWindowStandardCase") {}
4804 
4805     };
4806 
4807     // C++ wrapper for IfcWindowStyle
IfcWindowStyleIfcWindowStyle4808     struct IfcWindowStyle : IfcTypeProduct, ObjectHelper<IfcWindowStyle,4> { IfcWindowStyle() : Object("IfcWindowStyle") {}
4809 		IfcWindowStyleConstructionEnum::Out ConstructionType;
4810 		IfcWindowStyleOperationEnum::Out OperationType;
4811 		IfcBoolean::Out ParameterTakesPrecedence;
4812 		IfcBoolean::Out Sizeable;
4813     };
4814 
4815     // C++ wrapper for IfcWindowType
IfcWindowTypeIfcWindowType4816     struct IfcWindowType : IfcBuildingElementType, ObjectHelper<IfcWindowType,4> { IfcWindowType() : Object("IfcWindowType") {}
4817 		IfcWindowTypeEnum::Out PredefinedType;
4818 		IfcWindowTypePartitioningEnum::Out PartitioningType;
4819 		Maybe< IfcBoolean::Out > ParameterTakesPrecedence;
4820 		Maybe< IfcLabel::Out > UserDefinedPartitioningType;
4821     };
4822 
4823     // C++ wrapper for IfcWorkCalendar
IfcWorkCalendarIfcWorkCalendar4824     struct IfcWorkCalendar : IfcControl, ObjectHelper<IfcWorkCalendar,3> { IfcWorkCalendar() : Object("IfcWorkCalendar") {}
4825 		Maybe< ListOf< Lazy< NotImplemented >, 1, 0 > > WorkingTimes;
4826 		Maybe< ListOf< Lazy< NotImplemented >, 1, 0 > > ExceptionTimes;
4827 		Maybe< IfcWorkCalendarTypeEnum::Out > PredefinedType;
4828     };
4829 
4830     // C++ wrapper for IfcWorkControl
IfcWorkControlIfcWorkControl4831     struct IfcWorkControl : IfcControl, ObjectHelper<IfcWorkControl,7> { IfcWorkControl() : Object("IfcWorkControl") {}
4832 		IfcDateTime::Out CreationDate;
4833 		Maybe< ListOf< Lazy< NotImplemented >, 1, 0 > > Creators;
4834 		Maybe< IfcLabel::Out > Purpose;
4835 		Maybe< IfcDuration::Out > Duration;
4836 		Maybe< IfcDuration::Out > TotalFloat;
4837 		IfcDateTime::Out StartTime;
4838 		Maybe< IfcDateTime::Out > FinishTime;
4839     };
4840 
4841     // C++ wrapper for IfcWorkPlan
IfcWorkPlanIfcWorkPlan4842     struct IfcWorkPlan : IfcWorkControl, ObjectHelper<IfcWorkPlan,1> { IfcWorkPlan() : Object("IfcWorkPlan") {}
4843 		Maybe< IfcWorkPlanTypeEnum::Out > PredefinedType;
4844     };
4845 
4846     // C++ wrapper for IfcWorkSchedule
IfcWorkScheduleIfcWorkSchedule4847     struct IfcWorkSchedule : IfcWorkControl, ObjectHelper<IfcWorkSchedule,1> { IfcWorkSchedule() : Object("IfcWorkSchedule") {}
4848 		Maybe< IfcWorkScheduleTypeEnum::Out > PredefinedType;
4849     };
4850 
4851     // C++ wrapper for IfcZShapeProfileDef
IfcZShapeProfileDefIfcZShapeProfileDef4852     struct IfcZShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper<IfcZShapeProfileDef,6> { IfcZShapeProfileDef() : Object("IfcZShapeProfileDef") {}
4853 		IfcPositiveLengthMeasure::Out Depth;
4854 		IfcPositiveLengthMeasure::Out FlangeWidth;
4855 		IfcPositiveLengthMeasure::Out WebThickness;
4856 		IfcPositiveLengthMeasure::Out FlangeThickness;
4857 		Maybe< IfcNonNegativeLengthMeasure::Out > FilletRadius;
4858 		Maybe< IfcNonNegativeLengthMeasure::Out > EdgeRadius;
4859     };
4860 
4861     // C++ wrapper for IfcZone
IfcZoneIfcZone4862     struct IfcZone : IfcSystem, ObjectHelper<IfcZone,1> { IfcZone() : Object("IfcZone") {}
4863 		Maybe< IfcLabel::Out > LongName;
4864     };
4865 
4866 	void GetSchema(EXPRESS::ConversionSchema& out);
4867 
4868 } //! IFC
4869 namespace STEP {
4870 
4871     // ******************************************************************************
4872     // Converter stubs
4873     // ******************************************************************************
4874 
4875 #define DECL_CONV_STUB(type) template <> size_t GenericFill<IFC::type>(const STEP::DB& db, const EXPRESS::LIST& params, IFC::type* in)
4876 
4877     DECL_CONV_STUB( IfcRoot );
4878     DECL_CONV_STUB( IfcObjectDefinition );
4879     DECL_CONV_STUB( IfcObject );
4880     DECL_CONV_STUB( IfcControl );
4881     DECL_CONV_STUB( IfcActionRequest );
4882     DECL_CONV_STUB( IfcActor );
4883     DECL_CONV_STUB( IfcProduct );
4884     DECL_CONV_STUB( IfcElement );
4885     DECL_CONV_STUB( IfcDistributionElement );
4886     DECL_CONV_STUB( IfcDistributionControlElement );
4887     DECL_CONV_STUB( IfcActuator );
4888     DECL_CONV_STUB( IfcTypeObject );
4889     DECL_CONV_STUB( IfcTypeProduct );
4890     DECL_CONV_STUB( IfcElementType );
4891     DECL_CONV_STUB( IfcDistributionElementType );
4892     DECL_CONV_STUB( IfcDistributionControlElementType );
4893     DECL_CONV_STUB( IfcActuatorType );
4894     DECL_CONV_STUB( IfcRepresentationItem );
4895     DECL_CONV_STUB( IfcGeometricRepresentationItem );
4896     DECL_CONV_STUB( IfcSolidModel );
4897     DECL_CONV_STUB( IfcManifoldSolidBrep );
4898     DECL_CONV_STUB( IfcAdvancedBrep );
4899     DECL_CONV_STUB( IfcAdvancedBrepWithVoids );
4900     DECL_CONV_STUB( IfcTopologicalRepresentationItem );
4901     DECL_CONV_STUB( IfcFace );
4902     DECL_CONV_STUB( IfcFaceSurface );
4903     DECL_CONV_STUB( IfcAdvancedFace );
4904     DECL_CONV_STUB( IfcDistributionFlowElement );
4905     DECL_CONV_STUB( IfcFlowTerminal );
4906     DECL_CONV_STUB( IfcAirTerminal );
4907     DECL_CONV_STUB( IfcFlowController );
4908     DECL_CONV_STUB( IfcAirTerminalBox );
4909     DECL_CONV_STUB( IfcDistributionFlowElementType );
4910     DECL_CONV_STUB( IfcFlowControllerType );
4911     DECL_CONV_STUB( IfcAirTerminalBoxType );
4912     DECL_CONV_STUB( IfcFlowTerminalType );
4913     DECL_CONV_STUB( IfcAirTerminalType );
4914     DECL_CONV_STUB( IfcEnergyConversionDevice );
4915     DECL_CONV_STUB( IfcAirToAirHeatRecovery );
4916     DECL_CONV_STUB( IfcEnergyConversionDeviceType );
4917     DECL_CONV_STUB( IfcAirToAirHeatRecoveryType );
4918     DECL_CONV_STUB( IfcAlarm );
4919     DECL_CONV_STUB( IfcAlarmType );
4920     DECL_CONV_STUB( IfcAnnotation );
4921     DECL_CONV_STUB( IfcAnnotationFillArea );
4922     DECL_CONV_STUB( IfcProfileDef );
4923     DECL_CONV_STUB( IfcArbitraryClosedProfileDef );
4924     DECL_CONV_STUB( IfcArbitraryOpenProfileDef );
4925     DECL_CONV_STUB( IfcArbitraryProfileDefWithVoids );
4926     DECL_CONV_STUB( IfcGroup );
4927     DECL_CONV_STUB( IfcAsset );
4928     DECL_CONV_STUB( IfcParameterizedProfileDef );
4929     DECL_CONV_STUB( IfcAsymmetricIShapeProfileDef );
4930     DECL_CONV_STUB( IfcAudioVisualAppliance );
4931     DECL_CONV_STUB( IfcAudioVisualApplianceType );
4932     DECL_CONV_STUB( IfcPlacement );
4933     DECL_CONV_STUB( IfcAxis1Placement );
4934     DECL_CONV_STUB( IfcAxis2Placement2D );
4935     DECL_CONV_STUB( IfcAxis2Placement3D );
4936     DECL_CONV_STUB( IfcCurve );
4937     DECL_CONV_STUB( IfcBoundedCurve );
4938     DECL_CONV_STUB( IfcBSplineCurve );
4939     DECL_CONV_STUB( IfcBSplineCurveWithKnots );
4940     DECL_CONV_STUB( IfcSurface );
4941     DECL_CONV_STUB( IfcBoundedSurface );
4942     DECL_CONV_STUB( IfcBSplineSurface );
4943     DECL_CONV_STUB( IfcBSplineSurfaceWithKnots );
4944     DECL_CONV_STUB( IfcBuildingElement );
4945     DECL_CONV_STUB( IfcBeam );
4946     DECL_CONV_STUB( IfcBeamStandardCase );
4947     DECL_CONV_STUB( IfcBuildingElementType );
4948     DECL_CONV_STUB( IfcBeamType );
4949     DECL_CONV_STUB( IfcPresentationItem );
4950     DECL_CONV_STUB( IfcCsgPrimitive3D );
4951     DECL_CONV_STUB( IfcBlock );
4952     DECL_CONV_STUB( IfcBoiler );
4953     DECL_CONV_STUB( IfcBoilerType );
4954     DECL_CONV_STUB( IfcBooleanResult );
4955     DECL_CONV_STUB( IfcBooleanClippingResult );
4956     DECL_CONV_STUB( IfcCompositeCurve );
4957     DECL_CONV_STUB( IfcCompositeCurveOnSurface );
4958     DECL_CONV_STUB( IfcBoundaryCurve );
4959     DECL_CONV_STUB( IfcBoundingBox );
4960     DECL_CONV_STUB( IfcHalfSpaceSolid );
4961     DECL_CONV_STUB( IfcBoxedHalfSpace );
4962     DECL_CONV_STUB( IfcSpatialElement );
4963     DECL_CONV_STUB( IfcSpatialStructureElement );
4964     DECL_CONV_STUB( IfcBuilding );
4965     DECL_CONV_STUB( IfcElementComponent );
4966     DECL_CONV_STUB( IfcBuildingElementPart );
4967     DECL_CONV_STUB( IfcElementComponentType );
4968     DECL_CONV_STUB( IfcBuildingElementPartType );
4969     DECL_CONV_STUB( IfcBuildingElementProxy );
4970     DECL_CONV_STUB( IfcBuildingElementProxyType );
4971     DECL_CONV_STUB( IfcBuildingStorey );
4972     DECL_CONV_STUB( IfcSystem );
4973     DECL_CONV_STUB( IfcBuildingSystem );
4974     DECL_CONV_STUB( IfcBurner );
4975     DECL_CONV_STUB( IfcBurnerType );
4976     DECL_CONV_STUB( IfcCShapeProfileDef );
4977     DECL_CONV_STUB( IfcFlowFitting );
4978     DECL_CONV_STUB( IfcCableCarrierFitting );
4979     DECL_CONV_STUB( IfcFlowFittingType );
4980     DECL_CONV_STUB( IfcCableCarrierFittingType );
4981     DECL_CONV_STUB( IfcFlowSegment );
4982     DECL_CONV_STUB( IfcCableCarrierSegment );
4983     DECL_CONV_STUB( IfcFlowSegmentType );
4984     DECL_CONV_STUB( IfcCableCarrierSegmentType );
4985     DECL_CONV_STUB( IfcCableFitting );
4986     DECL_CONV_STUB( IfcCableFittingType );
4987     DECL_CONV_STUB( IfcCableSegment );
4988     DECL_CONV_STUB( IfcCableSegmentType );
4989     DECL_CONV_STUB( IfcPoint );
4990     DECL_CONV_STUB( IfcCartesianPoint );
4991     DECL_CONV_STUB( IfcCartesianPointList );
4992     DECL_CONV_STUB( IfcCartesianPointList2D );
4993     DECL_CONV_STUB( IfcCartesianPointList3D );
4994     DECL_CONV_STUB( IfcCartesianTransformationOperator );
4995     DECL_CONV_STUB( IfcCartesianTransformationOperator2D );
4996     DECL_CONV_STUB( IfcCartesianTransformationOperator2DnonUniform );
4997     DECL_CONV_STUB( IfcCartesianTransformationOperator3D );
4998     DECL_CONV_STUB( IfcCartesianTransformationOperator3DnonUniform );
4999     DECL_CONV_STUB( IfcCenterLineProfileDef );
5000     DECL_CONV_STUB( IfcChiller );
5001     DECL_CONV_STUB( IfcChillerType );
5002     DECL_CONV_STUB( IfcChimney );
5003     DECL_CONV_STUB( IfcChimneyType );
5004     DECL_CONV_STUB( IfcConic );
5005     DECL_CONV_STUB( IfcCircle );
5006     DECL_CONV_STUB( IfcCircleProfileDef );
5007     DECL_CONV_STUB( IfcCircleHollowProfileDef );
5008     DECL_CONV_STUB( IfcCivilElement );
5009     DECL_CONV_STUB( IfcCivilElementType );
5010     DECL_CONV_STUB( IfcConnectedFaceSet );
5011     DECL_CONV_STUB( IfcClosedShell );
5012     DECL_CONV_STUB( IfcCoil );
5013     DECL_CONV_STUB( IfcCoilType );
5014     DECL_CONV_STUB( IfcColourSpecification );
5015     DECL_CONV_STUB( IfcColourRgb );
5016     DECL_CONV_STUB( IfcColumn );
5017     DECL_CONV_STUB( IfcColumnStandardCase );
5018     DECL_CONV_STUB( IfcColumnType );
5019     DECL_CONV_STUB( IfcCommunicationsAppliance );
5020     DECL_CONV_STUB( IfcCommunicationsApplianceType );
5021     DECL_CONV_STUB( IfcPropertyAbstraction );
5022     DECL_CONV_STUB( IfcProperty );
5023     DECL_CONV_STUB( IfcComplexProperty );
5024     DECL_CONV_STUB( IfcPropertyDefinition );
5025     DECL_CONV_STUB( IfcCompositeCurveSegment );
5026     DECL_CONV_STUB( IfcCompositeProfileDef );
5027     DECL_CONV_STUB( IfcFlowMovingDevice );
5028     DECL_CONV_STUB( IfcCompressor );
5029     DECL_CONV_STUB( IfcFlowMovingDeviceType );
5030     DECL_CONV_STUB( IfcCompressorType );
5031     DECL_CONV_STUB( IfcCondenser );
5032     DECL_CONV_STUB( IfcCondenserType );
5033     DECL_CONV_STUB( IfcResource );
5034     DECL_CONV_STUB( IfcConstructionResource );
5035     DECL_CONV_STUB( IfcConstructionEquipmentResource );
5036     DECL_CONV_STUB( IfcTypeResource );
5037     DECL_CONV_STUB( IfcConstructionResourceType );
5038     DECL_CONV_STUB( IfcConstructionEquipmentResourceType );
5039     DECL_CONV_STUB( IfcConstructionMaterialResource );
5040     DECL_CONV_STUB( IfcConstructionMaterialResourceType );
5041     DECL_CONV_STUB( IfcConstructionProductResource );
5042     DECL_CONV_STUB( IfcConstructionProductResourceType );
5043     DECL_CONV_STUB( IfcContext );
5044     DECL_CONV_STUB( IfcNamedUnit );
5045     DECL_CONV_STUB( IfcContextDependentUnit );
5046     DECL_CONV_STUB( IfcController );
5047     DECL_CONV_STUB( IfcControllerType );
5048     DECL_CONV_STUB( IfcConversionBasedUnit );
5049     DECL_CONV_STUB( IfcConversionBasedUnitWithOffset );
5050     DECL_CONV_STUB( IfcCooledBeam );
5051     DECL_CONV_STUB( IfcCooledBeamType );
5052     DECL_CONV_STUB( IfcCoolingTower );
5053     DECL_CONV_STUB( IfcCoolingTowerType );
5054     DECL_CONV_STUB( IfcCostItem );
5055     DECL_CONV_STUB( IfcCostSchedule );
5056     DECL_CONV_STUB( IfcCovering );
5057     DECL_CONV_STUB( IfcCoveringType );
5058     DECL_CONV_STUB( IfcCrewResource );
5059     DECL_CONV_STUB( IfcCrewResourceType );
5060     DECL_CONV_STUB( IfcCsgSolid );
5061     DECL_CONV_STUB( IfcCurtainWall );
5062     DECL_CONV_STUB( IfcCurtainWallType );
5063     DECL_CONV_STUB( IfcCurveBoundedPlane );
5064     DECL_CONV_STUB( IfcCurveBoundedSurface );
5065     DECL_CONV_STUB( IfcPresentationStyle );
5066     DECL_CONV_STUB( IfcElementarySurface );
5067     DECL_CONV_STUB( IfcCylindricalSurface );
5068     DECL_CONV_STUB( IfcDamper );
5069     DECL_CONV_STUB( IfcDamperType );
5070     DECL_CONV_STUB( IfcDerivedProfileDef );
5071     DECL_CONV_STUB( IfcDirection );
5072     DECL_CONV_STUB( IfcDiscreteAccessory );
5073     DECL_CONV_STUB( IfcDiscreteAccessoryType );
5074     DECL_CONV_STUB( IfcDistributionChamberElement );
5075     DECL_CONV_STUB( IfcDistributionChamberElementType );
5076     DECL_CONV_STUB( IfcDistributionSystem );
5077     DECL_CONV_STUB( IfcDistributionCircuit );
5078     DECL_CONV_STUB( IfcPort );
5079     DECL_CONV_STUB( IfcDistributionPort );
5080     DECL_CONV_STUB( IfcDoor );
5081     DECL_CONV_STUB( IfcPropertySetDefinition );
5082     DECL_CONV_STUB( IfcDoorStandardCase );
5083     DECL_CONV_STUB( IfcDoorStyle );
5084     DECL_CONV_STUB( IfcDoorType );
5085     DECL_CONV_STUB( IfcDuctFitting );
5086     DECL_CONV_STUB( IfcDuctFittingType );
5087     DECL_CONV_STUB( IfcDuctSegment );
5088     DECL_CONV_STUB( IfcDuctSegmentType );
5089     DECL_CONV_STUB( IfcFlowTreatmentDevice );
5090     DECL_CONV_STUB( IfcDuctSilencer );
5091     DECL_CONV_STUB( IfcFlowTreatmentDeviceType );
5092     DECL_CONV_STUB( IfcDuctSilencerType );
5093     DECL_CONV_STUB( IfcEdge );
5094     DECL_CONV_STUB( IfcEdgeCurve );
5095     DECL_CONV_STUB( IfcLoop );
5096     DECL_CONV_STUB( IfcEdgeLoop );
5097     DECL_CONV_STUB( IfcElectricAppliance );
5098     DECL_CONV_STUB( IfcElectricApplianceType );
5099     DECL_CONV_STUB( IfcElectricDistributionBoard );
5100     DECL_CONV_STUB( IfcElectricDistributionBoardType );
5101     DECL_CONV_STUB( IfcFlowStorageDevice );
5102     DECL_CONV_STUB( IfcElectricFlowStorageDevice );
5103     DECL_CONV_STUB( IfcFlowStorageDeviceType );
5104     DECL_CONV_STUB( IfcElectricFlowStorageDeviceType );
5105     DECL_CONV_STUB( IfcElectricGenerator );
5106     DECL_CONV_STUB( IfcElectricGeneratorType );
5107     DECL_CONV_STUB( IfcElectricMotor );
5108     DECL_CONV_STUB( IfcElectricMotorType );
5109     DECL_CONV_STUB( IfcElectricTimeControl );
5110     DECL_CONV_STUB( IfcElectricTimeControlType );
5111     DECL_CONV_STUB( IfcElementAssembly );
5112     DECL_CONV_STUB( IfcElementAssemblyType );
5113     DECL_CONV_STUB( IfcQuantitySet );
5114     DECL_CONV_STUB( IfcElementQuantity );
5115     DECL_CONV_STUB( IfcEllipse );
5116     DECL_CONV_STUB( IfcEllipseProfileDef );
5117     DECL_CONV_STUB( IfcEngine );
5118     DECL_CONV_STUB( IfcEngineType );
5119     DECL_CONV_STUB( IfcEvaporativeCooler );
5120     DECL_CONV_STUB( IfcEvaporativeCoolerType );
5121     DECL_CONV_STUB( IfcEvaporator );
5122     DECL_CONV_STUB( IfcEvaporatorType );
5123     DECL_CONV_STUB( IfcProcess );
5124     DECL_CONV_STUB( IfcEvent );
5125     DECL_CONV_STUB( IfcTypeProcess );
5126     DECL_CONV_STUB( IfcEventType );
5127     DECL_CONV_STUB( IfcExternalSpatialStructureElement );
5128     DECL_CONV_STUB( IfcExternalSpatialElement );
5129     DECL_CONV_STUB( IfcSweptAreaSolid );
5130     DECL_CONV_STUB( IfcExtrudedAreaSolid );
5131     DECL_CONV_STUB( IfcExtrudedAreaSolidTapered );
5132     DECL_CONV_STUB( IfcFaceBasedSurfaceModel );
5133     DECL_CONV_STUB( IfcFaceBound );
5134     DECL_CONV_STUB( IfcFaceOuterBound );
5135     DECL_CONV_STUB( IfcFacetedBrep );
5136     DECL_CONV_STUB( IfcFacetedBrepWithVoids );
5137     DECL_CONV_STUB( IfcFan );
5138     DECL_CONV_STUB( IfcFanType );
5139     DECL_CONV_STUB( IfcFastener );
5140     DECL_CONV_STUB( IfcFastenerType );
5141     DECL_CONV_STUB( IfcFeatureElement );
5142     DECL_CONV_STUB( IfcFeatureElementAddition );
5143     DECL_CONV_STUB( IfcFeatureElementSubtraction );
5144     DECL_CONV_STUB( IfcFillAreaStyleHatching );
5145     DECL_CONV_STUB( IfcFillAreaStyleTiles );
5146     DECL_CONV_STUB( IfcFilter );
5147     DECL_CONV_STUB( IfcFilterType );
5148     DECL_CONV_STUB( IfcFireSuppressionTerminal );
5149     DECL_CONV_STUB( IfcFireSuppressionTerminalType );
5150     DECL_CONV_STUB( IfcFixedReferenceSweptAreaSolid );
5151     DECL_CONV_STUB( IfcFlowInstrument );
5152     DECL_CONV_STUB( IfcFlowInstrumentType );
5153     DECL_CONV_STUB( IfcFlowMeter );
5154     DECL_CONV_STUB( IfcFlowMeterType );
5155     DECL_CONV_STUB( IfcFooting );
5156     DECL_CONV_STUB( IfcFootingType );
5157     DECL_CONV_STUB( IfcFurnishingElement );
5158     DECL_CONV_STUB( IfcFurnishingElementType );
5159     DECL_CONV_STUB( IfcFurniture );
5160     DECL_CONV_STUB( IfcFurnitureType );
5161     DECL_CONV_STUB( IfcGeographicElement );
5162     DECL_CONV_STUB( IfcGeographicElementType );
5163     DECL_CONV_STUB( IfcGeometricSet );
5164     DECL_CONV_STUB( IfcGeometricCurveSet );
5165     DECL_CONV_STUB( IfcRepresentationContext );
5166     DECL_CONV_STUB( IfcGeometricRepresentationContext );
5167     DECL_CONV_STUB( IfcGeometricRepresentationSubContext );
5168     DECL_CONV_STUB( IfcGrid );
5169     DECL_CONV_STUB( IfcObjectPlacement );
5170     DECL_CONV_STUB( IfcGridPlacement );
5171     DECL_CONV_STUB( IfcHeatExchanger );
5172     DECL_CONV_STUB( IfcHeatExchangerType );
5173     DECL_CONV_STUB( IfcHumidifier );
5174     DECL_CONV_STUB( IfcHumidifierType );
5175     DECL_CONV_STUB( IfcIShapeProfileDef );
5176     DECL_CONV_STUB( IfcIndexedPolyCurve );
5177     DECL_CONV_STUB( IfcTessellatedItem );
5178     DECL_CONV_STUB( IfcIndexedPolygonalFace );
5179     DECL_CONV_STUB( IfcIndexedPolygonalFaceWithVoids );
5180     DECL_CONV_STUB( IfcInterceptor );
5181     DECL_CONV_STUB( IfcInterceptorType );
5182     DECL_CONV_STUB( IfcSurfaceCurve );
5183     DECL_CONV_STUB( IfcIntersectionCurve );
5184     DECL_CONV_STUB( IfcInventory );
5185     DECL_CONV_STUB( IfcJunctionBox );
5186     DECL_CONV_STUB( IfcJunctionBoxType );
5187     DECL_CONV_STUB( IfcLShapeProfileDef );
5188     DECL_CONV_STUB( IfcLaborResource );
5189     DECL_CONV_STUB( IfcLaborResourceType );
5190     DECL_CONV_STUB( IfcLamp );
5191     DECL_CONV_STUB( IfcLampType );
5192     DECL_CONV_STUB( IfcLightFixture );
5193     DECL_CONV_STUB( IfcLightFixtureType );
5194     DECL_CONV_STUB( IfcLightSource );
5195     DECL_CONV_STUB( IfcLightSourceAmbient );
5196     DECL_CONV_STUB( IfcLightSourceDirectional );
5197     DECL_CONV_STUB( IfcLightSourceGoniometric );
5198     DECL_CONV_STUB( IfcLightSourcePositional );
5199     DECL_CONV_STUB( IfcLightSourceSpot );
5200     DECL_CONV_STUB( IfcLine );
5201     DECL_CONV_STUB( IfcLocalPlacement );
5202     DECL_CONV_STUB( IfcMappedItem );
5203     DECL_CONV_STUB( IfcProductRepresentation );
5204     DECL_CONV_STUB( IfcMaterialDefinitionRepresentation );
5205     DECL_CONV_STUB( IfcMeasureWithUnit );
5206     DECL_CONV_STUB( IfcMechanicalFastener );
5207     DECL_CONV_STUB( IfcMechanicalFastenerType );
5208     DECL_CONV_STUB( IfcMedicalDevice );
5209     DECL_CONV_STUB( IfcMedicalDeviceType );
5210     DECL_CONV_STUB( IfcMember );
5211     DECL_CONV_STUB( IfcMemberStandardCase );
5212     DECL_CONV_STUB( IfcMemberType );
5213     DECL_CONV_STUB( IfcMirroredProfileDef );
5214     DECL_CONV_STUB( IfcMotorConnection );
5215     DECL_CONV_STUB( IfcMotorConnectionType );
5216     DECL_CONV_STUB( IfcOccupant );
5217     DECL_CONV_STUB( IfcOffsetCurve2D );
5218     DECL_CONV_STUB( IfcOffsetCurve3D );
5219     DECL_CONV_STUB( IfcOpenShell );
5220     DECL_CONV_STUB( IfcOpeningElement );
5221     DECL_CONV_STUB( IfcOpeningStandardCase );
5222     DECL_CONV_STUB( IfcOrientedEdge );
5223     DECL_CONV_STUB( IfcOuterBoundaryCurve );
5224     DECL_CONV_STUB( IfcOutlet );
5225     DECL_CONV_STUB( IfcOutletType );
5226     DECL_CONV_STUB( IfcPath );
5227     DECL_CONV_STUB( IfcPcurve );
5228     DECL_CONV_STUB( IfcPerformanceHistory );
5229     DECL_CONV_STUB( IfcPermit );
5230     DECL_CONV_STUB( IfcPile );
5231     DECL_CONV_STUB( IfcPileType );
5232     DECL_CONV_STUB( IfcPipeFitting );
5233     DECL_CONV_STUB( IfcPipeFittingType );
5234     DECL_CONV_STUB( IfcPipeSegment );
5235     DECL_CONV_STUB( IfcPipeSegmentType );
5236     DECL_CONV_STUB( IfcPlanarExtent );
5237     DECL_CONV_STUB( IfcPlanarBox );
5238     DECL_CONV_STUB( IfcPlane );
5239     DECL_CONV_STUB( IfcPlate );
5240     DECL_CONV_STUB( IfcPlateStandardCase );
5241     DECL_CONV_STUB( IfcPlateType );
5242     DECL_CONV_STUB( IfcPointOnCurve );
5243     DECL_CONV_STUB( IfcPointOnSurface );
5244     DECL_CONV_STUB( IfcPolyLoop );
5245     DECL_CONV_STUB( IfcPolygonalBoundedHalfSpace );
5246     DECL_CONV_STUB( IfcTessellatedFaceSet );
5247     DECL_CONV_STUB( IfcPolygonalFaceSet );
5248     DECL_CONV_STUB( IfcPolyline );
5249     DECL_CONV_STUB( IfcPresentationStyleAssignment );
5250     DECL_CONV_STUB( IfcProcedure );
5251     DECL_CONV_STUB( IfcProcedureType );
5252     DECL_CONV_STUB( IfcProductDefinitionShape );
5253     DECL_CONV_STUB( IfcProject );
5254     DECL_CONV_STUB( IfcProjectLibrary );
5255     DECL_CONV_STUB( IfcProjectOrder );
5256     DECL_CONV_STUB( IfcProjectionElement );
5257     DECL_CONV_STUB( IfcSimpleProperty );
5258     DECL_CONV_STUB( IfcPropertyBoundedValue );
5259     DECL_CONV_STUB( IfcPropertyEnumeratedValue );
5260     DECL_CONV_STUB( IfcPropertyListValue );
5261     DECL_CONV_STUB( IfcPropertyReferenceValue );
5262     DECL_CONV_STUB( IfcPropertySet );
5263     DECL_CONV_STUB( IfcPropertySingleValue );
5264     DECL_CONV_STUB( IfcPropertyTableValue );
5265     DECL_CONV_STUB( IfcProtectiveDevice );
5266     DECL_CONV_STUB( IfcProtectiveDeviceTrippingUnit );
5267     DECL_CONV_STUB( IfcProtectiveDeviceTrippingUnitType );
5268     DECL_CONV_STUB( IfcProtectiveDeviceType );
5269     DECL_CONV_STUB( IfcProxy );
5270     DECL_CONV_STUB( IfcPump );
5271     DECL_CONV_STUB( IfcPumpType );
5272     DECL_CONV_STUB( IfcRailing );
5273     DECL_CONV_STUB( IfcRailingType );
5274     DECL_CONV_STUB( IfcRamp );
5275     DECL_CONV_STUB( IfcRampFlight );
5276     DECL_CONV_STUB( IfcRampFlightType );
5277     DECL_CONV_STUB( IfcRampType );
5278     DECL_CONV_STUB( IfcRationalBSplineCurveWithKnots );
5279     DECL_CONV_STUB( IfcRationalBSplineSurfaceWithKnots );
5280     DECL_CONV_STUB( IfcRectangleProfileDef );
5281     DECL_CONV_STUB( IfcRectangleHollowProfileDef );
5282     DECL_CONV_STUB( IfcRectangularPyramid );
5283     DECL_CONV_STUB( IfcRectangularTrimmedSurface );
5284     DECL_CONV_STUB( IfcReinforcingElement );
5285     DECL_CONV_STUB( IfcReinforcingBar );
5286     DECL_CONV_STUB( IfcReinforcingElementType );
5287     DECL_CONV_STUB( IfcReinforcingBarType );
5288     DECL_CONV_STUB( IfcReinforcingMesh );
5289     DECL_CONV_STUB( IfcReinforcingMeshType );
5290     DECL_CONV_STUB( IfcRelationship );
5291     DECL_CONV_STUB( IfcRelDecomposes );
5292     DECL_CONV_STUB( IfcRelAggregates );
5293     DECL_CONV_STUB( IfcRelConnects );
5294     DECL_CONV_STUB( IfcRelContainedInSpatialStructure );
5295     DECL_CONV_STUB( IfcRelDefines );
5296     DECL_CONV_STUB( IfcRelDefinesByProperties );
5297     DECL_CONV_STUB( IfcRelFillsElement );
5298     DECL_CONV_STUB( IfcRelVoidsElement );
5299     DECL_CONV_STUB( IfcReparametrisedCompositeCurveSegment );
5300     DECL_CONV_STUB( IfcRepresentation );
5301     DECL_CONV_STUB( IfcRepresentationMap );
5302     DECL_CONV_STUB( IfcRevolvedAreaSolid );
5303     DECL_CONV_STUB( IfcRevolvedAreaSolidTapered );
5304     DECL_CONV_STUB( IfcRightCircularCone );
5305     DECL_CONV_STUB( IfcRightCircularCylinder );
5306     DECL_CONV_STUB( IfcRoof );
5307     DECL_CONV_STUB( IfcRoofType );
5308     DECL_CONV_STUB( IfcRoundedRectangleProfileDef );
5309     DECL_CONV_STUB( IfcSIUnit );
5310     DECL_CONV_STUB( IfcSanitaryTerminal );
5311     DECL_CONV_STUB( IfcSanitaryTerminalType );
5312     DECL_CONV_STUB( IfcSeamCurve );
5313     DECL_CONV_STUB( IfcSectionedSpine );
5314     DECL_CONV_STUB( IfcSensor );
5315     DECL_CONV_STUB( IfcSensorType );
5316     DECL_CONV_STUB( IfcShadingDevice );
5317     DECL_CONV_STUB( IfcShadingDeviceType );
5318     DECL_CONV_STUB( IfcShapeModel );
5319     DECL_CONV_STUB( IfcShapeRepresentation );
5320     DECL_CONV_STUB( IfcShellBasedSurfaceModel );
5321     DECL_CONV_STUB( IfcSite );
5322     DECL_CONV_STUB( IfcSlab );
5323     DECL_CONV_STUB( IfcSlabElementedCase );
5324     DECL_CONV_STUB( IfcSlabStandardCase );
5325     DECL_CONV_STUB( IfcSlabType );
5326     DECL_CONV_STUB( IfcSolarDevice );
5327     DECL_CONV_STUB( IfcSolarDeviceType );
5328     DECL_CONV_STUB( IfcSpace );
5329     DECL_CONV_STUB( IfcSpaceHeater );
5330     DECL_CONV_STUB( IfcSpaceHeaterType );
5331     DECL_CONV_STUB( IfcSpatialElementType );
5332     DECL_CONV_STUB( IfcSpatialStructureElementType );
5333     DECL_CONV_STUB( IfcSpaceType );
5334     DECL_CONV_STUB( IfcSpatialZone );
5335     DECL_CONV_STUB( IfcSpatialZoneType );
5336     DECL_CONV_STUB( IfcSphere );
5337     DECL_CONV_STUB( IfcSphericalSurface );
5338     DECL_CONV_STUB( IfcStackTerminal );
5339     DECL_CONV_STUB( IfcStackTerminalType );
5340     DECL_CONV_STUB( IfcStair );
5341     DECL_CONV_STUB( IfcStairFlight );
5342     DECL_CONV_STUB( IfcStairFlightType );
5343     DECL_CONV_STUB( IfcStairType );
5344     DECL_CONV_STUB( IfcStructuralActivity );
5345     DECL_CONV_STUB( IfcStructuralAction );
5346     DECL_CONV_STUB( IfcStructuralAnalysisModel );
5347     DECL_CONV_STUB( IfcStructuralItem );
5348     DECL_CONV_STUB( IfcStructuralConnection );
5349     DECL_CONV_STUB( IfcStructuralCurveAction );
5350     DECL_CONV_STUB( IfcStructuralCurveConnection );
5351     DECL_CONV_STUB( IfcStructuralMember );
5352     DECL_CONV_STUB( IfcStructuralCurveMember );
5353     DECL_CONV_STUB( IfcStructuralCurveMemberVarying );
5354     DECL_CONV_STUB( IfcStructuralReaction );
5355     DECL_CONV_STUB( IfcStructuralCurveReaction );
5356     DECL_CONV_STUB( IfcStructuralLinearAction );
5357     DECL_CONV_STUB( IfcStructuralLoadGroup );
5358     DECL_CONV_STUB( IfcStructuralLoadCase );
5359     DECL_CONV_STUB( IfcStructuralSurfaceAction );
5360     DECL_CONV_STUB( IfcStructuralPlanarAction );
5361     DECL_CONV_STUB( IfcStructuralPointAction );
5362     DECL_CONV_STUB( IfcStructuralPointConnection );
5363     DECL_CONV_STUB( IfcStructuralPointReaction );
5364     DECL_CONV_STUB( IfcStructuralResultGroup );
5365     DECL_CONV_STUB( IfcStructuralSurfaceConnection );
5366     DECL_CONV_STUB( IfcStructuralSurfaceMember );
5367     DECL_CONV_STUB( IfcStructuralSurfaceMemberVarying );
5368     DECL_CONV_STUB( IfcStructuralSurfaceReaction );
5369     DECL_CONV_STUB( IfcStyleModel );
5370     DECL_CONV_STUB( IfcStyledItem );
5371     DECL_CONV_STUB( IfcStyledRepresentation );
5372     DECL_CONV_STUB( IfcSubContractResource );
5373     DECL_CONV_STUB( IfcSubContractResourceType );
5374     DECL_CONV_STUB( IfcSubedge );
5375     DECL_CONV_STUB( IfcSurfaceCurveSweptAreaSolid );
5376     DECL_CONV_STUB( IfcSurfaceFeature );
5377     DECL_CONV_STUB( IfcSweptSurface );
5378     DECL_CONV_STUB( IfcSurfaceOfLinearExtrusion );
5379     DECL_CONV_STUB( IfcSurfaceOfRevolution );
5380     DECL_CONV_STUB( IfcSurfaceStyle );
5381     DECL_CONV_STUB( IfcSurfaceStyleShading );
5382     DECL_CONV_STUB( IfcSurfaceStyleRendering );
5383     DECL_CONV_STUB( IfcSurfaceStyleWithTextures );
5384     DECL_CONV_STUB( IfcSweptDiskSolid );
5385     DECL_CONV_STUB( IfcSweptDiskSolidPolygonal );
5386     DECL_CONV_STUB( IfcSwitchingDevice );
5387     DECL_CONV_STUB( IfcSwitchingDeviceType );
5388     DECL_CONV_STUB( IfcSystemFurnitureElement );
5389     DECL_CONV_STUB( IfcSystemFurnitureElementType );
5390     DECL_CONV_STUB( IfcTShapeProfileDef );
5391     DECL_CONV_STUB( IfcTank );
5392     DECL_CONV_STUB( IfcTankType );
5393     DECL_CONV_STUB( IfcTask );
5394     DECL_CONV_STUB( IfcTaskType );
5395     DECL_CONV_STUB( IfcTendon );
5396     DECL_CONV_STUB( IfcTendonAnchor );
5397     DECL_CONV_STUB( IfcTendonAnchorType );
5398     DECL_CONV_STUB( IfcTendonType );
5399     DECL_CONV_STUB( IfcTextLiteral );
5400     DECL_CONV_STUB( IfcTextLiteralWithExtent );
5401     DECL_CONV_STUB( IfcTopologyRepresentation );
5402     DECL_CONV_STUB( IfcToroidalSurface );
5403     DECL_CONV_STUB( IfcTransformer );
5404     DECL_CONV_STUB( IfcTransformerType );
5405     DECL_CONV_STUB( IfcTransportElement );
5406     DECL_CONV_STUB( IfcTransportElementType );
5407     DECL_CONV_STUB( IfcTrapeziumProfileDef );
5408     DECL_CONV_STUB( IfcTriangulatedFaceSet );
5409     DECL_CONV_STUB( IfcTrimmedCurve );
5410     DECL_CONV_STUB( IfcTubeBundle );
5411     DECL_CONV_STUB( IfcTubeBundleType );
5412     DECL_CONV_STUB( IfcUShapeProfileDef );
5413     DECL_CONV_STUB( IfcUnitAssignment );
5414     DECL_CONV_STUB( IfcUnitaryControlElement );
5415     DECL_CONV_STUB( IfcUnitaryControlElementType );
5416     DECL_CONV_STUB( IfcUnitaryEquipment );
5417     DECL_CONV_STUB( IfcUnitaryEquipmentType );
5418     DECL_CONV_STUB( IfcValve );
5419     DECL_CONV_STUB( IfcValveType );
5420     DECL_CONV_STUB( IfcVector );
5421     DECL_CONV_STUB( IfcVertex );
5422     DECL_CONV_STUB( IfcVertexLoop );
5423     DECL_CONV_STUB( IfcVertexPoint );
5424     DECL_CONV_STUB( IfcVibrationIsolator );
5425     DECL_CONV_STUB( IfcVibrationIsolatorType );
5426     DECL_CONV_STUB( IfcVirtualElement );
5427     DECL_CONV_STUB( IfcVoidingFeature );
5428     DECL_CONV_STUB( IfcWall );
5429     DECL_CONV_STUB( IfcWallElementedCase );
5430     DECL_CONV_STUB( IfcWallStandardCase );
5431     DECL_CONV_STUB( IfcWallType );
5432     DECL_CONV_STUB( IfcWasteTerminal );
5433     DECL_CONV_STUB( IfcWasteTerminalType );
5434     DECL_CONV_STUB( IfcWindow );
5435     DECL_CONV_STUB( IfcWindowStandardCase );
5436     DECL_CONV_STUB( IfcWindowStyle );
5437     DECL_CONV_STUB( IfcWindowType );
5438     DECL_CONV_STUB( IfcWorkCalendar );
5439     DECL_CONV_STUB( IfcWorkControl );
5440     DECL_CONV_STUB( IfcWorkPlan );
5441     DECL_CONV_STUB( IfcWorkSchedule );
5442     DECL_CONV_STUB( IfcZShapeProfileDef );
5443     DECL_CONV_STUB( IfcZone );
5444 
5445 
5446 #undef DECL_CONV_STUB
5447 
5448 } //! Schema_4
5449 } //! STEP
5450 } //! Assimp
5451 
5452 #endif // INCLUDED_IFC_READER_GEN_H
5453