omni.asset_validator.core API
- class omni.asset_validator.core.ValidationRulesRegistry
A registry enabling external clients to add new rules to the engine.
Rules must derive from
BaseRuleChecker
and should re-implement the necessary virtual methods required for their specific check, as well as documenting with an appropriate user-facing message.Rules are registered to specific categories (str labels) to provide bulk enabling/disabling via carb settings and to make logical grouping in UIs or other documentation easier.
Example
Define a new Rule that requires all prims to be meshes or xforms (e.g. if your app only handles these types) and register it with the validation framework under a custom category:
import omni.asset_validator.core @omni.asset_validator.core.registerRule("MyOwnRules") class MyRuleChecker(omni.asset_validator.core.BaseRuleChecker): '''Check that all prims are meshes for xforms''' def CheckPrim(self, prim) -> None: self._Msg("Checking prim <%s>." % prim.GetPath()) if prim.GetTypeName() not in ("Mesh", "Xform"): self._AddFailedCheck( f"Prim <{prim.GetPath()}> has unsupported type '{prim.GetTypeName()}'." )
By default all rules that ship with USD itself are registered into “Basic” and “ARKit” categories, though “ARKit” rules have been default disabled via carb settings.
- static init()
This is a wrapper over the category rules registry. However, some rules appear under different names due to specialization happening in this kit extension package, to avoid these problems we clear the current registry.
- static categories(enabledOnly: bool = False) Tuple[str, ...]
Query all registered categories
- Parameters
enabledOnly – Filter the results to only categories that are enabled (via carb settings)
- Returns
A tuple of category strings that can be used in
rules()
- static rules(category: str, enabledOnly: bool = False) Tuple[Type[omni_asset_validator.base_rule_checker.BaseRuleChecker], ...]
Query all registered rules in a given category
- Parameters
category – Filter for rules only in a specific category
enabledOnly – Filter the results to only rules that are enabled (via carb settings)
- Returns
A tuple of BaseRuleChecker derived classes
- static registerRule(rule: Type[omni_asset_validator.base_rule_checker.BaseRuleChecker], category: str) None
Register a new Rule to a specific category
- Parameters
rule – A BaseRuleChecker derived class that implements a specific check
category – The label with which this rule will be associated
- static deregisterRule(rule: Type[omni_asset_validator.base_rule_checker.BaseRuleChecker]) None
Remove a specific Rule from the registry
For convenience it is not required to specify the category, the rule will be removed from all categories, and subsequent empty categories will be removed from the registry.
- Parameters
rule – A BaseRuleChecker derived class that implements a specific check
- static rule(name: str) Optional[Type[omni_asset_validator.base_rule_checker.BaseRuleChecker]]
Query a registered rule by class name
- Parameters
name – The exact (case sensitive) class name of a previously registered rule
- Returns
A BaseRuleChecker derived class or None
- static category(rule: Type[omni_asset_validator.base_rule_checker.BaseRuleChecker]) str
Query the category of a specific rule
- Parameters
rule – A previously registered BaseRuleChecker derived class
- Returns
A valid category name or empty string
- @omni.asset_validator.core.registerRule(category: str, skip: bool = False) Callable[[Type[omni_asset_validator.base_rule_checker.BaseRuleChecker]], Type[omni_asset_validator.base_rule_checker.BaseRuleChecker]]
Decorator. Register a new
BaseRuleChecker
to a specific category.Example
Register MyRule into the category “MyCategory” so that becomes part of the default initialized ValidationEngine.
@registerRule("MyCategory") class MyRule(BaseRuleChecker): pass
- Parameters
category (str) – The label with which this rule will be associated
skip (bool) – Whether to skip rule registration. Default false.
- omni.asset_validator.core.get_version()
- Returns
The version of this module.