IP Library Granted Patent US 12,327,069
Granted Patent B2
US 12,327,069 · App. 17/409,788 · Granted Jun 10, 2025

Spool run route finding in CAD systems

Inventors: Jason Faulkner (Atlanta, GA); Xiao Chun Yao (Marietta, GA)
Assignee: Evolve MEP, LLC
G06F30/12G06F3/0482
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,327,069
App. No.
17/409,788
Granted
Jun 10, 2025
Kind
B2
Abstract

A system can receive selection of endpoints for a spool on a graphical user interface (“GUI”) and attempt to assemble a spool based on the endpoints. To do so, a plugin can execute a route-finding process that traverses routes from the endpoints. The routes can be determined by retrieving connectors from the endpoints and, for each connector, determining what parts are connected. For each connected part, the process can repeat so long as the connected part is not one of the endpoints or already in another route or spool. When the routes are complete, the connected parts can be treated as an assembly of the spool. The GUI can generate a spool sheet that uses the assembly as the spool.

Claims (58)

1. A method for spool run route finding, comprising:

receiving selection of endpoints for a spool on a graphical user interface (“GUI”);

traversing routes from the endpoints, wherein the routes are determined by at least:

retrieving connectors from the endpoints;

for each connector, determining what parts are connected, wherein determining what parts are connected includes determining if parts connected to the connector also comply with part criteria of the spool, wherein parts that do not meet the criteria are not included as connected parts;

when a connected part is not one of the endpoints or already in another route, repeating the retrieving connectors step for the connected part and determining additional connected parts;

when the connected part is one of the endpoints or has no connectors, ending the respective route;

when the routes have ended, including the connected parts in an assembly; and

generating, on the GUI, a spool sheet that includes the assembly as the spool.

2. The method of claim 1 , wherein determining what parts are connected includes identifying a part as belonging to a different spool and, as a result, treating the part as not connected to the connector.

3. The method of claim 1 , wherein a plugin causes the GUI to receive the selection of endpoints based on a plugin function to determine the spool, wherein the GUI is part of a computer-aided design (“CAD”) application that communicates with the plugin, and wherein retrieving connectors from the endpoints is based on an application programming interface (“API”) call from the plugin to the CAD application.

4. The method of claim 1 , further comprising:

based on the routes ending, determining that a first endpoint cannot connect with another endpoint; and

generating, on the GUI, an error condition that indicates the first endpoint is not connected.

5. The method of claim 4 , wherein the first endpoint is not included in the assembly, wherein a second endpoint is included in the assembly, and wherein the second endpoint does connect with another endpoint based on the traversed routes.

6. The method of claim 1 , further comprising:

prompting the user to select an additional endpoint on the GUI;

performing the traversing routes step for the additional endpoint, resulting in an additional route that connects to at least one of the ended routes; and

including the additional endpoint and parts within the additional route in the assembly.

7. A non-transitory, computer-readable medium containing instructions for spool run route finding, wherein a processor executes the instructions to perform stages comprising:

receiving selection of endpoints for a spool on a graphical user interface (“GUI”);

traversing routes from the endpoints, wherein the routes are determined by at least:

retrieving connectors from the endpoints;

for each connector, determining what parts are connected;

when a connected part is not one of the endpoints or already in another route, repeating the retrieving connectors step for the connected part and determining additional connected parts;

when the connected part is one of the endpoints or has no connectors, ending the respective route;

when the routes have ended, including the connected parts in an assembly;

generating, on the GUI, a spool sheet that includes the assembly as the spool;

based on the routes ending, determining that a first endpoint cannot connect with another endpoint; and

generating, on the GUI, an error condition that indicates the first endpoint is not connected,

wherein the first endpoint is not included in the assembly, wherein a second endpoint is included in the assembly, and wherein the second endpoint does connect with another endpoint based on the traversed routes.

8. The non-transitory, computer-readable medium of claim 7 , wherein determining what parts are connected includes determining if parts connected to the connector also comply with part criteria of the spool, wherein parts that do not meet the criteria are not included as connected parts.

9. The non-transitory, computer-readable medium of claim 7 , wherein determining what parts are connected includes identifying a part as belonging to a different spool and, as a result, treating the part as not connected to the connector.

10. The non-transitory, computer-readable medium of claim 7 , wherein a plugin causes the GUI to receive the selection of endpoints based on a plugin function to determine the spool, wherein the GUI is part of a computer-aided design (“CAD”) application that communicates with the plugin, and wherein retrieving connectors from the endpoints is based on an application programming interface (“API”) call from the plugin to the CAD application.

11. The non-transitory, computer-readable medium of claim 7 , the stages further comprising:

prompting the user to select an additional endpoint on the GUI;

performing the traversing routes step for the additional endpoint, resulting in an additional route that connects to at least one of the ended routes; and

including the additional endpoint and parts within the additional route in the assembly.

12. A system for spool run route finding, comprising:

a processor that executes instructions for running a design application having an application programming interface (“API”);

a memory that includes code for a plugin, the plugin interacting with the API to cause the processor to perform stages including:

receiving selection of endpoints for a spool on a graphical user interface (“GUI”);

traversing routes from the endpoints, wherein the routes are determined by at least:

retrieving connectors from the endpoints;

for each connector, determining what parts are connected, wherein determining what parts are connected includes determining if parts connected to the connector also comply with part criteria of the spool, wherein parts that do not meet the criteria are not included as connected parts;

when a connected part is not one of the endpoints or already in another route, repeating the retrieving connectors step for the connected part and determining additional connected parts;

when the connected part is one of the endpoints or has no connectors, ending the respective route;

when the routes have ended, including the connected parts in an assembly; and

generating, on the GUI, a spool sheet that includes the assembly as the spool.

13. The system of claim 12 , wherein determining what parts are connected includes identifying a part as belonging to a different spool and, as a result, treating the part as not connected to the connector.

14. The system of claim 12 , wherein a plugin causes the GUI to receive the selection of endpoints based on a plugin function to determine the spool, wherein the GUI is part of a computer-aided design (“CAD”) application that communicates with the plugin, and wherein retrieving connectors from the endpoints is based on an application programming interface (“API”) call from the plugin to the CAD application.

15. The system of claim 12 , the stages further comprising:

based on the routes ending, determining that a first endpoint cannot connect with another endpoint; and

generating, on the GUI, an error condition that indicates the first endpoint is not connected.

16. The system of claim 12 , the stages further comprising:

prompting the user to select an additional endpoint on the GUI;

performing the traversing routes step for the additional endpoint, resulting in an additional route that connects to at least one of the ended routes; and

including the additional endpoint and parts within the additional route in the assembly.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2022
From: APPLIED SOFTWARE TECHNOLOGY, INC.
To: EVOLVE MEP, LLC
Reel/Frame 058933/0627 →
Continuity (3)
Continuation 16853366 · Apr 20, 2020
Provisional Application 62835687 · Apr 18, 2019
Related Publication 20210383032A1 · Dec 9, 2021
References Cited (34)
US 7039569B1 · Haws · 2006 [cited by applicant]
US 7856342B1 · Kfouri · 2010 [cited by applicant]
US 8762877B2 · Loberg · 2014 [cited by applicant]
US 9262863B2 · Yadav · 2016 [cited by applicant]
US 10325035B2 · Kelly · 2019 [cited by applicant]
US 11010499B2 · Backer · 2021 [cited by applicant]
US 20020018061A1 · Gantt · 2002 [cited by applicant]
US 20060247902A1 · Rourke · 2006 [cited by applicant]
US 20070088530A1 · Erignac · 2007 [cited by applicant]
US 20080275674A1 · Reghetti · 2008 [cited by applicant]
US 20100318929A1 · Hilton · 2010 [cited by applicant]
US 20110251975A1 · Evans · 2011 [cited by applicant]
US 20130132040A1 · Shook · 2013 [cited by examiner]
US 20140164072A1 · Kulusjarvi · 2014 [cited by applicant]
US 20150029181A1 · Lerey · 2015 [cited by applicant]
US 20150135793A1 · Plummer · 2015 [cited by applicant]
US 20150142157A1 · Daugherty · 2015 [cited by applicant]
US 20150346950A1 · Hilton · 2015 [cited by applicant]
US 20160117418A1 · Baardse · 2016 [cited by applicant]
US 20170032057A1 · Garimella · 2017 [cited by examiner]
US 20180247002A1 · Mendez · 2018 [cited by applicant]
US 20190042669A1 · De Backer · 2019 [cited by applicant]
US 20190370419A1 · Ronson · 2019 [cited by applicant]
US 20200210638A1 · Cho · 2020 [cited by applicant]
Sandberg, Jonas, Computer based tools in the HVAC design process. Interface and data transfer between modeling in Revit and supporting draw-and simulation tools, (especially with focus on handling geometries and informa… [cited by applicant]
Sheward, Hugo, et al., Preliminary Concept Design (PCD) Tools for Laboratory Buildings, Automated Design Optimization and Assessment Embedded in Building Information Modeling (BIM) Tools, 2011. [cited by applicant]
Autodesk Revit 2015 Getting Started Guide. [cited by applicant]
Revit Architecture User's Guide, 2011. [cited by applicant]
Victaulic Tools for Revit, Revit 2014, 2015 and 2016. [cited by applicant]
“Autodesk, Inc.”, “Revit Structure 2011 User's Guide”. Apr. 2010. 1812 pages. pp. 36, 587, 684, 771-774. 789, 887-888, 966, 977-983, 1004, 1011, 1633-1634, 1643. [cited by applicant]
Agapaki, Eva , et al., “Prioritizing object types for modelling existing industrial facilities”, Automation in Construction 96 (2018): 211-223. [cited by applicant]
Li, Xiaodan , et al., “Modular and Offsite Construction of Piping: Current Barriers and Route”, Applied Sciences 7.6 (2017): 547. [cited by applicant]
Palmer, Mark E., et al., “3D Piping IGES Application Protocol Version 1.0”, National Institute of Standards and Technology, U.S. Department of Commerce, Feb. 24, 1993. [cited by applicant]
Son, Hyojoo , et al., “As-built data acquisition and its use in production monitoring and automated layout of civil 8 infrastructure: A survey.”, Advanced Engineering Informatics 29.2 (2015): 172-183. [cited by applicant]