Skip to content

IDS Property applicability misses property sets attached through the element type (no DefinesOccurrence back-relation) #798

Description

@agviegas

IDSProperty.getEntities (the applicability path) collects applicable elements exclusively by walking each property set's DefinesOccurrence back-relation (from IfcRelDefinesByProperties). Property sets attached to a type, via IfcRelDefinesByType and reached through the type's HasPropertySets, carry no DefinesOccurrence relation at all, so elements whose matching pset exists only on their type are never selected as applicable. This is independent of the DefinesOcurrence/DefinesOccurrence spelling issue (ThatOpen/engine_fragment#270) and persists after fixing it.

Reproducible with a minimal single-wall IFC converted with the current IfcImporter: the wall type's pset shows relation keys [HasProperties] only, while every instance-attached pset shows [HasProperties, DefinesOccurrence]; an applicability facet naming the type's pset collects nothing.

Note the inconsistency with the requirement path: test() already inherits type psets via getTypePsets (added for #708), so an element can pass a requirement on a type-attached pset yet never be selected by an applicability facet naming that same pset. A fix would need getEntities to also traverse type psets and map them to instances through the corresponding type-to-instance back-relation.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions