User Guide Cancel

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

sbsarchive

Content included in sbsarchive module:

Module sbsarchive aims to define SBSARObjects that are relative to a sbsar package, mostly SBSArchive and SBSARGlobalVar.

 class sbsarchive.sbsarchive.SBSARGlobalVar(aInputs=None)  

Bases: pysbs.common_interfaces.sbsarobject.SBSARObject

Class that contains information on a graph input as defined in a .sbsar file

Members:
  • mInputs (list of SBSARInput): List of global variables used by the substance.
 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
 class sbsarchive.sbsarchive.SBSArchive(aContext, aFileAbsPath, aFormatVersion='', aCookerBuild='', aAsmUID='', aContent='', aGlobalVar=None, aGraphs=None, aMetaDataTree=None)  

Bases: pysbs.common_interfaces.sbsarobject.SBSARObject, pysbs.common_interfaces.package.Package, sbsarchive.sbsarmetadata.SBSARMetaDataObject

Class used to get information on a .sbsar file. It contains the full description of a substance archive, which correspond to the root node of the .sbsar file.

Members:
  • mFormatVersion (str): version of the format
  • mCookerBuild (str): build number of the Cooker
  • mAsmUID (str): unique identifier of the .sbsasm file
  • mContent (str): content type. Default to ‘full’
  • mGlobalVar (SBSARGlobalVar): global variables used in the substance
  • mGraphs (list of SBSARGraph): list of graphs
  • mContext (Context): Execution context, with alias definition
  • mFileAbsPath (str): Absolute path of the package
  • mDirAbsPath (str): Absolute directory of the package
 buildAbsPathFromRelToMePath(aRelPathFromPackage)  

Build a path starting from the current package absolute directory and complete it with the given relative path

Parameters:aRelPathFromPackage (str) – The relative path from the current package
Returns:The complete path, as a string
 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
 createMetaDataStr(aName, aValue)  
 createMetaDataUrl(aName, aResource)  
 deleteMetaData(aName)  
 enterSBSARManager()  
 extractSbsarMetaDataJson(aDestFolderPath, aNameToFind='metadata.json')  

Extract the metadata json file in the destFolderPath

Parameters:
  • sDestFolderPath – a directory path
  • aNameToFind (str) – json file name present in sbsar, by default it’s metadata.json
Returns:

a complete file path

 extractSbsarMetaDataPack(aDestFolderPath)  

Extract all metadata resource files present in the sbsar.

Parameters:aDestFolderPath (str) – a directory path
Returns:a complete file path
 extractSbsarMetaDataResource(aDestFolderPath, aSbsarResourcePath)  

Extract a resource file present in the sbsar. The sbsar resource path is the sbsar relative path to the resource file.

Parameters:
  • aDestFolderPath (str) – a directory path
  • aSbsarResourcePath (str) – sbsar relative path to the resource file, ex: “resources/1/untitled.blend”
Returns:

a complete file path

 generateThumbnail(aGraphIdentifier=None, replaceIfExists=False, saveArchiveAs=None)  

Generate a 512x512 icon and embeds it to the substance archive. Be sure to write the substance doc with doc.writeDoc() if you do some modifications on it. Use pysbs.batchtools so be sure to have setup correctly your system paths. The thumbnail generation is based on Usage output, if the graph has not the right Usages the thumbnail result can be unexpected.

Parameters:
  • aGraphIdentifier – the identifier of the graph to be thumbnail rendered, if None thumbnail will be generated for all the graph
  • replaceIfExists – if a thumbnail already exits for this graph it will be replaced
  • saveArchiveAs – save a sbsar copy, if None the current sbsar will be saved
  • saveThumbnailAs – give a correct directory path to save the thumbnail somewhere otherwise thumbnail file will be deleted
  • kwargs – arguments to pass to the batchtools.thumbnail.generate, quiet, aSize, aThumbnailSize…
 getAllMetaData()  

Get all MetaData under dictionary form.

Returns:dict
 getFirstSBSGraph()  

getSBSGraph(aGraphIdentifier) Get the first Graph object

Parameters:aGraphIdentifier (str) – Identifier of the graph to get
Returns:A Graph object, a string containing its pkg relative path
 getMetaData(aName)  

Get a MetaData by its name

Parameters:aName (str) –
Returns:SBSMetaDataTreeUrl or SBSMetaDataTreeStr
 getObjectFromInternalPath(aPath)  

Get the object pointed by the given path, which must reference the current package.

Parameters:aPath (str) – the relative path, starting with ‘pkg:///’
Returns:the pointed SBSARObject if found, None otherwise
 getSBSGraph(aGraphIdentifier)  

Get the SBSARGraph object with the given identifier.

Parameters:aGraphIdentifier (str) – Identifier of the graph to get
Returns:A SBSARGraph object
 getSBSGraphFromPkgUrl(aPkgUrl)  

Get the SBSARGraph object with the given package URL.

Parameters:aPkgUrl (str) – The graph Url relatively to the package, in the format ‘pkg:///MyGraph’
Returns:A SBSARGraph object
 getSBSGraphList()  

Get the list of all graphs defined in the .sbsar file

Returns:A list of SBSARGraph object
 getSBSGraphPkgUrl(aGraph)  

Get the path of the given graph relatively to the current package (pkg:///…/aGraphIdentifier)

Parameters:aGraph (A SBSGraph object) – Identifier of the graph to get
Returns:A string containing the relative path from the root content to the given graph, None otherwise
 getSBSMetaDataTree()  

Get the SBSMetaDataTree structure.

Returns:class .SBSMetaDataTree
 static isAPackage(aFilePath)  

Check if the given filename is a .sbs file or .sbsar file.

Parameters:aFilePath (str) – Path of the package
Returns:True if the given path ends with .sbs or .sbsar, False otherwise
 static isAnArchive(aFilePath)  

Check if the given filename is a .sbsar package or a .sbs package

Parameters:aFilePath (str) – Path of the package
Returns:True if the given path refers to an archive (.sbsar), False otherwise
 isInitialized()  

Check if the package is correctly initialized (parsed or well setup for future usage)

Returns:True if the package is initialized, False otherwise
 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
 parseDoc(aResolveDependencies = True)  

Parse the SBS File content

Returns:True if succeed
 static removePackageExtension(aFilePath)  

Remove the package extension to the given path (.sbs or .sbsar)

Parameters:aFilePath (str) – Path of the package
Returns:The same path without the package extension
 setIcon(aIconAbsPath)  

Set the given image as the icon of the graph. The provided image won’t be re-sized to get a thumbnail, so we strongly recommend that you provide the path to a 128x128 image.

Parameters:
  • aIconAbsPath (str) – The absolute path of the image to set
  • aGraphIdentifier (str) – the graph identifier to add the icon
Returns:

True if succeed False otherwise

 setInitialized()  

Set the package as initialized

 setMetaDataName(aMetadata, aName)  
 setMetaDataValue(aMetadata, aValue)  

Get help faster and easier

New user?