En bref
- Le système d’unités de la scène peut être réglé sur METRIC via unit_settings dans Scene.
- La propriété Object.location permet d’attribuer à un objet une position définie par trois coordonnées.
- La méthode Scene.frame_set() définit la frame de la scène et actualise les objets et les view layers.
- La documentation de l’API Blender décrit les propriétés utiles pour gérer l’échelle, l’affichage des unités et les objets.
Ce que vous apprendrez dans ce guide
Pour la modélisation et la visualisation architecturales dans Blender, automatiser certaines opérations avec l’API Python plutôt que de modifier manuellement les paramètres de scène à chaque fois permet de répéter les mêmes étapes de manière cohérente dans différents fichiers. Ce guide explique comment définir le système d’unités de la scène sur METRIC, modifier la position d’un objet, créer un objet lumière simple et choisir une frame d’animation. Les exemples s’appuient sur la documentation officielle de l’API Python de Blender consacrée à Scene, Object et UnitSettings.
Ces extraits de code sont de petits exemples de départ, à adapter à vos fichiers de projet. Comme ils peuvent modifier l’organisation actuelle des objets de la scène, il est préférable de les tester d’abord sur une copie. Les exemples ne supposent l’utilisation d’aucun moteur de rendu, module complémentaire ou outil de modélisation architecturale particulier.
Prérequis
Blender et l’accès à son API Python sont nécessaires. Les références sont les pages actuelles de l’API Blender ; toutefois, le contenu fourni ne précise aucun numéro de version de Blender. Avant d’utiliser ce code dans un fichier de production, vérifiez donc que les propriétés sont compatibles avec la documentation de l’API correspondant à la version installée. Les exemples ne mentionnent aucun compte, licence payante ni module complémentaire supplémentaire requis.
Exécutez les extraits de code dans le contexte Python de Blender ; les exemples de la documentation utilisent le module bpy et le view layer actif. Avant d’exécuter une commande, vérifiez que le bon fichier, la bonne scène et le bon view layer sont actifs. L’exemple de positionnement cible le premier objet de la scène : dans une scène vide, créez d’abord un objet au lieu d’exécuter ce code.
1. Définir le système d’unités de la scène
Les données Scene comprennent les objets ainsi que des paramètres liés au temps et au rendu. La propriété unit_settings d’une scène permet de choisir le système d’unités. La documentation de l’API répertorie NONE, METRIC et IMPERIAL comme valeurs possibles pour system. L’exemple ci-dessous définit le système de la scène active sur le système métrique :
import bpy
scene = bpy.context.scene
scene.unit_settings.system = 'METRIC'Cette opération ne modifie que le paramètre du système d’unités. La documentation décrit la propriété scale_length comme l’échelle utilisée pour convertir les dimensions entre les unités Blender et les dimensions réelles. Utilisez cette valeur de manière réfléchie et cohérente tout au long du projet ; lorsque vous comparez les dimensions de modèles provenant de fichiers différents, tenez compte de son effet. La source ne présentant que l’option DEFAULT pour la propriété length_unit, nous n’attribuons ici aucune valeur non documentée.
Pour vérifier les valeurs actuelles des paramètres d’unités, vous pouvez les afficher :
import bpy
settings = bpy.context.scene.unit_settings
print(settings.system)
print(settings.scale_length)
print(settings.use_separate)use_separate est documentée comme une propriété qui détermine si les unités s’affichent par paires. Ce code lit les valeurs sans modifier aucun paramètre. Comparez le résultat aux exigences de cotation du projet avant de passer aux étapes suivantes.
2. Modifier la position d’un objet de la scène
Dans le bloc de données Object, location représente la position de l’objet selon trois coordonnées. Le code ci-dessous attribue une nouvelle valeur au premier objet, à condition que la scène contienne au moins un objet :
import bpy
scene = bpy.context.scene
if len(scene.objects) > 0:
obj = scene.objects[0]
obj.location = (5.0, 5.0, 5.0)Les coordonnées de cet exemple sont celles de l’exemple de base consacré aux opérations sur les objets dans la documentation de l’API. Remplacez ces valeurs par les coordonnées nécessaires à votre modèle. Comme le code cible le premier objet, vérifiez au préalable l’ordre des objets dans la scène et assurez-vous que la cible est la bonne. Dans les projets comportant plusieurs objets, attribuer une position au mauvais objet peut perturber l’agencement du modèle.
La documentation décrit également la matrice de transformation dans l’espace monde de l’objet, ainsi que ses informations de position, de rotation et d’échelle. Ce guide se limite à la propriété de base location ; il ne calcule pas les transformations à partir d’une matrice ou d’une relation de parenté. Si vous devez préserver la hiérarchie du modèle architectural, tenez compte des relations de parenté et des contraintes associées lorsque vous modifiez sa position.
3. Ajouter un objet lumière à la scène
L’exemple officiel de l’API montre comment créer un bloc de données lumière, l’associer à un objet et ajouter celui-ci à la collection du view layer actif. L’exemple ci-dessous reprend cette procédure de base en modifiant le nom et la position de la lumière :
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_objectL’ordre des opérations compte : on crée d’abord le bloc de données de la lumière, puis l’objet qui l’utilise ; après avoir lié l’objet à la collection active, il devient visible dans la scène. Les dernières lignes sélectionnent l’objet et le définissent comme objet actif. L’exemple ne définit ni la puissance de la lumière ni d’autres paramètres d’éclairage ; il ne promet donc aucune luminosité ou aucun résultat de rendu particulier.
4. Définir la frame d’animation par code
La propriété frame_current de Scene indique la frame actuelle. La documentation de l’API recommande la méthode frame_set() pour actualiser immédiatement les données d’animation et les view layers. Par exemple :
import bpy
scene = bpy.context.scene
scene.frame_set(25)Le numéro de frame est donné à titre d’exemple ; il ne modifie pas automatiquement les frames de début et de fin de la scène. Dans la documentation de Scene, frame_start et frame_end sont définies comme des propriétés distinctes. Dans une scène comportant une animation ou un mouvement de caméra, vérifiez que la frame ciblée se situe dans la plage du projet et que l’état souhaité des objets est bien atteint à cette frame.
Quels avantages pour un workflow d’architecture et de visualisation ?
Pour les architectes, les architectes d’intérieur et les artistes spécialisés en visualisation, ces exemples peuvent servir de base pour organiser par code des tâches comme la préparation de scène, le placement répété d’objets et le contrôle de la frame d’animation. Lorsque vous partagez un standard de scène au sein d’une équipe, expliciter dans le code des paramètres comme le système d’unités facilite le suivi des propriétés modifiées. Ces exemples ne configurent toutefois ni le cotage automatique, ni la correspondance des coordonnées entre fichiers, ni les paramètres de rendu.
Les sources ne fournissent aucune information sur les prérequis matériels, le coût de la licence ou un module complémentaire spécifique. Avant la mise en œuvre, sauvegardez le fichier, vérifiez que la scène exécutée est la bonne et contrôlez la compatibilité avec la documentation de l’API de votre installation de Blender. Testez en particulier les exemples qui dépendent de l’ordre des objets dans une petite scène de test plutôt que directement dans un fichier de projet volumineux.
Erreurs fréquentes
Exécuter le code de positionnement dans une scène vide : s’il n’y a pas de premier objet, aucune cible ne peut recevoir la nouvelle position. La condition de l’exemple vérifie ce cas.
Confondre système d’unités et valeur d’échelle :
systemetscale_lengthsont des propriétés distinctes dans la documentation. Modifier l’une ne signifie pas que l’autre change automatiquement.Oublier de lier l’objet à une collection : dans l’exemple officiel de création d’une lumière, l’ajout du nouvel objet à la collection active fait partie de la procédure qui permet de l’intégrer à la scène actuelle.
Ne pas vérifier la plage de frames :
frame_set()définit la frame actuelle ; les propriétés qui règlent les frames de début et de fin sont distinctes.
Étapes suivantes
Commencez par tester le code qui lit et vérifie les paramètres d’unités, puis exécutez l’exemple de positionnement sur un seul objet de test. Avant d’intégrer l’exemple de création de lumière à un fichier de projet existant, vérifiez-le dans une nouvelle scène. Ensuite, définissez explicitement l’objet cible, les coordonnées et le numéro de frame propres à votre workflow. Vérifier la scène et l’état attendu de l’objet après chaque modification réduit le risque d’appliquer le code à la mauvaise cible.
Sources et licence
Ce guide est adapté en turc à partir des pages Object, Scene et UnitSettings de la documentation de l’API Python de Blender. Les trois sources sont sous licence CC BY-SA 4.0. Les exemples de code s’appuient sur l’utilisation de base de l’API et les descriptions de propriétés présentées dans cette documentation.
Sources
3 sourcesLes textes sources ne sont pas republiés ; les courtes citations sont signalées, le reste est notre propre résumé et commentaire.
Pour les agences d’architecture et les équipes de visualisation en Turquie, l’intérêt principal de ces exemples est de rendre visibles et reproductibles les étapes de base de la préparation d’une scène, avant même d’aborder des automatisations complexes. Des opérations comme le choix du système d’unités, la position d’un objet et la sélection d’une frame peuvent sembler simples, mais elles peuvent figurer dans une liste de contrôle pour instaurer des standards de fichiers au sein d’une équipe.
Cela dit, ce guide n’est pas un package d’automatisation de projet ; il ne résout pas entièrement la conversion des mesures ni la configuration du rendu. Les sources ne fournissant aucune information sur les coûts d’installation ou de licence, il ne faut pas présumer d’un avantage financier. Les agences doivent vérifier le code avec leur propre version de Blender et sur une copie de sauvegarde, en surveillant particulièrement la sélection des objets et l’échelle de la scène.
Questions fréquentes
Comment définir le système d’unités d’une scène sur METRIC avec Blender Python ?
Attribuez `'METRIC'` à la propriété `unit_settings.system` de la scène active. La documentation de l’API répertorie `NONE`, `METRIC` et `IMPERIAL` parmi les systèmes d’unités disponibles.
Quelle propriété permet de modifier la position d’un objet avec Blender Python ?
Attribuez une valeur composée de trois coordonnées à la propriété `location` du bloc de données Object. Vérifiez au préalable que le code cible le bon objet.
Comment définir une frame d’animation avec Blender Python ?
La méthode `frame_set()` de Scene permet de définir la frame actuelle. Elle ne modifie pas la plage des frames de début et de fin.



