# CMxCustomEnumArray Class Namespace: `ArchestrA.Toolkit` CMxCustomEnumArray is derived from CMxArray and provides support for Enum Array Attributes. **Syntax** ```csharp public class CMxCustomEnumArray : CMxArray ``` ## CMxCustomEnumArray Properties ### Text Property Provides an EnumText to allow accessing elements as strings. **Syntax** ```csharp public EnumText Text; ``` **Returns** EnumText ### Value Property Provides a property to get and set the values of the ordinals as a short array. **Syntax** ```csharp public short[] Value { get; set; } ``` **Returns** short[ ] ### Property to get and set the value of an ordinal Provides a property to get and set the value of an ordinal element by short index. **Syntax** ```csharp public short this[short i] { get; set; } ``` **Returns** short ## CMxCustomEnumArray Constructors ### CMxCustomEnumArray Constructor (string, int, short[ ]) Provides a constructor to initialize the class with the name of an array, its depth relative to the owning object and an array of ordinals as short. **Syntax** ```csharp public CMxCustomEnumArray(string arrayAttribute, int depth, short[] value); ``` **Parameters** **`arrayAttribute`** [in] string value that holds the name of the string array attribute. **`depth`** [in] int value that holds the relative depth of the string array attribute primitive. The depth assigned to the reference determines the location of the String Array reference (0 represents the local Primitive, -1 represents the Parent, -2 represents the Parents Parent and so on.) **`value`** [in] short[ ] value that holds the ordinal values. ### CMxCustomEnumArray Constructor (string, int, int) Provides a constructor to initialize the class with the name of an array, its depth relative to the owning object and the default length. **Syntax** ```csharp public CMxCustomEnumArray(string arrayAttribute, int depth, int length); ``` **Parameters** **`arrayAttribute`** [in] string value that holds the name of the string array attribute. **`depth`** [in] int value that holds the relative depth of the string array attribute primitive. The depth assigned to the reference determines the location of the String Array reference (0 represents the local Primitive, -1 represents the Parent, -2 represents the Parents Parent and so on.) **`length`** [in] int value that holds the array length. ### CMxCustomEnumArray Constructor (SupportWrapper, string) Provides a constructor to initialize the class for use in a primitive wrapper. **Syntax** ```csharp public CMxCustomEnumArray(SupportWrapper _wrapper, string _attributeRef); ``` **Parameters** **`_wrapper`** [in] SupportWrapper. **`_attributeRef`** [in] string value that holds the attribute reference. ## CMxCustomEnumArray Methods ### GetString Method Provides a method to get the value of an element from an ordinal as a short. **Syntax** ```csharp public string GetString(short i); ``` **Parameters** **`i`** [in] short value that holds the index. **Returns** string ### SetString Method Provides a method to set the value of an element from a string. **Syntax** ```csharp public void SetString(short i, string value); ``` **Parameters** **`i`** [in] short value that holds the index. **`value`** [in] string value to be set. ### Set Method Provides a method to set the value of the Attribute from a CMxCustomEnumArray. **Syntax** ```csharp public void Set(CMxCustomEnumArray newValue); ``` **Parameters** **`newValue`** [in] CMxCustomEnumArray value to be set. ## CMxCustomEnumArray Operator Overloads ### CMxCustomEnumArray Operator Overload (short[ ]) Provides an operator to convert a short array into a CMxCustomEnumArray. **Syntax** ```csharp public static implicit operator CMxCustomEnumArray(short[] val); ``` **Parameters** **`val`** [in] short[ ] value to convert to CMxCustomEnumArray. **Returns** CMxCustomEnumArray ### CMxValue Operator Overload Provides an operator to convert a CMxCustomEnumArray into CMxValue. **Syntax** ```csharp public static implicit operator CMxValue(CMxCustomEnumArray val); ``` **Parameters** **`val`** [in] CMxCustomEnumArray value to convert to CMxValue. **Returns** CMxValue ### Short Operator Overload Provide an operator to convert a CMxCustomEnumArray into a short array. **Syntax** ```csharp public static implicit operator short[](CMxCustomEnumArray val); ``` **Parameters** **`val`** [in] CMxCustomEnumArray value to convert to short[ ]. **Returns** short[ ] ### CMxCustomEnumArray Operator Overload Provides a operator to convert a CMxValue into a CMxCustomEnumArray. **Syntax** ```csharp public static implicit operator CMxCustomEnumArray(CMxValue val); ``` **Parameters** **`val`** [in] CMxValue value to convert to CMxCustomEnumArray. **Returns** CMxCustomEnumArray