1.返回值(E
xecute
方法)
1.1
Result.Succeeded
当返回值为当前函数时,操作正确,不弹出任何提示框。
1.2
Result.Cancelled
返回值为当前函数时,操作失败,
revit将撤销所有外部命令的操作和修改
,弹出Revit自带错误提示框。
错误框上的确定和取消按钮都可以点击。
错误内容可通过传出参数 【
message
】变量赋值。
1.3
Result.Failed
返回值为当前函数时,操作失败,
revit将撤销所有外部命令的操作和修改,
弹出Revit自带错误提示框。
错误框上的确定和取消按钮,确定按钮为不可点击。
错误内容可通过传出参数 【
message
】变量赋值。
2.提示框
2.1 普通提示框
TaskDialog tdres = TaskDialog.Show("标题","内容");
2.2 按钮点击可自定义处理提示框
TaskDialogResult tdres = TaskDialog.Show("标题","内容",TaskDialogCommonButtons.Yes|TaskDialogCommonButtons.No);
用户点击这个弹框后的确定或者取消,会执行以下判断
if (tdres == TaskDialogResult.Yes) {
return Result.Succeeded;
}else if (tdres == TaskDialogResult.No){
elements = uiDoc.Selection.Elements;messages = "点击了NO,错误消息出现!";return Result.Failed;
} else {
return Result.Cancelled;
}
3. 事务 ( Transaction )(必选)
3.1 TransactionMode.Automatic
自动创建、提交事务,抛出异常后自动回滚。在该模式下不能自己创建事务,但是可以创建Sub Transaction。
3.2 TransactionMode.Manual
手动创建、提交事务,抛出异常后自动回滚。在改模式下需要自己管理事务,
Transacti new Transaction(commandData.Application.ActiveUIDocument.Document, "DeleteObject");transactoin.Start();//开始事务transactoin.Commit();//提交事务transactoin.RollBack();//事务回滚 这的异常后会不会回滚还没测试,按道理说只要返回值不为 Succeeded 就会撤销回滚所有操作!
4.Journaling属性(可选)3.3 TransactionMode.ReadOnly事务为只读模式,创建或者提交事务都会抛出异常。
4.1 JournalingMode.NoCommandData
该模式下,revit不会把 ExternalCommandData 写到 ExternalCommandData.
Journaling属性中。(这个模式的意义是在于,减少数据处理?)
4.2
JournalingMode.UsingCommandData
该模式下,revit会把 ExternalCommandData 写到 ExternalCommandData.
Journaling属性中,这个模式是默认模式。
通过 IDictionary<string, string> JournalData = commandData.JournalData;方式取出。
5.接口类介绍
5.1 Autodesk.Revit.UI.UIApplication
提供了访问用户界面 RibbonPanels(控制面板?)、获得用户界面的活动文档等(多个文档最顶层的文档属于活动文档)。(等?等是还得自己查API咯)
5.2 Autodesk.Revit.ApplicationServices.Application
提供访问其他应用级别的接口。(访问其他插件的接口,还是其他插件正在使用的数据。写不清楚啊)
5.3Autodesk.Revit.UI.UIDocument
UI级别的接口文档类,比如通过Selection获得用户选中的组建或者UI。
5.4Autodesk.Revit.DB.Document
提供访问其它文档基本内容的文档类(其他文档,也没说访问当前文档?模糊不清的翻译)
6.应用类介绍
6.1
Application
6.1.1 获取
Application
Autodesk.Revit.ApplicationServices.Applicati commandData.Application.Application;
6.1.2 Application属性
app.VersionBuild + "," + app.VersionNumber + "," + app.VersionName + "," + app.Product + "," + app.Language + ",";
6.1.3 OpenSharedParameterFile方法
参数共享机制,app.OpenSharedParameterFile();(并不知道怎么用)
6.2UIApplication
6.2.1 获取UIApplication
UIApplicati commandData.Application;
6.2.2 插件管理
通过uiapp.ActiveAddInId获取当前活跃的外部 命令或者,外部应用的ID.
通过uiapp.LoadedApplications获得一个成功加载插件的列表(成功被加载的插件的列表?这样读是不是)
6.2.3自定义按钮创建
7.document文档类
7.1 UIDocument
7.1.1 获取
UIDocument uiDoc = commandData.Application.ActiveUIDocument;
7.1.2参数
7.2 Document
获取元素,管理元素和文件管理。
7.2.1获取
Document doc = uiDoc.Document;
7.2.1参数