Sleeve Placement (Face Based) Help

I’ve got a solution put together that works, but it feels like there should be an easier way.

I’d like to automate sleeve placement from an IFC file to my local Revit file. The graph below has two steps to it. First, the user selects the link (IFC file) as well as elements (within the IFC) to ‘clash’. The second step is to select a single face of the walls to ‘clash’. Anywhere there’s a ‘clash’ a face based sleeve is placed at the center-point of the clash.

SleevePlacement-SelectFaces.dyn (41.2 KB)

I would prefer not to have to select the wall faces and have it place a sleeve in the walls where there’s a ‘clash’. I thought I was close with the below graph, but it freezes up when I try to connect the surface(s) to the FamilyInstance.ByFacePoints node.

SleevePlacement-AutomateWallSurfaces.dyn (56.1 KB)

Revit & IFC download

Now that I’m testing this on an actual project the graph I thought was working is not! I’m going to go back through it and see where it’s getting hung up. Any help would be appreciated! Thanks!