BIM百科 | Civil3D导出桥梁数据到dynamo结合revit建模
2017-04-17
韩兰若
272

【4月17日,成都/长沙】柏慕联创联合一砖一瓦推出BIM系统实战新课程(土建/机电,22天)



获取《每日一技,我的成长轨迹》汇总

· 请访问柏慕联创官方网站: www.lcbim.com ·

BIM百科 | Civil3D导出桥梁数据到dynamo结合revit建模

声明:本文已获原作者授权,版权归原作者所有,转载请注明出处

补一下第五弹,落了比较久。因为这章的内容比较复杂,我直到现在才搞明白。

中心思想和题目说的一样, 首先我们需要从做好的corridor 导出想要的数据。

以桩号P36以后为例。这里的corridor长这样。

准备导出数据。 toolspace-Toolbox-Corridor points report


选择左右边缘点和中心点crown

导出如下,有一万多行数据,感觉有点整多了。。。

发现每一站中心点crown都重复了一行。写个VBA用countif 函数把重复的行删掉。

运行一下,好了。

现在要对数据进行处理。因为revit不喜欢太大的数字,所以需要把坐标处理一下。以第一站的坐标为初始坐标,剩下的坐标都减去初始坐标得到的值作为转化坐标。Easting是X轴,Northing 是Y轴,Elevation 是Z轴。

剩下的用VBA写一下。

搞定。

现在同一个表格里包括了中心线上的点,左右边缘的点,现在把它们分别整理到新的页中。以中心点为例,代码如下。

Sub Macro3()

Dim i As Long, n As Integer

Application.ScreenUpdating = False

n = 2

For i = 2 To Range("A65536").End(xlUp).Row Step 1

If Sheets("transform").Cells(i, 6).Value = "Crown" Then

Sheets("profile").Range(Sheets("profile").Cells(n, 1), Sheets("profile").Cells(n, 5)).Value = Sheets("transform").Range(Sheets("transform").Cells(i, 11), Sheets("transform").Cells(i, 15)).Value

n = n + 1

End If

Next

Application.ScreenUpdating = True

Application.Goto Reference:="Macro3"

End Sub

左右边缘的点也类似。运行好了如下。

其实到这里都不是最要紧的,最要紧的步骤是新建一个名为“PROF”的标签页,然后不光要把中心线的高程信息复制过去,还要算出四个变量用来定位其他的点,分别是左边缘到中心点的水平偏移,左边缘到中心点的高程偏移,右边缘到中心点的水平偏移,右边缘到中心点的高程偏移。以左边缘到中心点的高程偏移为例,代码如下。

运行完了结果这样

现在发现每一站之前间隔太小了,比如前两行,1046.91到1046.97只差0.06,担心给后续软件增添负担,所以现在希望只留下1046.91,剩下小数部分不同的删掉。写个代码。

搞定了。原来有三千多个站,现在只有五百个了。

数据处理到此为止。把excel保存一下。接下来开始用revit 建模。

我先去吃饭,回来接着写。






柏慕联创BIM技术服务

BIM设计 | BIM咨询 | BIM培训 | BIM人才

· 点亮建筑新梦想 ·




来源:知乎
写下你的评论吧