ciao .
Ho il seguente xml:
codice:
<IfcRelAssociatesMaterial id="i1774">
<GlobalId>3lRy_2mo55tArzbWSDKKKD</GlobalId>
<OwnerHistory>
<IfcOwnerHistory xsi:nil="true" ref="i1568"/>
</OwnerHistory>
<RelatedObjects ex:cType="set">
<IfcWallStandardCase pos="0" xsi:nil="true" ref="i1705"/>
</RelatedObjects>
<RelatingMaterial>
<IfcMaterialLayerSetUsage xsi:nil="true" ref="i1695"/>
</RelatingMaterial>
</IfcRelAssociatesMaterial>
nella classe che ho generato per fare il parsing dell xml ho:
codice:
class myclass
{
IfcWallStandardCase * pWall
CIfcMaterialLayerSetUsage* pMaterial
}
nell xml ci sono queste definizioni , tutte sotto il nodo root e mi trovo ad avere un array di myclass con tutte le associazioni wall/materiale.
ora, dopo l'importazione e il parsing dell xml devo utilizzare queste classi , sapendo l'id del materiale(pWall->m_id) che è comune a tutte le classi CIfcWallStandardCase , e andando a prendere il pMaterial della classe CIfcMaterialLayerSetUsage relativo.
In ogni myclass avro solo un materiale e solo un wall.
Non mi posso basare sul fatto di avere prima il wall e dopo il materiale, l'ordine è ininfluente.
Pensavo ad una mappa per andare a prendere il materiale dall' id del muro ma posso anche scorrere tutta la collezione delle classi myclass per trovare l'id del wall uguale tra quello che cerco e quello che è nella classe e dove è uguale andare a prendere il materiale relativo, è molto piu' lento?
sapendo che potro avere al massimo 1000 elementi.
voi cosa mi consigliate?
Grazie.