Autodesk.Revit.UI.PostableCommand 是Revit API中的一个界面命令(UI Command),用于在Revit用户界面中提供自定义命令。PostableCommand可以被添加到Revit菜单中,用户可以通过点击菜单项来执行PostableCommand命令。
Autodesk.Revit.UI.PostableCommand命名空间包含了PostableCommand的定义和实现。使用PostableCommand命名空间的前提是引入Revit API。
using Autodesk.Revit.UI.PostableCommand;
Autodesk.Revit.UI.PostableCommand命名空间中的主要类包括:
PostableCommand是一个抽象类,用于派生出自定义命令的实现类。PostableCommand中定义了命令的执行方法以及命令的名称、描述、图标等属性,以便在Revit用户界面中显示。
public abstract class PostableCommand
{
public abstract Result Execute(
ExternalCommandData commandData,
ref string message,
ElementSet elements);
public virtual string Name { get; }
public virtual string Description { get; }
public virtual Bitmap Icon { get; }
}
Result是一个枚举类型,用于表示PostableCommand命令的执行结果。PostableCommand执行的结果可以是成功、失败、中止等。
public enum Result
{
Succeeded,
Failed,
Cancelled
}
要创建自定义的Revit命令,需要定义一个类,继承于PostableCommand抽象类,并实现Execute方法,如下所示:
public class MyCommand : PostableCommand
{
public override Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
// 实现自定义命令的逻辑
// ...
return Result.Succeeded;
}
public override string Name => "My Command";
public override string Description => "This is my command.";
public override Bitmap Icon => Properties.Resources.icon_32;
}
以上代码实现了一个名为“My Command”的自定义命令,图标为32x32像素大小的图片,用于执行一些需要自定义操作的逻辑。最后将该命令添加到Revit菜单中即可,以下代码实现了将“My Command”命令添加到“Add-Ins”菜单中。
public void OnStartup(UIControlledApplication application)
{
MyCommand myCommand = new MyCommand();
application.CreateRibbonTab("My Tab");
RibbonPanel ribbonPanel = application.CreateRibbonPanel("My Tab", "My Panel");
PushButton pushButton = ribbonPanel.AddItem(
new PushButtonData(
"My Command",
myCommand.Name,
Assembly.GetExecutingAssembly().Location,
typeof(MyCommand).FullName)) as PushButton;
pushButton.ToolTip = myCommand.Description;
pushButton.Image = new BitmapImage(new Uri("pack://application:,,,/MyAssemblyName;component/Resources/icon_32.png"));
}
通过以上代码,Revit用户界面中将会出现一个“My Tab”的选项卡,其中包含名为“My Panel”的面板,该面板中包含一个名为“My Command”的按钮,用户点击该按钮即可执行自定义的命令。
Autodesk.Revit.UI.PostableCommand是一个用于创建自定义Revit命令的API,通过继承PostableCommand类,可以实现自定义命令的逻辑,并将该命令添加到Revit用户界面中,方便用户使用。同时,PostableCommand也提供了一些属性,以便在Revit菜单中显示命令的名称、描述和图标。