diff --git a/Documentation/DataTypes.md b/Documentation/DataTypes.md new file mode 100644 index 0000000..c1ee274 --- /dev/null +++ b/Documentation/DataTypes.md @@ -0,0 +1,426 @@ +# Type constraining + +## DataTypes + +Property dataTypes can be set to any values according to the following table. + +Columns of the table determine the validity of the type depending on the schema version and the required `xs:base` type for any `xs:restriction` constraint. + +| dataType | Ifc2x3 | Ifc4 | Ifc4x3 | Restriction base type | +| --------------------------------------------- | ------ | ------ | ------ | --------------------- | +| IFCABSORBEDDOSEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCACCELERATIONMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCACTIONREQUESTTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCACTIONSOURCETYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCACTIONTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCACTUATORTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCADDRESSTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCAIRTERMINALBOXTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCAIRTERMINALTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCAIRTOAIRHEATRECOVERYTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCALARMTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCALIGNMENTCANTSEGMENTTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCALIGNMENTHORIZONTALSEGMENTTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCALIGNMENTTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCALIGNMENTVERTICALSEGMENTTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCAMOUNTOFSUBSTANCEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCANALYSISMODELTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCANALYSISTHEORYTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCANGULARVELOCITYMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCANNOTATIONTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCAREADENSITYMEASURE | ❌ | ✔️ | ✔️ | xs:double | +| IFCAREAMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCARITHMETICOPERATORENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCASSEMBLYPLACEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCAUDIOVISUALAPPLIANCETYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCBEAMTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCBEARINGTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCBENCHMARKENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCBINARY | ❌ | ✔️ | ✔️ | | +| IFCBOILERTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCBOOLEAN | ✔️ | ✔️ | ✔️ | xs:boolean | +| IFCBOXALIGNMENT | ✔️ | ✔️ | ✔️ | xs:string | +| IFCBRIDGEPARTTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCBRIDGETYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCBUILDINGELEMENTPARTTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCBUILDINGELEMENTPROXYTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCBUILDINGSYSTEMTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCBUILTSYSTEMTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCBURNERTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCCABLECARRIERFITTINGTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCCABLECARRIERSEGMENTTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCCABLEFITTINGTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCCABLESEGMENTTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCCAISSONFOUNDATIONTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCCARDINALPOINTREFERENCE | ❌ | ✔️ | ✔️ | xs:integer | +| IFCCHANGEACTIONENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCCHILLERTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCCHIMNEYTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCCOILTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCCOLUMNTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCCOMMUNICATIONSAPPLIANCETYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCCOMPLEXPROPERTYTEMPLATETYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCCOMPRESSORTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCCONDENSERTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCCONNECTIONTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCCONSTRAINTENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCCONSTRUCTIONEQUIPMENTRESOURCETYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCCONSTRUCTIONMATERIALRESOURCETYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCCONSTRUCTIONPRODUCTRESOURCETYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCCONTEXTDEPENDENTMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCCONTROLLERTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCCONVEYORSEGMENTTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCCOOLEDBEAMTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCCOOLINGTOWERTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCCOSTITEMTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCCOSTSCHEDULETYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCCOUNTMEASURE | ✔️ | ✔️ | ✔️ | xs:integer | +| IFCCOURSETYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCCOVERINGTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCCREWRESOURCETYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCCURRENCYENUM | ✔️ | ❌ | ❌ | xs:string | +| IFCCURTAINWALLTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCCURVATUREMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCCURVEINTERPOLATIONENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCDAMPERTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCDATAORIGINENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCDATE | ❌ | ✔️ | ✔️ | xs:date | +| IFCDATETIME | ❌ | ✔️ | ✔️ | xs:dateTime | +| IFCDAYINMONTHNUMBER | ✔️ | ✔️ | ✔️ | xs:integer | +| IFCDAYINWEEKNUMBER | ❌ | ✔️ | ✔️ | xs:integer | +| IFCDAYLIGHTSAVINGHOUR | ✔️ | ❌ | ❌ | xs:integer | +| IFCDERIVEDUNITENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCDESCRIPTIVEMEASURE | ✔️ | ✔️ | ✔️ | xs:string | +| IFCDIMENSIONCOUNT | ✔️ | ✔️ | ✔️ | xs:integer | +| IFCDIRECTIONSENSEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCDISCRETEACCESSORYTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCDISTRIBUTIONBOARDTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCDISTRIBUTIONCHAMBERELEMENTTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCDISTRIBUTIONPORTTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCDISTRIBUTIONSYSTEMENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCDOCUMENTCONFIDENTIALITYENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCDOCUMENTSTATUSENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCDOORPANELOPERATIONENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCDOORPANELPOSITIONENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCDOORSTYLECONSTRUCTIONENUM | ✔️ | ✔️ | ❌ | xs:string | +| IFCDOORSTYLEOPERATIONENUM | ✔️ | ✔️ | ❌ | xs:string | +| IFCDOORTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCDOORTYPEOPERATIONENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCDOSEEQUIVALENTMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCDUCTFITTINGTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCDUCTSEGMENTTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCDUCTSILENCERTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCDURATION | ❌ | ✔️ | ✔️ | xs:duration | +| IFCDYNAMICVISCOSITYMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCEARTHWORKSCUTTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCEARTHWORKSFILLTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCELECTRICAPPLIANCETYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCELECTRICCAPACITANCEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCELECTRICCHARGEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCELECTRICCONDUCTANCEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCELECTRICCURRENTENUM | ✔️ | ❌ | ❌ | xs:string | +| IFCELECTRICCURRENTMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCELECTRICDISTRIBUTIONBOARDTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCELECTRICDISTRIBUTIONPOINTFUNCTIONENUM | ✔️ | ❌ | ❌ | xs:string | +| IFCELECTRICFLOWSTORAGEDEVICETYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCELECTRICFLOWTREATMENTDEVICETYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCELECTRICGENERATORTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCELECTRICHEATERTYPEENUM | ✔️ | ❌ | ❌ | xs:string | +| IFCELECTRICMOTORTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCELECTRICRESISTANCEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCELECTRICTIMECONTROLTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCELECTRICVOLTAGEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCELEMENTASSEMBLYTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCELEMENTCOMPOSITIONENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCENERGYMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCENERGYSEQUENCEENUM | ✔️ | ❌ | ❌ | xs:string | +| IFCENGINETYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCENVIRONMENTALIMPACTCATEGORYENUM | ✔️ | ❌ | ❌ | xs:string | +| IFCEVAPORATIVECOOLERTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCEVAPORATORTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCEVENTTRIGGERTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCEVENTTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCEXTERNALSPATIALELEMENTTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCFACILITYPARTCOMMONTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCFACILITYUSAGEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCFANTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCFASTENERTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCFILTERTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCFIRESUPPRESSIONTERMINALTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCFLOWDIRECTIONENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCFLOWINSTRUMENTTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCFLOWMETERTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCFONTSTYLE | ✔️ | ✔️ | ✔️ | xs:string | +| IFCFONTVARIANT | ✔️ | ✔️ | ✔️ | xs:string | +| IFCFONTWEIGHT | ✔️ | ✔️ | ✔️ | xs:string | +| IFCFOOTINGTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCFORCEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCFREQUENCYMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCFURNITURETYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCGASTERMINALTYPEENUM | ✔️ | ❌ | ❌ | xs:string | +| IFCGEOGRAPHICELEMENTTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCGEOMETRICPROJECTIONENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCGEOTECHNICALSTRATUMTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCGLOBALLYUNIQUEID | ✔️ | ✔️ | ✔️ | xs:string | +| IFCGLOBALORLOCALENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCGRIDTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCHEATEXCHANGERTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCHEATFLUXDENSITYMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCHEATINGVALUEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCHOURINDAY | ✔️ | ❌ | ❌ | xs:integer | +| IFCHUMIDIFIERTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCIDENTIFIER | ✔️ | ✔️ | ✔️ | xs:string | +| IFCILLUMINANCEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCIMPACTPROTECTIONDEVICETYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCINDUCTANCEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCINTEGER | ✔️ | ✔️ | ✔️ | xs:integer | +| IFCINTEGERCOUNTRATEMEASURE | ✔️ | ✔️ | ✔️ | xs:integer | +| IFCINTERCEPTORTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCINTERNALOREXTERNALENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCINVENTORYTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCIONCONCENTRATIONMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCISOTHERMALMOISTURECAPACITYMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCJUNCTIONBOXTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCKERBTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCKINEMATICVISCOSITYMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCLABEL | ✔️ | ✔️ | ✔️ | xs:string | +| IFCLABORRESOURCETYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCLAMPTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCLANGUAGEID | ❌ | ✔️ | ✔️ | xs:string | +| IFCLAYERSETDIRECTIONENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCLENGTHMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCLIGHTDISTRIBUTIONCURVEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCLIGHTEMISSIONSOURCEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCLIGHTFIXTURETYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCLINEARFORCEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCLINEARMOMENTMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCLINEARSTIFFNESSMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCLINEARVELOCITYMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCLIQUIDTERMINALTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCLOADGROUPTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCLOGICAL | ✔️ | ✔️ | ✔️ | xs:string | +| IFCLOGICALOPERATORENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCLUMINOUSFLUXMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCLUMINOUSINTENSITYDISTRIBUTIONMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCLUMINOUSINTENSITYMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCMAGNETICFLUXDENSITYMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCMAGNETICFLUXMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCMARINEFACILITYTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCMARINEPARTTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCMASSDENSITYMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCMASSFLOWRATEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCMASSMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCMASSPERLENGTHMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCMECHANICALFASTENERTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCMEDICALDEVICETYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCMEMBERTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCMINUTEINHOUR | ✔️ | ❌ | ❌ | xs:integer | +| IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCMODULUSOFELASTICITYMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCMODULUSOFLINEARSUBGRADEREACTIONMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCMODULUSOFROTATIONALSUBGRADEREACTIONMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCMODULUSOFSUBGRADEREACTIONMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCMOISTUREDIFFUSIVITYMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCMOLECULARWEIGHTMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCMOMENTOFINERTIAMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCMONETARYMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCMONTHINYEARNUMBER | ✔️ | ✔️ | ✔️ | xs:integer | +| IFCMOORINGDEVICETYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCMOTORCONNECTIONTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCNAVIGATIONELEMENTTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCNONNEGATIVELENGTHMEASURE | ❌ | ✔️ | ✔️ | xs:double | +| IFCNORMALISEDRATIOMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCNULLSTYLE | ✔️ | ✔️ | ❌ | xs:string | +| IFCNULLSTYLEENUM | ✔️ | ✔️ | ❌ | xs:string | +| IFCNUMERICMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCOBJECTIVEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCOBJECTTYPEENUM | ✔️ | ✔️ | ❌ | xs:string | +| IFCOCCUPANTTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCOPENINGELEMENTTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCOUTLETTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCPARAMETERVALUE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCPAVEMENTTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCPERFORMANCEHISTORYTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCPERMEABLECOVERINGOPERATIONENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCPERMITTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCPHMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCPHYSICALORVIRTUALENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCPILECONSTRUCTIONENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCPILETYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCPIPEFITTINGTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCPIPESEGMENTTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCPLANARFORCEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCPLANEANGLEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCPLATETYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCPOSITIVEINTEGER | ❌ | ✔️ | ✔️ | xs:integer | +| IFCPOSITIVELENGTHMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCPOSITIVEPLANEANGLEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCPOSITIVERATIOMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCPOWERMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCPRESENTABLETEXT | ✔️ | ✔️ | ✔️ | xs:string | +| IFCPRESSUREMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCPROCEDURETYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCPROFILETYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCPROJECTEDORTRUELENGTHENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCPROJECTIONELEMENTTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCPROJECTORDERRECORDTYPEENUM | ✔️ | ❌ | ❌ | xs:string | +| IFCPROJECTORDERTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCPROPERTYSETTEMPLATETYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCPROPERTYSOURCEENUM | ✔️ | ❌ | ❌ | xs:string | +| IFCPROTECTIVEDEVICETRIPPINGUNITTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCPROTECTIVEDEVICETYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCPUMPTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCRADIOACTIVITYMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCRAILINGTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCRAILTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCRAILWAYPARTTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCRAILWAYTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCRAMPFLIGHTTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCRAMPTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCRATIOMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCREAL | ✔️ | ✔️ | ✔️ | xs:double | +| IFCRECURRENCETYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCREFERENTTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCREFLECTANCEMETHODENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCREINFORCEDSOILTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCREINFORCINGBARROLEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCREINFORCINGBARSURFACEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCREINFORCINGBARTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCREINFORCINGMESHTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCRESOURCECONSUMPTIONENUM | ✔️ | ❌ | ❌ | xs:string | +| IFCRIBPLATEDIRECTIONENUM | ✔️ | ❌ | ❌ | xs:string | +| IFCROADPARTTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCROADTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCROLEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCROOFTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCROTATIONALFREQUENCYMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCROTATIONALMASSMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCROTATIONALSTIFFNESSMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCSANITARYTERMINALTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCSECONDINMINUTE | ✔️ | ❌ | ❌ | xs:double | +| IFCSECTIONALAREAINTEGRALMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCSECTIONMODULUSMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCSECTIONTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCSENSORTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCSEQUENCEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCSERVICELIFEFACTORTYPEENUM | ✔️ | ❌ | ❌ | xs:string | +| IFCSERVICELIFETYPEENUM | ✔️ | ❌ | ❌ | xs:string | +| IFCSHADINGDEVICETYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCSHEARMODULUSMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCSIGNALTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCSIGNTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCSIMPLEPROPERTYTEMPLATETYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCSLABTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCSOLARDEVICETYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCSOLIDANGLEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCSOUNDPOWERLEVELMEASURE | ❌ | ✔️ | ✔️ | xs:double | +| IFCSOUNDPOWERMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCSOUNDPRESSURELEVELMEASURE | ❌ | ✔️ | ✔️ | xs:double | +| IFCSOUNDPRESSUREMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCSOUNDSCALEENUM | ✔️ | ❌ | ❌ | xs:string | +| IFCSPACEHEATERTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCSPACETYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCSPATIALZONETYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCSPECIFICHEATCAPACITYMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCSPECULAREXPONENT | ✔️ | ✔️ | ✔️ | xs:double | +| IFCSPECULARROUGHNESS | ✔️ | ✔️ | ✔️ | xs:double | +| IFCSTACKTERMINALTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCSTAIRFLIGHTTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCSTAIRTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCSTATEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCSTRIPPEDOPTIONAL | ❌ | ✔️ | ✔️ | xs:boolean | +| IFCSTRUCTURALCURVEACTIVITYTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCSTRUCTURALCURVEMEMBERTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCSTRUCTURALCURVETYPEENUM | ✔️ | ❌ | ❌ | xs:string | +| IFCSTRUCTURALSURFACEACTIVITYTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCSTRUCTURALSURFACEMEMBERTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCSTRUCTURALSURFACETYPEENUM | ✔️ | ❌ | ❌ | xs:string | +| IFCSUBCONTRACTRESOURCETYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCSURFACEFEATURETYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCSURFACETEXTUREENUM | ✔️ | ❌ | ❌ | xs:string | +| IFCSWITCHINGDEVICETYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCSYSTEMFURNITUREELEMENTTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCTANKTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCTASKDURATIONENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCTASKTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCTEMPERATUREGRADIENTMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCTEMPERATURERATEOFCHANGEMEASURE | ❌ | ✔️ | ✔️ | xs:double | +| IFCTENDONANCHORTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCTENDONCONDUITTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCTENDONTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCTEXT | ✔️ | ✔️ | ✔️ | xs:string | +| IFCTEXTALIGNMENT | ✔️ | ✔️ | ✔️ | xs:string | +| IFCTEXTDECORATION | ✔️ | ✔️ | ✔️ | xs:string | +| IFCTEXTFONTNAME | ✔️ | ✔️ | ✔️ | xs:string | +| IFCTEXTTRANSFORMATION | ✔️ | ✔️ | ✔️ | xs:string | +| IFCTHERMALADMITTANCEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCTHERMALCONDUCTIVITYMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCTHERMALEXPANSIONCOEFFICIENTMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCTHERMALLOADSOURCEENUM | ✔️ | ❌ | ❌ | xs:string | +| IFCTHERMALLOADTYPEENUM | ✔️ | ❌ | ❌ | xs:string | +| IFCTHERMALRESISTANCEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCTHERMALTRANSMITTANCEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCTHERMODYNAMICTEMPERATUREMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCTIME | ❌ | ✔️ | ✔️ | xs:time | +| IFCTIMEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCTIMESERIESDATATYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCTIMESERIESSCHEDULETYPEENUM | ✔️ | ❌ | ❌ | xs:string | +| IFCTIMESTAMP | ✔️ | ✔️ | ✔️ | xs:integer | +| IFCTORQUEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCTRACKELEMENTTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCTRANSFORMERTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCTRANSPORTELEMENTTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCTUBEBUNDLETYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCUNITARYCONTROLELEMENTTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCUNITARYEQUIPMENTTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCUNITENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCURIREFERENCE | ❌ | ✔️ | ✔️ | xs:string | +| IFCVALVETYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCVAPORPERMEABILITYMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCVEHICLETYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCVIBRATIONDAMPERTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCVIBRATIONISOLATORTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCVIRTUALELEMENTTYPEENUM | ❌ | ❌ | ✔️ | xs:string | +| IFCVOIDINGFEATURETYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCVOLUMEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCVOLUMETRICFLOWRATEMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCWALLTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCWARPINGCONSTANTMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCWARPINGMOMENTMEASURE | ✔️ | ✔️ | ✔️ | xs:double | +| IFCWASTETERMINALTYPEENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCWELLKNOWNTEXTLITERAL | ❌ | ❌ | ✔️ | xs:string | +| IFCWINDOWPANELOPERATIONENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCWINDOWPANELPOSITIONENUM | ✔️ | ✔️ | ✔️ | xs:string | +| IFCWINDOWSTYLECONSTRUCTIONENUM | ✔️ | ✔️ | ❌ | xs:string | +| IFCWINDOWSTYLEOPERATIONENUM | ✔️ | ✔️ | ❌ | xs:string | +| IFCWINDOWTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCWINDOWTYPEPARTITIONINGENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCWORKCALENDARTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCWORKCONTROLTYPEENUM | ✔️ | ❌ | ❌ | xs:string | +| IFCWORKPLANTYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCWORKSCHEDULETYPEENUM | ❌ | ✔️ | ✔️ | xs:string | +| IFCYEARNUMBER | ✔️ | ❌ | ❌ | xs:integer | + +## XML base types + +The list of valid XML base types for the `base` attribute of `xs:restriction`, and the associated regex expression to check for the validity of string representation is as follows: + +| Base type | string regex constraint | +| ----------- | ------------------------------------------------------------------------ | +| xs:boolean | ^(true|false|0|1)$ | +| xs:date | ^\d{4}-\d{2}-\d{2}(Z|([+-]\d{2}:\d{2}))?$ | +| xs:dateTime | ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|([+-]\d{2}:\d{2}))?$ | +| xs:double | ^([-+]?[0-9]*\.?[0-9]?([eE][-+]?[0-9]+)?|NaN|\+INF|-INF)$ | +| xs:duration | ^[-+]?P(\d+Y)?(\d+M)?(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?)?$ | +| xs:integer | ^[+-]?(\d+)$ | +| xs:string | ^.?$ | +| xs:time | ^\d{2}:\d{2}:\d{2}(\.\d+)?(Z|([+-]\d{2}:\d{2}))?$ | + +For example: + +- To specify numbers: you must use a dot as the decimal separator, and not use a thousands separator (e.g. `4.2` is valid, but `1.234,5` is invalid). Scientific notation is allowed (e.g. `1e3` to represent `1000`). +- To specify boolean: valid values are `true` or `false`, `0`, or `1`. + +## Notes + +Please note, this document has been automatically generated via the IDS Audit Tool repository, any changes should be initiated there. diff --git a/Documentation/attribute-facet.md b/Documentation/attribute-facet.md index 0aa98b0..8331cdf 100644 --- a/Documentation/attribute-facet.md +++ b/Documentation/attribute-facet.md @@ -25,10 +25,10 @@ Following naming conventions and accurately describing elements are critical to ## Parameters -| Parameter | Required | Restrictions Allowed | Allowed Values | Meaning | -| --------- | -------- | -------------------- | ------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Name** | ✔️ | ✔️ | A valid attribute name from the IFC schema. | The attribute must exist and have a non-empty value. | -| **Value** | ❌ | ✔️ | Any value appropriate to the data type of the attribute | The value of the attribute must match exactly. To specify numbers, you must use a dot as the decimal separator, and not use a thousands separator (e.g. `4.2` is valid, but `1.234,5` is invalid). Scientific notation is allowed (e.g. `1e3` to represent `1000`). To specify true or false, you must specify `TRUE` or `FALSE` as uppercase characters. | +| Parameter | Required | Restrictions Allowed | Allowed Values | Meaning | +| --------- | -------- | -------------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| **Name** | ✔️ | ✔️ | A valid attribute name from the IFC schema. | The attribute must exist and have a non-empty value. | +| **Value** | ❌ | ✔️ | Any value appropriate to the data type of the attribute | The value of the attribute must match, see [DataType documentation](DataTypes.md#xml-base-types) for more information. | ## Examples diff --git a/Documentation/developer-guide.md b/Documentation/developer-guide.md index 5564e31..752d47c 100644 --- a/Documentation/developer-guide.md +++ b/Documentation/developer-guide.md @@ -32,6 +32,7 @@ In addition, it is highly recommended to also provide the following features for - When a user is specifying a value with a unit, you should provide conversion tools so that the user can write the IDS in their preferred unit - You may also choose to preload standardised classification names for commonly known systems, as well as the classification references to prevent spelling errors. You may choose to use this [IFC directory for classification systems](https://github.com/Moult/ifcclassification). - When users are nominating a **Material Facet**, your interface should recommend the IFC recommended material categories (one of 'concrete', 'steel', 'aluminium', 'block', 'brick', 'stone', 'wood', 'glass', 'gypsum', 'plastic', or 'earth') +- When specifying values, the XML strings (for simpleValue and restriction enumeration) should conform to the [regular expressions](DataTypes.md#xml-base-types) presented in the [DataType documentation](DataTypes.md). ## Checking IDS against IFC diff --git a/Documentation/property-facet.md b/Documentation/property-facet.md index 52c3b75..3fbd49a 100644 --- a/Documentation/property-facet.md +++ b/Documentation/property-facet.md @@ -1,6 +1,7 @@ # Property facet IFC comes with a way to define custom data attached to objects called **Properties**. +The **Property Facet** is expected to be one of the most commonly used facets in the first version of IDS. **Properties** have a **BaseName** (such as "FireRating") grouped in into **Property Sets** that help keep them organised by similar subject matters. A property stores the relevant **Value** provided by the user (such as "180/180/180" in Australia); when appropriate the IFC format allows the specification of relevant units of measurement. @@ -37,14 +38,14 @@ Note that IFC2X3 only has buildingSMART standardised properties, not quantities. Instead of checking the documentation, your IDS authoring software may help you to shortlist valid **Property Sets**. In IDS facets, **Properties** may have a data type that constrains the expected format in which the property will be stored (e.g. text value, a boolean, or a number). -If it is a number, the value may be unit-less, such as a count of a value, or have a unit, such as a length, area, or more complex unit like a flow rate, pressure, or voltage range. -You can view a full list of units in the following links: +If it is a number, the value will be unit-less, such as a count of a value and the unit dependent on the measure associated with teh specified `dataType`. +Our [unit documentation](units.md) provides the list of acceptable measures and the SI unit used for their expression. For more information consult the IFC documentation at the following links: - [IFC4X3 data types](http://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/annex-b2.html) - [IFC4 data types](https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/link/alphabeticalorder-defined-types.htm) - [IFC2X3 data types](https://standards.buildingsmart.org/IFC/RELEASE/IFC2x3/TC1/HTML/alphabeticalorder_definedtype.htm) -For your convenience, a short list of common data types are listed here: +For convenience, a short list of common data types are listed here: | Data type | Usage Scenario | | ---------------- | ------------------------------------------------------------------------------------------ | @@ -55,31 +56,28 @@ For your convenience, a short list of common data types are listed here: | IFCINTEGER | Arbitrary integers, such as 1, 2, 3, etc. | | IFCREAL | Arbitrary numbers, such as 1, 2, 3.14, etc | | IFCCOUNTMEASURE | An integer used to count a quantity of something | -| IFCLENGTHMEASURE | A number used to measure the physical length of something | -| IFCAREAMEASURE | A number used to measure the physical area of something | -| IFCVOLUMEMEASURE | A number used to measure the physical volume of something | +| IFCLENGTHMEASURE | A floating point number used to measure the physical length of something | +| IFCAREAMEASURE | A floating point number used to measure the physical area of something | +| IFCVOLUMEMEASURE | A floating point number used to measure the physical volume of something | | IFCDATE | The date when something will or has happened, such as 2020-01-01 | | IFCDURATION | A time duration, such as 3 months, 1 week, 4 days, or 1 hour. | IDS currently specifies all measure-based values based on SI units. You can see the full list of units specified for each data type in the [IDS units table](units.md). -Note that although you can use a data type to request a particular measurement (e.g. an IfcLengthMeasure), you cannot use IDS to request that the length is measured with a particular unit (e.g. meters, inches, or millimeters). -This capability may be introduced in a future version of IDS. +Note that although you can use a data type to request a particular measurement (e.g. an IFCLENGTHMEASURE), you cannot use IDS to request that the length is measured with a particular unit (e.g. meters, inches, or millimeters). Properties are critical providing supplementary information to objects in a model. It is encouraged to follow buildingSMART standardised **Properties** wherever possible to ensure that data is highly structured and can be predictably retrieved. -The **Property Facet** is considered to be one of the most commonly used facets in IDS. - ## Parameters -| Parameter | Required | Restrictions Allowed | Allowed Values | Meaning | -| ---------------- | -------- | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Property Set** | ✔️ | ✔️ | Any custom or buildingSMART standardised property set name. Standardised names must begin with "Pset_" or "Qto_" and can be found in the IFC documentation. | The object has the specified property set. | -| **Base Name** | ✔️ | ✔️ | Any text property name. Standardised buildingSMART property names can be found in the buildingSMART documentation. | The property must exist in the specified property set and have a non-empty value. | -| **Data Type** | ❌ | ✔️ | A valid data type compatible with the referenced schema version, expressed in UPPERCASE. | The value must use the specified data type. The units specified in the IDS use the [IDS units table](units.md), though the project may use any unit, so project values will have to be converted to the SI unit before comparison. User Interfaces are permitted to display any unit that the developers or the users prefer. | -| **Value** | ❌ | ✔️ | Any value appropriate to the data type of the property. If not specified, any non-empty value is allowed. The value of measures types will be stored according to the unit defined in the [IDS units table](units.md) | The value of the attribute must match. To specify numbers, you must use a dot as the decimal separator, and not use a thousands separator (e.g. `4.2` is valid, but `1.234,5` is invalid). Scientific notation is allowed (e.g. `1e3` to represent `1000`). To specify true or false, you must specify `TRUE` or `FALSE` as uppercase characters. | -| **URI** | ❌ | ❌ | A URI identifying the property compliant with ISO 23386 | You may find valid URIs using the [buildingSMART Data Dictionary](https://search.bsdd.buildingsmart.org/), for example for a [Fire Rating](https://search.bsdd.buildingsmart.org/Property/Index/115666) property. | +| Parameter | Required | Restrictions Allowed | Allowed Values | Meaning | +| ---------------- | -------- | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Property Set** | ✔️ | ✔️ | Any custom or buildingSMART standardised property set name. Standardised names must begin with "Pset_" or "Qto_" and can be found in the IFC documentation. | The object has the specified property set. | +| **Base Name** | ✔️ | ✔️ | Any text property name. Standardised buildingSMART property names can be found in the buildingSMART documentation. | The property must exist in the specified property set and have a non-empty value. | +| **Data Type** | ❌ | ✔️ | A valid data type compatible with the referenced schema version, expressed in UPPERCASE. | The value must use the specified data type. The units specified in the IDS use the [IDS units table](units.md), though the project may use any unit, so project values will have to be converted to the SI unit before comparison. User Interfaces are permitted to display any unit that the developers or the users prefer. | +| **Value** | ❌ | ✔️ | Any value appropriate to the data type of the property. If not specified, any non-empty value is allowed. The value of measures types will be stored according to the unit defined in the [IDS units table](units.md) | The value of the property must match, see [DataType documentation](DataTypes.md#xml-base-types) for more information. | +| **URI** | ❌ | ❌ | A URI identifying the property compliant with ISO 23386 | You may find valid URIs using the [buildingSMART Data Dictionary](https://search.bsdd.buildingsmart.org/), for example for a [Fire Rating](https://search.bsdd.buildingsmart.org/Property/Index/115666) property. | ## Examples