Go to: Synopsis. Return value. Related.
Flags. Python
examples.
workspace( [string] , [active=boolean], [baseWorkspace=string], [create=string], [directory=string], [expandName=string], [fileRule=[string, string]], [fileRuleEntry=string], [fileRuleList=boolean], [filter=boolean], [fullName=boolean], [list=boolean], [listFullWorkspaces=boolean],
[listWorkspaces=boolean],
[newWorkspace=boolean],
[objectType=[string, string]],
[objectTypeEntry=string],
[objectTypeList=boolean],
[openWorkspace=boolean],
[projectPath=string],
[removeFileRuleEntry=string],
[removeVariableEntry=string],
[renderType=[string, string]],
[renderTypeEntry=string],
[renderTypeList=boolean],
[rootDirectory=boolean],
[saveWorkspace=boolean],
[shortName=boolean], [update=boolean], [updateAll=boolean], [variable=[string, string]], [variableEntry=string], [variableList=boolean])
Note: Strings representing object names and
arguments must be separated by commas. This is not depicted in the
synopsis.
workspace is undoable, queryable, and NOT editable.
Create, open, or edit a workspace associated with a given workspace
file. The string argument represents the workspace. If no workspace
is specified then the current workspace is assumed. A workspace
provides the underlying definition of a Maya Project. Each project
has an associated workspace file, named workspace.mel, which is
stored in the project root directory. The workspace file defines a
set of rules that map file types to their storage, either relative
to the project root or as an absolute location. These rules are
used when resolving file paths at runtime. The workspace command
operates directly on the low-level definition of the workspace to
read, change and store the definition to the underlying file. Use
of this command is not generally required, for most purposes it is
recommended that project definition changes be done via the Project
Window in the User Interface.
In query mode, return type is based on queried flag.
translator
active, baseWorkspace, create, directory,
expandName, fileRule, fileRuleEntry, fileRuleList, filter, fullName,
list, listFullWorkspaces, listWorkspaces, newWorkspace, objectType, objectTypeEntry, objectTypeList, openWorkspace, projectPath, removeFileRuleEntry, removeVariableEntry, renderType, renderTypeEntry, renderTypeList, rootDirectory, saveWorkspace, shortName, update,
updateAll, variable, variableEntry, variableList
Long name (short name) |
Argument types |
Properties |
newWorkspace(n) |
boolean |
|
|
This specifies that a new workspace is being created. If a
workspace with this name already exists, the command will
fail. |
|
openWorkspace(o) |
boolean |
|
|
Open the workspace. The workspace becomes the current
workspace. |
|
active(act) |
boolean |
|
|
This flag is a synonym for -o/openWorkspace. |
|
saveWorkspace(s) |
boolean |
|
|
Save the workspace. Workspaces are normally saved when Maya
exits but this flag will make sure that the data is flushed to
disk. |
|
baseWorkspace(bw) |
string |
|
|
A workspace may be based on another workspace. This means that
all the settings in the base workspace apply to this workspace
unless they are explicitly overridden. |
|
listWorkspaces(lw) |
boolean |
|
|
Returns a list of all the currently defined workspace
names. |
|
listFullWorkspaces(lfw) |
boolean |
|
|
Returns a list of the full path names of all the currently
defined workspaces. |
|
list(l) |
boolean |
|
|
This option will list the current workspace directory. If a
path is specified for the "workspaceFile" then the contents of that
directory will be listed. Otherwise, the contents of the directory
set with the -dir flag will be listed. |
|
directory(dir) |
string |
|
|
This option will set the current workspace directory to the
path specified. When queried it will return the current workspace
directory. This directory is used as an initial directory for the
fileBrowser and is part of the search path used for locating
files. It should not be confused with the current working
directory as used by the pwd and chdir commands. When
the file browser is used, it will set this value to the last
location navigated to. |
|
create(cr) |
string |
|
|
Create a new directory. If the directory name is not a full
path name, it will be created as a subdirectory of the "current"
directory set with the -dir flag. |
|
rootDirectory(rd) |
boolean |
|
|
Returns the root directory of the workspace. |
|
objectType(ot) |
[string, string] |
|
|
This flag is obsolete. All default locations will be added to
the fileRules going forward. |
|
objectTypeList(otl) |
boolean |
|
|
This flag is obsolete. This will now return the same results as
fileRuleList going forward. |
|
objectTypeEntry(ote) |
string |
|
|
This flag is obsolete. This will now return the same as
fileRuleEntry. |
|
fileRule(fr) |
[string, string] |
|
|
Set the default location for a file. The first parameter is the
fileRule (scenes, images, etc) and the second is the location. When
queried, it returns a list of strings. The elements of the returned
list alternate between fileRule names and the corresponding
location. There is typically one file rule for each available
translator. Environment variables are supported. You can set
multiple path for the file rule by separating them with semicolons
(;) on Windows and colons(:) on MacOSX and Linux. Note that
whitespace at the beginning and end of each item in the separated
sequence is significant and will be included as part of the path
name (which is not usually desired unless the pathname does
actually start or end with spaces). |
|
fileRuleList(frl) |
boolean |
|
|
Returns a list of the currently defined file rules. |
|
fileRuleEntry(fre) |
string |
|
|
Return the location for the given fileRule. |
|
removeFileRuleEntry(rfr) |
string |
|
|
Remove the given file rule from the specified workspace. If the
workspace name is not specified, the given file rule will be
removed from the current workspace. |
|
renderType(rt) |
[string, string] |
|
|
This flag is obsolete. All default render types will be added
to fileRules going forward. |
|
renderTypeList(rtl) |
boolean |
|
|
This flag is obsolete, use fileRuleList going forward. |
|
renderTypeEntry(rte) |
string |
|
|
This flag is obsolete, use fileRuleEntry going forward |
|
variable(v) |
[string, string] |
|
|
Set or query the value of a project variable. Project variables
are used when expanding names. See the -en/expandName flag
below. |
|
variableList(vl) |
boolean |
|
|
Return a list of all variables in the workspace. |
|
variableEntry(ve) |
string |
|
|
Given a variable name, will return its value. |
|
removeVariableEntry(rve) |
string |
|
|
Remove the given variable from the specified workspace. If the
workspace name is not specified, the given variable will be removed
from the current workspace. |
|
shortName(sn) |
boolean |
|
|
Query the short name of the workspace. |
|
fullName(fn) |
boolean |
|
|
Return the full name of the workspace. |
|
expandName(en) |
string |
|
|
Query for the full path location of a filename using the
current workspace definition. The path may be a project relative
file name, a full path name or a variable name. The return value is
always a full path name. If the path is an empty string, the return
value will be the project root directory. Variable expansion is
supported, and will consider both variables defined in the
workspace as well as environment variables. There are three formats
supported for expanding variable names: %variableName%,
$variableName, ${variableName}. Maya will first attempt to find
matching variables defined in the current workspace, then search
for a matching environment variable. The tilde character ('~') is
also supported. If a tilde is located at the beginning of a
variable, Maya will only consider and expand environment variables,
and will leave the tilde in the expanded result. On linux platforms
only, a tilde can be used to expand a user's home directory, using
the form ~username, ~, or ~/. When specified as ~username, it will
be replaced with the corresponding user's home directory. When
specified as ~ or ~/, it will be replaced with the value of the
HOME environment variable. |
|
projectPath(pp) |
string |
|
|
Convert filePath passed as argument to a filename that is
relative to the project root directory (if possible) and return it.
If the filePath is not under the project root directory, a full
path name will be returned. |
|
update(u) |
boolean |
|
|
This flag reads all the workspace definitions from the project
directory. It is used by Maya at startup time to find the available
workspaces. |
|
updateAll(ua) |
boolean |
|
|
This flag is a synonym for -u/update. |
|
filter(f) |
boolean |
|
|
Flag can appear in Create mode of
command |
Flag can appear in Edit mode of command |
Flag can appear in Query mode of command |
Flag can have multiple arguments, passed
either as a tuple or a list. |
import maya.cmds as cmds
# Set the current workspace to "alphabet".
cmds.workspace( 'alphabet', openWorkspace=True )
# Save the current workspace settings (for "alphabet").
cmds.workspace( saveWorkspace=True )
# Create a new workspace named "newWorkspace".
cmds.workspace( 'newWorkspace', newWorkspace=True )
# The settings of "newWorkspace" are based on "default" workspace
cmds.workspace( baseWorkspace='default' )
# Return the list of existing workspaces
cmds.workspace( listWorkspaces=True )
# Result: default newWorkspace
# Add a scriptJob to run on workspaceChanged events
def workspaceChangedCallback():
print 'My workspaceChangedCallback was called'
workspaceChangedID = cmds.scriptJob( event = ["workspaceChanged", workspaceChangedCallback] )
# add a file rule to the current workspace
cmds.workspace(fileRule = ['newFileRuleName', 'newFileRuleValue'])
My workspaceChangedCallback was called #workspaceChangedCallback was called
# look up the value of the file rule entry
cmds.workspace(q = True, fileRuleEntry = 'newFileRuleName')
# Result: newFileRuleValue
# remove specified file rule entry
cmds.workspace(removeFileRuleEntry = 'newFileRuleName')
My workspaceChangedCallback was called #workspaceChangedCallback is called
# kill the scriptJob with the number
cmds.scriptJob(kill = workspaceChangedID)
# The following example shows how to expand environment and workspace variables
# expand a path value to be a full path relative to the project directory
# relative path example
cmds.workspace( expandName = 'relativePathName')
# Result: /h/userName/maya/projects/newWorkspace/relativePathName/
# full path example
cmds.workspace( expandName = '/h/userName/maya/projects/default/')
# Result: /h/userName/maya/projects/default/
# The following examples show various formats for expanding workspace and
# environment variables.
# add a variable to the current workspace
cmds.workspace(variable = ['newVariableName', 'newVariableValue'])
cmds.workspace( expandName = '%newVariableName%')
# Result: /h/userName/maya/projects/newWorkspace/newVariableValue/
# add an environment variable with the same as the workspace variable
maya.mel.eval('putenv "newEnvVariableName" "newEnvVariableValue"')
cmds.workspace( expandName = '%newEnvVariableName%')
# Result: /h/userName/maya/projects/newWorkspace/newEnvVariableValue/
# The following example shows how conflicting names in both workspace
# and environment variables are resolved.
# add a environment variable with the same name as a workspace variable
maya.mel.eval('putenv "newVariableName" "newEnvVariableValue"')
# maya considers workspace variables first before matching environment variables
cmds.workspace( expandName = '%newVariableName%')
# Result: /h/userName/maya/projects/newWorkspace/newVariableValue/
# When a tilde is used, maya will only consider the environment variable
# not the workspace variable.
cmds.workspace( expandName = '~%newVariableName%')
# Result: /h/userName/maya/projects/newWorkspace/~newEnvVariableValue/
# The following example shows how to set multiple paths into a fileRule value
cmds.workspace(fileRule = ['newMultiPathFileRuleName', '/h/userName/maya/projects/default;newFileRuleValue'])
multipath = cmds.workspace(q = True, fileRuleEntry = 'newMultiPathFileRuleName')
# Result : /h/userName/maya/projects/default;newFileRuleValue
# The following will only return the first expanded path.
cmds.workspace( expandName = multipath)
# Result : /h/userName/maya/projects/default
# Note that white space at the beginning or end of each path is significant.
# Add a file rule that uses multiple paths with the white space at the beginning and end of each path
cmds.workspace(fileRule = ['newMultiPathFileRuleName', ' /h/userName/maya/projects/default ; newFileRuleValue '])
# Querying and expanding the path value shows that the white space is still included.
multipath = cmds.workspace(q = True, fileRuleEntry = 'newMultiPathFileRuleName')
# Result : /h/userName/maya/projects/default ; newFileRuleValue
# Find the current workspace area.
cmds.workspace( q=True, directory=True )
# Result : /h/userName/maya/projects/default
# Note that the "current working directory" as defined by the
# 'pwd' and 'chdir' commands is unrelated to the directories
# used by the workspace command
#
cmds.pwd()
# Result : /usr/tmp
cmds.chdir( '/tmp' )
getcwd()
# Result : /tmp
cmds.workspace( q=True, directory=True )
# Result : /h/userName/maya/projects/default
cmds.workspace( directory='/h/userName/maya/projects/commercial' )
getcwd()
# Result : /tmp