# BlockNode

> Represents a specialized node that can only exist within a BlockNode.ContextNode.

## Definition

* **Type:** Class
* **Namespace:** [Unity.GraphToolkit.Editor](/engine/6000.6/script-reference/unity/graphtoolkit/editor.md)
* **Assembly:** UnityEditor
* **Inherits from:** [Node](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node.md)
* **Implements:** [INode](/engine/6000.6/script-reference/unity/graphtoolkit/editor/inode.md)

```csharp
public abstract class BlockNode : Node, INode
```

## Remarks

Use block nodes to define logic or operations that are scoped within a [BlockNode.ContextNode](/engine/6000.6/script-reference/unity/graphtoolkit/editor/blocknode/contextnode.md). A block node cannot be added directly to the graph; it must be a child of a valid context node type. Attempting to instantiate or add a `BlockNode` outside of a [BlockNode.ContextNode](/engine/6000.6/script-reference/unity/graphtoolkit/editor/blocknode/contextnode.md) will result in invalid behavior. To limit which context types can contain a block node, use the [UseWithContextAttribute](/engine/6000.6/script-reference/unity/graphtoolkit/editor/usewithcontextattribute.md).

## Properties

| Property                                                                                          | Description                                                                                                                                    |
| ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| [ContextNode](/engine/6000.6/script-reference/unity/graphtoolkit/editor/blocknode/contextnode.md) | The [BlockNode.ContextNode](/engine/6000.6/script-reference/unity/graphtoolkit/editor/blocknode/contextnode.md) that contains this block node. |
| [Index](/engine/6000.6/script-reference/unity/graphtoolkit/editor/blocknode/index.md)             | The index of this block node within the list of blocks in the context node.                                                                    |

## Inheritance

**Inherited Members:**

* [Node.OnEnable()](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/onenable.md)
* [Node.OnDisable()](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/ondisable.md)
* [Node.DefineNode()](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/definenode.md)
* [Node.OnDefineOptions(IOptionDefinitionContext)](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/ondefineoptions.md)
* [Node.OnDefinePorts(IPortDefinitionContext)](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/ondefineports.md)
* [Node.GetNodeOption(int)](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/getnodeoption.md)
* [Node.GetNodeOptionByName(string)](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/getnodeoptionbyname.md)
* [Node.GetInputPort(int)](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/getinputport.md)
* [Node.GetInputPorts()](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/getinputports.md)
* [Node.GetInputPortByName(string)](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/getinputportbyname.md)
* [Node.GetOutputPort(int)](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/getoutputport.md)
* [Node.GetOutputPorts()](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/getoutputports.md)
* [Node.GetOutputPortByName(string)](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/getoutputportbyname.md)
* [Node.RemoveFromGraph()](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/removefromgraph.md)
* [Node.Graph()](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/graph.md)
* [Node.ID()](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/id.md)
* [Node.Tooltip()](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/tooltip.md)
* [Node.Title()](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/title.md)
* [Node.Subtitle()](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/subtitle.md)
* [Node.DefaultColor()](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/defaultcolor.md)
* [Node.FillAmount()](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/fillamount.md)
* [Node.NodeOptionCount()](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/nodeoptioncount.md)
* [Node.NodeOptions()](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/nodeoptions.md)
* [Node.InputPortCount()](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/inputportcount.md)
* [Node.OutputPortCount()](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/outputportcount.md)
* [Node.Position()](/engine/6000.6/script-reference/unity/graphtoolkit/editor/node/position.md)
