Model Furniture
Overview
Provides the information concerning furniture. This information includes:
- Specification of furniture name and description if required
- Shape representation
- Identification of whether furniture is built up from system furniture components
- Specification of furniture or system furniture type and identification of the type to which a furniture occurrence conforms
In IFC, a furnishing element may be considered as either the complete furniture unit (chair, table, desk etc.) or as a system furniture element (such as a desktop, table leg, modesty panel etc.). Where system furniture elements are used, they are considered to be nested into a complete furniture element. As a rule, the hierarchy of types when considering furniture is:
- Use IfcSystemFurnitureType for furniture components
- Use IfcFurnitureType for furniture that has been assembled from system furniture and that has a known place of assembly
- Use IfcFurnishingType for furniture that is acquired as a complete item
IFC supports a variety of shape representations for furnishing elements ranging from 2D to 3D surface model and boundary representations.
At present, IFC does not maintain a list of furniture/furnishing element types. The type must be declared by the user through the provision of a label capability. Guidance concerning the range of specific furniture types available may be found in national classification systems. The following items are examples of labels that may be assigned to furniture types. It is concerned only with internal furniture.
The list is drawn from the Uniclass classification system published by RIBA Enterprises Ltd and is reproduced by permission.
| Wardrobe | Chests of drawers | Locker | Coat rack |
| Hatstand | Shoe tree | Cloakroom unit | Umbrella stand |
| Clothes drying cabinet | Table | Coffee table | Dining table |
| Chair | Easy chair | Settee | Stool |
| Bench | Chaise longue | Chair bed | Futon |
| Sofa bed | Bed | Foldaway bed | Bunk bed |
| Divan | Waterbed | Headboard | Cradle |
| Cot | Bedside unit | Dressing table | Bathroom cabinet |
| Towel dispenser | Sanitary product dispenser | Towel rail | Soap dispenser |
| Soap holder | Cupboard | Chest | Sideboard |
| Dresser | Filing cabinet | Map chest | Plan chest |
| Desk tidy | Carousels | Vertical carousels | Horizontal carousels |
| Trolleys | Waste paper bin | Ashtray | Refuse bag holder |
| Fender | Fire hood | Kitchen cupboard | Worktop |
| Bottle rack | Lectern | Pulpit | Choir screen |
| Organ | Font | Showcase | Notice board |
| Pin board | Writing board | Blackboard | Dry marker board |
| Poster display unit | Indoor poster display unit | Outdoor poster display units | Information sign |
| Nameplate | Plaque | Scoreboard | Consulting couch |
| Hospital bed | Hospital bedhead | Dissection table | Post-mortem table |
| Reception desk | Footrest | Armrest | Copyholder |
| Anti-bandit screen | Safe | Point of sale unit | Key security cabinet |
| Post box | Postroom rack | Acoustic hood | Curtain pelmets |
| Beanbag | Cushion | Planter | Vase |
| Plant | Artificial plant | Ornament | Mirror |
| Ornamental screen | Mural | Painting | |
| Sculpture | Clock | Wallhanging | Tapestry |
A similar list could also be defined for external furniture but is not developed at this stage.
Results
Model of furniture type(s) and occurrence(s) including shape representation where appropriate and other basic information
| Description | Entity/Pset/Functional Part | MAN | REC | OPT |
|---|---|---|---|---|
| Model the furnishing element type
A furnishing element type is generally specified as either a system furniture element type, a furniture element type. In some cases however, it may be directly specified as a furnishing element type. |
||||
|
IfcSystemFurnitureElementType.GlobalId::IfcGloballyUniqueId
OR IfcFurnitureElementType.GlobalId::IfcGloballyUniqueId OR IfcFurnishingElementType.GlobalId::IfcGloballyUniqueId |
|||
|
IfcSystemFurnitureElementType.OwnerHistory::fp_apply_owner_history
OR IfcFurnitureElementType.OwnerHistory::fp_apply_owner_history OR IfcFurnishingElementType.OwnerHistory::fp_apply_owner_history |
|||
|
IfcSystemFurnitureElementType.Name::IfcLabel
OR IfcFurnitureElementType.Name::IfcLabel OR IfcFurnishingElementType.Name::IfcLabel |
|||
|
IfcSystemFurnitureElementType.Description::IfcText
OR IfcFurnitureElementType.Description::IfcText OR IfcFurnishingElementType.Description::IfcText |
|||
Set the applicable occurrence
|
IfcSystemFurnitureElementType.ApplicableOccurrence::IfcLabel
OR IfcFurnitureElementType.ApplicableOccurrence ::IfcLabel OR IfcFurnishingElementType.ApplicableOccurrence::IfcLabel |
|||
|
IfcSystemFurnitureElementType.RepresentationMaps::fp_map_representation
OR IfcFurnitureElementType.RepresentationMaps::fp_map_representation OR IfcFurnishingElementType.RepresentationMaps::fp_map_representation |
|||
|
IfcSystemFurnitureElementType.Tag::IfcLabel
OR IfcFurnitureElementType.Tag::IfcLabel OR IfcFurnishingElementType.Tag::IfcLabel |
|||
|
IfcSystemFurnitureElementType.ElementType::IfcLabel
OR IfcFurnitureElementType.ElementType::IfcLabel OR IfcFurnishingElementType.ElementType::IfcLabel |
|||
|
||||
|
IfcFurnitureElementType.AssemblyPlace::IfcAssemblyPlaceEnum_ | |||
| Model the furniture occurrence | ||||
|
IfcFurnishingElement.GlobalId::IfcGloballyUniqueId | |||
|
IfcFurnishingElement.OwnerHistory::fp_apply_owner_history | |||
|
IfcFurnishingElement.Name::IfcLabel | |||
|
IfcFurnishingElement.Description::IfcText | |||
|
IfcFurnishingElement.Tag::IfcIdentifier | |||
|
IfcFurnishingElement.ObjectPlacement::fp_place_object | |||
|
IfcFurnishingElement.Representation::fp_represent_product | |||
|
fp_define_by_type | |||
| Model the common properties of a type of system furniture element
Note that only common properties are described within this functional part. Property sets for more specific subtype of system furniture element may be determined from a catalogue of types and may be described in more local functional parts. Note that at least one value of the property set must be asserted. |
||||
|
Pset_SystemFurnitureElementTypeCommon.IsUsed ::IfcPropertySingleValue :: IfcBoolean | |||
|
Pset_SystemFurnitureElementTypeCommon.GroupCode::IfcPropertySingleValue :: IfcIdentifier | |||
|
Pset_SystemFurnitureElementTypeCommon.NominalWidth::IfcPropertySingleValue :: IfcPositiveLengthMeasure | |||
|
Pset_SystemFurnitureElementTypeCommon.NominalWidth::IfcPropertySingleValue :: IfcPositiveLengthMeasure | |||
|
Pset_SystemFurnitureElementTypeCommon.Finishing::IfcPropertySingleValue :: IfcLabel | |||
| Model the common properties of a type of furniture element
Note that only common properties are described within this functional part. Property sets for more specific subtype of furniture element may be determined from other furniture based property sets within IFC or a catalogue of types and may be described in more local functional parts. Note that at least one value of the property set must be asserted. |
||||
|
Pset_FurnitureTypeCommon.IsUsed::IfcPropertySingleValue :: IfcText | |||
|
Pset_FurnitureTypeCommon.Style::IfcPropertySingleValue :: IfcLabel | |||
|
Pset_FurnitureTypeCommon.NominalHeight::IfcPropertySingleValue :: IfcPositiveLengthMeasure | |||
|
Pset_FurnitureTypeCommon.NominalLength ? IfcPropertySingleValue :: IfcPositiveLengthMeasure | |||
|
Pset_FurnitureTypeCommon.NominalDepth::IfcPropertySingleValue :: IfcPositiveLengthMeasure | |||
|
Pset_ FurnitureTypeCommon.MainColor::IfcPropertySingleValue :: IfcLabel | |||
| Define the property sets for the furniture occurrence
This provision can also be used to add further property sets as defined within IFC or as defined by third parties to either a type entity or to an occurrence entity. |
fp_define_by_properties |
IFC Entities Required
- IfcElement
- IfcFurnishingElement
- IfcFurnishingElementType
- IfcFurnitureElementType
- IfcObject
- IfcProduct
- IfcPropertyDefinition
- IfcPropertySetDefinition
- IfcPropertySet
- IfcRoot
- IfcSystemFurnitureElementType
- IfcTypeObject
- IfcTypeProduct
IFC Datatypes Required
- IfcAssemblyPlaceEnum
- IfcGloballyUniqueId
- IfcIdentifier
- IfcLabel
- IfcText
IFC Functions Required
- -
IFC Property Sets Required
- Pset_FurnitureTypeCommon
- Pset_FurnitureTypeChair
- Pset_FurnitureTypeDesk
- Pset_FurnitureTypeFileCabinet
- Pset_FurnitureTypeTable
- Pset_SystemFurnitureElementTypeCommon
- Pset_SystemFurnitureElementTypePanel
- Pset_SystemFurnitureElementTypeWorkSurface
IDM Functional Parts Required
- fp_apply_owner_history
- fp_define_by_properties
- fp_define_by_type
- fp_map_representation
- fp_nests
- fp_place_object
- fp_property
- fp_represent_product
EXPRESS-G
EXPRESS Schema
SCHEMA FP_MODEL_FURNITURE;
TYPE IfcGloballyUniqueId = STRING (22) FIXED;
END_TYPE;
TYPE IfcIdentifier = STRING;
END_TYPE;
TYPE IfcLabel = STRING;
END_TYPE;
TYPE IfcText = STRING;
END_TYPE;
TYPE IfcAssemblyPlaceEnum = ENUMERATION OF
(SITE,
FACTORY,
NOTDEFINED);
END_TYPE;
ENTITY IfcProduct
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcObject);
Representation : OPTIONAL fp_represent_product;
ObjectPlacement : OPTIONAL fp_place_object;
WHERE
WR1 : (EXISTS(Representation) AND EXISTS(ObjectPlacement))
OR (EXISTS(Representation) AND
(NOT('IFC2X2_FINAL.IFCPRODUCTDEFINITIONSHAPE' IN TYPEOF(Representation))))
OR (NOT(EXISTS(Representation)));
END_ENTITY;
ENTITY IfcObject
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcRoot);
ObjectType : OPTIONAL IfcLabel;
WHERE
WR1 : SIZEOF(QUERY(temp <* IsDefinedBy | 'IFC2X2_FINAL.IFCRELDEFINESBYTYPE' IN TYPEOF(temp))) <= 1;
END_ENTITY;
ENTITY IfcRoot
ABSTRACT SUPERTYPE OF (ONEOF(IfcObject, IfcPropertyDefinition));
GlobalId : IfcGloballyUniqueId;
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
OwnerHistory : fp_apply_owner_history;
UNIQUE
UR1 : GlobalId;
END_ENTITY;
ENTITY IfcPropertyDefinition
ABSTRACT SUPERTYPE OF (ONEOF(IfcTypeObject, IfcPropertySetDefinition))
SUBTYPE OF(IfcRoot);
END_ENTITY;
ENTITY IfcTypeObject
SUBTYPE OF(IfcPropertyDefinition);
ApplicableOccurrence : OPTIONAL IfcLabel;
HasPropertySets : OPTIONAL LIST [1:?] OF IfcPropertySetDefinition;
WHERE
WR1 : EXISTS(SELF\IfcRoot.Name);
END_ENTITY;
ENTITY IfcTypeProduct
SUBTYPE OF(IfcTypeObject);
Tag : OPTIONAL IfcLabel;
RepresentationMaps : SET [1:?] OF fp_map_representation;
WHERE
WR41 : NOT(EXISTS(SELF\IfcTypeObject.ObjectTypeOf[1])) OR
(SIZEOF(QUERY(temp <* SELF\IfcTypeObject.ObjectTypeOf[1].RelatedObjects |
NOT('IFC2X2_FINAL.IFCPRODUCT' IN TYPEOF(temp)))
) = 0);
END_ENTITY;
ENTITY IfcElementType
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcTypeProduct);
ElementType : OPTIONAL IfcLabel;
END_ENTITY;
ENTITY IfcFurnishingElementType
ABSTRACT SUPERTYPE OF (ONEOF(IfcFurnitureType, IfcSystemFurnitureElementType))
SUBTYPE OF(IfcElementType);
END_ENTITY;
ENTITY IfcFurnitureType
SUBTYPE OF(IfcFurnishingElementType);
AssemblyPlace : IfcAssemblyPlaceEnum;
END_ENTITY;
ENTITY IfcSystemFurnitureElementType
SUBTYPE OF(IfcFurnishingElementType);
END_ENTITY;
ENTITY IfcElement
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcProduct);
Tag : OPTIONAL IfcIdentifier;
END_ENTITY;
ENTITY IfcFurnishingElement
SUBTYPE OF(IfcElement);
END_ENTITY;
ENTITY IfcPropertySetDefinition
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcPropertyDefinition);
INVERSE
DefinesType : SET [0:1] OF IfcTypeObject FOR HasPropertySets;
END_ENTITY;
ENTITY IfcPropertySet
SUBTYPE OF(IfcPropertySetDefinition);
HasProperties : SET [1:?] OF fp_property;
WHERE
WR31 : EXISTS(SELF\IfcRoot.Name);
WR32 : IfcUniquePropertyName(HasProperties);
END_ENTITY;
ENTITY fp_apply_owner_history;
END_ENTITY;
ENTITY fp_define_by_properties;
END_ENTITY;
ENTITY fp_define_by_type;
END_ENTITY;
ENTITY fp_map_representation;
END_ENTITY;
ENTITY fp_nests;
END_ENTITY;
ENTITY fp_place_object;
END_ENTITY;
ENTITY fp_property;
END_ENTITY;
ENTITY fp_represent_product;
END_ENTITY;
END_SCHEMA;