The following diagram shows the most important classes in the 3ds Max plug-in class hierarchy:
The above diagram is divided in two section: the top section is where the common services to be implemented by a 3ds Max plug-in are provided (e.g. life-time control, messaging, monitoring, file i/o, identification, parameter block exposure, sub-animatable exposure). The bottom section are where classes are specialized for the different plug-in types.
Most plug-ins have Animatable as a base-class. Some exceptions and their base classes are utility objects (UtilityObj), global utility plug-ins (GUPs), scene export plug-ins (SceneExport), and scene import plug-ins (SceneImport). These are objects that do not participate in the reference system.
Animatable inherits from InterfaceServer which inherits from MaxHeapOperators. The root class, MaxHeapOperators, provides memory-management functionality. InterfaceServer is the base class for classes and interfaces in 3ds Max that can serve interfaces.