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

下載app免費領取會員

NULL

ad.jpg

Revit技巧 | Revit開發(fā)IExternal Command Availability的使用

發(fā)布于:2024-10-11 15:50:01

BIM中文網

更多

在Revil里大部分命令在沒有打開文檔的時候是禁用的,有的在沒有打開文檔也是可以使用的。

而又一些在平面視圖是禁用的如 標高,有的在3D視圖里是禁用的 如 標高和軸網,

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

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

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


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

    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 edCategories)

        {

            return true;

        }

    }


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


            application.RibbonTab(tabName);

            RibbonPanel panel = application.RibbonPanel(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,那這個命名就是任何時候都可以使用。


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


      public bool IsCommandAvailable(UIApplication applicationData, CategorySet edCategories)

        {

            UIDocument uidoc = applicationData.ActiveUIDocument;

            if (uidoc.ActiveGraphicalView is ViewPlan)

                return false;


            return true;

        }

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

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

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


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

未標題-1.jpg

上一篇:CAD教程 | 2018年如何在電腦上安裝CAD

下一篇:Revit技巧 | 在Revit中測量坐標系和項目坐標系有什么區(qū)別?

60acb4e0ef112.png