【发布时间】:2019-10-20 16:07:18
【问题描述】:
嗨, 我创建了多个外部命令并将其停靠到它自己的 Revit 选项卡中。但是,当我将 winform 添加到其中一个命令时,它现在要求我在 Revit 启动时提供另一个安全插件弹出窗口。正如您在 GiF 中看到的那样。有没有办法摆脱它?
这是我的外部命令接口代码:
` [事务(Autodesk.Revit.Attributes.TransactionMode.Manual)] 公共类 DeleteUnusedFilter : IExternalCommand {
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
UIDocument uidoc = commandData.Application.ActiveUIDocument;
Document doc = uidoc.Document;
var Form = new DeleteFilter(commandData);
try
{
var fltr = new FilterData(doc).GetUnusedFilter();
if (fltr.Count == 0)
{
MessageInfo.Display("No unused View Filters in Document");
Form.Close();
return Result.Cancelled;
}
Form.ShowDialog();
return Autodesk.Revit.UI.Result.Succeeded;
}
catch (Exception ex)
{
message = ex.Message;
return Autodesk.Revit.UI.Result.Failed;
}
}
}`
这里是winform代码:
public partial class DeleteFilter : System.Windows.Forms.Form
{
Document doc;
List<Element> FiltersToDelete;
public DeleteFilter(ExternalCommandData commandData)
{
InitializeComponent();
doc = commandData.Application.ActiveUIDocument.Document;
}
private void DeleteFilter_Load(object sender, EventArgs e)
{
callonload();
}
}
这里是注册插件的 UiApplication:
//ribbon for delete unused filter
string path3 = Assembly.GetExecutingAssembly().Location;
var button3 = new PushButtonData("Button2", "Delete\n Unused Filter", path2, "RevitCode.DeleteUnusedFilter");
var panel3 = application.CreateRibbonPanel("Angelo Tools", "Delete");
Uri imagePath3 = new Uri(@"C:\ProgramData\Autodesk\Revit\Addins\2019\icon\DeleteFtr.png");
BitmapImage image3 = new BitmapImage(imagePath3);
button3.ToolTip = "Delete Unused View Filters";
PushButton Push_button3 = panel3.AddItem(button3) as PushButton;
Push_button3.LargeImage = image3;
return Result.Succeeded;
提前致谢!
【问题讨论】: