[Revit开发]先执行命令,再选取元素或者属性信息
1 namespace ConsoleApp1 2 { 3 [Transaction(TransactionMode.Manual)] 4 5 public class UIDocument_Selection2 : IExternalCommand 6 { 7 public Result Execute(ExternalCommandData Revit,ref string message,ElementSet elements) 8 { 9 try 10 { 11 UIDocument document = Revit.Application.ActiveUIDocument;//获取文档,点选实体,给下面提供元素 12 13 Reference pickElemRef = document.Selection.PickObject(ObjectType.Element);//提供的元素创建引用 14 15 Element elem = document.Document.GetElement (pickElemRef.ElementId);//引用元素ID,这里我理解的是,如果你需要选择一个元素并获取它的信息,必须要先获取到ID才可以 16 String info = "所选元素类型为:"; 17 info+="\n\t"+elem.GetType().ToString(); //GetType获取当前实例类型,ToString返回表示当前对象的字符串(也就是名称) 18 19 TaskDialog.Show("Revit",info); 20 } 21 catch(Exception ex) 22 { 23 message = ex.Message; 24 return Result.Failed; 25 } 26 return Result.Succeeded; 27 } 28 } 29 }
需要注意的就是,API变了,获取元素选择,必须从UIDocument这个类实现