What is New in MAXScript in 3ds Max 2016

The following page will give you a quick overview of the MAXScript language changes and improvements in 3ds Max 2016 and 3ds Max 2016 Extension 1. For details on each feature, please follow the links to the respective documentation pages.

NOTE:

New additions to MAXScript in 3ds Max 2016 are marked with NEW in 3ds Max 2016:... throughout the MAXScript Reference. The link on the word NEW will jump back to this page.

   

New in 3dx Max 2016 Extension 1

New Scripted Animation Controller Plug-ins

The new Scripted Animation Controller Plug-ins allow you to write scripted plug-ins in MaxScript for several controller types.

New TextPlus Tool

The new TextPlus GeometryClass class, and related TextObject2 interface provide MaxScript exposure for the new TextPlus tool. These MAXScript additions are not yet documented, but will be documented in their final form for the next release. You can use showproperties and showinterfaces on an instance of this class to view a list of currently implemented properties and methods.

New 3ds Max Features Exposure

New Camera Classes

The new Physical : camera object provides an advanced camera exposing physical lens controls, film width controls and presets, and built-in exposure gain controls.

   

New Helper Classes

The new iray_Section : helper can be used to produce sections of the scene geometry at render time.

   

New Modifiers And Editable Poly Options

The new Crease : Modifier can be used to define edge creases on geometry objects.

The new CreaseSet : Modifier can be used to manage sets of edge creases.

The new OpenSubdiv : Modifier implements the Pixar OpenSubdiv libraries in 3ds Max.

   

New Alembic Classes

The new Alembic_Export : ExporterPlugin can be used to export scene objects to the Alembic .ABC file format.

The new Alembic_Import : ImporterPlugin can be used to import objects from Alembic .ABC files into the scene.

The new AlembicCamera : Camera class implements the Camera object imported from an Alembic .ABC file.

The new AlembicContainer : GeometryClass object is used by the Alembic Importer to represent the root for grouping object imported from the same file.

The new AlembicObject : GeometryClass object is used to represent a geometry entity imported from an Alembic .ABC file.

The new AlembicXform : Matrix3Controller is used to load the object transformation animation data from an Alembic .ABC file.

   

New Scripted Plug-in Classes

The new simpleMeshMod Scripted Plug-in class allows the processing of the incoming TriMesh on the stack and is used by the Max Creation Graph system to implement procedural modifiers.

   

New Autodesk Translation Framework (ATF) ImporterPlugin Classes

The new ATF_Alias_importer : ImporterPlugin exposes the Autodesk Translation Framework Alias file format Importer to MAXScript.

The new ATF_CATIA_V4_importer : ImporterPlugin exposes the Autodesk Translation Framework CATIA v4 file format importer to MAXScript.

The new ATF_CATIA_V5_importer : ImporterPlugin exposes the Autodesk Translation Framework CATIA v5 file format importer to MAXScript.

The new ATF_IGES_importer : ImporterPlugin exposes the Autodesk Translation Framework IGES file format importer to MAXScript.

The new ATF_JT_importer : ImporterPlugin exposes the Autodesk Translation Framework JT file format importer to MAXScript.

The new ATF_ProE_importer : ImporterPlugin exposes the Autodesk Translation Framework ProE file format importer to MAXScript.

The new ATF_Solidworks_importer : ImporterPlugin exposes the Autodesk Translation Framework Solidworks file format importer to MAXScript.

The new ATF_STEP_importer : ImporterPlugin exposes the Autodesk Translation Framework STEP file format importer to MAXScript.

The new ATF_UG_NX_importer : ImporterPlugin exposes the Autodesk Translation Framework UG-NX file format importer to MAXScript.

   

New ImporterPlugin Classes

The new Revit_importer : ImporterPlugin exposes the Autodesk Revit file format inporter to MAXScript.

   

New Renderer Classes

The new A360_Cloud_Rendering exposes the A360 Cloud renderer to MAXScript.

   

New Materials

The new Multi_Sub_Object : Material exposes the empty multi-sub Material to MAXScript. It provides no properties or methods.

   

New mental ray TextureMaps

The new builtin_displace_mdl : textureMap implements a displace shader using the NVIDIA Material Definition Language (MDL).

The new builtin_function_mdl : textureMap implements a function shader using the NVIDIA Material Definition Language (MDL).

The new builtin_mdl_multiply_scalar : textureMap implements a multiply by scalar shader using the NVIDIA Material Definition Language (MDL).

The new max_physical_camera_lens : textureMap represents the mental ray shader implementation of the new Physical : camera object.

   

New Controllers

The new Float_XRef_Controller : FloatController is used to expose Float parameters of XRef objects.

The new Point3_XRef_Controller : Point3Controller is used to expose Point3 parameters of XRef objects.

   

New Render Elements

The new iray__Alpha : RenderElement can be used to output transparency information from the iRay renderer.

The new iray__Irradiance : RenderElement can be used to output irradiance information from the iRay renderer.

The new iray__normal : RenderElement can be used to output surface normals information from the iRay renderer.

The new iray__Matte_Environment : textureMap can be used to output matte information from the iRay renderer.

The new mr_Ambient_Occlusion : RenderElement can be used to output ambient information from the iRay renderer.

   

New Tone Operators

The new Physical_Camera_Exposure_Control : ToneOperator exposes the Physical Camera Exposure Control to MAXScript.

   

New Core Interfaces

The new Interface: Autodesk360 provides methods related to initializing the web services, logging in and out, and querying login info from the Autodesk 360 service.

The new Interface: CreaseSetManager provides methods to create and manage CreaseSets.

The new Interface: CreaseExplorerManager provides methods to manage the Crease Explorer window including programmatically opening and closing it, as well as loading and saving its configuration to disk.

The new Interface: RevitImportWorkflow exposes no properties or methods.

The new Interface: paramPublishMgr exposes methods to initiate the parameter publishing and to add a parameter by its index.

   

Enhancements to Existing 3ds Max Features

Additional Properties and Methods

In the existing Chamfer : Modifier, several new properties have been added: .limiteffect , .useminangle , .usemaxangle , .minangle , .maxangle , and .smoothtoadjacent .

In the existing DirectX_9_Shader : Material, a new property has been added: .shaderfxgraph .

In the existing Edit_Poly : Modifier, several new properties have been added: .dataChannel , .dataValue , .hardedgedisplay , and .hardedgedisplaycolor .

In the existing Editable_Poly : GeometryClass, several new properties have been added: .hardedgedisplay and .hardedgedisplaycolor .

In the existing Editable_Poly : GeometryClass, several new methods have been added: .makeHardEdges() , .makeSmoothEdges() , .selectHardEdges() , and .selectSmoothEdges() .

In the existing iRay_Renderer : RendererClass, several new properties have been added: .displacementDisplaceMethod , .displacementParametricSubdivisionLevel , .textureCompressionEnabled , and .textureCompressionMinResolution .

In the existing max_base_GBuffer_lens : textureMap, several new properties have been added: .pauseEventLow , .pauseEventHigh , .pauseEventLow_connected , .pauseEventLow_shader , .pauseEventLow_paramName , .pauseEventHigh_connected , .pauseEventHigh_shader , and .pauseEventHigh_paramName .

In the existing renderers struct, three new properties have been added: .renderDialogMode , .renderButtonText , and .target .

In the existing max_rtt_output : textureMap, a new property has been added: .elementIndex .

In the existing mental_ray_renderer : RendererClass, several new properties have been added: .Displace_Method , .EnableLIS , and .LISQuality .

In the existing Normalize_Spl : Modifier, a new .Accuracy property has been added.

In the existing Skin : Modifier, a new property has been added: .enableDQ .

In the existing XRefObject : Node, a new property has been added to the IXRefProxy Interface: .useLocal .

In the existing XRef_Controller : Matrix3Controller, a new property has been added: .xrefCtrlStatus .

In the existing Interface : objXRefMgr, two new properties have been added: .includeAll and .enableUseLocalProxySettings .

In the existing XRef_Material : Material, two new properties have been added: .enableOverride and .overrideMaterial .

In the existing LayerProperties MixinInterface, three new methods have been added: canDelete() , getNumNodes() , and hasSceneXRefNodesInHierarchy() .

In the existing Interface: AssetManager, the new method AssetManager.RemoveMissingAssets() has been added.

In the existing Interface: maxOps, the new property maxOps.isRenderActive has been added.

In the existing Interface: PlacementTool, the two new methods PlacementTools.ShowOptionDialog() and PlacementTool.GetCommandMode() have been added.

In the existing Interface: SteeringWheelOps, the new property SteeringWheel.loadOptions() has been added.

In the existing Interface: ViewCubeOps, the new property ViewCubeOps.loadOptions() has been added.

   

Removed Properties And Methods

Several properties have been removed from the existing mental_ray_renderer : RendererClass: .FinalGatherMinRadius , .FinalGatherMinRadius_View , .FinalGatherOnly , .FinalGatherPreview , .FinalGatherRadius , .FinalGatherRadius_View , .FinalGatherUseRadiusInterpolation , .FinalGatherView , .UseFinalGatherMinRadius , .UseFinalGatherRadius , and .view .

   

Changes To Existing Properties And Methods

In the existing Egg : Shape, the existing properties have been changed from float to worldUnits type: .egg_length , .egg_thickness , and .egg_width .

In the existing Ellipse : Shape, the existing properties have been changed from float to worldUnits type: .ellipse_thickness , .length , and .width .

In the existing Interface: EPolyManipGrip, the new enum #VertexCrease has been added to the two existing methods: EPolyManipGrip.SetManipulateGrip() and EPolyManipGrip.GetManipulateGrip() .

In the existing Interface: AssetManager, the new enum #MaxCreationGraph has been added to the assetType argument of the two existing methods: AssetManager.GetAssetId() and AssetManager.GetAsset() .

In the existing Interface: FileResolutionManager, the new enum #MaxCreationGraph has been added to the assetType argument of the two existing methods: FileResolutionManager.GetFullFilePath() and FileResolutionManager.GetAssetTypeString() .

In the existing Interface: maxOps, the existing read-only property maxOps.productAppID can only contain #max and the exiting read-only property maxOps.productID can only contain #3dsMax in 3ds Max 2016 due to the retiring of 3ds Max Design.

In the existing Interface: pop, the enums list of the existing property pop.DisplayType has been changed to remove the #Segmented option.

   

LayerManager Interface Changes

A new LayerManager.doesLayerHierarchyContainNodes() method has been added to the existing Interface: LayerManager.

A new LayerManager.deleteLayerHierarchy() method has been added to the existing Interface: LayerManager.

A new LayerManager.getDuplicateLayerWithoutSameHierarchyOnMerge() method has been added to the existing Interface: LayerManager.

A new LayerManager.setDuplicateLayerWithoutSameHierarchyOnMerge() method has been added to the existing Interface: LayerManager.

   

NitrousGraphicsManager Interface Changes

In the existing methods .SaveViewGraph() , .LoadViewGraph() , .UnloadViewGraph() , .SetViewShadeFragment() , and .ResetViewShadeFragment() of the NitrousGraphicsManager Interface, the existing viewIndex argument type has been changed from <integer> to <index>.

A new .GetFixedViewportPipeline() method has been added to the NitrousGraphicsManager Interface.