Avalon ships with a number of graphical user interfaces for the end-user.


Content is assumed to be created in an application of some kind, and the Launcher is responsible for having one up and running, within an environment suitable for a given project and application.


Associate content with a family.

The family is what determins how the content is handled throughout your pipeline and tells Pyblish what it should look like when valid.

API Example

from avalon import api

class CreateModel(api.Creator):
    """Polygonal geometry for animation"""

    label = "Create Avalon Model"
    name = "modelDefault"
    family = "avalon.model"

api.register_plugin(api.Creator, CreateModel)


Import available assets from the currently set project.

API Example

from avalon import api

class LoadModel(api.Loader):
    """Load data of family avalon.model"""

    label = "Load Avalon Model"
    families = ["avalon.model"]
    representations = ["ma"]

    def process(self, name, namespace, context):
        from maya import cmds
        from avalon import maya

        with maya.maintained_selection():
            nodes = cmds.file(self.fname)

        self[:] = nodes

api.register_plugin(api.Loader, LoadModel)


Data shared amongst artists pass through what's known as a "publishing" step.

API Example

from pyblish import api

class ExtractAvalonModel(api.InstancePlugin):
    """Produce a stripped down Maya file from instance"""

    label = "Extract Avalon Model"
    order = api.ExtractorOrder
    hosts = ["python"]
    families = ["avalon.model"]

    def process(self, instance):
        from maya import cmds
        from avalon import maya

        with maya.maintained_selection(), maya.without_extension():
            cmds.select(instance, noExpand=True)
            cmds.file(path, typ="mayaAscii", exportSelected=True)



Visualise loaded assets.

from avalon import maya

for container in maya.ls():
Traceback (most recent call last):
  File "/tmp/tmp3wbahzja/block.py", line 1, in 
    from avalon import maya
  File "/home/travis/build/getavalon/docs/core/avalon/maya/__init__.py", line 7, in 
    from .pipeline import (
  File "/home/travis/build/getavalon/docs/core/avalon/maya/pipeline.py", line 7, in 
    from maya import cmds, OpenMaya
ModuleNotFoundError: No module named 'maya'          


Manage your workfiles.