Enableable Parameters
=====================

An enableable parameter group is a parameter that has a default value, but can also take on a locally set value. The
local value is used when the enableable parameter group is enabled.

In order to manipulate this type of parameter through a script it’s important to understand that the enableable
parameter group is a group parameter with four children:

:kat:param:`value`
  String, string array, number, or number array - The value to be assigned to the corresponding attribute when the
  parameter group is enabled. Updated with value entered through the UI.
:kat:param:`enable`
  Number - Defines whether the parameter is enabled or not. When enabled, the parameter takes on :kat:param:`value`,
  and when disabled in takes on :kat:param:`default`.
:kat:param:`default`
  String, string array, number, or number array - The default parameter value.
:kat:param:`__hints`
  String - Metadata telling the UI how to display this parameter group.

To modify an enableable parameter group, access the individual child parameters. For example, create a
:kat:node:`RenderSettings` node, then edit the parameter for camera name to set a local value, and enable it::

    # Get the root node
    rootNode = NodegraphAPI.GetRootNode()

    # Create a RenderSettings node
    renderSettingsNode = NodegraphAPI.CreateNode('RenderSettings', rootNode)

    # Get the value and enable parameters from the cameraName group parameter
    cameraNameValue = renderSettingsNode.getParameter('args.renderSettings.cameraName.value')
    cameraNameEnable = renderSettingsNode.getParameter('args.renderSettings.cameraName.enable')

    # Change the name
    cameraNameValue.setValue("/root/world/cam/myCamera", time = 0)

    # Enable the parameter
    cameraNameEnable.setValue(float(True), time = 0)