user: Show practical ways to work with GeometryNodeForeachGeometryElementOutput(GeometryNode) in a Blender add-on or script – include code.

assistant: # GeometryNodeForeachGeometryElementOutput(GeometryNode)

base classes — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), [`Node`](bpy.types.Node.html#bpy.types.Node "bpy.types.Node"), [`NodeInternal`](bpy.types.NodeInternal.html#bpy.types.NodeInternal "bpy.types.NodeInternal"), [`GeometryNode`](bpy.types.GeometryNode.html#bpy.types.GeometryNode "bpy.types.GeometryNode")

*class* bpy.types.GeometryNodeForeachGeometryElementOutput(*GeometryNode*)
:   active_generation_index
    :   Index of the active item

        Type:
        :   int in [0, inf], default 0

    active_input_index
    :   Index of the active item

        Type:
        :   int in [0, inf], default 0

    active_main_index
    :   Index of the active item

        Type:
        :   int in [0, inf], default 0

    domain
    :   Geometry domain that is iterated over

        Type:
        :   enum in [Attribute Domain Items](bpy_types_enum_items/attribute_domain_items.html#rna-enum-attribute-domain-items), default `'POINT'`

    generation_items
    :   Type:
        :   [`NodeGeometryForeachGeometryElementGenerationItems`](bpy.types.NodeGeometryForeachGeometryElementGenerationItems.html#bpy.types.NodeGeometryForeachGeometryElementGenerationItems "bpy.types.NodeGeometryForeachGeometryElementGenerationItems") [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`ForeachGeometryElementGenerationItem`](bpy.types.ForeachGeometryElementGenerationItem.html#bpy.types.ForeachGeometryElementGenerationItem "bpy.types.ForeachGeometryElementGenerationItem"), (readonly)

    input_items
    :   Type:
        :   [`NodeGeometryForeachGeometryElementInputItems`](bpy.types.NodeGeometryForeachGeometryElementInputItems.html#bpy.types.NodeGeometryForeachGeometryElementInputItems "bpy.types.NodeGeometryForeachGeometryElementInputItems") [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`ForeachGeometryElementInputItem`](bpy.types.ForeachGeometryElementInputItem.html#bpy.types.ForeachGeometryElementInputItem "bpy.types.ForeachGeometryElementInputItem"), (readonly)

    inspection_index
    :   Iteration index that is used by inspection features like the viewer node or socket inspection

        Type:
        :   int in [-inf, inf], default 0

    main_items
    :   Type:
        :   [`NodeGeometryForeachGeometryElementMainItems`](bpy.types.NodeGeometryForeachGeometryElementMainItems.html#bpy.types.NodeGeometryForeachGeometryElementMainItems "bpy.types.NodeGeometryForeachGeometryElementMainItems") [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`ForeachGeometryElementMainItem`](bpy.types.ForeachGeometryElementMainItem.html#bpy.types.ForeachGeometryElementMainItem "bpy.types.ForeachGeometryElementMainItem"), (readonly)

    *classmethod* is_registered_node_type()
    :   True if a registered node type

        Returns:
        :   Result

        Return type:
        :   boolean

    *classmethod* input_template(*index*)
    :   Input socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *classmethod* output_template(*index*)
    :   Output socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *classmethod* bl_rna_get_subclass(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The RNA type or default when not found.

        Return type:
        :   [`bpy.types.Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct") subclass

    *classmethod* bl_rna_get_subclass_py(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The class or default when not found.

        Return type:
        :   type