X
返回顶部
当前位置: 首页> BIM资讯> BIM技术

revit怎么加入族元素?Revit元素类别——Dynamo Python系列教程

发布:中文网小编3号 浏览:1843人 分享
发布于:2020-10-23 15:02

    文章来源:BIM的乐趣

image.png

    今天我们来聊聊Revit元素这点事,不仅仅是在DynamoPython之中涉及,我们在日常使用Revit的时候,也涉及这个问题,只是对我们日常画图没什么影响,所以很多人并没太在意这块。

    Revit Elements分为六个组:

    模型元素:代表建筑项目中存在的物理项。“模型元素”组中的元素可以细分为以下内容:

        族实例:包含族实例对象。您可以将族对象加载到项目中,或从族模板创建它们;

        主体元素:包含可以包含其他模型元素(例如,墙,屋顶,天花板和地板)的系统族对象;

        结构元素:包含仅在RevitStructure中使用的元素。

    草图元素:代表用于2D/3D草图的临时项目:

        草图平面

        草图

        3D路径

    视图元素:表示您在Revit中查看和与其他对象交互的方式。

    组元素:代表Revit中的辅助图元,例如数组和组对象。

    注释和数据元素:包含可见的非物理项。

    信息元素:包含用于存储项目和应用程序数据的非物理不可见项:

        项目基准图元

    每个组包含相关的元素及其对应的符号。

    图元也按以下分类:

        类别

        族

        符号

        实例

    那我们DynamoPython涉及到的呢,主要有一下几个应用:

image.png

    从实例上移到类别:

instanceElement = UnwrapElement(IN[0])

OUT = instanceElement.Symbol, instanceElement.Symbol.Family, instanceElement.Symbol.Category.Name

image.png

    要选择所有族类型,我们可以使用FilteredElementCollector.ToElements()检索Revit元素:

collector = FilteredElementCollector(doc).OfClass(FamilySymbol)

OUT = collector.ToElements()

image.png

    要在给定类别ID的情况下选择类别的所有族类型:

    collector=FilteredElementCollector(doc)

    bic=System.Enum.ToObject(BuiltInCategory,-2001320)

    collector.OfCategory(bic)

    OUT=collector.ToElements()

image.png

    等效于:

    collector=FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Walls).ToElements()

    如果只想选择实例,则需要添加ElementIsNotElementType():

    collector=FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Walls).ElementIsNotElementType().ToElements()

    要从“族类型”中选择所有元素,我们需要:

        查找“家庭类型”所属的类别ID

        选择该类别的所有元素[collector.OfCategory(bic)]

        寻找与家庭类型具有相同TypeId的元素

    doc=DocumentManager.Instance.CurrentDBDocument

    famtypes=UnwrapElement(IN[0])

    elementlist=list()

    forftinfamtypes:

    collector=FilteredElementCollector(doc)

    bic=System.Enum.ToObject(BuiltInCategory,ft.Category.Id.IntegerValue)

    collector.OfCategory(bic)

    foritemincollector.ToElements():

    ifitem.GetTypeId().IntegerValue==ft.Id.IntegerValue:

    elementlist.append(item)

    #elementlist.append(ftlist)

    OUT=elementlist


image.png

    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项目实战训练营




BIM技术是未来的趋势,学习、了解掌握更多BIM前言技术是大势所趋,欢迎更多BIMer加入BIM中文网大家庭(http://www.wanbim.com),一起共同探讨学习BIM技术,了解BIM应用!