CAD device with utility element routing and related method
The CAD system addresses the inefficiencies in architectural design by using machine learning to automate the routing of utility systems, optimizing design time and cost through a multi-stage constraint optimization approach.
Patent Information
- Application Number
- JP2025044847
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-04-07
- Filing Date
- 2025-03-19
- Publication Date
- 2025-06-05
AI Technical Summary
Current architectural design processes for building construction are time-consuming and inefficient, particularly in medium to large projects, due to the manual placement and routing of complex utility systems like MEP (Mechanical, Electrical, Plumbing) and industrial power distribution, which require balancing multiple constraints and accommodating frequent design changes.
A CAD system utilizing machine learning techniques, specifically a multi-stage constraint optimization system, to automatically route utility systems in architectural drawings. This system includes modules for geometry pre-processing, rule management, routing, grouping, detailing, and scheduling, leveraging reinforcement learning and graph-based search algorithms to optimize utility element routes while adhering to spatial and regulatory constraints.
The CAD system significantly reduces the time and effort required for designing complex utility systems by automating the routing process, allowing for more efficient evaluation of design options and quicker adaptation to changes, thereby enhancing design efficiency and reducing costs.
Smart Images

Figure 2025085768000001_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure relates to the field of architectural design, and more particularly to computer-aided design and related methods for architectural planning. [Background technology]
[0002] This application is based on a prior application, Application No. 63 / 171702, filed on April 7, 2021, the entire subject matter of which is incorporated herein by reference.
[0003] Modern building construction is a meticulously planned undertaking, with the proverbial map being the architectural drawing or plan. In the 1800s, architectural drawings evolved into blueprints that were easily reproduced. Architectural drawings for modern buildings are complex, including structural elements and multiple utilities. In fact, for a simple single-family home, architectural drawings can consist of 20 or more large, detailed pages.
[0004] Of course, architectural drawings for high-rise buildings or large industrial facilities are geometrically more complex. In fact, for a high-rise building, there can be millions of structural elements. With the advent of computer-aided design (CAD) systems, these complex designs are digitally rendered in three dimensions (3D) and stored in CAD files. In addition, a typical CAD file contains structural data as well as mechanical, electrical, and plumbing (MEP) data, such as the routing of MEP services within the design.
[0005] In general, the CAD device may include a memory configured to store a database including a plurality of CAD elements and a plurality of rules (e.g., routing rules, grouping rules, spacing rules, and restriction rules). The CAD device may include a processor coupled to the memory and configured to generate a plurality of utility element routes for the CAD file based on the routing model and the plurality of rules. Each utility element route may include at least one CAD element from the database. The processor may be configured to display the plurality of utility element routes with the CAD file.
[0006] In particular, the processor may be configured to generate a model for routing that includes a reinforcement learning model, generate a plurality of agents for the reinforcement learning model, each agent associated with a point-to-point route, and generate a reward function based on violations of a plurality of rules. The processor may be configured to generate the reward function based on a plurality of evaluation values. The plurality of evaluation values may include a cost value and a complexity value.
[0007] In some embodiments, the processor may be configured to generate a model for routing including a supervised learning model based on a plurality of input values and a plurality of output values. The plurality of input values may include a supportability value, a complexity value, and a dimensionality value, and the plurality of output values may include a cost value and a maintenance value. The processor may be configured to generate the model for routing based on a plurality of hyperparameters. The plurality of hyperparameters may include, for example, a branching factor and a bending factor.
[0008] Also, the CAD file may include a plurality of elements, and the processor may be configured to process the plurality of elements to generate a plurality of geometric shapes, each geometric shape having, for example, an associated metadata value. The processor may be configured to execute a graph-based search pathfinding algorithm to find a shortest path in the plurality of geometric shapes. The processor may be configured to combine a subset of the plurality of utility element routes into a single utility element route. For example, the plurality of utility element routes may include a piping route, an electrical route, and a mechanical route.
[0009] Another aspect is directed to a method for operating a CAD device. The method may include storing a database including a plurality of CAD elements and a plurality of rules, and generating a plurality of utility element routes for the CAD file based on the routing model and the plurality of rules. Each utility element route may include at least one CAD element from the database. The method may include displaying the plurality of utility element routes with the CAD file. [Brief description of the drawings]
[0010] [Figure 1] 1 is a schematic diagram of a first exemplary embodiment of a CAD system according to the present disclosure. [Diagram 2] FIG. 2 is a schematic diagram of a second exemplary embodiment of a CAD system according to the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0011] CAD-based architectural drawings are common in construction projects. However, design engineers generally must manually place and design each element in the architectural drawing. Furthermore, when inserting routing for utilities like MEP or processes like industrial power distribution / piping, design engineers must balance many concerns like code compliance, construction costs, and maintenance costs, not to mention finding space to route such utilities.
[0012] Design engineers evaluate the demands that each utility subsystem must meet and then manually enter the route each utility subsystem should take individually, using a combination of experience and rule-checking software tools to verify compliance with regulatory standards. This manual process is time-consuming and limits the ability to evaluate multiple options, which may prevent finding the optimal approach.
[0013] In medium to large projects, a large portion of the design time is spent resolving coordination issues and design trade-offs between utility subsystems. In addition, requirements change throughout the project lifecycle: equipment that needs to be routed, equipment that needs power and control, ventilation requirements for different rooms, operating parameters for industrial motors and electrical equipment, etc. With the current design process, accommodating changes during the design phase is time-consuming and costly. As a result, designing MEP and industrial power distribution and piping systems can be a complex, challenging, and time-consuming process.
[0014] The present disclosure may provide an approach to this problem using existing techniques. In particular, the present disclosure may leverage machine learning techniques to automatically route one or more utilities in a CAD architectural drawing. The present disclosure may provide, for example, a multi-stage constraint optimization system implemented as a distributed, cloud-based generative design system.
[0015] The present disclosure will now be described more fully with reference to the accompanying drawings, in which several embodiments of the present invention are shown. However, the present disclosure may be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art. Like numbers refer to like elements throughout, and base 100 reference numbers are used to indicate like elements in alternative embodiments.
[0016] 1, a CAD system 100 according to the present disclosure is described. In particular, the CAD system 100 illustratively includes an ingestion module 101 configured to ingest a CAD file 102 having a building design. The CAD file 102 may be rendered into the building design and potential utility elements within the CAD software, which may be locally or cloud-hosted.
[0017] The ingestion module 101 is configured to determine system requirements for a building design. The system requirements include a set of spatial constraints and related information associated with the utility system to be designed. This information includes not only the complete set of system requirements, but also existing parts of the solution that the system must preserve when generating a new solution. In other words, parts of the utility were pre-designed and can no longer be changed. This property is intended to enable the CAD system 100 to be used when new information that was not available at design time (e.g., the location of immovable structural elements with which the system may collide) requires a design change (i.e., a change order) of a partially built system / construction schedule.
[0018] The information set is obtained from two data sources. The first data source includes a CAD integration module 103 that includes a set of tools that run directly within the host CAD application as a software add-in. This software add-in allows the configuration of spatial constraints that affect the routing and placement of systems. In this configuration, the CAD project file stores all or part of the required system requirements information. When preparing the project for routing design generation, the software add-in identifies all relevant geometry and related Building Information Modeling (BIM) information required for routing. The CAD integration module 103 is configured to output and upload this data to cloud storage before initiating the geometry pre-processing components described herein. In other embodiments, the CAD file 102 can be uploaded to the CAD system 100 outside of a typical CAD software interface.
[0019] In some embodiments, CAD system 100 may operate without a standalone host CAD application. For example, CAD system 100 may be configured to provide CAD application functionality natively (e.g., in a cloud infrastructure or a remote server) and provide spatial and non-spatial constraints and rules for subsequent routing via the native CAD application functionality.
[0020] The second data source consists of a requirements database 104 that provides the remaining system requirements information needed to determine system sizing and specification. This requirements database 104 is obtained from an existing external database using an application programming interface (API). In some embodiments, the requirements database 104 may be integrated and accessed internally. In this embodiment, the requirements database 104 is accessible to the user using a dedicated user interface.
[0021] CAD system 100 illustratively includes a parts database 105 configured to store a number of CAD elements, which may include a collection of available system parts, including metadata such as 3D models, manufacturer-specific identifiers, prices, labor costs, etc. Portions of this data that may change more frequently or vary from project to project (e.g., price, regulatory compliance, etc.) may be stored in another database or obtained from referenced external data sources to facilitate more frequent updates.
[0022] The CAD system 100 illustratively includes a geometry pre-processing module 106 configured to generate a model for routing based on the CAD file 102 and a number of CAD elements. In particular, the geometry pre-processing module 106 is configured to convert geometry project information, such as structure, process and trade geometry, BIM information, point cloud data, and routing zones, into a unified format usable by the CAD system 100.
[0023] The input of the Geometry Pre-Processing module 106 includes geometric shapes representing each element in the site model, along with information about the type and material of each element. In addition, the input includes a mesh (e.g., a triangular mesh) representing an area of the site that needs to be aligned along a non-standard reference axis. The site mesh is converted into specialized data structures for efficient spatial queries, such as a dense uniform grid that stores multiple values, including signed or unsigned distance fields (SDFs), and information about what type of support structures are available at each location on the site.
[0024] In other embodiments, other data structures may be used to store this data, such as sparse grids based on different spatial partitioning schemes (e.g., octrees). Queries on these data structures are not only related to the type of support structure, but more generally to volumes to which certain rules / constraints apply for efficient querying and updating as the generation process progresses.
[0025] The CAD system 100 illustratively includes a rules module 107 (i.e., a constraint management system module) configured to access a plurality of rules. In some embodiments, the plurality of rules are stored in the rules module 107, but in the illustrated embodiment, the CAD system includes a rules database 108 configured to store the plurality of rules. In particular, the rules module 107 is configured to allow a user to specify constraints to be applied during the routing generation process. These constraints can come from many sources, such as government-mandated local industry rules and regulations, industry best practices, and client specifications. Rules can be applied to specific portions / areas of a site, referred to as a scope. In some embodiments, once all information related to the system requirements information is collected, the project data is uploaded to cloud storage, followed by a request to a distributed task execution system to initiate a design generation pipeline (DGP). The DGP includes routing, grouping, detailing, scheduling, and optimization modules 109.
[0026] CAD system 100 illustratively includes a distribution module 110. Distribution module 110 is configured to perform selection and allocation of basic system distribution components required to satisfy system requirements based on requirements specified at the system endpoints.
[0027] The CAD system 100 illustratively includes a routing module 111 configured to generate one or more utility element routes for the CAD file 102 based on the routing model and a number of rules. The routing module 111 is configured to generate one or more utility element routes for the CAD file 102 sequentially or simultaneously (i.e., in parallel). For example, each utility element route may include a piping route, an electrical route, or a mechanical route (i.e., MEP route). As described herein, each utility element route may include many varying individual elements, such as piping, conduits, ducts, and other active components.
[0028] In some embodiments, a subset of one or more utility element routes for the CAD file 102 may be immutable or locked by a user due to design requirements. The routing module 111 is configured to generate one or more utility element routes for movable utility element routes while keeping the subset locked. For example, in some applications, there may be utility element routes required by a client. Here, the routing module 111 starts with the required routes in place and finds a solution to connect the utility element routes.
[0029] Of course, the utility element routes include: power supply and distribution, information and communication systems, control systems, security access systems, detection and alarm systems, indoor and outdoor lighting, heating and cooling, wastewater removal, drinking cold and hot water supply, water collection and treatment systems, storm water, above and below ground drainage, fuel gas piping, industrial water circuits, hydraulic systems, other liquids (e.g. petroleum, hydrogen, liquefied petroleum gas, other chemicals, etc.), industrial compressed air, industrial vacuum, other gases (CO 2 , helium, oxygen, etc.), ventilation / air conditioning control, exhaust gases, and extreme / special air conditioning control.
[0030] The geometry pre-processing module 106 is configured to send the data structure to a routing module 111. The routing module 111 is configured to perform a search process to find suitable areas of the site for routing the system based on a set of process hyperparameters, such as, for example, branching and bending factors. Of course, the hyperparameters may include additional hyperparameters. The set of process hyperparameters defines the parametric space of the routing module 111. The routing module 111 is configured to additionally identify portions of the system, such as continuous portions of straight and pooled piping, that can be segmented and extracted for off-site prefabrication / assembly.
[0031] In some embodiments, a user may influence the routing module 111 at a high level by providing information regarding certain areas of the site (zones) that the routing module must traverse (must route zones), may traverse even if the zone contains solid walls (may route zones), and should avoid traversing at all costs (no route zones). The routing module 111 may also be configured to incorporate parameters that influence a more assembly friendly design.
[0032] CAD system 100 illustratively includes a grouping module 112 configured to calculate appropriate sizes of utility elements and programmatically aggregate multiple routes together if multiple subsystems can be transported by a single carrier. In other words, if a subset of utility element routes can be consolidated into one route, grouping module 112 is configured to do so.
[0033] The CAD system 100 illustratively includes a detailing module 113 configured to spatially arrange paths for exhaustively determinable system segments, including specific couplings, joints, and required structural supports. The detailing module 113 is also configured to use information from the routing module 111 to separately generate portions of the system identified to be prefabricated / assembled off-site. The CAD system 100 also includes a scheduling module 114 configured to generate a complete work schedule based on specific construction order requirements with the goal of minimizing overall construction time and required resources. In the illustrated embodiment, the optimization module 109 encompasses a distribution module 110, a routing module 111, a grouping module 112, a detailing module 113, and a scheduling module 114.
[0034] CAD system 100 illustratively includes an output module 115 configured to display one or more utility element routes along with CAD file 102. In some embodiments, output module 115 includes a visualization module 116 configured to generate visualizations and comparisons of multiple alternative solutions to the MEP system design problem, and a recognition module 117 configured to output the design solution to an external CAD tool and / or database or merge the utility design into an existing external CAD tool database.
[0035] In some embodiments, the CAD system 100 may include an evaluator module having a set of components for evaluating individual designs generating scalar or vector values such as material cost, construction cost, construction time, construction requirements, maintainability, etc. In short, the evaluator module is configured to quantify performance aspects of the utility and / or building designs of the CAD file 102. The CAD system 100 may also include an optimization module configured to perform a multi-objective optimization on the parametric space described herein above according to one or more evaluation criteria provided by the evaluator module.
[0036] The CAD system 100 uses a constrained multi-stage optimization workflow to generate a large amount of diverse and reliable training data. It then uses machine learning to train multiple models to accelerate the solution of the design problem. In particular, reinforcement learning (RL) is used to accelerate the generation of constrained solutions in the routing module 111, the grouping module 112, and the refinement module 113.
[0037] More specifically, the RL model uses agents that represent the task of the routing module 111, which is to find an appropriate solution to the multi-routing problem. Each agent can be responsible for one point-to-point route, and generates parts of each route simultaneously. The state space of each agent at each time step includes the end points of its own route, the partial route solutions, information about all other partially generated routes, and the geometry of the entire site. The decision space is which part to choose next (e.g., straight pipe, bend, pull point), the configuration of the part (e.g., length of pipe, degree of bend), the opportunity to merge routes with other agents, and the opportunity to split a common route from the pool of agents. The reward function is a combination of the satisfaction or violation of constraints and other evaluation factors (cost, construction time, etc.). For example, the internal representation of the decision-making model is a Deep Convolutional Neural Network. The system also provides a surrogate model for the entire design generation procedure, allowing the outer global optimization process to sample more efficiently.
[0038] Deep learning is used to replace components of evaluator modules with surrogate models for the evaluation of individual designs. One example is the maintainability evaluator. A computational maintainability evaluator samples geometry using techniques such as ray tracing and calculates reachability, overall height, and other factors to arrive at an overall score. A machine learning evaluator evaluates parts of a design using a 3D convolutional neural network and assigns a score based on recognizable features. The input includes 3D voxelized geometry, with labels describing the type of geometry present in each voxel, and the output is a single real-valued score. A training dataset is generated using the computational evaluator and additional user-specified information.
[0039] In some embodiments, CAD system 100 can provide multi-disciplinary systems design by using multiple modules simultaneously, for example, designing mechanical and electrical systems, or complete mechanical, electrical and plumbing simultaneously, while in other embodiments, CAD system 100 can operate only on individual systems (i.e., rendering only electrical, only mechanical, or only plumbing).
[0040] It should be understood that the geometry pre-processing module 106, the rules module 107, the distribution module 110, the routing module 111, the grouping module 112, the refinement module 113, the scheduling module 114, and the output module 115 may all be deployed on a single standalone computing device or multiple standalone computing devices, in other embodiments, these modules may all be deployed on a cloud computing platform (CCP) such as Amazon Web Services, Google Cloud Platform, or Microsoft Azure.
[0041] In applications where routing is performed remotely and CAD software runs on a local computing device, the CAD software may work in conjunction with a plug-in software conduit to the remote system. In particular, the ingestion module 101 and the output module 115 may be included in the plug-in software conduit.
[0042] In the following, a method for generating an electrical utility element route in the CAD system 100 is described in more detail. More specifically, the ingestion module 101 is configured to generate system requirements. The system requirements may include a complete electrical schematic system diagram (e.g., as part of a process flow diagram (PFD) or piping and instrumentation diagram (P&ID)), site area available for electrical rooms, details of electrical system requirements such as sources and loads, such as tags, motor horsepower, starter type, and voltage and wiring specifications.
[0043] The parts database 105 illustratively contains a collection of all electrical and mechanical parts available to the generative design system, such as conduits, cable trays, fasteners, couplings, fittings, switches, and parts of support structures. The rules module 107 is configured to derive encoded constraints and rules from applicable local legal regulations, such as the National Electrical Code (NEC), and supplement them with additional ones extracted from industry best practices and typical client requirements.
[0044] The distribution module 110 is configured to select and assign to racks the motor control centers (MCCs) and programmable logic controllers (PLCs) for controlling the entire electrical system based on the equipment that needs power supply / control. Once the racks are configured, space is assigned to electrical rooms. The electrical rooms are appropriately located on the site. The distribution module 110 is also responsible for the assignment of wiring endpoints (such as lighting fixtures), and transition points, for example, between basement and ground, in-wall slab and out-wall slab.
[0045] The routing module 111 uses a graph-based search pathfinding algorithm (e.g., A * ) is configured to run. * As part of the pathfinding task, the routing module 111 can use the ML model to estimate a cost function between points of the graph grid and provide an estimate of the value of each graph grid point for the route destination. In one embodiment, Manhattan distance is used as an approximation of the remaining distance / cost to the destination.
[0046] In some embodiments, a 3D CNN using a coarse representation of the site geometry and overall site complexity as input may provide better estimation, taking into account the presence of coarse obstacles and wireable / supportable regions. Model inputs may include supportability type, SDF values, number of cables routed, site dimensions, etc. for each grid point. Model outputs may include component / construction cost values, maintainability score values. A training set for this model may be synthetically generated using a conventional computational pipeline, using a variety of test sites. In some embodiments, solution generation is similar to the RL approach described above in this specification.
[0047] Paths may originate at MCCs and PLCs and terminate at the location of any electrical device within the site. The routing module 111 selects supportable paths since the geometry preprocessing module 106 provides SDFs representing the structural and, optionally, mechanical and piping properties of the site, annotated with supportability information. The routing module 111 is configured to select one device to route at a time and run the pathfinder algorithm sequentially. In other embodiments, the routing module 111 is configured to route one or more devices simultaneously with the pathfinder algorithm. All paths are organized into a set of connected segments, called raceway segments, defined as bounding boxes that contain the same cables. Each raceway segment is annotated with all constraints that the components must respect.
[0048] The grouping module 112 is configured to determine the size of the raceway relative to the cables and assign sets of devices and required cables to groups that share the raceway. The objective of the grouping module 112 is to create a solution that minimizes project costs, adheres to NEC rules, adheres to user-set constraints, and is installable. First, the conductors are partitioned into mutually exclusive sets such that conductors in each set are allowed to share a raceway with any conductor in the same set, but not with any other set. Then, for each set of conductors, an optimization algorithm finds the optimal grouping of conductors that minimizes the cost. To evaluate the cost of the grouping, the conductor and raceway segments are sized according to the associated constraints.
[0049] The detailing module 113 is configured to assemble racks of raceways from generic component families in raceway segments. The detailing module 113 is configured to determine ideal arrangements of the raceways in the segments, called compartment layouts. Compartments contain subsections of the raceways in the segments that can be grouped. The detailing module 113 is configured to place all necessary fittings, including couplings, unions, conduit bodies, elbows, and supports along the length of the raceway network while attaching them to surrounding geometry in the model.
[0050] The compartment layout determines the placement of conduits and trays within the same rack. Raceway locations are selected to avoid collisions when exiting the rack and to fit within the available space. Once the raceway segment layout is determined, the geometry of the segments and compartment layout is analyzed, especially for fitting placement. Components (e.g., conduit rods, conduit bodies, trays) are selected, sized, and placed taking into account user-defined and electrical code constraints. Topological relationships between components are explicitly represented at this stage.
[0051] In particular, the first step for support placement is to identify the location of each support. Supports must be placed in accordance with building and electrical codes and user-defined constraints, such as before and after each bend, and a minimum of X feet apart, where X is a user-configurable parameter. Once the support locations are selected, the specific type of support to be placed is determined, such as "swing", "floor stand", "standoff", etc. For example, the specific type of support is determined from the support specification, which is a prioritized list of supports, with each type of support corresponding to a specific scenario, such as vertical vs. horizontal running racks.
[0052] Finally, once the support type and location have been selected, the support itself can be placed. Each type of support has its own parametric model, which takes as input the support's location, orientation, and segments / sections. These parametric models are used to calculate the specific locations and movements of each component within the support, such as rods, nuts, bolts, cross members, etc. Each of these components is output to an output module 115.
[0053] For example, rules and constraints may vary across sites to comply with specific hazard requirements. The scheduling module 114 is configured to define the full set of construction tasks required to assemble the electrical system, estimate the time and resources required to complete each task, and enforce construction sequence dependencies that limit the number of tasks that can be performed simultaneously. The evaluator module may provide evaluation metrics such as, for example, cable pulling tension, cable bending tension, material cost, construction cost, construction time, maintainability, etc.
[0054] In the following, a method for generating piping utility element routes in the CAD system 100 is described in more detail. It should be understood that features from the method for generating electrical utility element routes described above may be incorporated into this method. The system requirements may include details of the piping system requirements such as a complete piping schematic system diagram (e.g., PFD or P&ID), locations of the main fluid / gas reservoirs, types of fluids / gases to be transported, required flow characteristics (i.e., pressure, flow rate) and locations of sources and sinks, thermal requirements for thermal expansion / contraction of the piping network, and vibration profiles for system fatigue analysis.
[0055] The parts database 105 illustratively includes all mechanical parts available to the generative design system, such as sections of pipe, valves, flow regulators, pumps, etc. The rules module 107 is configured to derive encoded constraints and rules from the Uniform Plumbing Code (UPC) and supplement them with additional ones extracted from industry best practices and typical client requirements. The distribution module 110 is configured to place pumps, size sinks, select and allocate within a site, and group into mechanical rooms, which are then appropriately located within the premises.
[0056] The routing module 111 is configured to execute a graph-based exploratory pathfinding algorithm to find the shortest path in the discretized grid generated by the geometry preprocessing module 106. A piping route may originate from a particular source and terminate at any designated sink within the site. The SDF representing the structural and optionally mechanical and electrical properties of the site is provided by the geometry preprocessing module 106 and annotated with supportability information, so that the routing module 111 selects a supportable path. The routing module 111 may be configured to select one duct to route at the time and execute the pathfinder algorithm sequentially, or may be configured to select multiple routes in parallel or simultaneously.
[0057] In some embodiments, some of the routes include "in-slab" or "in-wall" conduit routing immersed in the concrete structure. In-slab and in-wall routes of a piping system involve positioning a portion of flexible conduit within the reinforcing armature of a concrete structure before the concrete is poured. Flexible conduits allow more freedom of positioning than rigid conduits, but they take space and volume from the solid concrete material, weakening the reinforced concrete structure. This introduces an additional engineering requirement: at no point in the slab is the density of conduits per unit volume greater than a predefined threshold. This special case requires a dedicated route and associated data structure. A method was devised to represent flexible conduits as spline curves and the interior volume of a concrete slab as a 3D density function, represented as a uniform sparse grid. The route mechanism places splines connecting all the end points of conduits penetrating the slab, and assigns each grid cell a density value proportional to the amount and size of conduits intersecting that cell. The optimization procedure moves the control points of the spline so that the density of conduits at every point in the grid exceeds a threshold value.
[0058] In other embodiments, the routing module 111 is configured to route one or more ducts simultaneously with the pathfinder algorithm. The ducts may be aggregated into trees of larger capacity ducts and / or joined together into sets of connected duct segments, defined as bounding boxes continuing the same duct. Each segment is annotated with all constraints that the components must respect.
[0059] For this application, the grouping module 112 calculates the correct sizing of pipes in the utility system so that the proper flow rate is achieved. The detailing module 113 is configured to assemble racks of pipes of common component families into segments, as needed. The system determines the ideal arrangement of pipes within the segments, called the section layout. The detailing module 113 then places all necessary fittings, including couplings, unions, pipes, and elbows. The detailing module 113 then places appropriate supports along the length of the piping network and attaches them to the surrounding geometry in the model.
[0060] The compartment layout determines the placement of pipes and trays within the same rack. The location of the piping system is selected to avoid collisions when branching out of the rack and to fit within the available space. For joint placement, once the segment layout is determined, the geometry of the segment and compartment layout is analyzed. Components (pipes, trays, etc.) are selected, sized, and placed considering user-defined and piping code constraints. Topological relationships between components are explicitly represented at this stage. For support placement, the first step in support placement is to identify the location of each support. Supports need to be placed before and after each joint at regular intervals. Once the support locations are determined, the specific type of support to be placed is determined, such as "swing", "floor stand", "standoff", etc. The specific type of support is determined from the support specification, which is a prioritized list of supports, and each type of support corresponds to a specific scenario, such as vertical and horizontal running racks.
[0061] Finally, once the support type and location have been selected, the support itself can be placed. Each type of support has its own parametric model that takes as input the location, orientation, and segment / section of the support. These parametric models calculate the specific locations and movements of each component within the support, such as rods, nuts, bolts, cross members, etc. Each of these components is output to the Recognition module 117. The Detailing module 113 is configured to account for different sets of constraints that are in place at different parts of the site. For example, rules and constraints may differ across the site to comply with specific hazard requirements.
[0062] The scheduling module 114 is configured to define the full set of construction tasks required to assemble the piping system, estimate the time and resources required to complete each task, and enforce construction sequence dependencies that limit the number of tasks that can be performed simultaneously. The evaluator module may provide evaluation metrics such as pressure drop, thermo-mechanical analysis, material cost, construction cost, construction time, internal flow computational fluid dynamics for maintainability, etc.
[0063] Machine learning can be used as a surrogate model for computational fluid dynamics (CFD) and thermal simulation. For example, the structure and critical dimensions of the topology of a duct system can be encoded as a graph neural network and trained with an appropriate dataset generated by traditional CFD and thermal analysis. The dataset includes tuples such as the graph structure of the HVAC system and vectors of boundary conditions (e.g., system inlet temperature and pressure at the output of the air handling unit) as input data, and the corresponding measurements of all system outlet temperatures and pressures, pre-evaluated using CFD and thermal simulation, as output data.
[0064] Below, a method for generating mechanical (e.g., airflow mechanical) utility element routes in the CAD system 100 is described in more detail. It should be understood that features from the method for generating electrical utility element routes described above and the method for generating plumbing utility element routes described above may be incorporated into this method, and vice versa. System requirements may include a complete heating, ventilation, and air conditioning (HVAC) schematic system diagram, heating and cooling loads, locations of furnaces, air filtration, humidification and dehumidification units, and air handlers, required flow characteristics (pressure, flow), and locations of inlets, outlets, registers, and diffusers.
[0065] The parts database 105 contains all the mechanical parts available to the generative design system, such as ducts, fans, blowers, preheaters, furnaces, coolers, dampers, inlets, and parts of exhausts. The rules module 107 is configured to derive coded constraints and rules from ASHRAE Standard 90.1 and supplement them with additional ones extracted from industry best practices and typical client requirements. The distribution module 110 is configured to size, select, and place on the site the furnaces, preheaters, heaters, coolers, and blowers, and group them into mechanical rooms, which are then appropriately placed on the site.
[0066] The routing module 111 is configured to route duct paths feeding from mechanical rooms and terminating at any designated area within the site. The SDF representing the structural and optionally piping and electrical characteristics of the site is provided by the geometry preprocessing module 106 and annotated with supportability information so that the routing module 111 selects supportable routes. The routing module 111 is configured to select one duct to route at a time (alternatively simultaneously or in parallel) and run a pathfinder algorithm. The ducts are aggregated into trees of larger capacity ducts and / or into sets of connected duct segments, defined as bounding boxes continuing the same duct. Each segment is annotated with all constraints that the components must respect.
[0067] In this application, the grouping module 112 calculates the correct sizing of ducts in a utility system to achieve the proper airflow rate. The detailing module 113 is configured to assemble racks of ducts of common component families into segments, as needed. The detailing module 113 is configured to determine an ideal arrangement of ducts within the segments, called a section layout. The detailing module 113 is then configured to place all necessary fittings, including couplings, unions, and elbows. The detailing module 113 is then configured to place appropriate supports along the length of the piping network and attach them to surrounding features in the model.
[0068] The compartment layout determines the placement of ducts and trays within the same rack. The location of the duct system is selected to avoid collisions when branching out from the rack and to fit within the available space. For fitting placement, once the segment layout is determined, the geometry of the segment and compartment layout is analyzed. Components (ducts, vents, etc.) are selected, sized, and placed considering user-defined and mechanical code constraints. Topological relationships between components are explicitly represented at this stage. For support placement, the first step in support placement is to identify the location of each support. Supports need to be placed at regular intervals, before and after each joint. Once the support locations are determined, the specific type of support to be placed, such as a "trapeze", is determined. The specific type of support is determined from the support specification, which is a prioritized list of supports, and each type of support corresponds to a specific scenario, such as vertical and horizontal running racks.
[0069] Finally, once the support type and location have been selected, the support itself can be placed. Each type of support has its own parametric model that takes as input the location, orientation, and segments / sections of the support. These parametric models calculate the specific locations and movements of each component within the support, such as rods, nuts, bolts, cross members, etc. Each of these components is output to the recognition module 117.
[0070] For example, rules and constraints may vary across sites to adhere to specific hazard requirements. The scheduling module 114 is configured to define the complete set of construction tasks required to assemble the HVAC system, estimate the time and resources required to complete each task, and enforce construction sequence dependencies that limit the number of tasks that can be performed simultaneously. The evaluator module may provide evaluation metrics such as, for example, pressure drop, air flow, thermo-mechanical analysis, computational fluid dynamics for material cost, construction cost, construction time, maintainability, etc.
[0071] It should be understood that the features and machine learning concepts applied to any of the routing applications described above (i.e., mechanical utility routing, electrical utility routing, and plumbing utility routing) are applicable to other routing applications as well. Additionally, features of any of the embodiments disclosed herein may be combined with other embodiments.
[0072] Another embodiment of CAD system 200 is now described with additional reference to Fig. 2. In this embodiment of CAD system 200, those system requirements already described above with respect to Fig. 1 are incremented by 100 and in most cases do not need to be further described here. It should be understood that any feature from CAD system 100 described above can be integrated with CAD system 200.
[0073] The CAD system 200 illustratively includes a CAD device 220 and a computing device 221 that communicates with the CAD device via a network (not shown, e.g., a local area network or the Internet). The computing device 221 illustratively includes a personal computing device, but may also be, for example, a mobile computing device or a tablet computing device.
[0074] In the illustrated embodiment, computing device 221 is configured to upload CAD file 202 to CAD device 220 for further processing. Also in this embodiment, CAD device 220 is configured to run native CAD software for rendering and viewing CAD file 202. A visual output of the rendering of CAD file 202 is sent to computing device 221 for display on a local display device.
[0075] In another embodiment (see FIG. 1), computing device 221 is configured to run CAD software locally and upload CAD files 202 to CAD device 220 for processing. Computing device 221 may communicate with CAD device 220 to execute a plug-in associated with the local CAD software.
[0076] The CAD device 220 illustratively includes a memory 222 configured to store a database including a plurality of CAD elements and a plurality of rules. In particular, the plurality of rules may include routing rules, grouping rules, spacing rules, and regulatory rules (e.g., rules describing a compliant MEP system according to standard engineering codes such as NEC, ASHRAE, etc.). The CAD device 220 illustratively includes a processor 223 coupled to the memory 222 and configured to generate a model for routing based on at least the plurality of rules.
[0077] The model for routing may include a machine learning model in some embodiments. Further, the machine learning model may be initially trained, for example, by a supervised learning process, using example routing instances that rely on a number of rules.
[0078] In some embodiments, the CAD device 220 may include a standalone computing device, such as a server device. In other embodiments, the CAD device 220 may include resources on a cloud computing platform. The processor 223 is configured to generate a plurality of utility element routes for the CAD file 202 based on the routing model and a plurality of rules. Each utility element route includes at least one CAD element from the database. In other words, the processor 223 is configured to complete the utility element route from a point-to-point route using a parts bin from the database, as described herein above. The processor 223 is configured to display the plurality of utility element routes with the CAD file 202 on the computing device 221.
[0079] In particular, the processor 223 is configured to generate a machine learning model including an RL model, generate a plurality of agents for a reinforcement learning model, each agent associated with a point-to-point route, and generate a reward function based on violations of a plurality of rules. The processor 223 is configured to generate the reward function based on a plurality of evaluation values. The plurality of evaluation values include, for example, a cost value and a complexity value.
[0080] In some embodiments, the processor 223 is configured to generate a machine learning model, including a supervised learning model, based on a plurality of input values and a plurality of output values. The plurality of input values include, for example, a supportability value, a complexity value, and a dimensionality value. The plurality of output values include, for example, a cost value and a maintenance value. The processor 223 is configured to generate a machine learning model for routing based on a plurality of hyperparameters. For example, in some embodiments, the plurality of hyperparameters include a branching factor and a bending factor.
[0081] The CAD file 202 also includes a plurality of elements. In some embodiments, the processor 223 is configured to process the plurality of elements to generate a plurality of geometric shapes, each having associated metadata values (e.g., material properties, shape identification properties such as "wall", "column", "floor", and other such data). For example, the plurality of geometric shapes may include a plurality of triangular meshes. In other embodiments, this information may be represented by other CAD / BIM data formats (i.e., according to the Industry Foundation Classes standard), which may also be used by the system as a representation of the site geometry.
[0082] The processor 223 may execute a graph-based search path finding algorithm (e.g., * ) to find shortest paths in the multiple geometric shapes. The processor 223 is configured to combine a subset of the multiple utility element routes into a single utility element route. For example, the multiple utility element routes may include piping routes, electrical routes, and mechanical routes.
[0083] Another aspect is directed to a method for operating the CAD device 220. The method includes storing a database including a plurality of CAD elements and a plurality of rules, and generating a machine learning model for routing based on the CAD file 202 and the plurality of CAD elements. The method further includes generating a plurality of utility element routes for the CAD file 202 based on the machine learning model for routing and the plurality of rules, each utility element route including at least one CAD element from the database, and displaying the plurality of utility element routes with the CAD file.
[0084] Many modifications and other embodiments of the present disclosure will come to mind to one skilled in the art having the benefit of the teachings presented in the foregoing descriptions and the associated drawings, and it is understood that the disclosure is not limited to the specific embodiments disclosed, and that modifications and embodiments are intended to be included within the scope of the appended claims.
Claims
1. 1. A computer-aided design (CAD) device, comprising: a memory configured to store a database comprising a plurality of CAD elements and a plurality of rules; a processor coupled to the memory, generating a plurality of utility element routes for the CAD file based on a plurality of machine learning models for routing and the plurality of rules, each utility element route comprising at least one CAD element from the database; combining a subset of the plurality of utility element routes into a single utility element route; displaying the plurality of utility element routes together with the CAD file; the processor configured to A CAD device comprising:
2. The CAD apparatus of claim 1 , wherein the processor is configured to generate a plurality of machine learning models for the routing comprising neural networks configured to evaluate portions of a design and assign scores.
3. The CAD apparatus of claim 2 , wherein the plurality of machine learning models for routing comprises deep learning models.
4. 2. The CAD apparatus of claim 1, wherein the processor is configured to generate a plurality of machine learning models for the routing comprising a reinforcement learning model, generate a plurality of agents for the reinforcement learning models, each agent associated with a point-to-point route, and generate a reward function based on violations of the plurality of rules.
5. The CAD apparatus of claim 4 , wherein the processor is configured to generate the reward function based on a plurality of evaluation values, the plurality of evaluation values comprising a cost value and a complexity value.
6. The CAD apparatus of claim 1 , wherein the processor is configured to train the plurality of machine learning models using reinforcement learning.
7. 2. The CAD apparatus of claim 1, wherein the processor is configured to generate a plurality of machine learning models for the routing, each of which comprises a supervised learning model, based on a plurality of input values and a plurality of output values, the plurality of input values comprising a supportability value, a complexity value, and a dimensionality value, and the plurality of output values comprising a cost value and a maintenance value.
8. The CAD apparatus of claim 1 , wherein the processor is configured to generate a plurality of machine learning models for the routing based on a plurality of hyperparameters, the plurality of hyperparameters including a branching factor and a bending factor.
9. 2. The CAD device of claim 1, wherein the CAD file is comprised of a plurality of elements, and the processor is configured to process the plurality of elements to generate a plurality of geometric shapes, each geometric shape having an associated metadata value.
10. The CAD apparatus of claim 9 , wherein the processor is configured to execute a graph-based search pathfinding algorithm to find a shortest path in the plurality of geometric shapes.
11. 2. The CAD apparatus of claim 1, wherein the single utility element route comprises one of a pipe segment, a raceway segment, and a duct segment, and the subset of the plurality of utility element routes comprises one of a subset of piping routes, a subset of electrical routes, and a subset of mechanical routes.
12. The CAD apparatus of claim 1 , wherein the plurality of utility element routes comprises piping routes, electrical routes, and mechanical routes.
13. 1. A method of operating a computer-aided design (CAD) device, comprising: storing a database comprising a plurality of CAD elements and a plurality of rules; generating a plurality of utility element routes for a CAD file based on a plurality of machine learning models and the plurality of rules for routing, each utility element route comprising at least one CAD element from the database; combining a subset of the plurality of utility element routes into a single utility element route; displaying the plurality of utility element routes along with the CAD file; A method comprising:
14. 14. The method of claim 13, further comprising generating a plurality of machine learning models for the routing comprising convolutional neural networks configured to evaluate portions of a design and assign scores.
15. The method of claim 14 , wherein the plurality of machine learning models for routing comprises deep learning models.
16. 14. The method of claim 13, further comprising: generating a plurality of machine learning models for routing with a reinforcement learning model; generating a plurality of agents for the reinforcement learning models, each agent being associated with a point-to-point route; and generating a reward function based on violations of the plurality of rules.
17. 20. The method of claim 16, further comprising generating the reward function based on a plurality of evaluation values, the plurality of evaluation values comprising a cost value and a complexity value.
18. 14. The method of claim 13, further comprising: generating a plurality of machine learning models of the routing model comprising a supervised learning model based on a plurality of input values and a plurality of output values, the plurality of input values comprising a supportability value, a complexity value, and a dimensionality value, and the plurality of output values comprising a cost value and a maintenance value.
19. The method of claim 13 , further comprising the processor training the plurality of machine learning models using reinforcement learning.
20. 14. The method of claim 13, further comprising: generating a plurality of machine learning models for the routing based on a plurality of hyperparameters, the plurality of hyperparameters comprising a branching factor and a bending factor.
Citation Information
Patent Citations
Specification-based routing for utility network systems
JP2009524887A
Automated MEP design
US20150186558A1
Predicting user Desirability of a Constructional Connection in a Building Information Model
US20190026403A1