I want to record the shape of a surface selected in a model or assembly

I would like to create an application using C# that captures information about a surface selected in a model or assembly.  I want the application to determine if a surface has been selected, then determine if the surface is flat, spherical, or neither.  Then, I want to record the radius of curvature of the surface as well as its outline.  What objects will help me accomplish this?

SolidworksApi macros