This specification relates to computer aided design and simulation for the architecture, engineering, and construction (AEC) field. This specification also relates to calculation of cost metrics associated with physical structures. This specification also relates to visualization of cost metrics projected onto models of physical structures and to mapping of cost metrics between different types of models used in the AEC field.
This specification describes technologies relating to computer aided design and simulation in architecture, engineering, and construction (AEC). The systems and techniques described here can be used to calculate cost metrics associated with physical structures such as multistory buildings and to visualize the cost metrics projected onto a model of the physical structure. The systems and techniques described here can be used to map the cost metrics associated with the physical structure from one type of model to a different type model used in the AEC field.
In general, one or more aspects of the subject matter described in this specification can be embodied in one or more methods (and also one or more non-transitory computer-readable mediums tangibly encoding a computer program operable to cause a processing system to perform operations), including: obtaining, by a processing system, an engineering model of a physical structure, the engineering model specifying structural elements distributed among different levels of the physical structure; obtaining, by the processing system, a value of a cost metric for each of the structural elements; determining, by the processing system, an accumulated value of the cost metric for at least one area of an architectural massing model of the physical structure, the at least one area being associated with a predetermined level of the different levels of the physical structure, the determining including calculating a direct contribution to the accumulated value of the cost metric based on one or more of the structural elements located in the at least one area associated with the predetermined level, and calculating an indirect contribution to the accumulated value of the cost metric based on one or more structural elements located in at least one other area associated with the predetermined level or at least one other level of the different levels, the one or more structural elements located in the at least one other area associated with the predetermined level or the at least one other level being identified from at least one load path from the one or more of the structural elements located in the at least one area associated with the predetermined level; and displaying, by the processing system, using a graphical user interface, the accumulated value of the cost metric for the at least one area of the architectural massing model of the physical structure.
One or more aspects of the subject matter described in this specification can also be embodied in one or more systems including one or more processors; and a computer-readable medium storing instructions that, when performed, cause the one or more processors to perform operations including: obtaining an engineering model of a physical structure, the engineering model specifying structural elements distributed among different levels of the physical structure; obtaining a value of a cost metric for each of the structural elements; determining an accumulated value of the cost metric for at least one area of an architectural massing model of the physical structure, the at least one area being associated with a predetermined level of the different levels of the physical structure, the determining including calculating a direct contribution to the accumulated value of the cost metric based on one or more of the structural elements located in the at least one area associated with the predetermined level, and calculating an indirect contribution to the accumulated value of the cost metric based on one or more structural elements located in at least one other area associated with the predetermined level or at least one other level of the different levels, the one or more structural elements located in the at least one other area associated with the predetermined level or the at least one other level being identified from at least one load path from the one or more of the structural elements located in the at least one area associated with the predetermined level; and displaying using a graphical user interface, the accumulated value of the cost metric for the at least one area of the architectural massing model of the physical structure.
Calculating the indirect contribution to the accumulated value of the cost metric based on the one or more structural elements located in the at least one other area associated with the predetermined level or the at least one other level of the different levels can include: determining the at least one load path from the one or more of the structural elements located in the predetermined level for a predetermined load case; and identifying, for each structural element in the at least one load path, a reverse neighborhood including structural elements that are part of a reverse load path from the structural element to the one or more of the structural elements located in the predetermined level.
Determining an accumulated value of the cost metric for the at least one area can include: determining a set of dependent elements of the area, wherein the set of dependent elements can include the reverse neighborhood of each structural element in the area; and calculating the accumulated value of the cost metric for the area as a difference between i) an accumulated value of the cost metric for the physical structure without the set of dependent elements of the area and ii) an accumulated value of the cost metric for the physical structure without the area and the set of dependent elements of the area.
Determining an accumulated value of the cost metric for the at least one area can include: calculating an accumulated value of the cost metric for the physical structure; applying a load on the area; and calculating the accumulated value of the cost metric for the area as a difference between i) the accumulated value of the cost metric for the physical structure and ii) an accumulated value of the cost metric for the physical structure after applying the load on the area.
The methods and the operations can include, for each of the one or more structural elements located in the at least one other level of the different levels: i) determining a local neighborhood, wherein the local neighborhood can include structural elements adjacent to each structural element; ii) determining the indirect contribution to the accumulated value of the cost metric from the structural elements in the local neighborhood; iii) determining a local weight for each structural element in the local neighborhood; and iii) iteratively transferring the indirect contribution from the structural elements in the local neighborhood along a reverse load path.
Determining the indirect contribution to the accumulated value of the cost metric from the structural elements in the local neighborhood can include, for each structural element in the local neighborhood: removing, for each structural element, forces and/or moments caused on the structural element by one of each of the structural elements in the local neighborhood; and determining, for each structural element, an indirect contribution to the accumulated value of the cost metric from the one of each of the structural elements in the local neighborhood as a difference between a value of the cost metric for the structural element before and after the removing.
Determining the indirect contribution to the accumulated value of the cost metric from the structural elements in the local neighborhood can include, for each structural element in the local neighborhood: applying, for each structural element, a load to the forces and/or moments caused on the structural element by one of each of the structural elements in the local neighborhood; and determining, for each structural element, an indirect contribution to the accumulated value of the cost metric from the one of each of the structural elements in the local neighborhood as a difference between a value of the cost metric for the structural element before and after the applying.
Determining the indirect contribution to the accumulated value of the cost metric from the structural elements in the local neighborhood can include, for each structural element in the local neighborhood: determining, for each structural element, an indirect contribution to the accumulated value of the cost metric from a safety factor as a function of forces and/or moments caused on the structural element by one of each of the structural elements in the local neighborhood.
The cost metric can be one or more of weight, embodied carbon, materials cost, construction cost, and construction time. The methods and the operations can include: displaying, using the graphical user interface, the at least one load path on the engineering model, wherein displaying the at least one load path can include displaying, for one or more structural elements through which the at least one load path passes, one or more of at least one indicator representing a direction of load transfer at the structural element, at least one indicator representing a load at the structural element, and at least one indicator of a structural error condition.
The methods and the operations can include: receiving, using the graphical user interface, a modification to the architectural massing model; making a corresponding modification to the engineering model; displaying, using the graphical user interface, a modified at least one load path on the engineering model; and displaying using the graphical user interface, an updated accumulated value of the cost metric for the at least one area of the architectural massing model.
The methods and the operations can include: receiving at least one load modification; and displaying, using the graphical user interface, a modified at least one load path on the engineering model. The structural error condition can include a gap or a force imbalance in the load path at a junction involving the structural element. The methods and the operations can include displaying using the graphical user interface, suggested modifications to one or more of the load path, the engineering model, the architectural massing model or a combination thereof, until the structural error condition is resolved.
Particular embodiments of the subject matter described in this specification can be implemented to realize one or more of the following advantages. Cost metrics can be accurately calculated using a model of the structure that is convenient for calculations and simulations, such as an engineering/structural model. The cost metrics can be mapped from a model convenient for simulation purposes to a model that is more convenient for visualization purposes without structural mechanics knowledge, such as an architectural massing model. The mapping can be accurately performed using load paths to take into account the impact that architectural features belonging to a level of the physical structure have on the cost of structural elements across several levels of the physical structure and propagate the cost back to its root cause. Metric values displayed onto architectural models such as architectural massing models can be easily interpreted without structural engineering knowledge. Architectural and engineering models can be interactively modified and changes made to one of the models can be automatically propagated to the other. The load paths can be used to assist and guide the user in the automated detection and correction of structural errors in the physical structure. The user can also be guided and assisted in modifying the architectural design in order to optimize a cost metric associated with the physical structure.
The details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the invention will become apparent from the description, the drawings, and the claims.
Like reference numbers and designations in the various drawings indicate like elements.
In some instances, the numerical simulation performed by the systems and techniques described in this document can simulate one or more physical properties and can use one or more types of simulation to produce a numerical assessment of a physical response (e.g., structural response) of the modeled object. For example, finite element analysis (FEA), including linear static FEA, finite difference method(s), boundary element methods and analytical method(s) (e.g., moment distribution method or free body diagrams) can be used.
As used herein, CAD refers to any suitable program used to design physical structures that meet design requirements, regardless of whether or not the program is capable of interfacing with and/or controlling manufacturing equipment. Thus, CAD program(s) 116 can include Computer Aided Engineering (CAE) program(s), Computer Aided Manufacturing (CAM) program(s), Architecture, Engineering, and Construction (AEC) program(s), etc. The program(s) 116 can run locally on computer 110, remotely on a computer of one or more remote computer systems 150 (e.g., one or more third party providers' one or more server systems accessible by the computer 110 via the network 140) or both locally and remotely. Thus, a CAD program 116 can be two or more programs that operate cooperatively on two or more separate computer processors in that one or more programs 116 operating locally at computer 110 can offload processing operations (e.g., geometry generation and/or physical simulation operations) “to the cloud” by having one or more programs 116 on one or more computers 150 perform the offloaded processing operations. In some implementations, geometry generation operations, cost metric calculation and mapping operations, and load path calculation operations are run by one or more programs in the cloud and not in a geometry representation modeler that runs on the local computer. Moreover, in some implementations, the geometry generation, cost metric calculation and mapping, and/or load path calculation operations programs can be run in the cloud from an Application Program Interface (API) that is called by a program, without user input through a graphical user interface.
The CAD program(s) 116 present a user interface (UI) 122 on a display device 120 of the computer 110, which can be operated using one or more input devices 118 of the computer 110 (e.g., keyboard and mouse). Note that while shown as separate devices in
In any case, a user 160 can interact with the CAD program(s) 116 to generate, visualize, and/or optimize different 3D model(s) 132a, 132b. The 3D model(s) can be stored in model document(s) 130. In the example shown in
Architectural massing model 132a is a 3D model including architectural elements representing the outline of the physical structure, e.g., facades, floors, and roofs. Massing model 132a can be used to display cost metrics associated with the physical structure. For example, aggregate values of a cost metric associated with different areas of the architectural massing model 132a can be displayed on the massing model 132a using a color map that associates a set of values of a metric to specific colors.
Engineering model 132b is a 3D structural model that includes structural elements of the physical structure, such as beams, columns, slabs, shear walls, foundations, roof trusses, etc. Each structural element can have an associated value of a cost metric. Values of a cost metric associated with each structural element can be displayed on the structural element in structural model 132a using a color map or other form of visualization.
Structural model 132b can be automatically generated by CAD program(s) 116 using one or more generative design processes. CAD program(s) 116 can generate model 132b automatically based on design objective(s) and constraint(s), i.e., design criteria, where the structural design (i.e., the structural elements of the physical structure) can be iteratively optimized based on simulation feedback (e.g., based on a numerical, physics simulation). Note that, as used herein, “optimization” (or “optimum”) does not mean that the best of all possible designs is achieved in all cases, but rather, that a best (or near to best) design is selected from a finite set of possible designs that can be generated within an allotted time, given the available processing resources. The design criteria can be defined by the user 160, or by another party and imported into the CAD program(s) 116. For example, the structural design can be optimized to resist gravity loads and/or lateral loads.
CM program 116a can be used to determine and visualize cost metrics. For example, program 116a can determine values of cost metrics for each structural element of model 132b and use these values to determine the accumulated values of the cost metrics to be displayed on massing model 132a. LP program 116b can be used to determine one or more load paths in the physical structure to determine the cost associated with each structural element and the contribution of each structural element to the accumulated value of the cost metric associated with different areas of massing model 132a.
The user 160 or another party can select 134a one or more cost metrics to be calculated and displayed. Cost metrics can encompass metrics related to design issues. For example, the user 160 or another party can select 134a metrics such as weight, embodied carbon, materials cost, construction cost, and construction time. Architectural and engineering models can be interactively modified and changes made to one of the models can be automatically propagated 134c to the other in real time. Load paths can also be displayed 134b, for example, on the engineering model 132b. In an example, the one or more load paths can be used to guide the user in performing structural design tasks. The load paths can be used to assist and guide the user in the automated detection and correction of structural errors 134d in the physical structure. The user can also be guided and assisted in modifying the architectural design in order to optimize a cost metric associated to the physical structure.
Once the user is satisfied with the design, structural model 132b can be used to generate a 3D model 130 containing the structural and non-structural elements that will be used in constructing the physical structure. For example, a BIM (Building Information Management) model can be generated. The BIM model can be used to generate a bill of materials (BOM) 135 including elements that will be used for construction. The BOM can be stored, exported to an electronic document, and/or sent to a remote computer system 170, such as one or more construction material providers. Note that an electronic document (which for brevity will simply be referred to as a document) can be a file, but does not necessarily correspond to a file. A document may be stored in a portion of a file that holds other documents, in a single file dedicated to the document in question, or in multiple coordinated files. In addition, the user 160 can save or transmit the 3D model(s) for later use.
In addition, in some implementation, no physical manufacturing is involved. The systems and techniques described herein are applicable to any suitable 3D modelling software. Thus, in some implementations, the CAD program(s) 116 can render the 3D model 132 to a document 165 of an appropriate format for visual display, such as by a digital or a VR or AR projector 174 or other high resolution display device. Other applications are also possible. A user can make design changes to the architectural massing model and/or the engineering model in the VR environment and visualize the impact of the design changes on a cost metric in near real-time.
The individual contributions of structural elements 240, 250 to a cost metric can be used to determine aggregated values of the cost metric to be displayed on the architectural massing model 201. A naïve approach to map a cost metric from the structural elements of structural model 202 to the architectural massing model would be to first determine a per-level value MLi of the metric summing the contributions of all the structural elements that belong to the level Li,
The cost metric MLi associated with a level Li is thus a sum of the costs of all the columns cj from the set of columns CLi, the beams bj from the set of beams BLi, and slabs sj from the set of slabs SLi belonging to that level. In the example of
However, this naïve approach does not provide an accurate overview of the root cause of the cost assigned to an area of the massing model 201. In the example of
The cost of a structural element such as a beam bjLi of the set of beams BLi of a given level Li or a column cjLi of the set of columns CLi in a given level Li can be considered to be an aggregate of cost metrics caused not only by level Li but also the other levels Lk∈L\Li from the set of levels L. The cost of a slab sjLi of the set of slabs SLi of a given level Li does not follow this rule as slabs do not take the load path of other structural elements.
The cost metric MLi associated to level Li can then be calculated taking into account both direct contributions from level Li and indirect contributions from the other
Indirect contributions to cost from areas on the same level can also be taken into account to provide an accurate overview of the root cause of the cost assigned to an area of the architectural massing model. In the example of
As the cost of a structural element located at an area of a given level is related to the loads it sustains, structural elements located at other areas of the same or other levels connected to the structural element via a load path, can contribute to the aggregate cost of the structural element due to load transmission. A load path is the path that a load takes from its point of application to the structural supports of the physical structure, typically the ground. In some examples, load paths can be calculated using finite element analysis, analytical methods. Gravity load paths originate from a slab (the roof slabs in this case) and pass through beams, columns, and walls until they reach the foundations of a building.
Reversing the load path, the contributions to the cost of the structural element can be traced back to the elements originating these contributions. The reverse load path or “cost path” can be used to project the cost of a structural element to the areas of the architectural massing model contributing to the cost of the structural element.
In some examples, other loads can be applied to determine a load path. For example, a seismic load can be applied to all the columns of the physical structure. For example, a lateral load can be applied instead or in addition to a gravity load. A lateral load can be applied to structural elements located at a façade or a portion of a façade of the physical structure. A lateral load can also be applied to shear walls of the physical structure. For example, lateral loads can be used to calculate a cost metric related to wind loading or pressure. Lateral loads can also be used to calculate a cost metric associated to seismic loads related to earthquakes.
At 410, an engineering model of a physical structure is obtained. The engineering model can specify structural elements distributed among different levels of the physical structure. In some examples, obtaining the engineering model can include loading a previously generated engineering model and/or creating the engineering model using generative design techniques and/or a user can interact with the CAD program(s) to generate the engineering model.
At 420, a value of a cost or cost metric for each of the structural elements is obtained. For example, the cost or cost metric can be one or more of weight, embodied carbon, materials cost, construction cost, and construction time. In some examples, the cost metric for a structural element depends on the weight and/or volume of the structural element. In some examples, the weight and/or volume of the structural element can be approximated using the structural element's information from the structural model. In some examples, the weight and/or volume of the structural element can take into account the presence of bolt holes in the structural elements and overlaps between structural elements at joints. In some examples, the materials cost metric for the structural element depends on the type of section of the element, the type of material, the materials cost per section of the element, the loading to which the element is subject, and/or the cost of reinforcements present in the structural element, among others. In some examples, the embodied carbon of a structural element depends on embodied carbon values for the structural element's material. In some examples, the embodied carbon metric can also take into account the section of the structural element.
At 430, an accumulated value of the cost metric for at least one area of an architectural massing model of the physical structure is determined. The at least one area can be associated with a predetermined level (e.g., an upper level) of the different levels of the physical structure. Determining the accumulated value can include calculating 432 a direct contribution to the accumulated value of the cost metric based on one or more of the structural elements located in the at least one area associated with the predetermined level, and calculating 434 an indirect contribution to the accumulated value of the cost metric based on one or more structural elements located in at least one other area associated with the predetermined level or at least one other level (e.g., a lower level) of the different levels, the one or more structural elements located in the at least one other area associated with the predetermined level or at least one other level being identified from at least one load path from the one or more of the structural elements located in the at least one area associated with the predetermined level.
At 440, the accumulated value of the cost metric for the at least one area of the architectural massing model of the physical structure can be displayed using a graphical user interface. In some examples, the processing system can guide and assist a user in modifying the architectural massing model in order to optimize a cost metric associated to the physical structure. For example, a modification to the architectural massing model can be received by the graphical user interface. Changes to the architectural massing model can be automatically propagated to the engineering model. For example, the processing system can make corresponding modifications to the engineering model. In some examples, the engineering model corresponding to the updated architectural massing model can be regenerated using a generative design program.
In some examples, the graphical user interface can be used to display one or more load paths. For example, a load path can be displayed over the structural model, e.g., overlaid using partial transparency. Different types of loads can be selected. For example, one or more of wind load, gravity, seismic, and solid pressure load can be selected to show how the loads are transferred through the structural model. For instance, structural elements through which a load path passes can be highlighted in the structural model. In some examples, the structural elements can be highlighted using an indicator that represents a load at the structural element. For example, the structural elements can be highlighted using a predetermined color. In some examples, the color can be proportional to the load that the structural element supports. In some examples, a numerical indicator of the load supported by the structural element can be displayed in the vicinity of the structural element. In some examples, the structural elements can be highlighted using a direction indicator representing a direction of load transfer at the structural element, such as by using one or more arrows. The directional indicators can help visualize the load transfer through an element. For example, a column may form a T junction with a beam below. The load path can go down through the column and then split in two directions through the beam. Directional indicators such as arrows can be used to show the load transfer in both directions through the beam. In some examples, the size of the direction indicator can be proportional to the load the structural element supports. In some examples, a structural element of the engineering model can be selected using the graphical user interface to highlight the structural elements transferring load from this structural element following a forward load path to the ground. In some examples, a reverse load path can additionally or alternatively be displayed. For example, the reverse load path from a structural element that has been selected using the graphical user interface can be displayed by highlighting the structural elements with a forward load path that passes through this element.
In some examples, the structural elements can also be highlighted using an indicator of a structural error condition. In some examples, the processing system can detect if there is a gap or disconnection in the load path and display a structural error condition indicator on the structural element(s) involved in the gap. For example, the processing system can detect if the structural elements joining at a junction are correctly connected and/or if the load flows in the direction of the load path in agreement with the applied load and/or if the load flows from the beginning of the load path to the end of the load path without gaps in the load path. In some examples, the processing system can check whether the forces at the junctions between structural elements through which the load path passes are in equilibrium. For example, the forces can include one or more of shear forces, axial forces, bending moments, and torsional forces. If the forces are not in equilibrium, the processing system can display a structural error condition indicator on one or more structural elements joined at the junction.
The load path visualization can be used to redesign the building. The processing system can highlight areas of the structural model that need to be redesigned and assist the user in the redesign process. For example, the processing system can display suggested modifications to the architectural massing model, structural model and/or load path until the structural model is structurally sound. For example, the processing system can display suggestions until the structural error condition is resolved.
The load path visualization can also be used to analyze the impact of static and/or dynamic loads on the structure. For example, the loads applied to the structure can be modified. For example, a static and/or a dynamic load can be added to or subtracted from a load applied on the structure. In some examples, a load change can be caused by changes to non-structural assets to be placed inside the structure, such as moving a plant room to a different area in the same or a different level. Changes to the load path caused by the load modification can be visualized. A modified load path can be displayed on the engineering model. In some examples, differences between a load path corresponding to the previous load and the modified load path can be highlighted. For example, the load paths can be visualized during a simulation of a dynamic load such as an earthquake affecting the physical structure. The load path visualization can also be used to analyze the impact of non-structural assets on the structure. For example, a model of an air conditioning (AC) unit can be added to the structure to see how load paths would change after the installation of the AC unit.
In some examples, structural model 202 can be represented as a graph. This can facilitate storage, processing, and/or visualization of load paths and/or reverse load paths in the structure. In some examples, load paths and/or reverse load paths can be stored, processed, and/or visualized as directed or undirected graphs, irrespective of the format in which structural model 202 is stored.
For example, the distribution of cost M10,1310,13 of ground level column <10,13> in
Cost metric Mij of element <ij> can be expressed as
This expression can be normalized by Mij which gives
We can define reverse neighborhood weights rijpq as
The reverse neighborhood weight rijpq represents the ratio of the contribution from edge <pq> to the total cost of edge <ij>. Replacing rijpq in the normalized expression for Mij shows that that the reverse neighborhood weights possess the property of partition of unity, 1=rijij+Σpq∈N
The reverse neighborhood weights rijpq can be used to determine the cost metric of level Li as
where ZLi denotes the set of all edges of graph 500 belonging to level Li.
The reverse neighborhood of a large physical structure would contain a high number of edges. However, direct load transfer only occurs among adjacent elements, that is, immediate neighbors of an element. This defines the “local neighborhood” of an element as the structural elements that share a node with the element. The local neighborhood of element <6,10> 512 is shown in
The cost metric Mij can also be expressed in terms of the indirect contribution from the local neighborhood,
represents the indirect contribution of edge <pq> on <ij> and also the indirect contribution of other edges in the complete reverse neighborhood that make a contribution to edge <pq>. Similarly to the cost metric calculated using the reverse neighborhood, the expression for the cost metric from the local neighborhood can be expressed in terms of local neighborhood weights
as
The local weights also satisfy the partition of unity property.
The local neighborhood approach can be used to compute cost metrics for each level or area of a level.
At 610, a local neighborhood including structural elements adjacent to each structural element is determined. At 620, an indirect contribution to elements in the local neighborhood is determined. At 660, local weights for each element in the local neighborhood are determined. At 670, the indirect contribution from elements in the local neighborhood is iteratively transferred along a reverse load path (cost path). The general framework to iteratively transfer the cost along the reverse load path is detailed in Algorithm 1 below.
The indirect contribution at 620 can be determined using various methods. In an example, a local element removal method 630 is used at 620. Method 630 removes 632, from each element <pq> in the local neighborhood, reactions (forces Fpq and/or moments Bpq) to determine 634 the indirect contribution as a difference between a value of the cost metric before and after the removing,
This can be used to determine 660 the local weights. This may require re-optimizing each element every time an element (with non-zero force or moment transfer) in its local neighborhood is removed. Once local weights are known, the cost from each element can be redistributed to its local neighborhood. To redistribute 670 the cost to the entire reverse neighborhood for computing the cost metric of each level, the indirect cost is progressively transferred 670 from elements in other levels to their local neighborhoods, as described in Algorithm 1 below.
In an example, a local load method 640 is used at 620. This method applies 642 load to the forces and/or moments caused by structural elements in the local neighborhood and determines 644 the indirect contribution as a difference between a value of the cost metric before and after the applying,
This can be used to determine the local weights 660. In an example, these weights can be normalized to satisfy the partition of unity condition,
To redistribute the cost to the entire reverse neighborhood for computing the cost metric of each level, the indirect cost is progressively transferred 670 from elements in other levels to their local neighborhoods, as described in Algorithm 1 below.
In an example, a method based on safety factors 650 is used at 620. This method determines 654 indirect contributions from safety factors as a function of forces and/or moments caused by structural elements in the local neighborhood. A portion of the cost of an element can be associated to a safety factor. The inverse of the safety factor can be used to distribute the cost amongst each of the safety factors,
The cost for each safety factor can be divided amongst each reaction (forces Fpq and/or moments Bpq) based on a total stress σij(sijk) used in the computation of safety factor sijk as
This gives an indirect cost that can be used to determine 660 the local weights,
To redistribute the cost to the entire reverse neighborhood for computing the cost metric of each level, the indirect cost is progressively transferred 670 from elements in other levels to their local neighborhoods, as described in Algorithm 1.
for all levels
that don’t appear in the local neighorhood of any other ele-
:= {(ij)|i,j ∈
, i, j ∉ ∪
, ∀p, q ∈
}
= ∅
≠ ∅ do
that are in the local neighorhood of any elements in
:= {(ij)|i, j ∈ ∪
, ∀p, q ∈
}
Mpq i, j ∈
←
∪
while igoring already processed elements and also update
:= {(ij)|i, j ∈
i, j ∉ ∪
, ∀p, q ∈
}
:= {(ij)|i, j ∈ ∪
, ∀p, q ∈
}
= Σ
Mij
indicates data missing or illegible when filed
Once the local neighborhood weights are known, a set of “active” elements that do not appear in the local neighborhood of any other element can be initiated. This ensures that the algorithm initiates the cost transfer from a set of elements that do not transfer cost to other elements. In some examples, the initial active set includes the foundations of the building, i.e., ground level elements that transfer loading to the ground.
The algorithm progressively transfers cost in the local neighborhood. A set of “receiving” elements can be initiated. The receiving set includes elements that belong to the local neighborhood of any element in the current active set. The indirect contributions from elements in the active set can be transferred to the receiving set. The active set and the receiving set can be updated and the cost transfer repeated until there are no more elements to process in the active set.
Once the indirect cost transfer finishes, the variable Mij has a value that reflects the “true” cost of element <ij>. Accordingly, the design metric for each level Li can now be computed by adding the costs of the elements belonging to that level,
At 710 a set of dependent elements of an area is determined, the set of dependent elements including the reverse neighborhood of each structural element in the area. For example, the set of dependent elements of level Li can be defined as
At 720, the accumulated value for the area as a difference between i) an accumulated value without the set of dependent elements of the area and ii) an accumulated value without the area and the set of dependent elements of the area. For example, for level
Using this method, the approximate cost metrics of each region in the example architectural massing model 201 of physical structure 200 of
Since this is an approximate method, the obtained values might need to be normalized so that the sum of the metrics for the different areas adds up to the total value of the cost metric for the physical structure as
At 810, the accumulated value of the cost metric for the physical structure is calculated.
At 820, a load is applied on the area. For example, if the area corresponds to level Li, a gravity load or a lateral load can be applied to level Li.
At 830, the cost metric for the area is calculated as the difference between the accumulate value for the physical structure with and without the load. For example, if the area corresponds to level Li as the difference between the metric for the physical structure with a load imposed on level Li, ML+δLi and without the load, ML as
wherein δLi works as a normalization factor for the load. The resulting metric also needs to be further normalized as with method 700 so that the sum of the metrics for the different areas adds up to the total value of the cost metric for the physical structure. Variations of this method can involve making a small change to the floor area of each region and computing the sensitivity, i.e. the difference in the cost metric before and after the change.
The data processing apparatus 900 also includes hardware or firmware devices including one or more processors 912, one or more additional devices 914, a computer readable medium 916, a communication interface 918, and one or more user interface devices 920. Each processor 912 is capable of processing instructions for execution within the data processing apparatus 900. In some implementations, the processor 912 is a single or multi-threaded processor. Each processor 912 is capable of processing instructions stored on the computer readable medium 916 or on a storage device such as one of the additional devices 914. The data processing apparatus 900 uses the communication interface 918 to communicate with one or more computers 990, for example, over the network 980. Examples of user interface devices 920 include a display, a camera, a speaker, a microphone, a tactile feedback device, a keyboard, a mouse, and VR and/or AR equipment. The data processing apparatus 900 can store instructions that implement operations associated with the program(s) described above, for example, on the computer readable medium 916 or one or more additional devices 914, for example, one or more of a hard disk device, an optical disk device, a tape device, and a solid state memory device.
Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented using one or more modules of computer program instructions encoded on a non-transitory computer-readable medium for execution by, or to control the operation of, data processing apparatus. The computer-readable medium can be a manufactured product, such as hard drive in a computer system or an optical disc sold through retail channels, or an embedded system. The computer-readable medium can be acquired separately and later encoded with the one or more modules of computer program instructions, e.g., after delivery of the one or more modules of computer program instructions over a wired or wireless network. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, or a combination of one or more of them.
The term “data processing apparatus” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can 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, a runtime environment, or a combination of one or more of them. In addition, the apparatus can employ various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.
A computer program (also known as a program, software, software application, script, or code) can be written in any suitable form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any suitable form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM (Erasable Programmable Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device, e.g., an LCD (liquid crystal display) display device, an OLED (organic light emitting diode) display device, or another monitor, for displaying information to the user, and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any suitable form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any suitable form, including acoustic, speech, or tactile input.
The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a browser user interface through which a user can interact with an implementation of the subject matter described is this specification, or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any suitable form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
While this specification contains many implementation details, these should not be construed as limitations on the scope of what is being or may be claimed, but rather as descriptions of features specific to particular embodiments of the disclosed subject matter. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
Thus, particular embodiments of the invention have been described. Other embodiments are within the scope of the following claims. In addition, actions recited in the claims can be performed in a different order and still achieve desirable results.