Bases: InstancePlugin
Validates Model instance contents.
A model instance may only hold either geometry-related object(excluding Shapes) or editable meshes.
Source code in client/ayon_max/plugins/publish/validate_model_contents.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
43
44 | class ValidateModelContent(pyblish.api.InstancePlugin):
"""Validates Model instance contents.
A model instance may only hold either geometry-related
object(excluding Shapes) or editable meshes.
"""
order = pyblish.api.ValidatorOrder
families = ["model"]
hosts = ["max"]
label = "Model Contents"
def process(self, instance):
invalid = self.get_invalid(instance)
if invalid:
raise PublishValidationError(("Model instance must only include"
"Geometry and Editable Mesh. "
f"Invalid types on: {invalid}"))
def get_invalid(self, instance):
"""
Get invalid nodes if the instance is not camera
"""
invalid = []
container = instance.data["instance_node"]
self.log.info(f"Validating model content for {container}")
selection_list = instance.data["members"]
for sel in selection_list:
if rt.ClassOf(sel) in rt.Camera.classes:
invalid.append(sel)
if rt.ClassOf(sel) in rt.Light.classes:
invalid.append(sel)
if rt.ClassOf(sel) in rt.Shape.classes:
invalid.append(sel)
return invalid
|
get_invalid(instance)
Get invalid nodes if the instance is not camera
Source code in client/ayon_max/plugins/publish/validate_model_contents.py
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 | def get_invalid(self, instance):
"""
Get invalid nodes if the instance is not camera
"""
invalid = []
container = instance.data["instance_node"]
self.log.info(f"Validating model content for {container}")
selection_list = instance.data["members"]
for sel in selection_list:
if rt.ClassOf(sel) in rt.Camera.classes:
invalid.append(sel)
if rt.ClassOf(sel) in rt.Light.classes:
invalid.append(sel)
if rt.ClassOf(sel) in rt.Shape.classes:
invalid.append(sel)
return invalid
|