Skip to content

create_placeholder

HoudiniPlaceholderCreatePlugin

Bases: HoudiniPlaceholderPlugin, PlaceholderCreateMixin

Workfile template plugin to create "create placeholders".

"create placeholders" will be replaced by publish instances.

TODO

Support imprint & read precreate data to instances.

Source code in client/ayon_houdini/plugins/workfile_build/create_placeholder.py
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
class HoudiniPlaceholderCreatePlugin(
    HoudiniPlaceholderPlugin, PlaceholderCreateMixin
):
    """Workfile template plugin to create "create placeholders".

    "create placeholders" will be replaced by publish instances.

    TODO:
        Support imprint & read precreate data to instances.
    """

    identifier = "ayon.create.placeholder"
    label = "Houdini Create"

    def populate_placeholder(self, placeholder):
        self.populate_create_placeholder(placeholder)

    def repopulate_placeholder(self, placeholder):
        self.populate_create_placeholder(placeholder)

    def get_placeholder_options(self, options=None):
        return self.get_create_plugin_options(options)

    def get_placeholder_node_name(self, placeholder_data):
        create_context = CreateContext(registered_host())
        creator = create_context.creators.get(placeholder_data["creator"])
        product_type = creator.product_type
        node_name = "{}_{}".format(
            self.identifier.replace(".", "_"),
            product_type
        )

        return node_name

    def collect_placeholders(self):
        output = []
        create_placeholders = self.collect_scene_placeholders()

        for node in create_placeholders:
            placeholder_data = read(node)
            output.append(
                CreatePlaceholderItem(node.path(), placeholder_data, self)
            )

        return output