Skip to content

create_zfab

Creator plugin for Marvelous Designer Zfab products.

This module provides the CreateZFab creator class for generating zfab product instances in Marvelous Designer.

CreateZFab

Bases: MDCreator

Model creator for Marvelous Designer.

Source code in client/ayon_marvelousdesigner/plugins/create/create_zfab.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
class CreateZFab(plugin.MDCreator):
    """Model creator for Marvelous Designer."""
    identifier = "io.ayon.creators.marvelousdesigner.zfab"
    label = "Zfab"
    product_base_type = "zfab"
    product_type = product_base_type
    icon = "picture-o"

    def create(self, product_name: str,
               instance_data: dict, pre_create_data: dict) -> None:
        """Create a new zfab product instance in Marvelous Designer.

        Args:
        product_name(str): The name of the product to create.
        instance_data(dict): Data associated with the instance.
        pre_create_data(dict): Pre-creation configuration data.
        """
        if pre_create_data.get("use_selection"):
            fabric_index = fabric_api.GetCurrentFabricIndex()
            instance_data["fabricIndex"] = fabric_index
        else:
            fabric_index = 1
            instance_data["fabricIndex"] = fabric_index

        instance_data["fabricName"] = fabric_api.GetFabricName(fabric_index)
        instance = self.create_instance_in_context(product_name,
                                                   instance_data)

        set_instance(
            instance_id=instance["instance_id"],
            instance_data=instance.data_to_store()
        )

    @staticmethod
    def get_pre_create_attr_defs() -> list:
        """Get pre-creation attribute definitions.

        Returns:
            list: List of attribute definitions for pre-creation configuration.
        """
        return [
            BoolDef("use_selection", label="Use selection")
        ]

create(product_name, instance_data, pre_create_data)

Create a new zfab product instance in Marvelous Designer.

Args: product_name(str): The name of the product to create. instance_data(dict): Data associated with the instance. pre_create_data(dict): Pre-creation configuration data.

Source code in client/ayon_marvelousdesigner/plugins/create/create_zfab.py
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
def create(self, product_name: str,
           instance_data: dict, pre_create_data: dict) -> None:
    """Create a new zfab product instance in Marvelous Designer.

    Args:
    product_name(str): The name of the product to create.
    instance_data(dict): Data associated with the instance.
    pre_create_data(dict): Pre-creation configuration data.
    """
    if pre_create_data.get("use_selection"):
        fabric_index = fabric_api.GetCurrentFabricIndex()
        instance_data["fabricIndex"] = fabric_index
    else:
        fabric_index = 1
        instance_data["fabricIndex"] = fabric_index

    instance_data["fabricName"] = fabric_api.GetFabricName(fabric_index)
    instance = self.create_instance_in_context(product_name,
                                               instance_data)

    set_instance(
        instance_id=instance["instance_id"],
        instance_data=instance.data_to_store()
    )

get_pre_create_attr_defs() staticmethod

Get pre-creation attribute definitions.

Returns:

Name Type Description
list list

List of attribute definitions for pre-creation configuration.

Source code in client/ayon_marvelousdesigner/plugins/create/create_zfab.py
47
48
49
50
51
52
53
54
55
56
@staticmethod
def get_pre_create_attr_defs() -> list:
    """Get pre-creation attribute definitions.

    Returns:
        list: List of attribute definitions for pre-creation configuration.
    """
    return [
        BoolDef("use_selection", label="Use selection")
    ]