完善主体资料,免费赠送VIP会员!
* 主体类型
* 企业名称
* 信用代码
* 所在行业
* 企业规模
* 所在职位
* 姓名
* 所在行业
* 学历
* 工作性质
请先选择行业
您还可以选择以下福利:
行业福利,领完即止!

下载app免费领取会员

NULL

5cdd2dc095060.jpg

二次开发教程:Revit开发之调用Revit命令的另一种方法

发布于:2019-08-23 17:03:41

网友投稿

更多

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

本文版权归腿腿教学网及原创作者所有,未经授权,谢绝转载。

pic.gif

上一篇:二次开发教程:Revit开发之快捷键相关类

下一篇:二次开发教程:WPF通过异常来验证用户输入

60acb4e0ef112.png