完善主體資料,免費(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

二次開發(fā)教程:Revit開發(fā)之調(diào)用Revit命令的另一種方法

發(fā)布于:2019-08-23 17:03:41

網(wǎng)友投稿

更多

在Revit的UIFramework.dll里有一個(gè)CommandUtility,里面有一個(gè)Execute(RibbonCommandItem btn)方法,


看起來像是一個(gè)調(diào)用Revit命令的方法,下面來測試一下,有一個(gè)問題是這個(gè)類不是public的所以調(diào)用要用反射


下面是個(gè)測試代碼:


            adWin.RibbonControl control = adWin.ComponentManager.Ribbon;

            RibbonItemEnumerator itor = control.Tabs.First().Panels.ElementAt(1).Source.GetItemEnumerator();

            adWin.RibbonCommandItem cmd = null;

            while (itor.MoveNext())

            {

                cmd = itor.Current as adWin.RibbonCommandItem;

                if (cmd != null)

                {

                    break;

                }

            }

            Type tp = typeof(ShortcutWindow).Assembly.GetTypes().First(m => m.FullName == "UIFramework.CommandUtility");

            if (tp != null)

            {

                //MessageBox.Show("OK");

                MethodInfo mi = tp.GetMethod("Execute");

                mi.Invoke(null, new object[] { cmd});

            }

            //CollaborateWindow cw = new CollaborateWindow();

            //cw.Show();

            //ShortcutWindow sw = new ShortcutWindow();

            //sw.Show();

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

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

上一篇:二次開發(fā)教程:Revit開發(fā)之快捷鍵相關(guān)類

下一篇:二次開發(fā)教程:WPF通過異常來驗(yàn)證用戶輸入

60acb4e0ef112.png