Here is some jscript I wrote some time ago for changing elements author. It might help you get started.
//!INC Local Scripts.EAConstants-JScript
// =================================================================================
// Name: Change Author
// Changes the author names to be consistent
// NOTE: Requires a package to be selected in the Project Browser
//
// Related APIs
// =================================================================================
// Element API - http://www.sparxsystems.com/enterprise_architect_user_guide/10/automation_and_scripting/element2.html
// Repository API http://www.sparxsystems.com/enterprise_architect_user_guide/10/automation_and_scripting/repository3.html
// Tagged Value API http://www.sparxsystems.com/enterprise_architect_user_guide/10/automation_and_scripting/taggedvalue.html
function StartWithSelectedPackage()
{
// Show the script output window
Repository.EnsureOutputVisible( "Script" );
Session.Output( "JScript Change Author" );
Session.Output( "===========================" );
var thePackage as EA.Package;
thePackage = Repository.GetTreeSelectedPackage();
if ( thePackage != null && thePackage.ParentID != 0 )
{
NavigatePackage( "", thePackage );
}
else
{
Session.Prompt( "This script requires a package to be selected in the Project Browser.\n" +
"Please select a package in the Project Browser and try again.", promptOK );
}
Session.Output( "Done!" );
}
//
// Outputs the packages name and elements, and then recursively processes any child
// packages
//
// Parameters:
// - indent A string representing the current level of indentation
// - thePackage The package object to be processed
//
function NavigatePackage( indent, thePackage )
{
// Cast thePackage to EA.Package so we get intellisense
var currentPackage as EA.Package;
currentPackage = thePackage;
// Add the current package's name to the list
Session.Output( indent + currentPackage.Name + " (PackageID=" +
currentPackage.PackageID + ")" );
// Convert the elements this package contains
ProcessElementsInPackage( indent + " ", currentPackage );
// Recursively process any child packages
var childPackageEnumerator = new Enumerator( currentPackage.Packages );
while ( !childPackageEnumerator.atEnd() )
{
var childPackage as EA.Package;
childPackage = childPackageEnumerator.item();
NavigatePackage( indent + " ", childPackage );
childPackageEnumerator.moveNext();
}
}
//
// Converts the elements of the provided package to the Script output window
//
// Parameters:
// - indent A string representing the current level of indentation
// - thePackage The package object to be processed
//
function ProcessElementsInPackage( indent, thePackage )
{
// Cast thePackage to EA.Package so we get intellisense
var currentPackage as EA.Package;
currentPackage = thePackage;
// Iterate through all elements and add them to the list
var elementEnumerator = new Enumerator( currentPackage.Elements );
while ( !elementEnumerator.atEnd() )
{
var currentElement as EA.Element;
currentElement = elementEnumerator.item();
ProcessElements(indent+" ",currentElement );
elementEnumerator.moveNext();
}
}
function ProcessElements( indent, theElement )
{
// Cast theElement to EA.Element so we get intellisense
var currentElement as EA.Element;
// Debug Comment out when run for real
Session.Output( indent + "CALLED: ProcessElements for element " + theElement.Name );
currentElement = theElement;
currentElement.ObjectType
ChangeAuthor(indent+" ",currentElement );
// Iterate through all embedded elements and add them to the list
var elementEnumerator = new Enumerator( currentElement.Elements );
while ( !elementEnumerator.atEnd() )
{
var currentElement as EA.Element;
currentElement = elementEnumerator.item();
ProcessElements(indent+" ",currentElement );
elementEnumerator.moveNext();
}
}
// Changes name of author
//
// Parameters:
// - indent A string representing the current level of indentation
// - theElement The element object to be processed
function ChangeAuthor( indent, theElement )
{
// Debug Comment out when run for real
Session.Output( indent + "CALLED: ChangeAuthor(" + theElement.Name + ")" );
// If stereotype matches source list then convert
if (theElement.Author=="Old author name")
{
Session.Output( indent + " Changed Author: " + theElement.Name );
//uncomment stuff below to actually do conversion.
theElement.Author = "New Author Name";
//Overright the stereotype list to have only one stereotype
theElement.Update();
}
}
StartWithSelectedPackage();