So since the RevSurface methods are not exposed in RhinoCommon the only way for me to deal with such surface at the moment is to use the ToNurbsSurface() method and deal with it that way. One thing that I noticed though when using that method is that an extra point was added for each of the U direction control points. When querying PointsOn surface in Rhino UI i get 32 points, but after converting it to NurbsSurface i get 36 points.
It would all be good to me, however when those same 36 points are used to re-create such nurbs surface in Grasshopper I get an almost the same surface, but it has a small deformation. I am not sure what is causing the small difference in shape but I would love to find out.
The method I am using in Grasshopper to re-create the surface is rc.Geometry.NurbsSurface.Create()
Here are my before and after surfaces:
Ps. What I am doing exactly is de-constructing the original rev surface using Grasshopper. Sending it to Dynamo and re-constructing it there. Now I am testing sending it back to Grasshopper from Dynamo and re-constructing it there again, but it comes out a little different.