# FunctionUi<T> class

Namespace: [Grasshopper2.UI.Graphing](https://developer.rhino3d.com/api/gh2/namespace/grasshopper2.ui.graphing.md) · Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

```cs
public abstract class FunctionUi<T> : FunctionUi
```

Abstract class for function interfaces.

**Type parameters:**

- `T` (where Function): Type of Function to wrap.

## Constructors

- [FunctionUi<T>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui-1/ctor.md): (2 overloads)

## Properties

- [Func](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui-1/func.md): Gets the function representing the current state.
- [Function](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui-1/function.md)

## Methods

- [CanInsertVector](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui-1/caninsertvector.md): Test whether a grip can be inserted at or near a coordinate.
- [CanRemoveVector](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui-1/canremovevector.md): Override this method to specifically okay removal off a specific grip.
- [CreateFromArguments](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui-1/createfromarguments.md): This method is called by the base class whenever the equation needs to be updated to reflect the current grip state.
- [OverrideFunctionCache](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui-1/overridefunctioncache.md): Override the cached function. You typically never need this. It's here for those rare cases where grips or scalars are modified in such a way so as to not affect the underlying function.
- [TryInsertVector](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui-1/tryinsertvector.md): Try and insert a grip at a coordinate.
- [TryRemoveVectors](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui-1/tryremovevectors.md): Try and remove a set of grips.

## Inherited Members

- From [FunctionUi](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui.md): [_inner](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/inner.md), [_outer](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/outer.md), [Arguments](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/arguments.md), [AssumeContinuous](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/assumecontinuous.md), [GripsOn](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/gripson.md), [Icon](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/icon.md), [Id](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/id.md), [LatestGraphSegments](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/latestgraphsegments.md), [Nomen](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/nomen.md), [Rank](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/rank.md), [Selected](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/selected.md), [Tint](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/tint.md), [UserName](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/username.md), [VariableArguments](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/variablearguments.md), [FunctionChanged](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/functionchanged.md), [AfterDrawGraphSegments](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/afterdrawgraphsegments.md), [BeforeDrawGraphSegments](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/beforedrawgraphsegments.md), [DrawGraph](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/drawgraph.md), [DrawGripFlourishes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/drawgripflourishes.md), [DrawGripShapes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/drawgripshapes.md), [DrawHints](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/drawhints.md), [DrawScalarShapes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/drawscalarshapes.md), [EstimateDistance](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/estimatedistance.md), [EstimateProjection](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/estimateprojection.md), [GraphSegments](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/graphsegments.md), [OnFunctionChanged](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/onfunctionchanged.md), [PopulateMenu](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/populatemenu.md), [SetupDrawing](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/setupdrawing.md), [Store](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/store.md), [TintFor](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.graphing.functionui/tintfor.md)
