Skip to content

fix(importer): import list, bounded, enumerated and table properties - #324

Merged
agviegas merged 1 commit into
ThatOpen:mainfrom
helenkwok:fix/import-multi-value-properties
Oct 11, 2026
Merged

agviegas merged 1 commit into
ThatOpen:mainfrom
helenkwok:fix/import-multi-value-properties

Conversation

@helenkwok

Copy link
Copy Markdown
Contributor

Fixes #323.

Adds IFCPROPERTYLISTVALUE, IFCPROPERTYBOUNDEDVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYENUMERATION and IFCPROPERTYTABLEVALUE to ifcClasses.properties, so these properties are imported with their names and values instead of being left as empty items that their property set still references. Their values are written by the existing attribute serialization (lists as arrays, bounds as separate attributes).

Test

New fixture resources/ifc/property-values.ifc (one wall, one property set with a list, a bounded, an enumerated and a table property) and src/Importers/IfcImporter/src/properties/multi-value-properties.test.ts, which converts it and checks each property's category and values (ListValues, the three bounds, EnumerationValues of the property and of its enumeration, DefiningValues / DefinedValues).

  • With this change: vitest --run 144 of 144 pass, tsc -p tsconfig-build.json --noEmit clean.
  • Without it: the new test fails.

Together with ThatOpen/engine_components#828, buildingSMART's IDS test cases for list and enumerated properties pass.

What is the purpose of this pull request?

  • Bug fix
  • New Feature
  • Documentation update
  • Other

Before submitting the PR, please make sure you do the following:

  • Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
  • Follow the Conventional Commits v1.0.0 standard for PR naming (e.g. feat(examples): add hello-world example).
  • Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
  • Ideally, include relevant tests that fail without this PR but pass with it.

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.

IfcImporter leaves out list, bounded, enumerated and table properties, so property sets point at items with no data

2 participants