C# Revit二次开发基础/核心编程--- 元素Element(基础、编辑)

 

一、本节课程


C# Revit二次开发基础/核心编程--- 元素Element(基础、编辑)

二、本节要讲解的知识点

    元素Element的基础概念、如何编辑元素

  • 具体内容
  1. 元素Element基础

元素在Revit里面尤其重要,用户能看见的大多数对象都是元素,比如墙、族、族类型、族实例、标高、轴网、视图等。Revit中的大多数类都是继承自元素。元素是可序列化的,即是可以保存到RVT项目文件中。

(1)相关类图

  1. 族、族实例相关

  1. 模型元素相关

  1. 设置相关

  1. 二维元素

  1. 其他元素

  1. 如何获取元素

1)通过ID获取元素: 必须要知道ID才可以获取到元素。

//============代码片段3-1通过Id获取元素============

ElementId levelId = new ElementId(766598);

Element element = RevitDoc.GetElement(levelId);

Level level = element as Level;

if(level != null)

{

   //使用level

}

 

2)通过过滤器来获取元素(推荐使用)

//============代码片段3-2 过滤所有外墙============

FilteredElementCollector filteredElements = new FilteredElementCollector(RevitDoc);

ElementClassFilter classFilter = new ElementClassFilter(typeof(Wall));

filteredElements = filteredElements.WherePasses(classFilter);

foreach (Wall wall in filteredElements)

{

   // 获取墙类型“功能”参数,它用来指示墙是否为外墙。

   var functionParameter = wall.WallType.get_Parameter(BuiltInParameter.FUNCTION_PARAM);

   if (functionParameter != null && functionParameter.StorageType == StorageType.Integer)

   {

      if (functionParameter.AsInteger() == (int)WallFunction.Exterior)

      {

         // 使用wall

      }

   }

}

  1. 通过选择

 

//============代码片段3-3 获取被选元素============

[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]

public class MyExternalCommand : Autodesk.Revit.UI.IExternalCommand

{

   public Autodesk.Revit.UI.Result Execute(Autodesk.Revit.UI.ExternalCommandData commandData,

      ref string message, ElementSet elements)

   {

      if (commandData.Application.ActiveUIDocument != null)

      {

         foreach (Element selected in

            commandData.Application.ActiveUIDocument.Selection.Elements)

         {

            Wall wall = selected as Wall;

            if(wall != null)

            {

               //使用wall

            }

         }

      }

      return Autodesk.Revit.UI.Result.Succeeded;

   }

}

  1. 获取和修改元素参数

每个元素都有参数,Element.Parameters获取到所有的参数,然后遍历找到需要的参数。也可以通过Element. get_Paramete(参数)来取得到单个参数,括号里面的“参数”,有四种选择:string参数名字、BuiltInParameter参数枚举、Definition参数定义和Guid参数的guid。

//============代码片段3-4 获取“长度”参数============

ParameterSet parameters = element.Parameters;

foreach (Parameter parameter in parameters)

{

   <

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值