## Init (ICE Nodes)

### Description

Use this callback to instantiate the ICENode and register your custom ICENode. Although user data is stored in the ICENode context during the BeginEvaluate callback, it can also be set during the Init callback and then accessed later in the Evaluate callback.

Note | The user data stored in BeginEvaluate or Init is always accessible from the Evaluate callback. However, unless the custom node threading mode is single-threading, the Context::PutUserData property cannot be used from the Evaluate callback.

### Applies To

Custom ICENodes

### Syntax

    CStatus <icenode_name>_Init( CRef& in_context )
    {
            ...
    }

<icenode_name> is the name specified in the call to PluginRegistrar::RegisterICENode, with any spaces converted to underscores.

### Parameters

Parameter | Language | Type | Description
--- | --- | --- | ---
in_context | C++ | CRef& | A reference to the ICENodeContext object. Context::GetSource returns the ICENode.

### See Also

- BeginEvaluate
- EndEvaluate
- Evaluate
- SubmitEvaluationPhaseInfo
- ICE Node Callbacks