public bool Merge(IfcElement ifcElement, COBieMergeRoles fileRoles)
 {
     
     Type ifcType = ifcElement.GetType();
     if (FilterTypes.Contains(ifcType)) //ok we have possible merge
     {
         switch (ifcType.Name)
         {
             case "IfcBuildingElementPart":
                 return BuildingElementPart(ifcElement, fileRoles);
             case "IfcCovering":
                 return Covering(ifcElement, fileRoles);
             case "IfcDistributionControlElement":
                 return DistributionControlElement(ifcElement, fileRoles);
             case "IfcDistributionFlowElement":
                 return DistributionFlowElement(ifcElement, fileRoles);
             case "IfcDoor":
                 return Door(ifcElement, fileRoles);
             case "IfcEnergyConversionDevice":
                 return EnergyConversionDevice(ifcElement, fileRoles);
             case "IfcFlowController":
             case "IfcElectricDistributionPoint": //specific flow controller;
                 return FlowController(ifcElement, fileRoles);
             case "IfcFlowFitting":
                 return FlowFitting(ifcElement, fileRoles);
             case "IfcFlowMovingDevice":
                 return FlowMovingDevice(ifcElement, fileRoles);
             case "IfcFlowStorageDevice":
                 return FlowStorageDevice(ifcElement, fileRoles);
             case "IfcFlowTerminal":
                 return FlowTerminal(ifcElement, fileRoles);
             case "IfcFlowTreatmentDevice":
                 return FlowTreatmentDevice(ifcElement, fileRoles);
             case "IfcFurnishingElement":
                 return FurnishingElement(ifcElement, fileRoles);
             case "IfcRoof":
                 return Roof(ifcElement, fileRoles);
             case "IfcWindow":
                 return Window(ifcElement, fileRoles);
             case "IfcTransportElement":
                 return TransportElement(ifcElement, fileRoles);
             default:
                 return false;
                 
         }
         
     }
     return true; //not a filter type so ok to add
 }