Your Work Files

Shotgun Workfiles

Using this app you can browse, open and save your Work Files and Publishes.
By: Shotgun Software
Latest Version: v0.9.4 (prod)
For our version numbers, we follow the Semantic Versioning standard.
System Name: tk-multi-workfiles2

Table of Contents:

Overview Summary

Documentation

            File Open dialog

                  Navigating your work areas

                  Finding files

                  Accessing previous versions

                  User sandboxes

                  Narrowing results

            File Save dialog

                  Saving in a different context

                  Adding the file extension dropdown

            Known Issues

Installation, Updates and Development

Configuration Options

Release Notes History

Overview

This application forms the basis for file management in the Shotgun Pipeline Toolkit. It lets you jump around quickly between your various Shotgun entities and gets you started working quickly. No path needs to be specified as the application manages that behind the scenes. The application helps you manage your working files inside a Work Area and makes it easy to share your work with others.

Documentation

File Open dialog

Navigating your work areas

The main dialog is split in two halves. On the left hand side, there is a series of tabs. The first tab is called "My Tasks" and will display all the tasks that are assigned to the current user. It is very reminiscent of the "My Tasks" page on the Shotgun website.

Alternatively, the user can also browse for a Shotgun entity using the entities tabs. By default, the workfiles application allows to browse for any tasks associated on shots or assets by looking at the respective tab.

The set of tabs is entirely configurable through the entities settings in the environment files.

Finding files

On the right hand-side you will see the working files and publishes associated with the selection from the left hand-side. Working files and publishes can be viewed together or separately using the tabs "All", "Working" and "Publishes".

Accessing previous versions

There are two ways to access previous versions. First, the user can click on the "All versions" box at the top of the browser, which will uncollapse the versions and list them all individually in the browser. Another option is to right-click on a file, which will allow you to access the last 10 versions.

User sandboxes

If your pipeline configuration uses user sandboxes, only the files for the current user will be seen by default. If the user wants to see the files from other user's sandboxes, a button at the top will allow to pick which sandboxes to show files from.

Narrowing results

You can narrow results in the any of the views by typing text. The search will match any item's name.

File Save dialog

By default, the "File Save" dialog allows the user to save a file in the current context. The user will be prompted for a scene name, version number and an optional file extension, if available and the "Save" button will be greyed out. Only once the application has confirmed the next available version number for a scene name will the Save button at the bottom right be enabled.

Saving in a different context

In order to save a file in a different context, a user can click on the expand button at the top-left of the dialog which will expand the "File Save" dialog and allow to pick another context to save into.

Adding the file extension dropdown

With the new file save dialog, it is possible to pick the extension of the file being saved. In order to enable this, you need to tweak your pipeline configuration's templates.yml file. First, a token needs to be defined in the token list inside templates.yml.

maya_extension:
    type: str
    choices:
        ma: Maya Ascii (.ma)
        mb: Maya Binary (.mb)
    default: ma
    alias: extension

maya_extension is the token's name. choices is a dictionary of file types that will be displayed in the dropdown. The keys (ma and mb) are the possible values that this template token can have. The values (Maya Ascii (.ma) and Maya Binary (.mb)) are UI friendly descriptions that can be used by a Toolkit application. The alias is an hint that is required by the workfiles application. It tells the application that this token is an extension and should be displayed in the dropdown widget.

Then, this token can be added to any Maya specific template.

maya_shot_work:
    definition: '@shot_root/work/maya/{name}.v{version}.{maya_extension}'
    root_name: 'primary'

Known Issues

  • 3ds Max and Motionbuilder Support - File performance is slower in these DCCs under Windows compared to Maya and Nuke.
  • Perforce/Versionless files - The application still needs to go through testing with the Perforce workflow so it is very likely that it won't work well.

Related Apps and Documents

Loader

The Shotgun Loader lets you quickly overview and browse the files that you have published to Shotgun. A searchable tree view navigation system makes it easy to quickly get to the task, shot or asset that you are looking for and once there the loader shows a thumbnail based overview of all the publishes for that item. Through configurable hooks you can then easily reference or import a publish into your current scene.

Publish

Multi Publish is a workflow app that artists can use to publish files to Shotgun. The app provides a simple UI on top of a highly customizable core that can be easily configured to publish any combination of files or data from a work scene and it's dependencies (e.g. the Maya scene, Nuke Script, OBJ's, Alembic Caches, Cameras, Textures, etc.). The multi publish app is used in all default configurations and can be easily configured to support workflows ranging from Alembic Cache generation in Maya to render publish in Nuke, art reference management in Photoshop or plate ingestion in the Shotgun and shell environments.

Scene Snapshot

A Shotgun Snapshot is a quick incremental backup that let's you version and manage increments of your work without sharing it with anyone else. Take a Snapshot, add a description and a thumbnail, and you create a point in time to which you can always go back to at a later point and restore. This is useful if you are making big changes and want to make sure you have a backup of previous versions of your scene.

Toolkit Pipeline Tutorial

This document provides a step-by-step tutorial for Technical Directors (TDs) setting up a simple end-to-end pipeline using Toolkit. New Toolkit users who finish this tutorial will understand the fundamental aspects of the platform as well as how to customize it based on their studio's specific needs. The tutorial also provides an introduction to the out-of-the-box Toolkit apps and how they fit together in the artist workflow.

Installation and Updates

Adding this App to the Shotgun Pipeline Toolkit

If you want to add this app to Project XYZ, in an environment named asset, execute the following command:

> tank Project XYZ install_app asset tk-maya tk-multi-workfiles2

Updating to the latest version

If you already have this item installed in a project and you want to get the latest version, you can run the update command. You can either navigate to the tank command that comes with that specific project, and run it there:

> cd /my_tank_configs/project_xyz
> ./tank updates

Alternatively, you can run your studio tank command and specify the project name to tell it which project to run the update check for:

> tank Project XYZ updates

Collaboration and Evolution

If you have access to the Shotgun Pipeline Toolkit, you also have access to the source code for all apps, engines and frameworks in Github where we store and manage them. Feel free to evolve these items; use them as a base for further independent development, make changes (and submit pull requests back to us!) or simply tinker with them to see how they have been built and how the toolkit works. You can access this code repository at https://github.com/shotgunsoftware/tk-multi-workfiles2.

Special Requirements

  • You need Shotgun Pipeline Toolkit Core API version v0.17.0 or higher to use this.

Configuration

Below is a summary of all the configuration settings used. These settings need to be defined in the environment file where you want to enable this App or Engine.

file_extensions

Type: list

Description: List of file extensions to be shown in the work files view. If empty then all files that match the template will be shown.

template_publish

Type: template

Description: A reference to a template which locates a publish file on disk.

launch_at_startup

Type: bool

Description: A flag whether to launch the UI at application startup. This option is not supported on all engines because of differences in the way some platforms start up. Currently, only maya nuke and 3ds Max support this option.

show_my_tasks

Type: bool

Default Value: True

Description: Define if the My Tasks view should be visible or not.

saveas_default_name

Type: str

Default Value: scene

Description: The default name that gets used by when saving a work file using the save-as command

template_publish_area

Type: template

Description: A reference to a template which locates the publish directory on disk

saveas_prefer_version_up

Type: bool

Description: Control how the save-as command determines the inital name to be used. If set to True then the name from the current scene will be used and the version incremented. If False then a new unique name will be used and the version reset

hook_filter_work_files

Type: hook

Default Value: {self}/filter_work_files.py

Description: Specify a hook that, if needed, can filter the raw list of work files found for the current work area

create_new_task_hook

Type: hook

Default Value: {self}/create_new_task.py

Description: Specify a hook that will create the task and do any input validation that is required.

hook_copy_file

Type: hook

Default Value: {self}/copy_file.py

Description: Specify a hook that will be used to copy the file 'source_path' to 'target_path'.

allow_task_creation

Type: bool

Default Value: True

Description: Controls whether new tasks can be created from the app.

entities

Type: list

Default Value: [{u'hierarchy': [u'entity.Asset.sg_asset_type', u'entity', u'step', u'content'], u'caption': u'Assets', u'filters': [[u'entity', u'type_is', u'Asset']], u'entity_type': u'Task'}, {u'hierarchy': [u'entity.Shot.sg_sequence', u'entity', u'step', u'content'], u'caption': u'Shots', u'filters': [[u'entity', u'type_is', u'Shot']], u'entity_type': u'Task'}]

Description: This setting defines the different tabs that will show up on the left hand side. Each tab represents a Shotgun query, grouped by some shotgun fields to form a tree. This setting is a list of dictionaries. Each dictionary in the list defines one tab, and should have the following keys: caption specifies the name of the tab, entity_type specifies the shotgun entity type to display. filters is a list of standard API Shotgun filters either in the standard or complex format. hierarchy is a list of shotgun fields relative to the entity type, defining the grouping of the tree.

template_work

Type: template

Description: A reference to a template which locates a work file on disk.

template_work_area

Type: template

Description: A reference to a template which locates the work directory on disk

my_tasks_extra_display_fields

Type: list

Description: List of additional fields to display with the task in the My Tasks list.

version_compare_ignore_fields

Type: list

Description: A list of fields that should be ignored when comparing files to determine if they are different versions of the same file. If this is left empty then only the version field will be ignored. Care should be taken when specifying fields to ignore as Toolkit will expect the version to be unique across files that have different values for those fields and will error if this isn't the case.

hook_scene_operation

Type: hook

Default Value: {self}/scene_operation_{engine_name}.py

Description: All the application specific scene operations (open, save etc) that the app needs to carry out are collected together in this hook.

hook_filter_publishes

Type: hook

Default Value: {self}/filter_publishes.py

Description: Specify a hook that, if needed, can filter the raw list of publishes returned from Shotgun for the current Work area.

custom_actions_hook

Type: hook

Default Value: {self}/custom_actions.py

Description: Hook which contains all custom action methods.

Release Notes

Welcome to the release notes for this App. Below you will find an overview of all the changes we did for each release. We try to be as detailed as possible and include all bugs we have fixed, features we have added and things that may have changed. If you have questions about a particular release, don't hesitate to contact our support team!

v0.9.4

2017-Mar-14

Removes problematic profiles from png files used as icons.

Details:

This will silence libpng warnings from Qt when the png files are loaded as pixmaps. This is a second attempt as this profile stripping, and uses ImageMagick's "mogrify" command to achieve the desired result, which maintains color consistency.

v0.9.2

2017-Mar-09

[minor] No longer disables context changes for Photoshop CC on file load.

Details:

The tk-photoshopcc engine now handles this case without the need to explicitly disable the active-document monitoring via the previously-used context manager.

v0.9.1

2017-Feb-09

Workaround for Hiero not updating save menus

v0.9.0

2017-Jan-30

Adds support for tk-photoshopcc.

v0.8.2

2017-Jan-5

Updated to use v5 of the shotgun utils framework with improved data loading performance.

v0.7.46

2016-Nov-28

Left hand side tree view is now ordered in a case insensitive fashion.

v0.7.45

2016-Nov-25

This fixes an issue with publishes without a path set.

v0.7.43

2016-Nov-21

Left hand tree view is now sorted alphabetically.

v0.7.42

2016-Oct-25

The open operation on a file can now be cancelled and exceptions are better handled during file operations.

Details:

If the execute method in the scene_operation_<tk-engine>.py returns False during the open operation, the dialog will not be dismissed and the current context won't change.

v0.7.41

2016-Oct-19

Adds support for the alternative Shotgun filter syntax.

Details:

The alternative filter syntax can be found here.

v0.7.40

2016-Oct-14

Fixes an issue with user sandboxes.

Details:

Configuring user sandboxes to use a task's name in a template instead of step's name would cause the file list to refresh multiple times before settling on a fixed set of files.

v0.7.39

2016-Jun-30

Uses change_context rather than doing a full engine restart.

Details:

This will speed up operations that require a change of context, such as creating a new file via Workfiles2. Note that it is advised that tk-multi-publish, tk-nuke-writenode, and tk-nuke-quickdailies also be updated when moving to v0.7.39 of tk-multi-workfiles2.

v0.7.38

2016-Jun-30

Clicking on a project in Hiero or Nuke Studio will now retrieve only the publishes on that entity and not the publishes for all the project.

v0.7.37

2016-Jun-15

The application now uses the engine instance name instead of engine name when creating deferred folders. This may require an update to your project's schema.

Details:

When using deferred folder creation, the engine instance name will be used instead of the engine name. For example, the engine tk-nuke configured under the tk-nukestudio section in asset_step.yml will use tk-nukestudio as the token for comparison when evaluating a deferred folder.

v0.7.36

2016-Jun-08

Fixes an issue where the application sometimes switches context without any user intervention.

v0.7.35

2016-May-17

Toned down some warnings that seemed like errors when templates were not configured.

Details:

Error messages

It was brought to our attention that the new messages we introduced in v0.7.31 when templates were missing or an app missing form the environment were giving off the impression that these were grave errors that should be fixed in a user's configuration. Therefore, we've introduced messages that are much more neutral in tone, since most of these should have been considered as informational and not issues to fix.

Missing templates

There has been a slight change in behaviour for the application. It used to be that when a template was missing the file tabs would be working, but with only partial results being shown. The new behaviour is such that a missing template will always show a message to the user.

v0.7.33

2016-May-13

The behaviour of the user filtering button is now more consistent.

Details:

The user filtering button will be visible as soon as user sandboxes are detected in templates.yml file, after which the GUI will disable the button if the feature is not available for a given context and will provide informative tooltips.

v0.7.31

2016-Apr-26

Errors while scanning for files are more accurately reported.

v0.7.30

2016-Apr-21

The app will not refresh the task views as often as before.

Details:

The app cached data that was not necessary for the task views. Changing that data on the server would cause the task views to be rebuilt uselessly. The app is now only caching the fields that are required for it to function.

v0.7.29

2016-Feb-26

Fixed an issue when switching context.

v0.7.28

2016-Feb-25

Fixes issues when an engine is configured multiple times in the same environment.

Details:

The new behaviour is as follows:

  1. When looking for settings in another environment, the application will always look for application settings in the same engine instance name. This avoids cross talk between engine instances, e.g. tk-nuke vs tk-nukestudio in the default config.

  2. If there is only one set of application settings for the app, it will be used automatically, regardless of the application instance name.

  3. If there is more than one set of application settings, only the one with the same application instance name will be used. If none matches, no settings will be used and a warning will be logged to the console.

v0.7.27

2016-Feb-19

Added user activity metrics for particular actions

v0.7.26

2016-Feb-12

Adds support for on-the-fly context changes.

v0.7.25

2016-Feb-10

Adds Nuke Studio support.

v0.7.24

2016-Feb-05

Task creation is now delegated to a hook.

Details:

The hook is responsible for validating and then creating the task in Shotgun in the create_new_task method. A developper can optionally provide a QValidator for the task name field through the create_task_name_validator.

v0.7.22

2016-Feb-04

Entity tree views do not display entity type names anymore.

Details:

In order to reduce the noise and accommodate longer entity names in the entity tree, they will not prefix their name with their type anymore. The type will now be displayed in a tooltip.

v0.7.21

2016-Feb-02

The default tab when using the Shotgun Engine for Hiero is Project.

v0.7.20

2016-Jan-29

Increased app stability in multiple DCCs.

v0.7.18

2016-Jan-07

File dialogs are not modal anymore.

Details:

File dialogs are not modal anymore, except in Nuke 6 where there seems to be memory deallocation issues with PySide in a background thread. In this version of Nuke, the dialog is modal and the automatic garbage collection from Python is disabled and replaced with one that runs periodically from the main thread while the dialog is on screen.

v0.7.17

2016-Jan-04

Added previous versions sub-menus to the list of right click actions on versions.

Details:

Each sub-menu entry displays the list of actions that would be displayed if you had right-clicked on that specific version in All Versions mode.

v0.7.16

2015-Dec-09

The path cache is now updated when loading the file manager or refreshing it.

v0.7.15

2015-Nov-27

Upgraded to use Shotgun Utils Framework v4.x

v0.7.14

Save As no longer overwrites previous versions.

Details:

Clicking on the Save button before file scanning was completed would sometimes overwrite a previous version.

v0.7.13

Removed the grid and list view buttons since only grid view is implemented.

v0.7.11

Fixed issue where no files are found if the current user isn't known

v0.7.10

Bug fixes

Details

  • Fixed issue where an exception would be raised if a Shotgun user matching a login can't be found
  • Fixed PyQt compatibility issue with My Tasks view

v0.7.9

Various fixes, code tidy-up and updated to use the latest version of the shotgunutils framework

Details

  • Folder icon is now used correctly for non-file child items in the list view
  • Double-clicking in the list view is now only recognised for the left mouse button
  • Fixed issue where file modified/publish times between 12-1pm were being displayed as being between 0-1am (they were still sorted correctly though)
  • Added tooltip for files that provides more information including the publish description
  • Fix to allow the project to be specified in the entity tree for Hiero/Project based workflows
  • Updated My Tasks model so that thumbnails are loaded in background threads (using the new features from the latest tk-framework-shotgunutils)
  • Lots of code tidy-up and miscellaneous fixes

v0.7.8

Removed some debug code that was causing odd behaviour

v0.7.7

New preview release containing fixes and tweaks.

Details

  • Includes a number of stability improvements and performance improvements

v0.7.4

New preview release containing fixes and tweaks.

v0.7.3

New preview release containing tweaks to the Save UI.

v0.7.2

New preview release containing numerous fixes and tweaks.

v0.7.1

Initial pre-release version of the File Manager v2 for QA. Changes over v1 include:

Details - Completely new File-Open dialog: - My Tasks & Entity trees for navigating the Work Area. - File grid view written using the Qt model-view system to improve performance. - Ability to open a file from another Work Area into the current Work Area. - Ability to define Custom actions for files/publishes through a new hook - Enhanced Save-As dialog: - Added ability to navigate to and save in a different Work Area - If the file extension in the template is defined with options then those options are presented as a drop-down list to the user - Changing the version is now built into the Save-As dialog. - Removed Switch Work Area and Version Up dialogs

Follow

5 Comments

  • 0
    Avatar
    Mike Fisher

    I updated core to latest in a localized project then closed the shell. Opened a new shell and ran the following...

    .\tank install_app shot_step tk-maya tk-multi-workfiles2

    That command returned...

    ERROR: Cannot find any versions for tk-multi-workfiles2 in the App store!

  • 0
    Avatar
    Carlos Alberto Garcia Martinez

    Greetings everybody

     

    Same here :(

  • 0
    Avatar
    Stu Aitken

    bump - same here :S

  • 0
    Avatar
    Maxim Doucet

    While waiting for tk-multi-workfiles2 to land in the app store, you can use the github version with a command like:

    .\tank install_app shot_step tk-maya https://github.com/shotgunsoftware/tk-multi-workfiles2.git

  • 1
    Avatar
    David van Heeswijk

    Hey Guys,

    Is there a way to control the collapse of entities and tasks?

    By default all the tasks are expanded, but we are on a show with 1200+ shots. So having them all expanded is a giant mess.

    Cheers,

     

    David

Please sign in to leave a comment.