我有一个设置“标记”参数值的程序,每个“相同”的梁或柱都是唯一的。这通常会导致多个梁具有相同的“标记”参数,并且 Revit 会显示奇怪的“警告 - 可以忽略......元素具有重复的“标记”值”(奇怪,因为它不能真正被忽略,因为它总是显示)。
有谁知道如何在程序执行期间关闭此警告?我可能会收集其他元素类型(例如连接、加劲肋甚至基础)并分配“标记”参数,并且最好避免该警告出现 4 或 5 次。
这实际上很简单。您可以使用调用IFailurePreprocessor
来捕获所有这些警告并从代码中消除它们:
创建一个预处理器类:
public class DuplicateMarkSwallower : IFailuresPreprocessor
{
public FailureProcessingResult PreprocessFailures(FailuresAccessor a)
{
var failures = a.GetFailureMessages();
foreach (var f in failures)
{
var id = f.GetFailureDefinitionId();
if (BuiltInFailures.GeneralFailures.DuplicateValue == id)
{
a.DeleteWarning(f);
}
}
return FailureProcessingResult.Continue;
}
}
然后你可以像这样使用它:
using (var trans = new Transaction(_doc, "Creating Numbers"))
{
trans.Start();
// Set failure handler
var failureOptions = trans.GetFailureHandlingOptions();
failureOptions.SetFailuresPreprocessor(new DuplicateMarkSwallower());
trans.SetFailureHandlingOptions(failureOptions);
// do your thing here
trans.Commit();
}