IDSedit Documentation

Facet Types

PartOf Facet

Specify spatial relationships and containment

Filter or require elements based on their relationship to other elements in the model hierarchy. Useful for spatial containment, system membership, and assembly structures.

Parameters

ParameterRequiredDescription
EntityYesThe IFC class of the parent element
RelationNoSpecific relationship type to check

Using in IDSedit

As Applicability

Filter elements that are part of another element:

  1. Add a PartOf Facet to the Applicability section
  2. Select the parent Entity type
  3. Optionally specify the Relation type

Example: Target all elements contained in spaces by setting Entity to IfcSpace

As Requirement

Require elements to be part of a larger element:

  1. Add a PartOf Facet to the Requirements section
  2. Configure the required parent entity type

Supported Relationships

The PartOf Facet can check six types of IFC relationships:

IfcRelAggregates

Describes how objects are composed of smaller parts:

ParentChildrenExample
IfcBuildingIfcBuildingStoreyBuilding contains storeys
IfcBuildingStoreyIfcSpaceStorey contains spaces
IfcElementAssemblyIfcBeam, IfcColumnSteel assembly contains members
IfcCurtainWallIfcPlate, IfcMemberCurtain wall contains panels

IfcRelContainedInSpatialStructure

Describes spatial location of elements:

ContainerElementsExample
IfcBuildingStoreyIfcWall, IfcDoorElements on a floor level
IfcSpaceIfcFurnitureFurniture in a room
IfcSiteIfcBuildingBuildings on a site

IfcRelAssignsToGroup

Groups elements by function or system:

GroupMembersExample
IfcSystemIfcDistributionElementHVAC system components
IfcZoneIfcSpaceThermal zones
IfcGroupAny elementCustom groupings

IfcRelNests

Physical attachment to a host:

HostNestedExample
IfcDistributionPortIfcSensorSensor attached to port
IfcElementIfcDiscreteAccessoryBracket attached to beam

IfcRelVoidsElement

Void/opening relationships:

ElementVoidExample
IfcWallIfcOpeningElementDoor opening in wall
IfcSlabIfcOpeningElementStair opening in floor

IfcRelFillsElement

Elements that fill voids:

VoidFillingExample
IfcOpeningElementIfcDoorDoor in opening
IfcOpeningElementIfcWindowWindow in opening

Recursive Traversal

The PartOf Facet traverses relationships recursively. This means:

IfcSite
  └── IfcBuilding (via IfcRelAggregates)
        └── IfcBuildingStorey (via IfcRelAggregates)
              └── IfcWall (via IfcRelContainedInSpatialStructure)

If you query for elements that are part of IfcSite, the wall will match because the relationship chain leads back to the site.

Common Use Cases

Require Spatial Assignment

Ensure all elements are assigned to a building storey:

Entity Facet: IfcBuildingElement (applicability)
PartOf Facet: Entity = IfcBuildingStorey (requirement)

Filter by System Membership

Target elements in a specific system type:

PartOf Facet: Entity = IfcSystem, Relation = IfcRelAssignsToGroup

Validate Space Containment

Require furniture to be in spaces:

Entity Facet: IfcFurniture
PartOf Facet: Entity = IfcSpace, Relation = IfcRelContainedInSpatialStructure

Assembly Validation

Target elements that are part of curtain walls:

PartOf Facet: Entity = IfcCurtainWall, Relation = IfcRelAggregates

Zone Assignment

Require spaces to be in thermal zones:

Entity Facet: IfcSpace
PartOf Facet: Entity = IfcZone, Relation = IfcRelAssignsToGroup

Technical Notes

  • When Relation is not specified, all 6 relationship types are checked
  • Relationships are traversed recursively up the hierarchy
  • Entity names are case-insensitive
  • Relation names must match exactly (uppercase)
  • Prohibited cardinality means elements must NOT be part of the specified entity

IFC Documentation

Learn More

For detailed specification information, see the official PartOf Facet documentation from buildingSMART.