Skip to content

feat(ids): implement transitive partOf checks - #853

Draft
rihokirss wants to merge 1 commit into
ThatOpen:mainfrom
rihokirss:codex/ids-partof
Draft

rihokirss wants to merge 1 commit into
ThatOpen:mainfrom
rihokirss:codex/ids-partof

Conversation

@rihokirss

Copy link
Copy Markdown
Contributor

Implements the missing IDS 1.0 partOf facet (part of #830 and #831).

The facet now selects applicable entities and evaluates required/prohibited relationships through aggregates, containment, nesting, groups, and opening/filling relationships. It traverses parent relations transitively, guards cycles, supports non-geometric items, checks the target entity and predefined type through the existing entity facet, and serializes the facet for both applicability and requirements.

The new test imports all 33 unchanged buildingSMART partof IFC/IDS pairs with the necessary relation mappings enabled. All 33 test cases fail on the previous implementation (missing verdicts or missing serialized facets) and pass with the change. Fixtures retain their original license and source revision. Consumers need the corresponding relations retained by their IFC importer; the test demonstrates that configuration.

Validation: all 47 IDS tests pass; tsc -p tsconfig-build.json --noEmit passes; ESLint passes for the changed TypeScript files.

This PR does not change applicability conjunction or specification cardinality; those are addressed by #814 and #851/#852.

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant