4

Enterprise Architect で UML クラスの属性のデフォルト スコープを変更する方法を知っている人はいますか (私はバージョン 9.2 を使用しています)。新しい属性を追加すると、デフォルトで非公開に設定されます。私は主にデータ モデリングに Enterprise Architect を使用しており、すべての属性を公開する必要があります。

現在、追加するすべての属性のスコープをプライベートからパブリックに手動で変更する必要があるため、新しい属性のデフォルトのスコープをパブリックに設定できれば、かなりの時間を節約できます。

4

1 に答える 1

2

次のスクリプトを使用して、パッケージ内のすべてのプライベート属性をパブリックに変更できます。

!INC Local Scripts.EAConstants-JScript

function main()
{
    Repository.EnsureOutputVisible( "Script" );
    Repository.ClearOutput( "Script" );

    // Get the type of element selected in the Project Browser
    var treeSelectedType = Repository.GetTreeSelectedItemType();

    switch ( treeSelectedType )
    {
        case otPackage :
        {
            // Code for when a package is selected
            var pkg as EA.Package;
            pkg = Repository.GetTreeSelectedObject();

            Session.Output("----------------------------------------");
            Session.Output("Processing... " + pkg.Name);

            for (var i = 0 ; i < pkg.Elements.Count; i++)
            {
                var element as EA.Element;
                element = pkg.Elements.GetAt(i);

                Session.Output("Analyzing : " + element.Name);

                for (var j = 0; j < element.Attributes.Count; j++)
                {
                    var attrib as EA.Attribute;
                    attrib = element.Attributes.GetAt(j);

                    if (attrib.Visibility == "Private")
                    {
                        attrib.Visibility = "Public";
                        attrib.Update();
                        Session.Output("- Changed attribute :" + attrib.Name);
                    }
                }
                element.Update();
                element.Refresh();
            }

            Session.Output("----------------------------------------");
            break;
        }

        default:
        {
            // Error message
            Session.Prompt( "This script does not support items of this type.", promptOK );
        }
    }
}

main();

ヒント:それでもいくつかのプライベート属性が必要な場合は、属性名にフラグ/文字を追加し、上記のスクリプトを変更して属性名を解析し、フラグを見つけて属性名からフラグを削除した場合にのみパブリックに変更します。 .

于 2013-06-21T09:51:52.640 に答える