Revit开发之调用Revit命令的另一种方法


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

看起来像是一个调用Revit命令的方法,下面来测试一下,有一个问题是这个类不是public的所以调用要用反射

下面是个测试代码:

            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();

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值