当我运行一个打开多个模型的加载项时,我需要禁止链接.rvt文件的实例需要Coordination Review 对话框,因为我不希望用户需要单击通过一堆对话框。我已经为UIApplication.DialogBoxShowing
添加了一个事件处理程序,它会检查对话框是否有HelpId == 1011
(找到here),这是我正在寻找的对话框。但是,当我尝试e.OverrideResult
方法时,似乎总是取消操作。我已尝试TaskDialogResult.Ok
和DialogResult.Ok
,但他们都取消了操作。
这是我的事件处理程序:
private void application_DialogBoxShowing(object sender,
DialogBoxShowingEventArgs e)
{
if (e.HelpId == 1011)
e.OverrideResult((int)TaskDialogResult.Ok);
}
我可以传递哪些对话框结果以继续操作?
答案 0 :(得分:1)
而不是在对话框显示时使用事件处理程序,而是决定创建一个与UIApplication.Application.FailuresProcessing
事件关联的事件处理程序。我从Building Coder找到了有关失败API的信息。
以下代码将禁止所有警告。
private void Application_FailuresProcessing(object sender,
FailuresProcessingEventArgs e)
{
FailuresAccessor failuresAccessor = e.GetFailuresAccessor();
IEnumerable<FailureMessageAccessor> failureMessages =
failuresAccessor.GetFailureMessages();
foreach (FailureMessageAccessor failureMessage in failureMessages)
{
if (failureMessage.GetSeverity() == FailureSeverity.Warning)
failuresAccessor.DeleteWarning(failureMessage)
}
e.SetProcessingResult(FailureProcessingResult.Continue)
}
如果您只想取消特定的协调审核消息,则可以为failureMessage.GetFailureDefinitionId().Guid == new Guid("3d983f31-9ee3-4c3a-bed8-663b32cecec5")
添加if语句检查。