# IGH_ScriptInstance interface

Namespace: [Grasshopper2.Components](https://developer.rhino3d.com/api/gh2/namespace/grasshopper2.components.md) · Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

```cs
public interface IGH_ScriptInstance
```

Script running as a component, rather than as a plain script.

**Derived types:** [GH_ScriptInstance](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.gh-scriptinstance.md)

## Methods

- [AfterRun](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.igh-scriptinstance/afterrun.md): Override to perform some logic after all calls to RunScript have completed.
- [BeforeRun](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.igh-scriptinstance/beforerun.md): Override to perform some logic before any call to RunScript.
- [Draw](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.igh-scriptinstance/draw.md): Override to draw into the Rhino viewports. Keep whatever is drawn here on the instance.
