Accessing AssetManager, AssetUser and Asset Metadata in MAX Files

In releases prior to 3ds Max 2010, a plug-in that referenced an external file (an asset) would hold the asset’s filename as a string or as a Path object, and would store the filename to the 3ds Max scene file as a string or an IParameterBlock2 TYPE_FILENAME parameter. To allow 3ds Max to identify the assets used by a plug-in, the plug-in would implement an IAssetAccessor-derived class. The information provided from this class was primarily used by the Asset Tracker.

Since 3ds Max 2010, assets are handled as instances of class AssetUser. An instance of this class contains information on the asset filename, its type, and the 3ds Max scene file that depends on it (this is used for resolving external references). Access to, and lifetime management of assets is handled by the Asset Manager.

Loading and saving the Asset to the 3ds Max scene file is now done through the AssetUser and the AssetManager.

When saving a 3ds Max scene, the asset data is saved by the Asset Manager to a separate stream in the 3ds Max file. This gives the capability to external programs to access the asset data in order to identify the assets used by the scene and potentially modify the asset data without loading the scene file into 3ds Max.

Interface: AssetManager

IObject:AssetUser

Interface: FileResolutionManager

MAX File Asset Metadata Stream Access