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.
buildingSMART provides standardised Property Sets and Properties to help seamless data-exchange around the world. For example, the "FireRating" Property is part of the "Pset_WallCommon" Property Set as defined by buildingSMART.
Users can also define their own Properties and Property Sets, which may be unique to the project, or distributed using the Property Set templates feature of IFC. Naturally, it is encouraged to require Properties that are standardised by buildingSMART before inventing custom ones.
All standardised Property Set have a reserved name prefixed (either "Pset_" or "Qto_"); it is prohibited to use the standardised prefixes "Pset_" and "Qto_" for custom properties.
Standardised Properties are applicable to different entities. For example, some properties such as LoadBearing can be applied to walls, columns, and beams, but not furniture, ducts, or cables. This is known as the Applicable Entity. When specifying Properties in an IDS, it is important to consider which objects they can apply to. All sorts of objects can have Properties applied, not only physical objects like doors, windows, and slabs, but also non-physical objects like tasks, materials, structural profile cross sections, or labour resources.
A special type of Property is known as a Quantity. Whereas Properties refer to any arbitrary information about an object, Quantities refer specifically to calculated dimensions of the object, such as length, width, height, surface area, or net volume. IFC makes a distinction between Properties and Quantities, but in IDS they are interchangeable, and you are allowed to specify Quantities just the same as a Property with this facet. Just like Properties, Quantities are grouped into Quantity Sets and have a Value.
To see what Properties are standardised by buildingSMART, check the following lists below. You will see a list of Property Sets. Clicking on a Property Set will bring you to its page, which will show the Applicable Entity just below the page title, as well as a table of Property Names and expected data types for the Values, and have an Applicable Entity.
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 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 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:
For convenience, a short list of common data types are listed here:
Data type | Usage Scenario |
---|---|
IFCLABEL | Most simple text values intended to be read by a human |
IFCIDENTIFIER | An identification code intended to be read by computers, typically generated by a computer |
IFCTEXT | Lengthy descriptions to be read by humans |
IFCBOOLEAN | True or false (also sometimes known as yes / no) choices |
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 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. 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.
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, 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 | The value of the property must match, see DataType documentation for more information. |
URI | ❌ | ❌ | Uniform Resource Identifier of the property. The resource should include a name and a definition, and preferably comply with ISO 23386. | One source of valid URIs is the bSDD. An example URI for a "Fire Rating": https://identifier.buildingsmart.org/uri/buildingsmart/ifc/4.3/prop/FireRating. |
Applicability Intention | Requirement Intention | Facet Definition |
---|---|---|
Any wall entity with an acoustic rating | The entity (e.g. wall) must have an acoustic rating | Property Set="Pset_WallCommon", Name="AcousticRating" |
Any column entity with a fire rating of of "2HR" | The entity (e.g. column) must have a fire rating of "2HR" | Property Set="Pset_ColumnCommon", Name="FireRating", value="2HR" |
Any slab entity with a net volume between 20-100 cubic meters | The entity (e.g. slab) must have a net volume between 20-100 cubic meters | Property Set="Qto_SlabBaseQuantities", Name="NetVolume", Value="20<=Value<=100" |
Any in-situ or precast concrete element | The entity (e.g. slab) must have a casting method set either to in-situ or precast | Property Set="Pset_ConcreteElementGeneral", Name="CastingMethod", value=["INSITU", "PRECAST"] |
Any entity with our custom property called ConcreteMix chosen from A, B, or C stored in our MyCompany_Concrete property set | The entity must have a custom property called ConcreteMix with a value chosen from A, B, or C stored in a property set named MyCompany_Concrete | Property Set="MyCompany_Concrete", Name="ConcreteMix", value=["A", "B", "C"] |