# Field class

Namespace: [Grasshopper2.Types.Fields](https://developer.rhino3d.com/api/gh2/namespace/grasshopper2.types.fields.md) · Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

```cs
public abstract class Field : IStorable
```

Basic implementation for fields.

**Derived types:** [AbstractClippingField](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.standard.abstractclippingfield.md), [DerivedField](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.standard.derivedfield.md), [LocalField](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.standard.localfield.md), [MaassField](https://developer.rhino3d.com/api/gh2/type/grasshopper2.maassfield.md), [OperatorField](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.standard.operatorfield.md), [PointChargeField](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.standard.pointchargefield.md), [ScalarField](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.scalarfield.md), [ShapeField](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.standard.shapefield.md), [TransformField](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.standard.transformfield.md), [VectorField](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.vectorfield.md), [XyzExpressionField](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.standard.xyzexpressionfield.md), [XyzFunctionField](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.standard.xyzfunctionfield.md)

## Properties

- [FormatLabel](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.field/formatlabel.md): Gets the name of this field condensed into a single word, which is how the name appears in formatted values.
- [Name](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.field/name.md): Gets the name of this field.
- [Type](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.field/type.md): Gets the type of this field.

## Methods

- [Format](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.field/format.md): Create a string representation of this field.
- [ModifierArguments](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.field/modifierarguments.md): Reduce modifier notation to just the arguments. The labelled form written by [Field.Format()](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.field/format.md) ("ScalarNoise min:0 max:1"), the bracketed form ("Scalar Noise (0, 1)") and a bare list of arguments ("0, 1") are all accepted, so that a displayed value can be edited by changing only the parts which matter.
- [ScalarAt](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.field/scalarat.md): Evaluate the field scalar component at a specific point in space. If this is a vector-field, the returned value is *probably* the magnitude of the vector, but this is not guaranteed.
- [Store](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.field/store.md): Serialisation.
- [Trace](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.field/trace.md): (3 overloads) Approximate a trajectory through a vector field.
- [TryModify](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.field/trymodify.md): Try and create a new field based on this field and modifier notation. Only the salient properties of a field are exposed to text, the rest are copied from this instance. That is why there is no way to write a field of a specific type from nothing; there has to be one already to serve as the template. Constant scalar and vector fields are the exception, they are entirely described by a number or a vector. Implementations are expected to accept whatever their [Field.Format()](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.field/format.md) writes, so a value can be edited by changing the text it is displayed as. [Field.ModifierArguments(string)](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.field/modifierarguments.md) deals with the label in front of the arguments.
- [VectorAt](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.field/vectorat.md): Evaluate the field vector component at a specific point in space. If this is a scalar-field, the returned value is *probably* a vector in the form (0,0,scalar), but this is not guaranteed.

## Operators

- [operator +](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.field/op-addition.md): (static) Add two fields together.
- [operator /](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.field/op-division.md): (static) Divide one field by another.
- [operator *](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.field/op-multiply.md): (static) Multiply two fields together.
- [operator -](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.field/op-subtraction.md): (static) Subtract one field from another.

## Convertors

- [operator implicit](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.fields.field/op-implicit.md): (4 overloads, static) Convert an integer into a constant field.
