Skip to content

create_blendScene

Create a Blender scene asset.

CreateBlendScene

Bases: BlenderCreator

Generic group of assets.

Source code in client/ayon_blender/plugins/create/create_blendScene.py
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
class CreateBlendScene(plugin.BlenderCreator):
    """Generic group of assets."""

    identifier = "io.openpype.creators.blender.blendscene"
    label = "Blender Scene"
    product_type = "blendScene"
    icon = "cubes"

    maintain_selection = False

    def create(
        self, product_name: str, instance_data: dict, pre_create_data: dict
    ):

        instance_node = super().create(product_name,
                                       instance_data,
                                       pre_create_data)

        if pre_create_data.get("use_selection"):
            selection = lib.get_selection(include_collections=True)
            for data in selection:
                if isinstance(data, bpy.types.Collection):
                    instance_node.children.link(data)
                elif isinstance(data, bpy.types.Object):
                    instance_node.objects.link(data)

        return instance_node

    def remove_instances(self, instances):

        for instance in instances:
            node = instance.transient_data["instance_node"]
            bpy.data.collections.remove(node)

            self._remove_instance_from_context(instance)