Surface.Transpose() is not there yet in RhinoCommon. It will probably be added by Steve in one of the next releases.
Surface.Domain(0) will return the first domain (Interval) - the U interval, which is a ValueType. It represents a copy of this domain. So, anything done to this copy will apply to this copy and the original surface will not be affected. This is one of the explanations why this is not working. Another is that Transpose() swaps U and V, so it needs to be working on both at the same time: reading the "control points rows" like they were "columns".
Is there another way for the time being to do what you are looking for? Or can you try using the old SDK if this is urgent?
- Giulio
___________________
giulio@mcneel.com
McNeel Europe, Barcelona
Surface.Transpose() will be available in the next WIP of RhinoCommon. This function will return a new transposed Surface on success and null on failure.
Thanks,
-Steve