Autodesk.Revit.UI.DockablePaneProviderData
是 Revit API 中用于创建自定义停靠窗格的类。该类包含用于指定停靠窗格行为和外观的一组属性。
以下为 Autodesk.Revit.UI.DockablePaneProviderData
类的常用属性:
TargetFramework
:停靠窗格所针对的框架版本。Title
:停靠窗格的标题。Guid
:停靠窗格的唯一标识符。Content
:停靠窗格的内容。可以是 WPF 或 WinForms 控件。IsVisibleByDefault
:停靠窗格是否在 Revit 启动时自动显示。InitialState
:停靠窗格的初始状态。可以是 Docked、Tabbed、Floating 或 AutoHide。AllowedAreas
:停靠窗格在 Revit 界面中允许的位置。可以是 Left、Right、Top、Bottom 或 All。使用 Autodesk.Revit.UI.DockablePaneProviderData
创建自定义停靠窗格需要以下步骤:
Autodesk.Revit.UI.IDockablePaneProvider
接口的类。Autodesk.Revit.UI.DockablePaneProviderData
实例,并设置其中的属性。Autodesk.Revit.UI.IDockablePaneProvider.GetDockablePane
方法中返回该实例。以下为创建一个简单停靠窗格的代码示例:
public class MyDockablePaneProvider : Autodesk.Revit.UI.IDockablePaneProvider
{
public static Autodesk.Revit.UI.DockablePaneId paneId;
public DockablePane GetDockablePane(DockablePaneProviderData data)
{
// 为停靠窗格指定唯一标识符
paneId = new Autodesk.Revit.UI.DockablePaneId(data.Guid);
// 创建停靠窗格实例
DockablePane pane = new DockablePane(paneId, data);
return pane;
}
}
public class MyApp : Autodesk.Revit.UI.IExternalApplication
{
public Autodesk.Revit.UI.Result OnStartup(Autodesk.Revit.UI.ControlledApplication app)
{
// 创建用于显示的控件
System.Windows.Controls.TextBlock textBlock = new System.Windows.Controls.TextBlock();
textBlock.Text = "Hello, world!";
// 创建停靠窗格数据实例
DockablePaneProviderData data = new DockablePaneProviderData
{
TargetFramework = Autodesk.Revit.UI.FrameworkVersion.Revit2019,
Title = "My Dockable Pane",
Guid = new Guid("12345678-1234-1234-1234-1234567890AB"),
Content = textBlock,
InitialState = DockablePaneState.Floating,
AllowedAreas = DockableAreas.Left | DockableAreas.Right
};
// 注册停靠窗格提供程序
MyDockablePaneProvider provider = new MyDockablePaneProvider();
app.RegisterDockablePane(MyDockablePaneProvider.paneId, data, provider);
return Autodesk.Revit.UI.Result.Succeeded;
}
public Autodesk.Revit.UI.Result OnShutdown(Autodesk.Revit.UI.ControlledApplication app)
{
return Autodesk.Revit.UI.Result.Succeeded;
}
}