Assigns To Group (FP)
Overview
Describes a grouping relationship in which the parent object (the group) is made from the assignment of a set of other objects.
Grouping allows for any arbitrary collection of objects to be brought together into a designated, named group. Objects can still act independently of the group or can be operated upon within the context of the whole group.
An object can belong to more than one group concurrently. For instance, it may belong to one group that is a system, to a second group for cost scheduling purposes, and to a third group for scheduling purposes.
Certain specific types of group are defined within the IFC model. These include:
- Asset
- Condition
- Inventory
- Structural load group
- Structural result group
- System
- Electrical Circuit (type of system)
- Zone
In a group assignment relationship, the group is referred to as the 'relating group' whilst the assigned objects are referred to as the 'related objects'. There is always exactly one relating group and there may be one or many related objects. An object may be assigned only once to each group in which it participates.
The group assignment relationship is described at a high level in the IFC model as between an occurrence of IfcGroup and occurrences of IfcObject. Practically, the relationship will be between instances of subtypes of IfcObject and these inherit the relationship.
With exchange requirements that call upon the use of this functional part, reference to the type of group to which objects are assigned may be defined using a parameter as:
fp_assigns_to_group () -> describes an arbitrary collection of objects into a named group fp_assigns_to_group (system) -> describes the assignment of objects to a system group fp_assigns_to_group (asset) -> describes the assignment of objects to an identified asset group etc.
Use of the parameter recognizes that certain rules may apply to the collection of objects into particular group types.
Results
Declares the assignment of a collection of objects into a group
| Description | Entity/Pset/Functional Part | MAN | REC | OPT |
|---|---|---|---|---|
| Create the group to which entities will be related and the entities. Note that groups are modeled explicitly elsewhere. |
||||
| Set the occurrence of the group in the relationship | IfcGroup | |
||
| Set the occurrences of the child entities in the relationship | IfcObject <child subtypes> | |
||
| Assert the attributes of the relationship | ||||
| Assert the parent relationship | IfcRelAssignsToGroup.RelatingGroup -> IfcGroup | |
||
| Assert the child relationship | IfcRelAssignsToGroup.RelatedObjects -> IfcObject | |
||
| Assert the type of related objects from the predefined list if required This value can be used to identify the parent supertype of related objects as e.g. product, group, process, control etc. If the related objects have mixed supertypes, then the value .NOTDEFINED. should be used. |
IfcRelAssignsToGroup.RelatedObjectsType -> IfcObjectTypeEnum | |
||
| Assert the identity of the relationship | IfcRelAssignsToGroup.GlobalId -> IfcGloballyUniqueId | |
||
| Assert the owner history of the relationship | IfcRelAssignsToGroup.OwnerHistory -> fp_apply_owner_history | |
||
| Specify a name of the relationship | IfcRelAssignsToGroup.Name | |
||
| Specify a description of the relationship | IfcRelAssignsToGroup.Description | |
- IFC Entities Required
- IfcGroup
- IfcObject
- IfcRelationsip
- IfcRelAssigns
- IfcRelAssignsToGroup
- IfcRoot
- IFC Datatypes Required
- IfcGloballyUniqueId
- IfcLabel
- IfcObjectTypeEnum
- IfcText
- IFC Functions Required
- -
- IFC Property Sets Required
- -
- IDM Functional Parts Required
- fp_apply_owner_history
EXPRESS-G

EXPRESS Schema
SCHEMA FP_ASSIGNS_TO_GROUP;
TYPE IfcGloballyUniqueId = STRING (22) FIXED;
END_TYPE;
TYPE IfcLabel = STRING;
END_TYPE;
TYPE IfcText = STRING;
END_TYPE;
TYPE IfcObjectTypeEnum = ENUMERATION OF
(PRODUCT,
PROCESS,
CONTROL,
RESOURCE,
ACTOR,
GROUP,
PROJECT,
NOTDEFINED);
END_TYPE;
ENTITY IfcObject
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcRoot);
ObjectType : OPTIONAL IfcLabel;
INVERSE
HasAssignments : SET OF IfcRelAssigns FOR RelatedObjects;
WHERE
WR1 : SIZEOF(QUERY(temp <* IsDefinedBy | 'IFC2X2_FINAL.IFCRELDEFINESBYTYPE' IN TYPEOF(temp))) <= 1;
END_ENTITY;
ENTITY IfcRoot
ABSTRACT SUPERTYPE OF (ONEOF(IfcObject, IfcRelationship));
GlobalId : IfcGloballyUniqueId;
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
OwnerHistory : fp_apply_owner_history;
UNIQUE
UR1 : GlobalId;
END_ENTITY;
ENTITY IfcRelAssigns
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcRelationship);
RelatedObjects : SET [1:?] OF IfcObject;
RelatedObjectsType : OPTIONAL IfcObjectTypeEnum;
WHERE
WR1 : IfcCorrectObjectAssignment(RelatedObjectsType, RelatedObjects);
END_ENTITY;
ENTITY IfcGroup
SUBTYPE OF(IfcObject);
INVERSE
IsGroupedBy : IfcRelAssignsToGroup FOR RelatingGroup;
END_ENTITY;
ENTITY IfcRelAssignsToGroup
SUBTYPE OF(IfcRelAssigns);
RelatingGroup : IfcGroup;
WHERE
WR1 : SIZEOF(QUERY(Temp <* SELF\IfcRelAssigns.RelatedObjects | RelatingGroup :=: Temp)) = 0;
END_ENTITY;
ENTITY IfcRelationship
SUBTYPE OF(IfcRoot);
END_ENTITY;
ENTITY fp_apply_owner_history;
END_ENTITY;
END_SCHEMA;