The SME Core Interface introduced in 3ds Max 2011 exposes properties and methods related to the Slate Material Editor.
Properties:
sme.activeView : index : Read|Write
Get/set the Slate Material Editor's active View.
Methods:
<void>sme.Open()
Opens the Slate Material Editor.
<void>sme.Close()
Closes the Slate Material Editor.
<boolean>sme.IsOpen()
Returns true if the Slate Material Editor is open, false if it is closed.
<integer>sme.GetNumViews()
Returns the number of Node Views as an integer.
<index>sme.CreateView <string>name
Creates a new Node View with the given name and returns its index.
<IObject>sme.GetView <index>index
Returns an IObject:IFP_NodeViewImp object representing the indexed Node View.
<index>sme.GetViewIndex <IObject>view
Returns the index of the given Node View IObject:IFP_NodeViewImp object.
<index>sme.GetViewByName <string>name
Returns the index of the named Node View.
<void>sme.DeleteView <index>index <boolean>ask_user
Deletes the indexed Slate Material Editor view.
If the second argument is true, prompts the user for confirmation, otherwise deletes the view without prompting.
<maxObject>sme.GetMtlInParamEditor()
Returns the material or map current displayed in the Parameter Editor of the Slate Material Editor.
sme.SetMtlInParamEditor <maxObject>
Sets the material or map to be displayed in the Parameter Editor of the Slate Material Editor.
Available in 3ds Max 2014 and higher.
<Interface>sme.GetNavigator()
Returns an WndBase Interface to the Slate Material Editor's Navigator.
<Interface>sme.GetMaterialPool()
Returns an WndBase Interface to the Slate Material Editor's Material Pool.
<Interface>sme.GetParamEditor()
Returns an WndBase Interface to the Slate Material Editor's Parameter Editor.
<Interface>sme.GetMainframe()
Returns an WndBase Interface to the Slate Material Editor's Main Frame.
<maxObject>DoMtlBrowseDlg <HWND>parent <integer>flags <&boolean>newMat <&boolean>cancel fromLibrary:<&boolean> copiedMaterial:<&boolean> newMat is In and Out parameter cancel is In and Out parameter fromLibrary default value: undefined fromLibrary is In and Out parameter copiedMaterial default value: undefined copiedMaterial is In and Out parameter
Opens a modal Material/Map browser dialog.
The first argument is the window handle of the parent window, use 0 for none.
The second argument is a flags value controlling the display of materials and maps in the dialog. Possible Flag values are:
1,5,9... - Materials, Sample Slots
2,6,10... - Maps
0,3,7,11... - Maps, Materials, Sample Slots
4,8,12... - None
The third by-reference argument will contain true if a new material was created, false if an existing one was picked.
The fourth by-reference argument will contain true if the Cancel button was clicked, false if the OK button was clicked.
EXAMPLE
``` isNew = false isCanceled = false c = sme.DoMtlBrowseDlg 0 0 &isNew &isCanceled
```
<void>sme.OpenMtlBrowseDlg()
Opens the Material Browser Dialog.
<boolean>sme.OpenMtlLib <string>path name:<string> name default value: ""
Opens the material library specified by the file path and optional name. If only the material library file name is specified in the path, the current material library directory is searched for the specified filename. The optional name parameter can specify a path to a library as it is named in the Material Browser, where backslashes denote folder hierarchy. For example, "Maps\OSL\Shiny Things" would open a material library named "Shiny Things" in a folder named "OSL" in the folder named "Maps". Available in 3ds Max 2021 and higher. Returns true if the library was successfully found and opened, false if not.
For example:
sme.OpenMtlLib "Nature.mat" <boolean>sme.HasMtlLib <string>path
Returns true if the specified material library is open in the Slate Material Editor. Available in 3ds Max 2021 and higher.
<boolean>sme.IsMtlLibModified <string>path
Returns true if the specified material library has been modified (materials have been added, deleted, or changed), false if not. Available in 3ds Max 2021 and higher.
<boolean>sme.SaveMtlLib <string>path
Saves the specified material library, returning true if successful, false if not. Available in 3ds Max 2021 and higher.
<boolean>sme.SaveMtlLibAs <string>path newPath:<&string> newPath default value: "" newPath is In and Out parameter
Saves a copy of the specified material library from the location and file name specified by path to the optional newPath. If newPath is empty, a file chooser dialog is displayed and the user is prompted for a new path and filename, and the selected path is returned in newPath. Available in 3ds Max 2021 and higher.
<boolean>sme.CloseMtlLib <string>path
Closes the material library specified by path. Available in 3ds Max 2021 and higher. ### IFP_NodeViewImp : IObject
Interface: NodeView
Properties:
.name : string : Read|Write
Get/set the name of the Node View.
Methods:
<integer>GetNumNodes()
Returns the number of nodes in the View.
<Interface>GetNode <index>index
Returns the Node Interface of the indexed node from the View.
<Interface>GetNodeByRef <maxObject>ref
Returns the Node Interface to the given Material or Map object reference, or undefined if the reference does not exist in the Node View.
<Interface>CreateNode <maxObject>ref <&point2>pos pos is In and Out parameter
Creates a new node from the given Material or Map object reference at the position specified by-reference.
<void>DeleteSelection()
Deletes the selected nodes.
<void>SelectNone()
Deselects all nodes in the Node View.
Available in 3ds Max 2014 and higher.
<void>SelectAll()
Selects all nodes in the Node View.
Available in 3ds Max 2014 and higher.
<void>SelectInvert()
Inverts the node selection in the Node View.
Available in 3ds Max 2014 and higher.
<Interface by value array>GetSelectedNodes()
Returns the selected nodes in the Node View as an array of Node Interfaces.
Available in 3ds Max 2014 and higher.
<void>SetSelectedNodes <maxObject by value array>refs
Sets the Node View selection to the array of Materials and/or Maps object references provided as argument.
Setting the selection will deselect any other previously selected nodes.
This function will not open any items in the Parameter Editor - you can use the sme.SetMtlInParamEditor() method documented earlier in this topic.
Available in 3ds Max 2014 and higher.
<void>ZoomExtents type:<enum> type enums: {#all|#selected} type default value: #all
Zooms the Node View to show all nodes or all selected nodes according to the type optional keyword argument.
Available in 3ds Max 2014 and higher.
Interface: WndBase
Properties:
.position : point2 by value : Read|Write
Get/set the Position of the Node View.
.size : point2 by value : Read|Write
Get/set the Size of the Node View.
.visible : boolean : Read|Write
Get/set the Visibility of the Node View.
Methods:
<void>SetFocus()
Sets the focus on the Node View.
<Interface>GetParent()
Returns the WndBase interface of the Parent of the Node View.
Properties:
.name : string : Read|Write
Get/set the name of the Node.
.position : point2 by value : Read|Write
Get/set the Position of the Node inside the Node View.
.selected : boolean : Read|Write
Get/set the Selected state of the Node.
Available in 3ds Max 2014 and higher.