Intelligent Building Structure Planner

A method for automatic panel design and fabrication includes receiving a two-dimensional or three-dimensional architectural plan for a building, converting the architectural plan into a first data file that contains information about a location, length, and style of each wall included in the architectural plan, obtaining, from the first data file, a list of walls to automatically generate a second data file that contains a list of panels to be constructed for each of the list of walls, and generating a set of commands for each of panels in the list and transmitting the set of commands to a robotic builder, to allow the robotic builder to automatically build each of the panels in the list.

TECHNICAL FIELD

This disclosure generally relates to the construction of building structures, and more particularly to systems and methods for automating the process of preparing building components in off-site construction from a design plan.

BACKGROUND

Wall panels are a staple in off-site construction. Companies are able to build wall panels in warehouses with a mix of large automation systems and employees, and ship these prefabricated panels to construction sites and craned into place on a foundation that has been constructed in advance. However, before any building can occur, the house must be turned into a series of panels, that is, each wall must be broken into sections that can be individually built and shipped in stacks. This process is referred to as panelization.

Currently, all panelization is done by hand or with limited software tools. To penalize one house, experienced designers work for one to four weeks depending on the experience of the designers, the complexity of the house, and other factors. This process takes a long time and is tedious and prone to errors.

Current software options employed by designers for designing panels do not do most of the work. Instead, existing software solutions mostly act as accounting, helping designers visualize the walls as the designers make decisions about where to split the wall into panels. In addition, when using these panelization software products, the designers first have to create a detailed digital clone of the building that is being constructed. This process, however, is very manual, and labor intensive, and requires extensive knowledge and experience with building information modeling software. Due to the above-noted challenges, automatic designing of wall panels has yet to become widespread in the construction industry.

The foregoing discussion, including the description of motivations for some embodiments, is intended to assist the reader in understanding the present disclosure, is not admitted to be prior art, and does not in any way limit the scope of any of the claims.

SUMMARY

To address the aforementioned shortcomings, a method and system for automatic panel design and fabrication are provided. The method includes receiving a two-dimensional or three-dimensional architectural plan for a building, converting the architectural plan into a first data file that contains information about location, length, and style of each wall included in the architectural plan, obtaining, from the first data file, a list of walls to automatically generate a second data file that contains a list of panels to be constructed for each of the list of walls, and generating a set of commands for each of panels in the list and transmitting the set of commands to a robotic builder, to allow the robotic builder to automatically build each of the panels in the list.

The above and other preferred features, including various novel details of implementation and combination of elements, will now be more particularly described with reference to the accompanying drawings and pointed out in the claims. It will be understood that the particular methods and apparatuses are shown by way of illustration only and not as limitations. As will be understood by those skilled in the art, the principles and features explained herein may be employed in various and numerous embodiments.

DETAILED DESCRIPTION

The figures (FIGS.) and the following description relate to some embodiments by way of illustration only. It is to be noted that from the following description, alternative embodiments of the structures and methods disclosed herein will be readily recognized as viable alternatives that may be employed without departing from the principles of the present disclosure.

Panelized construction comprises building components that are made in a factory environment and then shipped to the construction sites for incorporation into the buildings. With panelized construction, prefabricated building components, such as wall and floor systems, are set into place at the site with heavy equipment such as cranes. Because panels are constructed off-site, it often reduces waste and the time required to build. In addition, panelized construction can be customized, like stick frame construction, which offers flexibility to meet different customer requirements. This, however, requires a higher level of coordination and detailing during the design phase, which takes extensive expertise, and thus is a very slow and cumbersome process in the current panel design. In addition, it is prone to human error.

A technical solution provided in the present disclosure effectively addresses the technical problems faced by the existing panel design software tools and products by introducing an intelligent construction structure planning system (also referred to as “intelligent construction structure planner”). In some embodiments, the intelligent construction structure planner disclosed herein is configured to automatically design panels from a list of locations and types of walls, doors, and windows with no human input, and automatically design panels conforming to the specification of any particular building code (e.g., choose headers and start spacing based on load requirements, add triple studs to support second stories, etc.). In some embodiments, the intelligent construction structure planner further optimizes a cost function that allows users to prioritize different aspects of the building during the automated panelization process. In some embodiments, the intelligent construction structure planner also integrates features to assist with later steps in the structure-building process, such as pre-cut holes for electrical wiring, integrating with plumbing requirements, and integrating with HVAC requirements, all of which can be done without requiring additional inputs from designers.

In some embodiments, the intelligent construction structure planner designs panels that can be prefabricated only through automated means, such as robotic builders. That is, when designing the panels, the intelligent construction structure planner also takes into consideration the fabrication principles and capacity of the automated robotic builders. In addition, the intelligent construction structure planner outputs the panel design in the form of commands or instructions that can be taken by the robotic builders for the automated fabrication of the designed panels. In some embodiments, the intelligent construction structure planner takes additional factors into consideration in the automated design process. For example, the designed panels may have a maximal width that falls within a range of packages that can be loaded and shipped to construction sites.

In some embodiments, the intelligent construction structure planner is configured to further generate a series of outputs for the designed panels. In one example, the intelligent construction structure planner generates a set of instructions or commands that can be output to the robotic builders for automated fabrication of the designed panels without requiring additional user inputs to provide parameters for fabrication purposes. In another example, the intelligent construction structure planner also generates a series of visual outputs that can be read by humans to verify the construction of panels and understand how to arrange the panels to assemble the panels in the construction sites.

In some embodiments, the intelligent construction structure planner can take an architectural plan in different forms as input when automatically generating the panel designs. For example, the intelligent construction structure planner can take an architectural plan in a portable document format (PDF), in a DWG format (a native format for several CAD packages including DraftSight, AutoCAD, ZWCAD, IntelliCAD (and its variants), Caddie and Open Design Alliance compliant applications), or even take an architectural plan in a traditional hard copy, which can be converted into an electronic copy for further processing in the automated panel design. In some embodiments, the intelligent construction structure planner can implement additional functions, as will be described in detail later.

The intelligent construction structure planner disclosed herein shows technical improvements when compared to other existing panel design software tools or products. First, the intelligent construction structure planner can automate the panel design process to automatically generate a list of panels directly from an architectural plan, without requiring experienced designers to provide inputs in the panel design process. This improves the functionalities of the current panel design software tools or products that serve merely as accounting or visualization tools. Second, the designed panels can be generated in the form of commands and instructions that can be directly output to the robotic builders for automatic fabrication of the designed panels, and thus the whole panel design and fabrication process can be totally automated. Third, the intelligent construction structure planner can take various forms of architectural plans as input, which further improves the capacity of the planner to handle the input documents in the automated panelization process.

It is to be noted that the benefits and advantages described herein are not all-inclusive, and many additional features and advantages will be further described under the context of specific embodiments. In addition, some additional features and advantages will become apparent to one of ordinary skill in the art in view of the figures and the following descriptions.

FIG.1is a block diagram of an example intelligent construction structure design and fabrication system100, according to embodiments of the disclosure. According to some embodiments, the intelligent construction structure design and fabrication system100is a network-based specialized computer environment for automated intelligent construction structure design and fabrication. In one example, the intelligent construction structure design and fabrication system100as a whole merely takes an architectural plan as an input and is capable of automatically fabricating a set of construction structures such as wall panels as an output for the system100. The set of construction structures, once fabricated, can be stacked and delivered to a construction site to erect the building structure. In the following descriptions, the intelligent construction structure design and fabrication system100will be described in detail with reference to panel design and fabrication (such as wall panels), however, the intelligent construction structure design and fabrication system100is not limited to panels, but can be applied to other different construction structures.

Referring toFIG.1, the intelligent construction structure design and fabrication system100may include one or more user devices103a. . .103n(together or individually referred to as “user device103”), an intelligent design system101, and a robotic builder115. In some embodiments, the intelligent construction structure design and fabrication system100may optionally further include an attached data store113that is accessible by various components included in the system. In some embodiments, all of these system components are configured for mutual communications. In the illustrated embodiment, the components101,103,113, and115are configured to communicate through a network111, as illustrated inFIG.1. Examples of suitable network111include but are not limited to the Internet, a personal area network, a local area network (LAN), a wide area network (WAN), or a wireless local area network (WLAN).

In some embodiments, the user device103can be a specialized computer or another type of electronic device that is configured to provide user interfaces for uploading architectural plans, for visual presentation of panel designs, for inputting certain parameters related to the panel designs, among other possible functions related to the panel design and/or fabrication. In some embodiments, each user device103optionally includes an instance of intelligent construction structure planner107aor107nstored in memory105aor105n, where each instance of intelligent construction structure planner may be configured to perform partial or full functions related to construction structure design and/or fabrication. The specific functions implemented by each user device103may depend on whether the user device is associated with an architect, designer, builder, inspector, etc.

In some embodiments, a user device103may be a part of distributed computing topology, in which data collection and early stages of data processing are implemented close to the sites where tasks, events, or activities associated with the data occur. Distributed computing topology brings certain early stages of processing to the devices where it's being gathered, rather than relying all on a central location (e.g., intelligent design system101, which can be a backend server). In one example, a user device103may be a remote device that receives an architectural plan, which may be a physical copy (e.g., a scanned copy or a photo taken from the physical copy). The user device103may convert the received physical copy into an electronic copy, which can be then transmitted to the intelligent design system or sever101for automated panel design.

The intelligent design system101may be configured to analyze an architectural plan and determine a project, based at least in part, on the architectural plan. By way of example and not limitation, the architectural plan can be in the form of electronic data, such as a portable document format (PDF) file or a DWG file. In some embodiments, the architectural plan can be a two-dimensional floor plan that presents the to-be-constructed building in a graphic view. In some embodiments, the architectural plan can also include other information related to the construction, such as building code(s). In some embodiments, the architectural plan can be a scanned copy or a photo taken from a physical architectural plan.

In some embodiments, the intelligent design system101can be formed from hardware, software, or any combination thereof. In one embodiment, the intelligent design system can be implemented as a stand-alone system comprising one or more processors for processing the electronic data encompassing the architectural plan. For example, the intelligent design system can be in the form of software installed on a computer or web-based software (e.g., a website, etc.). In another example, the software can receive and process a PDF file that includes an architectural plan to determine one or more criteria (e.g., a floor plan, a wall elevation, etc.) for constructing a building structure. In a specific example, the PDF file is optically read and analyzed to determine the criteria and/or parameters for constructing the building structure.

In some embodiments, the intelligent design system101may also process a conventional plan to generate a component design plan, which includes a strategy for designing components of the building structure (e.g., panels to form a wall, etc.). Parameters and heuristics for designing the components use rules from a building code, which may be part of the architectural plan. For example, the intelligent design system101may include logic or algorithm(s) that are configured to generate the construction details based on the architectural plan. The construction details may include but are not limited to framing components (e.g., walls), roof, pipeline equipment, electronic power, piping system, fixed equipment (e.g., cabinets), lighting system, etc. In one specific example, the intelligent design system101may automatically identify an exterior wall from the architectural plan, as will be described in detail later. In some embodiments, components included in a panel or building can be identified by the disclosed intelligent design system through image processing, similar to the identification of exterior walls described later.

In some embodiments, based on the construction details converted from the architectural plan, the intelligent design system101may further design a list of panels to be constructed, which takes into consideration framing information (e.g., wall information) as well as other construction structure information such as piping and electronic wiring information as described above. In some embodiments, the intelligent design system101further generates a set of commands and instructions that carry the specifications of the designed panels, which are then sent to the robotic builder115for off-site prefabrication of the designed panels, as described elsewhere herein.

The robotic builder115includes one or more robotic machines that are configured to construct unique and special structures with features of high complexity, high mix, and low volume, and are proven with high degrees of versatility, diversity, and flexibility to perform fabrication and/or construction projects. The robotic machines may be equipped with one or more end effectors to mount and/or connect tools (e.g., a gripper, a drill, a cutter, etc.) that are used during the automated wall panel fabrication process. In some embodiments, the robotic machines are pre-programmed with sequences of specific motion commands and commands for other operations in order to cause the robotic devices to complete the wall panel fabrication process. In some embodiments, when the intelligent design system101generates the commands or instructions for the designed panels, the design system may look into the pre-programmed commands included in the robotic builder115, and generate one or more commands and instructions that the robotic builder115can understand and follow during the panel fabrication process. In one example, the robotic builder115optionally includes an instruction processing unit117that is configured to identify specific parameters or variables for the to-be-constructed panels from the panel design.

In some embodiments, besides the user device(s)103, the intelligent design system101, and the robotic builder115, the disclosed intelligent construction structure design and fabrication system100may include additional components or units not described above. In one example, the system100may include one or more data stores, such as data store109and attached data store113, that can be attached to a specific component or can be accessible through the internet by more than one component included in the system100. These data stores may store architectural plans and generated panel designs, among other data generated or required during the panel design and fabrication processes.

Referring now toFIG.2, an exemplary configuration of the intelligent design system or server101is further described. As illustrated inFIG.1, the intelligent design system101includes an intelligent construction design planner1070configured to design a set of panels for a to-be-constructed building. In one example, the intelligent construction design planner107may include an intelligent panel design unit201to achieve such functions. Specifically, the intelligent panel design unit201may include logic and programs configured to convert a traditional architectural plan for a building into a panelized system plan that includes a set of panels for the building, as briefly described earlier inFIG.1and as further described in detail below.

According to one embodiment, to convert a two-dimensional or three-dimensional architectural plan into a set of designed panels, the intelligent panel design unit201may be configured to first create a two-dimensional modified panel design. Specifically, the intelligent panel design unit201may first identify the framing information including the perimeter walls of the structure, such as the location, length, and type of every wall in the structure to be built. In some embodiments, the intelligent panel design unit201may configure a predefined panel size (also referred to as standard panel) during the panel design, and generate a set of designed panels by using the standard size. In some embodiments, customized panels may be generated instead. In some embodiments, a panel may be dynamically designed through an optimized approach, as will be described in more detail below. In some embodiments, the framing information may be written in yet another markup language (YAML) during the conversion process. YAML is commonly used for configuration files and in applications where data is being stored or transmitted.

In one example using the standard panel approach, the intelligent panel design unit201identifies sections of the walls that include a door or window. If it is found that a section of a wall that includes a door or window fits within the dimensions of a standard panel (which can be predefined according to the current practice in the construction industry), then that section of the wall is replaced with a representation of a standard panel having a window or door element corresponding to the door or window for that section of the wall. If it is found that a section of the wall that includes a door or window does not fit within the dimensions of a standard panel, the intelligent panel design unit201may generate one or more customized panels including a window or wall for that section of the wall. In this way, the panels for the wall sections that include a door or window are first designed. In some embodiments, after the panels for the sections of the walls that include a door or window are designed, the intelligent panel design unit201may generate the remaining sections of the wall by using a standard panel or using panels determined or customized through different means, as further described in detail below.

In some embodiments, when designing the set of panels, the intelligent panel design unit201may take many additional factors into consideration in the design process. In one example, the intelligent panel design unit201may take into consideration the capacity of the downstream robotic builder115. Specifically, a robotic builder adaption module211may be included in the intelligent panel design unit201, which may include logic or algorithm(s) configured to inspect the capacity of the robotic builder115before designing the panels. For example, the maximum weight and size of a panel that the robotic builder115can handle or fabricate are first checked. In addition, which tools are included in the robotic builder115are also checked. In this way, when designing the panels, it can be ensured that the designed panels are capable of being fabricated through the downstream robotic builder115. For example, when defining the aforementioned standard panels, the robotic builder adaption module211may determine the size of the standard panel by taking into consideration the capacity of the robotic builder115.

In some embodiments, the intelligent panel design unit201may also include a downstream integration module213that is configured to integrate features to assist with later steps in the structure-building process, such as pre-cut holes for electrical wiring, integration with plumbing requirements, integration with HVAC requirements, etc. In other words, during the design process, the intelligent panel design unit201may be also configured to adjust the size of a panel to ensure that the features assisting with later steps in the structure-building process are also considered. In one example, the intelligent panel design unit201may keep the pre-cut holes away from the edges of a designed panel by adjusting the size of a designed panel. Other adjustments are also possible.

In some embodiments, the intelligent panel design unit201may additionally include an optimization module215configured to optimize the designed panels by taking into consideration cost, among other possible factors. Briefly, when designing the panels, the intelligent panel design unit201may minimize the cost (including minimizing the cutting time and waste materials) and respect the constraints of the designed panels. The specific functions of the optimization module215are further described later inFIGS.3and4.

Referring again toFIG.2, in some embodiments, the intelligent construction structure planner107may further include an instruction output generation unit203and a visual output generation unit205. The instruction output generation unit203may be configured to generate a set of instructions or commands that allow the automated robotic builder115to build the panels according to the input panel design. The instructions may be generated in a YAML format (or python-format) that the robotic builder115can read and further extract the information (which can be in the form of variables used in the robot framework) from the instructions for fabrication of the designed panels.

The visual output generation unit205may be configured to generate a “panel book,” which is a visual representation of the panelized house and contains all the information detailing the panels. The panel book can be used by humans to verify panels after they are built by the robotic builders, and is provided to framers so that they know how to assemble the panels together.

As described earlier, in some embodiments, instead of using standard panels in the panel design process, the panel design process is dynamically optimized through additional logic or algorithm(s) included in the intelligent construction structure planner107. In one example, in order to design panels that are optimal with respect to some cost function, dynamic programming (DP) is employed.

Referring toFIG.3, an exemplary algorithm for optimizing the panel design is further illustrated. Briefly, the algorithm may start by discretizing the wall into chunks of length dx. It then loops from the beginning of the wall to the end of the wall, calculating the cost of the optimal set of panel splits ending at each point and filling in the cost of the optimal set of panels OPT[ ]. To calculate the optimal panel splits, at each step, a decision is made about the panel ending at point j. The length of this panel is between max_len and min_len. The earliest that the panel ending at j can start is max_len left of j, and the latest that can start is min_len left of j. Accordingly, if optimal solutions up to j−1 are known, the algorithm can pick the next optimal solution by taking the minimal cost of all potential panel lengths. The cost of having a panel starting at i and ending at j is the cost of the optimal set of panels ending at i (e.g., OPT[i]) plus the cost of a panel between i and j (e.g., cost (i, j)). With this, the algorithm finds optimal solutions up to point j while j is swept from left to right along the wall.

FIG.4illustrates an example image showing one step of the algorithm for optimizing the panel design. The algorithm is searching for an optimal solution up to the labeled point on the right and has already identified the optimal solution for all the points prior to the labeled point. The labeled point corresponds to j in the algorithm. Because the point at which the panel ends and the panel's length bounds are known, it is possible to check for panels starting between the points labeled “Start” and “End.” The dotted line corresponds to i in the algorithm, and is being swept from the Start to End. For each location of the dotted line, the algorithm looks at OPT[i] to get the cost of an optimal set of panels ending at i, and calculates cost (i, j) to get the cost of a panel between points i and j. The algorithm subsequently sums these two numbers (e.g., OPT[i]+cost (i, j)) for each location of the dotted line (i) between Start and End, and picks the location for i with the lowest overall cost. Afterward, OPT[j] is set to this minimum cost, and j is incremented by 1. The process repeats until the end of the wall is reached (e.g., when j=i) and the optimal set of panels for the entire wall has been selected.

In some embodiments, the goal of the intelligent panel design unit's cost function is to encourage “good” panels by assigning a score to every potential panel. The function returns larger values for “worse” panels and lower values for “better” panels. The cost function can be designed to choose panels that minimize wood cost, encourage large panels, and also minimize the number of panels. The cost function and its components are shown below.

As shown above, the cost function, Cost, for each panel has two components: the cost of the panel due to its size (e.g., the cost of the panel material per unit length; panel_size_cost) and the cost associated with the panel's construction (e.g., panel_cost). The panel size cost is a scaled and shifted sigmoid function of the difference between the panel's maximum length (e.g., max_panel_length) and the panel's actual size (e.g., panel_length) normalized to a value between zero and one. In some embodiments, the sigmoid function representing the panel size cost is selected so that its shape is indicative of panels that require attention and/or adjustments. For example, for a panel that is already at 90% of its maximum length, the sigmoid is substantially flat indicating that it is not critical to make further changes to the length of the panel (e.g., to make the panel larger). On the other hand, for a panel that is quite small (e.g., about 50% of its maximum length or less), the sigmoid becomes steep indicating that it is critical for the panel to be made larger. This allows the algorithm to quickly identify panels where the sigmoid is steep and panel length adjustments are necessary to reduce the overall cost.

The panel cost has three main components. Namely, the number of studs, the cost associated with cutting the sheathing, and error costs. The number of studs is the number of full-length studs added to the panel. The studs can be regular studs or any kind of studs used to build, for example, windows and doors. The shipping cost is calculated by multiplying the cut cost by the number of cuts needed for sheathing. The shipping cost is incorporated into the cost function because cutting the sheathing with a robotic means can be difficult. It is therefore preferred that the panels are selected with as many full pieces of sheathing as possible. Error costs are added to the cost of the panel if a particular erroneous fact is true about the panel. By way of example and not limitation, this may occur in three scenarios: when an object, like a door or window, is unable to be built; when a ladder blocking is unable to be placed where required; and when there are flat pieces of wood on both sides of the panel, front and back.

In some embodiments, the intelligent construction structure planner107uses the dynamic program described above to create panels for each wall. For example, when actually running a set of architectural plans, a dynamic program (e.g., a BuildGenerator object) for generating a wall component is created for the set of architectural plans, which then creates an object (e.g., a PanelGenerator object) for generating a set of panels for each wall.

In some embodiments, a method containing the DP implementation may be employed in the panel generation. In some embodiments, in the DP implementation, dx is the distance that is used to discretize over the length of the wall, and “costs” is the costs array for use in the DP algorithm. “Costs” may be created with a costs array creation method called make_costs_array and represent the minimum cost to build a wall up to the corresponding point along the discretized wall. This point is the index of a spot in the array times dx, the discretization factor. The base case has the zeroth entry of the array equal to zero, and infinity where it is impossible to begin or end a wall. In the DP implementation disclosed herein, there is an array of Panel objects referred to as panel_solutions, which has the same length as costs. The array of Panel objects contain the panel ending at the corresponding point that is a part of the optimal solution. In addition, there is an array of integers referred to as prev_subproblems, which have the same length as costs. It contains the index of the solution to the previous subproblem. In this algorithm, this is the start location of the panel that ends at the current location, in the optimal solution. For example, if there is a 7-foot wall split into 3 panels at 2 and 4 feet from the left, there are three panels with the respective lengths of 2, 2, and 3 feet. The value of the last element of prev_subproblems will be the index that corresponds to 4 feet from the left, since the optimal solution up to 4 feet is the previous subproblem to the panel between 4 and 7 feet. The value of prev_subproblems at the index of 4 feet will be the index of 2 feet from the left, and at the index of 2 feet, it will be zero. These are used to get the panels that construct the optimal solution, by looking at the last element and tracing back.

Referring back toFIG.2, after generating the panel designs, a set of instructions or commands may be sent to the robotic builder115for building the designed panels, for example, processed through the instruction processing unit117included therein. In some embodiments, all codes that deal with the actual construction of panels are held in a set of pythons referred to as build_manager.py and builder.py. These codes or pythons may be a part of the instruction processing unit117included in the robotic builder115.

In some embodiments, building logic for panel construction is independent from the DP algorithm for panel design, so the DP algorithm used for the panel design may be changed or switched out without needing to deal with construction-specific building logic. In some embodiments, new building methods can be added and can be easily switched. In some embodiments, building methods should not incorrectly build something based on the environment around them. In one example, it will be incorrect to build a triple stud for a wall connection when it intersects a king stud right near it. In some embodiments, scenarios that cannot be built can be also detected.

In some embodiments, the building process is organized by using a build manager and a set of builders included in the robotic builder115. The build manager provides methods for external code (such as the DP algorithm used by the intelligent panel design unit201) to build panels based on wall specifications (e.g., WallSpec). Each of the set of builders is a subclass of Builder, and may implement a few methods. These implemented methods allow the build manager to know which type of ElementSpec each builder is able to build, allow the build manager to check if a builder can build an element, and let the build manager use the builder to actually build that element if it is able to. This modular design can keep logic for building different aspects of a wall in separate classes. It is easy to add new building logic, by subclassing Builder to implement the required methods. There can be multiple builders for each ElementSpec type, where the first one that can_build an ElementSpec object may be chosen. In some embodiments, the disclosed algorithm may also allow to expand the building logic to include costs, which then allows to choose builders based on cost.

In some embodiments, the method disclosed herein also allows the program to detect which elements were unable to be built, by looking at the can_build method of each builder. Elements that were not built are stored in the unbuilt_elements attribute of Wall.

In some embodiments, the method disclosed herein also allows to add a new builder. In one example, a new builder class that subclasses Builder can be created. Specifically, build_type may be implemented to tell the build manager which type of ElementSpec this builder can build. Next, bounds may be implemented to return the left and right bounds of the built element. For example, for a door, this would be from the left side of the left king stud to the right side of the right king stud. Following that, a method can_build can be implemented. In some embodiments, there is a default implementation available in Builder. If default implementation is sufficient, do not implement this can_build method. Otherwise, override it and run the can_build method to return a result called CanBuildResult. In one example, a method called super( ).can_build( ) may be used in overriding implementation and then add additional logic. In some embodiments, when implementing the method called build, given an ElementSpec and a panel, the build uses the methods of that panel to build the element onto that panel.

In some embodiments, besides the above-described various algorithms in panel design (or generation), the disclosed intelligent construction structure planner may include additional algorithms. For example, for sheathing and other possible reasons, the disclosed intelligent construction structure planner disclosed herein may further include logic or algorithm(s) for the detection of exterior structures from an architectural plan. Here, detecting the exterior of a structure (e.g., of a house) refers to finding the walls and/or sections of the walls that are on the exterior side of the structure. Exterior detection is critical for knowing which panels to apply sheathing to, setting rough opening sizes based on whether a panel is in an exterior or interior wall, and numbering panels in the panel book starting around the outside.

In one example, the logic or algorithm first creates a graph of all the lines along walls. It then finds the point at the end of a line that is the most left, and then the most down. This is the starting point of the search. The second point is a point connected to the first point by a line, that has the most vertical line. It then finds point after point, tracing around the outside of the house clockwise. The next point selected is the one connected to the previous point that has the smallest angle clockwise from the previous line to the new line.

In some embodiments, walls can be either exterior, interior, or both. Exterior walls have no common surfaces with the interior surfaces of the building and interior walls have no common surfaces with the exterior surfaces of the building. On the other hand, some walls are partially exterior and partially interior. In some embodiments, the information for the exterior walls can be taken into consideration in the automated panel design.

Referring now toFIG.5, a flow chart of a method500for performing the aforementioned operations is further illustrated. Other operations may be performed between the various operations of method500and may be omitted merely for clarity. This present disclosure is not limited to this operational description. It is to be noted that additional operations may be performed. Moreover, not all operations may be needed to perform the disclosure provided herein. Additionally, some or all of the operations may be performed simultaneously, substantially at the same time, or in a different order than that shown inFIG.5. In some embodiments, one or more other operations may be performed in addition to or in place of the presently described operations.

Method500begins with operation510where the intelligent design system receives one or more architectural plans. As discussed above, the architectural plans can be in electronic form, such as in PDF or DWG files, scanned or imaged documents, etc. The architectural plans can be a two-dimensional floor plan, for example, a technical drawing to scale, showing a view from above, of the relationships between rooms, spaces, traffic patterns, and other physical features at one or multiple levels of a structure. The architectural plans may contain structural information about the structure to be built, such as the relative location of building components, etc. The architectural plans may be uploaded to the intelligent design system (which may be installed and operated from a personal computer device or from a server device that is local or remote) via conventional methods, such as via a network connection, from a hard drive or a solid-state drive (e.g., a USB drive), and the like. By way of example and not limitation, the intelligent design system is configured to optically read and analyze the architectural plans to determine one or more criteria (e.g., a floor plan, a wall elevation, etc.) for constructing the building structure.

Method500continues with operation520where the intelligent design system converts one or more architectural plans into a first data file that contains information about the location, length, and type of every wall in the structure to be built. By way of example and not limitation, the first data file may be written in YAML markup language, which is commonly used for configuration files and in applications where data is being stored or transmitted. Intelligent design systems may also use other suitable markup languages for the conversion of the architectural plans to the first data file. In some embodiments, some aspects of the conversion in operation520may be partially performed automatically by the intelligent design system software while other aspects of the conversion in operation520may be performed via manual programming methods.

Method500continues with operation530in which the intelligent design system uses the list of walls from the first data file to generate a second data file (e.g., an output data file) that contains the list of the designed panels to be constructed. According to some embodiments, the second data file (e.g., the output data file) also contains building instructions or commands for the robotic builders to build the designed panels. In addition, in some embodiments, the second data file may also include an data object related to the whole building. The data object may include specifications for that building, such as information for manufacturing each of the list of panels, including a location and a type of each lumber used for manufacturing each of the list of panels, and one or more fasteners for holding lumbers for each of the list of panels. By way of example and not limitation, the second data file may also be a YAML file or another type of markup file.

While not illustrated, in some embodiments, Method500further includes an operation to communicate with a robotic builder to send instructions or commands to the robotic builder. Upon receipt of the commands or instructions, the robotic builder automatically and sequentially fabricates the list of panels.

Method500continues with operation540in which the intelligent design system uses the second data file to prepare a panel book containing an overview of the building and every panel constructed. As discussed above, the panel book contains instructions for humans on how to verify and assemble the panels at the construction site.

In some embodiments, the panels are numbered in the panel book to assist with the assembly. The panels can be numbered in any convenient way. For example, panel numbering may start with the exterior panels (e.g., in a clockwise fashion) and continue with panels in each room (e.g., in a clockwise fashion).

FIG.6is a block diagram of an example computer system600that may be used in implementing the technology described in this document. General-purpose computers, network appliances, mobile devices, or other electronic systems may also include at least portions of the system600. The system600includes a processor610, a memory620, a storage device630, and an input/output device640. Each of the components610,620,630, and640may be interconnected, for example, using a system bus650. The processor610is capable of processing instructions for execution within the system600. In some implementations, the processor610is a single-threaded processor. In some implementations, the processor610is a multi-threaded processor. The processor610is capable of processing instructions stored in the memory620or on the storage device630.

The memory620stores information within the system600. In some implementations, the memory620is a non-transitory computer-readable medium. In some implementations, the memory620is a volatile memory unit. In some implementations, the memory620is a non-volatile memory unit.

The storage device630is capable of providing mass storage for the system600. In some implementations, the storage device630is a non-transitory computer-readable medium. In various different implementations, the storage device630may include, for example, a hard disk device, an optical disk device, a solid-date drive, a flash drive, or some other large capacity storage device. For example, the storage device may store long-term data (e.g., database data, file system data, etc.). The input/output device640provides input/output operations for the system600. In some implementations, the input/output device640may include one or more of a network interface devices, e.g., an Ethernet card, a serial communication device, e.g., an RS-232 port, and/or a wireless interface device, e.g., an 802.11 card, a 3G wireless modem, or a 4G wireless modem. In some implementations, the input/output device may include driver devices configured to receive input data and send output data to other input/output devices, e.g., keyboard, printer and display devices660. In some examples, mobile computing devices, mobile communication devices, and other devices may be used.

In some implementations, at least a portion of the approaches described above may be realized by instructions that upon execution cause one or more processing devices to carry out the processes and functions described above. Such instructions may include, for example, interpreted instructions such as script instructions, or executable code, or other instructions stored in a non-transitory computer readable medium. The storage device630may be implemented in a distributed way over a network, for example as a server farm or a set of widely distributed servers, or may be implemented in a single computing device.

The term “system” may encompass all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. A processing system may include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). A processing system may include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.

Terminology

Construction refers to the making or forming of an object (e.g., a building structure, a component of a building structure, etc.) by combining or arranging parts or elements of the object. A building structure is a stationary construction with a roof and walls, such as a house, a ware house, a factory, etc. For example, a plurality of walls and a roof can be used to form a residential building (e.g., a single family unit). A component of a building structure is a constituent part of the structure. For example, the wall panels used to form a wall are components of the wall.

Measurements, sizes, amounts, and the like may be presented herein in a range format. The description in range format is provided merely for convenience and brevity and should not be construed as an inflexible limitation on the scope of the invention. Accordingly, the description of a range should be considered to have specifically disclosed all the possible subranges as well as individual numerical values within that range. For example, description of a range such as 1-20 meters should be considered to have specifically disclosed subranges such as 1 meter, 2 meters, 1-2 meters, less than 2 meters, 10-11 meters, 10-12 meters, 10-13 meters, 10-14 meters, 11-12 meters, 11-13 meters, etc.