content module
Module content provides the definition of the classes SBSGroup and SBSContent
- class substance.content.SBSContent(aGroups=None, aGraphs=None, aResources=None, aResourcesScene=None, aFunctions=None, aMDLGraphs=None, aModelGraphs=None)
Bases:
SBSObjectClass that contains information on the content node as defined in a .sbs file. The content is a tree structure of these elements:
- Members:
mGraphs (list of
SBSGraph): Graphs in this contentmGroups (list of
SBSGroup): Folders in this contentmResources (list of
SBSResource): Resources in this contentmResourcesScene (list of
SBSResourceScene): Scene resources in this contentmFunctions (list of
SBSFunction): Functions in this content
- computeUniqueIdentifier(aIdentifier, aSuffixId=0)
Check if the given identifier is already used and generate a unique identifier if necessary
- Returns:
A unique identifier, which is either the given one or a new one with a suffix: identifier_id
- equals(other)
Check if this SBSObject is equivalent to the other SBSObject. Some members may be excluded from this check, the UIDs or GUILayout for instance.
- getMDLGraphList(aRecursive=True)
Get the list of MDL graphs identifiers defined in this content, including sub-folders or not. Warning: MDLGraph is not supported in SAT >= 16.0, only the identifiers are returned
- Returns:
A list of strings
- getModelGraph(aGraphIdentifier, aRecursive=True)
Get the Model Graph object with the given identifier
- Parameters:
aGraphIdentifier (str) – the identifier (not uid) of the graph to find
aRecursive (bool) – True to parse sub folders, False to search only inside the current Content
- Returns:
A
ModuleGraphobject
- getModelGraphList(aRecursive=True)
Get the list of Model graphs defined in this content, including sub-folders or not.
- Returns:
A list of
ModuleGraphobjects
- getObject(aIdentifier)
Get the object with the given identifier in the content directly under this content.
- Parameters:
aIdentifier (str) – the identifier (not uid) of the object to find
- Returns:
A
SBSObjectif found, None otherwise
- getObjectFromUID(aUID, aRecursive=True)
Parse the Groups, Graphs, Resources and Functions to find the object with the given uid
- Parameters:
aUID (str) – The UID of the object (group, graph, resource or function) to look for
aRecursive (boolean, optional) – True to search recursively in all groups, False to search only in the direct content. Default to True
- Returns:
The
SBSObjectif found, None otherwise
- getObjectInternalPath(aUID, aObjectClass=None, aPath='')
Get the path of the given object relatively to the current content. Only objects that are directly under a Content node can be found:
SBSGroupSBSGraphSBSResourceSBSFunction- Parameters:
aUID (str) – the UID of the object to search
aObjectClass (class, optional) – the class of the object to search. If None, the function will look into all the kind of content
- Returns:
A string containing the relative path from the current content to the given object if found, None otherwise
- getSBSFunction(aFunctionIdentifier, aRecursive=True)
Get the Function object with the given identifier
- Parameters:
aFunctionIdentifier (str) – the identifier (not uid) of the function to find
aRecursive (bool) – True to parse sub folders, False to search only inside the current Content
- Returns:
A
SBSFunctionobject
- getSBSFunctionList(aRecursive=True)
Get the list of functions defined in this content, including sub-folders or not.
- Parameters:
aRecursive (bool) – True to parse sub folders, False to search only inside the current Content
- Returns:
A list of
SBSFunctionobjects
- getSBSGraph(aGraphIdentifier, aRecursive=True)
Get the Graph object with the given identifier
- Parameters:
aGraphIdentifier (str) – the identifier (not uid) of the graph to find
aRecursive (bool) – True to parse sub folders, False to search only inside the current Content
- Returns:
A
SBSGraphobject
- getSBSGraphList(aRecursive=True)
Get the list of graphs defined in this content, including sub-folders or not.
- Returns:
A list of
SBSGraphobjects
- getSBSGroup(aGroupIdentifier, aRecursive=True)
Get the Group object with the given identifier
- Parameters:
aGroupIdentifier (str) – the identifier (not uid) of the group to find
aRecursive (bool) – True to parse sub folders, False to search only inside the current Content
- Returns:
A
SBSGroupobject
- getSBSGroupInternalPath(aGroupIdentifier, aPath='')
Get the path of the given group relatively to the current content
- Returns:
A string containing the relative path from the current content to the given group, None otherwise
- getSBSGroupList(aRecursive=True)
Get the list of groups defined in this content, including sub-folders or not.
- Returns:
A list of
SBSGroupobjects
- getSBSResource(self, aResourceIdentifier, aRecursive=True)
Get the Resource object with the given identifier
- Parameters:
aResourceIdentifier (str) – the identifier (not uid) of the resource to find
aRecursive (bool) – True to parse sub folders, False to search only inside the current Content
- Returns:
A
SBSResourceobject
- getSBSResourceList(aRecursive=True, aIncludeSceneResources=True)
Get the list of the resources defined in this content, including sub-folders or not.
- Parameters:
aRecursive (bool, optional) – True to parse sub folders, False to search only inside the current Group. Default to True
aIncludeSceneResources (bool, optional) – True to include the Scene/Mesh resources. Default to True
- Returns:
A list of
SBSResourceobjects
- getUidIsUsed(aUID)
Parse the Groups, Graphs, Resources and Functions to find a SBSObject with the given uid
- Returns:
True if a compnode has this uid
- static isContentChildType(aObject)
Check if the type of given object is one of the types accepted under a SBSContent object
- Parameters:
aObject – The object to check
- Returns:
True if the type of the given object can be included in a SBSContent
- parse(aContext, aDirAbsPath, aSBSParser, aXmlNode)
Parse recursively the given xml node to retrieve the content of the SBSObject.
- class substance.content.SBSGroup(aIdentifier='', aUID='', aDesc=None, aContent=None)
Bases:
SBSObjectClass that contains information on a group node as defined in a .sbs file. A group correspond to a folder in Substance Designer, and is a hierarchical group of elements.
- Members:
mIdentifier (str): identifier of the group used in the paths that refer to its sub-objects.
mUID (str): unique identifier of this group in the package/ context.
mDesc (str, optional): textual description.
mContent (
SBSContent, optional): children of the group.
- equals(other)
Check if this SBSObject is equivalent to the other SBSObject. Some members may be excluded from this check, the UIDs or GUILayout for instance.
- getContent()
Get the content included in this group
- Returns:
The content as a
SBSContentobject
- getDescription()
Get the group description
- Returns:
The textual description of the group
- getMDLGraphList()
Get the list of all MDL graphs identifiers included in this group Warning: MDLGraph is not supported in SAT >= 16.0, only the identifiers are returned
- Parameters:
aRecursive (bool, optional) – True to parse sub folders, False to search only inside the current Group. Default to False
- Returns:
A list of strings
- getModelGraph(aGraphIdentifier)
Get the Model Graph object with the given identifier
- Parameters:
aGraphIdentifier (str) – Identifier of the graph to get
- Returns:
A
ModuleGraphobject
- getModelGraphList()
Get the list of all Model graphs included in this group
- Parameters:
aRecursive (bool, optional) – True to parse sub folders, False to search only inside the current Group. Default to False
- Returns:
A list of
ModuleGraphobject
- getSBSFunction(aFunctionIdentifier)
Get the Function object with the given identifier
- Parameters:
aFunctionIdentifier (str) – Identifier of the function to get
- Returns:
A
SBSFunctionobject
- getSBSFunctionList()
Get the list of all functions included in this group
- Parameters:
aRecursive (bool, optional) – True to parse sub folders, False to search only inside the current Group. Default to False
- Returns:
A list of
SBSFunctionobject
- getSBSGraph(aGraphIdentifier)
Get the Substance graph object with the given identifier
- Parameters:
aGraphIdentifier (str) – Identifier of the graph to get
- Returns:
A
SBSGraphobject
- getSBSGraphList()
Get the list of all Substance graphs included in this group
- Parameters:
aRecursive (bool, optional) – True to parse sub folders, False to search only inside the current Group. Default to False
- Returns:
A list of
SBSGraphobject
- getSBSGroup(aGroupIdentifier)
Get the Group object with the given identifier
- Parameters:
aGroupIdentifier (str) – Identifier of the group (=folder) to get
- Returns:
A
SBSGroupobject
- getSBSGroupList()
Get the list of all groups included in this group
- Parameters:
aRecursive (bool, optional) – True to parse sub folders, False to search only inside the current Group. Default to False
- Returns:
A list of
SBSGroupobject
- getSBSResource(self, aResourceIdentifier)
Get the Resource object with the given identifier
- Parameters:
aResourceIdentifier (str) – Identifier of the resource to get
- Returns:
A
SBSResourceobject
- getSBSResourceList(aRecursive=False, aIncludeSceneResources=True)
Get the list of all the resources included in this group.
- Parameters:
aRecursive (bool, optional) – True to parse sub folders, False to search only inside the current Group. Default to False
aIncludeSceneResources (bool, optional) – True to include the Scene/Mesh resources. Default to True
- Returns:
A list of
SBSResourceobjects
- getUidIsUsed(aUID)
Check if the given uid is already used in the context of this SBSObject.
- Parameters:
aUID (str) – UID to check
- Returns:
True if the uid is already used, False otherwise
- Raise:
AttributeError if the function getUidIsUsed in not properly overloaded on this SBSObject
- parse(aContext, aDirAbsPath, aSBSParser, aXmlNode)
Parse recursively the given xml node to retrieve the content of the SBSObject.
- setDescription(aDescription)
Set the given description
- Parameters:
aDescription (str) – the textual group description