Revit二次开发之"复制删除元素"

复制使用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(10100));
        
//删除
        uiDoc.Document.Delete(uiDoc.Document.GetElement(reference));

        ts.Commit();

        
return Result.Succeeded;
    }
}
from:http://revit.5d6d.com/thread-1236-1-1.html
posted @ 2011-09-15 08:03  大气象  阅读(2231)  评论(0)    收藏  举报
http://www.tianqiweiqi.com