revit開發中,事務應用非常頻繁,所有revit api提供了使用者顯式地指定標籤值。來控制在revit的iexternalcommand中,是否使用事務,其使用的屬性為transactionmode。
如下:
[autodesk.revit. attributes.transaction(autodesk.revit.attributes.transactionmode.automatic)]public
class
classl: iexternalcommand
}
transactionmode分為automatic、manual和readonly。這三種transactionmode都只在活動文件範圍內有效。
①transactionmode.automatic:
revit會在呼叫外部命令之前自動建立乙個transaction,並且該transaction會在外面命令結朿時提交或者回滾。如果外部命令執行成功,則提交transaction;如果有異常,則回滾。在該模式下,外部命令不能再建立自己的transaction,但是可以建立 subtransactions。
②transactionmode.manual:
此模式表示revit不會自動建立乙個transaction。如果使用者需要修改revit摸型,則需要自行建立transaction,並且自行管理這個transaction提交還是回滾。
③transactionmode.readonly:
在該模式下,外部命令不能有任何的transaction,否則在建立transaction或者修改 revit文件都會丟擲異常。
Revit二次開發事務Transaction相關
transaction是用來處理revit中的有關改變模型的事務。此處提到的模型,基本上指的是一切element,注意,像line等不屬於element.看下面的例子 sketchplane sketchplane null string txt origin line line null usin...
Revit二次開發 初學
前言 由於工作需要,近期開始學習revit二次開發知識。學習的同時將學習過程與小夥伴們一起分享,希望後來的小夥伴在看到我的學習筆記的時候有所幫助。說明由於revit的版本在不斷更新中,所以我在學習revit的時候選擇了從revit自帶的幫助檔案開始學習,不同版本的revit,就看相應的help檔案。...
Revit二次開發 Revit擴充套件儲存資料
revit二次開發過程中,需要將相關資訊儲存到rvt檔案中,再次開啟rvt的時候,可以通過讀取這些資訊,知道當前構件的基本狀態,或者將乙個特殊的資訊儲存到rvt檔案中,從revit2012開始引入了擴充套件儲存這個新技術,就是可以把一些資料儲存在revit中的某乙個物件上。且這個儲存操作,只能通過程...