首页/技术分享

Revit技巧 | Revit二次开发基础/核心编程---建筑建模-标高和轴网

发布于:2024-09-30 10:30:19
65人 分享

    文章来源:CSDN论坛

    一、本节课程

    C#Revit二次开发基础/核心编程---建筑建模-标高和轴网

image.png

    二、本节要讲解的知识点

    1、标高的高度、创建标高

    2、轴网曲线、创建轴网

    具体内容

    1、标高

    标高是有限水平平面,大多数元素都是基于标高来定位的,如墙、地板、天花板、屋顶等。对应的类是Level,它继承于Element类。

    (1)标高的高度(ElevationandProjectElevation)

    通过Level.Elevation属性(对应的BuiltInParameter是LEVEL_ELEV)可以获取标高的高度,它代表个是该标高相对于基面“ElevationBase”的高度,基面可以是项目的基点,也可以是测量点。

//============代码片段4-1 修改标高的基面============

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); //项目基点 = 0, 测量点 = 1

    Level.ProjectionElevation属性代表了标高相对于项目基点的高度,等同于当基面是项目基点时Level.Elevation的值。

    (2)创建标高

    在API中可以使用NewLevel方法来创建。

//============代码片段4-2 创建标高============

Document document = revit.Application.ActiveUIDocument.Document;

using (Transaction transaction = new Transaction(document))

{

     transaction.Start(" Level");

    Level level = Level.(document, 10.0);

    transaction.Commit();

}

    使用API创建的标高,Revit不会自动创建对应的视图,这是跟Revit界面里面去操作有区别的。如果想要创建对应的视图,我们可以使用ViewPlan.函数。

//============代码片段4-3 创建标高对应的视图============

Level level; //已知的标高

//过滤出所有的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);

      //创建视图

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

      transaction.Commit();

   }

}

    2、轴网

    轴网对应的类是Grid,也是继承于Element。

    (1)轴网曲线(Curve)

    通过我们的Grid.Curve属性可以拿到轴网的曲线,如果Grid.IsCurved返回true,那么Curve将是一个弧形曲线Arc对象,否则就是Line对象。

    (2)创建轴网

    Document..NewGrid(Arcarc);

    Document..NewGrid(Lineline);

 

//============代码片段4-4 创建轴网============

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)传入参数对应的直线或弧线所在的平面是一个水平的。

    2)创建的轴网将被自动按照上一次的规则递增命名,可以是数字或者字母,取决于上一次的情况。上一次创建的是A,本次就自动为B;如果上次为3,这次是4,如果字母或者数字被其他的轴网占用了,则自动跳过。

    3)通过Grid.Name属性来设置轴网的名称。如果被设置的名字被占用,会有ArgumentEception抛出。

image.png

    四、总结

    1、标高的高度、创建标高的代码和操练。

    2、轴网曲线、创建轴网的代码和操练。


    Revit中文网作为国内知名BIM软件培训交流平台,几十万Revit软件爱好者和你一起学习Revit,不仅仅为广大用户提供相关BIM软件下载与相关行业资讯,同时也有部分网络培训与在线培训,欢迎广大用户咨询。

    网校包含各类BIM课程320余套,各类学习资源270余种,是目前国内BIM类网校中课程最有深度、涵盖性最广、资源最为齐全的网校。网校课程包含Revit、Dynamo、Lumion、Navisworks、Civil 3D等几十种BIM相关软件的教学课程,专业涵盖土建、机电、装饰、市政、后期、开发等多个领域。

    需要更多BIM考试教程或BIM视频教程,可以咨询客服获得更多免费Revit教学视频

l  BIM培训网校课程目录

l  Revit零基础培训教程

l  BIM项目实战训练营


转载请注明来源本文地址:https://www.tuituisoft/blog/11299.html

上一篇:

Revit技巧 | Revit三维剖面框如何使用?用法有哪些?

下一篇:

Revit技巧 | revit如何在曲面上开洞?Revit空心拉伸墙面开洞的操作教程