Autodesk.Revit.UI.ExternalCommandData是Autodesk Revit API中的一个类,它表示由外部命令处理程序(External Command)使用的数据。
ExternalCommandData(Application app, Autodesk.Revit.DB.View view)
创建一个新的ExternalCommandData对象,并设置该命令打开的Revit应用程序和当前视图。
Application
:Revit应用程序对象JournalData
:用于支持Revit的自动化脚本功能的数据对象JournalFileName
:用于支持Revit的自动化脚本功能的数据文件名称JournalCreationTimestamp
:用于支持Revit的自动化脚本功能的数据文件创建时间戳Messageable
:指示命令是否可以显示消息框的布尔值(由用户控制)View
:当前Revit视图对象GetStorage(ClassID classId, String key) -> Object
获取指定ClassID和键值的存储数据对象。
GetDocument() -> Autodesk.Revit.DB.Document
获取包含当前视图的Revit文档对象。
GetExecutionContext() -> Autodesk.Revit.Attributes.ExecutionContex
获取命令执行上下文的执行环境对象。
OpenAndActivateDocument(String path) -> Autodesk.Revit.DB.Document
打开指定路径的Revit文档,并将其激活。
ToString() -> String
将ExternalCommandData对象转换为字符串表示形式。
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
// 获取当前视图的文档对象
var doc = commandData.GetDocument();
// 获取当前的应用程序对象
var app = commandData.Application;
// 显示消息框
if (commandData.Messageable)
TaskDialog.Show("Title", "Message");
// 打开并激活指定路径的Revit文档
var otherDoc = commandData.OpenAndActivateDocument(@"C:\path\to\other\document.rvt");
// 从存储中获取数据对象
var myData = (MyData)commandData.GetStorage(ClassID, "myKey");
return Result.Succeeded;
}