dynamo对Revit族进行数据排序

147次阅读
没有评论

之前写过一篇文章用dynamo修改Revit族参数(类型参数也可修改),在文中提到可以用dynamo来修改Revit族的参数,有小伙伴问到该怎么样按照一定顺序来给参数命名,其实这个问题我之前在 Revit通过dynamo给房间按顺序命名的这篇文章中有关于这类的介绍,主要方法是通过按照交点距离排布。这里我们来看看其他的办法。

dynamo通过坐标对数据排序

我们先做一个简单的族来验证这次排序,就以小球“Q”来说,Q有一个实例参数“编号”。

dynamo对Revit族进行数据排序

我们随机放置一些小球

dynamo对Revit族进行数据排序

接下来就是获取这些族的中心坐标了,用【Select Model Elements】就可以选中我们需要选择的族了。接着就是要获取族的质心,用来提取坐标。

dynamo对Revit族进行数据排序

这里我们要确定一种排序方式,比如说按照X轴防线递增排序,那就需要获取坐标中的X的分量。

dynamo对Revit族进行数据排序

然后对X分量进行排序,排序前需要将数据拍平。

dynamo对Revit族进行数据排序

接下来就是要把最初的图元也按照这个顺序进行排序,通过下图所示的这几个节点,我们可以得出排序后的数据在排序前列表中对应的位置。

dynamo对Revit族进行数据排序

通过获取的位置,我们可以对原始族的列表进行对应排序,节点如下。

dynamo对Revit族进行数据排序

接下来通过【Element.SetParameterByName】这个节点给排好序的族设置参数值,首先通过如下节点让dynamo可以读取Excel的数据。

dynamo对Revit族进行数据排序

再把这些值赋给Q

dynamo对Revit族进行数据排序

通过测试,发现刚才的数据不是太准确,回来检查一下,发现问题在这里:

dynamo对Revit族进行数据排序

对数据排序之后就应该接在List.Map上,正确的连接方法是这样的

dynamo对Revit族进行数据排序

我们再来看下测试结果

dynamo对Revit族进行数据排序

dynamo在文章末尾,大家可以下载查看!

正文完
 
评论(没有评论)