11. Revit API UI 補充
UI篇我也只寫了主要的,部分關聯的沒有寫。
以前發的又不想去改,這里就做一些補充吧。
一、可停靠窗口補充
在可停靠窗口那篇,提到要實現IDockablePageProvider
接口,就略過了。
該接口要求實現一個方法。
public void SetupDockablePane(DockablePaneProviderData data)
{data.FrameworkElement = this;data.InitialState = new DockablePaneState{DockPosition = DockPosition.Tabbed,TabBehind = DockablePanes.BuiltInDockablePanes.ProjectBrowser};
}
方法的參數DockablePaneProviderData
,data的屬性有幾個UI命名空間下其它雷雨接口,我就不講了,沒看懂。
主要會使用到的,就是DockablePaneState
了,這里定義了窗體停靠的位置和方式。
前面講來自Window
的窗體作為可停靠窗口時,會一片漆黑,這或許可以通過IFrameworkElementCreator
來解決。
二、其它未涉及到的類與接口
這里記錄下沒有涉及到的,或沒有去仔細了解的類與接口
類:
-
UIThemeManager
:獲取主題,做跟隨系統主題的界面時有用。 -
FilterDialog
:這個本該在Dialog那篇寫的,但是那會兒沒看到😑。就是打開下面這玩意兒。 -
PromptForFamilyInstancePlacementOptions
:放置族實例的行為的參數,估計在什么方法里用到了,插眼。 -
FamilyInstancePlacingArgs
:沒能檢索到用使用的地方,跳過。 -
RevitLinkUIUtils
:就1個方法,查看加載情況,不知道哪里用了,跳過。 -
ThinLinesOptions
:看不懂在說什么,跳過。 -
UIFabricationUtils
:看不懂在說什么,跳過。
接口:
IControllableDropHandler
,IDropHandler
:不想試,不想寫,看Drag and Drop API。IExternalResourceUIServer
:什么外部資源視圖服務,邊兒去。
枚舉:
枚舉用到了看看就行了。
結尾
今天寫了好幾篇,累了,不想動。
后面,先把Autodesk.Revit.UI.Selection
過一遍,再寫DB
篇的Document
,這里可能會講Events
,到需要創建一些模型時,再講Autodesk.Revit.Creation
,講完后再回到DB。
內容應該會限定在DB,DB下各種專業的就不寫了,不懂,不會,也沒接觸到。
至于學不學,學個錘子,我連建模都不會,等我哪天心血來潮,跑去學會用Blender了再說吧。