# SubDFace 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
public sealed class SubDFace : SubDComponent
```

Single face of a SubD

## Properties

- [ControlNetCenterFrame](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdface/controlnetcenterframe.md): The face's control net center frame is a plane with normal equal to ControlNetCenterNormal and origin equal to ControlNetCenterPoint. The x and y axes of the frame have no predictable relationship to the face or SubD control net topology.
- [ControlNetCenterNormal](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdface/controlnetcenternormal.md): When the face's control net polygon is planar, the face's control net normal is a unit vector perpendicular to the plane that points outwards. If the control net polygon is not planar, the control net normal is control net normal is a unit vector that is the average of the control polygon's corner normals.
- [ControlNetCenterPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdface/controlnetcenterpoint.md): The face's control net center point is the average of the face's vertex control net points. This is the same point as the face's subdivision point.
- [EdgeCount](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdface/edgecount.md): Number of edges for this face. Note that EdgeCount is always the same as VertexCount. Two properties are provided simply for clarity.
- [LimitSurfaceCenterPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdface/limitsurfacecenterpoint.md): Get the limit surface point location at the center of the face
- [PerFaceColor](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdface/perfacecolor.md): If per-face color is "Empty", then this face does not have a custom color
- [SurfaceCenterFrame](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdface/surfacecenterframe.md): Get the limit surface tangent plane at the center of the face. The plane's origin is the point on the limit surface at the center of the face. The plane's z axis is the limit surface normal vector at the center of the face.
- [SurfaceCenterNormal](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdface/surfacecenternormal.md): Get the limit surface normal vector at the center of the face.
- [VertexCount](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdface/vertexcount.md): Number of vertices for this face. Note that EdgeCount is always the same as VertexCount. Two properties are provided simply for clarity.

## Methods

- [ClearSavedSubdivisionPoints](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdface/clearsavedsubdivisionpoints.md): Discards the cached subdivision and surface points for this face, so they are recomputed on next use.
- [ComponentIndex](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdface/componentindex.md): Gets the component index of this face.
- [EdgeAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdface/edgeat.md): Get an edge at a given index
- [EdgeDirectionMatchesFaceOrientation](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdface/edgedirectionmatchesfaceorientation.md): Check if a given edge in this face has the same direction as the face orientation
- [VertexAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdface/vertexat.md): Get a vertex that this face uses by index

## Inherited Members

- From [SubDComponent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent.md): [ComponentDirection](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/componentdirection.md), [Id](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/id.md), [IsDamaged](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/isdamaged.md), [IsDeleted](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/isdeleted.md), [IsHidden](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/ishidden.md), [IsHighlighted](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/ishighlighted.md), [IsLocked](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/islocked.md), [IsSelected](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/isselected.md), [ParentSubD](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/parentsubd.md), [Equals](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/equals.md), [GetHashCode](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/gethashcode.md), [ReverseComponentDirection](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/reversecomponentdirection.md), [ToString](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/tostring.md)
