Split and merge project files
To split or merge a project file, use the methods of the IProjectUnitManager object. The IProjectUnitManager object can be obtained using the UnitManager property of the IProject object.
Caution
When you perform split and merge, the changes are saved. Be sure to check the changes before splitting and merging.
Split project files
To split model units from a project file, use the SplitModelUnits method of the IProjectUnitManager object.
public void SplitModelUnits(ICommandContext c, ICommandParams p)
{
    //Get the model selected in the current navigator
    var currentNavigator = c.App.Window.EditorPage.CurrentNavigator;
    var targetModels = currentNavigator.SelectedItems.OfType<IModel>();
    //Split the retrieved model into model units
    IProjectUnitManager unitManager = c.App.Workspace.CurrentProject.UnitManager;
    unitManager.SplitModelUnits(targetModels);< br />
}
To specify the file name of the model unit when splitting, use the SplitModelUnit method of the IProjectUnitManager object.
public void SplitModelUnit(ICommandContext c, ICommandParams p)
{
    //Get the current model selected in the model navigator
    var targetModel = c.App.Workspace.CurrentModel;
    //Split the retrieved model into model units
    IProjectUnitManager unitManager = c.App.Workspace.CurrentProject.UnitManager;
    //Determine the unit file name
    //Here, as an example, we will create an abbreviated file name if the file name is longer than 8 characters
    //You can also specify any file name, such as including the owning model name in the file name
    var unitName = targetModel.Name;
    if (unitName.Length > 8)
    {
        unitName = $"{unitName.Substring(0, 7)}_";
    }
    //Specify the unit file name and split it
    unitManager.SplitModelUnit(targetModel, unitName);< br />
}
Note
When specifying a unit file name, make sure it is unique within the project.
Integrating project files
To integrate model units into a project file, use the UnifyModelUnits method of the IProjectUnitManager object.
public void UnifyModelUnits(ICommandContext c, ICommandParams p)
{
    //Get the models selected in the current navigator
    var currentNavigator = c.App.Window.EditorPage.CurrentNavigator;
    var targetModels = currentNavigator.SelectedItems.OfType<IModel>();
    //Get the model units to which the retrieved models belong
    IEnumerable<IModelUnit> modelUnits = targetModels.Select(model => model.ModelUnit).Distinct();
    //Integrate the retrieved model units into the project file
    IProjectUnitManager unitManager = c.App.Workspace.CurrentProject.UnitManager;
    unitManager.UnifyModelUnits(modelUnits);< br />
}