モデルを追加する
ここではモデルのフィールドに子要素のモデルを追加する方法を説明します。
フィールドにモデルを追加する
モデルの特定のフィールドにモデルを追加するにはIModel
オブジェクトのAddNewModel
メソッドを用います。追加先は末尾となります。
public void AddNewModel(ICommandContext c, ICommandParams p)
{
IModel model = c.App.Workspace.CurrentModel;
// "Components"フィールドに"SoftwareComponent"メタクラスのモデルを追加します
model.AddNewModel("Components", "SoftwareComponent");
}
指定位置にモデルを追加する
モデルの特定のフィールドかつ、特定位置にモデルを追加するにはIModel
オブジェクトのAddNewModelAt
メソッドまたはAddNewModelTo
メソッドを用います。追加先は末尾となります。
以下は「レーンキープアシスト機能要件」の子要素のモデルで「機能要件」という名前のモデルの前にモデルを追加する例です。
public void AddNewModelTo(ICommandContext c, ICommandParams p)
{
IModel model = c.App.Workspace.CurrentProject.GetAllChildren().FirstOrDefault(m => m.Name == "レーンキープアシスト機能要件");
var targetModel = model.GetAllChildren().FirstOrDefault(m => m.Name == "機能要件");
string fieldName = "SubRequirements";
string className = "SystemFunctionalRequirement";
var addModel = model.AddNewModelTo(fieldName, className, "before", targetModel);
c.App.Output.WriteLine("sample", $"モデル : {model.Name} の フィールド : {fieldName} に、 {addModel.Name} を追加しました。");
}