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

フィールド値を更新する

ここではモデルに対するフィールド値の更新の基礎について説明します。

説明の対象となるフィールドの型は、文字列・整数などのプリミティブな型と列挙型です。クラス型のフィールドに対する更新は、目的にあわせて以下を参照してください。

プリミティブな型と列挙型のフィールド値を更新する場合は、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);
}