User Guide Cancel

content | Substance 3D Automation ToolKit

  1. Substance 3D home
  2. Home
  3. Command Line Tools
    1. Command Line overview
    2. sbsbaker
      1. sbsbaker overview
      2. sbsbaker command line options
      3. sbsbaker Example Command Lines
    3. sbscooker
      1. sbscooker overview
      2. sbscooker command line options
      3. sbscooker pattern variables
    4. sbsmtools
      1. sbsmtools overview
      2. sbsmtools command line options
    5. sbsmutator
      1. sbsmutator overview
      2. sbsmutator command line options
      3. sbsmutator Example Command Lines
    6. sbsrender
      1. sbsrender overview
      2. sbsrender base parameters and pattern variables
      3. sbsrender command line options
      4. sbsrender example command lines
    7. sbsupdater
      1. sbsupdater overview
      2. sbsupdater command line options
  4. Pysbs - Python API
    1. Pysbs - Python API overview
    2. Getting started
    3. General topics
      1. Basic manipulation
      2. Substance creation
      3. Substances modification
      4. Dependencies management
      5. PySbs batchtools module
      6. metadata manipulation
      7. SAT demos
      8. Edit sbsar with SBSARManager
      9. Spot Colors
      10. Thumbnail creation with SAT
    4. Examples
      1. demohelloworld
      2. demos
      3. demos_batchtools
      4. script_update_with_sbsupdater
    5. API Content
      1. API Content overview
      2. Substance definitions
        1. Common interfaces
          1. basegraph
          2. package
          3. sbsarobject
          4. sbsobject
        2. compnode
          1. compnode overview
          2. common
          3. compimplementation
          4. paramgraph
        3. context projectmgr
        4. graph
          1. graph overview
          2. function
          3. inputparameters
          4. output
        5. mdl
          1. mdlannotation
          2. mdlcommon
          3. mdldictionaries
          4. mdlenum
          5. mdlgraph
          6. mdllibclasses
          7. mdlmanager
          8. mdlnode
          9. mdlnodeimpl
          10. mdloperand
          11. mdlsbsbridge
        6. modelgraphindex
          1. modelannotationnames
          2. modelgraph
          3. modelgraphgenerator
          4. modelgraphimplementation
          5. modelnodenames
          6. modeloperand
          7. modulegraphindex
          8. moduleannotation
          9. moduleconnection
          10. modulegraph
          11. modulegraphgenerator
          12. modulegraphimplementation
          13. modulegraphlibrary
          14. modulegraphregister
          15. modulenode
          16. modulenodeimplementation
          17. modulenodeinstance
          18. moduleoperand
          19. moduleoutputbridging
          20. moduleparaminput
        7. params
          1. params overview
          2. dynamicvalue
          3. paramnode
        8. projectmgrdoc
        9. sbsarchive
          1. sbsarchive overview
          2. sbsarenum
          3. sbsargraph
          4. sbsargui
          5. sbsarguiwidgets
          6. sbsarmanager
        10. sbscommon
          1. connections
          2. gui
          3. nodes
          4. values
        11. sbspreset
        12. sbsproject
        13. substance
          1. substance overview
          2. content
          3. resource
      3. Libraries
        1. sbsenum
        2. sbslibrary
          1. sbslibrary overview
          2. sbsdictionaries
          3. sbsfilters
          4. sbsfunctions
          5. sbsfxmapnodes
          6. sbslibclasses
          7. sbswidgets
        3. sbsbakerslibrary
          1. sbsbakerslibrary overview
          2. sbsbakersdef
          3. sbsbakersdefaultprops
          4. sbsbakersdictionaries
          5. sbsbakersenum
          6. sbsbakingconverter
          7. sbsbakingconverterparam
          8. sbsbakingparameters
          9. sbsdialogstate
          10. sbsscenedata
        4. Helpers
          1. sbscleaner
          2. sbsexporter
          3. sbsgenerator
          4. sbsparser
          5. sbswriter
          6. qtclasses
            1. qtclasses overview
            2. qtvariantreader
            3. qtvariantwriter
          7. psdparser
          8. sbsimpactmanager
          9. batchtools
          10. autograph
            1. ag_functions
            2. ag_layout
            3. ag_types
          11. info_mesh_parser
          12. sbsbaker_info_handlers
          13. sbsrender_render_handlers
          14. output_handlers
          15. spotcolorinfo_handler
          16. thumbnail
          17. batchtools overview
        5. Execution context
          1. context
          2. functions
        6. API Change log
  5. Samples
    1. Samples overview
    2. Texturing Template Demo
    3. Batch Tools Demo
    4. Variations
    5. Texture Mat
    6. Pixel Processor Ray tracer
  6. Setup and Getting Started
    1. Setup and Getting Started overview
    2. Compatibility
    3. Frequently asked Questions
    4. Known issues
    5. SAT Cookbook
    6. Use Pysbs in different python interpreter (maya, sd, blender...)
  7. Integrations
    1. Substance Maya toolset
      1. Substance Maya Toolset overview
      2. Installing
      3. Launching
      4. Baking
        1. Baking overview
        2. Export parameters
        3. Baker parameters
        4. Mesh setup
        5. Using a template
      5. Changelog
  8. Changelog overview

content

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: pysbs.common_interfaces.sbsobject.SBSObject

Class 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 content
  • mGroups (list of SBSGroup): Folders in this content
  • mResources (list of SBSResource): Resources in this content
  • mResourcesScene (list of SBSResourceScene): Scene resources in this content
  • mFunctions (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.

Parameters:other (SBSObject) – The SBSObject to compare to
Returns:True if the two SBSObject are similar according to their definition.
 getMDLGraph(aGraphIdentifier, aRecursive = True)  

Get the MDL 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 MDLGraph object

 getMDLGraphList(aRecursive = True)  

Get the list of MDL graphs defined in this content, including sub-folders or not.

Returns:A list of MDLGraph objects
 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 ModuleGraph object

 getModelGraphList(aRecursive=True)  

getMDLGraphList(aRecursive = True) Get the list of MDL graphs defined in this content, including sub-folders or not.

Returns:A list of MDLGraph objects
 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 SBSObject if 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 SBSObject if 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: SBSGroup SBSGraph MDLGraph SBSResource SBSFunction

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 SBSFunction object

 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 SBSFunction objects
 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 SBSGraph object

 getSBSGraphList(aRecursive = True)  

Get the list of graphs defined in this content, including sub-folders or not.

Returns:A list of SBSGraph objects
 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 SBSGroup object

 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 SBSGroup objects
 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 SBSResource object

 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 SBSResource objects

 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.

Parameters:
  • aContext (Context) – execution context
  • aDirAbsPath (str) – the absolute directory containing the current parsed package (.sbs file)
  • aSBSParser (SBSParser) – the substance parser
  • aXmlNode (xml.etree.ElementTree) – the xml node to parse
 removeObject(aObject)  

Remove the given object from this content

Parameters:aObject (SBSObject or UID) – The object (group, graph, function, resource) to remove from this content, as a SBSObject or given its UID
Returns:True if success
 write(aSBSWriter, aXmlNode)  

Write recursively the content of the SBSObject into the given xml node.

Parameters:
  • aSBSWriter (SBSWriter) – the substance writer
  • aXmlNode (xml.etree.ElementTree) – the xml node to fill
 class substance.content.SBSGroup(aIdentifier='', aUID='', aDesc=None, aContent=None)  

Bases: pysbs.common_interfaces.sbsobject.SBSObject

Class 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.

Parameters:other (SBSObject) – The SBSObject to compare to
Returns:True if the two SBSObject are similar according to their definition.
 getContent()  

Get the content included in this group

Returns:The content as a SBSContent object
 getDescription()  

Get the group description

Returns:The textual description of the group
 getMDLGraph(aGraphIdentifier)  

Get the MDL Graph object with the given identifier

Parameters:aGraphIdentifier (str) – Identifier of the graph to get
Returns:A MDLGraph object
 getMDLGraphList()  

Get the list of all MDL 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 SBSGraph object
 getModelGraph(aGraphIdentifier)  

Get the MDL Graph object with the given identifier

Parameters:aGraphIdentifier (str) – Identifier of the graph to get
Returns:A MDLGraph object
 getModelGraphList(aRecursive=False)  

getMDLGraphList() Get the list of all MDL 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 SBSGraph object
 getSBSFunction(aFunctionIdentifier)  

Get the Function object with the given identifier

Parameters:aFunctionIdentifier (str) – Identifier of the function to get
Returns:A SBSFunction object
 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 SBSFunction object
 getSBSGraph(aGraphIdentifier)  

Get the Substance graph object with the given identifier

Parameters:aGraphIdentifier (str) – Identifier of the graph to get
Returns:A SBSGraph object
 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 SBSGraph object
 getSBSGroup(aGroupIdentifier)  

Get the Group object with the given identifier

Parameters:aGroupIdentifier (str) – Identifier of the group (=folder) to get
Returns:A SBSGroup object
 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 SBSGroup object
 getSBSResource(self, aResourceIdentifier)  

Get the Resource object with the given identifier

Parameters:aResourceIdentifier (str) – Identifier of the resource to get
Returns:A SBSResource object
 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 SBSResource objects

 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.

Parameters:
  • aContext (Context) – execution context
  • aDirAbsPath (str) – the absolute directory containing the current parsed package (.sbs file)
  • aSBSParser (SBSParser) – the substance parser
  • aXmlNode (xml.etree.ElementTree) – the xml node to parse
 setDescription(aDescription)  

Set the given description

Parameters:aDescription (str) – the textual group description
 write(aSBSWriter, aXmlNode)  

Write recursively the content of the SBSObject into the given xml node.

Parameters:
  • aSBSWriter (SBSWriter) – the substance writer
  • aXmlNode (xml.etree.ElementTree) – the xml node to fill

Get help faster and easier

New user?