The datatypes in the IFC schema are not supported by bSDD

As stated in the database description of the property description of many properties inside Pset, the data type is not supported.

example :

Technical note: in IFC this property takes ‘IfcLabel’ as value. Such objects are not included in bSDD for simplicity reason. IFC also doesn’t enforce particular units, but recommends using metric SI units (metre, kilogram, etc.). Read the IFC documentation for more information.
Acoustic Rating (bSDD)

I would like to know if this is planned to be integrated ?

Also what is this simplicity reason ? because a datatype is still stored (e.g string)

bSDD is a more general-purpose platform for data dictionaries, based on the principles of ISO23386 and ISO12006. The intention was to provide an easy way to distribute standard content coming from many origins. Many software doesn’t support all 113 IFC measures, but all should support basic: String, Real, Integer, Boolean, Character, and Time. To help with the mapping, I recommend the data type table from IDS project: IDS/Documentation/DataTypes.md at 6893df1669755263b2362b82752092d9c64a6e5e · buildingSMART/IDS · GitHub

The IfcLabel is a string with a limit of 255 characters. The equivalent in ISO23386 is a String value of “Text format” being “(UTF-8,255)”, which we didn’t input for IFC dictionary.

1 Like

But since the information is in the description of the property reachable with its uri, I don’t see why it should be forced to 2 roundtrips and parsing the description text.

This description is only informative and was not made for software implementation. In many cases, those properties take as value references to objects like ‘IfcPerson’, ‘IfcMaterialDefinition’ or ‘IfcTimeSeries’, which are not allowed values in a data dictionary. For detailed specification software implementers should use IFC schema documentation instead. Could you please explain the use case where you find this piece of information useful?

Hi Artur

one example, but many attributes have the Type defined in the description reachable by propertyUri

IfcWall → PropertySet Pset_WallCommon

The description of AcoustingRating

Technical note: in IFC this property takes ‘IfcLabel’ as value. Such objects are not included in bSDD for simplicity reason. IFC also doesn’t enforce particular units, but recommends using metric SI units (metre, kilogram, etc.). Read the IFC documentation for more information.

The description of Combustible:

"Technical note: in IFC this property takes ‘IfcBoolean’ as value. Such objects are not included in bSDD for simplicity reason. IFC also doesn’t enforce particular units, but recommends using metric SI units (metre, kilogram, etc.). Read the IFC documentation for more

information."

The description of Compartmentation

“Technical note: in IFC this property takes ‘IfcBoolean’ as value. Such objects are not included in bSDD for simplicity reason. IFC also doesn’t enforce particular units, but recommends using metric SI units (metre, kilogram, etc.). Read the IFC documentation for more information.”

The type is very important for us, we use a c++ library for generate ifc files, and the attribute must be the correct type, we need to control the user input for this types.

Thanks is advance

Renzo

but honestly what I don’t understand is if the standard and the related documentation says that the AcoustingRating property has a DataType IfcLabel because the Bsdd doesn’t return it to me, the documentation does not refer to string but to IfcLabel

bSDD is not there to help you implement IFC properly in your software. Use the official documentation: https://ifc43-docs.standards.buildingsmart.org/, schema specification IFC Schema Specifications - buildingSMART Technical and ISO standard. The bSDD only extracts the semantic part of IFC definitions for easier reuse and mapping between other classification systems.

But BSDD has to converge on the standard I believe, and in my opinion indicating the basic types instead of the Type System indicated by Building Smart is a different thing. IFCPOPOSITIVELGHMEASURE is different from an integer type.

IFC combines many aspects into an enumerated list of measures. In bSDD (and according to ISO) this information is captured by separate attributes: data type, unit and dimension. Additionally, some IFC measures are also defining ranges of possible values, which also has its place in bSDD.

For example, the IFCPOPOSITIVELGHMEASURE in bSDD terms would be:

  • DataType: Real
  • Dimension: “1 0 0 0 0 0 0” (one dimension of length)
  • MinInclusive: 0.00 (positive)

Read more about the mapping between IFC and ISO dimensions and units here:

And to answer why bSDD doesn’t explicitly use IFC measures: different versions of IFC support different list of measures:

Then what is the type that i assign to the property real or IFCPOPOSITIVELGHMEASURE?

The data type is ‘Real’ both in bSDD and in IFC (see: 8.11.2.39 IfcLengthMeasure - IFC 4.3.2 Documentation)

In IFC there is additionally such a thing as Measure Resource: https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/ifcmeasureresource/content.html which in case of length would be IFCPOSITIVELENGTHMEASURE. This you can’t specify in bSDD but you can cover this information using Dimension attribute.

in IFC i must indicate the correct IfcType for attributes and properties
#25= IFCPROPERTYSINGLEVALUE(‘StartingStation’,$,IFCLENGTHMEASURE(0.000000000000000),$);

for the property Station the Data Type is IfcLengthMeasure non Real

6.6.4.10 Pset_Stationing - IFC 4.3.2 Documentation (buildingsmart.org)

yes, I know, but if you read closely, IfcLengthMeasure (a measure) is of (data) type: REAL.
image

semantically it is a measure not a simple real

Yes, I know. However, an IFC measure is not really just a data type but a combination of data type, unit, dimension and sometimes also restrictions.

The bSDD doesn’t include all the complexity of the IFC schema, but has dedicated places for this information (Dimension, Data Type, Unit…). This way it is easier to map classification systems together.

But if the property requires a semantic type (IfcLengthMeasure) why does BSDD only return the underlying base type?

bSDD is not implementing the IFC schema.