# SubDComponentParameter struct

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
[StructLayout(LayoutKind.Sequential)]
public struct SubDComponentParameter : IEquatable<SubDComponentParameter>
```

Identifies a point on the surface of a [SubD](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subd.md).

SubDs have no global (u,v) parameterization. Instead a point on the surface is identified relative to a component of the SubD: a vertex, a point on an edge, or a point inside a face. A point inside a face is given by the index of the face corner it belongs to plus two parameters inside that corner, because a face with five or more sides has no single well behaved (u,v) domain.

Use [SubD.ClosestPoint(Point3d, Point3d, SubDComponentParameter)](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subd/closestpoint.md) to find a parameter and [SubD.Evaluate(SubDComponentParameter, Point3d)](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subd/evaluate.md) and its overloads to evaluate one.

## Properties

- [ActiveFaceId](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/activefaceid.md): Gets the id of the face this parameter uses to resolve which sector of a vertex or which side of an edge it means, or 0 if there is none. It is always 0 when [SubDComponentParameter.IsFaceParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/isfaceparameter.md) is true; use [SubDComponentParameter.ComponentId](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/componentid.md) in that case.
- [ComponentId](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/componentid.md): Gets the id of the SubD component this parameter is relative to, or 0 if this parameter is not set.
- [ComponentIndex](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/componentindex.md): Gets the component index of the SubD component this parameter is relative to. It is [ComponentIndex.Unset](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentindex/unset.md) if this parameter is not set.
- [EdgeParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/edgeparameter.md): Gets a value between 0 and 1 identifying a point on the edge, or [double.NaN](https://learn.microsoft.com/dotnet/api/system.double.nan) if [SubDComponentParameter.IsEdgeParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/isedgeparameter.md) is false.
- [FaceCornerIndex](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/facecornerindex.md): Gets the index of the face corner the face parameters are measured in, or -1 if [SubDComponentParameter.IsFaceParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/isfaceparameter.md) is false.
- [FaceCornerParameters](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/facecornerparameters.md): Gets the two parameters inside the face corner identified by [SubDComponentParameter.FaceCornerIndex](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/facecornerindex.md). Both run from 0 to 1/2: (0,0) is the corner vertex and (1/2,1/2) is the center of the face. X runs towards the midpoint of the edge leaving the corner and Y towards the midpoint of the edge entering it. The point is [Point2d.Unset](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.point2d/unset.md) if [SubDComponentParameter.IsFaceParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/isfaceparameter.md) is false.
- [FaceEdgeCount](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/faceedgecount.md): Gets the number of edges of the face, or 0 if [SubDComponentParameter.IsFaceParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/isfaceparameter.md) is false.
- [IsEdgeParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/isedgeparameter.md): Gets true if this parameter identifies a surface point on a SubD edge.
- [IsFaceParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/isfaceparameter.md): Gets true if this parameter identifies a surface point inside a SubD face.
- [IsSet](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/isset.md): Gets true if this parameter identifies a point on a SubD.
- [IsVertexParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/isvertexparameter.md): Gets true if this parameter identifies the surface point at a SubD vertex.
- [Unset](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/unset.md): (static) The unset parameter. It does not identify a point on any SubD.

## Methods

- [CreateEdgeParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/createedgeparameter.md): (static) Creates a parameter that identifies a surface point on a SubD edge.
- [CreateFaceParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/createfaceparameter.md): (static) Creates a parameter that identifies a surface point inside a SubD face.
- [CreateVertexParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/createvertexparameter.md): (static) Creates a parameter that identifies the surface point at a SubD vertex.
- [Equals](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/equals.md): (2 overloads) Indicates whether this instance and a specified object are equal.
- [GetHashCode](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/gethashcode.md): Returns the hash code for this instance.
- [ToString](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/tostring.md): Returns the fully qualified type name of this instance.

## Operators

- [operator ==](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/op-equality.md): (static) Determines whether two parameters are equal.
- [operator !=](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponentparameter/op-inequality.md): (static) Determines whether two parameters are different.
