Group a row-index list into QuantitySets keyed on (qsetName, qsetGlobalId),
not name alone -- two IfcElementQuantity instances that share a literal
name (a federated merge, or an exporter emitting the same Qto_ set twice on
one element) must stay distinct, or the second instance's quantities come
back attributed to the first instance's GlobalId. Mirrors
groupPropertySetsByInstance (same defect, same fix, on the property
side). Shared by the live QuantityTable.getForEntity (in
quantity-table.ts) and by @ifc-lite/cache's cache-rehydrated
readQuantities, which reads the same columnar arrays back from the
binary cache -- a single grouping algorithm keeps the two paths from
diverging.
Group a row-index list into
QuantitySets keyed on(qsetName, qsetGlobalId), not name alone -- twoIfcElementQuantityinstances that share a literal name (a federated merge, or an exporter emitting the same Qto_ set twice on one element) must stay distinct, or the second instance's quantities come back attributed to the first instance's GlobalId. MirrorsgroupPropertySetsByInstance(same defect, same fix, on the property side). Shared by the liveQuantityTable.getForEntity(inquantity-table.ts) and by@ifc-lite/cache's cache-rehydratedreadQuantities, which reads the same columnar arrays back from the binary cache -- a single grouping algorithm keeps the two paths from diverging.