CN114730347A - 用于创建物理空间的布局的计算机实现的技术 - Google Patents

用于创建物理空间的布局的计算机实现的技术 Download PDF

Info

Publication number
CN114730347A
CN114730347A CN202080080109.4A CN202080080109A CN114730347A CN 114730347 A CN114730347 A CN 114730347A CN 202080080109 A CN202080080109 A CN 202080080109A CN 114730347 A CN114730347 A CN 114730347A
Authority
CN
China
Prior art keywords
cell
spatial
layout
cells
grid
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080080109.4A
Other languages
English (en)
Inventor
D·本杰明
王锐
赵大乐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Autodesk Inc
Original Assignee
Autodesk Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Autodesk Inc filed Critical Autodesk Inc
Publication of CN114730347A publication Critical patent/CN114730347A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/13Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Civil Engineering (AREA)
  • Structural Engineering (AREA)
  • Computational Mathematics (AREA)
  • Architecture (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

一种用于生成物理空间或建筑物的布局的计算机实现的方法和计算机系统,包括:基于物理空间的平面布置图(210)来生成布局(230);生成对应于要放置在所述物理空间中的多个空间单元的多个空间单元网格;通过将所述多个空间单元网格中的第一空间单元网格与所述布局(230)中的给定的可用单元格进行匹配来识别在所述布局(230)内的所述第一空间单元网格中的拐角单元格的放置;基于一个或多个放置参数(214)来生成与所述第一空间单元网格的所述放置相关联的得分,所述放置参数定义包括在所述多个空间单元中并对应于所述第一空间单元网格的第一空间单元的放置约束;以及基于所述得分来将所述第一空间单元网格放置在所述布局(250)中。

Description

用于创建物理空间的布局的计算机实现的技术
相关申请的交叉引用
本申请要求序列号为62/937,188(代理人案号为AUTO1467USL)且于2019年11月18日提交的美国临时专利申请的优先权权益,并且要求序列号为17/099,552(代理人案号为AUTO1467US1)且于2020年11月16日提交的美国专利申请的优先权权益。这些相关申请的主题据此以引用方式并入本文。
背景技术
各种实施方案的领域
本发明的实施方案总体上涉及计算机辅助设计软件,并且更具体地,涉及用于创建架构和物理空间的布局的计算机辅助技术。
相关技术描述
计算机辅助设计(CAD)工具用于促进建筑物和办公室布局的设计,以用于各种目的。例如,一些CAD应用程序促进建筑物结构的架构的设计。其他CAD应用程序促进封闭建筑物空间的电气、管道、通风和其他结构特征的设计。另外的其他CAD应用程序促进用于特定平面布置图或一组平面布置图的办公室空间布局的设计。通常,这些类型的CAD应用程序使用户能够通过从用户接收参数并生成满足参数的布局来生成布局的数字模型。
在用于生成布局设计的常规方法中,CAD应用程序接收有关期望的布局的信息并且基于期望的布局来划分平面布置图。一旦CAD应用程序生成布局设计,用户和/或CAD应用程序就必须验证得到的房间是否满足用户要求的选项、目的和参数。例如,CAD应用程序可能会生成房间太多或不够、不符合房间放置要求和/或不满足房间用途、设计偏好或布局要求的布局设计。因此,CAD应用程序迭代生成多个布局设计,直到找到满意的设计为止。每次这样的迭代都是计算密集且耗时的,并且通常会重复地产生不符合要求的布局。因此,生成布局设计的过程是低效且浪费计算的。
如前述内容所说明,本领域中需要用于生成物理空间的布局设计的更有效技术。
发明内容
本申请的一个实施方案阐述了一种用于生成物理空间的布局的计算机实现的方法。所述方法包括:基于物理空间的平面布置图来生成布局;生成对应于要放置在所述物理空间中的多个空间单元的多个空间单元网格;通过将所述多个空间单元网格中的第一空间单元网格中的拐角单元格与所述布局中的给定的可用单元格进行匹配来识别在所述布局内的所述第一空间单元网格的放置;基于一个或多个放置参数来生成与所述第一空间单元网格的所述放置相关联的得分,所述放置参数定义包括在所述多个空间单元中并对应于所述第一空间单元网格的第一空间单元的放置约束;以及基于所述得分来将所述第一空间单元网格放置在所述布局中。
所公开的技术的至少一个优点和技术改进在于布局生成模块以在布局生成的每个顺序步骤都满足设计参数的方式生成布局。因此,布局生成模块不花时间、能量和资源来生成不满足参数要求的布局。另一个优点和技术改进是生成空间实用性增加、太小而无法使用的空间碎片减少并且由单元边界形成的循环路径更长的布局。这些技术优点提供优于现有技术方法的一个或多个技术进步。
附图说明
为了能够详细地理解各种实施方案的上述特征,可参考各种实施方案来更具体地描述以上简要地概述的发明构思,这些实施方案中的一些在附图中示出。然而,应注意,附图仅示出了本发明构思的典型实施方案,并且因此决不应被认为是对范围的限制,并且存在其他同等有效的实施方案。
图1示出了被配置为实现各种实施方案的一个或多个方面的计算装置的框图;
图2是根据各种实施方案的一个或多个方面的图1的布局生成引擎和数据库的更详细图示;
图3A示出了根据各种实施方案的一个或多个方面的布局和经变换空间单元;
图3B示出了根据各种实施方案的一个或多个方面的变换到图3A的布局中的图3A的经变换空间单元的实施方案;
图3C示出了根据各种实施方案的一个或多个方面的放置在图3A的布局内的图3A的经变换空间单元的实施方案。
图3D示出了根据各种实施方案的一个或多个方面的布局和放置在该布局内的两个空间单元;
图3E示出了根据各种实施方案的一个或多个方面的图3D的布局和放置在该布局内的三个空间单元;并且
图4示出了根据各种实施方案的一个或多个方面的用于创建物理空间的布局的方法步骤的流程图。
具体实施方式
在以下描述中,阐述许多具体细节以提供对各种实施方案的更透彻理解。然而,对本领域的技术人员将显而易见的是,可在没有这些具体细节中的一者或多者的情况下实践本发明构思。
图1示出了被配置为实现各种实施方案的一个或多个方面的计算装置100。如图所示,计算装置100包括互连(总线)112,该互连(总线)连接一个或多个处理单元102、耦合到一个或多个输入/输出(I/O)装置108的输入/输出(I/O)装置接口104、存储器116、存储设备114以及网络接口106。
计算装置100包括台式计算机、膝上型计算机、智能电话、个人数字助理(PDA)、平板计算机或者被配置为接收输入、处理数据和任选地显示图像的任何其他类型的计算装置,并且适于实践一个或多个实施方案。本文所描述的计算装置100是说明性的,并且任何其他技术上可行的配置都落在本公开的范围内。
处理单元102包括被实现为以下项的任何适合的处理器:中央处理单元(CPU)、图形处理单元(GPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、人工智能(AI)加速器、任何其他类型的处理单元,或者不同处理单元的组合,诸如被配置为与GPU结合操作的CPU。一般来说,处理单元102可以是能够处理数据和/或执行软件应用程序的任何技术上可行的硬件单元。此外,在本公开的上下文中,计算装置100中示出的计算元件可对应于物理计算系统(例如,数据中心中的系统),或者可以是在计算云内执行的虚拟计算实例。
在一个实施方案中,I/O装置108包括能够提供输入的装置,诸如键盘、鼠标、触敏屏等,以及能够提供输出的装置,诸如显示装置。另外地,I/O装置108可包括能够接收输入和提供输出的装置,诸如触摸屏、通用串行总线(USB)端口等。I/O装置108可被配置为从计算装置100的终端用户(例如,设计者)接收各种类型的输入,并且还将各种类型的输出提供给计算装置100的终端用户,诸如所显示的数字图像或数字视频或文本。在一些实施方案中,I/O装置108中的一者或多者被配置为将计算装置100耦合到网络110。
网络110包括允许在计算装置100与外部实体或装置(诸如网络服务器或另一个联网计算装置)之间交换数据的任何技术上可行的通信网络类型。例如,网络110可包括广域网(WAN)、局域网(LAN)、无线(WiFi)网络和/或互联网等。
存储设备114包括用于应用程序和数据的非易失性存储设备并且可包括固定或可移动磁盘驱动器、闪存存储器装置,以及CD-ROM、DVD-ROM、蓝光、HD-DVD或其他磁性、光学或固态存储装置。布局生成引擎118可存储在存储设备114中并且在执行时可完全地或部分地加载到存储器116中。
存储器116包括随机存取存储器(RAM)模块、闪存存储器单元,或者任何其他类型的存储器单元或它们的组合。处理单元102、I/O装置接口104和网络接口106被配置为从存储器116读取数据和将数据写入该存储器。存储器116包括可由处理单元102执行的各种软件程序以及与所述软件程序相关联的应用程序数据,包括布局生成引擎118和数据库120。
虽然图1中未示出,但对于本领域技术人员将显而易见的是,数据库120和/或存储设备114可存在于或被实现在云系统或除计算装置100以外的计算装置中。计算装置100可经由网络接口106或通过USB或经由I/O装置接口104的其他类型的连接来访问这些云系统和/或网络110中的其他计算装置及其数据库120或存储设备114。
布局生成引擎118接收输入,包括来自数据库120、I/O装置108、网络110等的输入。布局生成引擎118处理输入以生成物理空间的布局。在操作中,布局生成引擎118接收指定要放置在物理空间中的多个空间单元的输入。布局生成引擎118生成与物理空间相关联的布局,并且以空间高效且还满足设计和工作流程要求的方式将输入中指定的空间单元填充到布局中。在下面关于图2更详细地描述布局生成引擎118和数据库120。
图2是根据本公开的各种实施方案的图1的布局生成引擎118和数据库120的更详细图示。如图所示,布局生成引擎118包括布局生成模块220、变换模块240、贪婪生长算法模块260和循环模块280。数据库120包括提供到布局生成引擎118的各种模块中的一者或多者的平面布置图210、空间单元列表212和/或放置参数214。
数据库120将平面布置图210提供到布局生成模块220。平面布置图210指定与要为其生成布局的给定物理空间相关联的特性。与物理空间相关联的特性包括但不限于与平面布置图210相关联的一个或多个长度、与平面布置图210相关联的一个或多个宽度、平面布置图210的边界的长度、边界之间的角度、角度孔径、角度位置、边界的形状、物理空间中的可用区域、区域的形状、区域大小、物理空间的形状、物理空间大小、空间距离以及不连续边界、区域和物理空间之间的关系等。在各种实施方案中,当物理空间表示给定的建筑物时,平面布置图210可包括建筑物的一个或多个楼层或楼梯段、分离的不连续空间、不规则形状的空间和/或不可被占用或不可用于布局生成的一个或多个区域的特性。例如,建筑物可能是圆柱形和中空的,其中在北端有楼梯。在该示例中,平面布置图210将指定具有圆形形状的外边界。因为建筑物是中空的,所以平面布置图210将指定内边界,该内边界形成的区域小于由外边界形成的圆的区域。可针对内边界与外边界之间的物理空间生成一个或多个布局。当建筑物包括多个楼层和/或与任何其他物理空间或区域不连续的一个或多个区域时,平面布置图210可包括关于不同楼层和区域之间的关系的信息,诸如楼层数量、楼层和/或区域之间的距离等。
布局生成模块220接收平面布置图210并且基于与由平面布置图210指定的物理空间相关联的特性来生成布局230。布局生成模块220分析与由平面布置图210指定的物理空间相关联的特性。在操作中,布局生成模块220基于与由平面布置图210指定的物理空间相关联的特性来生成布局230。布局230是对应于平面布置图(诸如平面布置图210)的物理空间的数字表示。布局230被表示为单元格的二维网格,其中每个单元格表示给定量的二维物理空间。用于给定量的真实物理空间的单元格越多,通过真实物理空间的单元格网格的近似的粒度就越细。在各种实施方案中,针对布局230生成的网格中的单元格数量是基于准确地表示物理空间所需的最小粒度级别来确定的。粒度级别对应于布局(诸如布局230)对于真实物理空间中的给定区域所具有的单元格的数量。粒度级别可基于当前的平面布置图,并且可另外地考虑到未来可能对平面布置图的扩展/修改。布局230的粒度级别可由布局生成引擎118的任何模块修改。当修改布局230的粒度级别时,单独地维护原始特性以便在新的粒度级别增强布局230或随后恢复到反映原始特性的布局230的版本。
在一个实施方案中,布局230在网格中具有至少三种类型的单元格:空单元格、被占用单元格和无效单元格。空单元格表示可用的物理空间。被占用单元格表示无法用于放置任何空间单元的被占用或阻塞的物理空间,如下所述。无效单元格表示无法被占用的区域。按照上述圆柱形和中空建筑物的示例,布局230将具有在具有空单元格的网格中表示的物理可用空间以及在具有无效单元格的网格中表示的内部区域和圆柱之外的区域的空间。内边界和外边界由无效单元格的边界近似。
在一个实施方案中,布局230具有由布局230的边界、无效单元格和/或源于被占用单元格的边缘形成的凹拐角、凸拐角和/或平拐角。凹拐角向内面向边界。凸拐角从边界面向外。平拐角在面向彼此并且在两个相向的边界的端部处形成直线边界的两个边界(例如,墙壁)之间没有任何单元格。平拐角的直线边界在两个方向上与两个相向的边界相距至少一个单元格(因此,直线边界至少是两个单元格的长度)。因此,当两个相向的边界之间没有单元格时,平拐角位于两个相向的边界的端部的交汇点。描述平拐角的另一种方式是在两个凹拐角尖端对尖端相交时,其中一个凹拐角的边界平行于另一个凹拐角的边界并且边界之间没有单元格。
布局230的单元格网格具有对应的坐标系。布局230的单元格相对于布局230的单元格网格的坐标系进行布置。例如,对于具有四个顶点的方形单元格,可布置方形单元格,使得每个方形单元格的左下顶点对应于一个坐标。在示例中,在原点处的单元格是左下顶点位于单元格网格坐标(0,0)处的单元格。布局230的单元格、单元格顶点和/或拐角由对应的坐标标识和/或定位。下面在图3A的讨论中进一步解释布局的坐标。
数据库120将空间单元列表212提供到变换模块240。空间单元列表212指定要被放置在布局230内的物理空间的特性(在本文中称为“空间单元”)。空间单元可以是房间、办公室、厨房、开放空间、外部区域等。空间单元列表212包括一个或多个空间单元的目录。每个空间单元与空间单元列表212中所包括的一个或多个特征相关联。与给定的空间单元相关联的空间单元特性包括但不限于与空间单元相关联的一个或多个长度、与空间单元相关联的一个或多个宽度、空间单元的边界的长度、边界之间的角度、角度孔径、角度位置、边界的形状、物理空间中的可用区域、区域的形状、区域大小、物理空间的形状、物理空间大小、空间距离以及不连续边界、区域和物理空间之间的关系等。空间单元列表212可包括根据空间单元将被放置在布局230中的次序的放置次序。空间单元的放置次序可以是有条件的、无条件的、强制的、优先的等。此外,放置次序可应用于所有空间单元或空间单元的子集。
变换模块240接收布局230和空间单元列表212。在操作中,变换模块240基于布局230和空间单元列表212来生成一个或多个经变换空间单元250。变换模块240分析空间单元列表212中的对应于一个或多个空间单元中的每一者的空间单元特性,并且将一个或多个空间单元变换成一个或多个经变换空间单元250。
变换模块240基于对与空间单元列表212中的空间单元相关联的特性的分析来生成一个或多个经变换空间单元250。每个经变换空间单元250是对应的空间单元的数字表示并且被表示为单元格的二维网格,其中每个单元格表示给定量的二维物理空间。在各种实施方案中,根据准确地表示特性和/或物理空间所需的最小粒度级别来确定针对每个经变换空间单元250生成的网格中的单元格数量。粒度级别是对于真实物理空间中的给定区域,经变换空间单元所占据的单元格的量。粒度级别可基于空间单元特性。经变换空间单元250的粒度级别可由布局生成引擎118的任何模块修改。
每个经变换空间单元250可在网格中具有至少两种类型的单元格:空单元格和被占用单元格。被占用单元格表示经变换空间单元250在放置于布局(诸如布局230)时所占用的物理空间,如下所述。空单元格表示可用的物理空间。内边界和外边界由空单元格的边界近似。在一个实施方案中,每个经变换空间单元250的单元格网格具有对应的坐标系。经变换空间单元250可共享相同的坐标系。在操作中,变换模块240将经变换空间单元250从任何坐标系转换到布局230的坐标系中。每个经变换空间单元250的单元格相对于每个经变换空间单元250的单元格网格的坐标系进行布置。
布局生成引擎118基于平面布置图210、空间单元列表212和放置参数214来确定粒度级别。例如,平面布置图210或空间单元列表212的特定参数可能需要比平面布置图210或空间单元列表212中的任何其他参数更高的粒度。虽然图2中未示出,但布局生成引擎118可接收设置、提高或修改粒度级别的用户输入。在执行期间,布局生成引擎118可改变布局230的粒度级别以匹配经变换空间单元250的粒度级别。另外或替代地,变换模块240可改变经变换空间单元250的粒度级别以匹配布局230的粒度级别。
数据库120将放置参数214递送到贪婪生长算法模块260。放置参数(诸如放置参数214)是控制如何将一个或多个经变换空间单元250放置在给定的布局(诸如布局230)内的参数。放置参数214包括可能影响布局生成引擎118和/或布局生成引擎118的一个或多个模块的操作、执行和/或功能性的一个或多个参数、约束、因素、要求、选项、设置、初始值、边界条件、数据等。放置参数214可独立于或者部分地或完全地被包括在平面布置图210和/或空间单元列表212中。放置参数214可以是强制的或优先的。除非应用明确的例外(例如,旁路参数允许不应用强制参数),否则在操作中必须应用强制参数。优先参数不需要强制实现。放置参数214可基于真实物理空间、真实物理空间的近似、平面布置图210、空间单元列表212、布局230、经变换空间单元250、填充的布局270、布局生成引擎118和/或布局生成引擎118的一个或多个模块。放置参数214可基于将使用布局230的物理空间的个人和/或群组和/或所有团队成员。放置参数214可应用于真实物理空间的近似、平面布置图210、空间单元列表212、布局230、经变换空间单元250、填充的布局270、布局生成引擎118和/或布局生成引擎118的一个或多个模块。放置参数214可由用户在执行布局生成引擎118和/或布局生成引擎118的一个或多个模块时或之前手动地命令或修改。放置参数214可包括以下示例性参数:
a.物理空间目的参数:物理空间用途参数描述物理空间的一个或多个目的、预期用途、功能、名称和/或目标
b.空间单元目的参数:空间单元目的参数描述空间单元列表212的一个或多个空间单元和/或一个或多个经变换空间单元250的一个或多个目的、预期用途、功能、名称和/或目标
c.取向参数:取向参数描述一个或多个经变换空间单元250的一个或多个取向和/或禁止的取向。
d.特定放置参数:特定放置参数描述用于放置一个或多个经变换空间单元250的一个或多个特定位置、区域、取向、网格的区段、单元格组等
e.放置次序参数:放置次序参数描述或提供用于确定放置空间单元列表212的空间单元和/或变换空间单元250的布置的标准
f.邻近参数:邻近参数描述用于确定空间单元列表212的一个或多个空间单元和/或经变换空间单元250彼此相邻或彼此不相邻的放置的标准和/或要求
g.接近参数:接近参数描述用于确定空间单元列表212的一个或多个空间单元和/或经变换空间单元250在彼此的接近范围内的放置的标准和/或要求
h.距离参数:距离参数描述用于确定空间单元列表212的一个或多个空间单元和/或经变换空间单元250在彼此的一定距离处(就空间单元、经变换空间单元250、单元格、物理长度等而言)的放置的标准和/或要求。
i.分离参数:分离参数描述用于确定空间单元列表212的一个或多个空间单元和/或经变换空间单元250不在彼此的一定范围内的放置的标准和/或要求
j.拐角偏好参数:拐角偏好参数基于进行放置测试的拐角类型来修改放置得分
k.循环参数:循环参数描述用于确定提供对填充的布局270中的每个经变换空间单元250的适当访问的循环的标准和/或要求
贪婪生长算法模块260从数据库120接收放置参数214并且从变换模块240接收布局230和经变换空间单元250。在操作中,贪婪生长算法模块260基于放置参数214、布局230和/或经变换空间单元250来生成一个或多个填充的布局270。填充的布局270包括根据一个或多个放置参数214放置在布局230内的经变换空间单元250。当生成填充的布局270时,贪婪生长算法模块260将经变换空间单元250迭代地放置在布局230中,直到没有经变换空间单元250要放置或者没有可接受放置待放置的任何经变换空间单元250的空单元格布置。贪婪生长算法模块260根据放置次序参数将经变换空间单元250放置在布局230内。如果尚未指定放置次序参数,那么贪婪生长算法模块260使用默认次序,即,如在空间单元列表212中登记或由变换模块240提供的经变换空间单元250的实际次序,或提示用户提供放置次序或放置次序的标准。
当将选定的经变换空间单元250放置在布局230内时,贪婪生长算法模块260通过将布局230内的可能放置的得分进行比较来识别选定的经变换空间单元250的最佳可能放置。贪婪生长算法模块260通过识别布局230中的一组可用拐角并且在选定的经变换空间单元250与布局230的该一组可用拐角中的一个或多个拐角之间执行拐角匹配来识别选定的经变换空间单元250的可能放置(如果有的话)。
如上所讨论,布局230包括至少三种类型的拐角:凹拐角、凸拐角和平拐角。为了执行拐角匹配,贪婪生长算法模块260识别拐角的一个或多个空单元格,将选定的经变换空间单元250平移和/或旋转到拐角匹配位置,并且测试该位置。为了识别相对于凹拐角的空单元格,贪婪生长算法模块260识别布局230的哪个空单元格最接近凹拐角。为了识别相对于凸拐角的空单元格,贪婪生长算法模块260识别布局230的哪两个空单元最接近凸拐角且还触及布局230的形成凸拐角的尖端的单元格的边界。为了识别相对于平拐角的空单元格,贪婪生长算法模块260识别布局230的哪两个空单元格最接近形成平拐角的交汇边界。在替代实施方案中,为了识别空单元格,贪婪生长算法模块260识别哪个坐标对应于布局230的相对于对应拐角类型的一个或多个空单元格,如上所讨论。
贪婪生长算法模块260平移和/或旋转选定的经变换空间单元250,以便将选定的经变换空间单元250的拐角被占用单元格定位在布局230的识别的空单元格处。拐角被占用单元格是形成选定的经变换空间单元250的凸拐角的被占用单元。为了平移选定的经变换空间单元250,贪婪生长算法模块260识别并跟踪包括在选定的经变换空间单元250的单元格网格中的一个或多个单元格的位置,同时将选定的经变换空间单元250移动通过布局230。为了旋转选定的经变换空间单元250,贪婪生长算法模块260将选定的经变换空间单元250的单元格移位,使得选定的经变换空间单元250相对于布局230的取向改变。在替代实施方案中,为了旋转选定的经变换空间单元250,贪婪生长算法模块260修改选定的经变换空间单元250的单元格网格的坐标系相对于布局230的取向。在又一个替代实施方案中,为了旋转选定的经变换空间单元250,贪婪生长算法模块260将选定的经变换空间单元250的单元格相对于选定的经变换空间单元250的坐标系移位。贪婪生长算法模块260可以任何技术上可行的方式旋转选定的经变换空间单元250。
当贪婪生长算法模块260平移和/或旋转选定的经变换空间单元250而使得选定的经变换空间单元250的拐角被占用单元格位于拐角的识别的空单元格时,如上所讨论,贪婪生长算法模块260测试在布局230上的选定的经变换空间单元250的拐角匹配位置。贪婪生长算法模块260通过确定选定的经变换空间单元250在拐角匹配位置的放置是有效还是无效来测试拐角匹配位置。当选定的经变换空间单元250的拐角的尖端触及凸拐角的尖端并且选定的经变换空间单元250的边界不触及凸拐角的直接边界时,贪婪生长算法模块260确定基于布局230的凸拐角在拐角匹配位置处的放置是无效的。当选定的经变换空间单元250的单元格覆盖布局230的被占用单元格或无效单元格时,贪婪生长算法模块260也确定在拐角匹配位置处的放置是无效的。当选定的经变换空间单元250的被占用单元格中的任一者落在布局230的边界之外时,贪婪生长算法模块260也确定在拐角匹配位置处的放置是无效的。如果在拐角匹配位置处的放置是有效的,则贪婪生长算法模块260将拐角匹配位置识别为可能放置并且确定该可能放置的得分。
在一个实施方案中,贪婪生长算法模块260基于布局230的单元格网格的原点与置于可能放置内的选定的经变换空间单元250的单元格(例如,位于选定的经变换空间单元250的单元格网格的原点处的单元格)之间的曼哈顿距离对可能放置进行评分。在另一个实施方案中,贪婪生长算法模块260基于布局230的中心坐标处的单元格与置于可能放置内的选定的经变换空间单元250的单元格之间的曼哈顿距离对可能放置进行评分。此外,贪婪生长算法模块260基于放置参数来修改给定的可能放置的得分。另外地和/或替代地,贪婪生长算法模块260在识别出选定的经变换空间单元250的所有可能放置之后基于放置参数来修改一个或多个可能放置的得分。例如,接近参数可描述第一经变换空间单元和第二经变换空间单元250彼此靠近放置的便利性。因此,如果第一经变换空间单元250的给定的可能放置具有特定得分但该给定的可能放置紧靠第二经变换空间单元250,则贪婪生长算法模块260基于接近参数来应用任何评分修改和/或指令。
一旦对选定的经变换空间单元250的可能放置进行评分,贪婪生长算法模块260就比较得分并且基于可能放置的相对放置得分来确定选定的经变换空间单元250的放置位置。在各种实施方案中,放置位置对应于相对于其他可能放置的具有最佳得分的可能放置。
在一个实施方案中,贪婪生长算法模块260将选定的经变换空间单元250放置在确定的放置位置处。为了执行放置,贪婪生长算法模块将布局230的对应于空间单元250中的空间单元的被占用单元格的单元格从空更新为被占用。布局230的单元格更新保持跟踪布局230中哪些更新的单元格对应于哪些经变换空间单元250。布局230的放置执行和/或单元格更新可包括更新一个或多个放置参数214、布局230的单元格网格和/或布局230的单元格网格的一个或多个单元格。布局230的更新可保持跟踪放置参数214,如适用于布局230中的特定更新的单元格。布局230的更新还可保持跟踪物理空间特性和/或空间单元特性,以及向哪个单元格和/或单元格网格应用任何对应的物理空间特性和/或空间单元特性。
经变换的空间单元250的放置通过创建一个或多个新的拐角和/或移除一个或多个旧的拐角来改变布局230中的可用拐角。经变换的空间单元250的放置可改变暴露于布局230的外边界和/或内边界的可用性。经变换的空间单元250的放置也可改变由布局230中的被占用单元格形成的边界的形状。在一个实施方案中,贪婪生长算法模块260更新布局230的边界和拐角。贪婪生长算法模块260分析对布局230的单元格的集群形成的几何变化和/或分析最后放置的经变换空间单元250的周边,以识别新的拐角、不再存在的拐角和/或边界的变化,并且更新布局230以考虑到识别的新拐角、不再存在的拐角和/或边界的变化。
在一个实施方案中,贪婪生长算法模块260根据放置次序来选择下一经变换空间单元250(如果有的话),并且继续上面讨论的迭代放置过程。如果没有经变换空间单元250要放置,或者如果没有其他经变换空间单元250可放置,则贪婪生长算法模块260将填充的布局270递送到循环模块280。填充的布局270是在针对可放置的经变换空间单元250完成放置过程之后的布局230。应注意,填充的布局270不一定是完全填充的,因为在剩余的经变换空间单元250都不适配的布置中,布局230中可能存在可用的空单元格,并且布局230中可能存在空单元格而没有更多的经变换空间单元250来放置。
循环模块280从贪婪生长算法模块260接收填充的布局270并且从数据库120接收放置参数214。填充的布局270维护来自布局230的关于布局230中哪些更新的单元格对应于哪些经变换空间单元250的信息。循环模块280识别不同的经变换空间单元250之间和/或经变换空间单元250与布局230的边界之间的潜在循环路径。潜在循环路径描述了两个或更多个空间单元之间和/或空间单元与边界之间的潜在走道、路径、大厅、空间等。循环模块280基于所识别的边界、潜在循环路径和/或适用的放置参数214为填充的布局270生成一个或多个循环。循环模块280可用适当的循环来更新填充的布局270。循环模块280可用不同适当的循环来更新一个或多个填充的布局270。循环可能被一个或多个循环参数约束。例如,循环模块280可被配置为确定填充的布局270的最长可能循环。最长可能循环将分离所有放置的经变换空间单元250。循环参数可通过要求循环不能触及每个经变换空间单元250的边界的多于一个或两个边缘和/或不包围任何经变换空间单元250或经变换空间单元250的特定集群来约束最长循环长度。作为另一个示例,循环模块280可被配置为确定填充的布局270的触及每个经变换空间单元250的最短可能循环。触及每个经变换空间单元250的最短可能循环可能会导致在填充的布局270中未找到彼此或连接到彼此的单独循环路径。循环参数可通过要求每10个空间单元的单独循环路径之间的连接和/或至少4个路径连接彼此尽可能远离来约束最短循环长度。
图3A示出了根据各种实施方案的一个或多个方面的与布局230以及对应的坐标系和单元格网格一致的布局330。图3A还示出了与经变换空间单元250以及对应的坐标系和单元格网格一致的经变换空间单元350。图3A中的坐标系提供了对应单元格网格的数字坐标。布局330的单元格网格包括标识为“U1”的被占用单元,其代表第一空间单元。布局330的单元格网格还包括显示为空白的空单元格和标识为“v”的无效单元格。经变换空间单元350的单元格网格包括标识为“U2”的被占用单元,其代表第二空间单元。在一个实施方案中,经变换空间单元350代表来自空间单元列表(诸如空间单元列表212)的第2空间单元,其中第2空间单元变换为经变换空间单元350。经变换空间单元350的单元格网格还包括显示为空白的空单元格。
贪婪生长算法模块(诸如贪婪生长算法模块260)不被单元格网格和/或单元格网格的坐标限制来执行拐角匹配,也不识别和/或定位单元格和坐标。出于讨论的目的,坐标对应于每个单元格的左下角。在一个实施方案中,贪婪生长算法模块(诸如贪婪生长算法模块260)识别经变换空间单元350的在呈列(x)乘行(y)的格式(如(0,0)、(0,2)、(4,1)、(2,0)、(1,3)和(4,3))的坐标处的凸拐角。应注意,坐标(4,1)、(1,3)和(4,3)包括通过超出给定的单元格网格的坐标来标识拐角位置的行和/或列。在另一个实施方案中,贪婪生长算法模块(诸如贪婪生长算法模块260)识别布局330在包括超出给定的单元格网格的坐标的行和/或列的坐标处的凹拐角,其中布局330的凹拐角在坐标(7,6)和(9,6)处。
图3B示出了根据各种实施方案的一个或多个方面的布局330,其中经变换空间单元350变换到布局330的坐标系中并且被平移到布局330的凹拐角。具体地,图3B示出了在布局330的凹拐角处的拐角匹配。
出于该拐角匹配讨论的目的,经变换空间单元350在变换到布局330的坐标系中时,经变换空间单元350的左下角单元格位于布局330的坐标(0,0)处。在执行拐角匹配时,贪婪生长算法模块260将布局坐标(6,4)处的拐角识别为凹拐角。贪婪生长算法模块260将(5,3)处的空单元格识别为最靠近坐标(6,4)处的凹拐角的空单元格。由于经变换空间单元350最初位于坐标(0,0)处,因此贪婪生长算法模块260将经变换空间单元350的拐角被占用单元格识别为位于坐标(3,2)处。将经变换空间单元350的拐角被占用单元格定位在(5,3)处的识别的空单元格处。为了将坐标(3,2)处的拐角被占用单元格定位在(5,3)处的识别的空单元格的单元格位置处,贪婪生长算法模块260平移经变换空间单元350。为了处于图3B所示的当前位置,贪婪生长算法模块260将经变换空间单元350向上一行且向右两列平移到坐标(1,2)。这是曼哈顿距离3(向上一加向右二)。在经变换空间单元350处于拐角匹配位置的情况下,如图3B所示,贪婪生长算法模块260通过确定经变换空间单元350在拐角匹配位置处的放置是有效还是无效来测试拐角匹配位置。由于经变换空间单元350在拐角匹配位置的放置是有效的,因此经变换空间单元350在拐角匹配位置的放置是可能放置。贪婪生长算法模块260对经变换空间单元350在拐角匹配位置的可能放置进行评分。贪婪生长算法模块260继续旋转和平移经变换空间单元350的过程以执行与经变换空间单元350的不同的拐角被占用单元格的拐角匹配。
图3C示出了根据各种实施方案的一个或多个方面的布局330,其中经变换的空间单元350以不同于原始取向的取向置于布局330上。出于该旋转讨论的目的,经变换空间单元350的左下角单元格在旋转之前以如图3A所示的取向位于布局330的坐标(0,0)处。因此,基于与布局330在(1,1)处的凸拐角匹配的拐角匹配,将该凸拐角的识别的空单元格放置在(1,1)处,并且在放置之前旋转。为了将经变换空间单元350旋转到图3C所示的取向,贪婪生长算法模块260将经变换空间单元350相对于布局330的原点顺时针旋转90度(或逆时针旋转270度)。一旦旋转,经变换空间单元350的左下角单元格便位于坐标(0,-4)处,并且经变换空间单元350的左下角被占用单元位于坐标(1,-4)处。贪婪生长算法模块260将经变换空间单元350向上平移5个单元格,使得经变换空间单元350的左下角被占用单元格位于坐标(1,1)处。
图3D示出了与布局330和布局230一致的具有两个放置的空间单元以及布局360的所有现有拐角的布局360。布局360中的第一放置的空间单元U1的被占用单元标识为“U1”。布局360中的第二放置的空间单元U2的被占用单元标识为“U2”。布局360的拐角包括凹拐角361、凸拐角363、一个平拐角365。
图3E示出了如图3D中的具有第三放置的空间单元U3的布局360。第三放置的空间单元U3的被占用单元标识为“U3”。至于拐角,图3E标识了通过放置第三放置的空间单元U3而创建的新拐角。新拐角包括凹拐角371和凸拐角373。响应于将第三放置的空间单元U3放置在布局360内,贪婪生长算法模块260从布局360移除平拐角365。
图4是根据本公开的各种实施方案的用于创建物理空间的布局的方法400的方法步骤的流程图。尽管结合图1至图3E的系统描述方法步骤,但本领域技术人员将理解,被配置为以任何次序实现方法步骤的任何系统都落入各种实施方案的范围内。
方法400开始于步骤402,其中计算装置100执行布局生成引擎118。在步骤402处,布局生成引擎118从数据库120接收平面布置图210、空间单元列表212和放置参数214。
在步骤404处,布局生成引擎118基于在步骤402期间接收到的平面布置图来生成布局230。为了生成布局230,布局生成引擎118在布局坐标系中创建单元格网格,其中网格中的单元格可以是空单元格、无效单元格和/或被占用单元格。
在步骤406处,布局生成引擎118基于在步骤402处接收到的空间单元列表212来生成一个或多个空间单元。为了生成一个或多个空间单元,布局生成引擎118在对应的空间单元坐标系中为每个空间单元创建不同的单元格网格。对应于给定的空间单元的单元格网格包括基于空间单元列表212和空间单元粒度级别的空间单元格中的空单元格、无效单元格和/或被占用单元格。
在步骤408处,布局生成引擎118基于空间单元坐标系和布局坐标系来将给定的空间单元变换为给定的经变换空间单元250。布局生成引擎118可将布局中的默认初始位置用于每个经变换空间单元250,诸如将给定的经变换空间单元250的左下单元格定位在布局230的原点坐标(0,0)处。在一个示例中,布局生成引擎118将给定的经变换空间单元250定位在布局230中的初始位置处,使得给定的经变换空间单元250的拐角被占用单元格位于布局230的与对应于布局230的拐角的识别的空单元格的坐标匹配的坐标处。
在步骤410处,布局生成引擎118基于放置参数214将经变换空间单元填充到布局230中。为了填充给定的经变换空间单元250,布局生成引擎118执行拐角匹配,如上所讨论。布局生成引擎118在当前的经变换空间单元250和布局230的一组可用拐角中的一个或多个拐角之间执行拐角匹配,以识别当前的经变换空间单元250的可能放置。布局生成引擎118将布局230中的一组可用拐角识别为当前更新的,因为可用拐角随每次放置而改变,如上所讨论。布局生成引擎118基于由拐角匹配产生的得分来确定放置位置。布局生成引擎118基于布局参数214对可能放置进行评分,并且比较得分以识别最佳可能放置。布局生成引擎118将给定的经变换空间单元250放置在确定的放置位置处。布局生成引擎118通过将经变换空间单元250放置在布局230中并且在每次放置之后更新布局230和布局230的拐角来生成填充的布局270,如上所讨论。布局生成引擎118基于放置次序参数或默认放置次序来生成填充的布局270,直到没有经变换空间单元250要放置或没有其他经变换空间单元250可放置。
针对在步骤406生成的每个空间单元执行步骤408和410。在执行时,布局生成引擎118在步骤406处可生成一个空间单元、一组空间单元或所有空间单元。从步骤406到步骤408,布局生成引擎118可将一个空间单元、多个空间单元、一组或多组空间单元或所有空间单元变换成经变换空间单元250。在步骤410处,布局生成引擎118一次将一个经变换空间单元250填充到布局230中。
在步骤416处,布局生成引擎118基于放置参数214为填充的布局270生成循环,如上所讨论。
总之,所公开的技术可用于高效且准确地生成物理空间的布局。布局生成模块接收物理空间列表作为输入。物理空间列表包括一组空间单元,每个空间单元具有设计参数(例如,平面布置图参数、空间单元大小、空间单元形状和尺寸、空间单元类型和/或目的、空间单元放置和/或邻近要求、放置次序偏好、邻近要求、接近/距离要求、分离要求等)。为了生成物理空间的给定布局,布局生成模块使用填充算法来以符合设计参数的方式将空间单元放置在平面布置图中。在操作时,布局生成模块通过按顺序将空间单元放置在平面布置图中来生成布局。默认顺序包括按物理空间列表中的次序从平面布置图的内部到外部放置空间单元,同时观察设计参数。
与给定的物理空间相关联的布局被定义为单元格网格、与物理空间的平面布置图相对应的边界以及坐标系。单元格可能是无效的、空的或被占用的。无效单元格表示空间单元不能占用的空间,例如,因为由于障碍物引起的平面布置图的内边界。空单元格可用于空间单元放置,并且被占用单元格是专用于一个房间且不能被另一个房间占用的原本空单元格。空单元格和被占用单元格在它们的最外边缘处形成单元格边界。被占用和/或无效单元格的连续集群在集群的周边处形成单元格边界。在给定的布局中,空间单元由以代表每个房间的形状和大小的方式布置的多个单元格定义。
当在布局中放置给定的空间单元时,布局生成模块对与空间单元相关的设计参数应用变换(平移和旋转),使得将空间单元带入布局的坐标系中。通过变换,将空间单元适配到布局中,其中约束是确保空间单元的单元格不与被占用单元格或空单元格重叠,并且空间单元的单元格不超出布局的外边界放置。布局生成模块通过应用贪婪拐角生长填充算法来确定空间单元的放置,由此每次通过选择具有在所有当前可用的放置中最高的放置得分的布局拐角并且将空间单元适配到选定的布局拐角来放置一个空间单元。布局拐角由布局的内边界的周长和连续的无效单元格和/或被占用单元格的任何集群限定。基于空间单元到达原点必须移动的网格数量(使用曼哈顿距离测量)来计算放置得分,其中得分根据任何适用的参数(例如,位置偏好、空间单元接近偏好、取向等)进行修改。
所公开的技术的至少一个优点和技术改进在于布局生成模块以在布局生成的每个顺序步骤都满足设计参数的方式生成布局。因此,布局生成模块不花时间、能量和资源来生成不满足参数要求的布局。另一个优点和技术改进是生成空间实用性增加、太小而无法使用的空间碎片减少并且由单元边界形成的循环路径更长的布局。这些技术优点提供优于现有技术方法的一个或多个技术进步。
任何权利要求中阐述的任何权利要求要素和/或本申请中描述的任何要素以任何方式进行的任何和所有组合都落在本发明和保护的设想范围内。
1.在各种实施方案中,一种用于生成物理空间的布局的计算机实现的方法包括:基于物理空间的平面布置图来生成布局;生成对应于要放置在所述物理空间中的多个空间单元的多个空间单元网格;通过将所述多个空间单元网格中的第一空间单元网格中的拐角单元格与所述布局中的给定的可用单元格进行匹配来识别在所述布局内的所述第一空间单元网格的放置;基于一个或多个放置参数来生成与所述第一空间单元网格的所述放置相关联的得分,所述放置参数定义包括在所述多个空间单元中并对应于所述第一空间单元网格的第一空间单元的放置约束;以及基于所述得分来将所述第一空间单元网格放置在所述布局中。
2.如条款1所述的方法,其中所述布局包括与第一坐标系相关联的第一单元格网格,并且所述第一空间单元网格与第二坐标系相关联。
3.如条款1或2所述的方法,其中识别所述第一空间单元的所述放置包括将所述第一空间单元网格变换到所述第一坐标系中。
4.如条款1至3中任一项所述的方法,所述方法还包括通过将所述第一空间单元网格中的拐角单元格与所述布局中的第二可用单元格进行匹配来识别在所述布局内的所述第一空间单元网格的第二放置,以及基于所述一个或多个放置参数来生成与所述第一空间单元网格的所述第二放置相关联的第二得分,并且其中将所述第一空间单元网格放置在所述布局中是基于所述得分与所述第二得分之间的比较。
5.如条款1至4中任一项所述的方法,其中将所述第一空间单元网格中的所述拐角单元格与所述布局中的所述给定的可用单元格进行匹配包括在所述布局内移动所述第一空间单元网格,直到所述拐角单元格占用所述布局中的空拐角单元格。
6.如条款1至5中任一项所述的方法,其中将所述第一空间单元网格中的所述拐角单元格与所述布局中的所述给定的可用单元格进行匹配还包括在所述拐角单元格占用所述给定的可用单元格时,基于所述第一空间单元网格的边界的位置来确定所述放置是否有效。
7.如条款1至6中任一项所述的方法,其中将所述第一空间单元网格中的所述拐角单元格与所述布局中的所述给定的可用单元格进行匹配还包括在所述拐角单元格占用所述给定的可用单元格时,基于所述第一空间单元网格中的另一个单元格是否覆盖所述布局中的被占用单元格来确定所述放置是否有效。
8.如条款1至7中任一项所述的方法,其中将所述第一空间单元网格中的所述拐角单元格与所述布局中的所述给定的可用单元格进行匹配还包括在所述拐角单元格占用所述给定的可用单元格时,基于所述第一空间单元网格中的另一个单元格是否在所述布局之外来确定所述放置是否有效。
9.如条款1至8中任一项所述的方法,所述方法还包括:通过将包括在所述多个空间单元网格中的第二空间单元网格中的第二拐角单元格与所述布局中的第二可用单元格进行匹配来识别在所述布局内的所述第二空间单元网格的第二放置;以及基于与所述第二空间单元网格相关联的第二组放置参数来生成与所述第二空间单元网格的所述第二放置相关联的第二得分,以及基于所述第二得分来将所述第二空间单元网格放置在所述布局中。
10.在各种实施方案中,一种或多种非暂时性计算机可读介质存储指令,所述指令在由一个或多个处理器执行时致使所述一个或多个处理器执行以下步骤:基于物理空间的平面布置图来生成布局;生成对应于要放置在所述物理空间中的多个空间单元的多个空间单元网格;通过将所述多个空间单元网格中的第一空间单元网格中的拐角单元格与所述布局中的给定的可用单元格进行匹配来识别在所述布局内的所述第一空间单元网格的放置;基于一个或多个放置参数来生成与所述第一空间单元网格的所述放置相关联的得分,所述放置参数定义包括在所述多个空间单元中并对应于所述第一空间单元网格的第一空间单元的放置约束;以及基于所述得分来将所述第一空间单元网格放置在所述布局中。
11.如条款10所述的一种或多种非暂时性计算机可读介质,其中所述布局包括与第一坐标系相关联的第一单元格网格,并且所述第一空间单元网格与第二坐标系相关联。
12.如条款10或11所述的一种或多种非暂时性计算机可读介质,其中识别所述第一空间单元的所述放置包括将所述第一空间单元网格变换到所述第一坐标系中。
13.如条款10至12中任一项所述的一种或多种非暂时性计算机可读介质,所述非暂时性计算机可读介质还包括通过将所述第一空间单元网格中的拐角单元格与所述布局中的第二可用单元格进行匹配来识别在所述布局内的所述第一空间单元网格的第二放置,以及基于所述一个或多个放置参数来生成与所述第一空间单元网格的所述第二放置相关联的第二得分,并且其中将所述第一空间单元网格放置在所述布局中是基于所述得分与所述第二得分之间的比较。
14.如条款10至13中任一项所述的一种或多种非暂时性计算机可读介质,其中将所述第一空间单元网格中的所述拐角单元格与所述布局中的所述给定的可用单元格进行匹配包括在所述布局内移动所述第一空间单元网格,直到所述拐角单元格占用所述布局中的空拐角单元格。
15.如条款10至14中任一项所述的一种或多种非暂时性计算机可读介质,其中将所述第一空间单元网格中的所述拐角单元格与所述布局中的所述给定的可用单元格进行匹配还包括在所述拐角单元格占用所述给定的可用单元格时,基于所述第一空间单元网格的边界的位置来确定所述放置是否有效。
16.如条款10至15中任一项所述的一种或多种非暂时性计算机可读介质,其中将所述第一空间单元网格中的所述拐角单元格与所述布局中的所述给定的可用单元格进行匹配还包括在所述拐角单元格占用所述给定的可用单元格时,基于所述第一空间单元网格中的另一个单元格是否覆盖所述布局中的被占用单元格来确定所述放置是否有效。
17.如条款10至16中任一项所述的一种或多种非暂时性计算机可读介质,其中将所述第一空间单元网格中的所述拐角单元格与所述布局中的所述给定的可用单元格进行匹配还包括在所述拐角单元格占用所述给定的可用单元格时,基于所述第一空间单元网格中的另一个单元格是否在所述布局之外来确定所述放置是否有效。
18.如条款10至17中任一项所述的一种或多种非暂时性计算机可读介质,所述非暂时性计算机可读介质还包括:通过将包括在所述多个空间单元网格中的第二空间单元网格中的第二拐角单元格与所述布局中的第二可用单元格进行匹配来识别在所述布局内的所述第二空间单元网格的第二放置;以及基于与所述第二空间单元网格相关联的第二组放置参数来生成与所述第二空间单元网格的所述第二放置相关联的第二得分,以及基于所述第二得分来将所述第二空间单元网格放置在所述布局中。
19.在各种实施方案中,一种计算机系统包括:存储器,所述存储器存储指令;以及处理器,所述处理器执行所述指令以:基于物理空间的平面布置图来生成布局;生成对应于要放置在所述物理空间中的多个空间单元的多个空间单元网格;通过将所述多个空间单元网格中的第一空间单元网格中的拐角单元格与所述布局中的给定的可用单元格进行匹配来识别在所述布局内的所述第一空间单元网格的放置;基于一个或多个放置参数来生成与所述第一空间单元网格的所述放置相关联的得分,所述放置参数定义包括在所述多个空间单元中并对应于所述第一空间单元网格的第一空间单元的放置约束;以及基于所述得分来将所述第一空间单元网格放置在所述布局中。
20.如权利要求19所述的计算机系统,其中将所述第一空间单元网格中的所述拐角单元格与所述布局中的所述给定的可用单元格进行匹配包括在所述布局内移动所述第一空间单元网格,直到所述拐角单元格占用所述布局中的空拐角单元格。
已经出于说明目的呈现了对各种实施方案的描述,但是这些描述并不意图是详尽的或限于所公开的实施方案。在不脱离所描述的实施方案的范围和精神的情况下,许多修改和变化对于本领域普通技术人员将是显而易见的。
本发明实施方案的方面可体现为系统、方法或计算机程序产品。因此,本公开的各方面可采用全硬件实施方案、全软件实施方案(包括固件、常驻软件、微代码等)或结合软件和硬件方面的实施方案的形式,所述软件和硬件方面在本文中可全部概括地称为“模块”、“系统”或“计算机”。另外,本公开中描述的任何硬件和/或软件技术、过程、功能、部件、引擎、模块或系统都可被实现为电路或一组电路。此外,本公开的各方面可采用体现在一个或多个计算机可读介质中的计算机程序产品的形式,该一个或多个计算机可读介质具有在其上体现的计算机可读程序代码。
可利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或装置,或者前述项的任何合适的组合。计算机可读存储介质的更具体示例(非详尽列表)将包括以下项:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光学存储装置、磁性存储装置,或前述项的任何合适的组合。在本文档的背景中,计算机可读存储介质可以是可含有或存储供指令执行系统、设备或装置使用或者结合指令执行系统、设备或装置使用的程序的任何有形介质。
以上参考根据本公开的实施方案的方法、设备(系统)和计算机程序产品的流程图图解和/或框图描述了本公开的方面。将理解,可通过计算机程序指令来实现流程图图解和/或框图中的每个框以及流程图图解和/或框图中的框的组合。这些计算机程序指令可提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器。指令在经由计算机或其他可编程数据处理设备的处理器执行时使得实现流程图和/或框图的一个或多个框中指定的功能/动作。此类处理器可以是但不限于通用处理器、专用处理器、应用特定的处理器或现场可编程门阵列。
附图中的流程图和框图示出了根据本公开的各种实施方案的系统、方法和计算机程序产品的可能的实现方式的架构、功能和操作。就这一点而言,流程图或框图中的每个框可表示包括用于实现指定的逻辑功能的一个或多个可执行指令的代码的模块、片段或部分。还应注意,在一些替代实现方式中,框中指出的功能可不按附图中指出的次序发生。例如,连续示出的两个框实际上可基本上同时执行,或者所述框有时可按相反次序执行,这取决于所涉及的功能。还应注意,框图和/或流程图中的每个框以及框图和/或流程图中的框的组合可由执行指定的功能或动作的基于专用硬件的系统或专用硬件与计算机指令的组合来实现。
虽然前述内容涉及本公开的实施方案,但在不脱离本公开的基本范围的情况下可设想本公开的其他和另外的实施方案,并且本公开的范围由所附权利要求书确定。

Claims (20)

1.一种用于生成物理空间的布局的计算机实现的方法,所述方法包括:
基于物理空间的平面布置图来生成布局;
生成对应于要放置在所述物理空间中的多个空间单元的多个空间单元网格;
通过将所述多个空间单元网格中的第一空间单元网格中的拐角单元格与所述布局中的给定的可用单元格进行匹配来识别在所述布局内的所述第一空间单元网格的放置;
基于一个或多个放置参数来生成与所述第一空间单元网格的所述放置相关联的得分,所述放置参数定义包括在所述多个空间单元中并对应于所述第一空间单元网格的第一空间单元的放置约束;以及
基于所述得分来将所述第一空间单元网格放置在所述布局中。
2.如权利要求1所述的方法,其中所述布局包括与第一坐标系相关联的第一单元格网格,并且所述第一空间单元网格与第二坐标系相关联。
3.如权利要求2所述的方法,其中识别所述第一空间单元的所述放置包括将所述第一空间单元网格变换到所述第一坐标系中。
4.如权利要求1所述的方法,所述方法还包括:
通过将所述第一空间单元网格中的拐角单元格与所述布局中的第二可用单元格进行匹配来识别在所述布局内的所述第一空间单元网格的第二放置;以及
基于所述一个或多个放置参数来生成与所述第一空间单元网格的所述第二放置相关联的第二得分,
其中将所述第一空间单元网格放置在所述布局中是基于所述得分与所述第二得分之间的比较。
5.如权利要求1所述的方法,其中将所述第一空间单元网格中的所述拐角单元格与所述布局中的所述给定的可用单元格进行匹配包括在所述布局内移动所述第一空间单元网格,直到所述拐角单元格占用所述布局中的空拐角单元格。
6.如权利要求5所述的方法,其中将所述第一空间单元网格中的所述拐角单元格与所述布局中的所述给定的可用单元格进行匹配还包括在所述拐角单元格占用所述给定的可用单元格时,基于所述第一空间单元网格的边界的位置来确定所述放置是否有效。
7.如权利要求5所述的方法,其中将所述第一空间单元网格中的所述拐角单元格与所述布局中的所述给定的可用单元格进行匹配还包括在所述拐角单元格占用所述给定的可用单元格时,基于所述第一空间单元网格中的另一个单元格是否覆盖所述布局中的被占用单元格来确定所述放置是否有效。
8.如权利要求5所述的方法,其中将所述第一空间单元网格中的所述拐角单元格与所述布局中的所述给定的可用单元格进行匹配还包括在所述拐角单元格占用所述给定的可用单元格时,基于所述第一空间单元网格中的另一个单元格是否在所述布局之外来确定所述放置是否有效。
9.如权利要求1所述的方法,所述方法还包括:
通过将包括在所述多个空间单元网格中的第二空间单元网格中的第二拐角单元格与所述布局中的第二可用单元格进行匹配来识别在所述布局内的所述第二空间单元网格的第二放置;以及
基于与所述第二空间单元网格相关联的第二组放置参数来生成与所述第二空间单元网格的所述第二放置相关联的第二得分,以及
基于所述第二得分来将所述第二空间单元网格放置在所述布局中。
10.一种或多种非暂时性计算机可读介质,所述非暂时性计算机可读介质存储指令,所述指令在由一个或多个处理器执行时致使所述一个或多个处理器执行以下步骤:
基于物理空间的平面布置图来生成布局;
生成对应于要放置在所述物理空间中的多个空间单元的多个空间单元网格;
通过将所述多个空间单元网格中的第一空间单元网格中的拐角单元格与所述布局中的给定的可用单元格进行匹配来识别在所述布局内的所述第一空间单元网格的放置;
基于一个或多个放置参数来生成与所述第一空间单元网格的所述放置相关联的得分,所述放置参数定义包括在所述多个空间单元中并对应于所述第一空间单元网格的第一空间单元的放置约束;以及
基于所述得分来将所述第一空间单元网格放置在所述布局中。
11.如权利要求10所述的一种或多种非暂时性计算机可读介质,其中所述布局包括与第一坐标系相关联的第一单元格网格,并且所述第一空间单元网格与第二坐标系相关联。
12.如权利要求11所述的一种或多种非暂时性计算机可读介质,其中识别所述第一空间单元的所述放置包括将所述第一空间单元网格变换到所述第一坐标系中。
13.如权利要求10所述的一种或多种非暂时性计算机可读介质,所述非暂时性计算机可读介质还包括:
通过将所述第一空间单元网格中的拐角单元格与所述布局中的第二可用单元格进行匹配来识别在所述布局内的所述第一空间单元网格的第二放置;以及
基于所述一个或多个放置参数来生成与所述第一空间单元网格的所述第二放置相关联的第二得分,以及
其中将所述第一空间单元网格放置在所述布局中是基于所述得分与所述第二得分之间的比较。
14.如权利要求10所述的一种或多种非暂时性计算机可读介质,其中将所述第一空间单元网格中的所述拐角单元格与所述布局中的所述给定的可用单元格进行匹配包括在所述布局内移动所述第一空间单元网格,直到所述拐角单元格占用所述布局中的空拐角单元格。
15.如权利要求14所述的一种或多种非暂时性计算机可读介质,其中将所述第一空间单元网格中的所述拐角单元格与所述布局中的所述给定的可用单元格进行匹配还包括在所述拐角单元格占用所述给定的可用单元格时,基于所述第一空间单元网格的边界的位置来确定所述放置是否有效。
16.如权利要求14所述的一种或多种非暂时性计算机可读介质,其中将所述第一空间单元网格中的所述拐角单元格与所述布局中的所述给定的可用单元格进行匹配还包括在所述拐角单元格占用所述给定的可用单元格时,基于所述第一空间单元网格中的另一个单元格是否覆盖所述布局中的被占用单元格来确定所述放置是否有效。
17.如权利要求14所述的一种或多种非暂时性计算机可读介质,其中将所述第一空间单元网格中的所述拐角单元格与所述布局中的所述给定的可用单元格进行匹配还包括在所述拐角单元格占用所述给定的可用单元格时,基于所述第一空间单元网格中的另一个单元格是否在所述布局之外来确定所述放置是否有效。
18.如权利要求10所述的一种或多种非暂时性计算机可读介质,所述非暂时性计算机可读介质还包括:
通过将包括在所述多个空间单元网格中的第二空间单元网格中的第二拐角单元格与所述布局中的第二可用单元格进行匹配来识别在所述布局内的所述第二空间单元网格的第二放置;以及
基于与所述第二空间单元网格相关联的第二组放置参数来生成与所述第二空间单元网格的所述第二放置相关联的第二得分,以及
基于所述第二得分来将所述第二空间单元网格放置在所述布局中。
19.一种计算机系统,所述计算机系统包括:
存储器,所述存储器存储指令;以及
处理器,所述处理器执行所述指令以:
基于物理空间的平面布置图来生成布局;
生成对应于要放置在所述物理空间中的多个空间单元的多个空间单元网格;
通过将所述多个空间单元网格中的第一空间单元网格中的拐角单元格与所述布局中的给定的可用单元格进行匹配来识别在所述布局内的所述第一空间单元网格的放置;
基于一个或多个放置参数来生成与所述第一空间单元网格的所述放置相关联的得分,所述放置参数定义包括在所述多个空间单元中并对应于所述第一空间单元网格的第一空间单元的放置约束;以及
基于所述得分来将所述第一空间单元网格放置在所述布局中。
20.如权利要求19所述的计算机系统,其中将所述第一空间单元网格中的所述拐角单元格与所述布局中的所述给定的可用单元格进行匹配包括在所述布局内移动所述第一空间单元网格,直到所述拐角单元格占用所述布局中的空拐角单元格。
CN202080080109.4A 2019-11-18 2020-11-17 用于创建物理空间的布局的计算机实现的技术 Pending CN114730347A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962937188P 2019-11-18 2019-11-18
US62/937,188 2019-11-18
US17/099,552 US20210150092A1 (en) 2019-11-18 2020-11-16 Computer-implemented techniques for creating layouts for physical spaces
US17/099,552 2020-11-16
PCT/US2020/060863 WO2021101878A1 (en) 2019-11-18 2020-11-17 Computer-implemented techniques for creating layouts for physical spaces

Publications (1)

Publication Number Publication Date
CN114730347A true CN114730347A (zh) 2022-07-08

Family

ID=75909059

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080080109.4A Pending CN114730347A (zh) 2019-11-18 2020-11-17 用于创建物理空间的布局的计算机实现的技术

Country Status (4)

Country Link
US (1) US20210150092A1 (zh)
EP (1) EP4062311A1 (zh)
CN (1) CN114730347A (zh)
WO (1) WO2021101878A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113591197B (zh) * 2021-09-26 2022-01-18 深圳须弥云图空间科技有限公司 在线编辑方法、装置、电子设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11409920B2 (en) * 2016-11-14 2022-08-09 Autodesk, Inc. Generative design for architecture
US11205024B2 (en) * 2017-03-01 2021-12-21 Autodesk, Inc. Techniques for measuring productive congestion within an architectural space
CN110709848A (zh) * 2017-03-10 2020-01-17 帕特克有限公司 智能计划
US20190026401A1 (en) * 2017-07-21 2019-01-24 Autodesk, Inc. Generative space planning in architectural design for efficient design space exploration
WO2020092811A1 (en) * 2018-10-31 2020-05-07 Silverstein Properties, Inc. Systems and methods for generating data-driven optimized architectural design

Also Published As

Publication number Publication date
EP4062311A1 (en) 2022-09-28
US20210150092A1 (en) 2021-05-20
WO2021101878A1 (en) 2021-05-27

Similar Documents

Publication Publication Date Title
JP7280039B2 (ja) 建造物を表現する3dモデルの生成
JP7376233B2 (ja) ピクセルワイズ分類器による2dフロアプランのセマンティックセグメンテーション
US9916411B2 (en) Negative plane usage with a virtual hierarchical layer
Wang et al. Customization and generation of floor plans based on graph transformations
US10748311B1 (en) Generating technical drawings from building information models
US6996790B2 (en) System and method for generating a two-dimensional yield map for a full layout
CN102779358B (zh) 用于设计几何三维建模对象的方法及设备
US20190026402A1 (en) Generative space planning in architectural design for efficient design space exploration
US20210150091A1 (en) Creating viable building designs on complex sites
US11816397B2 (en) Generating designs for multi-family housing projects using rigid body simulations
Perumal New approaches for Delaunay triangulation and optimisation
US20230185984A1 (en) Generating Technical Drawings From Building Information Models
JP6395092B2 (ja) 光環境設計支援装置、光環境設計支援システム、プログラム
US20240202381A1 (en) Customizable reinforcement learning of column placement in structural design
Claessens et al. Spatial zoning for better structural topology design and performance
CN114730347A (zh) 用于创建物理空间的布局的计算机实现的技术
WO2020023811A1 (en) 3d object design synthesis and optimization using existing designs
US20120042235A1 (en) Design support apparatus, design support method, and non-transitory computer-readable medium storing design support program
US10460518B2 (en) Modifying a sub-division model based on the topology of a selection
US11763524B2 (en) Layered meshing for additive manufacturing simulations
US9141743B1 (en) Methods, systems, and articles of manufacture for providing evolving information in generating a physical design with custom connectivity using force models and design space decomposition
JP7313433B2 (ja) Cad(コンピュータ支援設計)モデルに関する反制約の構成及び執行
CN110009742A (zh) 用于有限元素网格修复的系统和方法
Hempel et al. Generating early design alternatives based on formalized requirements and geospatial data
Miller et al. Graph-based approaches to placement of processing element networks on FPGAs for physical model simulation

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination