属性に対するさまざまな処理

<< 目次を表示 >>

ページ位置:  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);

                }

            }

        }

    }