# ITypeAssistant<T> interface

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 interface ITypeAssistant<T> : ITypeAssistant
```

Base interface for type assistants. Do not implement this interface from scratch, instead inherit from TypeAssistant<T>.

**Type parameters:**

- `T`: Actual type to assist.

**Derived types:** [TypeAssistant<T>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.typeassistant-1.md)

## Methods

- [Area](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/area.md): Measure the area of an instance.
- [AreaCentroid](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/areacentroid.md): Measure the area of an instance.
- [BoundingBox](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/boundingbox.md): Gets the world aligned boundingbox for an instance.
- [ClosestPoint](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/closestpoint.md): Gets the point on an instance closest to a locus point.
- [Copy](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/copy.md): Create an exact duplicate of an instance.
- [Deform](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/deform.md): Morph an instance of T.
- [DescribePrimary](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/describeprimary.md): Give the primary description of a value. This does not need to yield a parsable string, the results are meant only for human consumption.
- [DescribeSecondary](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/describesecondary.md): Give the secondary description of a value. The secondary description may elaborate on the value. This method may always return null.
- [Draw](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/draw.md): Add a shape to a display bag.
- [Format](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/format.md): Format an instance so that it yields parsable text.
- [FurthestPoint](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/furthestpoint.md): Gets the point on an instance furthest away from a locus point.
- [Hash](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/hash.md): Hash an instance.
- [Length](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/length.md): Measure the length of an instance.
- [Link](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/link.md): Update a pear which contains reference meta data.
- [ModifyBakeAttributes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/modifybakeattributes.md): By overriding this method the type implementor may add modifications to the attributes of objects baked via the [ITypeAssistant<T>.ToGeometry(Pear<T>)](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/togeometry.md) implementation. For example, vectors when baked require an arrowhead to be set at the curve end, and this must be specified via the object attributes.
- [Parse](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/parse.md): Parse a text representation with an optional pre-existing value.
- [Pick](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/pick.md): Ask the user to specify (or pick) a new value. When this method is invoked, it is assumed that it will start a RhinoGet operation or otherwise pop some kind of modal UI onto the screen.
- [Read](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/read.md): Read an instance from a GrasshopperIO archive.
- [Same](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/same.md): Compare two values for equality.
- [Show](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/show.md): Create a Grasshopper display proxy.
- [Sort](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/sort.md): Compare two values for sorting order.
- [Test](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/test.md): (2 overloads) Determine the validity of an instance.
- [Text](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/text.md): Create a string which can function as a sorting key for this value.
- [ToGeometry](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/togeometry.md): Convert a pear into a collection of Rhino compliant geometries. This is used primarily for the standard baking of geometric data.
- [Transform](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/transform.md): Transform an instance of T.
- [TransformBox](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/transformbox.md): Gets the transformation aligned boundingbox for an instance.
- [Volume](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/volume.md): Measure the volume of an instance.
- [VolumeCentroid](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/volumecentroid.md): Measure the volume of an instance.
- [Write](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant-1/write.md): Write an instance to a GrasshopperIO archive.

## Inherited Members

- From [ITypeAssistant](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant.md): [Constructors](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/constructors.md), [Icon](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/icon.md), [IsReimplementation](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/isreimplementation.md), [Name](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/name.md), [ReimplementationBase](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/reimplementationbase.md), [Type](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/type.md), [ZupportsArea](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsarea.md), [ZupportsAreaCentroid](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsareacentroid.md), [ZupportsBake](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsbake.md), [ZupportsBoundingBox](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsboundingbox.md), [ZupportsClosestPoint](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsclosestpoint.md), [ZupportsDeform](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsdeform.md), [ZupportsDraw](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsdraw.md), [ZupportsFurthestPoint](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsfurthestpoint.md), [ZupportsLength](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportslength.md), [ZupportsLink](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportslink.md), [ZupportsPick](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportspick.md), [ZupportsReadWrite](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsreadwrite.md), [ZupportsRoundTripping](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsroundtripping.md), [ZupportsTransform](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportstransform.md), [ZupportsTransformBox](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportstransformbox.md), [ZupportsVolume](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsvolume.md), [ZupportsVolumeCentroid](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsvolumecentroid.md), [Area](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/area.md), [AreaCentroid](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/areacentroid.md), [BoundingBox](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/boundingbox.md), [ClosestPoint](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/closestpoint.md), [Copy](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/copy.md), [Deform](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/deform.md), [DescribePrimary](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/describeprimary.md), [DescribeSecondary](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/describesecondary.md), [Draw](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/draw.md), [Format](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/format.md), [FurthestPoint](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/furthestpoint.md), [Hash](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/hash.md), [Length](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/length.md), [Link](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/link.md), [ModifyBakeAttributes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/modifybakeattributes.md), [Parse](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/parse.md), [Pick](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/pick.md), [Read](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/read.md), [Same](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/same.md), [Show](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/show.md), [Sort](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/sort.md), [Test](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/test.md), [Text](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/text.md), [ToGeometry](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/togeometry.md), [Transform](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/transform.md), [TransformBox](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/transformbox.md), [Volume](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/volume.md), [VolumeCentroid](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/volumecentroid.md), [Write](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/write.md)
