# GH_MeshFace class

Namespace: [Grasshopper.Kernel.Types](https://developer.rhino3d.com/api/gh1/namespace/grasshopper.kernel.types.md) · Assembly: [Grasshopper](https://developer.rhino3d.com/api/gh1/assembly/grasshopper.md)

```cs
public class GH_MeshFace : GH_Goo<MeshFace>
```

Represents a tri or quad mesh face. GH_MeshFace works similar to the OpenNURBS OnMeshFace class.

## Constructors

- [GH_MeshFace](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-meshface/ctor.md): (5 overloads) Default constructor. Sets all corners to 0.

## Properties

- [IsValid](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-meshface/isvalid.md): Test for validity. No negative indices are allowed and only C and D are allowed to be identical.
- [IsValidWhyNot](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-meshface/isvalidwhynot.md): Gets a string describing the state of "invalidness". If the instance is valid, then this property should return Nothing or String.Empty.
- [TypeDescription](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-meshface/typedescription.md)
- [TypeName](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-meshface/typename.md)

## Methods

- [CastFrom](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-meshface/castfrom.md): Remote to Local caster function. This stuff is complex, don't concern yourself with casting logic.
- [CastTo<T>](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-meshface/castto.md): Local to Remote caster function. This stuff is complex, don't concern yourself with casting logic.
- [Duplicate](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-meshface/duplicate.md): Create a duplicate of this Mesh face.
- [DuplicateMeshFace](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-meshface/duplicatemeshface.md): Create a duplicate of this Mesh face.
- [EmitProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-meshface/emitproxy.md): Returns a proxy that represents this mesh face. Do not call this function unless you're
- [Read](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-meshface/read.md)
- [ToString](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-meshface/tostring.md): Format the mesh face using default grasshopper formatting logic.
- [Write](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-meshface/write.md)

## Inherited Members

- From [GH_Goo<T>](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-goo-1.md): [m_value](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-goo-1/m-value.md), [Value](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-goo-1/value.md), [ScriptVariable](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-goo-1/scriptvariable.md)
