3drepo / 3drepobouncer

A C++ library providing 3D Repo Scene Graph definition, repository management logic and manipulation logic. It is is essentially the refactored 3DRepoCore and (parts of) 3DRepoGUI
GNU Affero General Public License v3.0
29 stars 13 forks source link

Issue 634 Revit/Navis 2024 native support #646

Closed sebjf closed 11 months ago

sebjf commented 11 months ago

This fixes #634

Description

Contains a number of changes required to support ODA 2024.8.

Specifically,

  1. OdNwPartition::getDisplayName now returns the file path, so bouncer has been updated to remove it when setting the layer, as this would affect the tree. This is only done when the type that defines the layer is a partition however, as other names can include slashes that the boost filesystem class will remove.
  2. Two new items, Item::Source File Name and Item::File Name also now turn up in the metadata, both of which also include the full path. The metadata also sometimes includes Item::Source File too. Item::Source File is added explicitly based on the partition if not set elsewise, while Item::Source File Name is ignored, since without the path it is identical to Item::Source File. A post-processing stage has been added to remove the path from the filename for both of these.
  3. A few types have changed name or location, and have been replaced like-for-like.
  4. Convenience methods for accessing vertex data have been removed; the way the vertex data is accessed has been updated to use the getVerticesData API, but the vertex data itself is unchanged so the way it is handled is the same.
  5. Convenience methods to check the type of geometry fragments have been removed. These have been replaced by test casts.
  6. The build scripts have been updated as necessary.

Test cases

A set of models were compared between the 2024 libraries and the 2023 ones on staging, using a procedural comparison of the trees, metadata entries and a visual comparison. Additionally, 2024 files have been imported.

The changes above reproduce the existing behaviour. Additionally,

  1. Some display names have more information, e.g. an entry called 327598 is now called Model Lines_327598.
  2. The Item::Material metadata entry has different Color values. These are ODA implementation details.
  3. The unicode characters for some units have changed (they displayed correctly before in Chrome, but the new ones are "more correct").
  4. Some coordinates (e.g. Constraints::Colum Location Mark) are swapped (so, B.1-.5 becomes .5-B.1). This is an ODA implementation detail/we don't touch this directly in bouncer.

Sample 2024 Revit and Navis files have been added to the unit tests.