Skip to content

Duplicate inverse attributes in JSON serialization #1115

Closed
@hlg

Description

@hlg

Consider a project modified through the low level interface. For inverse relations in such a project, with higher cardinality, the SharedJsonSerializer delivers multiple instances of each reference - one for each revision in which that references has existed. See the example below, where the inverse relation IfcRelAggregates.IsDecomposedBy has been existing for 5 revisions.

{ "_i": 132903,
  "_u": "76e8cec6-3d9c-48ae-b07a-664fe9787809",
  "_r": "8",
  "_t": "IfcSite",
  "_s": 1,
  "GlobalId": "1cwlDi_hLEvPsClAelBNnz",
  "_rOwnerHistory": {
    "_i": 132401,
    "_t": "IfcOwnerHistory"
  },
  "Name": "Default Site",
  "Description": "Description of Default Site",
  "_rIsDecomposedBy": [
    { "_i": 329053, "_t": "IfcRelAggregates" },
    { "_i": 329053, "_t": "IfcRelAggregates" },
    { "_i": 329053, "_t": "IfcRelAggregates" },
    { "_i": 329053, "_t": "IfcRelAggregates" },
    { "_i": 329053, "_t": "IfcRelAggregates" }
  ], ...
}

I don't understand whether this issue is triggered in the serializer or in the database layer and if the latter whether on storage or on access.
It is easy to work around the issue by eliminating duplicates on the client side.
But obviously it would be better to remove the duplicates before, so they don't consume bandwith, memory and potentially disk space.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions