# SurfaceAssistant<T> class

Namespace: [Grasshopper2.Types.Assistant](https://developer.rhino3d.com/api/gh2/namespace/grasshopper2.types.assistant.md) · Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

```cs
public abstract class SurfaceAssistant<T> : ISurfaceAssistant
```

Specific assistant for surface like types.

**Type parameters:**

- `T`: Type to assist.

**Derived types:** [BoxSurfaceAssistant](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistants.boxsurfaceassistant.md), [BrepSurfaceAssistant](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistants.brepsurfaceassistant.md), [SphereSurfaceAssistant](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistants.spheresurfaceassistant.md), [SubDSurfaceAssistant](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistants.subdsurfaceassistant.md), [SurfaceSurfaceAssistant](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistants.surfacesurfaceassistant.md), [TubeSurfaceAssistant](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistants.tubesurfaceassistant.md)

## Constructors

- [SurfaceAssistant<T>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/ctor.md): Abstract constructor, assigns Type and TypeId fields based on T.

## Properties

- [IsReimplementation](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/isreimplementation.md): Gets whether or not this assistant is a type-safe re-implementation of a more generic assistant.
- [ReimplementationBase](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/reimplementationbase.md): Gets the base assistant (if any) this assistant is a re-implementation of.
- [Type](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/type.md): Gets the type associated with this assistant.

## Methods

- [BoundingBox](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/boundingbox.md)
- [ConvertToBrep](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/converttobrep.md)
- [EvaluateCurvature](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/evaluatecurvature.md)
- [EvaluateNormal](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/evaluatenormal.md)
- [EvaluatePosition](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/evaluateposition.md)
- [EvaluateTangent](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/evaluatetangent.md)
- [EvaluateUV](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/evaluateuv.md)
- [Explode](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/explode.md)
- [ExplodeRecursive](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/exploderecursive.md)
- [FindClosestParameter](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/findclosestparameter.md)
- [FlipDirection](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/flipdirection.md)
- [ISurfaceAssistant.BoundingBox](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/grasshopper2-types-assistant-isurfaceassistant-boundingbox.md)
- [ISurfaceAssistant.ConvertToBrep](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/grasshopper2-types-assistant-isurfaceassistant-converttobrep.md)
- [ISurfaceAssistant.EvaluateCurvature](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/grasshopper2-types-assistant-isurfaceassistant-evaluatecurvature.md)
- [ISurfaceAssistant.EvaluateNormal](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/grasshopper2-types-assistant-isurfaceassistant-evaluatenormal.md)
- [ISurfaceAssistant.EvaluatePosition](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/grasshopper2-types-assistant-isurfaceassistant-evaluateposition.md)
- [ISurfaceAssistant.EvaluateTangent](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/grasshopper2-types-assistant-isurfaceassistant-evaluatetangent.md)
- [ISurfaceAssistant.EvaluateUV](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/grasshopper2-types-assistant-isurfaceassistant-evaluateuv.md)
- [ISurfaceAssistant.Explode](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/grasshopper2-types-assistant-isurfaceassistant-explode.md)
- [ISurfaceAssistant.ExplodeRecursive](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/grasshopper2-types-assistant-isurfaceassistant-exploderecursive.md)
- [ISurfaceAssistant.FindClosestParameter](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/grasshopper2-types-assistant-isurfaceassistant-findclosestparameter.md)
- [ISurfaceAssistant.FlipDirection](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/grasshopper2-types-assistant-isurfaceassistant-flipdirection.md)
- [ISurfaceAssistant.IsClosed](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/grasshopper2-types-assistant-isurfaceassistant-isclosed.md)
- [ISurfaceAssistant.IsPlanar](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/grasshopper2-types-assistant-isurfaceassistant-isplanar.md): (2 overloads)
- [ISurfaceAssistant.Slice](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/grasshopper2-types-assistant-isurfaceassistant-slice.md)
- [IsClosed](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/isclosed.md)
- [IsPlanar](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/isplanar.md): (2 overloads)
- [Slice](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.surfaceassistant-1/slice.md)
