Product
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 overview 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 { "objectid" 25028483530, "revisionid" "2364bf81107e4b0da346740bb03cea96", "ifcschema" "ifc2x3", "ifctype" "ifcwall", "attributes" {}, "propertysets" {}, "quantitysets" {}, "materials" \[], "type" {} } 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 attributes map of attributes of the product the key is the name of the attribute example { "globalid" { "ifctype" "ifcgloballyuniqueid", "type" "string", "value" "01z4sauevcmvwku5r3bkl1" }, "name" { "ifctype" "ifclabel", "type" "string", "value" "wall 123" } } 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 property sets map of property sets of the product the key is the name of the property set example { "dimensions" { "objectid" 25028483531, "revisionid" "2364bf811d7e4b0da346740bb03cea96", "ifcschema" "ifc2x3", "ifctype" "ifcpropertyset", "attributes" {}, "properties" {} } } 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 properties map of properties of the property set the key is the name of the property example { "width" { "ifctype" "ifcpropertysinglevalue", "nominalvalue" { "ifctype" "ifclengthmeasure", "type" "number", "value" "5", "unit" "m" } } } 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 { "depth range" { "ifctype" "ifcpropertyboundedvalue", "lowerboundvalue" { "type" "number", "ifctype" "ifclengthmeasure", "value" 0 13, "unit" "m" }, "upperboundvalue" { "type" "number", "ifctype" "ifclengthmeasure", "value" 0 18, "unit" "m" } } } ifccomplexproperty example { "color" { "ifctype" "ifccomplexproperty", "properties" { "red" { "type" "integer", "ifctype" "ifcinteger", "value" 31 }, "green" { "type" "integer", "ifctype" "ifcinteger", "value" 31 }, "blue" { "type" "integer", "ifctype" "ifcinteger", "value" 31 } } } } quantity sets map of quantity sets of the product the key is the name of the quantity set example { "area" { "objectid" 35024486532, "revisionid" "2364bf811d7e4b0da346740bb03cea96", "ifcschema" "ifc2x3", "ifctype" "ifcelementquantity", "attributes" {}, "quantities" {} } } 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 quantities map of quantities of the quantity set the key is the name of the quantity example { "grossarea" { "ifctype" "ifcquantityarea", "value" { "type" "number", "ifctype" "ifcareameasure", "value" 15, "unit" "m²" } } } 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 materials 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 \[ { "objectid" 427168953156, "ifcschema" "ifc2x3", "ifctype" "ifcmaterial", "attributes" { "name" { "type" "string", "ifctype" "ifclabel", "value" "plaster" } } } ] 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 type the type defines a list of commonly shared property sets, quantity sets and materials for all occurrences of the type example { "objectid" 14993093688, "revisionid" "2364bf81107e4b0da346740bb03cea96", "ifcschema" "ifc2x3", "ifctype" "ifcwalltype", "attributes" {}, "propertysets" {}, "quantitysets" {}, "materials" \[] } 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 usage example 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 product json object { "objectid" 74999093683, "revisionid" "2364bf81107e4b0da346740bb03cea96", "ifcschema" "ifc2x3", "ifctype" "ifcwall", "attributes" { "globalid" { "type" "string", "ifctype" "ifcgloballyuniqueid", "value" "01z4sauevcmvwku5r3bkl1" }, "name" { "type" "string", "ifctype" "ifclabel", "value" "wall 123" } }, "propertysets" { "dimensions" { "objectid" 74999093684, "revisionid" "2364bf81107e4b0da346740bb03cea96", "ifcschema" "ifc2x3", "ifctype" "ifcpropertyset", "attributes" {}, "properties" { "height" { "ifctype" "ifcpropertysinglevalue", "nominalvalue" { "type" "number", "ifctype" "ifclengthmeasure", "value" 3, "unit" "m" } }, "width" { "ifctype" "ifcpropertysinglevalue", "nominalvalue" { "type" "number", "ifctype" "ifclengthmeasure", "value" 5, "unit" "m" } } } } }, "quantitysets" { "area" { "objectid" 74999093685, "revisionid" "2364bf81107e4b0da346740bb03cea96", "ifcschema" "ifc2x3", "ifctype" "ifcelementquantity", "attributes" {}, "quantities" { "grossarea" { "ifctype" "ifcquantityarea", "value" { "type" "number", "ifctype" "ifcareameasure", "value" 15, "unit" "m²" } } } } }, "materials" \[ { "objectid" 74999093686, "attributes" { "name" { "type" "string", "ifctype" "ifclabel", "value" "plaster" } }, "ifcschema" "ifc2x3", "ifctype" "ifcmaterial" } ], "type" { "objectid" 74999093687, "revisionid" "2364bf81107e4b0da346740bb03cea96", "ifcschema" "ifc2x3", "ifctype" "ifcwalltype", "attributes" { "globalid" { "type" "string", "ifctype" "ifcgloballyuniqueid", "value" "0emfkqq8t43winuwj0a6po" }, "name" { "type" "string", "ifctype" "ifclabel", "value" "ba13" }, "predefinedtype" { "type" "enum", "ifctype" "ifcwalltypeenum", "value" "notdefined" } }, "propertysets" { "dimensions" { "objectid" 74999093688, "revisionid" "2364bf81107e4b0da346740bb03cea96", "ifcschema" "ifc2x3", "ifctype" "ifcpropertyset", "attributes" {}, "properties" { "depth" { "ifctype" "ifcpropertysinglevalue", "nominalvalue" { "type" "number", "ifctype" "ifclengthmeasure", "value" 0 13, "unit" "m" } }, "height" { "ifctype" "ifcpropertysinglevalue", "nominalvalue" { "type" "number", "ifctype" "ifclengthmeasure", "value" 3, "unit" "m" } }, "width" { "ifctype" "ifcpropertysinglevalue", "nominalvalue" { "type" "number", "ifctype" "ifclengthmeasure", "value" 3, "unit" "m" } } } } }, "quantitysets" null, "materials" null } } product technical sheet product identification \ name wall 123 \ entity wall \ guid 01z4sauevcmvwku5r3bkl1 \ objectid 74999093683 \ type ba13 \ predefinedtype notdefined properties \ dimensions \ depth 0 13m \ height 3 00m \ width 5 00m quantities \ area \ grossarea 15m² materials \ name plaster