User Guide Cancel

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

compimplementation

Module compimplementation provides the definition of the class SBSCompImplementation and all the possible implementation:

 class compnode.compimplementation.SBSCompFilter(aFilter='', aParameters=None, aParamArrays=None, aParamGraphs=None)  

Bases: compnode.common.SBSCompImplWithParams

Class that contains information on a compositing node filter as defined in a .sbs file

Members:
  • mFilter (str): filter type, among the identifiers available for Filter definition (sbsfilters)
  • mParameters (list of SBSParameter): filter parameters list (filters parameters, authoring parameters, resources paths, etc.).
  • mParamArrays (list of SBSParamsArray, optional): parameters arrays, e.g. used for gradient data.
  • mParamGraphs (list of SBSParamsGraph, optional): parameters set graphs, e.g. used for FX-Map parametrization.
 changeDependencyUID(newDepUID)  

In case of a filter Bitmap or SVG, change the UID of the dependency referenced by the resource.

Parameters:newDepUID (str) – The new dependency UID
 changeResourcePath(newPath)  

In case of a filter Bitmap or SVG, change the referenced resource path.

Parameters:newPath (str) – The new resource path
 classify(aOther, aParentContainer = None)  

Compare the identifiers of the two filters to classify them.

Parameters:
  • aOther (SBSCompFilter) – The filter to compare to.
  • aParentContainer (SBSGraph, optional) – The graph containing the nodes to classify
Returns:

1 if itself is considered greater than the other node, -1 for the opposite. 0 in case of equality.

 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.
 getDefinition()  

Get the filter definition (Inputs, Outputs, Parameters)

Returns:a CompNodeDef object
 getDisplayName()  

Get the display name of this node

Returns:the display name as a string
 getParameterValue(aParameter)  

Find a parameter with the given name/id among the overloaded parameters and the default node parameters, and return its value.

Parameters:aParameter (CompNodeParamEnum or str) – Parameter identifier
Returns:The parameter value if found (string or SBSDynamicValue, None otherwise
 getResourcePath()  

If this node is a Bitmap or SVG, get the path to the resource used by this node

Returns:The path relative to the package used by this node if possible, None otherwise
 getUidIsUsed(aUID)  

Check if the given uid is already used in the context of the comp filter

return: True if the uid is already used, False otherwise

 hasIdenticalParameters(self, other)  

Allows to check if two nodes has the same parameters defined with the same values.

Parameters:other (SBSCompImplWithParams) – the node to compare with
Returns:True if the two nodes has the same parameters, False otherwise
 initFxMapGraph()  

Init the SBSParamsGraph of this filter, if it is a FxMap

Returns:The graph of this FxMap as a SBSParamsGraph, None otherwise.
 isAFxMap()  
Returns:True if this filter is a FxMap, False otherwise
 isAPixelProcessor()  
Returns:True if this filter is a Pixel Processor, False otherwise
 isAResource()  
Returns:True if the filter uses a resource, meaning is a filter of kind BITMAP or SVG, False otherwise.
 isAValueProcessor()  
Returns:True if this filter is a Value Processor, 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
 setDynamicParameter(aParameter, aRelativeTo = None)  

Set the given parameter as dynamic, to init its params.SBSDynamicValue. If Inheritance is None, the default Inheritance for this node is set.

Parameters:
Returns:

the SBSDynamicValue object if succeed, None otherwise

Raise:

api_exceptions.SBSLibraryError

 setParameterValue(aParameter, aParamValue, aRelativeTo = None)  

Set the value of the given parameter to the given value, if compatible with this node.

Parameters:
Returns:

True if succeed, False otherwise

Raise:

api_exceptions.SBSLibraryError

 unsetParameter(aParameter)  

Unset the given parameter so that it is reset to its default value.

Parameters:aParameter (CompNodeParamEnum or str) – identifier of the parameter to set
Returns:True if succeed, False otherwise
Raise:api_exceptions.SBSLibraryError
 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 compnode.compimplementation.SBSCompImplementation(aCompFilter=None, aCompInstance=None, aCompInputBridge=None, aCompOutputBridge=None)  

Bases: pysbs.common_interfaces.sbsobject.SBSObject

Class that contains information on the implementation of a compositing node as defined in a .sbs file. The implementation is exclusive, only one member of the SBSCompImplementation is defined.

Members:
 classify(aOther, aParentContainer = None)  

Use the definition of the two CompImplementation to classify them.

To classify the different kind of CompImplementation, this order is specify:

Filter < Instance < Input < Output.

In case of equality, the appropriate classify function is called, depending on the kind of implementation.

Parameters:
  • aOther (SBSCompImplementation) – The filter to compare to.
  • aParentContainer (SBSGraph, optional) – The graph containing the nodes to classify
Returns:

1 if itself is considered greater than the other node, -1 for the opposite. 0 in case of equality.

 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.
 getImplementation(self)  

Return the appropriate node implementation depending on the compositing node kind

 getImplementationKind()  

Get the implementation kind of this node, among the list defined in CompImplementationKindEnum

 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
 isAFilter()  
Returns:True if this is a Compositing Node Filter, False otherwise.
 isAnInputBridge()  
Returns:True if this is an Input Bridge, False otherwise.
 isAnInstance()  
Returns:True if this is a Compositing Node Instance, False otherwise.
 isAnOutputBridge()  
Returns:True if this is an Output Bridge, 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
 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 compnode.compimplementation.SBSCompInputBridge(aEntry='', aParameters=None)  

Bases: compnode.common.SBSCompImplWithParams

Class that contains information on an input node as defined in a .sbs file

Members:
  • mEntry (str): uid of this input (/graph/paramInputs/paramInput/uid).
  • mParameters (list of SBSParameter): input parameters list.
 classify(aOther, aParentContainer = None)  

If aParentContainer is provided, compare the identifiers of the two input nodes to classify them, else use the Entry UID.

Parameters:
  • aOther (SBSCompInputBridge) – The filter to compare to.
  • aParentContainer (SBSGraph, optional) – The graph containing the nodes to classify
Returns:

1 if itself is considered greater than the other node, -1 for the opposite. 0 in case of equality.

 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.
 getDefinition()  

Get the comp input bridge definition (Inputs, Outputs, Parameters)

Returns:a CompNodeDef object
 getDisplayName()  

Get the display name of this node

Returns:the display name as a string
 getParameterValue(aParameter)  

Find a parameter with the given name/id among the overloaded parameters and the default node parameters, and return its value.

Parameters:aParameter (CompNodeParamEnum or str) – Parameter identifier
Returns:The parameter value if found (string or SBSDynamicValue, None otherwise
 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
 hasIdenticalParameters(self, other)  

Allows to check if two nodes has the same parameters defined with the same values.

Parameters:other (SBSCompImplWithParams) – the node to compare with
Returns:True if the two nodes has the same parameters, 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
 setDynamicParameter(aParameter, aRelativeTo = None)  

Set the given parameter as dynamic, to init its params.SBSDynamicValue. If Inheritance is None, the default Inheritance for this node is set.

Parameters:
Returns:

the SBSDynamicValue object if succeed, None otherwise

Raise:

api_exceptions.SBSLibraryError

 setParameterValue(aParameter, aParamValue, aRelativeTo = None)  

Set the value of the given parameter to the given value, if compatible with this node.

Parameters:
Returns:

True if succeed, False otherwise

Raise:

api_exceptions.SBSLibraryError

 unsetParameter(aParameter)  

Unset the given parameter so that it is reset to its default value.

Parameters:aParameter (CompNodeParamEnum or str) – identifier of the parameter to set
Returns:True if succeed, False otherwise
Raise:api_exceptions.SBSLibraryError
 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 compnode.compimplementation.SBSCompInstance(aPath=None, aParameters=None, aOutputBridgings=None, aGUILayoutComp=None, aRefGraph=None, aRefDependency=None)  

Bases: compnode.common.SBSCompImplWithParams

Class that contains information on a compositing node instance as defined in a .sbs file

Members:
  • mPath (str): path of the graph definition this instance refers to.
  • mParameters (list of SBSParameter): instance parameters list.
  • mOutputBridgings (list of SBSOutputBridging, optional): List of bridging between outputs of this instance node and the graph definition.
  • mGUILayoutComp (SBSGUILayoutComp, optional): GUI flags and options instance overload.
  • mRefGraph (SBSGraph, optional): reference to the graph that this node instantiates.
 changeDependencyUID(aSBSDocument, newDepUID)  

Change the UID of the dependency referenced by this instance.

Parameters:
  • aSBSDocument (SBSDocument) – The root document, required to reset all the internal links to the referenced graph
  • newDepUID (str) – The new dependency UID
 changeInstancePath(aParentDocument, aInstanceDocument, aGraphRelPath)  

Change the function referenced by this instance. If aInstanceDocument is not already declared as a dependency, the dependency will be added to aParentDocument.

Parameters:
  • aParentDocument (SBSDocument) – The parent document of this node
  • aInstanceDocument (SBSDocument) – The document containing the function to reference by this instance (can be equal to parent document)
  • aGraphRelPath (str) – The graph path, relatively to its parent package aInstanceDocument (pkg:///myGroup/myGraph)
 classify(aOther, aParentContainer = None)  

Compare the path of the two instances to classify them.

Parameters:
  • aOther (SBSCompInstance) – The filter to compare to.
  • aParentContainer (SBSGraph, optional) – The graph containing the nodes to classify
Returns:

1 if itself is considered greater than the other node, -1 for the opposite. 0 in case of equality.

 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.
 getCompOutputBridging(aIdentifier)  

Get the SBSOutputBridging corresponding to the given identifier

Parameters:aIdentifier (str) – required identifier
Returns:a SBSOutputBridging object if found, None otherwise
 getCompOutputBridgingFromUID(aUID)  

Get the SBSOutputBridging corresponding to the given output uid

Parameters:aUID (str) – the unique identifier to look for
Returns:a SBSOutputBridging object if found, None otherwise
 getDefinition()  

Build a CompNodeParam object to describe the inputs, outputs and parameters of this graph instance

Returns:A CompNodeParam object
 getDependencyUID()  

Get the UID of the dependency referenced by this instance

Returns:The dependency UID as a string if found, None otherwise
 getDisplayName()  

Get the display name of this node

Returns:the display name as a string
 getParameterValue(aParameter)  

Find a parameter with the given name/id among the overloaded parameters and the default node parameters, and return its value.

Parameters:aParameter (CompNodeParamEnum or str) – Parameter identifier
Returns:The parameter value if found (string or SBSDynamicValue, None otherwise
 getReferenceAbsPath()  

Get the absolute path of the graph referenced by this instance.

Returns:The absolute path of the graph referenced by this instance, in the format absolutePath/filename.sbs/graphIdentifier, as a string
 getReferenceInternalPath()  

If this node is an instance, get the path of the referenced graph relatively to the package (pkg:///).

Returns:The path as a string
 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
 hasIdenticalParameters(self, other)  

Allows to check if two nodes has the same parameters defined with the same values.

Parameters:other (SBSCompImplWithParams) – the node to compare with
Returns:True if the two nodes has the same parameters, 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
 resolveDependency(aSBSDocument)  

Allow to resolve the dependency of the compositing instance node with the graph it references.

Parameters:aSBSDocument (SBSDocument) – The root document
 setDynamicParameter(aParameter, aRelativeTo = None)  

Set the given parameter as dynamic, to init its params.SBSDynamicValue. If Inheritance is None, the default Inheritance for this node is set.

Parameters:
Returns:

the SBSDynamicValue object if succeed, None otherwise

Raise:

api_exceptions.SBSLibraryError

 setParameterValue(aParameter, aParamValue, aRelativeTo = None)  

Set the value of the given parameter to the given value, if compatible with this node.

Parameters:
Returns:

True if succeed, False otherwise

Raise:

api_exceptions.SBSLibraryError

 unsetParameter(aParameter)  

Unset the given parameter so that it is reset to its default value.

Parameters:aParameter (CompNodeParamEnum or str) – identifier of the parameter to set
Returns:True if succeed, False otherwise
Raise:api_exceptions.SBSLibraryError
 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 compnode.compimplementation.SBSCompOutputBridge(aOutput='', aConnectionColorType=None)  

Bases: pysbs.common_interfaces.sbsobject.SBSObject

Class that contains information on an output node as defined in a .sbs file

Members:
  • mOutput (str): uid of this output. (/graph/graphOutputs/graphOutput/uid).
  • mConnectionColorType (str, optional): connection color type. Type format defined at ParamTypeEnum
 classify(aOther, aParentContainer = None)  

If aParentContainer is provided, compare the identifiers of the two output nodes to classify them, else use the Output UID.

Parameters:
  • aOther (SBSCompOutputBridge) – The filter to compare to.
  • aParentContainer (SBSGraph, optional) – The graph containing the nodes to classify
Returns:

1 if itself is considered greater than the other node, -1 for the opposite. 0 in case of equality.

 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.
 getDefinition()  

Get the output bridge definition (Inputs, Outputs, Parameters)

Returns:a CompNodeDef object
 getDisplayName()  

Get the display name of this node

Returns:the display name as a string
 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
 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?