# GH_GeometricGoo<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_GeometricGoo<T> : GH_Goo<T>, IGH_GeometricGoo
```

Abstract base implementation of IGH_GeometricGoo. If you implement IGH_GeometricGoo, use this for a booster.

**Type parameters:**

- `T`

**Derived types:** [GH_AnnotationBase](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-annotationbase.md), [GH_Arc](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-arc.md), [GH_Box](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-box.md), [GH_Brep](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-brep.md), [GH_Circle](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-circle.md), [GH_ClippingPlane](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-clippingplane.md), [GH_Curve](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-curve.md), [GH_DetailView](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-detailview.md), [GH_Extrusion](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-extrusion.md), [GH_Hatch](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-hatch.md), [GH_InstanceReference](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-instancereference.md), [GH_Light](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-light.md), [GH_Line](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-line.md), [GH_Mesh](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-mesh.md), [GH_Plane](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-plane.md), [GH_PointCloud](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-pointcloud.md), [GH_Rectangle](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-rectangle.md), [GH_SubD](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-subd.md), [GH_Surface](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-surface.md), [GH_TextDot](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-textdot.md)

## Constructors

- [GH_GeometricGoo<T>](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-geometricgoo-1/ctor.md): (2 overloads) Blank constructor, m_value will be set to default (null for reference types, zeroes for value types)

## Properties

- [Boundingbox](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-geometricgoo-1/boundingbox.md): Gets the boundingbox for this geometry.
- [IsGeometryLoaded](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-geometricgoo-1/isgeometryloaded.md): Gets a value indicating whether or not this geometry is currently loaded (assuming it is referenced). Not all IGH_GeometricGoo implementations support referenced geometry. The default is to always return True.
- [IsReferencedGeometry](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-geometricgoo-1/isreferencedgeometry.md): Gets a value indicating whether or not this geometry is referenced. Not all IGH_GeometricGoo implementations support referenced geometry.
- [IsValid](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-geometricgoo-1/isvalid.md): Gets a value indicating whether or not the current value is valid.
- [ReferenceID](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-geometricgoo-1/referenceid.md): Gets or sets the Guid of the object that is referenced. Not all IGH_GeometricGoo implementations support referenced geometry. The default implementation is to always return Guid.Empty.
- [Value](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-geometricgoo-1/value.md): Gets or sets the value of this type. Note that if the type has a ReferenceID this value might get destroyed in the future.

## Methods

- [CastFrom](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-geometricgoo-1/castfrom.md): Attempt a cast from generic object.
- [CastTo<Q>](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-geometricgoo-1/castto.md): Attempt a cast to type T.
- [ClearCaches](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-geometricgoo-1/clearcaches.md): Clears all caches. Typically if the geometry is referenced, this will erase the local copy. If your T is a value-type, you must override this function and specifically unset the local value.
- [Duplicate](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-geometricgoo-1/duplicate.md): Make a complete duplicate of this instance. No shallow copies.
- [DuplicateGeometry](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-geometricgoo-1/duplicategeometry.md): Make a complete duplicate of this geometry. No shallow copies.
- [EmitProxy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-geometricgoo-1/emitproxy.md): Create a new proxy for this instance. Return Null if this class does not support proxies.
- [GetBoundingBox](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-geometricgoo-1/getboundingbox.md): Compute an aligned boundingbox.
- [LoadGeometry](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-geometricgoo-1/loadgeometry.md): (2 overloads) If the geometry is referenced and currently unloaded, forces loading of the geometry. Not all IGH_GeometricGoo implementations support referenced geometry.
- [Morph](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-geometricgoo-1/morph.md): Morph the object or a deformable representation of the object.
- [Transform](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-geometricgoo-1/transform.md): Transforms the object or a deformable representation of the object.

## 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), [IsValidWhyNot](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-goo-1/isvalidwhynot.md), [TypeDescription](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-goo-1/typedescription.md), [TypeName](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-goo-1/typename.md), [Read](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-goo-1/read.md), [ScriptVariable](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-goo-1/scriptvariable.md), [ToString](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-goo-1/tostring.md), [Write](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.gh-goo-1/write.md)
