User Guide Cancel

modulegraph | 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. Release notes
    1. Version 11.3.0
    2. Version 11.2.0
    3. Version 11.1.0

modulegraph

Module modulegraph aims to define SBSObjects that are relative to a module graph, mostly ModuleGraph.

 class modulegraph.modulegraph.ModuleGraph(aIdentifier='', aUID='', aParamInputs=None, aNodes=None, aRoot='0', aGraphImplementation=None, aAnnotations=None, aMetaDataTree=None, aGraphDefinitionId='', aGraphImplementationValue='', aRegister=None)  

Bases: pysbs.common_interfaces.basegraph.BaseGraph, pysbs.common_interfaces.metadata.SBSMetaDataTree

Class that contains information on a Module graph as defined in a .sbs file

Members:
  • mIdentifier (str): name of the graph (name of the definition and the instance if applicable).
  • mUID (str): unique identifier in the package/ context.
  • mParamInputs (list of ModuleGraphInput): list of exposed parameters of the graph.
  • mNodes (list of ModuleGraphNode): the list of Module node of the graph.
  • mRoot (str, optional): UID of the root node of the graph (the output)
  • mGraphImplementation (ModuleGraphImplementation): Module Graph Implementation
 addGraphAnnotation(aKey: str, aValue) → pysbs.modulegraph.moduleannotation.ModuleAnnotation  

Create an Annotation object and add it to the given graph Annotation handle graph information attributes like description, author, tags…

Parameters:
  • aGraph (ModuleGraph) – the graph where the node will be created
  • aKey (str) – the key word, title, path of the annotation, can be ‘description’, ‘author’ …
  • aValue (str) – the string value of the annotation
Returns:

annotation obj

Return type:

ModuleAnnotation

 connectNodes(aNodeLeft: pysbs.modulegraph.modulenode.ModuleNode, aNodeRight: pysbs.modulegraph.modulenode.ModuleNode, aOutputIdentifer: str = None, aInputIdentifer: str = None) → pysbs.modulegraph.moduleconnection.ModuleConnection  

Connect two nodes by their outputs to inputs, in model graph all inputs are operands. If output and input identifier are not set first of each will be used. Currently there is no type check during the connection, so as long as the output and input exists the connection will be done but could be not valid for the evaluation.

Parameters:
  • aNodeLeft (ModuleNode) – the left node
  • aNodeRight (ModuleNode) – the right node, which received connection
  • aOutputIdentifer (str) – the output pin’s identifier, in the case where the left node has several output
  • aInputIdentifer (str) – the input pin’s identifier, in the case where the right node has several input
Returns:

the connection object

Return type:

ModuleConnection

 createNode(aGraph: modulegraph.ModuleGraph, aNodeId: str, aPos=(0, 0, 0))  

Top def to create an atomic node (not an instance) by given a node id createNode(aModelgraph, “Structure::NodeBool”)

Parameters:
  • aNodeId – the path id of the node
  • aPos – a x, y, z position value
Returns:

ModuleNode

 exposeNode(aNode: pysbs.modulegraph.modulenode.ModuleNode, aIdentifier: str, aDescription: str = '', aInGroup: str = '', aDisplayName: str = '', aGammaType: str = '', aGraphDefinitionId: str = None, aSoftRange=None, aHardRange=None) → pysbs.modulegraph.moduleparaminput.ModuleParamInput  

Expose as a graph input parameter a constant node

Parameters:
  • aGraph (ModuleGraph) – the graph where the input parameter will be created
  • aNode (ModuleNode) – the constant node to exposed as graph input
  • aIdentifier (str) – the identifier of the graph input parameter
  • aDescription (str) – Graph input description
  • aInGroup (str) – Graph input group
  • aDisplayName (str) – Graph input display name
  • aGammaType (str) – Graph input gamma type
  • aSoftRange (list) – a soft range for the graph parameter
  • aHardRange (list) – a hard range for the graph parameter
Returns:

ModuleParamInput

 classmethod fromJson(aJsonData)  

Classmethod to build a SBSMetaDataTree from the old json file. Here to support old package without xmp

Parameters:aJsonData – a json dict
Returns:SBSMetaDataTree
 classmethod fromXmpIter(aMetaDataIter)  

Classmethod to build a SBSMetaDataTree from a xmp SBSMetaDataIter

Parameters:aMetaDataIter – a xmp SBSMetaDataIter
Returns:SBSMetaDataTree
 getAllInputGroups()  

Get the list of all groups used for the inputs of the graph.

Returns:a list of groups as strings
 getAllInputs()  

Get the list of all inputs (images and parameters) defined on this graph

Returns:a list of inputs as ParamInput
 getAllInputsInGroup(aGroup)  

Get the list of all inputs (images and parameters) contained in the given group.

If aGroup is None, returns all the parameters that are not included in a group.

Parameters:aGroup (SBSARGuiGroup or str) – The group of parameter to consider, given a SBSARGuiGroup object or a Group identifier
Returns:a list of inputs
 getAttribute(aAttributeIdentifier)  

Get the given attribute value

Parameters:aAttributeIdentifier (AttributesEnum) – the attribute identifier
Returns:the attribute value if defined, None otherwise
 getIdentifier()  

getIdentifer()

Returns:str identifier
 getInput(aInputIdentifier)  

Get the ParamInput with the given identifier, among the input images and parameters

Parameters:aInputIdentifier (str) – input parameter identifier
Returns:the corresponding ParamInput object if found, None otherwise
 getInputFromUID(aInputUID)  

Get the ParamInput with the given UID, among the input images and parameters

Parameters:aInputUID (str) – input parameter UID
Returns:the corresponding ParamInput object if found, None otherwise
 getInputImage(aInputImageIdentifier)  

Get the image input with the given identifier

Parameters:aInputImageIdentifier (str) – input image identifier
Returns:a ParamInput if found, None otherwise
 getInputImageWithUsage(aUsage)  

Get the first image input which has the given usage defined

Parameters:aUsage (UsageEnum or str) – usage to look for
Returns:a ParamInput if found, None otherwise
 getInputImages()  

Get the list of image inputs

Returns:a list of image inputs as ParamInput
 getInputParameter(aInputParamIdentifier)  

Get the input parameter with the given identifier

Parameters:aInputParamIdentifier (str) – input parameter identifier
Returns:the corresponding ParamInput object if found, None otherwise
 getInputParameterFromUID(aInputParamUID)  

Get the input parameter with the given UID

Parameters:aInputParamUID (str) – input parameter UID
Returns:the corresponding ParamInput object if found, None otherwise
 getInputParameters()  

Get the list of input parameters (not image)

Returns:a list of ParamInput
 getNode(aNode)  

Search for the given compositing node in the node list

Parameters:aNode (ModuleNode or str) – node to get, identified by its uid or as a MDLNode
Returns:A ModuleNode object if found, None otherwise
 getNodeByPath(aPath)  

Search for the given compositing node in the node list

Parameters:aPath (str) – node’s ID path ex ‘Structure::NodeVector3Lerp’
Returns:A ModuleNode object if found, None otherwise
 getNodeList(aNodesList = None)  

Get all the compositing nodes of this graph, or look for the given nodes if aNodesList is not None

Parameters:aNodesList (list of str or list of SBSCompNode, optional) – list of node to look for, might be identifiers or .SBSNode
Returns:a list of ModuleNode included in the graph
 getUidIsUsed(aUID)  

Check if the given uid is already used in the context of the graph

Parameters:aUID (str) – UID to check
Returns:True if the uid is already used, False otherwise
 parse(aContext, aDirAbsPath, aSBSParser, aXmlNode)  
 setNodeAsRoot(aNode) → bool  

Set this node as root node, the “last” node that will be used as root during the evaluation

Parameters:aNode (ModuleNode or str) – the node or the identifier of this node that will be root
 write(aSBSWriter, aXmlNode)  

 Adobe

Get help faster and easier

New user?

Adobe MAX 2024

Adobe MAX
The Creativity Conference

Oct 14–16 Miami Beach and online

Adobe MAX

The Creativity Conference

Oct 14–16 Miami Beach and online

Adobe MAX 2024

Adobe MAX
The Creativity Conference

Oct 14–16 Miami Beach and online

Adobe MAX

The Creativity Conference

Oct 14–16 Miami Beach and online