首页/技术分享

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

发布于:2019-08-23 17:03:41
6523人 分享

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

转载请注明来源本文地址:https://www.tuituisoft/blog/3458.html

上一篇:

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

下一篇:

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