This article provides two examples for how to update a parent's relation (part) so that it points to the latest version of a defining item (child).
Example
public void UpdateParentPartExplicit(IswItem parent, IswItem oldChild, IswItem newChild)
{
IswPart part = parent.FindDefObjPart("ASID", oldChild);
if (part != null)
part.DefObj = newChild;
}
public void UpdateParentParts(IswItem parent, IswItem newChild)
{
foreach(IswPart part in parent.GetAllParts())
{
if (part.DefObj is IswItem item)
{
if (item.AncestorHandle == newChild.AncestorHandle)
part.DefObj = newChild;
}
}
}