一、本节课程
C# Revit二次开发基础/核心编程--- IExternalCommand/IExternalApplicaiton
二、本节要讲解的知识点
IExternalCommand/IExternalApplicaiton帮助入门的案例
- 具体内容
1、IExternalCommand外部命令
(1)基本原理:如果Revit没有其他命令在调用,或者是没有处于编辑模式,ExternalCommand会被激活。一旦插件被选中,外部命令对象就会被创建出来,并且执行Execute函数。执行完毕后,外部命令对象就被销毁。在两个命令之间数据不能保存在对象中,要通过其他方式来保存。
(2)IExternalCommand,用户通过外部命令来拓展功能的话,必须实现这个接口。重载Execute函数。作为外部命令的主函数来调用。
public interface IExternalCommand { Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements); } |
public Autodesk.Revit.UI.Result Execute(ExternalCommandData revit, ref string message, ElementSet elements)
{
TaskDialog.Show("Revit", "Hello World");
return Autodesk.Revit.UI.Result.Succeeded;
}
(3)输入参数 ExternalCommandData
包含了外部命令所需要的Application以及一些视图的引用。在外部命令中,所有的Revit的数据都可以通过这个参数直接或者间接的取到。Application和Document是处于最顶层的,主要分为Application、UIApplication、Document、UIDocument这几个大类。
UIApplication uiApplication =revit.Application;
Application application=uiApplication.Application;
UIDcument uiDocument=uiApplication.ActiveUIDocument;
Document document=uiDocument.Document;
(4)输出参数message
外部命令可以通过这个参数返回执行过程中的错误信息。这个参数作用于整个外部命令的执行过程,用户可以在外部命令执行过程中的任何时候给这个信息设值或者追加信息。当外部命令的Execute函数返回Autodesk.Revit.UI.Result.Failed或者Autodesk.Revit.UI.Result.Canceled,这个错误信息将被显示在UI上。