> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/spanish/function-blocks/blocks-reference/data-logic/data-operations/get-element.md).

# Get Element

Este bloque de función extrae un solo elemento de una lista o lote (batch) usando un valor de índice. Es útil cuando necesitas tomar un elemento de una colección y pasarlo a bloques siguientes.

## 📥 Entradas

`Batch`\
Una lista o lote de valores (imágenes, números, textos, etc.) desde la cual se obtendrá un elemento.

`Index`\
La posición de índice (base cero) que indica qué elemento devolver del lote.

## 📤 Salidas

`Generic`\
El elemento seleccionado del lote. El tipo devuelto coincide con el tipo de los elementos dentro del `Batch`.

## 🕹️ Controles

Este bloque no tiene widgets interactivos. Funciona leyendo los sockets de entrada proporcionados en cada paso de evaluación.

## 🎨 Características

* Extracción simple y directa de un elemento de una lista o lote.
* Compatible con cualquier tipo de dato genérico dentro del `Batch` (imágenes, números, cadenas, shapes, etc.).
* Diseñado para integrarse fácilmente en flujos donde se necesita procesar un solo ítem.

## 📝 Instrucciones de uso

1. Conecta una lista o lote al input `Batch`.
2. Conecta la posición del elemento (base cero) al input `Index`.
3. El bloque entregará el elemento en la posición solicitada a su salida `Generic`.
4. Si el lote tiene longitud dinámica, asegúrate de que el valor de `Index` sea válido para evitar resultados inesperados.

## 📊 Evaluación

En cada ejecución, el bloque lee los valores actuales de `Batch` y `Index` y envía el elemento en esa posición a la salida. Si el índice apunta a un solo valor, se devuelve un único elemento; combinado con control de flujo por lotes, permite seleccionar ítems específicos para procesamiento posterior.

## 💡 Tips and Tricks

* Usa `Batch Processing` antes de este bloque cuando quieras alimentar datos agrupados o en streaming y reducir el uso de memoria.
* Combínalo con `Debatch` para convertir un lote en elementos individuales y luego usa `Get Element` para escoger uno específico.
* Usa `Get Batch Size` para verificar la longitud del lote antes de seleccionar un índice; así evitas accesos fuera de rango.
* Emplea `Is None` y `Replace None` después de este bloque para manejar valores faltantes de forma segura.
* Usa `Data Memory` para congelar o cachear un lote y mantener los mismos datos mientras pruebas diferentes índices.
* Usa `Debug Input` para inspeccionar el `Batch` o el `Index` cuando los resultados no sean los esperados.
* Al crear pipelines indexadas de imágenes, combínalo con bloques de visualización como `Show Image` para previsualizar el elemento seleccionado.

## 🛠️ Solución de problemas

* Si obtienes una salida inesperada o vacía, confirma que el `Batch` contiene elementos y que `Index` está en el rango válido (0..length-1).
* Si la tubería a veces envía valores None, usa `Is None` o `Replace None` para proteger el procesamiento posterior.
* Para flujos con tamaños de lote cambiantes, siempre comprueba `Get Batch Size` antes de usar `Index` para evitar accesos inválidos.
