In general SW does not classify faces in a way that can be easily checked by a user. So for example if you have imported an IGES file there is no easy way to determine what type of face is being selected. However, if the face was created in the feature tree there are ways to determine face type by implication. For example the analytical faces/surfaces you mention would likely be made by revolving an arc, circle or line about an axis. Therefore the feature would be a revolve and the sketch would contain an arc, circle or line. This can also be determined through the API. However, it is also possible to create these features without a revolve. For example a sweep can also create analytical faces.
See the API help for IsSphere, IsRevolved, IsParametric, IsPlane, IsSwept, IsTorus, IsCone, IsCylinder etc. There is an example macro called "Get Parameters of a Toroidal Surface Example (VB)" that you could use to start with.
Option Explicit
'---------------------------------------------- ' Taken from API help and modified to identify face type '
' Precondition:
' 1) Part, assembly, or drawing document is open.
' 2) Face of toroidal surface is selected.
'
' Postcondition: None
'
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swSelMgr As SldWorks.SelectionMgr
Dim swFace As SldWorks.face2
Dim swSurf As SldWorks.surface
Dim vTorus As Variant
Dim i As Long
Dim bRet As Boolean
Dim lRet As Long
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swSelMgr = swModel.SelectionManager
If (swSelMgr.GetSelectedObjectType(1) = swSelFACES) Or (swSelMgr.GetSelectedObjectType(1) = swSelREFSURFACES) Then
Set swFace = swSelMgr.GetSelectedObject5(1)
Set swSurf = swFace.GetSurface
If swSurf.IsTorus Then lRet = swApp.SendMsgToUser2("Torus", swMbInformation, swMbOk)
ElseIf swSurf.IsCylinder Then lRet = swApp.SendMsgToUser2("Cylinder", swMbInformation, swMbOk)
ElseIf swSurf.IsCone Then lRet = swApp.SendMsgToUser2("Cone", swMbInformation, swMbOk)
ElseIf swSurf.IsPlane Then lRet = swApp.SendMsgToUser2("Plane", swMbInformation, swMbOk)
ElseIf swSurf.IsRevolved Then lRet = swApp.SendMsgToUser2("Revolve", swMbInformation, swMbOk)
ElseIf swSurf.IsParametric Then lRet = swApp.SendMsgToUser2("Parametric", swMbInformation, swMbOk)
ElseIf swSurf.IsSphere Then lRet = swApp.SendMsgToUser2("Sphere", swMbInformation, swMbOk)
Else lRet = swApp.SendMsgToUser2("Unknown", swMbInformation, swMbOk)
End If Else
lRet = swApp.SendMsgToUser2("Select Face", swMbInformation, swMbOk)
End If
End Sub