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

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

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

wsuyhvzagirjrcpjxacawjbadqarbhowd

fxtazhrqowrjrsde

(1)项目完整代码:

  • yijzxavbbhcwqy
    1. using System;yubhkkrpvuxtk
    2. using System.Collections.Generic;
    3. vvtdqrbbdcizpj

    4. using System.Linq;mmhzihpyixtsfbbrqwethtrlgafvsl
    5. using System.Text;unmorzpeonhluwvbwkcnu
    6. using System.Threading.Tasks;unmorzpeonhluwvbwkcnu
    7. using Autodesk.Revit.DB;
      lobifxkwtcvagkvbwlknkzmajxovmrncxwgyzxsrsft

    8. using Autodesk.Revit.UI;

      jkdekpdmbthixmhduxilacltvvmzspryfoxavfypqzlqfnlprinfuffwrfzsqcmrbundqhuoztusqhdzmduid


    9. using Autodesk.Revit.Attributes;yubhkkrpvuxtk
    10. gcqnxcwqdfgtaftjjonan
    11. using System.Windows.Media.Imaging;//需要添加引用:PresentationCore、System.Xaml、WindowsBasetnxkqspwvctqjxxwprlixekhpamhxpzktjifewazvypm
    12. using Autodesk.Revit.UI.Events;pdpsxglzbwqoocubrrgachtbxwzidrwgxsandmsnrecojfw
    13. najhocajzrtsetshpjfujdquludjc
    14. namespace Ribbon
    15. xgybccnrhymlrjyukubytjavxtlosizzexgbtxhrgyqyo

    16. {ahqhkdmzpwrivawmhqugnsspglajxyydidlyguvtoa
    17.     [TransactionAttribute(TransactionMode.Manual)]
      eeatrswlwffgwnpsbrufvxtt

    18.     [RegenerationAttribute(RegenerationOption.Manual)]
    19. fvjtosqtioaaxmyzymaepemscdu

    20.     public class Class1 : IExternalApplicationzgzpuebcrphvrgsqajxhqrxjcojzp
    21.     {
      wsuyhvzagirjrcpjxacawjbadqarbhowd

    22.         public Result OnShutdown(UIControlledApplication application)ahqhkdmzpwrivawmhqugnsspglajxyydidlyguvtoa
    23.         {
      uktlonbbpqw

    24.             return Result.Succeeded;

      jkdekpdmbthixmhduxilacltvvmzspryfoxavfypqzlqfpzozbqopwfxogszxuukkqxtbosspangxzndeacme


    25.         }
    26. yxxhieifhqmjfpxoeyapozkwrcaepuepufdvlej

    27. fvjtosqtioaaxmyzymaepemscdu

    28.         public Result OnStartup(UIControlledApplication application)oxqhburfcyyxgugdicvjxpryybmcyqqo
    29.         {rlunjykpwkjqrjnuijzofjirdghbhj
    30.             application.CreateRibbonTab("我的工具");//创建选型卡页名称
      erhpbnnrpshcwmbpc

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

    34.             PushButton pb = panel1.AddItem(pdb) as PushButton;
      eircqbygtzktmgyjfohkboiqfiopwmhsvyfyj

    35. yubhkkrpvuxtk
    36.             RibbonPanel panel2 = application.CreateRibbonPanel("我的工具", "工具");//创建面板
      qahdjtqluvvxmzpnb

    37.             SplitButtonData splitData = new SplitButtonData("我的集合", "创建工具");//创建记忆下拉按钮

      jkdekpdmbthixmhduxilacltvvmzspryfoxavfypqzlqf

    38. axsuwijeytulbmpphuhazwthovyxxdwbh

    39.             SplitButton sb = panel2.AddItem(splitData) as SplitButton;
    40. inisqsnumtqormdrrngqszewkjsjnhxxxuljrygmcuiblo

    41. fbggmsvisbkhzoyqplxjerema
    42.             PushButtonData spd = new PushButtonData("我的工具", "创建", @"E:\27.Revit development\BasicCreation\BasicCreation\bin\Debug\BasicCreation.dll", "BasicCreation.Class1");//此处的插件是:创建墙体并实现墙体的复制、移动和镜像,相关链接在文章最后
      rurgzsmwooxstwc

    43.             //为按钮添加图片tnxkqspwvctqjxxwprlixekhpamhxpzktjifewazvypm
    44.             spd.LargeImage = new BitmapImage(new Uri(@"E:\27.Revit development\Bitmap.png"));//添加位图的地址

      osyojiwkevwrbvmfgkecsrxcmqinlvtqmfmpnjkspeqbho


    45.             sb.AddPushButton(spd);//完成添加jtecfirxkttlkpfchyz
    46. sedifmjpjwkfnlzunjwhqbwvevfkao
    47.             //添加分隔符
    48. fvjtosqtioaaxmyzymaepemscdu

    49.             panel2.AddSeparator();
      qahdjtqluvvxmzpnb

    50.             PulldownButtonData pdbd = new PulldownButtonData("我的工具", "检查");dcmlxuqkuepujqtqflvygbpjr
    51.             PushButtonData pushbtn = new PushButtonData("我的工具", "碰撞检查", @"E:\27.Revit development\Collision\Collision\bin\Debug\Collision.dll", "Collision.Class1");//这是我写的一个碰撞检查插件,相关链接在文章最后yaaxghnlptltvnzcyzputvydz
    52.             PulldownButton btn = panel2.AddItem(pdbd) as PulldownButton;

      oecwnvdgzccxgdfvhrclfsercwvrbsahiuinuitnpjzjyowyusrnkzcpcjxggualkdlacvlcpbltbdytcukm


    53.             btn.LongDescription = "检查当前物体是否碰撞";

      wievifdronovcrnyvopphczhdiohnnklwsacssrohylxyycltadqvshepwpaqnmncmmcdviqvcpjojrnlvznf


    54.             btn.AddPushButton(pushbtn);eiuevbbyva
    55. qlzhftxyazfvanlxeeyxm
    56.             //创建下拉组合框pqlmxacvxgzh
    57.             RibbonPanel panel3 = application.CreateRibbonPanel("我的工具", "文件");drmmdrrfvesqiblattplaoqzgwhpdo
    58.             ComboBoxData cbd = new ComboBoxData("选项");
      ryxfpdueusjakrdgpadzly

    59.             ComboBox cBox = panel3.AddItem(cbd) as ComboBox;ndhndcvoqrbquoorsxflxlhnbkarvyxv
    60. qcpwurskgcajrskqxkkuxj
    61.             if(cBox != null)jurzfkathekyst
    62.             {hbwamtcyjyfgptpdwyfvzytvbylijkvjvysumchwf
    63.                 cBox.ItemText = "选择操作";crvsyxnemtutshsrrxujzjfqzwe
    64.                 cBox.ToolTip = "请选择想要进行的操作";
      ewfvohlofitktozzaoftcftlyuh

    65.                 cBox.LongDescription = "选择一直接关闭,选择二关闭并修改";
      rurgzsmwooxstwc

    66. ujqsjrclalhsqobswbimzcnmbighltnsnhcfzhot
    67.                 ComboBoxMemberData cbmd = new ComboBoxMemberData("A", "关闭");xunzxpvwmoy
    68.                 ComboBoxMemberData cbmd2 = new ComboBoxMemberData("B", "关闭并修改");
    69. fsnhmsftukberkxqrswwywbxncuoqtbrljc

    70. vibjhksqjbznmuvqvczxhsc

    71.                 cbmd.GroupName = "编辑操作";
    72. yxxhieifhqmjfpxoeyapozkwrcaepuepufdvlej

    73.                 cBox.AddItem(cbmd);yubhkkrpvuxtk
    74.                 cBox.AddItem(cbmd2);
      qiizgzukdgwbsmlufmu

    75.             }iedtxfuvfzkcqveggtxddfaogpb
    76.             cBox.CurrentChanged += change;
      eicsrpuavfemmmbtrpyskbeuopiuusddggbbzacdsthl

    77.             cBox.DropDownClosed += closed;
      wqwahbljbsmqsqchpdigt

    78. dcmlxuqkuepujqtqflvygbpjr
    79. herwhhhsighaenyiopohtfcwuhglxfsufjlaxacovnhwwa

    80.             return Result.Succeeded;fwmjiapawabtruyrxlfydoavrnjfjxtdomyeizvmrxxgwjyg
    81.         }rfjkeunszotl
    82. byshmktupoia
    83.         private void closed(object sender, ComboBoxDropDownClosedEventArgs e)
    84. rjoqpfdrfywxhw

    85.         {
      ejufbqsuqpui

    86.             TaskDialog.Show("关闭", "已关闭");jurzfkathekyst
    87.         }
    88. enxhafhscamfbmcsmi

    89. bvtruilkikdfyuvzzfgkydrzrscijghdzkxnkdquoosvar
    90.         private void change(object sender, ComboBoxCurrentChangedEventArgs e)
      rurgzsmwooxstwc

    91.         {qcpwurskgcajrskqxkkuxj
    92.             TaskDialog.Show("修改", "已修改");

      oecwnvdgzccxgdfvhrclfsercwvrbsahiuinuitnpjzjyow

      supfxshvjizkznkijfuwjpiskoluogjhelxkgemvmtqwrc


    93.         }

      jkdekpdmbthixmhduxilacltvvmzspryfoxavfypqzlqf

    94. wymxtvcdxpjnjoqxahpymfvtllpvcsnskenwrubrgzk

    95.     }jtecfirxkttlkpfchyz
    96. }
    mutzvnqzawihzloeuiidmon
    复制代码
    mutzvnqzawihzloeuiidmon

    Ribbon菜单插件介绍:

    hhbratdobgrxstxfkxymwzcbffbmh

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

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

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

    bjtfnsktzwivmdo

    [Revit二次开发] Ribbon菜单的创建
  • yijzxavbbhcwqy
  • rbklgnjjuxvhsxlwlgchhueyxzxndx
    (2)项目代码中用到的插件:
    xvztilfjxsnwwdgmmogakcezbihcfemqurjilrihiazplyg

    jxpccfzguqdmwpgnnecekqiwikdzrrthqt
    [Revit二次开发] 创建墙体并实现墙体的复制、移动和镜像sedifmjpjwkfnlzunjwhqbwvevfkao
  • jzsqyruwgzxfmajsdhlsc

  • [Revit二次开发] 使用ElementIntersectFilter进行冲突检查
  • pyscjryeurvrpgdshrxsehhnanbxgmtdesfdnhxigjglanvlo

  • inisqsnumtqormdrrngqszewkjsjnhxxxuljrygmcuiblo

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

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

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

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

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

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

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

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

    jkdekpdmbthixmhduxilacltvvmzspryfoxavfypqzlqfpzozbqopwfxogszxuukkqxtbosspangxzndeacme


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    加载应用程序:

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

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

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

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

    效果:aibsvcjspiaectlpjaudmdlrmgfoofsqyxjesja

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

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

    参考文献:arkdqysdgqxkbnhikctcggodxsyjuow

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

    qfihkhapzwvcavovdszlwxyawe

  • kwipghdvac

  • fhmftkjjmcqmlhzonypyimjmcpowqznnkpzabeoroqawfa
    xnhpvwqwdvptilewcglyso
    fbggmsvisbkhzoyqplxjerema
    bsaixrvizgaaygqzqdlivwuriobliyeqpy

  • qyddnaeqmjhaxaczfrxzlfntbdhbw
  • 热门关注
    回复 申请删帖

    使用道具 举报

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

    • 扫描加客服微信

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

    GMT+8, 2025-5-1 17:25 , Processed in 1.012417 second(s), 64 queries .

    Powered by 找最好 X3.4

    © 2015至今 zhaozuihao.com