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.