Note that Design Automation cannot have any user interaction requirements. For .NET programs, the easiest way to automate them is to make a static class and then execute the functions from MAXScript. In this example, you will find the automation command in the .\learn.forge.designautomation\UpdateMAXParam\UpdateMAXParam.bundle\da_script.ms
The example is provided here: .\learn.forge.designautomation\UpdateMAXParam
The 3ds Max desktop software already includes a tool called 3ds Max Batch. This tool allows local automation of tasks and is a good way to test your automation before using the Design Automation system. See here for the 3ds Max 2019 Batch details: http://help.autodesk.com/view/3DSMAX/2019/ENU/?guid=GUID-0968FF0A-5ADD-454D-B8F6-1983E76A4AF9
Anything that runs in the 3ds Max Batch tool is possible to run in the 3ds Max Design Automation engine. You can also include plug-ins that can be automated. Typically, you would provide a MAXScript that would execute the automation, but the code itself could live in a C++ or a .NET plug-in. Of course, the MAXScript could also contain the automation code. The Design Automation API also supports the ability to pass parameters into the script code, that can also be passed into the automation code. This will allow very flexible work-flows with the ability to provide configurations and data to the automation job. For example, you could have a configurator website that takes information from your customer, then using 3ds Max Design Automation you could auto-generate a max model to give back to your customer. Using other APS APIs, you could also preview the model using the APS Model Derivative service and the Autodesk Viewer.
The "Autoloader" plugin mechanism simplifies deployment of your plugin applications to APS Design Automation. This allows you to deploy your plugins using the simple package format (a folder structure with a .bundle extension) along with an XML file placed in the root of the folder structure. The XML file contains metadata that describes the components of your plugin inside the folder structure, and how they should be loaded.
Full reference of PackageContents.xml and Bundle structure.
-
Create a UpdateMAXParameters.bundle folder within same project folder
-
Create a Contents folder within UpdateMAXParameters.bundle, this contains module of our UpdateParameters application.
-
Create a PackageContents.xml, this contains metadata of the application module to loaded by APS Design Automation. See the example file here: .\learn.forge.designautomation\UpdateMAXParam\UpdateMAXParam.bundle\PackageContents.xml.
-
Wrap the UpdateMAXParameters.bundle into a zip file. This can be done in the "post build event" setting using the zip tool of your choice (for example, 7z zip tool). See the example project .\learn.forge.designautomation\UpdateMAXParam\UpdateMAXParam.csproj file in the PostBuildEvent section.