文章来源:万地科技
前言
目前绝大部分地形主要以“等高线”、“高程点”两种数据类型的CAD图面提供,而这两种数据类型中等高线提供的数据精度会比高程点更高。
邻居:为什么说等高线的精度更高?
老王:因为等高线上即使是直线也会有很多高程点,所以我们必须对等高线上的点进行优化,删除掉多余的高程点。
等高线·类型
高程点·类型
项目概况
地形面积 13.55平方公里(1355公顷)
等高线数量 2017条
等高线上点数量 6454018点
难点
每条等高线上高程点数量都很庞大,有的单条等高线上就有65000个高程点。
如果用传统的方式获取和生成模型,无疑会给电脑设备带来巨大的荷载问题,有的软件根本无法支撑高程点数量如此庞大的地形模型。
提取工具
导出高程点
文档格式 CSV(逗号分隔)(*.csv)
数据格式 X+Y+Z
数据单位 毫米(mm)
通过Dynamo导入Revit
创建地形
1.通过“Data.ImportCSV”读取*.csv文件数据;
2.处理*.csv文件数据中每行的XYZ坐标值,并合并成新的高程点数列(Point);
3.使用“Topography.ByPoints”将高程点数列转换为“Topography类型”,再用“Topography.Mesh”获取并显示出地形上的三角网面(到此Revit中即可显示出地形)。
创建等高线
1.通过算法判断拆开获取每条等高线上的点,用于生成等高线;
2.使用“NurbsCurve.ByControlPoints”将以上生成的点转成“NurbsCurve类型”;
3.设置不同高程值所有覆盖的颜色范围值;
4.使用“GeometryColor.ByGeometryColor”将每条等高线根据不同的标高覆盖不同的颜色。
创建高程点族实例
1.使用“Curve.PointsAtSegmentLengthFromPoint”将每条等高线按10米一段进行拆分,并获取拆分位置点坐标;
2.使用“FamilyInstance.ByPointAndLevel”在Revit中将每个拆分点坐标处放置高程点族实例;
3.使用“Element.SetParameterByName”将每个高程点族实例改为对应的高程值;
4.使用“Element.OverrideColorInView”将每个高程点族实例根据不同的标高覆盖不同的颜色。
运行Dynamo
分别测试以下两种数量的地形:
整体地形高程点数量:701354点
(预计1.5小时)
局部地形高程点数量:151194点
(预计0.5小时)
具体运算时间电脑配置而定。
很长一段时间过后
生成效果
整体效果
局部·常规色
局部·彩色
高程点·放大
转载请注明来源本文地址:https://www.tuituisoft/blog/19354.html