getInterface Function

getInterface <MAXWrapper> <InterfaceNameString> includeActions:<bool> 
getInterface <MAXClass> <InterfaceNameString> includeMixins:<bool> 

getInterface returns the interface specified by the <InterfaceNameString>, or undefined if the interface does not exist.

If the first argument is a node, the node-level interfaces for that node are returned.

If you want the interfaces for the node's base object, you need to specify <node>.baseobject as the argument.

EXAMPLE

   s=sphere()
   --> $Sphere:Sphere01 @ [0.000000,0.000000,0.000000]
   theAInterface = getInterface s "IAssembly"
   --> <MixinInterface:IAssembly>
   converttopoly s
   --> $Editable_Poly:Sphere01 @ [0.000000,0.000000,0.000000]
   theEPInterface = getInterface s "EditablePoly"
   --> undefined
   theEPInterface = getInterface s.baseobject "EditablePoly"
   --> <MixinInterface:EditablePoly>

If the argument is a MAXClass, only static interfaces for that class are returned.

Typically, only utility plugin classes define static interfaces.

EXAMPLE

   getInterface Plug_in_Manager "PluginMgrAction"
   <Interface:PluginMgrAction>

If includeActions:true or includeMixins:true are specified, the Action or Mixin interfaces are returned. Available in 3ds Max 2027 and higher.

In 3ds Max 2027 and higher, getInterface <MAXWrapper> also gets static interfaces. Previously could only get from the MAXClass of the MAXWrapper instance.

EXAMPLE

   // getInterface <MAXWrapper> (<name> | <int> | #(int, int)) includeActions:<bool> 
   ikc = createinstance IKChainControl forcecreate:true
   --> Controller:IKChainControl
   i1 = getInterface ikc #IKChainActions includeActions:true
   --> <MixinInterface:IKChainActions>
   i2 = getInterface ikc #IKChainActions includeActions:false
   --> undefined

   // getInterface <MAXClass> <name> includeMixins:<bool>
   getInterface GeoSphere #realWorldMapSizeInterface includeMixins:false
   --> undefined
   getInterface GeoSphere #realWorldMapSizeInterface includeMixins:true
   --> <Interface:realWorldMapSizeInterface>

   // getInterface <MAXWrapper> (<name> | <int> | #(int, int)) now gets static interfaces. Previously could only get from the MAXClass of the MAXWrapper instance.
   c = createinstance ProBoolean
   -->ProBoolean
   getInterface c #PolyBoolean
   --> <Interface:PolyBoolean>