With the help of this forum (mainly Artem, heh), I now have a procedure which finds and lists all of the holes in an assembly . It does this by finding all faces with 2 edges and where the edges (circles) have parallel axes. I could also verify this with a check to ISurface::IsCylinder().
This has the side effect of including the outer faces of rings and handrails. These are usually pretty obvious, due to their large diameter or length, but it would be nice if I could exclude them from the results.
Is there a way to determine if a cylinder's face is inward or outward facing?
SolidworksApi macros