Optimized wiring and network cable routing in building information modeling environments
An automated wiring run generation plugin for a building computer-aided design (“CAD”) program is disclosed. The plugin receives user-defined pathways within a model layout and identifies start and end points requiring connections, accessing a run schedule as needed. It evaluates possible routes by detecting pathway segments within a threshold distance that have an open, orthogonal path to equipment elements. The plugin then generates line segments connecting equipment to pathways and determines the shortest route for each start/end point pairing using a shortest path algorithm or individual segment calculations. A directed weighted graph can be used to optimize routing. The plugin then visually generates and displays the shortest wiring or conduit runs on the graphical user interface (“GUI”) based on user settings. This automation streamlines the wiring design process, reducing manual effort and minimizing errors while ensuring efficient cable routing within CAD and BIM environments.
1 . A method for generating routes in a model layout, comprising:
receiving, in a graphical user interface (“GUI”), user inputs defining a pathway with multiple segments in the model layout, wherein the pathway represents a potential placement location for an element type that is not yet placed in the pathway within the model layout, wherein the element type is one of electrical, mechanical, and network;
selecting a run schedule in the GUI;
automatically determining a start point and end points within the model layout from the run schedule, wherein the run schedule identifies runs of the element type, each run having end points; and
without human intervention, at least:
automatically constructing, within the model layout, possible routes from the start point to the end points, wherein the start and end points are not connected within the model layout prior to the constructing, the constructing comprising:
determining a first location on a first segment of the pathway that is closest to the start point;
logically connecting the start point to the first location, the connection creating a vertex;
for each end point, determining a second location on a second segment of the pathway that is closest to the end point; and
logically connecting the end points to their respective second locations;
for each end point, identifying a shortest route along the pathway to the start point, wherein the shortest route is restricted from leaving the pathway except along one or more of the logical connections; and
automatically generating, on the GUI, the shortest route for each end point, including placing and displaying parts of the element type along the respective shortest route.
2 . The method of claim 1 , wherein constructing routes from the start point to the end points further comprises inserting nodes at the first location and the second locations, and wherein each of the nodes is designated as an elbow joint, a t-joint, or a cross joint.
3 . The method of claim 1 , wherein a plugin causes the GUI to display a first option for drawing the pathway and a second option for filtering according to element type, wherein the multiple segments are drawn on the GUI by the user inputs.
4 . The method of claim 1 , wherein constructing routes from the start point to the end points further comprises, for each route:
applying a shortest path algorithm that graphs vertices along the pathway, including the vertex, wherein connections to the pathway are orthogonal; and
identifying a shortest path between the start point and a corresponding end point that follows the pathway, wherein the route generated is based on the shortest path.
5 . The method of claim 4 , wherein, based on the shortest path algorithm, at least one end point logically connects to another end point without traversing the pathways between them.
6 . The method of claim 1 , wherein a plugin causes the GUI to receive the user inputs defining the pathway in the model layout to determine the routes, wherein the GUI is part of a computer-aided design (“CAD”) application, wherein the plugin adds functionality of the CAD application to traverse the possible routes and generate the shortest routes, and wherein determining the start point and end points is based on an application programming interface (“API”) call from the plugin to the CAD application.
7 . The method of claim 1 , further comprising updating the run schedule with materials and amounts needed for each route based on the displayed parts.
8 . A non-transitory, computer-readable medium containing instructions that, when executed by a hardware-based processor, causes the processor to perform stages for generating routes in a model layout, the stages comprising:
receiving, in a graphical user interface (“GUI”), user inputs defining a pathway with multiple segments in the model layout, wherein the pathway represents a potential placement location for an element type that is not yet placed in the pathway within the model layout, wherein the element type is one of electrical, mechanical, and network;
selecting a run schedule in the GUI;
automatically determining a start point and end points within the model layout from the run schedule, wherein the run schedule identifies runs of the element type, each run having end points; and
without human intervention, at least:
automatically constructing, within the model layout, possible routes from the start point to the end points, wherein the start and end points are not connected within the model layout, the constructing comprising:
determining a first location on a first segment of the pathway that is closest to the start point;
logically connecting the start point to the first location, the connection creating a vertex;
for each end point, determining a second location on a second segment of the pathway that is closest to the end point; and
logically connecting the end points to their respective second locations;
for each end point, identifying a shortest route along the pathway to the start point, wherein the shortest route is restricted from leaving the pathway except along one or more of the logical connections; and
automatically generating, on the GUI, the shortest route for each end point, including displaying parts of the element type along the respective shortest route.
9 . The non-transitory, computer-readable medium of claim 8 , wherein constructing routes from the start point to the end points further comprises inserting nodes at the first location and the second locations, and wherein each of the nodes is designated as an elbow joint, a t-joint, or a cross joint.
10 . The non-transitory, computer-readable medium of claim 8 , wherein a plugin causes the GUI to display a first option for drawing the pathway and a second option for filtering according to element type, wherein the multiple segments are drawn on the GUI by the user inputs.
11 . The non-transitory, computer-readable medium of claim 8 , wherein constructing routes from the start point to the end points further comprises, for each route:
applying a shortest path algorithm that graphs vertices along the pathway, including the vertex; and
identifying a shortest path between the start point and a corresponding end point that follows the pathway, wherein the route generated is based on the shortest path.
12 . The non-transitory, computer-readable medium of claim 11 , wherein, based on the shortest path algorithm, at least one end point logically connects to another end point without traversing the pathways between them.
13 . The non-transitory, computer-readable medium of claim 8 , wherein a plugin causes the GUI to receive the user inputs defining the pathway in the model layout to determine the routes, wherein the GUI is part of a computer-aided design (“CAD”) application that communicates with the plugin, and wherein determining the start point and end points is based on an application programming interface (“API”) call from the plugin to the CAD application.
14 . The non-transitory, computer-readable medium of claim 8 , the stages further comprising updating the run schedule with materials and amounts needed for each route based on the displayed parts.
15 . A system for generating routes in a model layout, 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, in a graphical user interface (“GUI”), user inputs defining a pathway with multiple segments in the model layout, wherein the pathway represents a potential placement location for an element type that is not yet placed in the pathway within the model layout, wherein the element type is one of electrical, mechanical, and network;
selecting a run schedule in the GUI;
automatically determining a start point and end points within the model layout from the run schedule, wherein the run schedule identifies runs of the element type, each run having end points; and
without human intervention, at least:
automatically constructing, within the model layout, possible routes from the start point to the end points, wherein the start and end points are not connected within the model layout, the constructing comprising:
determining a first location on a first segment of the pathway that is closest to the start point;
logically connecting the start point to the first location, the connection creating a vertex;
for each end point, determining a second location on a second segment of the pathway that is closest to the end point; and
logically connecting the end points to their respective second locations;
for each end point, identifying a shortest route along the pathway to the start point, wherein the shortest route is restricted from leaving the pathway except along one or more of the logical connections; and
automatically generating, on the GUI, the shortest route for each end point, including displaying parts of the element type along the respective shortest route.
16 . The system of claim 15 , wherein constructing routes from the start point to the end points further comprises inserting nodes at the first location and the second locations, and wherein each of the nodes is designated as an elbow joint, a t-joint, or a cross joint.
17 . The system of claim 15 , wherein a plugin causes the GUI to display a first option for drawing the pathway and a second option for filtering according to element type, wherein the multiple segments are drawn on the GUI by the user inputs.
18 . The system of claim 15 , wherein constructing routes from the start point to the end points further comprises, for each route:
applying a shortest path algorithm that graphs vertices along the pathway, including the vertex; and
identifying a shortest path between the start point and a corresponding end point that follows the pathway, wherein the route generated is based on the shortest path.
19 . The system of claim 18 , wherein, based on the shortest path algorithm, at least one end point is logically connected to another end point without traversing the pathways between them.
20 . The system of claim 15 , wherein the plugin causes the GUI to receive the user inputs defining pathways in the model layout to determine the routes, wherein the GUI is part of a computer-aided design (“CAD”) application that communicates with the plugin, and wherein determining the start point and end points is based on an API call from the plugin to the CAD application.