ifc

Get the guid of the elements grouped in an ifcgroup


Is there a function in the API of IFCJS to get the guid of the elements grouped in an ifcgroup? for example, if I group a column with a wall

getElementsFromIfcGroup(guidGroup) ---> return [guidWall, guidColumn]


Solution

  • According to the IFC schema, IfcGroup instances group elements together using an indirect relationship object called IfcRelAssignsToGroup. This means that you can retrieve the elements contained within that group like this:

    import { IFCRELASSIGNSTOGROUP as REL } from 'web-ifc';
    
    async function getItemsOfGroup(modelID, groupID) {
      const manager = ifcLoader.ifcManager;
      const relIDs = await manager.getAllItemsOfType(modelID, REL);
    
      for(relID of groupsIDs) {
        const groupRel = await manager.getItemProperties(modelID, relID);
        if(groupRel.RelatingGroup.value === groupID) {
         return groupRel.RelatedObjects;
        }
      }
    
      return [];
    }