User Guide Cancel

sbsimpactmanager | 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

sbsimpactmanager

class sbsimpactmanager.DependencyStatus(absolute_file_path='', relative_file_path='')

Bases: object

Class that contains information of the dependency

Members:
  • absolute_file_path (str, optional): absolute file path of the dependency
  • relative_file_path (str, optional): relative file path of the dependency
  • file_readable (bool): is file readable
  • file_exist (bool): is file exist
file_exist
file_readable
class sbsimpactmanager.SBSImpactManager(aContext=None)

Bases: object

Class used to provide useful functions to propagate changes done a Substance on all the Substances within a particular tree

confirm(promptMsg=None, defaultResponse=False)

Prompts for yes or no response from the user.

Parameters:
  • promptMsg (str, optional) – The message to prompt to the user. If None, ‘Confirm’ will be prompted
  • defaultResponse (bool, optional) – The default return value, returned when used simply press ENTER. Default to False
Returns:

True for yes and False for no.

declareSBSMoved(self, aContext, oldPath, newPath, withinTree, interactiveMode = True, stopOnException = True)

Allows to declare the fact a substance has been move from the oldPath to the newPath.

This will update all the Substance files (.sbs) in the given tree that had a dependency on the Substance that had been moved.

Parameters:
  • aContext (Context) – The current execution context (allows to provide aliases)
  • oldPath (str) – The old absolute path of the Substance (can be .sbs or .sbsar file)
  • newPath (str) – The new absolute path of the Substance (can be .sbs or .sbsar file)
  • withinTree (str) – The tree where to find the Substances to update
  • interactiveMode (bool, optional) – Run the process in an interactive mode, requiring user confirmation at each step. Default to True
  • stopOnException (bool, optional) – Allows to stop the propagation process when an exception occurs. Default to True
Returns:

the list of updated Substance paths

getAllSubstancesInTree(rootPath, excludeAutosave=True, excludeFolders=None)

Get all the Substance files (.sbs) within a particular tree

Parameters:
  • rootPath (str) – The root path of the tree to explore on the file system
  • excludeAutosave (bool, optional) – True to exclude the Substances included in a .autosave folder. Default to True
  • excludeFolders (list of string, optional) – A list of folder names to exclude in the Substance search
Returns:

the Substance files as a list of absolute paths

getAllSubstancesWithDependencyOn(self, aContext, substancePath, withinTree, stopOnException = True)

Get all the Substances (.sbs) that have a dependency on the given Substance (.sbs or .sbsar), within the given tree.

Parameters:
  • aContext (Context) – The current execution context (allows to provide aliases)
  • substancePath (str) – The path of the Substance to look for (can be .sbs or .sbsar file)
  • withinTree (str) – The tree where to find the referencing Substances
  • stopOnException (bool, optional) – Allows to stop the exploring process when an exception occurs. Default to True
Returns:

the list of referencing Substances as SBSDocument objects

getErrorPackages()

Allows to get the list of packages that raised error during the last impact propagation

Returns: The list of packages path in error as a list string
getSBSTreeDependencies(aSubstancePath, escapeDefaultSbs=False, checkMissingFile=False, escapeMismatchVersion=False)

Return a tree under a dict form of all aSubstancePath’s dependencies recursively. The tree schema

{"/a/sbs/file.sbs": 
    {<impactmanager.'DependencyStatus' (/a/dep/file.sbs)>: 
        [{<impactmanager.'DependencyStatus' (/another/dep/file.sbs)>: 
                [] 
        }] 
    } 
}

Each key is a DependencyStatus and value a list of dependencies dict DependencyStatus The result tree is also store in self.dependenciesTree member

Parameters:
  • aSubstancePath (str) – an existing substance file path that will be the root path
  • escapeDefaultSbs (bool) – if True, all the default installation sbs packages (aliased by sbs://) will be ignored
  • checkMissingFile (bool) – for each dependency the existing of the file will be checked, if it doesn’t exist it will append to self.missingFiles
  • escapeMismatchVersion (bool) – if True the error SBSIncompatibleVersionError will be catch and the process will continue. The mismatched file will append to self.mismatchVersionFiles
Returns:

dict

getSBSTreeDependenciesForAllSubstanceInTree(aRootPath, excludeFolders=None, escapeDefaultSbs=False, checkMissingFile=False, escapeMismatchVersion=False)

For all sbs files found in the aRootPath’s tree, getSBSTreeDependencies will be run.

Parameters:
  • aRootPath (str) – A path directory, the root of the tree folders.
  • excludeFolders (list) – A list of path to exclude of the search
  • escapeDefaultSbs (bool) – if True, all the default installation sbs package (aliased by sbs://) will be ignored
  • checkMissingFile (bool) – for each dependency the existing of the file will be checked, if it doesn’t exist it will append to self.missingFiles
  • escapeMismatchVersion (bool) – if True the error SBSIncompatibleVersionError will be catch and the process will continue. The mismatched file will append to self.mismatchVersionFiles
Returns:

list

getUpdatedPackages()

Allows to get the list of packages updated with the last impact propagation

Returns: The list of packages path as a list string
reset()

Reset the exporter to its initial state

sbsimpactmanager.imRawInput(s)

Function used to specify the input used by the interactive mode of SBSImpactManager. By default it uses the Python standard input, but it can be redefined to mock the standard input.

Get help faster and easier

New user?