def relocate_instance(part, target_parent, name=None, include_children=True):
    if not name:
        name = "CLONE - {}".format(part.name)
    part_model = part.model()
    target_parent_model = target_parent.model()
    relocate_model(part=part_model, target_parent=target_parent_model, name=part_model.name,
                   include_children=include_children)
    if include_children:
        part.populate_descendants()
    moved_instance = move_part_instance(part_instance=part, target_parent=target_parent, part_model=part_model,
                                        name=name, include_children=include_children)
    return moved_instance