The present invention relates generally to generating a building façade design.
The process of designing a building façade, which is the exterior side of a building, has traditionally been a slow, labored process. The process typically starts with a chosen building site or location along with some building design parameters such as building dimensions (e.g., width, or length if considered from the building edge or end), height and/or number of stories for a building with multiple stories, and defined interior spaces (e.g., living spaces, kitchens, bedrooms, bathrooms, etc.). A building façade designer must then specify walls, windows, doors, and any associated architectural and/or aesthetic features (e.g., balconies, awnings, etc.) for each portion of the building exterior, for each floor. As can be imagined, this can take some time, particularly if later design changes are to be made, and typically requires specialized knowledge of a professional building façade designer who must take into account a significant number of building design elements and factors.
Of course, this process of designing a building facade can be fairly straightforward when the specified building design parameters are themselves simple. For example, specifying a one story building of a limited length/width can be an almost trivial building façade design process. However, with a larger building (e.g., multiple floors, overall dimensions, etc.) and a greater number and variety of desired interior units, the building façade design process can become much more complex.
It is for this reason that building designers, who may use various design tools such as Computer-Aided Design and Computer-Aided Manufacturing (“CAD/CAM”) tools, still primarily follow an ad hoc, manual (i.e., mental) process of designing a building facade in order to meet all of the specified building design elements and provide an aesthetically appealing design. As can be imagined, such a manual process can take quite some time and is not easily or quickly revised should one wish to change some of the specified building design elements or consider alternative aesthetic choices. For example, after the building façade designer has painstakingly designed a building facade to meet the various specified building design elements and provide an aesthetically appealing facade, should a different design aesthetic be desired, then the building façade designer most likely will have to revisit many of the steps taken in the manual process in order to prepare a revised building facade, essentially starting over in the building façade design process, a costly and time-consuming endeavor.
This process of designing a building façade has changed somewhat in the modern age with the advent of prefabricated building façade panels. Such prefabricated building façade panels, which are manufactured at some central location before being shipped to the building site, are typically intended to cover some portion of a single floor of a building and already include some combination of doors, windows, and/or wall portions. Use of prefabricated building façade panels has increased in order to reduce construction time and expense. However, using such prefabricated panels typically limits flexibility in interior design layout, which must match the physical arrangement of the prefabricated building façade panels. Using such prefabricated panels also limits the flexibility in architectural features and aesthetics in building façade design because prefabricated building façade panels of the known art allow limited options for a building façade designer to make changes or additions to them.
What is needed, therefore, is an automated approach to generating a building facade design given a set of specified building design parameters. A further need is for such an automated approach to incorporate changes in the specified building parameters while continuing to generate a building façade design in a timely and cost-effective manner.
One embodiment discloses a method for generating an optimized building façade design, the method comprising: generating, by a façade pixel generator module, a collection of façade pixels, wherein each façade pixel in the collection of façade pixels defines a set of façade components; and generating, by a megapanel generator module, a set of defined megapanels, wherein each defined megapanel in the set of defined megapanels comprises a different combination of the generated façade pixels.
In a further embodiment, the method comprises: displaying, by a display and customization module, the building façade design using the generated set of defined megapanels; receiving a user input specifying a change to the generated set of defined megapanels; and displaying, by the display and customization module, the building façade design using the generated set of defined megapanels incorporating the specified change to the generated set of defined megapanels.
In a still further embodiment of the method wherein generating, by the façade pixel generator module, a collection of façade pixels, wherein each façade pixel in the collection of façade pixels defines a set of façade components, comprises: obtaining a building façade boundary of the building for which the building façade design is being generated; dividing the façade boundary into façade frontages according to defined interior spaces of the building for which the building facade design is being generated; locating a façade pixel configuration for each façade frontage by searching a set of predefined façade pixel configurations and finding a matching façade pixel configuration for each of the façade frontages; instantiating each located façade pixel configuration for each façade frontage by adjusting, as needed, each façade pixel configuration to fit dimensions of the façade frontage according to the façade pixel configuration located for that façade pixel; and, arranging the instantiated façade pixels into a façade strip.
In a yet still further embodiment of the method wherein generating, by a megapanel generator module, a set of defined megapanels, wherein each defined megapanel in the set of defined megapanels comprises a different combination of the generated façade pixels, comprises: creating multiple groupings of megapanels wherein each megapanel comprises a set of multiple contiguous façade pixels; and selecting one megapanel grouping from the multiple megapanel groupings.
In a still yet further embodiment of the method wherein creating multiple groupings of megapanels is accomplished using a Subset Sum Problem approach.
In further yet still embodiment of the method wherein selecting one megapanel grouping from the multiple megapanel groupings is based on a calculated score for each of the multiple megapanel groupings.
Another embodiment discloses a system for generating an optimized building façade design, the system comprising; a façade pixel generator module configured to generate a collection of façade pixels, wherein each façade pixel in the collection of façade pixels defines a set of façade components; and a megapanel generator module configured to generate a set of defined megapanels, wherein each defined megapanel in the set of defined megapanels comprises a different combination of the generated façade pixels.
In a further embodiment, the system further comprises: a display and customization module, the display and customization module configured to display the building façade design using the generated set of defined megapanels; receive a user input specifying a change to the generated set of defined megapanels; and display the building façade design using the generated set of defined megapanels incorporating the specified change to the generated set of defined megapanels.
In a still further embodiment of the system, wherein the façade pixel generator module configured to generate a collection of façade pixels, wherein each façade pixel in the collection of façade pixels defines a set of façade components, is further configured to: obtain a building façade boundary of the building for which the building façade design is being generated; divide the façade boundary into façade frontages according to defined interior spaces of the building for which the building facade design is being generated; locate a façade pixel configuration for each façade frontage by searching a set of predefined façade pixel configurations and finding a matching façade pixel configuration for each of the façade frontages; instantiate each located façade pixel configuration for each façade frontage by adjusting, as needed, each façade pixel configuration to fit dimensions of the façade frontage according to the façade pixel configuration located for that façade pixel; and, arrange the instantiated façade pixels into a façade strip.
In a yet still further embodiment of the system, wherein the megapanel generator module configured to generate a set of defined megapanels, wherein each defined megapanel in the set of defined megapanels comprises a different combination of the generated façade pixels, is further configured to: create multiple groupings of megapanels wherein each megapanel comprises a set of multiple contiguous façade pixels; and select one megapanel grouping from the multiple megapanel groupings.
In a still yet further embodiment of the system, wherein the megapanel generator module configured to create multiple groupings of megapanels is configured to create the multiple groupings of megapanels using a Subset Sum Problem approach.
In a further yet still embodiment of the system, wherein the system further configured to select one megapanel grouping from the multiple megapanel groupings is further configured to make the selection based on a calculated score for each of the multiple megapanel groupings
A method and apparatus is disclosed herein for automatically generating an optimized building facade design given a set of building design parameters including a specified interior layout.
Referring now to the system diagram of
In one embodiment, as has been explained, generating a building façade design uses specified building parameters. Using this information, referring now to
It is to be understood that any or all of the above processes performed by the corresponding modules shown in the Façade Design Generation System 100 of
It is to be further understood in light of the teachings herein that any part or all of the automated process of flowchart 200 can be repeated as needed to accommodate changes in the specified building parameters or design choices. Thus, after the system and method described herein has automatically generated one building facade design based on one set of specified building parameters, the system and method can automatically generate another building facade design based on a specified different set of building parameters and/or design choices. For example, the present approach can be used to automatically generate a different building facade design by specifying different design choices or a different façade design preset as described elsewhere herein. This means that the present automated approach can be performed iteratively as different building parameters and/or design choices are considered.
Such iterative processing of the present approach thus provides for essentially real-time generation and evaluation of different building façade designs using alternative building parameters without incurring the time and expense of the ad-hoc, non-optimized, manual building façade design approach presently known.
In accordance with one embodiment, a more detailed example of the present approach will now be explained.
Referring now to
In step 310, a façade boundary is obtained. In particular, in one embodiment, Façade Pixel Generator Module 110 of
In step 320, the obtained Façade Boundary is divided into Façade Frontages according to defined interior spaces of the building. In particular, in one embodiment, Façade Pixel Generator Module 110 of
Again, the Façade Frontages correspond to the defined interior spaces of the building. In one embodiment, the Façade Frontages are specified by length (e.g., length of the defined interior space) and type of defined interior space (e.g., living space, bedroom, bathroom, kitchen, etc.). For example, if the defined interior space is a kitchen then the Façade Frontage would be, for example, a length of 10 feet with a defined interior space of kitchen whereas if the defined interior space is a living space then the Façade Frontage would be, for example, a length of 20 foot with a defined interior space of living space.
In step 330, Façade Pixel Configurations that match the Façade Frontages are located. In particular, in one embodiment, Façade Pixel Generator Module 110 of
For example, referring now to
In various embodiments, the Façade Pixel Configurations shown in
Referring now to
It can now be seen that the predefined Façade Pixel Configurations of
Referring again to
Using an example of a façade frontage having a defined interior space of a bedroom having a length of 15 feet, searching through the table of
Pixel ratio is used to instantiate a Façade Pixel according to the specified length of the façade frontage and as specified in the Pixel Façade Configuration. In one embodiment, pixel ratio is used according to the following formula: a) pixel ratios are defined to suit the range of length of preset; b) if there is at least one negative value in the pixel ratio, it is a ratio from 0.0 to 1.0 (so calculate length value for each value, e.g., with pixel preset pixel ratio values of [−0.4, −0.6] and total length of frontage of 12 feet, the resultant pixel length values are 4.8 feet (0.4*12 feet) and 7.2 feet (0.6*12 feet)); and c) if there is no negative value in the pixel ratio then calculate the length value for each None value (according to the formula (Total Length−Sum)/N) where Sum is the sum of defined values and N is the count of None value (e.g., if preset pixel ratio values=[None, 3, 3, 3, None) and Total Length of frontage is 12 feet then None=(12−(3+3+3))/2=1.5 feet and the resultant pixel length values in feet=[1.5, 3, 3, 3, 1.5]).
Again using the example of a façade frontage having a defined interior space of a bedroom having a length of 15 feet, specified by the predefined pixel configuration of “[W4”, “D4,b1”]”, which as can be seen in the fourth row of the table of
A similar process of locating matches for each of the Façade Frontages in the Façade Pixel Configurations in step 330 and instantiating each of the Façade Pixels for each of them in step 340 is performed.
In step 350, the Façade Pixels instantiated in step 340 are arranged into a Façade Strip, which is the sequence of instantiated Façade Pixels also indicating relevant building floor number for each. In particular, in one embodiment, Façade Pixel Generator Module 110 of
As now shown and explained, in one embodiment, Façade Pixel Generator Module 110 of
It is to be understood that the façade components of
In a still further embodiment, the Façade Pixel Configurations of
Referring now to
In step 510, multiple groupings of MegaPanels are created from Façade Pixels where each MegaPanel is made up of a set of multiple contiguous Façade Pixels. In one embodiment, MegaPanel Generator Module 120 of
In one embodiment, the present approach seeks to minimize the number of different MegaPanels created in order to maximize uniformity of the created MegaPanels. This is thus an optimization process which aims to improve logistics, component handling, reduces installation time and provides other benefits, as explained further elsewhere herein.
In one embodiment, grouping Façade Pixels into MegaPanels is accomplished using a computer science decision problem called a Subset Sum Problem where, given a multiset of positive integers and a target sum T, a group of all subsets of the numbers is created while keeping positional order of the contiguous Façade Pixels, such that each subset sums to precisely T or close to T with a tolerance threshold (i.e., range). Stated slightly differently, given an ordered set of Façade Pixels with various lengths, the Façade Pixels are grouped such that the sum (of the length) of each group of Façade Pixels matches a target MegaPanel size of, for example, 12 to 25 feet.
For example, given an ordered set of Façade Pixels with sizes (e.g., in feet) of [5,4,3,5,3,4,5,3,4,5,4,3], one resulting grouping into MegaPanels could be [(5,4,3,5,3,4), (5,3,4,5,4,3)] meaning 2 MegaPanels with sizes of [24, 24] (thus 2 unique MegaPanels of 24 feet each, and the most optimized) while an alternative resulting grouping into MegaPanels could be [(5,4,3), (5,3,4), (5,4,3), (5,3,4)] meaning 4 MegaPanels with sizes of [12, 12, 12, 12} (thus also 2 unique MegaPanels of 12 feet each, where each MegaPanel occurs twice, but not the most optimized, at least in a preferred embodiment which considers cost effectiveness, i.e., manufacturing, installation time and cost, as a primary factor).
Two example implementations of grouping a sequence of Façade Pixels into MegaPanels will now be described with reference to associated figures.
Referring now to
In step 610, starting with a current index value of zero, a starting index value (e.g., a pointer to the beginning of the sequence of Façade Pixels) is set to be the current index value. In step 620, the sum length of the list of Façade Pixels up to and including a next index value of the current index value plus 1 (thereby incrementing to the next sequential Façade Pixel) is calculated. In step 630, a determination is made regarding whether the sum calculated in step 620 matches (or is within a target threshold range of) the MegaPanel target size (e.g., 25 feet). If the calculated sum does not match (or is not within range of), the process returns to step 620 and the sum length is again calculated by including a next index value of the current index value plus 1 (thereby further incrementing to the next sequential Façade Pixel). Step 630 is then repeated to again determine whether the calculated sum matches (or is within a target threshold range of) the MegaPanel target size. Once the calculated sum matches (or is within range of) the MegaPanel target size, the process continues to step 640 where the starting index value and the current index value are saved as a subset of Façade Pixel values defining a MegaPanel. In step 650, a determination is made regarding whether there are any more Façade Pixels to be considered for grouping into MegaPanels. If there are, then the process proceeds to step 660 where the starting index value is set to the current index value (incremented as described above) and the process then returns to step 620 to continue evaluating Façade Pixels for grouping into MegaPanels, otherwise the process concludes having completed generating MegaPanels from the Façade Pixels.
Referring now to
In step 705, an estimated number of sets (N) of MegaPanel groupings is determined by dividing the total sum (i.e., length) of the set of sequential Façade Pixels by a target sum (e.g., 25 feet). In step 710, the set of sequential Façade Pixels are subdivided into N subsets of equal size. In step 715, one of the subsets of Façade Pixels is selected. In step 720, a determination is made regarding whether a total length of the selected subset matches (or is within a target threshold range) of the MegaPanel target size (e.g., 25 feet). If smaller, then the Façade Pixel subset size is increased in step 717 and step 720 is repeated. If larger, then the Façade Pixel subset size is decreased in step 719 and step 720 is repeated. This continues until the determination made in step 720 is that the Façade Pixel subset size matches (or is within a target threshold range) of the MegaPanel target size. The process continues to step 725 where a determination is made regarding whether all of the Façade Pixel subsets of the current subset size match (or are within the target threshold range) of the MegaPanel target size. If any one of the remaining Façade Pixel subsets does not match (or is not within the target threshold range) of the MegaPanel target size, the process continues to a next Façade Pixel subset, in step 722, by returning to step 715 to select that next Façade Pixel subset and repeat the process with respect to that newly selected Façade Pixel subset. If, however, all of the remaining Façade Pixel subsets match (or are within the target threshold range of) the MegaPanel target size, it is determined in step 730 that a MegaPanel grouping solution has been found resulting in a grouping of sequential Façade Pixels into MegaPanels in step 740, otherwise the process proceeds to step 735 where the number of Façade Pixel subsets is incremented by one and then, by returning to step 710, where the entire set of sequential Façade Pixels is subdivided into N+1 subsets of equal size and the process continues.
As has thus been shown by example, more than one grouping of Façade Pixels into MegaPanels is created in one embodiment, and by various alternative methods.
Referring again to
Referring now to
In step 905, a grouping of Façade MegaPanels (e.g., one of those created as explained with reference to
In step 915, a determination is made regarding whether the obtained Façade MegaPanel matches any Unique Façade MegaPanels already identified in the grouping of Façade MegaPanels. If the obtained Façade MegaPanel does not match any identified Unique Façade MegaPanel from the grouping of Façade MegaPanels in step 915, this means the obtained Façade MegaPanel is a Unique Façade MegaPanel in which case, in step 920, it is saved as a new Unique Façade MegaPanel, along with initializing an associated counter to one.
Conversely, if the obtained Façade MegaPanel does match an identified Unique Façade MegaPanel from the grouping of Façade MegaPanels in step 915, this means the obtained Façade MegaPanel is not a Unique Façade MegaPanel in which case, in step 925, the matching obtained Façade MegaPanel is registered (i.e., notated) to indicate the match and the counter for that matched Unique Façade MegaPanel is increased by one thereby indicating that another instance of that Unique Façade MegaPanel exists in the grouping of Façade MegaPanels.
A determination is made, in step 930, regarding whether there are any more Façade MegaPanels in the grouping of Façade MegaPanels, and if so the process returns to step 910 to obtain the next Façade MegaPanel in the grouping of Façade MegaPanels and the process continues.
Conversely, if the determination made in step 930 is that there are no more Façade MegaPanels in the grouping of Façade MegaPanels then all unique Façade MegaPanels in the grouping of Façade MegaPanels, and the number of each, has been determined. The process then proceeds to step 935 where the set of unique Façade MegaPanels in the grouping of Façade MegaPanels is scored as will now be explained.
As will be understood in light of the teachings herein, scoring a set of unique Façade MegaPanels in a grouping of Façade MegaPanels can vary dependent upon differing criteria. As will also be understood in light of the teachings herein, while Façade Pixel lengths constrain MegaPanel size, the type of Façade Pixels in a given MegaPanel determines its uniqueness (e.g., a subset of Façade Pixels [“W4”,“W4”,“W4”,“W4”,“D4,b1”] is not identical to a subset of Façade Pixels [“W3”,“W4”,“W4”,“W4”,“D4,b1”], each as was explained with reference to
In this example, the manufacturing cost of a large (longer) MegaPanel is $10 while that of a small (shorter) MegaPanel is $7. Further, in this example, the delivery cost of a large (longer) MegaPanel is $10 while that of a small (shorter) MegaPanel is $2.
In a first set of Unique Façade MegaPanels, there are 2 subsets of Façade Pixels with 2 unique subsets such that 2 large MegaPanels cost 2*$10=$20 to make and 2*$10=$20 to transport for a total cost of $20+$20=$40.
In a second set of Unique Façade MegaPanels there are 4 subsets of Façade Pixels with 4 unique subsets such that 4 small MegaPanels cost 4*$7=$28 to make and 4*$2=$8 to transport for a total cost of $28+$8=$36.
In a third set of Unique Façade MegaPanels there are 4 subsets of Façade Pixels with 2 unique subsets such that 1 large MegaPanel costs 1*$10=$10 to make and 1*$10 =$10 to transport while 2 small MegaPanels cost 2*$7=$14 to make and 2*$2=$4 to transport for a total cost of $10+$10+$14+$4=$38.
If the criterion for scoring is minimizing uniqueness (or stated conversely, maximizing uniformity), then the most optimized solution is the first set of Unique Façade MegaPanels because it has the lowest number of unique subsets, namely 2 in this example. However, if the criterion for scoring is minimizing cost, then the most optimized solution is the second set of Unique Façade MegaPanels because it has the lowest cost, namely $36 in this example.
As is thus now evident, scoring a set of unique Façade MegaPanels in a grouping of Façade MegaPanels is an optimization process that varies dependent upon which criteria is specified, which criteria is itself dependent upon underlying factors such as manufacturing and transportation costs. Specifying such criteria, which can be predefined in the system of the present approach and/or be user-selectable in a given implementation, thus directs selection between different MegaPanel groupings in step 520, with reference again to
Continuing with reference to
In step 540, also an optional step as indicated by the dashed line, Façade Design Generation System 100 facilitates customization by the façade designer. In one embodiment, such customization is performed by the façade designer selecting one or more of the Façade Components, Façade Pixels, Façade Design preset(s), and/or MegaPanels and directing the system (e.g., via a graphical user interface or other known computer interactive means) to alter the generated façade (e.g., adding balconies, awnings, or other design elements, as desired). As a result, the present system repeats those portions of automatic façade generation as are needed to incorporate the façade designer's changes, thereby defining any new Façade Pixels and/or creating any new MegaPanels as needed according to the approach described and shown herein.
A further example of generating a building façade design according to one embodiment of the present approach will now be shown and described. In this example, included in the system is a Façade Design Preset #1 that has design goals of comfortable living, maximizing façade openings, and minimizing costs of window production. To meet these goals, the following strategies are employed in this façade design preset: 1) each living room has one balcony; 2) windows are placed on all façade frontages for living room and bedroom spaces; 3) windows are all the same width (e.g., 4.5 feet) and as many windows as possible are used; and, 4) walls are used as a flexible Façade Pixel to adjust for variations in frontage length. An example of at least a portion of a Pixel Configuration according to Façade Design Preset #1 can be seen in
According to the process described above with reference to
This configuration thus generates a 4.5 foot wide window, a 3 foot wide door (with a balcony), and a 4.5 foot wide window at this bedroom frontage having a total length of 12 feet. However, should the façade designer instead select Façade Design preset #1, perhaps because it better fits with their design goals, then a different matching Pixel Configuration would be found. Having selected Façade Design preset #1, with reference to the first row in
As has now been explained, the present approach automatically generates a building façade design given a set of building design parameters. Further, the present approach can automatically generate a different building façade design given a different set of building design parameters and can do so without necessarily having to repeat all of the operations performed when generating a previous building façade design. Still further, the present approach can automatically generate a different building façade design given a different preset selection. This provides the ability to realize different building designs in essentially real-time thus allowing alternatives to be considered. Further still, the present approach can be performed not only by an experienced building façade designer but also by an inexperienced or non-professional person to design an optimized building façade.
The primary example described herein is the generation of a building façade design for an apartment building. However, it is to be understood in light of the teachings herein that the present approach is equally applicable to any type of building that is to contain a mix of different unit types with a defined width (or length). As such, the present approach can be used to generate a building façade design for a condominium building, an office building, a hotel, a hospital, a parking structure, or any other residential or commercial structure. Further, it is to be understood that the approach described herein is agnostic to and therefore not dependent upon nor necessarily use any interior features (e.g., walls, etc.) of the units, whether specified or not, in generating a building façade design.
The disclosed system and method has been explained above with reference to several embodiments. Other embodiments will be apparent to those skilled in the art in light of this disclosure. Certain aspects of the described method and apparatus may readily be implemented using configurations or steps other than those described in the embodiments above, or in conjunction with elements other than or in addition to those described above. It will also be apparent that in some instances the order of steps described herein may be altered without changing the result or performance of all of the described steps.
There may be a single computing system, server or processor, or multiple computing systems, servers or processors to implement the system and perform the different functions described herein. One of skill in the art will appreciate how to determine which and how many of each will be appropriate for a specific intended application.
Further, it should also be appreciated that the described method and apparatus can be implemented in numerous ways, including as a process, an apparatus, or a system. The methods described herein may be implemented by program instructions for instructing a processor to perform such methods, and such instructions recorded on a non-transitory computer readable storage medium such as a hard disk drive, floppy disk, optical disc such as a compact disc (CD) or digital versatile disc (DVD), flash memory, etc., or communicated over a computer network wherein the program instructions are sent over optical or electronic communication links. It should be noted that the order of the steps of the methods described herein may be altered and still be within the scope of the disclosure.
These and other variations upon the embodiments described and shown herein are intended to be covered by the present disclosure, which is limited only by the appended claims.
In the foregoing specification, the invention is described with reference to specific embodiments thereof, but those skilled in the art will recognize that the invention is not limited thereto. Various features and aspects of the above-described invention may be used individually or jointly. Further, the invention can be utilized in any number of environments and applications beyond those described herein without departing from the broader spirit and scope of the specification. The specification and drawings are, accordingly, to be regarded as illustrative rather than restrictive. It will be recognized that the terms “comprising,” “including,” and “having,” as used herein, are specifically intended to be read as open-ended terms of art.