revi在桥梁中的应用二次开发-族_第1页
revi在桥梁中的应用二次开发-族_第2页
revi在桥梁中的应用二次开发-族_第3页
revi在桥梁中的应用二次开发-族_第4页
revi在桥梁中的应用二次开发-族_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Revit在桥梁中的应用二次开发篇(1)——族建模篇简单讲了怎么在revit软件中手动建桥梁模型,更多的基础操作的内容可以直接看revit在建筑中应用的相关教程,其实也是相通的,没必要多讲。这次诚意满满,花了两天时间专门研究二次开发中族的应用。以下代码亲测可试,结合《AUTODESKREVIT二次开发基础教程》可以获得更好的效果。因为书本上都是一些代码片段,而且是基于2015版的,在2016版的revit上部分代码跑不了。我也尝试了很久,终于基本上搞通了族相关的语法。基础知识直接看书,这里直接上代码。书里的代码片段可以想办法插到完整代码中运行。1、找到族实例

//用id找到族实例2、拿到族文档//拿到族文档

DocumentfamilyDoc=revitDoc.EditFamily(familyInstance.Symbol.Family);

if(!familyDoc.IsFamilyDocument)

{民

础凯TaskDi扯alog娱.券Show鱼(轰"错误3"慕,撑资"导family碑Doc服不是族文档!变"联);词

幻}愁

聋堪else狸

证{堤

考拍TaskDi娘alog细.激Show戏(灿"年revit论"握,浪速"油family罚Doc慢是族文档!"翅);磁

鸟}筋3、修改族类望型名称(完整餐代码)梅using久配System喘;叹using蹲殿System泊.垃Collec青tions畅.滩Generi壁c芒;墙using显诚System刻.础Linq绒;颗using挨拾System息.交Text叮;厨using烈渗System糊.恳Thread疯ing米.类Tasks率;叔using矛般Autode尿sk际.支Revit顺.绿UI扑;俘using侵甜Autode脉sk运.孔Revit轰.赤DB蔽;流using遇危Autode的sk呆.寿Revit母.盏UI毅.射Select痕ion善;幻using相牺Autode伞sk忽.滩Revit阔.适Applic尾ationS卷ervice休s赴;理namesp哲ace呢洪修改族类型名删称{取

[尼Autode税sk掩.悠Revit婶.趣Attrib巴utes盼.梳Transa拍ction茫(锹Autode巴sk御.径Revit孙.饥Attrib血utes蓄.愿Transa鸦ctionM兆ode锄.难Manual规)]胸

[忌Autode巴sk挨.添Revit大.控Attrib出utes捏.闻Journa逢ling狗(夺Autode突sk歼.默Revit贴.翼Attrib贷utes以.班Journa皱lingMo随de内.械NoComm结andDat言a孝)]举

[沉Autode勿sk幸.息Revit炕.循Attrib修utes扶.茂Regene踩ration概(秋Autode汤sk徒.件Revit油.贼Attrib株utes辅.死Regene引ration颤Option颤.晒Manual裳)]姐

爆侵public研拳class下南Class1膨对:焦狂IExter洞nalCom扮mand

{柜

卷缓public并兆Result羊宏Execut殖e纹(合Extern需alComm疮andDat啦a趟犹comman词dData却,哈骆ref垂泼string月脾messag倒e念,滥是Elemen鞠tSet洁靠elemen恰ts惰)宴

{沈

清烤Docume季nt酷璃revitD忧oc盈宅=斩敬comman醒dData定.悼Applic泄ation扭.患Active鸭UIDocu迁ment鱼.耻Docume卖nt斥;

指弃//取得文档拒

法阵Applic提ation穿受revitA失pp柿抽=帜表comman牧dData馒.约Applic棋ation她.滨Applic格ation卡;

插好//取得应用馅程序器

但光Select嚷ion裁饼sel自取=胳没comman道dData影.家Applic忧ation烟.齿Active践UIDocu境ment淹.歇Select从ion满;柿

看沿Refere烫nce帅辛ref1摆擦=怀伏sel圈.车PickOb救ject远(岔Object晶Type派.音Elemen岂t忠,结截"选择一个族党实例"神);沿

财往//得到当前方选择的文档凝

门咬Docume昌nt荡即doc腐且=给延comman场dData博.侮Applic蹦ation还.于Active吐UIDocu拨ment左.唱Docume瞒nt明;必

拔尼//族实例煤

祸迷Family仔Instan膀ce串洪family驳Ins椅槐=液沉doc门.乳GetEle镇ment辫(利ref1摘)朋讯as妥搁Family妖Instan饥ce粒;搂

皇脖Family控Symbol成伯symbol水安=谜晒family镜Ins功.享Symbol熊;絮

哲烦Transa次ction遥厦transa喘ction异姐=含那new卖世Transa事ction趣(腔doc烛);周

强鹰//打开关闭全子程序

饼鹅transa计ction壮.铁Start区(膨"改变族类型设名称"纤);错

艳积symbol勤.改Name懂跌=落唐"new"耳惜+娇摊symbol怜.真Name邻;路

贺窃transa铸ction辜.缘Commit过();彼

怕角return蹦毕Result别.窄Succee后ded图;死

}

}}集4、删除一个骤族参数锅

[效Autode服sk耐.桂Revit守.糕Attrib状utes木.脚Transa胃ction梯(袜Autode堵sk壮.片Revit仅.定Attrib寺utes解.两Transa原ctionM鬼ode约.碌Manual诞)]久

[献Autode潜sk涂.刷Revit袋.铁Attrib驴utes膝.技Journa倒ling惕(旷Autode藏sk滨.膛Revit仆.晓Attrib聚utes练.奉Journa腰lingMo籍de捏.极NoComm嘱andDat微a梯)]通

[庄Autode絮sk湿.撕Revit壤.依Attrib予utes掠.蛾Regene棵ration求(制Autode沃sk仍.眨Revit闯.仿Attrib下utes宣.惑Regene榆ration堡Option炒.慌Manual翁)]刘

椒狡public轿培class罪死Class1罢荷:洽创IExter禾nalCom科mand

{令

资捷public泊障Result零啊Execut胸e温(荒Extern牢alComm兴andDat离a架下comman授dData尸,峡嫌ref额祝string端侄messag撑e验,合曲Elemen盏tSet号燃elemen咏ts交)锯

{况

故吃Docume碧nt像骤revitD光oc踢夏=士酬comman海dData戚.敌Applic赢ation医.笼Active垦UIDocu嚷ment亿.虚Docume役nt想;

弓弓//取得文档风

客帐Applic爷ation翻凉revitA桌pp旋渠=军胶comman搬dData率.释Applic霸ation览.专Applic厘ation荒;

近肝//取得应用位程序写

奖橡//选择一个拔族实例策

朵早Select蜓ion饶主sel填产=碍并comman娱dData吗.洲Applic捡ation壁.闷Active象UIDocu婆ment屈.际Select泡ion零;球

便属Refere宁nce井敢ref1要砌=愁组sel帮.怕PickOb西ject帜(友Object撞Type泉.奔Elemen推t核,脖勺"选择一个族训实例"薄);教

脏剥Family宜Instan趋ce廊舒family瓶Ins羽冈=杆即revitD戚oc干.商GetEle表ment苗(致ref1拢)精魂as第型Family折Instan阶ce俭;筋

齐杆Family刊Symbol亚罚symbol叹仓=谱租family芒Ins蛇.烂Symbol宜;砖

孕头//得到族文傍档瞒

眯级Docume躲nt确疯family舟Doc彼短=诱森revitD毫oc撒.串EditFa摄mily部(古symbol辈.栋Family绸);稿

照哈//取得娇Family纺Manage横r需,注意这里只饱能从族文档中残取得薄Family颠Manage汇r答,然后修改参敌数则

虎波Family溪Manage馒r不璃family么Manage摄r秃晋=晨果family汁Doc萍.续Family罚Manage疼r粘;阁

秀缘IList汁<缩Family您Parame听ter月>结旷faparm叙s拌翻=竖椒family木Manage塘r肺.剧GetPar处ameter据s部();扛

馒逗TaskDi极alog捉.旧Show慌(佩"Famil答yParam举eter"勾,拔faparm揪s购.协First光().治Defini马tion痰.炭Name故);耀

昨毕Transa尽ction编引trans琴有=使膏new孩受Transa伪ction洒(数family宽Doc吵,背产"Remov域ePara辨meter"叔);蜂

裁希trans捕.辟Start崖();位

微厨family跳Manage啦r辞.预Remove杜Parame丧ter慕(存faparm控s揉.惑First精());盗

色毯trans趣.耍Commit拴();均

呀葡family监Doc严.浴LoadFa坛mily像(激revitD滥oc饭,薯避new讯穷Opt巡());旁

必药return鸭贯Result驴.旨Succee蛮ded弦;帽

}

}}常//族载入时跪覆盖并修改族痛参数扇

储public粱葬class蝶秆Opt膏扎:变捞IFamil风yLoadO异ptions

{填

诱瓦public醋杯bool允交OnFami期lyFoun皱d诚(照bool流菠family裁InUse刷,蚕非out肤脚bool花阶overwr贱itePar绕ameter宽Values有)泛

{换

休攀overwr甚itePar顶ameter歉Values借沸=底督true忆;虚

颂脏return贤牲true主;尺

}迈

蓬基public享祖bool汁克OnShar谣edFami刚lyFoun怜d弊(炕Family晒屡shared稿Family唉,嫂昨bool屈陕family直InUse隆,迁么out爷品Family苦Source项亡source欧,饮么out爹妄bool取隆overwr船itePar工ameter垃Values醉)懒

{炼

手慧source凉笔=要暖Family伤Source宰.绞Projec真t锯;违

迅楚overwr他itePar扭ameter桐Values贱跌=式竹true骗;讽

诉垃return联精true花;赵

}

}役4、遍历族参烈数脚using授译System仆;载using来梯System捡.紧Collec销tions形.搅Generi妙c骡;王using遥眠System勇.扣Linq予;掏using滴端System荣.饰Text朋;业using遥私System叨.历Thread粥ing赏.奇Tasks完;秤using购繁Autode禾sk确.这Revit鹊.喉UI俘;娃using丈准Autode车sk束.逮Revit浑.来DB涉;载using稿宗Autode驾sk之.体Revit殖.惧UI强.烟Select罪ion埋;不using闸瘦Autode立sk担.盛Revit抽.络Applic适ationS叔ervice项s卸;吸namesp聋ace忘裤遍历族参数{控

[熔Autode崇sk娘.伴Revit污.喝Attrib伙utes仇.法Transa埋ction宽(搅Autode夫sk甘.凤Revit浪.始Attrib久utes培.活Transa云ctionM违ode绵.讯Manual洋)]源

[刑Autode蜓sk射.善Revit卵.抬Attrib诉utes狸.谷Journa嫌ling刊(画Autode谎sk踢.袄Revit惨.浴Attrib拐utes思.司Journa仗lingMo皆de才.躬NoComm蚂andDat疲a茶)]妖

[拴Autode堤sk如.隔Revit凶.进Attrib修utes流.酸Regene或ration启(境Autode辩sk格.消Revit锄.洒Attrib凶utes电.杰Regene删ration匀Option奏.角Manual僵)]虹

恩简public寿因class许斩Class1红于:酒购IExter巩nalCom鱼mand

{表

失斑public雁医Result某锁Execut锡e排(靠Extern鞋alComm潮andDat铃a课石comman对dData填,誓际ref潜撇string端日messag贫e涉,推告Elemen估tSet鹅跃elemen盟ts麦)快

{锄

膀五Docume蔑nt但狮revitD瓣oc抢有=比丧comman毒dData滨.瓦Applic兽ation细.丘Active与UIDocu浮ment续.蚀Docume翠nt午;

丧枝//取得文档龄

玩嫂UIAppl朱icatio压n且急uiApp恐么=辈轿comman虽dData播.倦Applic概ation拼;遥

吊醋Applic尖ation念悲revitA武pp蛇拜=必玩comman详dData牙.课Applic拍ation丽.影Applic毫ation甚;

搂邪//取得应用呜程序就

击亏//取得选择瞒的元素垫

薪奸Select伟ion激圾sel删县=覆遥uiApp学.益Active体UIDocu描ment雅.联Select反ion表;缠

暗累Refere刚nce竿依ref1冤荐=剩拣sel恰.依PickOb笼ject削(旨Object肌Type题.葱Elemen躬t寨,悦剃"pleas蹦epick即afam象ilyin绒stance阁"测);包

手尼Docume赏nt距晃doc岁遗=胃抹uiApp蛋.陪Active笑UIDocu俯ment咐.避Docume颂nt眼;瓣

惨波Elemen母t础恐elem刊吊=感爆doc湿.浩GetEle宾ment辜(返ref1涂);较

景绑//遍历元素眉的参数竞

斯座string加贫strPar桥amInfo箭骗=家疤null书;宪

拾武foreac践h眨缘(盖Parame掩ter舅断param梦前in惨舱elem前.苦Parame糊ters稳)偏

摊{扔

纵讯if趣厕(瞎param砌.捧AsValu耕eStrin塞g曲()!=旨有null晒)缎

最构strPar膏amInfo亩之+=德嫂param思.尚Defini阳tion物.纤Name茎牺+村圣"valu谊eis:"本厨+拜露param颗.割AsValu冲eStrin坦g佛()+肠短"\n"僚;爪

较依else侮

也拨strPar伸amInfo芒鬼+=旷化param吩.鸡Defini稼tion挪.笨Name岔宵+写散"valu杯eis:"民割+最氧param葬.怜AsStri团ng帐()+启居"\n"单;幅

扎}恭

订熟TaskDi柿alog芽.斥Show咳(泄"REVIT江"驼,直主strPar誉amInfo撑);催

赏庆return咏量Result床.握Succee团ded窄;绩

}

}}肉5、获得指定绑族参数并修改属参数,这里以吉窗户的底高度逆为例。这里用圣两种方法找到称指定参数,尤制其是用名称找笨到指定参数尤附其要注意,旧骨版本的纷get_Pa秧ramete拔r皇()已经不能肿用了阅using碧角System评.调Text饮;镜using尼博System赴.竿Thread深ing领.侨Tasks留;思using因秘Autode欺sk缴.叉Revit姑.顷UI挤;帽using樱休Autode吨sk巨.仓Revit扰.享DB惨;覆using泰傻Autode骡sk雹.添Revit肆.答UI逐.柏Select度ion木;姿using窄迫Autode换sk猴.械Revit衣.剥Applic疲ationS秃ervice播s概;桥namesp织ace饼施获得指定参数牌并修改参数{芹

[场Autode面sk巧.呢Revit泻.踩Attrib某utes傻.钥Transa桥ction脸(渣Autode边sk亩.恐Revit洗.摆Attrib度utes殊.淹Transa效ctionM袄ode配.虽Manual奔)]胃

[正Autode高sk择.熔Revit精.袄Attrib威utes说.纠Journa烤ling堡(扣Autode案sk买.把Revit拼.赞Attrib泊utes眠.灿Journa纵lingMo板de究.葬NoComm滴andDat塘a烧)]恭

[轰Autode诞sk袄.沈Revit良.旷Attrib案utes仆.铅Regene坦ration李(尊Autode遵sk步.旱Revit业.荷Attrib望utes令.治Regene诞ration地Option怕.戴Manual多)]太

肆颤public债永class滑肚Class1悟某:亏嗽IExter汇nalCom越mand

{蛋

倾停public有燕Result桥胸Execut耽e集(鞭Extern料alComm窗andDat葡a颤持comman鼠dData闯,番醒ref沃择string债纹messag狸e获,遣河Elemen粘tSet宪算elemen议ts筑)瑞

{禽

德必Docume幼nt舟池revitD右oc露庄=块酒comman革dData培.价Applic陷ation妙.赏Active匠UIDocu魔ment竖.广Docume锄nt梁;

乖灰//取得文档阴

裙驱UIAppl懒icatio饿n划筋uiApp掠托=删捏comman牢dData梦.截Applic按ation缝;耕

闪门Applic冬ation声眉revitA统pp讲梳=棍作comman刃dData授.童Applic教ation垃.城Applic俩ation响;

背殿//取得应用狠程序飞

兄惰//取得选择替的元素国

被封Select挤ion傻遵sel针宝=摩胀uiApp锻.旁Active巴UIDocu桌ment需.浸Select奇ion搭;样

希六Refere彩nce朗鸟ref1区咬=愿忍sel塑.泽PickOb拳ject弹(柜Object莲Type赌.促Elemen务t沃,牢液"选择一个窗悲族"漫);刊

处御Elemen刮t六乡elem芬铁=猎闲revitD外oc扬.挺GetEle坝ment凶(粥ref1剩);昂

拖胶//获得族实配例沉

帖悦Family扶Instan达ce速茶family告Instan虹ce啦载=养签elem脑腾as匪泥Family僻Instan潮ce宴;应

线滥//遍历元素且的参数笼

困肿string钥锅strPar彻amInfo祝球=臂览null班;触

茧睁////方法船一:使用处parame备terId洪来找到参数无

数伤//Para拌meter沟param惨=fam洗ilyIns去tance.真get_Pa甘ramete拖r(Buil墨tInPar颠ameter往.INSTA魄NCE_SI谅LL_HEI兼GHT_PA班RAM);尾

喘磁//笨strPar堤amInfo田+=某param.货Defini蚕tion.N桃ame薯+"va朽lueis段:"+涌param.或AsValu打eStrin趁g屑()+"挠\n";鸡

/真/方法二:使遗用名称来找到投参数,因为r叠evit20姓16为了避免墓得到重复的名阔字,只能用漫GetPar正ameter助s膛得到一个集合撞,如果你只用交唯一的名字,销那只用取li话st[0]就骨可以了简

崭任IList伯<斩Parame汗ter百>某祖list湿鸣=泪损family避Instan带ce倍.驰GetPar盾ameter竟s辫(谦"底高度"辞);诚

盼枪Parame榜ter垦壮param乡迹=率兼list福[0];古

贯岛strPar晃amInfo基搭+=仗只param镇.虏Defini骄tion兆.拍Name草日+揉糕"value奉is:"爆挨+宽剥param壁.俩AsValu绒eStrin晓g榜()+惕抽"\n"凑;做

仁//方法三:微见下图帮

哨窄//修改参数织的值靠

岂宴Transa豆ction搅击transa杏ction阿子=耍饺new炒什Transa约ction淹(古revitD园oc坝);灯

勒唇//打开子程丸序,修改参数诵,然后关闭子护程序

渠赔transa垄ction盏.家Start刃(眠"改变族类型稿名称"位);红

镰旅param惊.弃Set联(10);

设裳//注意,这鄙里单位是英寸绕,10英寸等哪于3048m夫m拼

挺董transa马ction确.金Commit润();汇

惩颂Tas

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论