下载app免费领取会员
通过Dynamo提取Revit中相关图元的参数是我们经常需要的一个步骤,但是仅仅通过Dynamo自身的节点只能获取图元的实例参数。
例如,通过节点“Select Model Elements”先选择图元,再通过节点“Element.GetParameterValueByName”提取墙体实例参数中名为“无连接高度”的参数值。
但是,我们继续使用该节点提取墙体的类型参数,比如,提取墙体的“厚度”。如下图所示,得到的结果为空的字符串。
因此,我们通过另一种方式获取墙体的类型参数。
1、通过第5至第9行将Revit的API导入当前的Python Script。
2、定义一个变量“wall”表示解封以后的墙体,由于Revit的图元进入Dynamo都是被封装的,因此需要解封才能使用。
3、通过变量“wallWidth”表示墙体的厚度,提取该厚度的原理是墙体的函数“Width”可以识别墙体厚度。
4、由于获得的结果是英尺(ft),所以将结果乘以304.8变为毫米。
当前只有一个墙体,那如果有多个墙体该怎么办呢?
1、创建一个空列表“wallsWidth”表示储存这些墙体的厚度。
2、创建一个循环,该循环判断如果元素存在于列表“walls”中就提取它的厚度,并且将结果填入列表“wallsWidth”。
3、再创建一个空列表“Width”表示将英尺转换为毫米,之后便利用一个循环判断如果元素存在于列表“wallsWidth”中就将其乘以304.8,并且将结果填入列表“Width”
4、输出列表“Width”。
总结:当前的是墙体,那如果换一种图元要怎么办呢?这时我们就需要知道我们要提取的参数是怎样的函数。还是以墙体为例,打开RevitAPI,找到Autodesk.Revit.DB Namespace,再选择Wall Class中的Wall Members,在右侧就能找到方法Width,提取墙体的厚度。
本文版权归腿腿教学网及原创作者所有,未经授权,谢绝转载。