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

assistant: .types.GeometryNodeInputTangent class method)](bpy.types.GeometryNodeInputTangent.html#bpy.types.GeometryNodeInputTangent.input_template)   - [(bpy.types.GeometryNodeInputVoxelIndex class method)](bpy.types.GeometryNodeInputVoxelIndex.html#bpy.types.GeometryNodeInputVoxelIndex.input_template)   - [(bpy.types.GeometryNodeInstanceOnPoints class method)](bpy.types.GeometryNodeInstanceOnPoints.html#bpy.types.GeometryNodeInstanceOnPoints.input_template)   - [(bpy.types.GeometryNodeInstancesToPoints class method)](bpy.types.GeometryNodeInstancesToPoints.html#bpy.types.GeometryNodeInstancesToPoints.input_template)   - [(bpy.types.GeometryNodeInstanceTransform class method)](bpy.types.GeometryNodeInstanceTransform.html#bpy.types.GeometryNodeInstanceTransform.input_template)   - [(bpy.types.GeometryNodeInterpolateCurves class method)](bpy.types.GeometryNodeInterpolateCurves.html#bpy.types.GeometryNodeInterpolateCurves.input_template)   - [(bpy.types.GeometryNodeIsViewport class method)](bpy.types.GeometryNodeIsViewport.html#bpy.types.GeometryNodeIsViewport.input_template)   - [(bpy.types.GeometryNodeJoinGeometry class method)](bpy.types.GeometryNodeJoinGeometry.html#bpy.types.GeometryNodeJoinGeometry.input_template)   - [(bpy.types.GeometryNodeList class method)](bpy.types.GeometryNodeList.html#bpy.types.GeometryNodeList.input_template)   - [(bpy.types.GeometryNodeListGetItem class method)](bpy.types.GeometryNodeListGetItem.html#bpy.types.GeometryNodeListGetItem.input_template)   - [(bpy.types.GeometryNodeListLength class method)](bpy.types.GeometryNodeListLength.html#bpy.types.GeometryNodeListLength.input_template)   - [(bpy.types.GeometryNodeMaterialSelection class method)](bpy.types.GeometryNodeMaterialSelection.html#bpy.types.GeometryNodeMaterialSelection.input_template)   - [(bpy.types.GeometryNodeMenuSwitch class method)](bpy.types.GeometryNodeMenuSwitch.html#bpy.types.GeometryNodeMenuSwitch.input_template)   - [(bpy.types.GeometryNodeMergeByDistance class method)](bpy.types.GeometryNodeMergeByDistance.html#bpy.types.GeometryNodeMergeByDistance.input_template)   - [(bpy.types.GeometryNodeMergeLayers class method)](bpy.types.GeometryNodeMergeLayers.html#bpy.types.GeometryNodeMergeLayers.input_template)   - [(bpy.types.GeometryNodeMeshBoolean class method)](bpy.types.GeometryNodeMeshBoolean.html#bpy.types.GeometryNodeMeshBoolean.input_template)   - [(bpy.types.GeometryNodeMeshCircle class method)](bpy.types.GeometryNodeMeshCircle.html#bpy.types.GeometryNodeMeshCircle.input_template)   - [(bpy.types.GeometryNodeMeshCone class method)](bpy.types.GeometryNodeMeshCone.html#bpy.types.GeometryNodeMeshCone.input_template)   - [(bpy.types.GeometryNodeMeshCube class method)](bpy.types.GeometryNodeMeshCube.html#bpy.types.GeometryNodeMeshCube.input_template)   - [(bpy.types.GeometryNodeMeshCylinder class method)](bpy.types.GeometryNodeMeshCylinder.html#bpy.types.GeometryNodeMeshCylinder.input_template)   - [(bpy.types.GeometryNodeMeshFaceSetBoundaries class method)](bpy.types.GeometryNodeMeshFaceSetBoundaries.html#bpy.types.GeometryNodeMeshFaceSetBoundaries.input_template)   - [(bpy.types.GeometryNodeMeshGrid class method)](bpy.types.GeometryNodeMeshGrid.html#bpy.types.GeometryNodeMeshGrid.input_template)   - [(bpy.types.GeometryNodeMeshIcoSphere class method)](bpy.types.GeometryNodeMeshIcoSphere.html#bpy.types.GeometryNodeMeshIcoSphere.input_template)   - [(bpy.types.GeometryNodeMeshLine class method)](bpy.types.GeometryNodeMeshLine.html#bpy.types.GeometryNodeMeshLine.input_template)   - [(bpy.types.GeometryNodeMeshToCurve class method)](bpy.types.GeometryNodeMeshToCurve.html#bpy.types.GeometryNodeMeshToCurve.input_template)   - [(bpy.types.GeometryNodeMeshToDensityGrid class method)](bpy.types.GeometryNodeMeshToDensityGrid.html#bpy.types.GeometryNodeMeshToDensityGrid.input_template)   - [(bpy.types.GeometryNodeMeshToPoints class method)](bpy.types.GeometryNodeMeshToPoints.html#bpy.types.GeometryNodeMeshToPoints.input_template)   - [(bpy.types.GeometryNodeMeshToSDFGrid class method)](bpy.types.GeometryNodeMeshToSDFGrid.html#bpy.types.GeometryNodeMeshToSDFGrid.input_template)   - [(bpy.types.GeometryNodeMeshToVolume class method)](bpy.types.GeometryNodeMeshToVolume.html#bpy.types.GeometryNodeMeshToVolume.input_template)   - [(bpy.types.GeometryNodeMeshUVSphere class method)](bpy.types.GeometryNodeMeshUVSphere.html#bpy.types.GeometryNodeMeshUVSphere.input_template)   - [(bpy.types.GeometryNodeObjectInfo class method)](bpy.types.GeometryNodeObjectInfo.html#bpy.types.GeometryNodeObjectInfo.input_template)   - [(bpy.types.GeometryNodeOffsetCornerInFace class method)](bpy.types.GeometryNodeOffsetCornerInFace.html#bpy.types.GeometryNodeOffsetCornerInFace.input_template)   - [(bpy.types.GeometryNodeOffsetPointInCurve class method)](bpy.types.GeometryNodeOffsetPointInCurve.html#bpy.types.GeometryNodeOffsetPointInCurve.input_template)   - [(bpy.types.GeometryNodePoints class method)](bpy.types.GeometryNodePoints.html#bpy.types.GeometryNodePoints.input_template)   - [(bpy.types.GeometryNodePointsOfCurve class method)](bpy.types.GeometryNodePointsOfCurve.html#bpy.types.GeometryNodePointsOfCurve.input_template)   - [(bpy.types.GeometryNodePointsToCurves class method)](bpy.types.GeometryNodePointsToCurves.html#bpy.types.GeometryNodePointsToCurves.input_template)   - [(bpy.types.GeometryNodePointsToSDFGrid class method)](bpy.types.GeometryNodePointsToSDFGrid.html#bpy.types.GeometryNodePointsToSDFGrid.input_template)   - [(bpy.types.GeometryNodePointsToVertices class method)](bpy.types.GeometryNodePointsToVertices.html#bpy.types.GeometryNodePointsToVertices.input_template)   - [(bpy.types.GeometryNodePointsToVolume class method)](bpy.types.GeometryNodePointsToVolume.html#bpy.types.GeometryNodePointsToVolume.input_template)   - [(bpy.types.GeometryNodeProximity class method)](bpy.types.GeometryNodeProximity.html#bpy.types.GeometryNodeProximity.input_template)   - [(bpy.types.GeometryNodeRaycast class method)](bpy.types.GeometryNodeRaycast.html#bpy.types.GeometryNodeRaycast.input_template)   - [(bpy.types.GeometryNodeRealizeInstances class method)](bpy.types.GeometryNodeRealizeInstances.html#bpy.types.GeometryNodeRealizeInstances.input_template)   - [(bpy.types.GeometryNodeRemoveAttribute class method)](bpy.types.GeometryNodeRemoveAttribute.html#bpy.types.GeometryNodeRemoveAttribute.input_template)   - [(bpy.types.GeometryNodeRepeatInput class method)](bpy.types.GeometryNodeRepeatInput.html#bpy.types.GeometryNodeRepeatInput.input_template)   - [(bpy.types.GeometryNodeRepeatOutput class method)](bpy.types.GeometryNodeRepeatOutput.html#bpy.types.GeometryNodeRepeatOutput.input_template)   - [(bpy.types.GeometryNodeReplaceMaterial class method)](bpy.types.GeometryNodeReplaceMaterial.html#bpy.types.GeometryNodeReplaceMaterial.input_template)   - [(bpy.types.GeometryNodeResampleCurve class method)](bpy.types.GeometryNodeResampleCurve.html#bpy.types.GeometryNodeResampleCurve.input_template)   - [(bpy.types.GeometryNodeReverseCurve class method)](bpy.types.GeometryNodeReverseCurve.html#bpy.types.GeometryNodeReverseCurve.input_template)   - [(bpy.types.GeometryNodeRotateInstances class method)](bpy.types.GeometryNodeRotateInstances.html#bpy.types.GeometryNodeRotateInstances.input_template)   - [(bpy.types.GeometryNodeSampleCurve class method)](bpy.types.GeometryNodeSampleCurve.html#bpy.types.GeometryNodeSampleCurve.input_template)   - [(bpy.types.GeometryNodeSampleGrid class method)](bpy.types.GeometryNodeSampleGrid.html#bpy.types.GeometryNodeSampleGrid.input_template)   - [(bpy.types.GeometryNodeSampleGridIndex class method)](bpy.types.GeometryNodeSampleGridIndex.html#bpy.types.GeometryNodeSampleGridIndex.input_template)   - [(bpy.types.GeometryNodeSampleIndex class method)](bpy.types.GeometryNodeSampleIndex.html#bpy.types.GeometryNodeSampleIndex.input_template)   - [(bpy.types.GeometryNodeSampleNearest class method)](bpy.types.GeometryNodeSampleNearest.html#bpy.types.GeometryNodeSampleNearest.input_template)   - [(bpy.types.GeometryNodeSampleNearestSurface class method)](bpy.types.GeometryNodeSampleNearestSurface.html#bpy.types.GeometryNodeSampleNearestSurface.input_template)   - [(bpy.types.GeometryNodeSampleUVSurface class method)](bpy.types.GeometryNodeSampleUVSurface.html#bpy.types.GeometryNodeSampleUVSurface.input_template)   - [(bpy.types.GeometryNodeScaleElements class method)](bpy.types.GeometryNodeScaleElements.html#bpy.types.GeometryNodeScaleElements.input_template)   - [(bpy.types.GeometryNodeScaleInstances class method)](bpy.types.GeometryNodeScaleInstances.html#bpy.types.GeometryNodeScaleInstances.input_template)   - [(bpy.types.GeometryNodeSDFGridBoolean class method)](bpy.types.GeometryNodeSDFGridBoolean.html#bpy.types.GeometryNodeSDFGridBoolean.input_template)   - [(bpy.types.GeometryNodeSDFGridFillet class method)](bpy.types.GeometryNodeSDFGridFillet.html#bpy.types.GeometryNodeSDFGridFillet.input_template)   - [(bpy.types.GeometryNodeSDFGridLaplacian class method)](bpy.types.GeometryNodeSDFGridLaplacian.html#bpy.types.GeometryNodeSDFGridLaplacian.input_template)   - [(bpy.types.GeometryNodeSDFGridMean class method)](bpy.types.GeometryNodeSDFGridMean.html#bpy.types.GeometryNodeSDFGridMean.input_template)   - [(bpy.types.GeometryNodeSDFGridMeanCurvature class method)](bpy.types.GeometryNodeSDFGridMeanCurvature.html#bpy.types.GeometryNodeSDFGridMeanCurvature.input_template)   - [(bpy.types.GeometryNodeSDFGridMedian class method)](bpy.types.GeometryNodeSDFGridMedian.html#bpy.types.GeometryNodeSDFGridMedian.input_template)   - [(bpy.types.GeometryNodeSDFGridOffset class method)](bpy.types.GeometryNodeSDFGridOffset.html#bpy.types.GeometryNodeSDFGridOffset.input_template)   - [(bpy.types.GeometryNodeSelfObject class method)](bpy.types.GeometryNodeSelfObject.html#bpy.types.GeometryNodeSelfObject.input_template)   - [(bpy.types.GeometryNodeSeparateComponents class method)](bpy.types.GeometryNodeSeparateComponents.html#bpy.types.GeometryNodeSeparateComponents.input_template)   - [(bpy.types.GeometryNodeSeparateGeometry class method)](bpy.types.GeometryNodeSeparateGeometry.html#bpy.types.GeometryNodeSeparateGeometry.input_template)   - [(bpy.types.GeometryNodeSetCurveHandlePositions class method)](bpy.types.GeometryNodeSetCurveHandlePositions.html#bpy.types.GeometryNodeSetCurveHandlePositions.input_template)   - [(bpy.types.GeometryNodeSetCurveNormal class method)](bpy.types.GeometryNodeSetCurveNormal.html#bpy.types.GeometryNodeSetCurveNormal.input_template)   - [(bpy.types.GeometryNodeSetCurveRadius class method)](bpy.types.GeometryNodeSetCurveRadius.html#bpy.types.GeometryNodeSetCurveRadius.input_template)   - [(bpy.types.GeometryNodeSetCurveTilt class method)](bpy.types.GeometryNodeSetCurveTilt.html#bpy.types.GeometryNodeSetCurveTilt.input_template)   - [(bpy.types.GeometryNodeSetGeometryName class method)](bpy.types.GeometryNodeSetGeometryName.html#bpy.types.GeometryNodeSetGeometryName.input_template)   - [(bpy.types.GeometryNodeSetGreasePencilColor class method)](bpy.types.GeometryNodeSetGreasePencilColor.html#bpy.types.GeometryNodeSetGreasePencilColor.input_template)   - [(bpy.types.GeometryNodeSetGreasePencilDepth class method)](bpy.types.GeometryNodeSetGreasePencilDepth.html#bpy.types.GeometryNodeSetGreasePencilDepth.input_template)   - [(bpy.types.GeometryNodeSetGreasePencilSoftness class method)](bpy.types.GeometryNodeSetGreasePencilSoftness.html#bpy.types.GeometryNodeSetGreasePencilSoftness.input_template)   - [(bpy.types.GeometryNodeSetGridBackground class method)](bpy.types.GeometryNodeSetGridBackground.html#bpy.types.GeometryNodeSetGridBackground.input_template)   - [(bpy.types.GeometryNodeSetGridTransform class method)](bpy.types.GeometryNodeSetGridTransform.html#bpy.types.GeometryNodeSetGridTransform.input_template)   - [(bpy.types.GeometryNodeSetID class method)](bpy.types.GeometryNodeSetID.html#bpy.types.GeometryNodeSetID.input_template)   - [(bpy.types.GeometryNodeSetInstanceTransform class method)](bpy.types.GeometryNodeSetInstanceTransform.html#bpy.types.GeometryNodeSetInstanceTransform.input_template)   - [(bpy.types.GeometryNodeSetMaterial class method)](bpy.types.GeometryNodeSetMaterial.html#bpy.types.GeometryNodeSetMaterial.input_template)   - [(bpy.types.GeometryNodeSetMaterialIndex class method)](bpy.types.GeometryNodeSetMaterialIndex.html#bpy.types.GeometryNodeSetMaterialIndex.input_template)   - [(bpy.types.GeometryNodeSetMeshNormal class method)](bpy.types.GeometryNodeSetMeshNormal.html#bpy.types.GeometryNodeSetMeshNormal.input_template)   - [(bpy.types.GeometryNodeSetPointRadius class method)](bpy.types.GeometryNodeSetPointRadius.html#bpy.types.GeometryNodeSetPointRadius.input_template)   - [(bpy.types.GeometryNodeSetPosition class method)](bpy.types.GeometryNodeSetPosition.html#bpy.types.GeometryNodeSetPosition.input_template)   - [(bpy.types.GeometryNodeSetShadeSmooth class method)](bpy.types.GeometryNodeSetShadeSmooth.html#bpy.types.GeometryNodeSetShadeSmooth.input_template)   - [(bpy.types.GeometryNodeSetSplineCyclic class method)](bpy.types.GeometryNodeSetSplineCyclic.html#bpy.types.GeometryNodeSetSplineCyclic.input_template)   - [(bpy.types.GeometryNodeSetSplineResolution class method)](bpy.types.GeometryNodeSetSplineResolution.html#bpy.types.GeometryNodeSetSplineResolution.input_template)   - [(bpy.types.GeometryNodeSimulationInput class method)](bpy.types.GeometryNodeSimulationInput.html#bpy.types.GeometryNodeSimulationInput.input_template)   - [(bpy.types.GeometryNodeSimulationOutput class method)](bpy.types.GeometryNodeSimulationOutput.html#bpy.types.GeometryNodeSimulationOutput.input_template)   - [(bpy.types.GeometryNodeSortElements class method)](bpy.types.GeometryNodeSortElements.html#bpy.types.GeometryNodeSortElements.input_template)   - [(bpy.types.GeometryNodeSplineLength class method)](bpy.types.GeometryNodeSplineLength.html#bpy.types.GeometryNodeSplineLength.input_template)   - [(bpy.types.GeometryNodeSplineParameter class method)](bpy.types.GeometryNodeSplineParameter.html#bpy.types.GeometryNodeSplineParameter.input_template)   - [(bpy.types.GeometryNodeSplitEdges class method)](bpy.types.GeometryNodeSplitEdges.html#bpy.types.GeometryNodeSplitEdges.input_template)   - [(bpy.types.GeometryNodeSplitToInstances class method)](bpy.types.GeometryNodeSplitToInstances.html#bpy.types.GeometryNodeSplitToInstances.input_template)   - [(bpy.types.GeometryNodeStoreNamedAttribute class method)](bpy.types.GeometryNodeStoreNamedAttribute.html#bpy.types.GeometryNodeStoreNamedAttribute.input_template)   - [(bpy.types.GeometryNodeStoreNamedGrid class method)](bpy.types.GeometryNodeStoreNamedGrid.html#bpy.types.GeometryNodeStoreNamedGrid.input_template)   - [(bpy.types.GeometryNodeStringJoin class method)](bpy.types.GeometryNodeStringJoin.html#bpy.types.GeometryNodeStringJoin.input_template)   - [(bpy.types.GeometryNodeStringToCurves class method)](bpy.types.GeometryNodeStringToCurves.html#bpy.types.GeometryNodeStringToCurves.input_template)   - [(bpy.types.GeometryNodeSubdivideCurve class method)](bpy.types.GeometryNodeSubdivideCurve.html#bpy.types.GeometryNodeSubdivideCurve.input_template)   - [(bpy.types.GeometryNodeSubdivideMesh class method)](bpy.types.GeometryNodeSubdivideMesh.html#bpy.types.GeometryNodeSubdivideMesh.input_template)   - [(bpy.types.GeometryNodeSubdivisionSurface class method)](bpy.types.GeometryNodeSubdivisionSurface.html#bpy.types.GeometryNodeSubdivisionSurface.input_template)   - [(bpy.types.GeometryNodeSwitch class method)](bpy.types.GeometryNodeSwitch.html#bpy.types.GeometryNodeSwitch.input_template)   - [(bpy.types.GeometryNodeTool3DCursor class method)](bpy.types.GeometryNodeTool3DCursor.html#bpy.types.GeometryNodeTool3DCursor.input_template)   - [(bpy.types.GeometryNodeToolActiveElement class method)](bpy.types.GeometryNodeToolActiveElement.html#bpy.types.GeometryNodeToolActiveElement.input_template)   - [(bpy.types.GeometryNodeToolFaceSet class method)](bpy.types.GeometryNodeToolFaceSet.html#bpy.types.GeometryNodeToolFaceSet.input_template)   - [(bpy.types.GeometryNodeToolMousePosition class method)](bpy.types.GeometryNodeToolMousePosition.html#bpy.types.GeometryNodeToolMousePosition.input_template)   - [(bpy.types.GeometryNodeToolSelection class method)](bpy.types.GeometryNodeToolSelection.html#bpy.types.GeometryNodeToolSelection.input_template)   - [(bpy.types.GeometryNodeToolSetFaceSet class method)](bpy.types.GeometryNodeToolSetFaceSet.html#bpy.types.GeometryNodeToolSetFaceSet.input_template)   - [(bpy.types.GeometryNodeToolSetSelection class method)](bpy.types.GeometryNodeToolSetSelection.html#bpy.types.GeometryNodeToolSetSelection.input_template)   - [(bpy.types.GeometryNodeTransform class method)](bpy.types.GeometryNodeTransform.html#bpy.types.GeometryNodeTransform.input_template)   - [(bpy.types.GeometryNodeTranslateInstances class method)](bpy.types.GeometryNodeTranslateInstances.html#bpy.types.GeometryNodeTranslateInstances.input_template)   - [(bpy.types.GeometryNodeTriangulate class method)](bpy.types.GeometryNodeTriangulate.html#bpy.types.GeometryNodeTriangulate.input_template)   - [(bpy.types.GeometryNodeTrimCurve class method)](bpy.types.GeometryNodeTrimCurve.html#bpy.types.GeometryNodeTrimCurve.input_template)   - [(bpy.types.GeometryNodeUVPackIslands class method)](bpy.types.GeometryNodeUVPackIslands.html#bpy.types.GeometryNodeUVPackIslands.input_template)   - [(bpy.types.GeometryNodeUVTangent class method)](bpy.types.GeometryNodeUVTangent.html#bpy.types.GeometryNodeUVTangent.input_template)   - [(bpy.types.GeometryNodeUVUnwrap class method)](bpy.types.GeometryNodeUVUnwrap.html#bpy.types.GeometryNodeUVUnwrap.input_template)   - [(bpy.types.GeometryNodeVertexOfCorner class method)](bpy.types.GeometryNodeVertexOfCorner.html#bpy.types.GeometryNodeVertexOfCorner.input_template)   - [(bpy.types.GeometryNodeViewer class method)](bpy.types.GeometryNodeViewer.html#bpy.types.GeometryNodeViewer.input_template)   - [(