Kurz gesagt
- In Blender 2.8x lösten Sammlungen und View Layer die festen Szenenebenen aus der 2.7x-Ära ab.
- Ein Objekt kann mehreren Sammlungen zugeordnet werden, ohne dass dabei ein neues Objekt entsteht.
- Eine Sammlung lässt sich aus dem aktiven View Layer ausschließen und so innerhalb dieser Ebene steuern.
- Mit `hide_viewport` und `hide_render` wird die Sichtbarkeit eines Objekts in unterschiedlichen Bereichen geregelt.
Was Sie in diesem Leitfaden lernen
Archviz-Szenen können Gebäudehüllen, Innenraumelemente, Möbel und viele weitere Objekte enthalten. Mit wachsendem Umfang wird es wichtig, die Elemente der Szene zu gruppieren und unterschiedliche Ansichten für die Arbeit zu verwalten. Die Python-API von Blender ermöglicht es, Objekte Sammlungen zuzuordnen und über View Layer festzulegen, welche Teile der Sammlungshierarchie aktiv sind.
In diesem Leitfaden erfahren Sie, wie Sie mit Python eine neue Sammlung erstellen, sie mit der Szene verknüpfen, das aktive Objekt hinzufügen und die Sammlung aus dem aktiven View Layer ausschließen. Außerdem geht es um die Unterschiede zwischen den Sichtbarkeitseinstellungen für Objekte und der Organisation von Sammlungen und View Layern. Die Beispiele basieren auf der offiziellen Python-API-Dokumentation von Blender sowie den API-Beschreibungen für Szenen und Objekte, die für Blender 2.80 veröffentlicht wurden.
Voraussetzungen
Führen Sie die Beispiele in einer Blender-Umgebung aus, in der die Python-API verfügbar ist. Der Code greift über bpy auf die aktive Szene und bei Bedarf auf das aktive Objekt zu. Im ersten Beispiel wird eine neue Sammlung direkt mit bpy.data.collections.new erstellt und mit der Wurzelsammlung der Szene verknüpft. Eine zuvor aktive Sammlung ist dafür nicht erforderlich. Das separate Beispiel zum Verknüpfen des aktiven Objekts mit der neuen Sammlung überspringt diesen Schritt, falls kein aktives Objekt vorhanden ist.
Die Dokumentation nennt keine bestimmte Blender-Version, kein Benutzerkonto und keine zusätzliche Software als Voraussetzung. Prüfen Sie daher vor dem Einsatz des Codes das API-Verhalten in Ihrer installierten Blender-Version. Die Entwicklerdokumentation zu Blender 2.80 erläutert die API-Änderungen der 2.8x-Ära; die aktuellen API-Seiten dokumentieren die Eigenschaften von Scene und Object. Beachten Sie diese Unterschiede, wenn Sie mit Skripten aus älteren Versionen arbeiten.
Schritt für Schritt: Sammlungen organisieren
1. Aufgaben von Sammlungen und View Layern unterscheiden
In der Blender-2.7x-Ära ließen sich Szenen mit 20 festen Ebenen organisieren. Mit den API-Änderungen in 2.8x wurde die Objektorganisation auf Sammlungen umgestellt, während View Layer die Kontrolle darüber übernahmen, welche Teile der Sammlungshierarchie im Ansichts- und Renderkontext aktiv sind. Verwechseln Sie deshalb die in älteren Skripten verwendeten Szenenebenen-Eigenschaften nicht mit dem neuen Sammlungssystem.
Sammlungen gruppieren Objekte und andere Sammlungen hierarchisch. View Layer legen fest, welche Teile dieser Struktur aktiv sind. Beim Erstellen einer Sammlung werden Objekte nicht automatisch dieser Sammlung zugeordnet; die Verknüpfung muss separat erfolgen.
2. Eine neue Sammlung zur Szene hinzufügen
Das folgende Beispiel verknüpft eine neue Sammlung namens Mimari_Govde unterhalb der Wurzelsammlung der aktiven Szene. Der Code erstellt die Sammlung und fügt sie anschließend der Szenenhierarchie hinzu:
import bpy
scene = bpy.context.scene
collection = bpy.data.collections.new("Mimari_Govde")
scene.collection.children.link(collection)bpy.data.collections.new erstellt die neue Sammlung. scene.collection.children.link verknüpft sie mit der Wurzelsammlung der Szene. Dieses Beispiel verwendet weder ein aktives Objekt noch eine zuvor aktive Sammlung. Prüfen Sie die vorhandene Szenenstruktur, bevor Sie das Skript erneut ausführen, falls die Datei bereits eine Sammlung mit demselben Namen enthält.
3. Das aktive Objekt mit der neuen Sammlung verknüpfen
Nach dem Erstellen der Sammlung können Sie das aktive Objekt mit dem folgenden Beispiel hinzufügen:
obj = bpy.context.object
if obj is not None:
collection.objects.link(obj)Ist ein aktives Objekt vorhanden, wird es mit der Sammlung verknüpft. Gibt es kein aktives Objekt, wird der Code innerhalb der Bedingung nicht ausgeführt. Durch diese Verknüpfung wird das Objekt nicht dupliziert. Laut Blender-Entwicklerdokumentation kann dasselbe Objekt mehreren Sammlungen angehören und bleibt dabei ein einzelnes Objekt.
In Architekturszenen hilft diese Unterscheidung, eine Gruppierungsstruktur aufzubauen, ohne Objektdaten zu duplizieren. Der Beispielcode entfernt das Objekt jedoch nicht aus seiner bisherigen Sammlung, sondern verknüpft es zusätzlich mit der neuen Sammlung. Prüfen Sie deshalb auch die übrigen Sammlungszuordnungen in der Szene.
4. Die Sammlung aus dem aktiven View Layer ausschließen
Befindet sich die Sammlung direkt unterhalb der Wurzelsammlung der Szene, können Sie sie über das entsprechende LayerCollection im aktiven View Layer ausschließen:
bpy.context.view_layer.layer_collection.children["Mimari_Govde"].exclude = TrueDiese Zeile schließt die Sammlung Mimari_Govde aus dem aktiven View Layer aus. Um sie wieder zu aktivieren, setzen Sie exclude auf False. Der Code setzt voraus, dass sich die Sammlung direkt unterhalb der View-Layer-Hierarchie befindet. Liegt sie innerhalb einer anderen Sammlung, muss sie an der passenden Stelle in der Hierarchie angesprochen werden.
View Layer steuern, welche Teile der Sammlungsstruktur aktiv sind. Das ist nicht dasselbe, wie die Sichtbarkeitseigenschaften jedes einzelnen Objekts zu ändern. Berücksichtigen Sie bei der Beurteilung des Ergebnisses, ob die Objekte auch anderen Sammlungen zugeordnet sind und wie Ihr View Layer aufgebaut ist.
5. Die Sichtbarkeit von Objekten separat steuern
Wenn Sie statt der Sichtbarkeit einer Sammlung ein bestimmtes Objekt steuern möchten, können Sie dessen Eigenschaften verwenden. hide_viewport wirkt sich auf die Sichtbarkeit im Viewport aus, hide_render auf die Sichtbarkeit im Render. Um beispielsweise das aktive Objekt im Render auszublenden:
obj = bpy.context.object
if obj is not None:
obj.hide_render = TrueHier wird nur die Sichtbarkeit im Render geändert. Für das Ausblenden im Viewport gibt es die separate Eigenschaft hide_viewport. Wählen Sie je nach gewünschtem Ergebnis die passende Eigenschaft; verwenden Sie die beiden Einstellungen nicht als Ersatz füreinander.
Häufige Fehler
Annehmen, dass Objekte beim Erstellen einer Sammlung automatisch hinzugefügt werden: Das Erstellen der Sammlung und das Verknüpfen von Objekten sind zwei verschiedene Vorgänge. Verknüpfen Sie die gewünschten Objekte zusätzlich mit der Sammlung.
Alte Methoden für Szenenebenen in der neuen API verwenden: Mit 2.8x wurden die Organisation mit Sammlungen und View Layern geändert. Übernehmen Sie Verwendungen wie object.layers aus älteren Skripten nicht, ohne sie mit der aktuellen Sammlungsstruktur abzugleichen.
Die Verknüpfung mit einer Sammlung mit dem Duplizieren eines Objekts verwechseln: Dasselbe Objekt kann mehreren Sammlungen angehören. Durch die Verknüpfung entsteht weder ein neues Objekt noch eine Geometriekopie.
Auf der falschen Ebene der View-Layer-Hierarchie suchen: Die Beispielzeile zum Ausschließen setzt voraus, dass die Sammlung ein direktes Kind der aktiven Ebene ist. Bei untergeordneten Sammlungen muss der Zugriffspfad an die tatsächliche Szenenhierarchie angepasst werden.
Viewport- und Render-Sichtbarkeit für dieselbe Einstellung halten: hide_viewport und hide_render sind separate Eigenschaften. Stellen Sie fest, ob das Problem den Viewport oder das Render-Ergebnis betrifft, und ändern Sie die entsprechende Eigenschaft.
Bedeutung für Architektur- und Archviz-Workflows
Sammlungen können dazu dienen, Gebäudehüllen, Möbel oder andere gemeinsam zu steuernde Szenenelemente zu gruppieren. Mit View Layern legen Sie fest, welche Teile dieser Sammlungshierarchie aktiv sind. Besonders bei umfangreichen Projekten kann diese Struktur helfen, Szeneninhalte übersichtlich zu halten und Sichtbarkeitseinstellungen gruppenweise zu verwalten.
Der Ansatz eignet sich für Architekturbüros, Innenarchitekten und Archviz-Künstler, die in Blender mit Python eine wiederholbare Organisationsstruktur aufbauen möchten. Die Quellen versprechen jedoch weder Kompatibilität mit einer bestimmten Render-Engine noch eine Leistungssteigerung oder Vorteile bei der Hardware. Prüfen Sie in Projekten die verwendete Blender-Version, die tatsächliche Sammlungshierarchie und den Workflow für die gemeinsame Nutzung der Datei.
Nächste Schritte
Führen Sie zunächst das Beispiel zum Erstellen einer Sammlung in einer Kopie der Datei aus. Testen Sie anschließend die Verknüpfung mit einem aktiven Objekt und prüfen Sie, ob es mehreren Sammlungen angehören kann. Bevor Sie den Code zum Ausschließen aus einem View Layer anwenden, kontrollieren Sie die Position der Sammlung innerhalb der aktiven Ebene.
Prüfen Sie danach hide_viewport und hide_render getrennt, um festzustellen, welche Sichtbarkeitseinstellung Ihren Anforderungen entspricht. Wenn Sie die Skripte mit unterschiedlichen Blender-Versionen verwenden möchten, konsultieren Sie die API-Dokumentation der jeweiligen Version und testen Sie die Änderungen, bevor Sie sie in der Projektdatei anwenden.
Quellen und Lizenz
Der Eintrag „Blender 2.80: Scene and Object API“ (K2) in der Blender-Entwicklerdokumentation erläutert die Änderungen an Sammlungen und View Layern. Die Dokumentation der Blender-Python-API zu Scene (K1) und Object (K4) steht unter der Lizenz CC BY-SA 4.0. Dieser Leitfaden bereitet die technischen Informationen aus diesen Quellen auf Türkisch auf und erläutert sie anhand eigener Beispiele.
Quellen
3 QuellenQuelltexte werden nicht neu veröffentlicht; kurze Zitate sind gekennzeichnet, der Rest ist eigene Zusammenfassung und Einordnung.
Für Architekturbüros und Visualisierungsteams in der Türkei kann die Verwaltung von Sammlungen mit Python die Szenenorganisation besser reproduzierbar machen. Objekte ohne Duplikate mehreren Sammlungen zuordnen zu können, bietet besonders Teams mit wachsenden Szenen eine praktische Möglichkeit, ihren Workflow zu strukturieren.
Die Beispiele versprechen jedoch weder kürzere Renderzeiten noch eine höhere Leistung auf bestimmter Hardware. In realen Projekten sollten die verwendete Blender-Version und die Szenenhierarchie geprüft und die Automatisierung zunächst an einer Dateikopie getestet werden. Die Quellen enthalten außerdem keine Angaben zu Konto-, Hardware- oder Kostenbedingungen.
Häufige Fragen
Wie erstellt man mit Python eine neue Sammlung in Blender?
Mit `bpy.data.collections.new` wird eine Sammlung erstellt. Anschließend wird sie mit `scene.collection.children.link` in die Sammlungshierarchie der Szene eingefügt. Objekte müssen separat hinzugefügt werden.
Kann dasselbe Objekt in Blender mehreren Sammlungen angehören?
Ja. Laut Blender-Entwicklerdokumentation kann dasselbe Objekt mit mehreren Sammlungen verknüpft werden und bleibt dabei ein einzelnes Objekt.
Was ist der Unterschied zwischen `hide_viewport` und `hide_render` in Blender?
`hide_viewport` steuert die Sichtbarkeit eines Objekts im Viewport, `hide_render` seine Sichtbarkeit im Render. Es handelt sich um separate Eigenschaften.



