# ITypeAssistant 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
```

Non-generic bare-bones interface for type assistants.

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

## Properties

- [Constructors](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/constructors.md): Enumerate all defined constructors for this type.
- [Icon](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/icon.md): Gets the icon associated with this type, if any.
- [IsReimplementation](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/isreimplementation.md): Gets whether or not this assistant is a type-safe re-implementation of a more generic assistant.
- [Name](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/name.md): Gets the (singular) name of this type as meant for human consumption. I.e. "point", "number", "boolean", etc.
- [ReimplementationBase](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/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.itypeassistant/type.md): Gets the type associated with this assistant.
- [ZupportsArea](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsarea.md): Gets whether this type assistant has support for Area metrics.
- [ZupportsAreaCentroid](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsareacentroid.md): Gets whether this type assistant has support for Area centroid metrics.
- [ZupportsBake](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsbake.md): Gets whether this type assistant supports conversion to Rhino compliant shapes.
- [ZupportsBoundingBox](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsboundingbox.md): Gets whether this type assistant has support for bounding boxes.
- [ZupportsClosestPoint](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsclosestpoint.md): Gets whether this type assistant has support for closest point resolution.
- [ZupportsDeform](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsdeform.md): Gets whether this type assistant has support for non-linear deformations.
- [ZupportsDraw](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsdraw.md): Gets whether this type assistant has support for geometry displays.
- [ZupportsFurthestPoint](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsfurthestpoint.md): Gets whether this type assistant has support for furthest point resolution.
- [ZupportsLength](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportslength.md): Gets whether this type assistant has support for Length metrics.
- [ZupportsLink](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportslink.md): Gets whether this type assistant has support for geometry referencing.
- [ZupportsPick](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportspick.md): Gets whether the assistants supports UI for specifying new values.
- [ZupportsReadWrite](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsreadwrite.md): Gets whether this assistant supports (de)serializing instances of T.
- [ZupportsRoundTripping](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsroundtripping.md): Gets whether this assistant supports round-tripping from T to string to T. For this to be true, both [ITypeAssistant.Format(object)](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/format.md) and [ITypeAssistant.Parse(string, string, IPear)](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/parse.md) must be implemented.
- [ZupportsTransform](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportstransform.md): Gets whether this type assistant has support for linear transformations.
- [ZupportsTransformBox](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportstransformbox.md): Gets whether this type assistant has support for transform aligned bounding boxes.
- [ZupportsVolume](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsvolume.md): Gets whether this type assistant has support for Volume metrics.
- [ZupportsVolumeCentroid](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/zupportsvolumecentroid.md): Gets whether this type assistant has support for Volume centroid metrics.

## Methods

- [Area](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/area.md): Measure the area of an instance.
- [AreaCentroid](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/areacentroid.md): Measure the area of an instance.
- [BoundingBox](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/boundingbox.md): Gets the world aligned boundingbox for an instance.
- [ClosestPoint](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/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/copy.md): Create an exact duplicate of an instance.
- [Deform](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/deform.md): Morph an instance of T.
- [DescribePrimary](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/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/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/draw.md): Add a shape to a display bag.
- [Format](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/format.md): Format an instance so that it yields parsable text.
- [FurthestPoint](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/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/hash.md): Hash an instance of the object. The default implementation calls GetHash() on the instance.
- [Length](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/length.md): Measure the length of an instance.
- [Link](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/link.md): Update a pear which contains reference meta data.
- [ModifyBakeAttributes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/modifybakeattributes.md): (2 overloads) By overriding this method, the type implementor may add modifications to the attributes of objects baked to Rhino files. 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/parse.md): Parse a text representation with an optional pre-existing value.
- [Pick](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/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 UI on the screen.
- [Read](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/read.md): Read an instance from a GrasshopperIO archive.
- [Same](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/same.md): Compare two instances for equality.
- [Show](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/show.md): Create a Grasshopper display proxy.
- [Sort](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/sort.md): Compare the sort order of two instances.
- [Test](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/test.md): (2 overloads) Determine the validity of an instance.
- [Text](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/text.md): Create a [Prose.Text](https://developer.rhino3d.com/api/gh2/type/grasshopper2.prose.text.md) which can function as a comparison stand-in for this value for the purposes of sorting. Particularly when it comes to sorting values of different types.
- [ToGeometry](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/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/transform.md): Transform an instance of T.
- [TransformBox](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/transformbox.md): Gets the transformation aligned boundingbox for an instance.
- [Volume](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/volume.md): Measure the volume of an instance.
- [VolumeCentroid](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/volumecentroid.md): Measure the volume of an instance.
- [Write](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.assistant.itypeassistant/write.md): Write an instance to a GrasshopperIO archive.
