The following code snippet shows how to get and set values for a User type attribute of data type Set using the SystemWeaver API:

// Setting value.
public void SetAttributeValue_OnAttributeWith_DataTypeUser_And_DimensionSet()
{
    // Set up attribute type.
    var attributeType = SWConnection.Instance.Broker.CreateAttributeType("ABCD", "User", "",
        SWAttributeDataType.User, SWAttributeDataDimension.Set, null, null);

    // Create or get users and add them to a Users list.
    var user1 = SWConnection.Instance.Broker.CreateUser("ch", "Charles", "ABC123");
    var user2 = SWConnection.Instance.Broker.CreateUser("ro", "Robin", "DEF456");
    //var user1 = SWConnection.Instance.Broker.GetUserWithName("ch");
    //var user2 = SWConnection.Instance.Broker.GetUserWithName("ro");

    var userList = SWConnection.Instance.Broker.Lists.NewUserList();
    userList.Add(user1);
    userList.Add(user2);

    // Create item and add an attribute of type ABCD/User.
    var item = SWConnection.Instance.Broker.TopLibrary.CreateItem("I", "Test Item");
    item.AddAttribute(attributeType);
    IswAttribute attribute = item.GetAttributeOfType(attributeType);

    // Set users to the attribute.
    ((IswUserAttribute)attribute).Users = userList;
}

// Getting value.
public void GetAttributeValue_OnAttributeWith_DataTypeUser_And_DimensionSet()
{
    // Get attributeType and item.
    var attributeType = SWConnection.Instance.Broker.AttributeType("ABCD");
    var item = SWConnection.Instance.Broker.GetItem(SWHandleUtility.ToHandle("x0400000123456789"));

    // Get the attribute from the item and access its users.
    IswAttribute attribute = item.GetAttributeOfType(attributeType);
    var users = ((IswUserAttribute)attribute).Users;
}