<< 目次を表示 >> ページ位置: API・アドイン・スクリプト > API > サンプルコード > 属性に対するさまざまな処理 |
class AttributeOperationSample
{
public void AttributeLifeCycle(EA.Repository repository)
{
// 対象の要素のIDを指定して要素を取得
EA.Element element = repository.GetElementByID(10);
for (short i=0; i < element.Attributes.Count; i++ )
{
// 要素の属性を順次取得して表示
EA.Attribute attribute = element.Attributes.GetAt(i);
Console.WriteLine("attribute = " + attribute.Name);
// 属性に新しい制約を追加
EA.AttributeConstraint newAttributeConstraint = (EA.AttributeConstraint)attribute.Constraints.AddNew("> 123", "Precision");
newAttributeConstraint.Update();
attribute.Constraints.Refresh();
// 属性に追加した制約を削除
for (short j = 0; j < attribute.Constraints.Count; j++)
{
EA.AttributeConstraint attributeConstraint = attribute.Constraints.GetAt(j);
Console.WriteLine("Constraint: " + attributeConstraint.Name);
if (attributeConstraint.Name == "> 123")
{
attribute.Constraints.DeleteAt(j, true);
Console.WriteLine("Delete Constraint");
break;
}
}
// 属性から名前"Type2"のタグ付き値を削除
for (short j = 0; j < attribute.TaggedValues.Count; j++)
{
EA.AttributeTag attributeTag = attribute.TaggedValues.GetAt(j);
if (attributeTag.Name == "Type2")
{
attribute.TaggedValues.DeleteAt(j, false);
Console.WriteLine("Deleting");
}
}
// 属性に名前"Type2"のタグ付き値を追加
EA.AttributeTag newAttributeTag = (EA.AttributeTag)attribute.TaggedValues.AddNew("Type2", "Number");
newAttributeTag.Update();
attribute.TaggedValues.Refresh();
// 属性のタグ付き値の名前を表示
foreach (EA.AttributeTag showAttributeTag in attribute.TaggedValues)
{
Console.WriteLine("Tagged Value: " + showAttributeTag.Name);
}
// 名前"m_Tootle"の属性は削除
if (attribute.Name == "m_Tootle")
{
Console.WriteLine("delete attribute");
element.Attributes.DeleteAt(i, false);
}
}
}
}