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

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

      NULL

      ad.jpg

      二次開發(fā)教程:Revit開發(fā)IExternalCommandAvailability的使用

      發(fā)布于:2019-07-24 16:41:07

      網(wǎng)友投稿

      更多

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


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


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


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


      這個屬性是個string,它需要設(shè)置為一個實現(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 selectedCategories)

              {

                  return true;

              }

          }


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


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


      假設(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)歸腿腿教學網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。

      未標題-1.jpg

      上一篇:二次開發(fā)教程:MyBatis配置

      下一篇:二次開發(fā)教程:Revit開發(fā)ImageView

      主站蜘蛛池模板: 国产精品美女一区二区视频 | 大伊香蕉精品一区视频在线| 四虎一区二区成人免费影院网址| 亚洲视频一区在线观看| 鲁大师成人一区二区三区 | 一区二区三区免费视频网站 | 亲子乱AV视频一区二区| 日韩一区二区三区在线| 亚洲国产精品一区二区三区在线观看 | 国产精品视频无圣光一区| 精品无码一区二区三区在线 | 亚洲AV一区二区三区四区| 日韩AV无码久久一区二区| 久久国产一区二区| 免费视频一区二区| 国产在线无码视频一区二区三区 | 一区二区三区精密机械| 精品视频一区二区三三区四区| 熟女少妇精品一区二区| 熟女少妇精品一区二区| 激情一区二区三区| 人妻激情偷乱视频一区二区三区| 久久精品国产一区二区三| 亚洲国产一区二区a毛片| 久久久久久免费一区二区三区| 午夜天堂一区人妻| 最新欧美精品一区二区三区| 亚洲综合av一区二区三区| 国产精品亚洲专一区二区三区| 日本v片免费一区二区三区 | 亚洲毛片不卡av在线播放一区| 国产嫖妓一区二区三区无码| 精品视频一区二区三区在线播放| 日本一区二区三区在线视频 | 国产成人av一区二区三区不卡| 亚洲日本一区二区一本一道| 日本精品一区二区三区在线观看| 亚洲精品一区二区三区四区乱码| 亚洲中文字幕久久久一区| 一区二区三区在线观看视频 | 欧美日本精品一区二区三区 |