User Guide Cancel

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

mdloperand

Module mdloperand provides the definition of the classes related to the operand structure as in .sbs format:

 class mdl.mdloperand.MDLOperand(aName='', aType='', aMetaData=None)  

Bases: pysbs.common_interfaces.sbsobject.SBSObject

Base class for:

Members:
  • mName (string): name of the operand
  • mType (string): type of the operand (its type’s MDL path)
  • mMetaData (MDLOperandMetaData, optional): various meta-data
 acceptConnection()  

Check if this operand accepts a connection (a pin is visible and active for this parameter)

Returns:True if the operand accepts connection, False otherwise
 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.
 static getSBSTag()  
 getType()  

Get the type of the operand

Returns:The operand type 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
 getValue()  

Get the value of the operand

Returns:The operand value, as a string or a MDLOperands object
 isDefaultValue()  

Check if the value of this operand is the default one

Returns:True if the value of the operand is the default one, 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
 setConnectionAccepted(aValue)  

Defines if the connection are accepted or not

Parameters:aValue (bool) – The value to set.
 setIsDefaultValue(isDefaultValue)  

Defines if the operand has the default value or not

Parameters:isDefaultValue (bool) – The value to set.
 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 mdl.mdloperand.MDLOperandArray(aName='', aType='', aItems=None, aMetaData=None)  

Bases: mdl.mdloperand.MDLOperand

Class MDLOperandArray: An array operand

Members:
  • mName (string): name of the operand
  • mType (string): type of the operand (its type’s MDL path)
  • mItems (MDLOperands): the list of operands
  • mMetaData (MDLOperandMetaData, optional): various meta-data
 acceptConnection()  

Check if this operand accepts a connection (a pin is visible and active for this parameter)

Returns:True if the operand accepts connection, False otherwise
 addItem(aValue, aIndex = -1)  

Add an item with the given value to the array, at the given index if it is provided, or at the end.

Parameters:
  • aValue (any type) – The value to add
  • aIndex (int, optional) – The index where to add the item. At the end by default
Returns:

The added item as a MDLOperand

Raise:

SBSImpossibleActionError

 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.
 getItem(aIndex)  

Get the item at the given index

Parameters:aIndex (positive integer) – the index of the item to get
Returns:The MDLOperand at the given index if it possible, None otherwise
 getItems()  

Get the array of items on this operand array

Returns:The items as a list of MDLOperand
 static getSBSTag()  
 getSize()  

Get the size of the array

Returns:The array size as a positive integer
 getType()  

Get the type of the operand

Returns:The operand type 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
 getValue()  

Get the value of this operand

Returns:The value of the operand, as a MDLOperands
 isDefaultValue()  

Check if the value of this operand is the default one

Returns:True if the value of the operand is the default one, 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
 setConnectionAccepted(aValue)  

Defines if the connection are accepted or not

Parameters:aValue (bool) – The value to set.
 setIsDefaultValue(isDefaultValue)  

Defines if the operand has the default value or not

Parameters:isDefaultValue (bool) – The value to set.
 setValue(aValue)  

Set the value of this operand

Parameters:aValue (MDLOperandArray) – the value to set
 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 mdl.mdloperand.MDLOperandMetaData(aAcceptConnection=None, aIsDefaultValue=None)  

Bases: pysbs.common_interfaces.sbsobject.SBSObject

Class MDLOperandMetaData contains additional information associated to operands.

Members:
  • mAcceptConnection (string, optional): defines if the connections are allowed on this operand. Default to False
  • mIsDefaultValue (string, optional): defines if the operand has the default value. Default to False
 acceptConnection()  

Check if this operand accepts a connection (a pin is visible and active for this parameter)

Returns:True if the operand accepts connection, False otherwise
 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.
 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
 isDefaultValue()  

Check if the value of this operand is the default one

Returns:True if the value of the operand is the default one, False otherwise
 isEmpty()  

Check if the content of the metadata is empty

Returns:True if there is no metadata, 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
 setConnectionAccepted(aValue)  

Defines if the connection are accepted or not

Parameters:aValue (bool) – The value to set.
 setIsDefaultValue(isDefaultValue)  

Defines if the operand is the default value or not

Parameters:isDefaultValue (bool) – The value to set.
 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 mdl.mdloperand.MDLOperandStruct(aName='', aType='', aMembers=None, aMetaData=None)  

Bases: mdl.mdloperand.MDLOperand

Class MDLOperandStruct: A compound type (struct) operand.

Members:
  • mName (string): name of the operand
  • mType (string): type of the operand (its type’s MDL path)
  • mMembers (MDLOperands): the sub-operands
  • mMetaData (MDLOperandMetaData, optional): various meta-data
 acceptConnection()  

Check if this operand accepts a connection (a pin is visible and active for this parameter)

Returns:True if the operand accepts connection, False otherwise
 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.
 getMembers()  

Get the list of members on this operand struct

Returns:The members as a list of MDLOperand
 getOperand(aOperandName)  

Get the operand with the given name among the structure members. The name can be: - Simply the name of the operand to get - A set of names separated by ‘/’ to access a sub member of the root member, for instance ‘surface/intensity’ - A name with an operator [] to access a particular item of an operand array, for instance ‘color[2]’

Parameters:aOperandName (str) – The name of the operand to search
Returns:The operand as a MDLOperand if found, None otherwise
 static getSBSTag()  
 getType()  

Get the type of the operand

Returns:The operand type 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
 getValue()  

Get the value of this operand

Returns:The value of the operand, as a MDLOperands
 isDefaultValue()  

Check if the value of this operand is the default one

Returns:True if the value of the operand is the default one, 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
 setConnectionAccepted(aValue)  

Defines if the connection are accepted or not

Parameters:aValue (bool) – The value to set.
 setIsDefaultValue(isDefaultValue)  

Defines if the operand has the default value or not

Parameters:isDefaultValue (bool) – The value to set.
 setValue(aValue)  

Set the value of this operand

Parameters:aValue (MDLOperandStruct) – the value to set
 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 mdl.mdloperand.MDLOperandValue(aName='', aType='', aValue='', aMetaData=None)  

Bases: mdl.mdloperand.MDLOperand

Class MDLOperandValue: A simple base-type operand.

Members:
  • mName (string): name of the operand
  • mType (string): type of the operand (its type’s MDL path)
  • mValue (string): value of the operand
  • mMetaData (MDLOperandMetaData, optional): various meta-data
 acceptConnection()  

Check if this operand accepts a connection (a pin is visible and active for this parameter)

Returns:True if the operand accepts connection, False otherwise
 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.
 static getSBSTag()  
 getType()  

Get the type of the operand

Returns:The operand type as a string
 getTypedValue()  

Get the value of this operand, in the type of the operand

Returns:The value of the operand, in the type of the operand
 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
 getValue()  

Get the value of this operand

Returns:The value of the operand, as a string
 isDefaultValue()  

Check if the value of this operand is the default one

Returns:True if the value of the operand is the default one, 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
 setConnectionAccepted(aValue)  

Defines if the connection are accepted or not

Parameters:aValue (bool) – The value to set.
 setIsDefaultValue(isDefaultValue)  

Defines if the operand has the default value or not

Parameters:isDefaultValue (bool) – The value to set.
 setValue(aValue)  

Set the value of this operand

Parameters:aValue (any type) – the value to set
 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 mdl.mdloperand.MDLOperands(aOperands=None)  

Bases: pysbs.common_interfaces.sbsobject.SBSObject

Class that contains information on the MDL operands as defined in a .sbs file. A MDLOperands provides the list of parameters of a MDLNode or of a MDLAnnotation, and is constituted of a list of: - MDLOperandValue - MDLOperandStruct - MDLOperandArray

Members:
  • mOperands (list of MDLOperand, optional): list of parameters available on this node
 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.
 equalsTo(other)  

Allows to check if two MDLOperands are identical.

Parameters:other (MDLOperands) – the MDLOperands to compare with
Returns:True if the two MDLOperands has the same parameters, False otherwise
 getAllOperands()  

Get the all the operands.

Returns:A list of MDLOperand
 getAllOperandsValue()  

Get all the operand values

Returns:A list of string and MDLOperand objects
 getNbOperands()  
Returns:The number of operands
 getOperand(aOperandName)  

Get the operand with the given name. The name can be: - Simply the name of the operand to get - A set of names separated by ‘/’ to access a sub member of the root member, for instance ‘surface/intensity’ - A name with an operator [] to access a particular item of an operand array, for instance ‘color[2]’

Parameters:aOperandName (str) – The name of the operand to search
Returns:The operand as a MDLOperand if found, None otherwise
 getOperandByIndex(aIndex)  

Get the operand at the given index

Parameters:
  • aIndex – The index of the operand to get
  • aIndex – positive integer
Returns:

The operand as a MDLOperand if possible, None otherwise

 getOperandValue(aOperandName)  

Get the value of the operand with the given name.

Parameters:
  • aOperandName – The name of the operand to search
  • aOperandName – str
Returns:

The operand value as a string (for a MDLOperandValue) or a list of MDLOperand (for a MDLOperandStruct or a MDLOperandArray) if found, None otherwise

 getOperandValueByIndex(aIndex)  

Get the value of the operand at the given index

Parameters:
  • aIndex – The index of the operand to get
  • aIndex – positive integer
Returns:

The operand value as a string (for a MDLOperandValue) or a list of MDLOperand (for a MDLOperandStruct or a MDLOperandArray) if possible, 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
 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

 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