Rhino includes converttobezier, so I can convert curves and surfaces in this direction. But what if I want to convert from bezier to nurbs? I can do that manually for curves, but thats too much work. Does anBody have a script or gh definition for that?

Beziers are a subset of NURBS, thereâ€™s no way to go â€śback,â€ť it already is NURBS just of a particular arrangement, whatever information was lost in the conversion process is gone.

Iâ€™m sorry, I meant simple unweighted Bsplines.
I know that the curves must be continius to do the conversionâ€¦Itâ€™s only meant for these simple cases.

Letâ€™s say I have 4 simple Bezier deg 3 Surface with each 4 control points=16x4 =64 control points, and I would love to get the same 5x5 Bspline Surface with 25 controlpoints. The idea is to reduce the number of control points, and get the"free" continuity between spans by doing this.

MergeSrf with Smooth=No and Roundness=0
RemoveKnot repeatedly in each direction until the surface changes shape. Experimentation may be needed to discover where and how many times to remove knots.

If the surface started as a non-rational surface and was converted using ConvertToBezier the original surface should be able to be recovered.

Tried it for a planar surface, and it seems to work. One needs to know the pattern to understand which controlpoints have to be removed. Will try it later for some more real surfaces.

Make sure to use RemoveKnot which rearranges the control points so the shape is not changed if the continuity between spans is one degree less than the degree of the curves (G2 between spans for degree 3 curves.) . Do not use RemoveControlPt which does not affect the remaining control points and the shape will be changed.