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了再说吧。