revit在橋梁中的應(yīng)用二次開發(fā)族_第1頁(yè)
revit在橋梁中的應(yīng)用二次開發(fā)族_第2頁(yè)
revit在橋梁中的應(yīng)用二次開發(fā)族_第3頁(yè)
revit在橋梁中的應(yīng)用二次開發(fā)族_第4頁(yè)
revit在橋梁中的應(yīng)用二次開發(fā)族_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、班R癌evit班在橋梁中的應(yīng)用二愛(ài)次開發(fā)篇(1)敖族瓣 建模篇辦簡(jiǎn)單講了怎么在捌revit拌軟件中手動(dòng)建橋梁胺模型,更多的基礎(chǔ)骯操作的內(nèi)容可以直盎接看拜revit藹在建筑中應(yīng)用的相柏關(guān)教程,其實(shí)也是伴相通的,沒(méi)必要多疤講。挨 這次誠(chéng)芭意滿滿,花了兩天皚時(shí)間專門研究二次襖開發(fā)中族的應(yīng)用。跋以下代碼親測(cè)可試版,結(jié)合AUTO鞍DESK REV暗IT二次開發(fā)基礎(chǔ)笆教程可以獲得更耙好的效果。因?yàn)闀乇旧隙际且恍┐a奧片段,而且是基于叭2015版的,在懊2016版的百revit岸上部分代碼跑不了背。我也嘗試了很久按,終于基本上搞通礙了族相關(guān)的語(yǔ)法。邦 基礎(chǔ)知熬識(shí)直接看書,這里昂直接上代碼。書里扮的代碼片段

2、可以想版辦法插到完整代碼皚中運(yùn)行。 1、找到族實(shí)例襖/用id找到癌族實(shí)例2、拿到族文檔/拿到族文檔拜拌半 懊Document襖 半familyDo皚c白 案=敗 罷revitDoc昂.般EditFami叭ly藹(拌familyIn隘stance罷.柏Symbol壩.般Family埃);埃靶骯 把if半 岸(!挨familyDo板c奧.澳IsFamily鞍Document瓣)跋捌 背翱班 鞍TaskDial班og骯.班Show斑(巴錯(cuò)誤3皚,拜 骯哀familyDo板c半不是族文檔!唉);隘疤 懊瓣胺 叭else按按 熬爸艾 耙TaskDial敖og八.Show埃(皚般revit百哎,啊 安巴f

3、amilyDo頒c頒是族文檔!昂);罷傲 唉3、修改族類型名藹稱(完整代碼)壩using疤 扒System板;拜using耙 白System壩.爸Collecti隘ons疤.奧Generic稗;敗using稗 盎System八.伴L(zhǎng)inq芭;芭using襖 拜System皚.絆Text靶;暗using藹 靶System埃.巴Threadin把g敖.巴Tasks隘;霸u(píng)sing愛(ài) 壩Autodesk按.靶Revit啊.熬UI;矮using按 礙Autodesk靶.伴Revit骯.襖DB懊;版using跋 隘Autodesk礙.擺Revit拜.癌UI笆.伴Selectio壩n埃;八using八 捌

4、Autodesk吧.吧Revit皚.靶Applicat癌ionServi跋ces隘;懊namespac藹e笆 敗修改族類型名稱昂 唉Autodesk背.稗Revit爸.奧Attribut頒es罷.按Transact艾ion靶(柏Autodesk傲.笆Revit捌.癌Attribut襖es靶.疤Transact哀ionMode熬.爸Manual昂)瓣 傲Autodesk鞍.靶Revit癌.唉Attribut捌es背.壩Journali哀ng凹(皚Autodesk班.皚Revit班.癌Attribut案es把.百Journali柏ngMode哀.傲NoComman安dData班)骯 艾Autode

5、sk敖.吧Revit拌.案Attribut俺es版.襖Regenera百tion吧(艾Autodesk板.拔Revit凹.按Attribut芭es凹.板Regenera盎tionOpti白o(hù)n版.俺Manual熬)捌擺 叭public扳 把class佰 邦Class1伴 案:柏 斑IExterna稗lCommand 胺疤 哎public礙 疤Result伴 拔Execute哀(阿External傲CommandD吧ata拌 敖commandD按ata爸,稗 捌ref叭 安string斑 敗message疤,壩 澳ElementS暗et絆 半elements般)絆 耙骯百熬 佰Document俺

6、 笆revitDoc安 案=疤 笆commandD傲ata搬.版Applicat澳ion挨.岸ActiveUI半Document拔.俺Document班;罷 挨/取得文檔疤哎板 哀Applicat骯ion癌 八revitApp白 般=隘 扳commandD藹ata暗.皚Applicat襖ion皚.奧Applicat阿ion岸;襖百 哀/取得應(yīng)用程序疤斑哎 辦Selectio板n瓣 案sel頒 哀=跋 佰commandD暗ata按.巴Applicat骯ion八.辦ActiveUI暗Document敖.挨Selectio爸n氨;澳拔版 百Referenc斑e板 艾ref1礙 罷=安 擺sel叭.疤

7、PickObje按ct頒(案ObjectTy奧pe藹.Element八,捌 熬選擇一個(gè)族實(shí)例柏胺);襖扳柏 靶/得到當(dāng)前選擇暗的文檔唉藹跋 挨Document扒 傲doc絆 矮=鞍 疤commandD傲ata班.Applicat凹ion翱.罷ActiveUI拜Document啊.瓣Document俺;鞍班柏 暗/族實(shí)例瓣拔跋 昂FamilyIn佰stance熬 爸familyIn版s盎 頒=斑 按doc半.唉GetEleme埃nt骯(案ref1半)氨 半as矮 傲FamilyIn頒stance啊;哎安邦 扳FamilySy拜mbol搬 藹symbol八 矮=敗 拔familyIn啊s氨.絆Sy

8、mbol礙;岸奧扮 哎Transact昂ion跋 氨transact斑ion敗 暗=俺 扒new拌 皚Transact扮ion按(捌doc跋);半邦 邦/打開關(guān)閉子程叭序把罷敖 埃transact埃ion澳.搬Start八(伴改變族類型名稱拔擺);盎瓣唉 氨symbol巴.疤N(yùn)ame斑 岸=辦 佰new爸 埃+捌 百symbol唉.岸Name班;骯笆疤 跋transact皚ion暗.扒Commit疤();八邦巴 奧return擺 俺Result班.白Succeede敖d鞍;搬 班 搬4、刪除一個(gè)族參百數(shù) 白Autodesk胺.襖Revit巴.擺Attribut安es吧.傲Transact扮io

9、n扒(柏Autodesk笆.敗Revit盎.凹Attribut埃es辦.罷Transact哎ionMode俺.案Manual捌)俺 疤Autodesk岸.辦Revit埃.頒Attribut胺es跋.拌Journali八ng板(絆Autodesk阿.敗Revit耙.藹Attribut岸es白.跋JournalingMode敖.疤N(yùn)oComman擺dData辦)罷 澳Autodesk版.敗Revit唉.傲Attribut捌es霸.稗Regenera挨tion跋(藹Autodesk盎.案Revit骯.斑Attribut笆es昂.暗Regenera哀tionOpti昂on芭.礙Manual疤)頒扳 骯

10、public愛(ài) 爸class哎 霸Class1懊 藹:邦 般IExterna白lCommand 矮皚 鞍public案 暗Result壩 搬Execute百(白External叭CommandD扒ata版 捌commandD翱ata哀,按 啊ref稗 鞍string拔 罷message俺,安 骯ElementS版et隘 熬elements藹)壩 按柏搬靶 岸Document敖 版revitDoc絆 哎=叭 哀commandD班ata壩.笆Applicat拜ion八.胺ActiveUI胺Document罷.氨Document拜;搬 愛(ài)/取得文檔邦擺盎 隘Applicat皚ion懊 挨revitA

11、pp按 邦=阿 辦commandD傲ata皚.藹Applicat癌ion拔.半Applicat佰ion骯;矮矮 搬/取得應(yīng)用程序氨矮擺 伴/選擇一個(gè)族實(shí)挨例百哀捌 艾Selectio翱n疤 傲sel霸 絆=敖 疤commandD凹ata唉.耙Application捌.扳ActiveUI霸Document版.敗Selectio盎n盎;巴哀邦 耙Referenc邦e巴 藹ref1拜 俺=翱 斑sel按.佰PickObje把ct跋(安ObjectTy皚pe頒.背Element捌,奧 愛(ài)選擇一個(gè)族實(shí)例瓣般);版擺耙 辦FamilyIn拜stance頒 八familyIn礙s叭 敖=俺 柏revitDo

12、c扳.叭GetEleme耙nt藹(爸ref1跋)八 吧as拔 唉FamilyIn熬stance般;跋岸伴 癌FamilySy跋mbol耙 般symbol板 哀=癌 瓣familyIn埃s耙.骯Symbol阿;耙半啊 柏/得到族文檔疤瓣鞍 巴Document氨 霸familyDo氨c把 盎=矮 哀revitDoc扳.哎EditFami拜ly八(八symbol巴.胺Family耙);絆拌跋 暗/取得罷FamilyMa唉nager背,注意這里只能從霸族文檔中取得八FamilyMa啊nager敗,然后修改參數(shù)翱阿吧 佰FamilyMa啊nager案 版familyMa岸nager皚 斑=捌 跋fami

13、lyDo癌c啊.啊FamilyMa拜nager礙;跋邦矮 半IList捌拔 霸faparms哀 把=隘 捌familyMa稗nager翱.擺GetParam百eters芭();鞍靶傲般胺 翱TaskDial跋og愛(ài).扮Show搬(岸FamilyP哎arameter扒伴,八faparms百.扮First岸().扳Definiti奧on皚.壩Name疤);敗疤拌 骯Transact鞍ion辦 絆trans壩 哀=伴 鞍new奧 半Transact稗ion版(敖familyDo襖c稗,安 骯Remove 拌Paramete半r阿);疤拜跋 百trans把.傲Start皚();爸敖扒 吧familyM

14、a把nager藹.鞍RemovePa百rameter笆(班faparms稗.案First跋();疤搬拌 唉trans壩.巴Commit矮();霸隘昂 把familyDo扳c哎.把LoadFami伴ly班(隘revitDoc扒,吧 笆new皚 懊Opt壩();疤扳柏 凹return頒 懊Result翱.翱Succeede傲d罷;把 扮 斑/族載入時(shí)覆蓋疤并修改族參數(shù)襖笆public挨 胺class按 鞍Opt艾 瓣:氨 稗IFamilyL扳oadOptio八ns 唉藹 暗public跋 靶bool邦 百OnFamily傲Found皚(斑bool藹 懊familyIn吧Use爸,背 伴out絆 凹

15、bool敗 爸overwrit澳eParameterValues安)挨 按凹?jí)伟?板overwrit凹eParamet矮erValues傲 澳=挨 傲true襖;班壩罷 疤return搬 艾true按;骯 版岸 骯public百 半bool氨 盎OnShared壩FamilyFo瓣und哎(礙Family巴 礙sharedFa敗mily礙,哀 拔bool礙 疤familyIn跋Use捌,伴 半out凹 壩FamilySo氨urce瓣 皚source艾,辦 澳out昂 疤bool班 哎overwrit艾eParamet皚erValues凹)版 霸礙敗把 芭source笆 挨=奧 疤FamilyS

16、o拌urce瓣.拌Project搬;襖礙背 壩overwrit骯eParamet背erValues阿 稗=艾 昂true安;挨半岸 擺return拜 吧true阿;瓣 爸 4、遍歷族參數(shù)岸using佰 擺System扳;隘using澳 百System埃.藹Collecti昂ons耙.隘Generic罷;案using半 斑System拌.藹Linq捌;吧using罷 扮System啊.白Text胺;扳using半 傲System靶.稗Threadin百g斑.翱Tasks拌;背using熬 般Autodesk癌.扮Revit跋.吧UI凹;般using霸 挨Autodesk頒.辦Revit澳.絆DB

17、笆;搬using拜 稗Autodesk哀.般Revit扳.按UI襖.拜Selection叭;骯using耙 矮Autodesk敖.笆Revit骯.懊Applicat凹ionServi耙ces般;瓣namespac芭e扳 伴遍歷族參數(shù)愛(ài) 熬Autodesk八.埃Revit敖.藹Attribut吧es爸.八Transact跋ion疤(霸Autodesk把.胺Revit扮.艾Attribut凹es哎.巴Transact氨ionMode半.叭Manual百)邦 罷Autodesk般.唉Revit佰.柏Attribut芭es百.安Journali版ng伴(昂Autodesk八.捌Revit案.愛(ài)Attr

18、ibut跋es笆.阿Journali瓣ngMode叭.懊NoComman矮dData笆)拜 氨Autodesk挨.哀Revit凹.澳Attribut柏es敖.藹Regenera奧tion拔(藹Autodesk唉.奧Revit昂.盎Attribut襖es懊.捌Regenera班tionOpti班on辦.把Manual稗)昂擺 捌public扒 白class癌 霸Class1般 拔:罷 伴IExterna壩lCommand 柏拔 版public扳 拌Result礙 鞍Execute傲(佰External拌CommandD昂ata襖 翱commandD熬ata跋,挨 矮ref皚 班string叭 啊

19、message氨,哀 版ElementS柏et班 佰elements哀)佰 安礙胺佰 胺Document按 八revitDoc笆 搬=頒 岸commandD鞍ata頒.啊Applicat扒ion敗.拌ActiveUI壩Document挨.癌Document板;罷 靶/取得文檔半胺澳 鞍UIApplic拜ation班 吧uiApp笆 =扮 伴commandD拔ata拌.瓣Applicat背ion跋;礙鞍版 唉Applicat澳ion澳 扒revitApp奧 昂=盎 案commandD哀ata昂.瓣Applicat氨ion扮.拌Applicat般ion罷;扒佰 疤/取得應(yīng)用程序背哎傲凹叭 扒/取得

20、選擇的元板素罷跋般 暗Selectio邦n百 癌sel柏 盎=壩 按uiApp疤.百ActiveUI靶Document按.敖Selectio霸n笆;癌扳按 扮Referenc把e敗 哎ref1擺 白=傲 班sel疤.傲PickObje凹ct班(吧ObjectTy白pe襖.佰Element傲,熬 拜please 骯pick a f骯amily in皚stance鞍);版般背 扮Document氨 癌doc按 案=扳 胺uiApp礙.搬ActiveUI隘Document扒.稗D(zhuǎn)ocument翱;唉氨靶 瓣Element笆 癌elem跋 拔=瓣 巴doc案.背GetEleme頒nt敗(版ref1昂)

21、;罷叭版氨暗 霸/遍歷元素的參數(shù)胺版俺 佰string班 鞍strParam柏Info案 癌=笆 吧null凹;俺百 挨foreach挨 柏(伴Paramete拜r挨 俺param把 拔in氨 皚elem矮.邦Paramete叭rs阿)把隘 骯挨案 熬if斑 翱(安param暗.隘AsValueS芭tring盎() !=襖 null藹)爸澳俺凹 辦strParam瓣Info爸 霸+=癌 阿param愛(ài).岸Definiti挨on敗.拔Name扒 罷+暗 奧 value 耙is:敗 骯+霸 靶param白.澳AsValueS拌tring八() +笆 拔n鞍;頒襖板 捌else壩氨敖盎 叭strPa

22、ram背Info版 扮+=芭 愛(ài)param矮.斑Definiti按on壩.安Name拌 巴+啊 稗 value 頒is:跋 皚+凹 笆param半.敗AsString皚() +百 鞍n捌;稗胺 礙扳哎 啊TaskDial白o(hù)g罷.盎Show骯(霸REVIT版,案 隘strParam奧Info阿);阿爸岸 唉return俺 埃Result安.凹Succeede斑d辦;頒 骯 翱5、獲得指定族參靶數(shù)并修改參數(shù),這敗里以窗戶的底高度哀為例。這里用兩種骯方法找到指定參數(shù)捌,尤其是用名稱找艾到指定參數(shù)尤其要礙注意,舊版本的靶g(shù)et_Para暗meter藹()已經(jīng)不能用了捌using澳 辦System.敖

23、Text靶;背using阿 疤System疤.般Threadin挨g扳.芭Tasks叭;埃using背 愛(ài)Autodesk敗.拜Revit柏.挨UI靶;敗using拜 疤Autodesk疤.吧Revit敗.哎DB笆;巴using隘 班Autodesk耙.案Revit挨.版UI敗.傲Selectio敖n傲;翱using暗 版Autodesk礙.矮Revit挨.百Applicat案ionServi班ces叭;盎namespac耙e氨 頒獲得指定參數(shù)并修改參數(shù)凹 俺Autodesk俺.叭Revit把.拔Attribut邦es哀.拜Transact巴ion癌(胺Autodesk艾.鞍Revit奧.案A

24、ttribut唉es伴.絆Transact邦ionMode百.拌Manual扒)哎 板Autodesk伴.吧Revit版.吧Attribut奧es罷.俺Journali扳ng瓣(傲Autodesk拔.疤Revit矮.氨Attribut吧es奧.熬Journali叭ngMode白.翱NoComman熬dData百)愛(ài) 敖Autodesk.拔Revit礙.半Attribut柏es啊.瓣Regenera跋tion俺(拔Autodesk靶.啊Revit疤.按Attribut癌es藹.靶Regenera胺tionOpti阿on案.吧Manual昂)敖 盎public笆 搬class頒 熬Class1擺

25、唉:絆 凹IExterna艾lCommand 扮翱 哎public霸 辦Result扮 矮Execute艾(盎External扒CommandD百ata邦 扳commandD板ata跋,頒 懊ref罷 安string瓣 板message昂,澳 啊ElementS把et俺 襖elements唉)氨 百搬般阿 吧Document矮 俺revitDoc八 白=瓣 暗commandD叭ata爸.藹Applicat艾ion盎.捌ActiveUI耙Document頒.靶Document版;按 哀/取得文檔暗巴奧 矮UIApplic百ation礙 澳uiApp哎 辦=絆 胺commandD笆ata辦.頒Ap

26、plicat埃ion頒;伴敗般 襖Applicat胺ion熬 白revitApp熬 按=般 藹commandD暗ata絆.扮Applicat霸ion罷.敖Applicat巴ion壩;敖按 佰/取得應(yīng)用程序唉氨熬 隘/取得選擇的元皚素埃巴唉 鞍Selectio翱n扒 按sel氨 爸=岸 襖uiApp邦.邦A(yù)ctiveUI岸Document斑.疤Selectio凹n俺;板艾 愛(ài)Referenc盎e骯 懊ref1案 敖=岸 隘sel艾.般PickObje吧ct佰(埃ObjectTy板pe凹.捌Element唉,扳 藹選擇一個(gè)窗族頒);版礙按 哀Element笆 礙elem疤 頒=巴 芭revitDo

27、c伴.埃GetEleme愛(ài)nt阿(癌ref1頒);按按半 鞍/獲得族實(shí)例隘澳邦 邦FamilyIn暗stance百 埃familyIn襖stance佰 拌=辦 鞍elem拌 辦as扒 藹FamilyIn拔stance捌;絆岸 藹/遍歷元素的參般數(shù)襖伴拜 按string艾 懊strParam岸Info哎 岸=敗 阿null把;罷笆擺 艾/方法一:俺使用八paramete背rId胺來(lái)找到參數(shù)捌笆拔 笆/Parame背ter 藹param癌 = famil阿yInstanc懊e.get_Pa鞍rameter(岸BuiltInP般arameter扳.INSTANC藹E_SILL_H礙EIGHT_PA癌

28、RAM);案拜傲 柏/絆strParam伴Info背 += 柏param.De版finition班.Name胺 + valu艾e is: +靶 捌param.As爸ValueStr矮ing耙() + n鞍;芭 拌 唉 捌 /方法二百:使用名稱來(lái)找到版參數(shù),因?yàn)閞ev半it2016為了霸避免得到重復(fù)的名矮字,只能用藹GetParam啊eters哀得到一個(gè)集合,如斑果你只用唯一的名澳字,那只用取li瓣st0就可以伴了巴哎白 安IList安笆 氨list跋 絆=阿 頒familyIn啊stance笆.鞍GetParam頒eters跋(笆底高度埃);笆背 版Paramete壩r阿 捌param捌 靶=

29、敖 隘list胺0;氨挨 佰strParam按Info安 盎+=敗 吧param傲.阿Definiti霸on百.半Name擺 唉+扒 扮value i鞍s:扒 拌+哎 芭param熬.皚AsValueS瓣tring般() +愛(ài) 半n頒;靶 邦 /方法礙三:見下圖白 柏骯扮按 矮/修改參數(shù)的值隘盎癌 邦Transact凹ion愛(ài) 百transact案ion傲 背=擺 愛(ài)new柏 翱Transact吧ion把(骯revitDoc矮);捌盎熬 爸/打開子程序,把修改參數(shù),然后關(guān)般閉子程序笆襖挨 扒transact半ion搬.鞍Start把(笆改變族類型名稱敗頒);凹跋壩 耙param背.吧Set柏(10);霸敗八哎霸 敖/注意,這里單啊位是英寸,10英班寸等于3048m擺m罷艾背 拜transact霸ion岸.傲Commit絆();扳昂昂 按TaskDial扳og斑.罷Show搬(捌REVIT愛(ài),八 拔strParam愛(ài)Info霸);邦伴拜 凹ret

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論