En resumen
- El sistema de unidades de la escena puede configurarse como METRIC desde unit_settings, dentro de Scene.
- La propiedad Object.location permite asignar a un objeto una posición con tres coordenadas.
- El método Scene.frame_set() establece el fotograma de la escena y actualiza los objetos y las capas de visualización.
- La documentación de la API de Blender describe las propiedades relacionadas con la escala, la visualización de unidades y la gestión de objetos.
¿Qué aprenderás en esta guía?
En lugar de ajustar manualmente una y otra vez la configuración de la escena al modelar y crear visualizaciones arquitectónicas en Blender, programar operaciones concretas con la API de Python permite aplicar los mismos pasos de forma coherente en distintos archivos. En esta guía configurarás el sistema de unidades de la escena como METRIC, cambiarás la posición de un objeto, crearás un objeto de luz sencillo y establecerás el fotograma de animación. Los ejemplos se basan en las descripciones de Scene, Object y UnitSettings de la documentación oficial de la API Python de Blender.
El código incluido son ejemplos iniciales breves que puedes adaptar a tus propios archivos de proyecto. Como pueden modificar la disposición actual de los objetos de la escena, es recomendable probarlos primero en una copia. Los ejemplos no presuponen un motor de render, complemento ni herramienta de modelado arquitectónico específicos.
Requisitos
Necesitas Blender y acceso a su API Python. Las fuentes consultadas son las páginas actuales de la API de Blender, pero el contenido proporcionado no especifica un número concreto de versión de Blender. Por eso, antes de usar el código en un archivo de producción, comprueba que las propiedades sean compatibles con la documentación de la API de la versión instalada. Los ejemplos no indican que se necesite una cuenta, una licencia de pago ni complementos adicionales.
Ejecuta los fragmentos de código en el contexto de Python dentro de Blender; los ejemplos de la documentación utilizan el módulo bpy y la capa de visualización activa. Antes de ejecutar un comando, asegúrate de que estén activos el archivo, la escena y la capa de visualización correctos. El ejemplo de posición de objetos utiliza el primer objeto de la escena, así que, si la escena está vacía, crea primero un objeto en lugar de ejecutar ese código.
1. Configura el sistema de unidades de la escena
Los datos de Scene incluyen objetos y también ajustes relacionados con el tiempo y el render. Es posible elegir el sistema de unidades de una escena mediante la propiedad unit_settings. La documentación de la API enumera NONE, METRIC e IMPERIAL como opciones para system. El siguiente ejemplo configura el sistema de la escena activa como métrico:
import bpy
scene = bpy.context.scene
scene.unit_settings.system = 'METRIC'Esta operación solo cambia el ajuste del sistema. La documentación describe la propiedad scale_length como la escala que se utiliza para convertir entre las unidades de Blender y las dimensiones. Utiliza este valor de forma consciente y coherente en todo el proyecto; al comparar las medidas de modelos procedentes de distintos archivos, ten en cuenta el efecto de este ajuste. Como la fuente solo muestra la opción DEFAULT para la propiedad length_unit, aquí no asignamos ningún valor que no esté documentado.
Puedes imprimir las propiedades para revisar los valores actuales de los ajustes de unidades:
import bpy
settings = bpy.context.scene.unit_settings
print(settings.system)
print(settings.scale_length)
print(settings.use_separate)La documentación describe use_separate como una propiedad que determina si las unidades se muestran en pares. Este código lee los valores, pero no modifica ningún ajuste. Compara el resultado con los requisitos de medición del proyecto antes de continuar.
2. Cambia la posición de un objeto de la escena
En el bloque de datos Object, location representa la posición del objeto en tres coordenadas. Si la escena contiene al menos un objeto, el siguiente código asigna un nuevo valor a la posición del primero:
import bpy
scene = bpy.context.scene
if len(scene.objects) > 0:
obj = scene.objects[0]
obj.location = (5.0, 5.0, 5.0)Las coordenadas del ejemplo son las mismas que las del ejemplo básico de operaciones con objetos incluido en la documentación de la API. Sustituye estos valores por las coordenadas que necesites para tu modelo. Como el código selecciona el primer objeto, comprueba de antemano el orden de los objetos de la escena y asegúrate de que el objeto de destino sea el correcto. En proyectos con varios objetos, asignar la posición al objeto equivocado puede alterar la disposición del modelo.
La documentación también define la matriz de transformación en espacio global, además de la posición, la rotación y la escala del objeto. Esta guía se limita a la propiedad básica location; no realiza cálculos de transformación mediante matrices ni relaciones de parentesco. Si necesitas conservar la jerarquía existente en un modelo arquitectónico, evalúa el cambio de posición junto con la configuración de los objetos padre y las restricciones correspondientes.
3. Añade un objeto de luz a la escena
El ejemplo oficial de la API muestra cómo crear un bloque de datos de luz, vincularlo a un objeto y añadirlo a la colección de la capa de visualización activa. El ejemplo siguiente utiliza el mismo flujo básico, pero cambia el nombre y la posición de la luz:
import bpy
view_layer = bpy.context.view_layer
light_data = bpy.data.lights.new(name="Mimari Test Isigi", type='POINT')
light_object = bpy.data.objects.new(
name="Mimari Test Isigi",
object_data=light_data
)
view_layer.active_layer_collection.collection.objects.link(light_object)
light_object.location = (5.0, 5.0, 5.0)
light_object.select_set(True)
view_layer.objects.active = light_objectEl orden de las operaciones es importante: primero se crea el bloque de datos de la luz y, después, el objeto que lo utiliza; una vez vinculado a la colección activa, el objeto pasa a estar disponible en la escena. Las últimas líneas seleccionan el objeto y lo establecen como activo. El ejemplo no asigna ningún valor a la potencia de la luz ni a otros parámetros de iluminación, por lo que no garantiza un brillo ni un resultado de render determinados.
4. Establece por código el fotograma de animación
La propiedad frame_current de Scene indica el fotograma actual. La documentación de la API recomienda utilizar el método frame_set() para actualizar inmediatamente los datos de animación y las capas de visualización. Por ejemplo:
import bpy
scene = bpy.context.scene
scene.frame_set(25)El número de fotograma es solo un ejemplo; no modifica automáticamente el rango inicial y final de la escena. En la documentación de Scene, frame_start y frame_end se definen como propiedades independientes. Si la escena incluye animación o movimiento de cámara, asegúrate de que el fotograma de destino esté dentro del rango del proyecto y de que el objeto tenga el estado esperado en ese fotograma.
¿Qué aporta a los flujos de trabajo de arquitectura y visualización?
Para arquitectos, interioristas y artistas de visualización, estos ejemplos pueden servir de base para organizar mediante código tareas como la preparación de escenas, la colocación repetida de objetos y el control de los fotogramas de animación. Al compartir un estándar de escena con el equipo, indicar explícitamente en el código ajustes como el sistema de unidades facilita el seguimiento de las propiedades modificadas. Sin embargo, los ejemplos no automatizan la acotación, la correspondencia de coordenadas entre archivos ni la configuración del render.
Las fuentes no proporcionan información sobre requisitos de hardware, costes de licencia ni complementos específicos. Antes de aplicar el código, haz una copia de seguridad del archivo, comprueba que la escena en ejecución sea la correcta y verifica la compatibilidad con la documentación de la API de tu instalación de Blender. En especial, prueba los ejemplos que dependen del orden de los objetos en una escena de prueba pequeña, en lugar de ejecutarlos directamente en un archivo de proyecto grande.
Errores frecuentes
Ejecutar el código de posición de objetos en una escena vacía: Si no hay un primer objeto, no existe un destino al que asignar la posición. La condición del ejemplo comprueba este caso.
Confundir el sistema de unidades con el valor de escala: En la documentación,
systemyscale_lengthson propiedades distintas. Cambiar una no significa que la otra también cambie automáticamente.Olvidar vincular el objeto a una colección: En el ejemplo oficial de la luz, vincular el nuevo objeto a la colección activa forma parte del proceso para que esté presente en la escena actual.
No comprobar el rango de fotogramas:
frame_set()establece el fotograma actual; las propiedades que controlan el rango inicial y final son independientes.
Próximos pasos
Primero, prueba el código que lee y comprueba los ajustes de unidades y, después, ejecuta el ejemplo de posición con un único objeto de prueba. Antes de incorporar el ejemplo de creación de luces a un archivo de proyecto existente, valídalo en una escena nueva. A continuación, especifica claramente el objeto de destino, las coordenadas y el número de fotograma para tu flujo de trabajo. Comprobar la escena y el estado esperado del objeto después de cada cambio ayuda a reducir el riesgo de aplicar el código al objeto equivocado.
Fuentes y licencia
Esta guía se ha adaptado al turco a partir de las páginas Object, Scene y UnitSettings de la documentación de la API Python de Blender. Las tres fuentes tienen licencia CC BY-SA 4.0. Los ejemplos de código se basan en el uso básico de la API y en las descripciones de propiedades de estos documentos.
Fuentes
3 fuentesNo republicamos los textos de las fuentes; las citas breves van marcadas y el resto es resumen y comentario propios.
Para los estudios de arquitectura y los equipos de visualización de Turquía, el principal valor de estos ejemplos es que hacen visibles y repetibles los pasos básicos de preparación de una escena antes de abordar automatizaciones complejas. Aunque operaciones como configurar el sistema de unidades, cambiar la posición de un objeto y seleccionar un fotograma parezcan pequeñas, pueden incorporarse a una lista de verificación al establecer estándares de archivos para el equipo.
Sin embargo, esta guía no es un paquete de automatización de proyectos: no resuelve por completo la conversión de medidas ni la configuración del render. Como las fuentes no proporcionan información sobre costes de instalación o licencias, no debe darse por sentada una ventaja en términos de costes. Los estudios deben validar el código en su propia versión de Blender y en una copia de seguridad, y prestar especial atención a la selección de objetos y a la escala de la escena.
Preguntas frecuentes
¿Cómo se configura el sistema de unidades de una escena como METRIC con Blender Python?
Se puede asignar `'METRIC'` a la propiedad `unit_settings.system` de la escena activa. La documentación de la API enumera `NONE`, `METRIC` e `IMPERIAL` como opciones de sistema de unidades.
¿Qué propiedad se utiliza para cambiar la posición de un objeto con Blender Python?
Se asigna un valor con tres coordenadas a la propiedad `location` del bloque de datos Object. Es necesario comprobar de antemano que el código apunte al objeto correcto.
¿Cómo se establece un fotograma de animación con Blender Python?
Se puede establecer el fotograma actual utilizando el método `frame_set()` de Scene. Este método no modifica el rango de fotogramas inicial y final.



