public Result Execute(
ExternalCommandData commandData,
ref string message,
ElementSet elements)
{
UIApplication app = commandData.Application;
UIDocument uidoc = app.ActiveUIDocument;
Document doc = uidoc.Document;
Transaction tx = new Transaction( doc,
"Duplicate Elements" );
tx.Start();
//Group group = doc.Create.NewGroup( // 2012
// uidoc.Selection.Elements );
Group group = doc.Create.NewGroup( // 2013
uidoc.Selection.GetElementIds() );
LocationPoint location = group.Location
as LocationPoint;
XYZ p = location.Point;
XYZ newPoint = new XYZ( p.X, p.Y + 10, p.Z );
Group newGroup = doc.Create.PlaceGroup(
newPoint, group.GroupType );
//group.Ungroup(); // 2012
group.UngroupMembers(); // 2013
//ElementSet eSet = newGroup.Ungroup(); // 2012
ICollection<ElementId> eIds
= newGroup.UngroupMembers(); // 2013
// change the property or parameter values
// of the member elements as required...
tx.Commit();
return Result.Succeeded;
}