Поскольку я довольно новый пользователь, когда дело доходит до Enterprise Architect, я застрял в этой проблеме.
Мне нужно написать скрипт для преобразования каждого элемента, отмеченного как <<property>>
вДиаграмма классов, в атрибут этого конкретного класса.
Пока я пришел к этому, и я не уверен, как я могу изменить каждое свойство в атрибут.
Когда я пытаюсьчтобы добавить новый атрибут, например, такой:
selectedObject.Attributes.AddNew("example", "int");
Вылетает с ошибкой, что эта коллекция пустая или не является объектом.
Даже когда я добавляю атрибут в класс вручную, а затемпопробуйте получить к нему доступ с помощью метода selectedObject.Attributes.GetAt(0);
, он по-прежнему вылетает с ошибкой: Script.script 'Attributes' is null or not an object, Line: 39.
Ниже приведен мой полный код:
var currentDiagram as EA.Diagram;
currentDiagram = Repository.GetCurrentDiagram();
if ( currentDiagram != null )
{
// Get a reference to any selected connector/objects
var selectedObjects as EA.Collection;
selectedObjects = currentDiagram.SelectedObjects();
if ( selectedObjects.Count > 0 )
{
// One or more diagram objects are selected
var selectedObject as EA.Element;
for(var i = 0; i < selectedObjects.Count; ++i)
{
selectedObject = selectedObjects.GetAt(i);
Session.Output(selectedObject.Attributes.GetAt(0));
selectedObject.Attributes.AddNew("example", "int");
}
Session.Output(selectedObject.Name);
}