Dynamo读取cad图快坐标,匹配地形种树

2024-02-27 10:20

本文主要是介绍Dynamo读取cad图快坐标,匹配地形种树,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天分享一个已经完成很久的小程序,但是却又比较尴尬的程序。目前可以实现的是读取cad的图块坐标和名称,匹配地形的高度和项目的族,自动放置族,如种树、放置路灯、雨污水井等。但是。。。我们先看下基本操作视频,后面说下目前存在的问题。

Dynamo匹配地形种树

先来说说基本思路吧!首先是通过koz的LinkDWG节点包,读取CAD中图块的坐标和名称,这个方式就比较多了,有兴趣可以去知乎看koz关于LinkDWG的介绍。

拿到坐标点后,我们可以把这些点Translate到一个新的高度,留着备用。

然后整理图块名称,用来匹配项目中的族,这里的前提是cad中的图块名称和族是对应的。然后就可以利用FamilyType.ByName得到所需的族。

之后就是目前的问题所在,我们知道Revit里的地形,在Dynamo中,被识别为Topography,而我们接下来匹配地形高度所用对的节点是Point.Project,这里需要输入一个Geometry,但是Topography直接提取Geometry的话,得到是一堆曲线和Mesh,这里就需要把Mesh转换成surface。

基本思路就是这样,然后就是通过哪些节点来转换的问题了。首先我想到了Chynamo中的ToPolySurface-SpringNodes节点,测试了几次,直接在Revit中用点创建的地形没问题,但是通过Civil 3D导入的地形,无法转换。

于是就通过Spring里的Mesh.ToPolySurface节点转换,这里能够实现将Mesh转换为Surface。

搜了搜,在节点包Zhukoven里,也有个ZK.Topography.PolySurface可以将Topography转换成surface,好像挺多的这种节点,没在过多测试。

现在的主要问题,就是Mesh在转换Surface的过程,地形超过一定尺寸,或者导入的地形点过多,都会出现Revit致命错误或者闪退,无法完成这个转换过程,比较尴尬。
 

我的方法是将地形不断的简化,凑合可以完成部分任务,但是过于复杂的地形,简化完就平了。。。就平了。。。就没法用了。。。

当前面几步都完成以后,就利用下面这个节点放置族就行了:
 

基本思路很简单,但是每次都卡在转换Mesh这里,毕竟需要批量种树的地形基本都比较大,后续会继续研究下,看有没有好的办法解决这个问题。

好了,今天得分享就到这里,如果你有更好的解决办法,欢迎一起交流哦~

这篇关于Dynamo读取cad图快坐标,匹配地形种树的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/752080

相关文章

Nginx中location实现多条件匹配的方法详解

《Nginx中location实现多条件匹配的方法详解》在Nginx中,location指令用于匹配请求的URI,虽然location本身是基于单一匹配规则的,但可以通过多种方式实现多个条件的匹配逻辑... 目录1. 概述2. 实现多条件匹配的方式2.1 使用多个 location 块2.2 使用正则表达式

Python如何实现读取csv文件时忽略文件的编码格式

《Python如何实现读取csv文件时忽略文件的编码格式》我们再日常读取csv文件的时候经常会发现csv文件的格式有多种,所以这篇文章为大家介绍了Python如何实现读取csv文件时忽略文件的编码格式... 目录1、背景介绍2、库的安装3、核心代码4、完整代码1、背景介绍我们再日常读取csv文件的时候经常

golang字符串匹配算法解读

《golang字符串匹配算法解读》文章介绍了字符串匹配算法的原理,特别是Knuth-Morris-Pratt(KMP)算法,该算法通过构建模式串的前缀表来减少匹配时的不必要的字符比较,从而提高效率,在... 目录简介KMP实现代码总结简介字符串匹配算法主要用于在一个较长的文本串中查找一个较短的字符串(称为

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

关于Gateway路由匹配规则解读

《关于Gateway路由匹配规则解读》本文详细介绍了SpringCloudGateway的路由匹配规则,包括基本概念、常用属性、实际应用以及注意事项,路由匹配规则决定了请求如何被转发到目标服务,是Ga... 目录Gateway路由匹配规则一、基本概念二、常用属性三、实际应用四、注意事项总结Gateway路由

Java读取InfluxDB数据库的方法详解

《Java读取InfluxDB数据库的方法详解》本文介绍基于Java语言,读取InfluxDB数据库的方法,包括读取InfluxDB的所有数据库,以及指定数据库中的measurement、field、... 首先,创建一个Java项目,用于撰写代码。接下来,配置所需要的依赖;这里我们就选择可用于与Infl

C#读取本地网络配置信息全攻略分享

《C#读取本地网络配置信息全攻略分享》在当今数字化时代,网络已深度融入我们生活与工作的方方面面,对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键,而在C#编程的世界里,我们又该如何巧妙地读取... 目录一、引言二、C# 读取本地网络配置信息的基础准备2.1 引入关键命名空间2.2 理解核心类与方法

SpringBoot使用Apache POI库读取Excel文件的操作详解

《SpringBoot使用ApachePOI库读取Excel文件的操作详解》在日常开发中,我们经常需要处理Excel文件中的数据,无论是从数据库导入数据、处理数据报表,还是批量生成数据,都可能会遇到... 目录项目背景依赖导入读取Excel模板的实现代码实现代码解析ExcelDemoInfoDTO 数据传输

Python读取TIF文件的两种方法实现

《Python读取TIF文件的两种方法实现》本文主要介绍了Python读取TIF文件的两种方法实现,包括使用tifffile库和Pillow库逐帧读取TIFF文件,具有一定的参考价值,感兴趣的可以了解... 目录方法 1:使用 tifffile 逐帧读取安装 tifffile:逐帧读取代码:方法 2:使用