Skip to content

Flow

Work in progress

Sorry, this part of the documentation is not yet redacted.

Structure

variables:
    "var_name": "value"
workflows:
    "document-model":  # or document-model(group-model=group)
        "item-model":  # or item-model(group-model=group)
            "task-model"("task"):  # or task-model(*)
                settings:
                    "element-slug":
                        delete_action: "action-slug"
                        create_action: "action-slug"
                        visibility_action: "action-slug"
                actions:
                    "element-slug":
                        "action-slug":
                            enabled: bool  # if false, cannot be used
                            public: bool  # if false, cannot be ran manually
                            write_manifest: bool
                            parameters:
                                "param-slug":
                                    value: "value"
                                    editable: bool
                            links:
                                "link-slug":
                                    item: "item-slug" | $element.item | $document.item
                                    document_model: "document-model" | $document.document_model
                                    task_model: "task-model" | $document.task_model
                                    task: "task" | $document.task
                                    element: "name" | $element.name
                                    version: 1 | $latest | $new | $document.version
                                    force_create_task: bool
                                    force_create_document: bool
                                    force_create_version: bool
                                    origin: bool  # If true, the origin will be linked to the element and used for update checks
                recipes:
                    "recipe-slug":
                        name: "Recipe name"
                        description: "Description of the recipe"
                        queue:
                            "order-slug":
                                name: "Order name"
                                description: "Order description"
                                action: "element-slug">"action-slug"
                                item: $element.item | $document.item | "item-slug"
                                parameters:
                                    "param-slug": "value" | $other-order-slug
                                undo: bool
                                filters:
                                    condition: value

Example

For this example, we assume that the following ElementModels have been created:

  • asset:
    • name: Asset
    • linked: true
    • item_model: asset
  • helper:
    • name: Helper
    • linked: true
    • item_model: helper
  • camera:
    • name: Camera
    • linked: true
    • item_model: asset
  • material:
    • name: Material
    • linked: true
    • item_model: asset
  • light:
    • name: Light
    • linked: true
    • item_model: asset
  • render-pass:
    • name: Render pass
    • linked: false
variables:
    framerate: 25
workflows:
    scene(software=maya):
        asset(category=character):
            modeling(modeling):
                settings:
                    asset:
                        delete_action: delete
                        create_action: false
                        visibility_action: false
                    helper:
                        delete_action: delete
                        create_action: import
                        visibility_action: false
                    render-layers:
                        delete_action: delete
                        create_action: create
                        visibility_action: false
                    light-rig:
                        delete_action: delete
                        create_action: import
                        visibility_action: false
                    camera:
                        delete_action: delete
                        create_action: import
                        visibility_action: false
                actions:
                    document:
                        set-settings:
                            enabled: true
                            public: true
                            parameters:
                                resolution: 
                                    value: $project.metadata(resolution)
                                    editable: false
                                framerate: 
                                    value: %framerate
                                    editable: false
                        set-render-settings:
                            enabled: true
                            public: true
                        create-folders:
                            enabled: true
                            public: true
                            parameters:
                                preset:
                                    value: asset
                                    editable: false
                    asset:
                        delete:
                            enabled: true
                            public: true
                        import:
                            enabled: true
                            public: false
                            write_manifest: true
                        export:
                            enabled: true
                            public: false
                            links:
                                target:
                                    task_model: modeling
                                    task: modeling
                                    document_model: camera
                            require:
                                - validate
                                - clean
                        clean:
                            enabled: true
                            public: true
                        validate:
                            enabled: true
                            public: true
                        fix:
                            enabled: true
                            public: true
                        visibility:
                            enabled: true
                    helper:
                        import:
                            enabled: true
                            public: true
                        delete:
                            enabled: true
                            public: true
                    render-layer:
                        create:
                            enabled: true
                            public: true
                        delete:
                            enabled: true
                            public: true
                        render:
                            enable: true
                            public: false
                            links:
                                output:
                                    task_model: $document.task_model
                                    task: $document.task
                                    document_model: render
                                    version: $document.version
                                    item: $document.item
                                    element: $element.name
                                    force_create_task: true
                                    force_create_document: true
                                    force_create_version: true
                    light-rig:
                        import:
                            enabled: true
                            public: true
                        delete:
                            enabled: true
                            public: true
                        update:
                            enabled: true
                            public: true
                    camera:
                        create:
                            enabled: true
                            public: true

                        delete:
                            enabled: true
                            public: true
                recipes:
                    build:
                        name: Build
                        description: Initialize the scene
                        queue:
                            set-settings:
                                name: Scene settings
                                description: Setup scene settings
                                action: document>set-setting
                            set-render-settings:
                                name: Render settings
                                action: document>set-render-settings
                            create-folders:
                                name: Create folders
                                action: document>create-folders
                            create-main-asset:
                                name: Create main asset
                                action: asset>create
                                item: $document.item
                            import-turntable:
                                name: Import turntable
                                action: helper>import
                                item: turntable
                            create-render-layers:
                                name: Create render layers
                                action: render-layers>create
                            import-light-rig:
                                name: Import Light rig
                                action: light>import
                                parameters:
                                    target_element: $generate-main-asset
                            create-camera:
                                name: Create camera
                                action: camera>create
                                parameters:
                                    target_element: $generate-main-asset
                    publish:
                        name: Publish
                        queue:
                            validate-asset:
                                name: Validate asset
                                action: asset>validate
                            fix-asset:
                                name: Fix asset
                                action: asset>fix
                                parameters:
                                    from_validation: $validate-asset
                            clean-asset:
                                name: Clean asset
                                action: asset>clean
                                undo: true
                            export-asset:
                                name: Export asset
                                action: asset>export
                                undo: true
                    render:
                        name: Render
                        queue:
                            hide-unselected:
                                name: Hide unselected
                                action: asset>visibility
                                parameters:
                                    show: false
                                filters:
                                    $element.selected: false
                            show-selected:
                                name: Show selected
                                action: asset>visibility
                                parameters:
                                    show: true
                            submit-render:
                                name: Submit render
                                action: render-layer>render

            texturing(texturing):
                settings:
                    asset:
                        delete_action: delete
                actions:
                    asset:
                        delete:
                            enable: true
                            public: true
                        import:
                            enabled: true
                            public: false
                            links:
                                source:
                                    task_model: modeling
                                    task: modeling
                                    document_model: model
                                    item: $element.item
                                    origin: true
                        export:
                            links:
                                target:
                                    task_model: texturing
                                    task: texturing
                                    document_model: model
                                    item: $element.item
                    helper:
                        import:
                            source:
                                task_model: texturing
                                task: texturing
                                document_model: model
                                item: $element.item
                recipes:
                    build:
                        name: Build
                        queue:
                            import-asset:
                                name: Import Asset
                                action: asset>import
                                item: $manifest
                            import-turntable:
                                name: Import turntable
                                action: helper>import
                                item: turntable
                    update:
                        name: Update
                        queue:
                            update-asset:
                                name: Update asset
                                type: Asset
                                action: update
                    publish:
                        name: Publish
                        queue:


        shot:
            layout(layout):
                settings:
                    asset:
                        create_action: import
                actions:
                    asset:
                        import:
                            enabled: true
                            public: true
                            write_manifest: true
                            links:
                                source:
                                    task_model: texturing
                                    task: texturing
                                    groups:
                                        variant: $user
                                    document_model: model
                                    item: $element.item
                recipes:
                    build:
                        name: Build
                        queue:

                # Allow to manually add elements (+ import)
                # Recipes
                    # Build (import from manifest)
            animation(animation):
                actions:
                    asset:
                        cache:
                            enabled: true
                            public: false
                            parameters:
                                format: 
                                    value: abc
                                    editable: false
                            links:
                                target:
                                    task_model: animation
                                    task: animation
                                    item: $document.item
                                    document_model: cache
                        track:
                            enabled: true
                            public: false
                            parameters:
                                format: fbx
                                editable: false
                            links:
                                target:
                                    task_model: animation
                                    task: animation
                                    item: $document.item
                                    document_model: cache
                    document:
                        playblast:
                            enabled: true
                            public: true
                recipes:
                    build:
                        name: Build
                    update:
                        name: Update
                    publish:
                        name: Publish
                        queue:
                            alembic:
                                name: Alembic
                                action: asset>cache
                                parameters:
                                    format: abc
                                filters: 
                                    $element.item.metadata(deformation): organic
                                    $element.item.slug: [JohnDoe, DarkVador]
                    playblast:
                        name: Playblast
                        queue:
                            playblast:
                                name: Playblast
                                action: document>playblast
            lighting(lighting):
                actions:
                    asset:
                        import:
                            enabled: true
                            public: false
                            links:
                                model:
                                    task_model: texturing
                                    task: texturing
                                    document_model: model
                                    item: $element.item
                                cache:
                                    task_model: animation
                                    task: animation
                                    document_model: cache
                                    item: $document.item
                        update:
                            enabled: true
                            public: true
                    render-layers:
                        render:
                            enabled: true
                            public: true
                recipes:
                    render:
                        name: Render
                        queue:
                            hide-unselected:
                                name: Hide unselected
                                action: asset>visibility
                                parameters:
                                    show: false
                                filters:
                                    $element.selected: false
                            show-selected:
                                name: Show selected
                                action: asset>visibility
                                parameters:
                                    show: true
                            submit-render:
                                name: Submit render
                                action: render-layer>render