メインコンテンツまでスキップ

モデルを追加する

ここではモデルのフィールドに子要素のモデルを追加する方法を説明します。

フィールドにモデルを追加する

モデルの特定のフィールドにモデルを追加するには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} を追加しました。");
}