import ifcopenshell import ifcopenshell.geom import topologic from topologic import Vertex, Edge, Wire, Face, Shell, Cell, CellComplex, Cluster, Topology, Graph, Dictionary, Attribute, AttributeManager, VertexUtility, EdgeUtility, WireUtility, ShellUtility, CellUtility, TopologyUtility import cppyy def processItem(item, tol): settings = ifcopenshell.geom.settings() settings.set(settings.USE_BREP_DATA,True) settings.set(settings.SEW_SHELLS,True) settings.set(settings.USE_WORLD_COORDS,True) ifc_file = ifcopenshell.open(item) products = ifc_file.by_type('IfcProduct') output = [] for p in products: try: cr = ifcopenshell.geom.create_shape(settings, p) brep = cr.geometry.brep_data output.append(brep) except: continue return output