Model Actor
Overview
Actors are the people and organizations who are associated with a project. They can be identified individually, and by name. They can also be identified by the roles that they play on the project (since an actor may be given more than one role).
Actors can be selected to be either persons, organizations or a combination of the person and the organization.
Organizations can be any type of named group including companies, departments or divisions of companies, teams within or between organizations.
Organizations can be related to each other so that for instance, a department can be related to the organization within which it operates.
Actors can be identified for objects in two ways:
- by an assignment relationship with the object (see also the functional part fp_assigns_to_actor)
- by a direct attribute of the object (identified within other relevant functional parts)
In addition, actors can be directly used as the datatype of properties within property sets.
Results
Actor is identified including name, address, roles and organizational relationships
| Description | Entity/Pset/Functional Part | MAN | REC | OPT | |
|---|---|---|---|---|---|
| If the actor to be selected is a person | |||||
|
.IfcPerson.GivenName::IfcLabel IfcPerson.FamilyName::IfcLabel |
||||
|
IfcPerson.Id::IfcIdentifier IfcPerson.GivenName::IfcLabel IfcPerson.MiddleNames::IfcLabel IfcPerson.PrefixTitles::IfcLabel IfcPerson.SuffixTitles::IfcLabel |
||||
|
IfcPerson.Roles::IfcActorRole | ||||
|
IfcPerson.Addresses::fp_address | ||||
| If the actor to be selected is an organization | |||||
|
IfcOrganization.Name::IfcLabel | ||||
|
IfcOrganization.Id ::IfcIdentifier IfcOrganization.Description::IfcText |
||||
|
IfcOrganization.Roles::IfcActorRole | ||||
|
IfcOrganization.Addresses::fp_address | ||||
| If the actor to be selected is both a person and an organization | |||||
| This selection is used where the association of the person to the organization is required | |||||
|
IfcPersonAndOrganization.ThePerson::IfcPerson | ||||
|
IfcPersonAndOrganization.TheOrganization::IfcOrganization | ||||
| Set the roles that the actor (person and/or organization) are to fulfill | |||||
|
IfcActorRole.Role::IfcRoleEnum | ||||
|
IfcActorRole.UserDefinedRole::IfcLabel | ||||
|
IfcActorRole.Description::IfcText | ||||
| The following information is required when the actor is assigned to an object through the functional part fp_assigns_to_actor | |||||
| Select the particular actor
Use of the SELECT datatype enables either a person, organization or both to be selected with attributes then set as aove. |
IfcActor.TheActor::IfcActorSelect | ||||
| Assert the owner history of the actor | IfcActor.OwnerHistory::fp_apply_owner_history | ||||
| Establish the relationship between different occurrences of IfcOrganization if such a relationship should exist.
A tree structure of organization relationships can be established that could be used to elaborate a complete organization hierarchy if required. |
|||||
|
IfcOrganizationRelationship.RelatingOrganization::IfcOrganization | ||||
|
IfcOrganizationRelationship.RelatedOrganizations::IfcOrganization | ||||
| Additional information about an actor may be established through the property set Pset_Actor_Common including: | ? | ||||
|
Pset_ActorCommon.NumberOfActors::IfcCountMeasure | ||||
|
Pset_ActorCommon.Category::IfcLabel | ||||
|
Pset_ActorCommon.SkillLevel::IfcLabel | ||||
|
fp_define_by_properties |
IFC Entities Required
- IfcActor
- IfcActorRole
- IfcObject
- IfcOrganization
- IfcOrganizationRelationship
- IfcPerson
- IfcPersonAndOrganization
- IfcRoot
- IFC Datatypes Required
- IfcActorSelect
- IfcIdentifier
- IfcLabel
- IfcRoleEnum
- IfcText
IFC Functions Required
- None
IDM Functional Parts Required
- fp_address
- fp_apply_owner_history
- fp_assigns_to_actor
- fp_define_by_properties
EXPRESS-G
EXPRESS
SCHEMA FP_MODEL_ACTOR;
TYPE IfcActorSelect = SELECT
(IfcOrganization,
IfcPerson,
IfcPersonAndOrganization);
END_TYPE;
TYPE IfcIdentifier = STRING;
END_TYPE;
TYPE IfcLabel = STRING;
END_TYPE;
TYPE IfcText = STRING;
END_TYPE;
TYPE IfcRoleEnum = ENUMERATION OF
(SUPPLIER,
MANUFACTURER,
CONTRACTOR,
SUBCONTRACTOR,
ARCHITECT,
STRUCTURALENGINEER,
COSTENGINEER,
CLIENT,
BUILDINGOWNER,
BUILDINGOPERATOR,
MECHANICALENGINEER,
ELECTRICALENGINEER,
PROJECTMANAGER,
FACILITIESMANAGER,
CIVILENGINEER,
COMISSIONINGENGINEER,
ENGINEER,
OWNER,
CONSULTANT,
CONSTRUCTIONMANAGER,
FIELDCONSTRUCTIONMANAGER,
RESELLER,
USERDEFINED);
END_TYPE;
TYPE IfcGloballyUniqueId = STRING (22) FIXED;
END_TYPE;
ENTITY IfcOrganization;
Id : OPTIONAL IfcIdentifier;
Name : IfcLabel;
Description : OPTIONAL IfcText;
Roles : OPTIONAL LIST [1:?] OF IfcActorRole;
Addresses : OPTIONAL LIST [1:?] OF fp_address;
INVERSE
IsRelatedBy : SET OF IfcOrganizationRelationship FOR RelatedOrganizations;
Relates : SET OF IfcOrganizationRelationship FOR RelatingOrganization;
Engages : SET OF IfcPersonAndOrganization FOR TheOrganization;
END_ENTITY;
ENTITY IfcActorRole;
Role : IfcRoleEnum;
UserDefinedRole : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
WHERE
WR1 : (Role <> IfcRoleEnum.USERDEFINED) OR
((Role = IfcRoleEnum.USERDEFINED) AND
EXISTS(SELF.UserDefinedRole));
END_ENTITY;
ENTITY IfcPerson;
Id : OPTIONAL IfcIdentifier;
FamilyName : OPTIONAL IfcLabel;
GivenName : OPTIONAL IfcLabel;
MiddleNames : OPTIONAL LIST [1:?] OF IfcLabel;
PrefixTitles : OPTIONAL LIST [1:?] OF IfcLabel;
SuffixTitles : OPTIONAL LIST [1:?] OF IfcLabel;
Roles : OPTIONAL LIST [1:?] OF IfcActorRole;
Addresses : OPTIONAL LIST [1:?] OF fp_address;
INVERSE
EngagedIn : SET OF IfcPersonAndOrganization FOR ThePerson;
WHERE
WR1 : EXISTS(FamilyName) OR
EXISTS(GivenName);
END_ENTITY;
ENTITY IfcPersonAndOrganization;
ThePerson : IfcPerson;
TheOrganization : IfcOrganization;
Roles : OPTIONAL LIST [1:?] OF IfcActorRole;
END_ENTITY;
ENTITY IfcOrganizationRelationship;
Name : IfcLabel;
Description : OPTIONAL IfcText;
RelatingOrganization : IfcOrganization;
RelatedOrganizations : SET [1:?] OF IfcOrganization;
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;
GlobalId : IfcGloballyUniqueId;
OwnerHistory : fp_apply_owner_history;
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
UNIQUE
UR1 : GlobalId;
END_ENTITY;
ENTITY IfcActor
SUBTYPE OF(IfcObject);
TheActor : IfcActorSelect;
END_ENTITY;
ENTITY fp_address;
INVERSE
OfOrganization : SET OF IfcOrganization FOR Addresses;
OfPerson : SET OF IfcPerson FOR Addresses;
END_ENTITY;
ENTITY fp_apply_owner_history;
END_ENTITY;
ENTITY fp_assigns_to_actor;
END_ENTITY;
ENTITY fp_define_by_properties;
END_ENTITY;
END_SCHEMA;