# BrepFace 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 class BrepFace : SurfaceProxy
```

Provides strongly-typed access to brep faces.

A Brep face is composed of one surface and trimming curves.

## Properties

- [Brep](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/brep.md): Gets the Brep that owns this face.
- [FaceIndex](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/faceindex.md): Index of face in Brep.Faces array.
- [Id](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/id.md): Gets or sets the persistent id of this Brep face. By default, the id is Guid.Zero. Note, Rhino does not set this id. Thus, the property is available for use as a way of tracking Brep faces.
- [IsSurface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/issurface.md): Gets a value indicating whether the face is synonymous with the underlying surface. If a Face has no trimming curves then it is considered a Surface.
- [Loops](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/loops.md): Loops in this face.
- [MaterialChannelIndex](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/materialchannelindex.md): This face's rendering material channel index.
- [OrientationIsReversed](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/orientationisreversed.md): true if face orientation is opposite of natural surface orientation.
- [OuterLoop](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/outerloop.md): Every face has a single outer loop.
- [PackId](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/packid.md): 0 if the pack it is unset, or >0 if the set pack id.
- [PerFaceColor](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/perfacecolor.md): If per-face color is "Empty", then this face does not have a custom color
- [ProxyBrepSubDFaceId](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/proxybrepsubdfaceid.md): If this face is part of a brep created by SubD.ProxyBrep(), then the subd component id of the corresponding SubD face is returned. Otherwise 0 is returned.
- [SurfaceIndex](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/surfaceindex.md): Surface index of the 3d surface geometry used by this face or -1

## Methods

- [AdjacentEdges](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/adjacentedges.md): Gets the indices of all the BrepEdges that delineate this Face.
- [AdjacentFaces](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/adjacentfaces.md): Gets the indices of all the BrepFaces that surround (are adjacent to) this face.
- [ChangeSurface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/changesurface.md): Expert user tool that replaces the 3d surface geometry use by the face.
- [ClearMaterialChannelIndex](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/clearmaterialchannelindex.md): Clear this face's rendering material channel index.
- [ClearPackId](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/clearpackid.md): Sets BrepFace.PackId to 0.
- [ClosestPointOnFace](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/closestpointonface.md): Get the closest point to this face. Closest point finding respects the trims on the face.
- [CreateExtrusion](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/createextrusion.md): Extrude a face in a Brep.
- [DraftAnglePoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/draftanglepoint.md): Returns the surface draft angle and point at a parameter.
- [DuplicateFace](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/duplicateface.md): Duplicate a face from the brep to create new single face brep.
- [DuplicateSurface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/duplicatesurface.md): Gets a copy to the untrimmed surface that this face is based on.
- [FilletSurfaceToCurve](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/filletsurfacetocurve.md): Creates a constant-radius fillet surface between a surface and the curve.
- [FilletSurfaceToRail](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/filletsurfacetorail.md): Creates a surface between two surfaces, with a fixed rail curve on the first surface.
- [GetMesh](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/getmesh.md): Obtains a reference to a specified type of mesh for this brep face.
- [IsPointOnFace](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/ispointonface.md): (2 overloads) Tests if a parameter space point is in the active region of a face.
- [PullPointsToFace](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/pullpointstoface.md): Pulls one or more points to a brep face.
- [RebuildEdges](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/rebuildedges.md): Rebuild the edges used by a face so they lie on the surface.
- [RefitTrim](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/refittrim.md): (2 overloads) Refits this face so that a trimmed edge becomes an untrimmed side, and re-applies the face's other trims to the refit surface. Unlike [BrepFace.RefitTrim(BrepEdge, IEnumerable<double>, double, bool, double)](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/refittrim.md), this works on faces trimmed on more than one side.
- [RemoveHoles](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/removeholes.md): Remove all inner loops, or holes, from a Brep face.
- [SetDomain](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/setdomain.md): Sets the surface domain of this face.
- [SetMesh](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/setmesh.md): Sets a reference to a specified type of mesh for this brep face.
- [SetPackId](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/setpackid.md): Used by SubD functions that create breps to transmit the subd face SubDFace.PackId value to the brep face or faces generated from the subd face. Unless you are an expert and doing something very carefully and very fancy, to not call this function.
- [ShrinkFace](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/shrinkface.md): Shrinks the underlying untrimmed surface of this Brep face close to trimming boundaries. Shrinking a surface is like extending smoothly, only backwards. knot of full multiplicity are added where you want the surface to be cut off. Then the remaining control points are thrown away.
- [ShrinkSurfaceToEdge](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/shrinksurfacetoedge.md): Shrinks the underlying untrimmed surface of this Brep face right to the trimming boundaries. Note, shrinking the trimmed surface can sometimes cause problems later since having the edges so close to the trimming boundaries can cause commands that use the surface edges as input to fail.
- [Split](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/split.md): Split this face using 3D trimming curves.
- [TrimAwareIsoCurve](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/trimawareisocurve.md): Similar to IsoCurve function, except this function pays attention to trims on faces and may return multiple curves.
- [TrimAwareIsoIntervals](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/trimawareisointervals.md): Gets intervals where the iso curve exists on a BrepFace (trimmed surface)
- [TryGetInteriorPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/trygetinteriorpoint.md): Tries to get a 3-D point that is comfortably in the interior of this face, which is useful for face labeling and for face classification.
- [UnderlyingSurface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brepface/underlyingsurface.md): Gets the untrimmed surface that is the base of this face.

## 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), [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)
