BRepBuilderSurfaceGeometryCreateNURBSSurface(Int32, Int32, IListDouble, IListDouble, IListXYZ, Boolean, BoundingBoxUV) Method |
Construct a BRepBuilderSurfaceGeometry based on NURBS surface data, where the weights are not supplied.
In this case, the NURBS surface will be a piecewise polynomial surface.
Namespace: Autodesk.Revit.DBAssembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntaxpublic static BRepBuilderSurfaceGeometry CreateNURBSSurface(
int degreeU,
int degreeV,
IList<double> knotsU,
IList<double> knotsV,
IList<XYZ> controlPoints,
bool bReverseOrientation,
BoundingBoxUV surfaceEnvelope
)
Public Shared Function CreateNURBSSurface (
degreeU As Integer,
degreeV As Integer,
knotsU As IList(Of Double),
knotsV As IList(Of Double),
controlPoints As IList(Of XYZ),
bReverseOrientation As Boolean,
surfaceEnvelope As BoundingBoxUV
) As BRepBuilderSurfaceGeometry
public:
static BRepBuilderSurfaceGeometry^ CreateNURBSSurface(
int degreeU,
int degreeV,
IList<double>^ knotsU,
IList<double>^ knotsV,
IList<XYZ^>^ controlPoints,
bool bReverseOrientation,
BoundingBoxUV^ surfaceEnvelope
)
static member CreateNURBSSurface :
degreeU : int *
degreeV : int *
knotsU : IList<float> *
knotsV : IList<float> *
controlPoints : IList<XYZ> *
bReverseOrientation : bool *
surfaceEnvelope : BoundingBoxUV -> BRepBuilderSurfaceGeometry
Parameters
- degreeU Int32
-
The degree of the spline in the u-direction; must be positive.
- degreeV Int32
-
The degree of the spline in the v-direction; must be positive.
- knotsU IListDouble
-
Knot values in the u-direction.
The number of knots in the u-direction must be at least 2 * (degreeU + 1).
- knotsV IListDouble
-
Knot values in the v-direction.
The number of knots in the v-direction must be at least 2 * (degreeV + 1).
- controlPoints IListXYZ
-
One dimensional array of points representing the two dimensional net of control points
of the NURBS surface in u and v directions.
The total number of control points must equal numControlPtsU times numControlPtsV,
where numControlPtsU and numControlPtsV are the numbers of control points in u and v directions,
and they must satisfy the following conditions:
- numControlPtsU = number of knots in u - degreeU - 1.
- numControlPtsV = number of knots in v - degreeV - 1.
The convention for 2d (idxU, idxV) to 1d (idx) conversion of array indexes: idxV first.
That is, idxU is outer loop and idxV is inner loop. In other words,
idx = idxU * numControlPtsV + idxV.
- bReverseOrientation Boolean
-
If true, the surface's orientation is opposite to the canonical parametric orientation, otherwise it is the same.
The canonical parametric orientation is a counter-clockwise sense of rotation in the uv-parameter plane.
Extrinsically, the oriented normal vector for the canonical parametric orientation points in the direction of
the cross product dS/du x dS/dv, which S(u, v) is the parameterized surface.
- surfaceEnvelope BoundingBoxUV
-
Envelope of the surface in the uv parametric domain. Defines the domain of interest for the created surface.
This is typically used to identify the domain of the face that references the surface in question.
Expected to either be null or define a valid domain.
Return Value
BRepBuilderSurfaceGeometry
ExceptionsException | Condition |
---|
ArgumentException |
The U-degree value must be at least 1.
-or-
The V-degree value must be at least 1.
-or-
The number of knots in the U direction must be at least 2 * (U-degree + 1).
-or-
The number of knots in the V direction must be at least 2 * (V-degree + 1).
-or-
The number of control points must equal (number of U-knots - U-degree - 1) * (number of V-knots - V-degree - 1).
-or-
The input data does not define a valid Nurbs surface.
|
ArgumentNullException |
A non-optional argument was null
|
InvalidOperationException |
The Nurbs surface could not be converted for use in Revit. It may have C2-discontinuities or be too large.
|
Remarks
This function does not handle periodic Nurbs surfaces.
See Also