




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Revit在橋梁中的應(yīng)用二次開(kāi)發(fā)篇(1)——族建模篇簡(jiǎn)單講了怎么在revit軟件中手動(dòng)建橋梁模型,更多的基礎(chǔ)操作的內(nèi)容可以直接看revit在建筑中應(yīng)用的相關(guān)教程,其實(shí)也是相通的,沒(méi)必要多講。這次誠(chéng)意滿滿,花了兩天時(shí)間專門(mén)研究二次開(kāi)發(fā)中族的應(yīng)用。以下代碼親測(cè)可試,結(jié)合《AUTODESKREVIT二次開(kāi)發(fā)基礎(chǔ)教程》可以獲得更好的效果。因?yàn)闀?shū)本上都是一些代碼片段,而且是基于2015版的,在2016版的revit上部分代碼跑不了。我也嘗試了很久,終于基本上搞通了族相關(guān)的語(yǔ)法?;A(chǔ)知識(shí)直接看書(shū),這里直接上代碼。書(shū)里的代碼片段可以想辦法插到完整代碼中運(yùn)行。1、找到族實(shí)例
//用id找到族實(shí)例2、拿到族文檔//拿到族文檔
DocumentfamilyDoc=revitDoc.EditFamily(familyInstance.Symbol.Family);
if(!familyDoc.IsFamilyDocument)
{
TaskDialog.Show("錯(cuò)誤3","familyDoc不是族文檔!");
}
else
{
TaskDialog.Show("revit","familyDoc是族文檔!");
}3、修改族類型名稱(完整代碼)usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingAutodesk.Revit.UI;usingAutodesk.Revit.DB;usingAutodesk.Revit.UI.Selection;usingAutodesk.Revit.ApplicationServices;namespace修改族類型名稱{
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
[Autodesk.Revit.Attributes.Journaling(Autodesk.Revit.Attributes.JournalingMode.NoCommandData)]
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
publicclassClass1:IExternalCommand
{
publicResultExecute(ExternalCommandDatacommandData,refstringmessage,ElementSetelements)
{
DocumentrevitDoc=commandData.Application.ActiveUIDocument.Document;
//取得文檔
ApplicationrevitApp=commandData.Application.Application;
//取得應(yīng)用程序
Selectionsel=commandData.Application.ActiveUIDocument.Selection;
Referenceref1=sel.PickObject(ObjectType.Element,"選擇一個(gè)族實(shí)例");
//得到當(dāng)前選擇的文檔
Documentdoc=commandData.Application.ActiveUIDocument.Document;
//族實(shí)例
FamilyInstancefamilyIns=doc.GetElement(ref1)asFamilyInstance;
FamilySymbolsymbol=familyIns.Symbol;
Transactiontransaction=newTransaction(doc);
//打開(kāi)關(guān)閉子程序
transaction.Start("改變族類型名稱");
symbol.Name="new"+symbol.Name;
transaction.Commit();
returnResult.Succeeded;
}
}}4、刪除一個(gè)族參數(shù)
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
[Autodesk.Revit.Attributes.Journaling(Autodesk.Revit.Attributes.JournalingMode.NoCommandData)]
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
publicclassClass1:IExternalCommand
{
publicResultExecute(ExternalCommandDatacommandData,refstringmessage,ElementSetelements)
{
DocumentrevitDoc=commandData.Application.ActiveUIDocument.Document;
//取得文檔
ApplicationrevitApp=commandData.Application.Application;
//取得應(yīng)用程序
//選擇一個(gè)族實(shí)例
Selectionsel=commandData.Application.ActiveUIDocument.Selection;
Referenceref1=sel.PickObject(ObjectType.Element,"選擇一個(gè)族實(shí)例");
FamilyInstancefamilyIns=revitDoc.GetElement(ref1)asFamilyInstance;
FamilySymbolsymbol=familyIns.Symbol;
//得到族文檔
DocumentfamilyDoc=revitDoc.EditFamily(symbol.Family);
//取得FamilyManager,注意這里只能從族文檔中取得FamilyManager,然后修改參數(shù)
FamilyManagerfamilyManager=familyDoc.FamilyManager;
IList<FamilyParameter>faparms=familyManager.GetParameters();
TaskDialog.Show("FamilyParameter",faparms.First().Definition.Name);
Transactiontrans=newTransaction(familyDoc,"RemoveParameter");
trans.Start();
familyManager.RemoveParameter(faparms.First());
trans.Commit();
familyDoc.LoadFamily(revitDoc,newOpt());
returnResult.Succeeded;
}
}}//族載入時(shí)覆蓋并修改族參數(shù)
publicclassOpt:IFamilyLoadOptions
{
publicboolOnFamilyFound(boolfamilyInUse,outbooloverwriteParameterValues)
{
overwriteParameterValues=true;
returntrue;
}
publicboolOnSharedFamilyFound(FamilysharedFamily,boolfamilyInUse,outFamilySourcesource,outbooloverwriteParameterValues)
{
source=FamilySource.Project;
overwriteParameterValues=true;
returntrue;
}
}4、遍歷族參數(shù)usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingAutodesk.Revit.UI;usingAutodesk.Revit.DB;usingAutodesk.Revit.UI.Selection;usingAutodesk.Revit.ApplicationServices;namespace遍歷族參數(shù){
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
[Autodesk.Revit.Attributes.Journaling(Autodesk.Revit.Attributes.JournalingMode.NoCommandData)]
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
publicclassClass1:IExternalCommand
{
publicResultExecute(ExternalCommandDatacommandData,refstringmessage,ElementSetelements)
{
DocumentrevitDoc=commandData.Application.ActiveUIDocument.Document;
//取得文檔
UIApplicationuiApp=commandData.Application;
ApplicationrevitApp=commandData.Application.Application;
//取得應(yīng)用程序
//取得選擇的元素
Selectionsel=uiApp.ActiveUIDocument.Selection;
Referenceref1=sel.PickObject(ObjectType.Element,"pleasepickafamilyinstance");
Documentdoc=uiApp.ActiveUIDocument.Document;
Elementelem=doc.GetElement(ref1);
//遍歷元素的參數(shù)
stringstrParamInfo=null;
foreach(Parameterparaminelem.Parameters)
{
if(param.AsValueString()!=null)
strParamInfo+=param.Definition.Name+"valueis:"+param.AsValueString()+"\n";
else
strParamInfo+=param.Definition.Name+"valueis:"+param.AsString()+"\n";
}
TaskDialog.Show("REVIT",strParamInfo);
returnResult.Succeeded;
}
}}5、獲得指定族參數(shù)并修改參數(shù),這里以窗戶的底高度為例。這里用兩種方法找到指定參數(shù),尤其是用名稱找到指定參數(shù)尤其要注意,舊版本的get_Parameter()已經(jīng)不能用了usingSystem.Text;usingSystem.Threading.Tasks;usingAutodesk.Revit.UI;usingAutodesk.Revit.DB;usingAutodesk.Revit.UI.Selection;usingAutodesk.Revit.ApplicationServices;namespace獲得指定參數(shù)并修改參數(shù){
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
[Autodesk.Revit.Attributes.Journaling(Autodesk.Revit.Attributes.JournalingMode.NoCommandData)]
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
publicclassClass1:IExternalCommand
{
publicResultExecute(ExternalCommandDatacommandData,refstringmessage,ElementSetelements)
{
DocumentrevitDoc=commandData.Application.ActiveUIDocument.Document;
//取得文檔
UIApplicationuiApp=commandData.Application;
ApplicationrevitApp=commandData.Application.Application;
//取得應(yīng)用程序
//取得選擇的元素
Selectionsel=uiApp.ActiveUIDocument.Selection;
Referenceref1=sel.PickObject(ObjectType.Element,"選擇一個(gè)窗族");
Elementelem=revitDoc.GetElement(ref1);
//獲得族實(shí)例
FamilyInstancefamilyInstance=elemasFamilyInstance;
//遍歷元素的參數(shù)
stringstrParamInfo=null;
////方法一:使用parameterId來(lái)找到參數(shù)
//Parameterparam=familyInstance.get_Parameter(BuiltInParameter.INSTANCE_SILL_HEIGHT_PARAM);
//strParamInfo+=param.Definition.Name+"valueis:"+param.AsValueString()+"\n";
//方法二:使用名稱來(lái)找到參數(shù),因?yàn)閞evit2016為了避免得到重復(fù)的名字,只能用GetParameters得到一個(gè)集合,如果你只用唯一的名字,那只用取list[0]就可以了
IList<Parameter>list=familyInstance.GetParameters("底高度");
Parameterparam=list[0];
strParamInfo+=param.Definition.Name+"valueis:"+param.AsValueString()+"\n";
//方法三:見(jiàn)下圖
//修改參數(shù)的值
Transactiontransaction=newTransaction(revitDoc);
//打開(kāi)子程序,修改參數(shù),然后關(guān)閉子程序
transaction.Start("改變族類型名稱");
param.Set(10);
//注意,這里單位是英寸,10英寸等于3048mm
transsactioon.Commiit();
TaskDDialogg.Show("REVIIT",strPaaramInnfo);
returrnResullt.Succeeeded;;
}
}}//接以上方法三三:6、毫米轉(zhuǎn)到英寸寸7、幾個(gè)有用的關(guān)關(guān)于reviit二次開(kāi)發(fā)發(fā)族的相關(guān)鏈鏈接a、HYPERLINK"/d_0
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年經(jīng)濟(jì)適應(yīng)性與風(fēng)險(xiǎn)管理試題及答案
- 行政法學(xué)的研究熱點(diǎn)與未來(lái)展望試題及答案
- 高效應(yīng)對(duì)的2024年高考數(shù)學(xué)試題及答案
- 經(jīng)濟(jì)變革中的倫理問(wèn)題試題及答案
- 行政管理常見(jiàn)問(wèn)題與試題解析
- 行政管理中的法治精神培育試題及答案
- 路政賠償協(xié)議書(shū)
- 融創(chuàng)免責(zé)協(xié)議書(shū)
- 賺取差價(jià)協(xié)議書(shū)
- 停車收費(fèi)員協(xié)議書(shū)
- 2025年廣東省廣州市南沙區(qū)中考數(shù)學(xué)一模試卷
- DZ∕T 0450-2023 地質(zhì)災(zāi)害監(jiān)測(cè)數(shù)據(jù)通信技術(shù)要求(正式版)
- 2024年湖北省中考地理生物試卷(含答案)
- 人教版五年級(jí)數(shù)學(xué)下冊(cè) 7 折線統(tǒng)計(jì)圖 第1課時(shí) 單式折線統(tǒng)計(jì)圖(教學(xué)課件)
- 最新結(jié)構(gòu)新舊混凝土結(jié)構(gòu)設(shè)計(jì)規(guī)范對(duì)比
- 醫(yī)院學(xué)科帶頭人選拔及激勵(lì)機(jī)制
- 旅游資源單體調(diào)查表樣表
- Hypermesh與Nastran模態(tài)分析詳細(xì)教程
- 電梯產(chǎn)品數(shù)據(jù)表
- 工廠經(jīng)營(yíng)管理考核方案.doc
- A4橫線稿紙模板(可直接打印)-a4線條紙
評(píng)論
0/150
提交評(píng)論