[Revit二次开发] [Revit二次开发] Ribbon菜单的创建 [课程编码3921]

[复制链接] []
发表于 2023-1-21 16:10:53| 字数 7,555 | 显示全部楼层 |阅读模式
修改字体大小 16px
10px 25px

https://blog.csdn.net/qq_40416052/article/details/85010831zyvtergtsdcmnikkspkeycxtmxynwfig

lbwipgchyuquxevxqojqpwzyhbuxrsvdisfrfltwkjqvrc

  • gemqqxgdfsreygzmibbufocgjtokkergmtqnynzeq
  • (1)项目完整代码:uigrezavloyocvdilkjodiuyon

    1. using System;ztkjulzvcrtpkx
    2. using System.Collections.Generic;
      cgywiuarrjxynahjcbhcylzsxazclwqkpecxhb

    3. using System.Linq;nvigxhyfogwdmrgswhwhngsnygycqavdfzq
    4. using System.Text;
    5. fdtdkgqzmfhqbnfyxvhyweveul

    6. using System.Threading.Tasks;talhwwhtjersfqbxvwa
    7. using Autodesk.Revit.DB;
    8. prlutkynmrmatnnsytkoclfojoorsbvbemddtrrmtbhawjy

    9. using Autodesk.Revit.UI;
      vnpajwpqhnamltejdebezusnjjxraebuehnfgrztrfcisi

    10. using Autodesk.Revit.Attributes;boivrlqskmdwvykrpwuvgeblklrsrc
    11. hnoyksgierzjwzrddqbuehja
    12. using System.Windows.Media.Imaging;//需要添加引用:PresentationCore、System.Xaml、WindowsBaseellfkcqcidfzlgvpsmaacbfjpk
    13. using Autodesk.Revit.UI.Events;glghbyigouoxbkjxvbinqcffehxccmwvclcyclaioaqobfxu
    14. qvbsvvhuas
    15. namespace Ribbonqvwhiosgbevatiawxwrtwcgbaey
    16. {
      leceehvstiisswzvgv

    17.     [TransactionAttribute(TransactionMode.Manual)]jhrhmdqyeslydkyhpwmjlwuijoviuwslqhijn
    18.     [RegenerationAttribute(RegenerationOption.Manual)]jhrhmdqyeslydkyhpwmjlwuijoviuwslqhijn
    19.     public class Class1 : IExternalApplicationjhrhmdqyeslydkyhpwmjlwuijoviuwslqhijn
    20.     {yykxyriyqnfslphzkepwaqbomqiffqttxpkxszpy
    21.         public Result OnShutdown(UIControlledApplication application)teoijqmhkk
    22.         {sxtccojlpffjzhpebhksizlgolcarpomslvsrcdgoqssl
    23.             return Result.Succeeded;
      vnpajwpqhnamltejdebezusnjjxraebuehnfgrztrfcisi

    24.         }adpgmmmxcbwgnvtmbtumabcpoyxzxar
    25. lbwipgchyuquxevxqojqpwzyhbuxrsvdisfrfltwkjqvrc
    26.         public Result OnStartup(UIControlledApplication application)urviqrzpwiakyhfspbwtqbedepfkasuu
    27.         {
      wosqsapgprgcvvqwos

    28.             application.CreateRibbonTab("我的工具");//创建选型卡页名称
    29. okcflptvjfljndworczkmovjgruiaspwo

    30.             RibbonPanel panel1 = application.CreateRibbonPanel("我的工具", "欢迎页");//创建选项卡面板hnoyksgierzjwzrddqbuehja
    31.             PushButtonData pdb = new PushButtonData("我的工具", "欢迎使用", @"E:\27.Revit development\HelloWorld\HelloWorld\bin\Debug\HelloRevit.dll", "HelloRevit.Class1");//此处为我编写的HelloWorld程序,,相关链接在文章最后

      wzbveiljyifccqxiqxynvp

      rwmowngseaqzjcvmxdddfgsifwhodwambxpvkv


    32.             PushButton pb = panel1.AddItem(pdb) as PushButton;lwgcckhxldklmtcqynhriuix
    33. juomywufnmefoxdgffxhdkylwmqgv
    34.             RibbonPanel panel2 = application.CreateRibbonPanel("我的工具", "工具");//创建面板koyptyygrz
    35.             SplitButtonData splitData = new SplitButtonData("我的集合", "创建工具");//创建记忆下拉按钮
      prqlybtvomkqisfbhofxrecwjdinqwtbr

    36.             SplitButton sb = panel2.AddItem(splitData) as SplitButton;
    37. ofnieenqczqnrshxkrjqfkx

    38. qvwhiosgbevatiawxwrtwcgbaey
    39.             PushButtonData spd = new PushButtonData("我的工具", "创建", @"E:\27.Revit development\BasicCreation\BasicCreation\bin\Debug\BasicCreation.dll", "BasicCreation.Class1");//此处的插件是:创建墙体并实现墙体的复制、移动和镜像,相关链接在文章最后nvigxhyfogwdmrgswhwhngsnygycqavdfzq
    40.             //为按钮添加图片ojnbxcfydzyyckhpglmuioawhqmniecwmcjakmxdzkrwvek
    41.             spd.LargeImage = new BitmapImage(new Uri(@"E:\27.Revit development\Bitmap.png"));//添加位图的地址hnoyksgierzjwzrddqbuehja
    42.             sb.AddPushButton(spd);//完成添加
      onimsvpgzik

    43. kewnwtiqgmhvfgaievwedrssfafchhhfmepjmsa

    44.             //添加分隔符leqyllqqtgrjxdzlnapoilymvajzijssxoxeg
    45.             panel2.AddSeparator();nvigxhyfogwdmrgswhwhngsnygycqavdfzq
    46.             PulldownButtonData pdbd = new PulldownButtonData("我的工具", "检查");dnftxlzdercwhyozqn
    47.             PushButtonData pushbtn = new PushButtonData("我的工具", "碰撞检查", @"E:\27.Revit development\Collision\Collision\bin\Debug\Collision.dll", "Collision.Class1");//这是我写的一个碰撞检查插件,相关链接在文章最后

      mzsinehslokgeqilrvvtvkhcckfki

      fpdpxdhgpltyque


    48.             PulldownButton btn = panel2.AddItem(pdbd) as PulldownButton;
    49. dihokbzvghhgiedzbrbxmlcgj

    50.             btn.LongDescription = "检查当前物体是否碰撞";mxtborhtdzdbosbcnoybibamkyglxftovnsbkcjkuqiwzihyr
    51.             btn.AddPushButton(pushbtn);
      cgywiuarrjxynahjcbhcylzsxazclwqkpecxhb

    52. ewxmrqjveoiuctwmegbxpkntzyinufepwyacsivtonjpdchezwjasaxyawgcillzzdtij


    53.             //创建下拉组合框obrhiapuuimlh
    54.             RibbonPanel panel3 = application.CreateRibbonPanel("我的工具", "文件");ccstdpjjepltovettwmeuxuynjtensggf
    55.             ComboBoxData cbd = new ComboBoxData("选项");
      cgywiuarrjxynahjcbhcylzsxazclwqkpecxhb

    56.             ComboBox cBox = panel3.AddItem(cbd) as ComboBox;
      jthqyifecyirwcysvwkrlgmlbk

    57. dennksbirzzczmesxdarlyqfosshiqoicgzgmoite
    58.             if(cBox != null)sheynkkqhwfgswksgjqvouxgmpubhibre
    59.             {lbwipgchyuquxevxqojqpwzyhbuxrsvdisfrfltwkjqvrc
    60.                 cBox.ItemText = "选择操作";glghbyigouoxbkjxvbinqcffehxccmwvclcyclaioaqobfxu
    61.                 cBox.ToolTip = "请选择想要进行的操作";yfplidutwsqdmgkgbzbkzuwmuewstgfwwgrchmnxnib
    62.                 cBox.LongDescription = "选择一直接关闭,选择二关闭并修改";
      imajzypgpvohwxslikzkzpjilmltxtfezeutvkvqysaaez

    63. lwgcckhxldklmtcqynhriuix
    64.                 ComboBoxMemberData cbmd = new ComboBoxMemberData("A", "关闭");
    65. okcflptvjfljndworczkmovjgruiaspwo

    66.                 ComboBoxMemberData cbmd2 = new ComboBoxMemberData("B", "关闭并修改");boivrlqskmdwvykrpwuvgeblklrsrc
    67. rjwnqzlslpbxsukstmytmilvwleextk
    68.                 cbmd.GroupName = "编辑操作";zsrtkexqlkqargygkghkklmlqkyfkexfhogcdal
    69.                 cBox.AddItem(cbmd);boivrlqskmdwvykrpwuvgeblklrsrc
    70.                 cBox.AddItem(cbmd2); tddaqmdplpaysyzedefkq
    71.             }cijzqgcxsvecpvtokownsrchpfdbo
    72.             cBox.CurrentChanged += change;nvigxhyfogwdmrgswhwhngsnygycqavdfzq
    73.             cBox.DropDownClosed += closed;nvigxhyfogwdmrgswhwhngsnygycqavdfzq
    74. uthnjvpzlgpomnxhovq
    75. ewxmrqjveoiuctwmegbxpkntzyinufepwyacsivtonjpdchshucxbmirgipsqodubdprtrluxkpeoozffkssj


    76.             return Result.Succeeded;nvigxhyfogwdmrgswhwhngsnygycqavdfzq
    77.         }lwgcckhxldklmtcqynhriuix
    78. fzlfaypkzaplqyypbdcdovfykexhpxszmzdygsbyzh

    79.         private void closed(object sender, ComboBoxDropDownClosedEventArgs e)fpwzjanicxdldoqmcnqxwwdwrcimbpgnrcjlalfapmsizccfls
    80.         {pjfpjejvitajhnckajrmy
    81.             TaskDialog.Show("关闭", "已关闭");aeguvinexuuazayeabkglvzgmpfpabavasgnvmncdilnih
    82.         }
    83. tbegqxqklzbeelmdrweersm

    84. okcflptvjfljndworczkmovjgruiaspwo

    85.         private void change(object sender, ComboBoxCurrentChangedEventArgs e)
      imajzypgpvohwxslikzkzpjilmltxtfezeutvkvqysaaez

    86.         {vsnqrliebyarflxzarieqbssbcuk
    87.             TaskDialog.Show("修改", "已修改");
      zxqscfanpizsqaxuqftazqdnicnpxjkcswqirsvzuphgf

    88.         }
    89. ofnieenqczqnrshxkrjqfkx

    90.     }yfplidutwsqdmgkgbzbkzuwmuewstgfwwgrchmnxnib
    91. }
    pdqpnhkfwrgtxqhzjufpapzkgaqrvncflvgewwjstehqr
    复制代码gjqatttmjmkpeocnmbrjsvgigtqegndhfwqvfvogjaatwq

    Ribbon菜单插件介绍:

    oshzycxqteaklfqyletzptepndvsraahiawkjdoqqkvpssbx

    [Revit二次开发] Ribbon菜单的创建

  • zwnlbtosfxqhaxuvuyyswavwtsntuvyvqekizjvlspqtea
  • [Revit二次开发] Ribbon菜单的创建
    zqusbfjsrbhsw

    [Revit二次开发] Ribbon菜单的创建

    cfcckhwlaatknqhix

    [Revit二次开发] Ribbon菜单的创建 hndxhnpainplv

    qzeivicttfcfsxycmhfoexsmhdralwxtpbggde
    (2)项目代码中用到的插件:
  • ctpmojqkhaoraiockgrwzsnnyntfysaaqjoj

  • rjwnqzlslpbxsukstmytmilvwleextk
    [Revit二次开发] 创建墙体并实现墙体的复制、移动和镜像gjblfuibaytgampzvzfsbomnjcjxbqhjmofjwdgciefqedwpt
    gjblfuibaytgampzvzfsbomnjcjxbqhjmofjwdgciefqedwpt
    [Revit二次开发] 使用ElementIntersectFilter进行冲突检查
    fzlfaypkzaplqyypbdcdovfykexhpxszmzdygsbyzh

    bykjjmeqgeejlsywan
    (3)面板中制作位图需要添加的引用resentationCore、System.Xaml、WindowsBase
  • uoyeueegvgxmxifqfwceommbqefkyufwfyozhsvvexl

  • [Revit二次开发] Ribbon菜单的创建

    zqusbfjsrbhsw

    [Revit二次开发] Ribbon菜单的创建
    jhhcqigblmhyvywviildyrekrrgfwdrkavvknavpulrwkrobvy

    [Revit二次开发] Ribbon菜单的创建pmcldjfxdfsodfzouebpukpuavrbdzhtzdowjallikyvrtmflo

    [Revit二次开发] Ribbon菜单的创建
    wiymnfwgiqwcvdqntxpa

    (4)代码编写完成后,将Revit2018.exe的路径设置外“启动外部程序” qzeivicttfcfsxycmhfoexsmhdralwxtpbggde

    [Revit二次开发] Ribbon菜单的创建

  • qpwtadorpomdcivfuk
  • [Revit二次开发] Ribbon菜单的创建

    ewxmrqjveoiuctwmegbxpkntzyinufepwyacsivtonjpdchhndxhnpainplv


    [Revit二次开发] Ribbon菜单的创建ezwjasaxyawgcillzzdtij

    [Revit二次开发] Ribbon菜单的创建
    chjuabevzepezatfbtbfyisxpyovtpe

    [Revit二次开发] Ribbon菜单的创建

    mcrnjysflayym

    [Revit二次开发] Ribbon菜单的创建
    obrhiapuuimlh
    prqlybtvomkqisfbhofxrecwjdinqwtbr

    [Revit二次开发] Ribbon菜单的创建

    zqusbfjsrbhsw

    [Revit二次开发] Ribbon菜单的创建
    obrhiapuuimlh

    (5)在Revit2018中加载应用程序 :piqdrlbjcyvejsgdhqvzoxng

    [Revit二次开发] Ribbon菜单的创建zyvtergtsdcmnikkspkeycxtmxynwfig

    [Revit二次开发] Ribbon菜单的创建 uigrezavloyocvdilkjodiuyon

    [Revit二次开发] Ribbon菜单的创建wmqivfbrbpsldsat

    [Revit二次开发] Ribbon菜单的创建
    xkhzmjeanmclqxzdpdrpjmjltugkpxlmmap

    将Addins\2014下的Ribbon.addin 文件复制到Addins\2018文件夹下: wviqrnobxe

    [Revit二次开发] Ribbon菜单的创建

    wjpxupuhdglrkaxemtvlplhbwwtpwpppwjyqiwtjcotmt

    [Revit二次开发] Ribbon菜单的创建
    wjpxupuhdglrkaxemtvlplhbwwtpwpppwjyqiwtjcotmt

    [Revit二次开发] Ribbon菜单的创建

    nyhqzzdvuwuufyfmktkqnjlxljzgwlfrzpqsndtmjzgxt

    [Revit二次开发] Ribbon菜单的创建
  • nulvztcrsrxlcuzkauuqbxqtrsjzexopygpxbkboxyiazta
  • 加载应用程序:hppenwzhzimhxfdara

    [Revit二次开发] Ribbon菜单的创建lohhabvtznhtzqmgwdmqlvgvorehwe

    [Revit二次开发] Ribbon菜单的创建 shucxbmirgipsqodubdprtrluxkpeoozffkssj

    [Revit二次开发] Ribbon菜单的创建wviqrnobxe

    [Revit二次开发] Ribbon菜单的创建 pmcldjfxdfsodfzouebpukpuavrbdzhtzdowjallikyvrtmflo

    效果:

    mcrnjysflayym

    [Revit二次开发] Ribbon菜单的创建

    fpdpxdhgpltyque

    [Revit二次开发] Ribbon菜单的创建

    bmpnxuoeunxkdcvdjjcsbrbeavxvvcgvgtxcvbnfwlpaqfmjrz

    参考文献:exahctolek

      周婧祎《Autodesk Revit 2016二次开发入门教程》kqqwiwlfwadjblxqeamwncbiqrazsodcaogk

    aeguvinexuuazayeabkglvzgmpfpabavasgnvmncdilnih
    gjqatttmjmkpeocnmbrjsvgigtqegndhfwqvfvogjaatwq

    wtgvgztssvgclyipxqxpnjkrzyvtergtsdcmnikkspkeycxtmxynwfig


    qzjxaefpphqtaetmqoioflrgvhocpbwauqhpq
    rwmowngseaqzjcvmxdddfgsifwhodwambxpvkv

    vuipqunpxdrcuvyulvqirxvwfodiljicaxbgvxihmvx
    回复 申请删帖

    使用道具 举报

    • 联系我们
    • 邮箱:837005074#qq.com(请把#改成@)
    • 电话:18810188033
    • QQ客服 837005074
    • 人工客服:周一至周日(晚6点至11点)
    • 扫描加客服QQ

    • 扫描加客服微信

    QQ|关于我们|Archiver|手机版|小黑屋|找最好·学BIM网(zhaozuihao.com;xuebim.com) ( 京ICP备2024101289号-1 )

    GMT+8, 2025-4-24 08:45 , Processed in 0.325701 second(s), 60 queries .

    Powered by 找最好 X3.4

    © 2015至今 zhaozuihao.com