完善主體資料,免費(fèi)贈(zèng)送VIP會(huì)員!
* 主體類型
* 企業(yè)名稱
* 信用代碼
* 所在行業(yè)
* 企業(yè)規(guī)模
* 所在職位
* 姓名
* 所在行業(yè)
* 學(xué)歷
* 工作性質(zhì)
請(qǐng)先選擇行業(yè)
您還可以選擇以下福利:
行業(yè)福利,領(lǐng)完即止!

下載app免費(fèi)領(lǐng)取會(huì)員

NULL

ad.jpg

Revit技巧 | Revit二次開發(fā)基礎(chǔ)/核心編程---建筑建模-標(biāo)高和軸網(wǎng)

發(fā)布于:2024-09-30 10:30:19

BIM中文網(wǎng)

更多

    文章來源:CSDN論壇

    一、本節(jié)課程

    C#Revit二次開發(fā)基礎(chǔ)/核心編程---建筑建模-標(biāo)高和軸網(wǎng)

image.png

    二、本節(jié)要講解的知識(shí)點(diǎn)

    1、標(biāo)高的高度、創(chuàng)建標(biāo)高

    2、軸網(wǎng)曲線、創(chuàng)建軸網(wǎng)

    具體內(nèi)容

    1、標(biāo)高

    標(biāo)高是有限水平平面,大多數(shù)元素都是基于標(biāo)高來定位的,如墻、地板、天花板、屋頂?shù)?。?duì)應(yīng)的類是Level,它繼承于Element類。

    (1)標(biāo)高的高度(ElevationandProjectElevation)

    通過Level.Elevation屬性(對(duì)應(yīng)的BuiltInParameter是LEVEL_ELEV)可以獲取標(biāo)高的高度,它代表個(gè)是該標(biāo)高相對(duì)于基面“ElevationBase”的高度,基面可以是項(xiàng)目的基點(diǎn),也可以是測(cè)量點(diǎn)。

//============代碼片段4-1 修改標(biāo)高的基面============

ElementId levelId=new ElementId(311);

Element element= RevitDoc.GetElement(levelId);

Level level= element as Level;

LevelType levelType = RevitDoc.GetElement(level.GetTypeId()) as LevelType;

Parameter relativeBaseType = levelType.get_Parameter(BuiltInParameter.LEVEL_RELATIVE_BASE_TYPE);

relativeBaseType.Set(1); //項(xiàng)目基點(diǎn) = 0, 測(cè)量點(diǎn) = 1

    Level.ProjectionElevation屬性代表了標(biāo)高相對(duì)于項(xiàng)目基點(diǎn)的高度,等同于當(dāng)基面是項(xiàng)目基點(diǎn)時(shí)Level.Elevation的值。

    (2)創(chuàng)建標(biāo)高

    在API中可以使用NewLevel方法來創(chuàng)建。

//============代碼片段4-2 創(chuàng)建標(biāo)高============

Document document = revit.Application.ActiveUIDocument.Document;

using (Transaction transaction = new Transaction(document))

{

     transaction.Start(" Level");

    Level level = Level.(document, 10.0);

    transaction.Commit();

}

    使用API創(chuàng)建的標(biāo)高,Revit不會(huì)自動(dòng)創(chuàng)建對(duì)應(yīng)的視圖,這是跟Revit界面里面去操作有區(qū)別的。如果想要?jiǎng)?chuàng)建對(duì)應(yīng)的視圖,我們可以使用ViewPlan.函數(shù)。

//============代碼片段4-3 創(chuàng)建標(biāo)高對(duì)應(yīng)的視圖============

Level level; //已知的標(biāo)高

//過濾出所有的ViewFamilyType

var classFilter = new ElementClassFilter(typeof(ViewFamilyType));

FilteredElementCollector filteredElements = new FilteredElementCollector(RevitDoc);

filteredElements = filteredElements.Passes(classFilter);

foreach (ViewFamilyType viewFamilyType in filteredElements)

{

   //找到ViewFamily類型是FloorPlan或者CeilingPlan的ViewFamilyType

   if (viewFamilyType.ViewFamily == ViewFamily.FloorPlan ||

      viewFamilyType.ViewFamily == ViewFamily.CeilingPlan)

   {

      transaction.Start(" view of type " + viewFamilyType.ViewFamily);

      //創(chuàng)建視圖

      ViewPlan view = ViewPlan.(RevitDoc, viewFamilyType.Id, level.Id);

      transaction.Commit();

   }

}

    2、軸網(wǎng)

    軸網(wǎng)對(duì)應(yīng)的類是Grid,也是繼承于Element。

    (1)軸網(wǎng)曲線(Curve)

    通過我們的Grid.Curve屬性可以拿到軸網(wǎng)的曲線,如果Grid.IsCurved返回true,那么Curve將是一個(gè)弧形曲線Arc對(duì)象,否則就是Line對(duì)象。

    (2)創(chuàng)建軸網(wǎng)

    Document..NewGrid(Arcarc);

    Document..NewGrid(Lineline);

 

//============代碼片段4-4 創(chuàng)建軸網(wǎng)============

using (Transaction transaction = new Transaction(RevitDoc))

{

   transaction.Start(" Grid");

   Grid grid = RevitDoc..NewGrid(

      Line.Bound(new XYZ(0, 0, 0), new XYZ(10, 10, 0)));

   grid.Name = "BB";

   transaction.Commit();

}

    注意:1)傳入?yún)?shù)對(duì)應(yīng)的直線或弧線所在的平面是一個(gè)水平的。

    2)創(chuàng)建的軸網(wǎng)將被自動(dòng)按照上一次的規(guī)則遞增命名,可以是數(shù)字或者字母,取決于上一次的情況。上一次創(chuàng)建的是A,本次就自動(dòng)為B;如果上次為3,這次是4,如果字母或者數(shù)字被其他的軸網(wǎng)占用了,則自動(dòng)跳過。

    3)通過Grid.Name屬性來設(shè)置軸網(wǎng)的名稱。如果被設(shè)置的名字被占用,會(huì)有ArgumentEception拋出。

image.png

    四、總結(jié)

    1、標(biāo)高的高度、創(chuàng)建標(biāo)高的代碼和操練。

    2、軸網(wǎng)曲線、創(chuàng)建軸網(wǎng)的代碼和操練。


    Revit中文網(wǎng)作為國內(nèi)知名BIM軟件培訓(xùn)交流平臺(tái),幾十萬Revit軟件愛好者和你一起學(xué)習(xí)Revit,不僅僅為廣大用戶提供相關(guān)BIM軟件下載與相關(guān)行業(yè)資訊,同時(shí)也有部分網(wǎng)絡(luò)培訓(xùn)與在線培訓(xùn),歡迎廣大用戶咨詢。

    網(wǎng)校包含各類BIM課程320余套,各類學(xué)習(xí)資源270余種,是目前國內(nèi)BIM類網(wǎng)校中課程最有深度、涵蓋性最廣、資源最為齊全的網(wǎng)校。網(wǎng)校課程包含Revit、Dynamo、Lumion、Navisworks、Civil 3D等幾十種BIM相關(guān)軟件的教學(xué)課程,專業(yè)涵蓋土建、機(jī)電、裝飾、市政、后期、開發(fā)等多個(gè)領(lǐng)域。

    需要更多BIM考試教程或BIM視頻教程,可以咨詢客服獲得更多免費(fèi)Revit教學(xué)視頻。

l  BIM培訓(xùn)網(wǎng)校課程目錄

l  Revit零基礎(chǔ)培訓(xùn)教程

l  BIM項(xiàng)目實(shí)戰(zhàn)訓(xùn)練營


本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。

未標(biāo)題-1.jpg

上一篇:Revit技巧 | Revit三維剖面框如何使用?用法有哪些?

下一篇:Revit技巧 | revit如何在曲面上開洞?Revit空心拉伸墻面開洞的操作教程

60acb4e0ef112.png