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

    下載app免費領(lǐng)取會員

    NULL

    ad.jpg

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

    發(fā)布于:2019-08-26 16:40:58

    網(wǎng)友投稿

    更多

    在Revit 里很多操作都會彈出警告和錯誤提示,


    比如墻的高度降低,墻頂部的窗出現(xiàn)在墻的外面


    這個會彈一個錯誤提示框,


    比如在同一個位置創(chuàng)建兩面墻,


    會彈出一個警告提示框




    如果在自己寫的程序里出現(xiàn)了這種彈窗,會影響到用戶體驗,




    其實API里提供一些錯誤和警告的處理,


    下面提供一個例子解決上面的兩種情況,


    關(guān)鍵代碼如下:



        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;

    本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。

    未標(biāo)題-1.jpg

    上一篇:二次開發(fā)教程:Revit開發(fā)創(chuàng)建部件和部件視圖

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

    主站蜘蛛池模板: 国产乱码一区二区三区爽爽爽| 熟女少妇精品一区二区| 99精品一区二区三区| 红桃AV一区二区三区在线无码AV | 久久久91精品国产一区二区三区| 国产一区二区在线观看app| 国产成人精品一区在线| 曰韩精品无码一区二区三区| 亚欧色一区W666天堂| 亚洲精品伦理熟女国产一区二区| 久久精品无码一区二区三区不卡| 波多野结衣一区在线| 国产在线不卡一区二区三区| 中文字幕一区二区精品区| 在线精品日韩一区二区三区| 精品一区二区三区免费观看| 久久国产免费一区二区三区| 亚洲AV无码国产精品永久一区 | 日本精品夜色视频一区二区| 精品一区二区三区在线观看| 久久一区二区精品| 日韩a无吗一区二区三区| 国产丝袜美女一区二区三区| 少妇一晚三次一区二区三区| 中文字幕在线观看一区| 韩国一区二区视频| 亚洲国产激情一区二区三区 | 国产a∨精品一区二区三区不卡 | 免费人人潮人人爽一区二区 | 亚洲AV永久无码精品一区二区国产 | 岛国精品一区免费视频在线观看| 一区二区三区四区免费视频 | 国模大尺度视频一区二区| 日本一区二区三区爆乳| 97久久精品午夜一区二区| 四虎成人精品一区二区免费网站| 国产成人一区二区三区视频免费 | 亚洲色精品aⅴ一区区三区| 国产精品日韩一区二区三区| 色婷婷一区二区三区四区成人网 | 精品国产一区二区三区久久影院|