This article describes how to get a part type from one item and add it to another item.


static void Main()
    SWConnection.Instance.ServerMachineName = "localhost";
    SWConnection.Instance.ServerPort = 1768;
    SWConnection.Instance.LoginName = "admin";
    SWConnection.Instance.Password = "supersecretpassword";
    //Get an item to work with. This example item has exactly one part of the type ISSS to be duplicated.

    var item = SWConnection.Instance.Broker.GetItem(SWHandleUtility.ToHandle("x04000000000010BC"));
    //Get the first ISSS part of the item
    var partToDuplicate = item.GetParts("ISSS").FirstOrDefault() as IswPart;
    //Add a similar part to the item (this does not include part attributes)
    var newPart = item.AddPart(partToDuplicate.swPartType, partToDuplicate.DefObj, partToDuplicate.RefObj);
    //If you also want to copy the part attributes you can do so explicitly
    foreach (var attribute in partToDuplicate.Attributes)
        newPart.SetAttributeDataOfType(attribute.AttributeType, attribute.ValueData);