Group a row-index list into PropertySets keyed on (psetName, psetGlobalId),
not name alone -- two IfcPropertySet instances that share a literal name
(a federated merge, or an exporter emitting the same Pset_ twice on one
element) must stay distinct, or the second instance's properties come back
attributed to the first instance's GlobalId. Shared by the live
PropertyTable.getForEntity (in property-table.ts) and by
@ifc-lite/cache's cache-rehydrated readProperties, which reads the same
columnar arrays back from the binary cache -- a single grouping algorithm
keeps the two paths from re-diverging.
Group a row-index list into
PropertySets keyed on(psetName, psetGlobalId), not name alone -- twoIfcPropertySetinstances that share a literal name (a federated merge, or an exporter emitting the same Pset_ twice on one element) must stay distinct, or the second instance's properties come back attributed to the first instance's GlobalId. Shared by the livePropertyTable.getForEntity(inproperty-table.ts) and by@ifc-lite/cache's cache-rehydratedreadProperties, which reads the same columnar arrays back from the binary cache -- a single grouping algorithm keeps the two paths from re-diverging.