# ConversionAction class

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

```cs
public abstract class ConversionAction
```

A non-generic wrapper class around a [ConversionDelegate<T, Q>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.conversion.conversiondelegate-2.md).

**Derived types:** [ConversionAction<TSource, TTarget>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.conversion.conversionaction-2.md)

## Constructors

- [ConversionAction](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.conversion.conversionaction/ctor.md)

## Properties

- [Derived](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.conversion.conversionaction/derived.md): Gets whether this is a derived conversion. Derived conversions are automatically added at runtime by the [ConversionServer](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.conversion.conversionserver.md) when a conversion for a less derived type can be found and tweaked to work for a more derived type.
- [Explanation](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.conversion.conversionaction/explanation.md): Gets the explanation (if any) attached to the conversion method.
- [Merit](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.conversion.conversionaction/merit.md): The merit of this conversion step.
- [SourceType](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.conversion.conversionaction/sourcetype.md): Gets the input type for this conversion.
- [TargetType](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.conversion.conversionaction/targettype.md): Gets the output type for this conversion.

## Methods

- [ConvertWeak](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.conversion.conversionaction/convertweak.md): Perform the conversion from [ConversionAction.SourceType](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.conversion.conversionaction/sourcetype.md) to [ConversionAction.TargetType](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.conversion.conversionaction/targettype.md). This method will throw if the types do not match up, or if the underlying delegate throws. Use the [ConversionAction.TryConvertWeak(object, object)](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.conversion.conversionaction/tryconvertweak.md) methods to add proper error handling.
- [TryConvertWeak](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.conversion.conversionaction/tryconvertweak.md): (2 overloads) Execute the conversion with error handling.
- [TryDelegate<TSource, TTarget>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.conversion.conversionaction/trydelegate.md): (2 overloads, static) Run a conversion delegate method.
