» Back to Documentation

Tab<T> template class in 3dsmax serves as a dynamic array utility class which works much like STL std::vector<T> implementation. It is used throughout the SDK and in many cases working without it is impossible.

Max.NET supports a limited creation of Tab class using numerous types. All Tab-types used in 3dsmax are automatically supported by Max.NET, however, some types which do not appear in the SDK might not be supported. If a Tab class for a specific type is not supported you will get a runtime exception with message "Cannot instantiate class 'Tab' with specified generic types".

To create an instance of a Tab class with a specific type use IGlobal.Tab.Create<T>() method with the type you need. For example, IGlobal.Tab.Create<IINode>() will create and return ITab<IINode> class instance.

Following is a list of types that are currently supported by the tab class for your reference:

IAnimProperty, unsigned, IFLT_FilterHandler, IGUPHandler, IINode, IModContext, IMtlBase, IMtl, System::String, INoteKey, int, IParticleData, IMZPExtraction, Itooltabentry, IXMLAnimTreeEntry, DelayedMatrix3::IDelayedOp, INodeAndAnims, ITrackHitRecord, float, IClass_ID, System::IntPtr, IControl, IPoint3, unsigned, INURBSControlVertex, double, System::Object, IMatrix3, System::Int16, IObject, IParamBlockDesc2, imrShaderTranslation::IAdditionalDependency, IMEdge, IAdjFace, IAppDataChunk, System::Char, IbindShape, IReferenceTarget, IChangeHandler, IILoad, FPEnum::Ienum_code, IFPParamDef, IFPFunctionDef, IFPPropDef, IFPEnum, IFPValue, IPoint3, IPoint4, IPBBitmap, ITexmap, IMatrix3, IAngAxis, IQuat, IRay, IPoint2, IBitArray, IClassDesc, IMesh, IInterval, System::IntPtr, System::IntPtr, IIObject, IFPInterface, IColor, IAColor, IFPValue, IValue, bool, System::IntPtr, System::Int64, IStrip, ITrackViewPick, IIADTStyle, IIADTCategory, ISaveSubAnimInfo, ILoadSubAnimInfo, IIBlockRefComponent, System::IntPtr, IIGameKey, IFaceEx, IIGameNode, ITextureData, ILoadSaveRetargetData, IIMenuItem, IMetaDataManager::IParamDescriptor, IAnimatable, ICustAttrib, IMaxBakeElement, System::UIntPtr, IIXRefObject, IIObjXRefRecord, IObjectState, IFaceDataFromPatch, ITVFace, IRenderInstance, IPreciseTimeValue, IISimpleFaceDataChannel, IITreeViewOps, IVertexPaint::IFaceColor, IModifier, IEdgeBondage, ISpringClass, ICacheClass, System::Byte, IUVVertSet, IFaceRemap, ITextureInfo, ITriStrip, ICapFace, IMeshCapVert, IVertMove, IFaceCreate, IFaceChange, IFaceSmooth, IMotionTracker, Imbm_window, ISFXParamDlg, IParamDlg, IIParamBlock2, IParamRef, IPB2Value, IShapePSel, IShapeSSel, IShapeVSel, INURBSFuseSurfaceCV, INURBSFuseCurveCV, ParamBlockDesc2::Imap_spec, Irollout_control, ICharStream, ICapPatch, IPatchCapVert, IPatchCapVec, IHookPoint, IPatchTVert, ITVPatch, IExtrudeData, ISourceInfo, IEffectsInfo, IRolloutControl, IRollout, IForceField, ICollisionObject, ISSParticle, ISSSpring, ISSConstraintPoint, IFPInterfaceDesc, ITVNodeNotify, System::UIntPtr, IValueLoader, ICallbackScript