This article provides an example of how to set values for an enumeration type attribute that has a data dimension of Set using the API.
public void SetAttributeValue_OnAttributeWith_DataTypeEnumeration_And_DimensionSet()
{
// Set up attribute type with values BAT, ACC, IGN1, IGN2 and Start
var attributeType = Broker.CreateAttributeType("ABCD", "Power", "",
SWAttributeDataType.Enumeration, SWAttributeDataDimension.Set, null, null);
attributeType.Range = SWRange.RangeArrayToRange("BAT;ACC;IGN1;IGN2;Start");
// Create item and add an attribute of type ABCD/Power
var item = Broker.TopLibrary.CreateItem("I", "Test Item");
item.AddAttribute(attributeType);
IswAttribute attribute = item.GetAttributeOfType(attributeType);
// Define a value that selects BAT and IGN1
const string value = "<SET><VALUE>BAT</VALUE><VALUE>IGN1</VALUE></SET>";
// Check that the value is valid according to the data type and assign it to the attribute
if (attributeType.ValueIsValid(SWCompression.ZCompressStringToBytes(value)))
attribute.SetValueAsXML(value);
// Assert
SWCompression.ZDecompressToString(attribute.ValueData).Should().Be(value);
}Example Attribute in swArchitect

Setting Values in swExplorer Client

The above value selection in XML format is:
<SET><VALUE>BAT</VALUE><VALUE>IGN1</VALUE></SET>