Skip to content

collect_export_option

Collect current work file.

CollectExportOption

Bases: InstancePlugin, AYONPyblishPluginMixin

Inject the current export option into context.

Source code in client/ayon_marvelousdesigner/plugins/publish/collect_export_option.py
 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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
class CollectExportOption(pyblish.api.InstancePlugin,
                          AYONPyblishPluginMixin):
    """Inject the current export option into context."""

    order = pyblish.api.CollectorOrder - 0.01
    label = "Collect Export Option"
    hosts: ClassVar[list[str]] = ["marvelousdesigner"]
    families: ClassVar[list[str]] = ["model", "pointcache"]

    def process(self, instance: pyblish.api.Instance) -> None:
        """Inject the current export option.

        Args:
            instance (pyblish.api.Instance): The instance to process.
        """
        attr_values = self.get_attr_values_from_data(instance.data)
        export_option_data = {
            "bExportGarment": attr_values.get("bExportGarment", True),
            "bExportAvatar": attr_values.get("bExportAvatar", False),
            "bSingleObject": attr_values.get("bSingleObject", True),
            "bThin": attr_values.get("bThin", False),
            "bMetaData": attr_values.get("bMetaData", True),
        }
        instance.data["exportOptions"] = export_option_data

    @classmethod
    def get_attribute_defs(cls) -> list[BoolDef]:
        """Get attribute definitions for export options.

        Returns:
        list: List of boolean attribute definitions for export options.

        """
        return [
            UISeparatorDef("sep_export_options"),
            UILabelDef("Export Options"),
            BoolDef("bExportGarment",
                    label="Export Garment",
                    default=True),
            BoolDef("bExportAvatar",
                    label="Export Avatar",
                    default=False),
            BoolDef("bSingleObject",
                    label="Single Object",
                    default=True),
            BoolDef("bThin",
                    label="Thin",
                    default=False),
            BoolDef("bMetaData",
                    label="XML MetaData",
                    default=True),
            UISeparatorDef("sep_export_options"),
        ]

get_attribute_defs() classmethod

Get attribute definitions for export options.

Returns: list: List of boolean attribute definitions for export options.

Source code in client/ayon_marvelousdesigner/plugins/publish/collect_export_option.py
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
59
60
61
@classmethod
def get_attribute_defs(cls) -> list[BoolDef]:
    """Get attribute definitions for export options.

    Returns:
    list: List of boolean attribute definitions for export options.

    """
    return [
        UISeparatorDef("sep_export_options"),
        UILabelDef("Export Options"),
        BoolDef("bExportGarment",
                label="Export Garment",
                default=True),
        BoolDef("bExportAvatar",
                label="Export Avatar",
                default=False),
        BoolDef("bSingleObject",
                label="Single Object",
                default=True),
        BoolDef("bThin",
                label="Thin",
                default=False),
        BoolDef("bMetaData",
                label="XML MetaData",
                default=True),
        UISeparatorDef("sep_export_options"),
    ]

process(instance)

Inject the current export option.

Parameters:

Name Type Description Default
instance Instance

The instance to process.

required
Source code in client/ayon_marvelousdesigner/plugins/publish/collect_export_option.py
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
def process(self, instance: pyblish.api.Instance) -> None:
    """Inject the current export option.

    Args:
        instance (pyblish.api.Instance): The instance to process.
    """
    attr_values = self.get_attr_values_from_data(instance.data)
    export_option_data = {
        "bExportGarment": attr_values.get("bExportGarment", True),
        "bExportAvatar": attr_values.get("bExportAvatar", False),
        "bSingleObject": attr_values.get("bSingleObject", True),
        "bThin": attr_values.get("bThin", False),
        "bMetaData": attr_values.get("bMetaData", True),
    }
    instance.data["exportOptions"] = export_option_data