# ISubgraphNode

> Interface for a specialized node that references a subgraph and exposes its input and output variables as ports.

## Definition

* **Type:** Interface
* **Namespace:** [Unity.GraphToolkit.Editor](/engine/6000.7/script-reference/unity/graphtoolkit/editor.md)
* **Assembly:** UnityEditor

```csharp
public interface ISubgraphNode : INode
```

## Remarks

Subgraph nodes act as entry points to reusable graphs. These nodes mirror the subgraph's inputs and outputs as ports on the node to allow the integration of subgraphs within a main graph. The subgraph must be a valid [Graph](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graph.md) type. The main graph must support subgraphs through [GraphOptions.SupportsSubgraphs](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphoptions/supportssubgraphs.md), and the subgraph must be linked to the main graph using the [SubgraphAttribute](/engine/6000.7/script-reference/unity/graphtoolkit/editor/subgraphattribute.md).

## Methods

| Method                                                                                                | Description                                 |
| ----------------------------------------------------------------------------------------------------- | ------------------------------------------- |
| [GetSubgraph](/engine/6000.7/script-reference/unity/graphtoolkit/editor/isubgraphnode/getsubgraph.md) | Retrieves the subgraph linked to this node. |

## Inheritance

**Inherited Members:**

* [INode.GetInputPort(int)](/engine/6000.7/script-reference/unity/graphtoolkit/editor/inode/getinputport.md)
* [INode.GetInputPorts()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/inode/getinputports.md)
* [INode.GetInputPortByName(string)](/engine/6000.7/script-reference/unity/graphtoolkit/editor/inode/getinputportbyname.md)
* [INode.GetOutputPort(int)](/engine/6000.7/script-reference/unity/graphtoolkit/editor/inode/getoutputport.md)
* [INode.GetOutputPorts()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/inode/getoutputports.md)
* [INode.GetOutputPortByName(string)](/engine/6000.7/script-reference/unity/graphtoolkit/editor/inode/getoutputportbyname.md)
* [INode.GetNodeOption(int)](/engine/6000.7/script-reference/unity/graphtoolkit/editor/inode/getnodeoption.md)
* [INode.GetNodeOptionByName(string)](/engine/6000.7/script-reference/unity/graphtoolkit/editor/inode/getnodeoptionbyname.md)
* [INode.RemoveFromGraph()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/inode/removefromgraph.md)
* [INode.Tooltip()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/inode/tooltip.md)
* [INode.Title()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/inode/title.md)
* [INode.Subtitle()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/inode/subtitle.md)
* [INode.DefaultColor()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/inode/defaultcolor.md)
* [INode.FillAmount()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/inode/fillamount.md)
* [INode.IsConnected()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/inode/isconnected.md)
* [INode.InputPortCount()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/inode/inputportcount.md)
* [INode.ID()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/inode/id.md)
* [INode.OutputPortCount()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/inode/outputportcount.md)
* [INode.Position()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/inode/position.md)
* [INode.NodeOptionCount()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/inode/nodeoptioncount.md)
* [INode.NodeOptions()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/inode/nodeoptions.md)
* [INode.Graph()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/inode/graph.md)
