I took some type on the RhinoCommon documentation and I found so many surface classes (not Mesh) and not sure what is the difference.
What is the difference?
BrepObject Class, RhinoObject and SurfaceObject as well as
In Rhino.DocObject Custom:
Brep Class, Surface Class, NurbsSurface Class.
They are all different but in the Object Type Enumeration we have only two type of surfaces; Brep and Surface. I am still not sure what the difference is between them.
In Python https://github.com/mcneel/rhinoscriptsyntax/blob/rhino-6.x/Scripts/rhinoscript/selection.py
we also differs surface, polysurface and no brep.