How should I go about comparing the geometry of bodies? (C#)

I'm looking to extract geometry information from all bodies in an assembly so that I can compare them.

So far I am using the following IBody2 methods:

  • GetBodyBox
  • GetEdgeCount
  • GetEdges
  • GetFaceCount
  • GetFaces
  • GetVertexCount
  • GetVertices
  • GetMassProperties

Unfortunately this information is not enough to uniquely identify a body (I think). For example, I could make 2 base plates with the same dimensions but put the mounting holes in different places.

Also, I would like to be able to compare the resulting geometry and not just the methods used to achieve it. I.e. two modelers could develop the same base plate in different ways.

What should I be looking at in order to get a more complete picture of a body's geometry?

Just noting that the following are not able to meet the requirements here:

  • The SolidWorks utilities' compare features.
  • The IBody2.GetCoincidenceTransform method.
SolidworksApi macros