Skip to content

create_template

CreateTemplate

Bases: HarmonyCreator

Use existing Backdrop or create new one around selected nodes.

Publishable template is marked as Backdrop wrapping node(s)

Source code in client/ayon_harmony/plugins/create/create_template.py
 6
 7
 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
class CreateTemplate(plugin.HarmonyCreator):
    """Use existing Backdrop or create new one around selected nodes.

    Publishable template is marked as Backdrop wrapping node(s)
    """

    identifier = "io.ayon.creators.harmony.template"
    label = "Template"
    product_type = "harmony.template"
    icon = "cubes"

    def product_impl(self, name, instance_data: dict, pre_create_data: dict):
        args = [name, pre_create_data.get("use_selection") ]
        backdrop = harmony.send(
            {
                "function": "AyonHarmonyAPI.createBackdropContainer",
                "args": args
            }
        )["result"]

        return backdrop["title"]["text"]

    def remove_instances(self, instances):
        for instance in instances:
            container_name = instance.transient_data["node"]
            container_backdrop = harmony.find_backdrop_by_name(container_name)
            harmony.send(
                {"function": "AyonHarmony.removeBackdropWithContents", "args": container_backdrop}
            )
            harmony.remove(container_name)
            self._remove_instance_from_context(instance)