CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD大学

相关分类

结合 Forge 和机器学习,自动执行耗时的设计任务

2023-1-13 06:20| 发布者: admin| 查看: 62| 评论: 0|来自: AutoCAD

摘要: 通过使用 Forge 设计自动化平台自动执行复杂的重复性任务,更高效地进行设计。Rana Zeitouny和Majd Makhlouf解释了如何做到这一点,并分享了一些真实的案例场景。

使用我们的日常办公程序,我们必须完成许多重复和耗时的任务,以满足客户的要求和国际标准。其中一些任务很容易自动化;其他人似乎受到桌面资源的限制或需要人工干预。随着机器学习的发展和 Forge Design Automation API 的引入,EMDC 集团能够自动化其中一些流程,从而节省大量时间并提高团队效率。本文介绍了我们内部构建的示例,让您了解现在可以自动化的任务以及人工智能和云计算为 AEC 行业带来的潜力。

为什么自动化耗时的任务很重要

由于项目目前节奏如此之快,最重要的优先事项是按时完成任务。但是,耗时和迭代的任务可能会给项目规划带来负担,从而减少重要决策的时间。当这些耗时的任务自动化时,时间将投入到更重要的任务上,项目的持续时间和成本可以大大减少。

自动化限制

自动化受到许多因素的限制,主要是桌面资源,在某些情况下,自动化时间几乎等于手动迭代时间。此外,某些流程仍需要手动输入。此外,在某些情况下,API 限制使自动化复杂化,使得当某个功能不公开时无法实现。

什么是欧特克锻造

Autodesk Forge 是一个基于云的开发人员平台,使开发人员能够使用云计算自动执行任务。云应用程序开始主导数字世界,它们将成为2020年代的主要技术焦点,就像10年前移动平台一样。Forge是Autodesk将云计算引入面向CAD的流程世界。

要记住的是,Forge 不仅仅是一种解决方案;它提供了多种功能并公开了多个 API。例如,BIM 360 API 允许开发人员通过分配权限、启动项目等方式自动执行 BIM 360 项目设置。这些任务略显耗时,BIM 360 API 可以消除其中几项任务。

另一个值得一提的 API 是数据管理 API,它可以自动执行 BIM 360 Docs 文件传输操作,例如下载、上传等。例如,这为安排文档上传到BIM 360 Docs打开了一扇门,这通常是必要的。

Forge 还可以使用其他几个 API 和功能,例如 Forge Viewer,它可以在 Web 浏览器中查看模型,Reality Capture API,可以处理点云、光栅图像、Webhook 等。

然而,EMDC集团作为工程顾问最具潜力的Forge API是Design Automation API。这是我们在这里的重点。

简而言之,设计自动化 API 运行 Autodesk 软件实例,并通过云服务器执行预编译的加载项和脚本。因此,例如,Revit 设计自动化 API 使开发人员能够编译在云中远程运行的 Revit 云附加模块。Design Automation API 支持多个 Autodesk 平台,从本文重点介绍的 AutoCAD 和 Revit,到 3ds Max 和 Inventor。

为什么使用设计自动化 API

设计自动化 API 提供了几个优点。使用此功能,用户可以避免在运行时较长的流程上浪费桌面工作站,因为 Forge 提供了额外的虚拟工作站。

此外,Forge 加载项在高性能服务器上运行,甚至没有桌面工作站可以与之竞争,从而提供了大大提高的性能。性能的提高意味着运行时间的大幅减少,从而节省了大量时间。

另一个相当大的优势是,可以从任何平台启动运行这些应用程序,无论是桌面、移动设备还是任何 Web 浏览器。因此,任何具有互联网连接的用户,无论是在家中、办公室还是在现场,都可以访问这些应用程序并运行它们,这正在成为一项标准功能。

机器学习

机器学习是人工智能 (AI) 的一种应用,它使系统能够自动学习和改进经验,而无需明确编程。机器学习侧重于开发可以访问数据并使用它来自学的计算机程序。

机器学习实际上是:

  • 人工智能的一个细分

  • 统计和概率的结合

定义机器学习是什么也很重要:

  • 机器学习不是人工智能的同义词

  • 机器学习不会暗示机器获得自我意识并开始阅读和说话

  • 机器学习并不意味着计算机将逐渐控制世界。

首先,机器学习的第一步始于自动统计算法,该算法处理输入数据并找到暗示学习项的数据关系。作为第二步,在收集数据并训练算法之后,自动概率过程开始发挥作用,并根据先前处理的数据预测新值。所以从本质上讲,正在建立一个概率模型,而不是一个完全准确的数学模型。然而,即使存在不确定性的风险,算法做出的决策也将基于最高的“评分”,这使得模型有用。

1

这让我们想起了著名的统计学家乔治·博克斯(George Box)说过:“所有的模型都是错误的,但有些模型是有用的。

何时需要机器学习

  • 当项目出现信息短缺时,需要机器学习。换句话说,在处理非参数对象时,例如 2D CAD 图纸、假 BIM 模型、点云或光栅图像。

  • 当 API 有限制时。更具体地说,当 API 未公开功能时,或者无法通过常规语句实现流程自动化时。(例如,If 语句、For 循环、While 循环...)

在上述两种情况下,将有两种解决方案可用:

  • 执行手动输入,这意味着专门安排一个员工团队手动完成所需的工作。

  • 训练机器学习算法,这意味着从以前的模型中收集数据,查找数据关系(统计部分),并使用它来预测缺失的参数值并自动化该过程(概率部分)。

并非所有自动化都是机器学习

术语“机器学习”被广泛使用。许多活跃用户经常发布自动化脚本(Dynamo 脚本、宏、加载项),并声称他们的工作属于机器学习或人工智能类别。重要的是要知道,并非所有自动化,无论看起来多么先进,都使用机器学习。在处理实际使用机器学习的实际场景之前,从一些无需使用机器学习即可实现的示例开始会很有用。

示例 1:自动 P 型疏水阀连接

我们从一个自动布线样品开始,其中冷凝水排放连接及其 P 疏水阀已自动连接到主管路。这是一个自动路由样本,涉及许多高等数学,无论是矢量论还是线性代数,以便正确放置和连接组件。用户可能会遇到与机器学习相关的几个自动路由样本,这通常具有误导性,因为这通常可以通过经典自动化来实现。简而言之,由于没有数据收集,也没有数据标记,也没有算法训练,也没有统计提取的数据关系,因此机器学习没有发挥作用。

示例 2:自动衣架放置

另一个高级示例是 EMDC 集团构建的加载项,它会自动放置管道或管道吊架并将它们连接到最近的结构元素。例如,这样的过程不涉及机器学习的任何方面。

示例 3:自动连接衣架

第三个样本也是一个衣架连接工具,可将衣架连接到上面最近的衣架上。虽然这确实涉及一些高等数学来检测轴承吊架线,但它可以在不使用机器学习的情况下实现。

以上三个示例说明了显式自动化,并且不使用机器学习的任何方面。您可以在 www.emdc-forge.com\samples 中了解有关这些示例的更多信息。

然而,许多过程确实涉及某种形式的机器学习,并且今天正在我们的日常生活和AEC行业中使用。

什么不能“传统”自动化

在讨论使用机器学习的真实案例 EMDC Group 自定义应用之前,请务必首先枚举无法显式自动化的常规示例。例如:

  • 扫描的 PDF 数据提取

    示例:需要从中获取信息的扫描 PDF 绘图,例如手写注释。

  • 分解 CAD 图纸的文档

    示例:需要从中提取图纸名称和编号并在电子表格中列出的 AutoCAD 图形。

  • 光栅图像细节转换:

    示例:需要在 AutoCAD 图形中转换的安装详细信息。

  • 点云到 BIM 模型的转换

    示例:需要转换为竣工模型的点云模型。

因此,这种自动化的不可能性将导致:

  • 需要手动输入

  • 执行大多数时间超出范围的迭代任务

  • 员工的加班和额外任务以及可能的成本超支

如何完成这些任务

上述任务的解决方案很少。一种解决方案是培训任何称职的操作员来完成这项耗时的工作,或者......训练机器。

基于上述内容,可以确定每个问题的自动化解决方案:

  • 扫描的 PDF 数据提取

解决方案:使用自动光学字符识别,它应用机器学习的各个方面来识别典型原理图。在这种情况下,手写评论的字母将被识别。

  • 分解 CAD 图纸的文档

解决方案:根据以前的案例,使用机器学习查找工作表信息并记录它。在这种情况下,查找工作表名称和编号。

  • 光栅图像细节转换

解决方案:使用矢量化软件,该软件还应用机器学习来检测线条、圆圈和形状。在这种情况下,像素将转换为 AutoCAD 元素。

  • 点云到 BIM 模型的转换

解决方案:使用机器学习自动检测元素。在这种情况下,连接云点组并将其转换为建筑图元。

EMDC集团定制工作流程中涉及的机器学习子领域

机器学习是一个多样化的领域,可以包括聚类、监督学习、无监督学习、分类、回归、决策树......它包括复杂的子领域,如深度学习和神经网络,它们在多个自动化层上运行,并提供了实现令人印象深刻的结果的机会,例如学习如何自行完成主机游戏关卡的算法等等。

因此,在详细介绍 EMDC Group 的真实案例场景之前,定义这些定制应用程序的开发中涉及哪些机器学习子字段非常重要。

想分享您的知识吗?
为非盟写一篇文章

聚类

聚类是基于某个相似属性对未标记的数据进行分组。聚类是无监督机器学习的一种形式。它是无监督的,因为处理的数据以前没有被标记过,也没有基于标记的数据生成训练集。因此,元素是原始的,未排序的,未标记的,需要分组到更宽的块中。

聚类

聚类分析涉及的主要挑战是分组定义。简单来说,挑战在于确定是什么使一组元素与另一组元素不同,以及什么定义了组的开始,何时应该修剪一组元素,以及何时应该开始收集另一组元素。

这是使用自动定义一组相似元素的统计过程定义的。聚类包括几种算法,其中我们将提到两种:第一种基于数据的平均值,因此平均值接近或匹配所选数量的内核元素 (K)。它称为 K-Means 聚类分析算法。第二种是基于数据密度,其中收集相似的元素,直到它们的密度分布低于某个阈值,之后组受到限制。这称为DBSCAN算法。

这可以通过每天遇到的最常见的基于聚类的过程来说明:面部识别。通过检测其组件来识别人脸,知道其图像通常是一组像素,而这些组件又根据聚类算法进行识别;例如眼睛。如果我们要简化实际上更复杂的过程,那么眼睛是通过将眼睛颜色的像素分组来识别眼睛,直到颜色的密度在某个时候开始逐渐降低,直到它消失,低于一定的限制。那是一只眼睛。其他面部组件也会发生相同的过程,这样就可以识别整个面部。

监督学习

涉及的另一个机器学习子领域是监督学习。我们将通过一个涉及苹果和香蕉的简单示例来介绍监督学习背后的概念。

  • 首先,数据(在本例中为苹果和香蕉的图片)被标记并输入到学习算法中。

  • 然后,生成一个训练集,并在统计上找到标签(在本例中为水果类型)和数据(水果图片)之间的关系(例如,大量红色图像对应于大量苹果)。

  • 当将未标记的项目输入算法时,将使用生成的数据集,并根据水果与标记数据的匹配可能性来检测水果的类型。(例如,如果它是红色的,则有 99% 的可能性是苹果。当然,由于它是基于概率的,因此有可能出现异常值,或者换句话说,错误的结果;例如,如果用户喂食一个腐烂的、淡黄色的苹果的图片。

3

为什么叫监督?因为为生成集合和统计查找关系而输入的数据先前已被用户标记。

苹果和香蕉检测可能看起来很愚蠢,但现在一个稍微先进的过程被用于突破性的进步,例如癌症预测算法,其中软件可以在一定程度上预测某人五年后是否可能患有癌症,这可以挽救数百万人的生命。标记的乳房X线摄影数据,例如患者在相应的乳房X光检查五年后是否患有癌症,被输入系统,并且由于这些过程,病理学家以前不知道的癌症的特定方面被发现。

真实案例场景 1:使用聚类自动执行多重引线分组

定义问题

  • 客户希望基于 BIM 模型生成详细的 AutoCAD 工程图。

  • 第一步是将Revit模型导出到AutoCAD图形中,因为这可以节省50%的工作。

  • 但是,会出现一个问题:标记导出到松散的多重引线中。在这种情况下,客户需要多领导者,甚至是确定的风格。

4

经典解决方案

经典的解决方案是创建一个 AutoLISP 例程,将文本元素和分解的引线分组为多重引线。

  • 为此,用户选择要分组的元素,一次一组。

  • 问题在于,此例程仍然需要手动输入,通过选择与多重引线相关的文本,如果自动化,则会出现很大的误差。

  • 解决方案是使用 DBSCAN 聚类算法,该算法根据多引线元素在每个文本周围的分布密度和相似性将它们分组为多引线,无需用户输入即可对其进行排序。相似性参数是文本段落中每行之间的距离。

5

如何实施此解决方案

自动化解决方案是基于Revit API的附加模块,用于对导出的AutoCAD图形执行DBSCAN算法。

  • 此加载项使用 AutoCAD 互操作性在导出图形后立即对其进行处理。换句话说,它将Revit图纸导出到AutoCAD图形,打开导出的图形并直接在AutoCAD中运行解决方案。

  • 此插件可节省图形打开时间并消除手动输入。

  • 但是,此解决方案存在一个问题:它是一种资源密集型算法,这意味着执行时间更长,并且需要专用工作站。

6

适用于 Revit 的锻造设计自动化

可以使用 Revit 的 Forge Design Automation 来解决此方案。前面介绍的桌面加载项将转换为执行时间更短且用户交互较少的 Forge 加载项。因此,将保存桌面工作站以执行其他任务。

7

网页界面

与任何软件一样,用户界面部分应该是用户友好的,用户可以看到并用于操作应用程序,而算法隐藏在下面,涉及所有详细过程。

在 Revit 设计自动化应用程序中,应用程序通过 HTML 请求进行控制,每当用户在线执行任何操作(无论是登录还是注销)时,HTML 请求都会发生 HTML 请求。

要上传、运行 Forge 应用程序、下载生成的文件等,应将请求从用户端发布到服务器端,告诉服务器启动该操作。这是一个非常重要的方面,因为HTML请求由多种平台和编程语言支持,因此用户可以基于首选的任何语言构建应用程序,或者最好是网页(这是EMDC组所做的),无论是cURL,Javascript,ASP.NET,Ruby,Python等。

在这种情况下使用的语言是Javascript。事实上,重要的是在尽可能多的设备和平台以及 Web 浏览器上支持这样的过程,目前几乎所有 Web 浏览器都支持 JavaScript。所以,这是最有意义的。Python绝对是该领域的亚军。请注意,UI 也可以是显示经典 Windows 窗体的桌面应用或交互式移动应用。

因此,发布命令应提供执行脚本或外接程序的顺序。当前示例是一个 Revit 云附加模块,该附加模块又运行 AutoCAD 云脚本来对多重引线进行分组。

8

每当 Revit 云附加模块收到相应的请求时,它都会运行脚本并生成输出文件。Revit 和 AutoCAD 的附加模块本身是经过编译以在 .NET 环境上运行的 DLL 类库。这些类可以用任何 .NET 语言编写,无论是 C#、F#、VB.NET 等。然后,编译后的类库被捆绑并预先上传到 Forge 服务器,服务器不断侦听 HTML 请求以运行相关应用程序。

请注意,当桌面附加模块转换为云附加模块时,对 Revit 或 AutoCAD UI 的任何 API 引用都将被完全删除,因为现在操作由 HTML 请求驱动,并且界面是完全独立的。

想要更多?下载完整的课程讲义以继续阅读。

Rana Zeitouny在黎巴嫩黎巴嫩美国大学获得电气工程学士学位后,于2002年进入工程咨询行业。从那时起,她深深地掌握了AutoCAD软件,并于2005年标准化了AutoCAD的实施,包括图层,块,命令,快捷方式等,并培训了电气部门。从 2008 年到 2016 年,她在大学开设了有关电气设计的课程,包括 AutoCAD 软件培训课程。如今,在 2015 年接受 Revit 培训后,她在日常咨询工作中同时使用 AutoCAD 和 Revit 软件。

Majd Makhlouf Majd是一名机械工程师和设计技术专家,拥有机械工程硕士学位。他是Autodesk Revit认证专家,也是Autodesk Developer Network的成员。2020 年 1 月,他创立了建筑信息研究人员和开发人员 OÜ,这是一家位于爱沙尼亚的软件开发公司,为全球 AEC 部门提供服务。他专门从事BIM管理,Autodesk Revit和AutoCAD加载项开发,包括公共和自定义开发,Forge Web和基于云的应用程序,Dynamo Zero Touch Node Packs以及移动VR / AR应用程序。


路过

雷人

握手

鲜花

鸡蛋

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-6-10 17:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部