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

    下載app免費(fèi)領(lǐng)取會(huì)員

    NULL

    ad.jpg

    Revit開(kāi)發(fā)IExternal Command Availability的使用

    發(fā)布于:2020-03-27 17:05:51

    網(wǎng)友投稿

    更多

    在Revil里大部分命令在沒(méi)有打開(kāi)文檔的時(shí)候是禁用的,有的在沒(méi)有打開(kāi)文檔也是可以使用的。

    而又一些在平面視圖是禁用的如 標(biāo)高,有的在3D視圖里是禁用的 如 標(biāo)高和軸網(wǎng),

    而這些是否可用我們是可以自己控制的

    在PushButton的屬性里有一個(gè)AvailabilityClassName屬性,通過(guò)這個(gè)就可實(shí)現(xiàn)命令在什么時(shí)候可用,禁用的控制。

    這個(gè)屬性是個(gè)string,它需要設(shè)置為一個(gè)實(shí)現(xiàn)了IExternalCommandAvailability接口的類的全類名


    比如這樣一個(gè)命令,它實(shí)現(xiàn)了IExternalCommand,IExternalCommandAvailability這兩個(gè)接口

        public class ExternalCommandAvailability : IExternalCommand,IExternalCommandAvailability

        {

            public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)

            {

                TaskDialog.Show("test", "test ok");

                return Result.Succeeded;

            }


            public bool IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)

            {

                return true;

            }

        }


     那在創(chuàng)建按鈕的時(shí)候可以這樣指定


                application.CreateRibbonTab(tabName);

                RibbonPanel panel = application.CreateRibbonPanel(tabName, panelName);


                PushButtonData btnData = new PushButtonData("testcmd", "cmd", this.GetType().Assembly.Location, "RevitApiTest.TestCommand");


                PushButton btn =(PushButton)panel.AddItem(btnData);


                btn.AvailabilityClassName = "RevitApiTest.TestCommand";


    如果在IsCommandAvailable里直接返回true,那這個(gè)命名就是任何時(shí)候都可以使用。


    假設(shè)用戶有一個(gè)命令需要在平面視圖里禁用那可以如下實(shí)現(xiàn)


          public bool IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)

            {

                UIDocument uidoc = applicationData.ActiveUIDocument;

                if (uidoc.ActiveGraphicalView is ViewPlan)

                    return false;


                return true;

            }

    ————————————————

    版權(quán)聲明:本文為CSDN博主「魏無(wú)忌」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。

    原文鏈接:https://blog.csdn.net/The_Eyes/article/details/78142183

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

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

    上一篇:了解Revit的坐標(biāo)系,測(cè)量坐標(biāo)系和項(xiàng)目坐標(biāo)系的區(qū)別

    下一篇:Revit怎么添加過(guò)濾器?Revit如何設(shè)置分層過(guò)濾器

    主站蜘蛛池模板: 日韩视频在线观看一区二区| 无码精品人妻一区二区三区漫画 | 性色A码一区二区三区天美传媒| 日本一区二区三区在线观看视频| 日韩在线一区二区| 国产在线精品一区二区在线观看 | 制服丝袜一区二区三区| 国产伦精品一区二区三区免费迷| 中文字幕无线码一区2020青青 | 亚洲Av永久无码精品一区二区| 精品国产免费一区二区三区| 国产在线观看91精品一区| 亚洲中文字幕一区精品自拍| 亚洲午夜电影一区二区三区| 亚洲午夜电影一区二区三区| 久久精品一区二区三区AV| 久久综合亚洲色一区二区三区 | 亚洲日本一区二区三区在线不卡| 国产精品一级香蕉一区| 中文字幕一区二区三区人妻少妇| 精品无码日韩一区二区三区不卡| 精品日产一区二区三区手机| 久久中文字幕一区二区| 日本一区二区不卡视频| 亚洲国产精品一区第二页| 人体内射精一区二区三区| 亚洲色偷偷偷网站色偷一区| 精品国产一区二区三区久久久狼| 国产成人精品日本亚洲专一区| 中字幕一区二区三区乱码| 中文字幕AV一区二区三区人妻少妇| 国产精品合集一区二区三区| 加勒比无码一区二区三区| 国产成人久久一区二区不卡三区| 国产亚洲综合精品一区二区三区 | 国产免费一区二区三区免费视频 | 亚洲欧美成人一区二区三区| 亚洲日韩AV无码一区二区三区人| 精品无人乱码一区二区三区| 波多野结衣一区二区免费视频 | 一区二区三区在线观看中文字幕|