在Revit 里很多操作都会弹出警告和错误提示,
比如墙的高度降低,墙顶部的窗出现在墙的外面
这个会弹一个错误提示框,
比如在同一个位置创建两面墙,
会弹出一个警告提示框
如果在自己写的程序里出现了这种弹窗,会影响到用户体验,
其实API里提供一些错误和警告的处理,
下面提供一个例子解决上面的两种情况,
关键代码如下:
public class FailuresPreprocessor : IFailuresPreprocessor
{
public FailureProcessingResult PreprocessFailures(FailuresAccessor failuresAccessor)
{
IList<FailureMessageAccessor> listFma =failuresAccessor.GetFailureMessages();
if (listFma.Count == 0)
return FailureProcessingResult.Continue;
foreach (FailureMessageAccessor fma in listFma)
{
if (fma.GetSeverity() == FailureSeverity.Error)
{
if (fma.HasResolutions())
failuresAccessor.ResolveFailure(fma);
}
if (fma.GetSeverity() == FailureSeverity.Warning)
{
failuresAccessor.DeleteWarning(fma);
}
}
return FailureProcessingResult.ProceedWithCommit;
}
}
bool testError = true;
// 处理错误
if (testError)
{
Wall wall = doc.GetElement(uidoc.Selection.PickObject(ObjectType.Element)) as Wall;
Transaction trans = new Transaction(doc, "test");
trans.Start();
FailureHandlingOptions fho = trans.GetFailureHandlingOptions();
fho.SetFailuresPreprocessor(new FailuresPreprocessor());
trans.SetFailureHandlingOptions(fho);
Parameter p = wall.LookupParameter("无连接高度");
double h = p.AsDouble();
p.Set(h / 2);
trans.Commit();
}
// 处理警告
else
{
FilteredElementCollector lvlFilter = new FilteredElementCollector(doc);
lvlFilter.OfClass(typeof(Level));
Level lvl = lvlFilter.First() as Level;
Transaction trans1 = new Transaction(doc, "wall");
FailureHandlingOptions fho1 = trans1.GetFailureHandlingOptions();
fho1.SetFailuresPreprocessor(new FailuresPreprocessor());
trans1.SetFailureHandlingOptions(fho1);
trans1.Start();
Line line = Line.CreateBound(new XYZ(), new XYZ(10, 0, 0));
Wall.Create(doc, line, lvl.Id, false);
Wall.Create(doc, line, lvl.Id, false);
trans1.Commit();
}
return Result.Succeeded;
最新文章
政策新闻 | 芜湖市研究中心公用处联合党支部召开党员大会开展深入贯彻中央八项规定精神学习教育专项理论学习、《习近平关于加强党的作风建设论述摘编》交流研讨会 政策新闻 | 贵阳市设质站:服务零距离│高效办成一件事 前置服务和技术辅导多措并举促进施工图审查“拿证即开工” 政策新闻 | 南充市住建局关于四川盛晖源建筑工程有限公司等17家建筑企业资质申请审查意见的公示 政策新闻 | 湖南省住建厅关于核准长沙城发恒通工程建设有限公司等企业27项建筑业企业资质和143项建筑业企业资质换证后延续的公告(2025年第14批) 政策新闻 | 高温错峰战凌晨 汉江大桥焕新亮夜空 政策新闻 | 重大项目建设丨守信中路道路工程建设项目稳步推进 政策新闻 | 广西住建厅关于公布2025年第G23批建筑业企业资质(特殊行业)审查结果的通告 政策新闻 | 宜宾市南溪区综合行政执法局:推进油烟治理 守护清新空气 政策新闻 | 关于公开征集宁波市住房和城乡建设“十五五”规划意见建议的公告 政策新闻 | 丹东关于印发《全市大跨度体育场馆和公共演出活动场所安全专项排查整治工作方案》的通知