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

Revit Elements分为六个组:

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

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

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

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

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

草图平面

草图

3D路径

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

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

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

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

项目基准图元

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

图元也按以下分类:

类别

符号

实例

image

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

从实例上移到类别:

instanceElement = UnwrapElement(IN[0])

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

image

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

collector = FilteredElementCollector(doc).OfClass(FamilySymbol)

OUT = collector.ToElements()

image

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

collector = FilteredElementCollector(doc)

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

collector.OfCategory(bic)

OUT = collector.ToElements()

image

等效于:

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

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

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

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

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

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

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

doc = DocumentManager.Instance.CurrentDBDocument

famtypes = UnwrapElement(IN[0])

elementlist = list()

for ft in famtypes:

collector = FilteredElementCollector(doc)

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

collector.OfCategory(bic)

for item in collector.ToElements():

if item.GetTypeId().IntegerValue == ft.Id.IntegerValue:

elementlist.append(item)

#elementlist.append(ftlist)

OUT = elementlist

image

好了,今天的教程就分享就到这里了

python在bim中的应用_Revit元素类别——Dynamo Python系列教程(六)相关推荐

  1. python判断数组中是否存在重复元素_利用python查看数组中的所有元素是否相同

    不知道大家有没有过这种经历,就是想要判断两个数组运算后得到的新数组中的各个元素值是否相同.这里给出一种使用np.unique()的方法,代码如下:cbc免费资源网 import numpy as np ...

  2. python 删除list中的第一个元素

    目录 1.python 删除list中元素三种方式(一般) 1. pop() 2.del 3.remove 2.嵌套数组删除存在的问题 1.python 删除list中元素三种方式(一般) 1. po ...

  3. python从数组中随机选择一些元素_numpy.random随机选择数组元素如何更高效

    最近在看代码库rlkit时,发现一句有意思的代码和注释(如下所示),大意是从列表中随机选择一个元素时使用np.random.randint比np.random.choice更加高效,相关的解释是np. ...

  4. python中元组怎么存放元素_关于python列表和元组的基本操作

    一.列表 列表是python中最常出现的一种数据存储形式,掌握列表的基本操作可以快速而有效的提高我们的代码书写效率.列表中存放的数据有如下基本操作:如增.删.改.查,掌握了这四个操作,就基本掌握了列表 ...

  5. python取出矩阵中的某一元素_将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例...

    在神经网络计算过程中,经常会遇到需要将矩阵中的某些元素取出并且单独进行计算的步骤(例如MLE,Attention等操作).那么在 tensorflow 的 Variable 类型中如何做到这一点呢? ...

  6. 下列关于python的说法中、正确的是-以下关于 Python版本的说法中,哪个是正确的?...

    [单选题]以下赋值语句中合法的是 [单选题]字符串:s= abcde',n=len(s).索引字符串s字符'c',哪个语句是正确的? [单选题]以下哪个方法能够根据','分隔字符串? [单选题]len ...

  7. python与excel做数据可视化-我在工作中是怎么玩数据的—数据可视化系列教程—Python篇...

    一. 为什么是Python? Python现在已经成为数据科学的语言!基于 Python 代码实现批量化,流程化的数据探索与汇报!按照地产大佬***的话讲--就是重复性的工作直接用Python搞定就可 ...

  8. python在abaqus中的应用代码下载_Python-(source-code)-in--Abaqus Python语言在Abaqus中的应用(源码) - 下载 - 搜珍网...

    Python语言在Abaqus中的应用 (源码)/ Python语言在Abaqus中的应用 (源码)/Python语言在Abaqus中的应用 (源码)/ Python语言在Abaqus中的应用 (源码 ...

  9. 在python的解释器中使用函数_浅析Windows 嵌入python解释器的过程

    这次主要记录在windows下嵌入 python 解释器的过程,程序没有多少,主要是头文件与库文件的提取. 程序平台:windows10 64 bit. Qt 5.5.1  MSVC  2013 32 ...

最新文章

  1. Form表单提交前进行JS验证的3种方式
  2. 谜题81:烧焦到无法识别
  3. java中的dispose()方法
  4. 如何捕获和分析 JavaScript Error
  5. 网络库urillib3
  6. LeetCode 829. 连续整数求和(数学)
  7. MarkDown/Html在线转换(支持代码高亮,可复制到微信公众号、今日头条)
  8. Linux进程突然挂死,小玩意:如何让linux上挂死的进程重启?
  9. PDF Forte Pro(PDF转换器)v3.1.2免费版
  10. 7-14 电话聊天狂人
  11. 文字转语音软件有哪些
  12. 【“玩物立志”scratch少儿编程】坦克动荡-“穿墙控制”和“子弹反弹”的实现-含完整代码
  13. java与英语词汇_Java英语词汇表
  14. 简单易行的用windows系统虚拟苹果mac操作系统 mac下android环境搭建笔记(android studio)
  15. wildfly软件介绍
  16. Python代码实现两张图片的拼接
  17. MTM量身定制系统 - 富友ERP产品 - 信息化推动服装行业管理软件升级
  18. 项目管理:如何制作项目进度计划表?
  19. Android Treble结构:Part 2 - 概述
  20. 陪伴我走过春夏秋冬的校园

热门文章

  1. Redis源码分析:服务器端处理过程
  2. Django模板之jinja2模板和CSRF
  3. K-近邻算法之案例:鸢尾花种类预测—流程实现
  4. 本地应用 v-for 指令
  5. 网络工程师_记录的一些真题_2016下半年上午
  6. 技术06期:测试系统软件需要重视哪几点?
  7. 对抗性分割损失素描着色
  8. 链表问题13——删除无序单链表中值重复出现的节点(方法二)
  9. Confluence 6 配置文件和key
  10. Vmware ESXi 应用之还原备份的虚拟机