フィールド値を更新する
ここではモデルに対するフィールド値の更新の基礎について説明します。
説明の対象となるフィールドの型は、文字列・整数などのプリミティブな型と列挙型です。クラス型のフィールドに対する更新は、目的にあわせて以下を参照してください。
プリミティブな型と列挙型のフィールド値を更新する場合は、IModelオブジェクトのSetFieldメソッドを用います。
文字列・整数値・実数値のフィールド値を更新する
文字列・整数値・実数値のフィールド値の更新は、IModelオブジェクトのSetFieldメソッドの第2引数に設定値を指定します。
public void SetField(ICommandContext c, ICommandParams p)
{
    IModel model = c.App.Workspace.CurrentModel;
 
    // 文字列
    // "StringField"という名前の文字列フィールドに、文字列"サンプル"を設定します
    model.SetField("StringField", "サンプル");
    // 整数値
    // "IntegerField"という名前の整数型フィールドに、整数値100を設定します
    model.SetField("IntegerField", 100);
    // 実数値
    // "IntegerField"という名前の整数型フィールドに、実数値123.45を設定します
    model.SetField("DoubleField", 123.45);
}
現在のモデルのフィールド値を加工して、同じフィールドに設定することも可能です。
public void SetField(ICommandContext c, ICommandParams p)
{
    IModel model = c.App.Workspace.CurrentModel;
 
    // 名前フィールドの値を取得します
    var name = model.GetFieldString("Name");
    // 名前フィールドの値の末尾に"_"を追加して更新します
    model.SetField("Name", $"{name}_");
}
列挙型のフィールド値を更新する
列挙型のフィールド値の更新は、IModelオブジェクトのSetFieldメソッドの第2引数に設定する列挙リテラル値を指定します。
public void SetField(ICommandContext c, ICommandParams p)
{
    IModel model = c.App.Workspace.CurrentModel;
 
    // フィールドの型である列挙型を取得します
    IField enumField = model.Metaclass.GetField("EnumField");
    IEnum type = enumField.TypeEnum;
    // 設定値である列挙リテラル値を取得します
    // "SampleLiteralA"という名前の列挙リテラル値を設定する場合
    IEnumLiteral literal = type.NameOf("SampleLiteralA");
    model.SetField("EnumField", literal);
}
真偽値の フィールド値を更新する
真偽値型のフィールド値の更新は、IModelオブジェクトのSetFieldメソッドの第2引数に設定する真偽値を指定します。
public void SetField(ICommandContext c, ICommandParams p)
{
    IModel model = c.App.Workspace.CurrentModel;
 
    // "BooleanField"という名前の真偽値型フィールドに、true を設定します
    model.SetField("BooleanField", true);
}