# MeshFaceList class

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

```cs
public class MeshFaceList : IResizableList<MeshFace>, IList, IReadOnlyList<MeshFace>
```

Provides access to the faces and Face related functionality of a Mesh.

## Properties

- [Capacity](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/capacity.md): Gets or sets the total number of mesh triangles and quads the internal data structure can hold without resizing.
- [Count](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/count.md): Gets or sets the number of mesh faces. When getting this can includes invalid faces.
- [QuadCount](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/quadcount.md): Gets the number of faces that are valid quads (4 corners).
- [ICollection<MeshFace>.IsReadOnly](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/system-collections-generic-icollection-rhino-geometry-meshface-isreadonly.md)
- [ICollection.IsSynchronized](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/system-collections-icollection-issynchronized.md)
- [ICollection.SyncRoot](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/system-collections-icollection-syncroot.md)
- [IList.IsFixedSize](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/system-collections-ilist-isfixedsize.md)
- [IList.IsReadOnly](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/system-collections-ilist-isreadonly.md)
- [TriangleCount](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/trianglecount.md): Gets the number of faces that are valid triangles (3 corners).

## Indexers

- [IList.this[]](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/system-collections-ilist-this.md)
- [this[]](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/item.md): Returns the mesh face at the given index.

## Methods

- [AddFace](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/addface.md): (3 overloads) Appends a new quadrangular face to the end of the mesh face list.
- [AddFaces](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/addfaces.md): Appends a list of faces to the end of the mesh face list.
- [AdjacentFaces](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/adjacentfaces.md): Gets all faces that share a topological edge with a given face.
- [Clear](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/clear.md): Clears the Face list on the mesh.
- [ConvertNonPlanarQuadsToTriangles](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/convertnonplanarquadstotriangles.md): Splits non-planar quads into two triangles based on given parameters.
- [ConvertQuadsToTriangles](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/convertquadstotriangles.md): Splits all quads along the short diagonal.
- [ConvertTrianglesToQuads](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/converttrianglestoquads.md): Joins adjacent triangles into quads if the resulting quad is 'nice'.
- [CullDegenerateFaces](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/culldegeneratefaces.md): Attempts to removes degenerate faces from the mesh. Degenerate faces are faces that contains such a combination of indices, that their final shape collapsed in a line or point. Before returning, this method also attempts to repair faces by juggling vertex indices.
- [DeleteFaces](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/deletefaces.md): (2 overloads) Removes a collection of faces from the mesh without affecting the remaining geometry.
- [Destroy](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/destroy.md): Releases all memory allocated to store faces. The list capacity will be 0 after this call. Subsequent calls can add new items.
- [ExtractDuplicateFaces](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/extractduplicatefaces.md): Extracts, or removes, duplicate faces.
- [ExtractFaces](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/extractfaces.md): Extracts, or removes, faces.
- [GetClashingFacePairs](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/getclashingfacepairs.md): Gets an array of pairs of mesh faces that clash.
- [GetConnectedFaces](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/getconnectedfaces.md): (2 overloads) Find all connected face indices where adjacent face normals meet the criteria of angleRadians and greaterThanAngle
- [GetConnectedFacesToEdges](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/getconnectedfacestoedges.md): Uses startFaceIndex and finds all connected face indexes up to unwelded or naked edges. If treatNonmanifoldLikeUnwelded is true then non-manifold edges will be considered as unwelded or naked
- [GetDuplicateFaces](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/getduplicatefaces.md): Finds all of the duplicate faces.
- [GetEnumerator](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/getenumerator.md): Gets an enumerator that yields all faces in this collection.
- [GetFace](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/getface.md): Returns the mesh face at the given index.
- [GetFaceAspectRatio](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/getfaceaspectratio.md): Returns the mesh face at the given index.
- [GetFaceBoundingBox](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/getfaceboundingbox.md): Gets the bounding box of a face.
- [GetFaceCenter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/getfacecenter.md): Gets the center point of a face. For a triangular face, this is the centroid or barycenter. For a quad, this is the average of four comer points.
- [GetFaceVertices](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/getfacevertices.md): Gets the 3D location of the vertices forming a face.
- [GetTopologicalVertices](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/gettopologicalvertices.md): Gets the topology vertex indices of a face.
- [GetZeroAreaFaces](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/getzeroareafaces.md): Examines and adds face indexes to whollyDegenerateFaces if the face is a triangle with zero area or a quad both triangles have zero area. Face indexes are added to partiallyDegenerateFaces when a quad has one triangle with zero area.
- [HasNakedEdges](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/hasnakededges.md): Returns true if at least one of the face edges are not topologically connected to any other faces.
- [Insert](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/insert.md): Inserts a mesh face at a defined index in this list.
- [IsHidden](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/ishidden.md): Gets a value indicating whether a face is hidden. A face is hidden if, and only if, at least one of its vertices is hidden.
- [MergeAdjacentFaces](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/mergeadjacentfaces.md): Merges two triangular mesh faces that share an edge into one quadrangular face.
- [RemoveAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/removeat.md): (2 overloads) Removes a face from the mesh.
- [RemoveZeroAreaFaces](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/removezeroareafaces.md): Deletes or fixes mesh faces that have zero area.
- [SetFace](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/setface.md): (3 overloads) Sets a quadrangular face at a specific index of the mesh.
- [ICollection<MeshFace>.Add](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/system-collections-generic-icollection-rhino-geometry-meshface-add.md)
- [ICollection<MeshFace>.Contains](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/system-collections-generic-icollection-rhino-geometry-meshface-contains.md)
- [ICollection<MeshFace>.CopyTo](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/system-collections-generic-icollection-rhino-geometry-meshface-copyto.md)
- [ICollection<MeshFace>.Remove](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/system-collections-generic-icollection-rhino-geometry-meshface-remove.md)
- [IList<MeshFace>.IndexOf](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/system-collections-generic-ilist-rhino-geometry-meshface-indexof.md)
- [IList<MeshFace>.Insert](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/system-collections-generic-ilist-rhino-geometry-meshface-insert.md)
- [IList<MeshFace>.RemoveAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/system-collections-generic-ilist-rhino-geometry-meshface-removeat.md)
- [ICollection.CopyTo](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/system-collections-icollection-copyto.md)
- [IEnumerable.GetEnumerator](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/system-collections-ienumerable-getenumerator.md)
- [IList.Add](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/system-collections-ilist-add.md)
- [IList.Contains](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/system-collections-ilist-contains.md)
- [IList.IndexOf](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/system-collections-ilist-indexof.md)
- [IList.Insert](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/system-collections-ilist-insert.md)
- [IList.Remove](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/system-collections-ilist-remove.md)
- [IList.RemoveAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/system-collections-ilist-removeat.md)
- [ToIntArray](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.collections.meshfacelist/tointarray.md): (2 overloads) Copies all of the faces to a linear array of indices. Clean-up of vertex indices if replacedIndices is a valid List<int> ///
