# GH_GooProxy<T> 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 abstract class GH_GooProxy<T> : IGH_GooProxy
```

Abstract base implementation of IGH_GooProxy

**Type parameters:**

- `T` (where IGH_Goo)

**Derived types:** [GH_AnnotationBase.GH_AnnotationBaseProxy<T>](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-annotationbase.gh-annotationbaseproxy-1.md), [GH_Box.GH_BoxProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-box.gh-boxproxy.md), [GH_Brep.GH_BrepProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-brep.gh-brepproxy.md), [GH_Circle.GH_CircleProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-circle.gh-circleproxy.md), [GH_ClippingPlane.GH_ClippingPlaneProxy<T>](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-clippingplane.gh-clippingplaneproxy-1.md), [GH_Curve.GH_CurveProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-curve.gh-curveproxy.md), [GH_Extrusion.GH_ExtrusionProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-extrusion.gh-extrusionproxy.md), [GH_GeometryGroup.GH_GeometryGroupProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-geometrygroup.gh-geometrygroupproxy.md), [GH_Hatch.GH_HatchProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-hatch.gh-hatchproxy.md), [GH_InstanceReference.GH_InstanceReferenceProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-instancereference.gh-instancereferenceproxy.md), [GH_Interval2D.GH_Interval2DProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-interval2d.gh-interval2dproxy.md), [GH_Line.GH_LineProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-line.gh-lineproxy.md), [GH_Material.GH_Material_Proxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-material.gh-material-proxy.md), [GH_Mesh.GH_MeshProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-mesh.gh-meshproxy.md), [GH_MeshFace.GH_MeshFaceProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-meshface.gh-meshfaceproxy.md), [GH_MeshingParameters.RhMesherSettings_Proxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-meshingparameters.rhmeshersettings-proxy.md), [GH_Plane.GH_PlaneProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-plane.gh-planeproxy.md), [GH_Point.GH_PointProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-point.gh-pointproxy.md), [GH_PointCloud.PointCloudProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-pointcloud.pointcloudproxy.md), [GH_Rectangle.GH_RectangleProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-rectangle.gh-rectangleproxy.md), [GH_SubD.GH_SubDProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-subd.gh-subdproxy.md), [GH_Surface.GH_SurfaceProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-surface.gh-surfaceproxy.md), [GH_TextDot.GH_TextDotProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-textdot.gh-textdotproxy.md), [GH_Vector.GH_VectorProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-vector.gh-vectorproxy.md), [Param_Geometry.GH_GeometryProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.parameters.param-geometry.gh-geometryproxy.md)

## Constructors

- [GH_GooProxy<T>](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-gooproxy-1/ctor.md)

## Properties

- [IsParsable](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-gooproxy-1/isparsable.md): Gets a value indicating whether or not the type can be instantiated from a String.
- [Owner](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-gooproxy-1/owner.md)
- [ProxyOwner](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-gooproxy-1/proxyowner.md): Gets the piece of Grasshopper data that spawned this proxy.
- [TypeDescription](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-gooproxy-1/typedescription.md)
- [TypeName](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-gooproxy-1/typename.md)
- [UserString](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-gooproxy-1/userstring.md): Gets or sets the user-defined string that describes this proxy. This only really makes sense if the Proxy is Parsable.
- [Valid](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-gooproxy-1/valid.md): Gets a value indicating whether this proxy represents valid data.

## Methods

- [Construct](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-gooproxy-1/construct.md): Override this method to supply a custom UI during proxy construction.
- [FormatInstance](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-gooproxy-1/formatinstance.md): Returns a String description of the current value.
- [FromString](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-gooproxy-1/fromstring.md): If IsParsable(), then attempts to convert the string to a generic type value
- [MutateString](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-gooproxy-1/mutatestring.md): Munge a string to remove obvious errors on account of the user.
- [NumberToString](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-gooproxy-1/numbertostring.md)
- [StringToNumber](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-gooproxy-1/stringtonumber.md)
- [ToString](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-gooproxy-1/tostring.md)
