# NurbsSurface class

Namespace: [Rhino.Geometry](https://developer.rhino3d.com/api/rhinocommon/namespace/rhino.geometry.md) · Assembly: [RhinoCommon](https://developer.rhino3d.com/api/rhinocommon/assembly/rhinocommon.md)

```cs
[Serializable]
public class NurbsSurface : Surface, IEpsilonComparable<NurbsSurface>
```

Represents a Non Uniform Rational B-Splines (NURBS) surface.

## Constructors

- [NurbsSurface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/ctor.md): (3 overloads) Constructs a new NURBS surface with knot and control point memory allocated.

## Properties

- [IsRational](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/isrational.md): Gets a value indicating whether or not the NURBS surface is rational.
- [KnotsU](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/knotsu.md): The U direction knot vector.
- [KnotsV](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/knotsv.md): The V direction knot vector.
- [OrderU](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/orderu.md): Gets the order in the U direction.
- [OrderV](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/orderv.md): Gets the order in the V direction.
- [Points](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/points.md): Gets a collection of surface control points that form this surface.

## Methods

- [ConvertSpanToBezier](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/convertspantobezier.md): Convert a NURBS surface bispan into a Bezier surface.
- [CopyFrom](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/copyfrom.md): Copies this NURBS surface from another NURBS surface.
- [Create](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/create.md): (static) Constructs a new NURBS surface with internal uninitialized arrays.
- [CreateCurveOnSurface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/createcurveonsurface.md): (static) Fit a sequence of 2d points on a surface to make a curve on the surface.
- [CreateCurveOnSurfacePoints](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/createcurveonsurfacepoints.md): (static) Computes a discrete spline curve on the surface. In other words, computes a sequence of points on the surface, each with a corresponding parameter value.
- [CreateFromCone](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/createfromcone.md): (static) Constructs a new NURBS surfaces from cone data.
- [CreateFromCorners](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/createfromcorners.md): (3 overloads, static) Makes a surface from 4 corner points.
- [CreateFromCylinder](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/createfromcylinder.md): (static) Constructs a new NURBS surfaces from cylinder data.
- [CreateFromPlane](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/createfromplane.md): (static) Creates a NURBS surface from a plane and additional parameters.
- [CreateFromPoints](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/createfrompoints.md): (static) Constructs a NURBS surface from a 2D grid of control points.
- [CreateFromSphere](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/createfromsphere.md): (static) Constructs a new NURBS surfaces from sphere data.
- [CreateFromTorus](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/createfromtorus.md): (static) Constructs a new NURBS surfaces from torus data.
- [CreateNetworkSurface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/createnetworksurface.md): (2 overloads, static) Builds a surface from an auto-sorted network of curves/edges.
- [CreateRailRevolvedSurface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/createrailrevolvedsurface.md): (static) Constructs a railed Surface-of-Revolution.
- [CreateRuledSurface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/createruledsurface.md): (static) Constructs a ruled surface between two curves. Curves must share the same knot-vector.
- [CreateSubDFriendly](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/createsubdfriendly.md): (static) Create a bi-cubic SubD friendly surface from a surface.
- [CreateThroughPoints](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/createthroughpoints.md): (static) Constructs a NURBS surface from a 2D grid of points.
- [EpsilonEquals](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/epsilonequals.md): Check that all values in other are within epsilon of the values in this
- [FindClosestIsoCurve](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/findclosestisocurve.md): Find the closest isoparamentric curve, given a test point.
- [IncreaseDegreeU](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/increasedegreeu.md): Increase the degree of this surface in U direction.
- [IncreaseDegreeV](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/increasedegreev.md): Increase the degree of this surface in V direction.
- [MakeCompatible](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/makecompatible.md): (static) For expert use only. Makes a pair of compatible NURBS surfaces based on two input surfaces.
- [MakeNonRational](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/makenonrational.md): Makes this surface non-rational.
- [MakeRational](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/makerational.md): Makes this surface rational.
- [MakeUniform](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/makeuniform.md): Changes a NURBS surface so each control point affects the surface exactly the same way. This make the knot vectors uniform without changing the control point locations. This will change the object shape slightly.
- [MatchToCurve](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/matchtocurve.md): Constructs a NURBS surface with start and end edge isocurve matching the start and end of targetCurve, and Greville points on targetCurve.
- [UVNDirectionsAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.nurbssurface/uvndirectionsat.md): Calculates the U, V, and N directions of a NURBS surface at a u,v parameter similar to the method used by Rhino's MoveUVN command.

## Inherited Members

- From [Surface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface.md): [IsSolid](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/issolid.md), [IsSubDFriendly](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/issubdfriendly.md), [ClosestPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/closestpoint.md), [ClosestSide](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/closestside.md), [CurvatureAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/curvatureat.md), [Degree](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/degree.md), [Domain](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/domain.md), [Evaluate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/evaluate.md), [Extend](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/extend.md), [Fit](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/fit.md), [FitCurveToSurface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/fitcurvetosurface.md), [FrameAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/frameat.md), [GetNextDiscontinuity](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/getnextdiscontinuity.md), [GetNurbsFormParameterFromSurfaceParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/getnurbsformparameterfromsurfaceparameter.md), [GetSpanVector](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/getspanvector.md), [GetSurfaceParameterFromNurbsFormParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/getsurfaceparameterfromnurbsformparameter.md), [GetSurfaceSize](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/getsurfacesize.md), [HasNurbsForm](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/hasnurbsform.md), [InterpolatedCurveOnSurface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/interpolatedcurveonsurface.md), [InterpolatedCurveOnSurfaceUV](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/interpolatedcurveonsurfaceuv.md), [IsAtSeam](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/isatseam.md), [IsAtSingularity](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/isatsingularity.md), [IsClosed](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/isclosed.md), [IsCone](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/iscone.md), [IsContinuous](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/iscontinuous.md), [IsCylinder](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/iscylinder.md), [IsExtrusion](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/isextrusion.md), [IsIsoparametric](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/isisoparametric.md), [IsPeriodic](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/isperiodic.md), [IsPlanar](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/isplanar.md), [IsSingular](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/issingular.md), [IsSphere](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/issphere.md), [IsTorus](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/istorus.md), [IsoCurve](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/isocurve.md), [LocalClosestPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/localclosestpoint.md), [NormalAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/normalat.md), [Offset](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/offset.md), [PointAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/pointat.md), [Pullback](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/pullback.md), [Pushup](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/pushup.md), [Rebuild](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/rebuild.md), [RebuildOneDirection](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/rebuildonedirection.md), [RefitSimplySplitSurface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/refitsimplysplitsurface.md), [RefitSplit](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/refitsplit.md), [Reverse](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/reverse.md), [SetDomain](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/setdomain.md), [ShortPath](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/shortpath.md), [Smooth](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/smooth.md), [SpanCount](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/spancount.md), [Split](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/split.md), [ToBrep](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/tobrep.md), [ToNurbsSurface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/tonurbssurface.md), [Transpose](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/transpose.md), [Trim](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/trim.md), [TryGetCone](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/trygetcone.md), [TryGetCylinder](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/trygetcylinder.md), [TryGetExtrusion](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/trygetextrusion.md), [TryGetFiniteCylinder](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/trygetfinitecylinder.md), [TryGetPlane](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/trygetplane.md), [TryGetSphere](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/trygetsphere.md), [TryGetTorus](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/trygettorus.md), [VariableOffset](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surface/variableoffset.md)
- From [GeometryBase](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase.md): [HasBrepForm](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/hasbrepform.md), [IsDeformable](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/isdeformable.md), [IsDocumentControlled](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/isdocumentcontrolled.md), [IsShallowDuplicate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/isshallowduplicate.md), [ObjectType](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/objecttype.md), [UserStringCount](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/userstringcount.md), [ComponentIndex](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/componentindex.md), [DataCRC](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/datacrc.md), [DeleteAllUserStrings](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/deletealluserstrings.md), [DeleteUserString](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/deleteuserstring.md), [Dispose](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/dispose.md), [Duplicate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/duplicate.md), [DuplicateShallow](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/duplicateshallow.md), [GetBoundingBox](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/getboundingbox.md), [GetUserString](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/getuserstring.md), [GetUserStrings](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/getuserstrings.md), [MakeDeformable](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/makedeformable.md), [MemoryEstimate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/memoryestimate.md), [NonConstOperation](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/nonconstoperation.md), [OnSwitchToNonConst](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/onswitchtononconst.md), [Rotate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/rotate.md), [Scale](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/scale.md), [SetUserString](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/setuserstring.md), [Transform](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/transform.md), [Translate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/translate.md)
- From [CommonObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject.md): [Disposed](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/disposed.md), [HasUserData](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/hasuserdata.md), [IsValid](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/isvalid.md), [UserData](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/userdata.md), [UserDictionary](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/userdictionary.md), [ConstructConstObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/constructconstobject.md), [Dispose](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/dispose.md), [EnsurePrivateCopy](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/ensureprivatecopy.md), [GetObjectData](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/getobjectdata.md), [IsValidWithLog](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/isvalidwithlog.md), [ToJSON](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/tojson.md)
