Product
All physical objects (e.g. wall, floor, window) and spatial objects (e.g. space, building, building storey) in a IFC data model are represented as IfcProduct. IfcProduct is represented as Product in Catenda. A Product contains most of the explicit attributes of IfcProduct and the most commonly used related entities; such as property sets, quantity sets and types. Other product relations (e.g. group, layer) can be requested separately. Attributes for owner history, product representation (e.g. 3D geometry) and product placement are ommitted from the Product JSON object.
The following sections describe the structure of the Product JSON object. A full example of how a Product may be presented is provided at the end of this page.
Below is an overview of the Product JSON object that includes all the top level keys. Each key is described in detail in their respective sections.
Example
Parameters
Name | Type | Description |
---|---|---|
objectId | Number | The object id of the product |
revisionId | String | The id of the model revision |
ifcType | String | The entity type of the product (e.g. IFCWall) |
ifcSchema | String | The IFC schema used by the revision (e.g. IFC2X3) |
attributes | Object | The attributes of the product |
propertySets | Object | The property sets specific to this product ocurrence |
quantitySets | Object | The quantity sets specific to this product ocurrence |
materials | Array | The materials specific to this product ocurrence |
type | Object | Information common to all ocurrences of this type |
Map of attributes of the product. The key is the name of the attribute.
Example
Parameters
Name | Type | Description |
---|---|---|
ifcType | String | The entity type of the attribute (e.g. IFCLabel) |
type | String | The type of the attribute |
value | String | The value of the attribute |
unit | String | The unit of the attribute if applicable |
Map of property sets of the product. The key is the name of the property set.
Example
Parameters
Name | Type | Description |
---|---|---|
objectId | Number | The object id of the property set |
revisionId | String | The id of the model revision |
ifcSchema | String | The IFC schema used by the revision (e.g. IFC2X3) |
ifcType | String | The entity type of the property set |
attributes | Object | The attributes of the property set |
properties | Object | The properties of the property set |
Map of properties of the property set. The key is the name of the property.
Example
Property Parameters
Name | Type | Description |
---|---|---|
ifcType | String | The entity type of the property |
value | Object | The value for the specific ifcType, see below |
The key and shape of the value object depends on the ifcType of the property.
IfcType | Key | Type |
---|---|---|
IfcPropertySingleValue | nominalValue | Value |
IfcPropertyEnumeratedValue | enumerationValues | Array |
IfcPropertyListValue | listValues | Array |
IfcPropertyBoundedValue | lowerBoundValue & upperBoundValue | Value |
IfcPropertyReferenceValue | propertyReference | Value |
IfcComplexProperty | properties | Map[Value] |
Value
The value of the property.
Name | Type | Description |
---|---|---|
ifcType | String | The entity type of the value |
type | String | The type of the value |
value | String | The value of the value |
IfcPropertyBoundedValue example
IfcComplexProperty example
Map of quantity sets of the product. The key is the name of the quantity set.
Example
Parameters
Name | Type | Description |
---|---|---|
objectId | Number | The object id of the quantity set |
revisionId | String | The id of the model revision |
ifcSchema | String | The IFC schema used by the revision (e.g. IFC2X3) |
ifcType | String | The entity type of the quantity set |
attributes | Object | The attributes of the quantity set |
quantities | Object | The quantities of the quantity set |
Map of quantities of the quantity set. The key is the name of the quantity.
Example
Quantity Parameters
Name | Type | Description |
---|---|---|
ifcType | String | The entity type of the property |
value | Object | The value for the specific ifcType, see below |
Value is one of the following.
- The key will be value and the value will be a single value object.
The materials of the product. The IFC data model has a wide range of material entities and it is not possible to cover all of them here. The materials are represented as an array of material objects.
Example
Material Parameters
Name | Type | Description |
---|---|---|
objectId | Number | The object id of the material |
ifcSchema | String | The IFC schema used by the revision (e.g. IFC2X3) |
ifcType | String | The entity type of the material |
attributes | Object | The attributes of the material |
The type defines a list of commonly shared property sets, quantity sets and materials for all occurrences of the type.
Example
Parameters
Name | Type | Description |
---|---|---|
objectId | Number | The object id of the type |
revisionId | String | The id of the model revision |
ifcSchema | String | The IFC schema used by the revision (e.g. IFC2X3) |
ifcType | String | The entity type of the type (e.g. IFCWallType) |
attributes | Object | The attributes of the type |
propertySets | Object | The property sets common to all ocurrences of this type |
quantitySets | Object | The quantity sets common to all ocurrences of this type |
materials | Array | The materials common to all ocurrences of this type |
The shape of attributes, propertySets, quantitySets and materials is the same as described in the previous sections.
Below is an example of how a product is provided through the Catenda APIs and then how it could be presented after combining the base type data with the product instance data.