复制使用ElementTransformUtils.CopyElement();


复制使用ElementTransformUtils.CopyElement();

[Transaction(TransactionMode.Manual)]

[Regeneration(RegenerationOption.Manual)]

public class cmdDeleteCopy : IExternalCommand

{

    public Result Execute(ExternalCommandData cmdData, ref string msg, ElementSet elements)

    {

        UIDocument uiDoc = cmdData.Application.ActiveUIDocument;


        Transaction ts = new Transaction(uiDoc.Document, "delete");

        ts.Start();


        //选择一个元素

        Reference reference = uiDoc.Selection.PickObject(ObjectType.Element, "请选择第一个对象");

        //复制

        ElementTransformUtils.CopyElement(uiDoc.Document, uiDoc.Document.GetElement(reference).Id, new XYZ(10, 10, 0));

        //删除

        uiDoc.Document.Delete(uiDoc.Document.GetElement(reference));


        ts.Commit();


        return Result.Succeeded;

    }

}