91手机视频在线-91手机视频在线观看-91手机在线-91手机在线播放-91手机在线观看

完善主體資料,免費贈送VIP會員!
* 主體類型
* 企業名稱
* 信用代碼
* 所在行業
* 企業規模
* 所在職位
* 姓名
* 所在行業
* 學歷
* 工作性質
請先選擇行業
您還可以選擇以下福利:
行業福利,領完即止!

下載app免費領取會員

NULL

ad.jpg

二次開發教程:Revit開發之警告和錯誤處理

發布于:2019-08-26 16:40:58

網友投稿

更多

在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;

本文版權歸腿腿教學網及原創作者所有,未經授權,謝絕轉載。

未標題-1.jpg

上一篇:二次開發教程:Revit開發創建部件和部件視圖

下一篇:二次開發教程:Revit開發之放棄重做操作

主站蜘蛛池模板: 国产3区| 伊人久久精品成人网 | 1024在线观看国产天堂 | 国产真实乱人视频在线看 | 成人爱爱网站在线观看 | 国产精品好好热在线观看 | 成人精品久久 | 欧美金妇欧美乱妇视频 | 日韩欧美二区 | 九九精品视频在线播放8 | 濑亚美莉vs黑人欧美视频 | 日本理论片中文在线观看2828 | 亚洲精品一区二区三区www | 成人看片毛片免费播放器 | 激情啪啪网站 | 最新免费黄色网址 | 欧美国产综合日韩一区二区 | 日本久久久免费高清 | 亚洲乱码中文字幕综合 | 999毛片免费观看 | 澳门久久 | 九九精品免视频国产成人 | 麻豆视频免费 | 日本一本色道免费视频 | 免看一级a毛片一片成人不卡 | 国产91网站在线观看 | 色综合久久六月婷婷中文字幕 | 成人在线观看视频网站 | 久久国产亚洲高清观看5388 | 一级黄色片在线看 | 国产精品久久永久免费 | 多人性激烈的欧美三级视频 | 国产在线看不卡一区二区 | 黑人性视频做爰全过程视频 | 网友自拍视频 | 欧美一级黄 | 九九热在线免费视频 | 深夜免费福利视频在线播放 | 宅男在线永久免费观看99 | 黄色的毛片 | 成人欧美视频在线看免费 |