BACKGROUND1. The Field of the Invention[0001]
This invention relates to software and computer systems and, more particularly, to novel systems and methods for design modeling of fluid and energy handling systems.[0002]
2. The Background Art[0003]
The need to condition the environment in which people live has existed as long as sun, rain, and winter storms. The solutions have been many and varied, depending on the availability of shelter, fuels, cooling materials, insulation, fans, and so forth. In more recent history, refrigeration systems, heating systems, and their various combinations have taken advantage of new thermodynamic cycles and a wide variety of working fluids.[0004]
Nevertheless, much of the process of designing systems for heating, ventilating, and air conditioning (HVAC) is an iterative process of design and analysis. Moreover, a change in a parameter may affect the performance of many other parameters, or limit the applicability of other equipment, configurations, or analyses. Also, the methods used for design and analysis will often require considerable familiarity with both engineering principles and available manufactured equipment. Much of the design process is beyond the intuitive sense of an individual. Documentation is likewise esoteric and non-intuitive.[0005]
What is needed is a system for rapidly designing, analyzing, and redesigning HVAC systems. It would be an advancement in the art to rely on an object oriented programming system and intuitive, visual icons. It would be a further advance in the art to provide automatic calculation of interface information, thus keeping the specifications and performance parameters consistent among associated components.[0006]
There are many stages involved in the design and implementation of an HVAC system. The first stage is to design a building that an HVAC system will serve. A loads program is used to calculate airflow and heating requirements for the building, based on established codes. An HVAC system must then be designed, using available components. A control system must be designed to control the HVAC system. And finally, all the components of the system must be purchased and installed. This process requires that each step use the output of a previous step. Often, the data used by one step must be manually extracted from the output data of a preceding step. The extracted data may then need to be manually converted to a computer readable form.[0007]
What is needed is a system capable of integrating the many steps of the design process, enabling each step to automatically extract needed information from the preceding step. Such a system would enable for information to be entered into a computer once, rather than at each stage of the design process.[0008]
BRIEF SUMMARY AND OBJECTS OF THE INVENTIONIn view of the foregoing, it is a primary object of the present invention to provide an apparatus and method to design, analyze, and document HVAC systems.[0009]
It is an object to provide an intuitive, graphical system relying on object-oriented programming and intuitive icons.[0010]
It is an object of the present invention to enable a designer to easily create many different, yet consistently schematic representations of various aspects of the same design.[0011]
It is an object of the present invention to provide a method and apparatus to integrate steps of the design process into a single system, enabling each step to automatically use the output of a preceding step.[0012]
is an object of the present invention to provide a method and apparatus to access the descriptions of actual HVAC system equipment and use them in the design and analysis processes.[0013]
It is an object of the present invention to provide a software application for interacting directly with software independently provided by an equipment vendor unrelated to the designer or the provider of HVAC system design software. This enables an HVAC system designer to more easily use the actual properties of available components in the design and analysis process.[0014]
It is an object of the present invention to provide a system for automatically determining design parameters, freeing a user from having to make numerous routine design decisions, and reducing the level of skill required to design an HVAC system.[0015]
It is an object of the present invention to provide a system to create a design for an HVAC system and use that design to create a plan or design of a corresponding control system for controlling an implementation of the HVAC design.[0016]
It is an object of the present invention to provide a system for automatically obtaining information concerning manufactured equipment suitable for use in an HVAC system. This may include new products, modifications made to the properties of existing products, the current cost of products, the availability of products, and the like.[0017]
It is an object of the present invention to provide a system enabling a user to contact businesses supplying or manufacturing HVAC system equipment components (design elements).[0018]
It is an object of the present invention to provide a system whereby a business may be credited financially for providing software to a user who subsequently uses the software to make a purchasing decision. This may involve a manufacturer paying a commission to the provider of the software whenever a user of the software decides to use the manufacturer's equipment in a design provided by the software.[0019]
Consistent with the foregoing objects, and in accordance with the invention as embodied and broadly described herein, a method and apparatus are disclosed in one embodiment of the present invention as including an application that is executable on a general purpose digital computer. The application presents graphical icons representing equipment, connectors, and all other components (collectively, design elements) that may be used to assemble a model of an HVAC system, including all specified components operably connected together.[0020]
An apparatus and method in accordance with the invention may include an article configured as a computer-readable medium storing data structures of both executable and operational types. Data structures may include an input module configured to receive inputs corresponding to design elements, characterized by properties stored in records, the design elements being connectable to establish an HVAC system to be designed. The system may include a design module operably connected to the input module and configured to operate on the inputs to create the records reflecting the properties of the design elements and interactions thereof to establish a design of the HVAC system.[0021]
The input module and design module together may be further configured to automatically provide multiple schematic representations of a selected design element, selected from the design elements. The multiple schematic representations may reflect distinct operational contexts of the selected design element. These modules may be programmed to automatically maintain substantially complete and consistent information in the records, describing the properties of the selected design element in each of the distinct operational contexts.[0022]
The system may include an output module configured to provide user-interpretable output, machine interpretable output, or both, reflecting the design of the HVAC system. In certain embodiments the system may further comprise a user interface module configured to receive inputs from a user to control selection, relative positioning, and properties of design elements of the HVAC system to be designed. The user interface may also output to a user a graphical representation of the HVAC system reflecting the selection, relative positioning, and properties of the design elements.[0023]
The input module and user interface module may be configured to interface with the design module substantially independently from one another. The input module may include the user interface module configured to receive inputs from a user to control selection, relative positioning, and properties of design elements of the HVAC system to be designed. The user interface module may also output to a user a graphical representation of the HVAC system reflecting the selection, relative positioning, and properties of the design elements.[0024]
The operational contexts may be selected from such conditions or events as mass transport, energy transport, space considerations, power or other performance limitations, or the like. Mass transport may include at least one of air transport and water transport. Energy transport may include one or more modes such as heating or cooling with respect to any selected design element (e.g. hardware, component).[0025]
A selected design element may be or include a product available from a vendor, independent from the system design software provider. The product may be characterized by product properties. The design module may include a specification module, executable to assign the product properties as the properties of the selected design element.[0026]
The data structures may include a product module configured to manage data reflecting the product properties. The product module itself may include an updating module configured to update the product properties.[0027]
In certain embodiments, the data structures may include a communication module configured to automatically establish communication between a user and the vendor of the product. The communication module may be tasked with making inquiries of the vendor, placing orders with the vendor, and downloading updated values of the product properties from the vendor.[0028]
The system may interact with one or more third party modules provided by a third party, where a product module holds all data and interfaces with vendor software. The data structures may include or interact with a load module configured to provide, to the input module, HVAC loading parameters required to be accommodated by the HVAC system design, a CAD module configured to provide, to the input module, data reflecting a design of an edifice to be serviced by the design of the HVAC system, or both. The product module may be configured to specify products available for sale and meeting requirements to be the design elements.[0029]
A compensation module may be configured to identify monetary compensation due to a user from vendors of the products specified as design elements in the HVAC system design. The input module may be configured to interact with one or more other modules or applications. Examples include a CAD module provided by an independent third party, or with the system of the invention, to provide, to the input module, data reflecting a design of an edifice to be serviced by the design of the HVAC system. Likewise, a load module may interact, being configured to receive outputs from the CAD module and provide, to the input module, HVAC loading parameters required to be met by the HVAC system design. Also, or instead, a vendor module may be provided by an independent vendor and configured to specify products available for sale and meeting the requirements to be the design elements.[0030]
The output module may be further configured to do at least one of several tasks. Tasks may include generating reports, drawing schematic illustrations, providing schedules of components, and providing performance analyses reflecting the design elements. The product module may also include a specification module configured to provide a detailed specification for an arbitrary number of selected design elements. The product module may have product data corresponding to products available from vendors to serve as the design elements. Also, the specification module may include a filter module configured to sort the products by features thereof and priorities of the features, each selectable by a user, in order to automatically specify detailed parameters characterizing a product selected by a user to serve as the selected design element.[0031]
The user interface may further include a selection module providing a palette of icons representing design elements selectable arbitrarily by a user and connectable to one another in a schematic work space to establish the HVAC system design.[0032]
A method for designing an HVAC system may include providing a database having records and configured to manage values of properties corresponding to design elements corresponding to substantially all physical components and connections available for creating an HVAC system design; providing a user interface configured to represent design elements arbitrarily selectable by a user and connectable to one another in a schematic to establish the HVAC system design; providing, automatically, default values corresponding to the properties corresponding to the design elements; selecting arbitrarily, from the design elements, by a user, an arbitrary number of selected design elements to be interconnected in the HVAC system design; selecting, by a user, a relative location and interconnections corresponding to each arbitrary design element; calculating, automatically, values of properties characterizing the arbitrary design elements; validating correctness of the interconnections and properties; calculating performance parameters corresponding to the HVAC system design; and providing drawings defining the HVAC system design for construction.[0033]
BRIEF DESCRIPTION OF THE DRAWINGSThe foregoing and other objects and features of the present invention will become more fully apparent from the following description, taken in conjunction with the accompanying drawings. Understanding that these drawings depict only typical embodiments of the invention and are, therefore, not to be considered limiting of its scope, the invention may be seen in additional specificity and detail in the accompanying drawings where:[0034]
FIG. 1 is an illustration of a general purpose computer suitable for use in accordance with the present invention;[0035]
FIG. 2 is a schematic block diagram of data structures suitable for implementing at least one embodiment of an apparatus and method in accordance with the invention;[0036]
FIG. 3 is a schematic block diagram of data structures suitable for implementing a data module;[0037]
FIG. 4 is a schematic block diagram of data structures suitable for implementing a user interface module in accordance with the invention;[0038]
FIG. 5 is an illustration of a user interface in accordance with the invention showing different schematic representations of a design element;[0039]
FIG. 6 is an illustration of a user interface in accordance with the invention showing features of the connections between design elements;[0040]
FIG. 7 is an illustration of a user interface in accordance with the invention showing the modification of the properties of a design element;[0041]
FIG. 8 is an illustration of a user interface in accordance with the invention showing novel features of the connections between design elements;[0042]
FIG. 9 is an illustration of a user interface in accordance with the invention showing novel features of the connections between design elements;[0043]
FIG. 10 is a schematic block diagram of data structures suitable for implementing a product module in accordance with the invention;[0044]
FIG. 11 is a schematic block diagram of data structures suitable for implementing a design module in accordance with the invention;[0045]
FIG. 12 is a schematic block diagram of data structures suitable for implementing an analysis module in accordance with the invention;[0046]
FIG. 13 is a schematic block diagram of data structures suitable for implementing an input module in accordance with the invention;[0047]
FIG. 14 is a schematic block diagram of data structures suitable for implementing an output module in accordance with the invention;[0048]
FIG. 15 is a schematic block diagram illustrating at least one embodiment of a hierarchical object oriented architecture suitable for use in the invention;[0049]
FIG. 16 is a schematic block diagram of data structures suitable for implementing a project object in accordance with the invention;[0050]
FIG. 17 is a schematic block diagram of data structures suitable for implementing a shape object in accordance with the invention;[0051]
FIG. 18 is a schematic block diagram of data structures suitable for implementing a component object in accordance with the invention;[0052]
FIG. 19 is a schematic block diagram of data structures suitable for implementing a connector object in accordance with the invention; and[0053]
FIG. 21 is a schematic block diagram of data structures suitable for implementing an information updating object in accordance with the invention[0054]
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTSIt will be readily understood that the components of the present invention, as generally described and illustrated in the Figures herein, could be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of the embodiments of the system and method of the present invention, as represented in FIGS. 1 through 21, is not intended to limit the scope of the invention, as claimed, but it is merely representative of certain presently preferred embodiments in accordance with the invention. These embodiments will be best understood by reference to the drawings, wherein like parts are designated by like numerals throughout.[0055]
Those of ordinary skill in the art will, of course, appreciate that various modifications to the details illustrated FIGS.[0056]1-21 may easily be made without departing from the essential characteristics of the invention. Thus, the following description is intended only by way of example, and simply illustrates certain presently preferred embodiments consistent with the invention as claimed herein.
Referring now to FIG. 1, an[0057]apparatus10 may include a node11 (client11, computer11) containing aprocessor12 orCPU12. TheCPU12 may be operably connected to amemory device14. Amemory device14 may include one or more devices such as ahard drive16 ornon-volatile storage device16, a read-only memory18 (ROM) and a random-access (and usually volatile) memory20 (RAM).
The[0058]apparatus10 may include aninput device22 for receiving inputs from a user or another device. Similarly, anoutput device24 may be provided within thenode11, or accessible within theapparatus10. A network card26 (interface card) orport28 may be provided for connecting to outside devices, such as thenetwork30.
Internally, a bus[0059]32 (system bus32) may operably interconnect theprocessor12,memory devices14,input devices22,output devices24,network card26 andport28. Thebus32 may be thought of as a data carrier. As such, thebus32 may be embodied in numerous configurations. Wire, fiber optic line, wireless electromagnetic communications by visible light, infrared, and radio frequencies may likewise be implemented as appropriate for thebus32 and thenetwork30.
[0060]Input devices22 may include one or more physical embodiments. For example, akeyboard34 may be used for interaction with the user, as may amouse36. Atouch screen38, atelephone39, or simply atelephone line39, may be used for communication with other devices, with a user, or the like.
Similarly, a[0061]scanner40 may be used to receive graphical inputs which may or may not be translated to other character formats. Ahard drive41 orother memory device14 may be used as an input device whether resident within thenode11 or some other node52 (e.g.,52a,52b,etc.) on thenetwork30, or from anothernetwork50.
[0062]Output devices24 may likewise include one or more physical hardware units. For example, in general, theport28 may be used to accept inputs and send outputs from thenode11. Nevertheless, amonitor42 may provide outputs to a user for feedback during a process, or for assisting two-way communication between theprocessor12 and a user. Aprinter44 or ahard drive46 may be used for outputting information asoutput devices24.
In general, a[0063]network30 to which anode11 connects may, in turn, be connected through arouter48 to anothernetwork50. In general, twonodes11,52 may be on anetwork30, adjoiningnetworks30,50, or may be separated bymultiple routers48 andmultiple networks50 asindividual nodes11,52 on an internetwork. Theindividual nodes52 may have various communication capabilities.
In certain embodiments, a minimum of logical capability may be available in any[0064]node52. Note that any of theindividual nodes52, regardless of trailing reference letters, may be referred to, as may all together, as anode52 ornodes52.
A[0065]network30 may include one ormore servers54. Servers may be used to manage, store, communicate, transfer, access, update, and the like, any number of files for anetwork30. Typically, aserver54 may be accessed by allnodes11,52 on anetwork30. Nevertheless, other special functions, including communications, applications, and the like may be implemented by anindividual server54 ormultiple servers54.
In general, a[0066]node11 may need to communicate over anetwork30 with aserver54, arouter48, ornodes52. Similarly, anode11 may need to communicate over another network (50) in an internetwork connection (e.g. Internet) with someremote node52. Likewise, individual components of theapparatus10 may need to communicate data with one another. A communication link may exist, in general, between any pair of devices or components.
By the expression “nodes”[0067]52 is meant any one or all of thenodes48,52,54,56,58,60,62,11. Thus, any one of thenodes52 may include any or all of the component parts illustrated in thenode11.
To support distributed processing, or access, a directory services node[0068]60 may provide directory services as known in the art. Accordingly, a directory services node60 may host software and data structures required for providing directory services to thenodes52 in thenetwork30 and may do so forother nodes52 inother networks50.
The directory services node[0069]60 may typically be aserver54 in a network. However, it may be installed in anynode52. To support directory services, adirectory services node52 may typically include anetwork card26 for connecting to thenetwork30, aprocessor12 for processing software commands in the directory services executables, amemory device20 for operational memory as well as anon-volatile storage device16 such as ahard drive16. Typically, aninput device22 and anoutput device24 are provided for user interaction with the directory services node60.
Referring to FIG. 2, a[0070]memory device14 ormemory devices14 may store executable and operational data (e.g. data structures) in accordance with the invention. Thememory device14 ormemory devices14 may store amanagement module84, aninput module86, anoutput module88, adesign module90, ananalysis module92, aproduct module98 and adata module102. Thememory device14 ormemory devices14 may also store anoperating system104. An input module may include auser interface module82, or theuser interface module82 may be a separate module.
Every module in accordance with the invention, may be anything from a single machine-level instruction, to an entire multimedia application. That is, an[0071]individual module82,84,86,88,90,92,94,96,98 and102, including all submodules thereof, can physically be stored in any size, shape, configuration, on any number of computers, in order to execute its function. Thus themanagement module84 is typically that code that is logically executed to control the execution of theother modules82,84,86,88,90,92,94,96,98,102 and effect the communication of data therebetween.
Referring to FIG. 3, a[0072]data module102 may store data suitable for describing designs or elements of a design. Adata module102 typically includes a data access module for enablingother modules82,84,86,88,90,92,94,96 and98 to access the data contained therein.
The[0073]default data112 is typically data that can be used for parameters used to describe the design of an HVAC system. For example,default data112 may include acceptable values for the outlet temperature of a boiler. One utility ofdefault data112 is that a user is not required to research or calculate values which are already known in the HVAC arts, but rather, can rely on these data being readily available.Default data112 may be static stored values or may be calculated based on thedesign data114.
A[0074]data module102 may includedesign data114.Design data114 typically contains data describing a design or designs created by a user. Typically thedesign data114 consists of one or more sets ofproject data116 or projects116. Theproject data116 may includecustomer data118,environment data120, buildingdata122,components124 andconnections126. For example,customer data118 may comprise the name of the customer for which a project was made, contact information, or the like.Environment data120 may include information describing the physical location where the actual HVAC system being designed will be built. This information may include the outside temperature of the air during the heating season and the cooling season, the elevation, and the relative humidity.
[0075]Environment data120 may also include the wet bulb and dry bulb temperatures during both the cooling season and the heating season, and the enthalpy of the air during the cooling season and the heating season. Buildingdata122 may include the rate of heat loss, the number of people normally in the building, the air flow requirements, the size of internal spaces, and the like.
The[0076]design elements123 are records describing the properties of the equipment to be placed in an actual implementation of an HVAC system.Design elements123 may be records such ascomponent records124 orcomponents126 and connection records orconnections126. Thedesign elements123 of theproject data116 are all of the data describing equipment placed in the design by the user as well as descriptions of the spaces to be serviced by the HVAC system being designed.
The equipment that may be placed in a project may include all equipment that can be used in any actual HVAC system. The[0077]components124 typically include descriptions of equipment that affect the fluids flowing through an HVAC system.
The[0078]connections126 typically include descriptions of pipes and ducts connecting equipment in an HVAC system design. Theconnections126 may describe which piece of equipment is connected to which other piece of equipment as well as a description of the connecting fasteners, coupling pipe, duct, or the like. Aconnection126 may also include data describing any head loss in a connecting piper or duct such as frictional losses, fitting losses, elevation changes or the like. Aconnection126 may describe the appearance of the connecting piper or duct in a schematic such as its location on a computer screen and its shape.
The[0079]equipment data128 may providedata describing components124 andconnections126 that a user can place in a design. Theequipment data128 may includeequipment attribute definitions130. Theequipment attribute definitions130 may include a definition ofproperties131 that can be used to describe a physical embodiment of a design element.Properties131 may comprise data structures storing any suitable data, such as text, numerical data, and the like.
[0080]Equipment attribute definitions130 may also include definitions of equipment suitable for use in HVAC systems such as pumps, air separators, expansion tanks, air cooled chillers, water cooled chillers, cooling towers, cooling tower sumps, boilers, heat exchangers, air handlers, plenums, fans, louvers, roof hoods, dampers, coils, filters, radiant objects, fan coils, terminal boxes, unit heaters, pipe tees, duct tees, pipes, ducts, and the like.Components124 andconnections126 may comprise values corresponding to theproperties131 defined in the equipment attribute definitions. For example acomponent124 that represents a pump will contain values for theproperties131 defined in theequipment attribute definition130 for a pump.
[0081]Rendering data134 may include graphical data associated with a particular equipment attribute definition. For example boilers will have a schematic representation that will be used by theuser interface module82 to draw them on a computer screen. Anoutput module88 may likewise render a graphical description of a design to anoutput device24.
Many different graphical representations may correspond to an[0082]equipment attribute definition130. For example, each type of fan may have its own corresponding graphical representation. Anequipment attribute definition130 may also have various graphical representations mapped to different values of itsproperties131. For example,design elements123 may have a property indicating the manufacturer or model of a piece of equipment.
The[0083]rendering data134 may, accordingly, contain graphical descriptions corresponding to the manufacturer or model of that design element.Rendering data134 may also include different graphical representations of anequipment attribute definition130 corresponding to theproperty131 orproperties131 describing the type of fluid passing through it.
For example, the graphical representation of a fan that forces air through an air handler may be a different color than a fan that draws air from a space and exhausts it to the outside. Likewise, the[0084]equipment attribute definition130 of aconnection126 may have a variety of graphical representations corresponding to acomponent126 orcomponents126 connected to or characteristics of the fluid it carries.
Referring to FIG. 4, a[0085]user interface module82 is typically responsible for handling user interface events such as mouse clicks, keystrokes, or the like and rendering user interface elements on a computer screen. Auser interface module80 may include an equipment selection module142, a component connection module144, a property modification module146, and arendering module148.
Referring to FIG. 5, while continuing to refer to FIG. 4, a[0086]user interface module82 may present a user with awindow156. Awindow156 may include amenu bar158, atool bar160, and a variety ofpalettes164,165,166,168,170,172,174,176,178,180. Awindow156 may include aregion157 for displaying a graphical representation of aproject116.
An[0087]equipment selection module140 may enable a user to select a type of component and place a design element in aproject116. In a typical embodiment theequipment selection module140 may present a user withpalettes164,165,166,168,170,172,174,176,178,180 containing icons representing design element types to choose from. A user may click in apalette164,165,166,168,170,172,174,176,178,180 in order to choose a type of design element to place in a schematic or to select for inclusion in a design. An equipment placement module142 may then enable a user to click in aregion157, thereby placing adesign element123 in aproject116.
The[0088]equipment selection module140 may arrange thepalettes164,165,166,168,170,172,174,176,178,180 in groups on a computer screen. For example, apalette164 may present schematic representations of components suitable for placement in an air handler schematic.Palettes166,165,168 and170 may be grouped together and present components suitable for placement in an air flow schematic.Palettes172,174,176,178 and180 may be grouped together and include schematic representations of components suitable for placement in a hydronic schematic.
A user may also be presented with a[0089]connection tool162, which may be embodied as anicon162. A user may click on theicon162 and then click on various design elements in order to connect them.
In one embodiment of the present invention, a user may be presented with a[0090]palette166, which a user may click and then click inregion157 in order to place acomponent124 corresponding to a space in aproject116. The space may represent a room or any other interior region of a structure to be served by an HVAC system.
In one embodiment of an apparatus and method in accordance with the present invention, a user may select a component type and place a[0091]component124 of that type in aproject116. A user may then click in aregion157 and place a different schematic representation of thatsame component124 without having to click again on that element or selection on thepalette164,165,166,168,170,172,174,176,178,180.
For example, a user may click on a[0092]palette164 and select an entry or element such as a heating coil. A user may then click on aschematic representation182 of an air handler and place the air handler's schematic representation of aheating coil184ain theair handler182. A user may then click in theregion157 and place an air flow schematic representation of theheating coil184bin an air flow schematic. The user may then click again in theregion157 and place a hydronic schematic representation of aheating coil184cin a hydronic schematic.
In one embodiment, various schematic representations may represent different operational contexts. The operational contexts may represent the transport of mass, energy, or the like. For example a hydronic schematic may present design elements in the operational context of the effect they have on the volume of working fluid flowing through a system as well as the energy they extract or add to the working fluid. By contrast, an air flow schematic may represent a operational context wherein[0093]design elements123 are analyzed according to their effect on the properties of the air flowing through an HVAC system.
A user may not need to be limited to placing every possible schematic representation of a[0094]component124 in aproject116. For example, a user may select a heating coil from apalette170 and place an air flow schematic representation of aheating coil186ain theregion157, a user may then automatically place ahydronic representation186bof the heating coil in a hydronic schematic. As another example a user may choose to merely place a heat load188 (a hydronic equivalent to a heating coil) in a hydronic schematic without placing any other corresponding schematic representations thereof in the design.
Referring to FIG. 6, while continuing to refer to FIG. 4, a component connection module[0095]144 may connectcomponents124. For example a user may click on adamper195, click atvarious places197a,197binregion157, and then click on afan190b. A user may click inregion157 in order to createcomers197a,197bin aconnector198a. When a user connects any two components in one schematic representation of aproject116, the two pieces of equipment will be automatically connected in other schematic representations of theproject116. For example, if a user were to connectfan190btoheating coil184b, then, aconnection126 would automatically connectfan190atoheating coil184ain theair handler182.
Referring to FIG. 7, while continuing to refer to FIG. 4, a property modification module may enable a user to modify the[0096]properties131 of a design element. For example a user may click on agraphical representation200 of adesign element123, such as aboiler200 and be presented with adialog box202 orother interface202 for inputting information. A user may then view and modify the values of theproperties131 describing adesign element123.
When a user modifies the values of the[0097]properties131 of one schematic representation of acomponent124 orconnection126 the values of theproperties131 describing other representations of thecomponent124 orconnection126 will automatically be modified as well. For example if theheating coil184c(FIG. 5) were to be modified in some way, then the heating coils184a,184bwill automatically be modified as well.
Referring again to FIG. 4, a[0098]rendering module148 may render graphical representations ofdesign elements123 to anoutput device24. Therendering module148 may also render two dimensional and three dimensional drawings of an HVAC system or a portion thereof. Arendering module148 may include ananimation module150, anerror module152 and amapping module154. Ananimation module150 may provide a mechanism to visually simulate the flow of fluid through an HVAC system. For example a user is able to see a simulation of fluid flowing through the various components of the system. One utility of this is to enable a user to visually verify that the system now designed will function as it was designed to function.
An[0099]error module152 may provide a means to visually indicate errors in an HVAC system design. For example, in FIG. 6, theheating coil184bis connected to acooling coil194. However thearrow195ais pointed in a direction opposite to the direction of thearrow195b. This indicates that the outlet of theheating coil184a,184bis connected to the outlet of theheating coil194. Because this is an unacceptable design, theconnector198bis shown withbreaks199 in line density to visually indicate the error.
Referring to FIG. 8, while continuing to refer to FIG. 4, a[0100]mapping module154 may provide for drawing the graphical representation of a piece of equipment mapped to the values of theproperties131 describing it. For example, the color that a connector is drawn with may be mapped to characteristics of the fluid that is passing through it. For example, aconnector210amay be colored one color because it carries air from outside of the system. Theconnectors210band210cmay be colored a different color because they carry air entering the conditionedspace212.Connectors210dand210gmay have a distinct color corresponding to air vented to the outside environment. Aconnector210emay have a distinct color corresponding to air that is being returned to the air handler and relieved to the outside. Aconnector210fmay have a distinct color indicating that it carries air that is to be recirculated through an air handler.
Any piece of equipment may be mapped to multiple graphical representations depending on the values of its[0101]properties131. For example, a fan211ainside an air handler may be rendered differently than an otherwiseidentical fan211bhandling air being returned to an air handler or relieved to the outside of a system.
FIG. 9 illustrates another example of how the graphical representation of a piece of equipment may depend on the values of its variables. For example, a[0102]connector210hconnecting the outlet of acooling load213 to the inlet of achiller214 may be rendered in a color indicating that it is at a higher temperature than the fluid flowing through theconnector210j, which carries fluid from the outlet of thechiller214 to the inlet of thecooling load213. The color ofconnectors210hand210jmay both be different from the colors used forconnectors210kand210lused to connect aboiler216 to a heating load214 (e.g. heating or cooling), providing a visual indication thatconnectors210hand210jare being used to connect cooling components and thatconnectors210kand210lare used to connect components of a heating system.
The[0103]mapping module154 may also render a graphical description of adesign element123 mapped to thedesign elements123 to which it is connected. Forexample connectors126 carrying different fluid having different characteristics may both be connected to a tee having athird connector126 leaving the tee. Theconnector126 carrying fluid away from the tee may be rendered in a different color indicating it carries a mixture of the fluid entering the tee.
Referring to FIG. 10, a[0104]product module98 may provide a mechanism for a user to access data describing actual manufactured equipment that may be purchased in order to build an actual HVAC system design. This data may include sets of values which theproperties131 of a design element may assume. Through this process, a design may be analyzed based on representations of equipment that reflect more closely what the actual physical embodiment of a design will be like. Aproduct module98 may include adata access module236, asoftware interface module238, acompensation module240, acommunication module242, an updatingmodule244, apurchasing module246, andproduct data248.
The[0105]data access module236 may enable a user to access theproduct data248. Thedata access module236 may enable a user to choose from a list of products described in theproduct data248. Upon choosing a product, the set ofproperties131 of acomponent124 orconnection126 may assume values corresponding to those characterizing to the product. For example, acomponent124 representing a pump may assume values for itsproperties131 corresponding to measured values of an actual manufactured pump. Adata access module236 may also enableother modules82,84,86,88,90,92,94,96,98,102 to access the data stored in theproduct module98.
A[0106]software interface module238 may interface with software provided by vendors of manufactured products. Vendors of equipment suitable for use in HVAC systems may provide software that will enable a user to more easily select a manufactured product based on the requirements of the HVAC system being designed and built by the user. Asoftware interface module238 may enable a user to transfer data between anapparatus10 and software provided by a vendor.
One utility of this is that a user is not required to manually enter data into the vendor software and then manually enter any output data into an[0107]apparatus10. For example, a manufacturer of pumps may provide a software package into a which a user may enter a flow rate needed and the rise in pressure that a pump needs to provide. The software may then output the specifications of an actual pump that most closely matches the needs originally input into the software.
A[0108]software interface module238 may enable a user to specify which vendor software package to use and then automatically calculate the values of theproperties131 for a design element corresponding to actual manufactured equipment and optimally satisfying the requirements of the design. Asoftware interface module238 may then automatically set the values of the properties131of a design element to those corresponding to the actual equipment.
A[0109]compensation module240 may enable a provider of anapparatus10 or any of themodules82,84,86,88,90,92,94,96,98,102 thereof to be compensated for providing a mechanism for a user to access data concerning actual manufactured products. Thecompensation module240 may notify a manufacturer or supplier of a piece of equipment when a user selects a piece of equipment sold by the manufacturer for incorporation into a design.
For example, if a user specifies that a[0110]design element123 in aproject116 may assume values for itsproperties131 corresponding to a physical design element manufactured by a manufacturer X, then the manufacturer X may be so notified, via anetwork30 or other communication means. A provider of the apparatus10 (e.g. system10, application10) or any of themodules82,84,86,88,90,92,94,96,98,102 thereof may receive a sales commission for aiding in the advertisement and sale of the design element.
A compensation module may contact a manufacturer or supplier of a product automatically via a[0111]communication module242 to place an inquiry, request for quote, or order. A provider of thesystem10 or any of themodules82,84,86,88,90,92,94,96,98,102 may also be automatically informed concerning selections that take place.
A[0112]compensation module240 may make use of acompensation schedule254. Thecompensation schedule254 may provide data concerning how much compensation a provider of anapparatus10 or any of themodules82,84,86,88,90,92,94,96,98,102 thereof shall be entitled too in the event that a user chooses to incorporate a particular product into a design.
A[0113]communication module242 may facilitate communication between an apparatus10 (e.g. application10 on a computer11) andother nodes52 by means of anetwork30. Acommunication module242 may function in conjunction with anupdating module244 andproduct specifications250. Acommunication module242 may permit anupdating module10 to communicate across anetwork30 with manufacturers of equipment in order to obtain current information concerning available products. This may include obtaining information concerning the specifications of new products, changes to the specifications of products, and the like.
The[0114]updating module244 may then store the information obtained in theproduct specifications250. The updatingmodule244 may obtain the information concerning products from anyinput device22. For example anupdating module244 may read data from a compact disk (CD) or any other computer readable medium provided by a manufacturer. Theproduct specifications250 may be embodied as records describing values for theproperties131 of products that are available for use in actual implementations of HVAC systems.
An[0115]updating module244 may likewise obtain current data for storage in acompensation schedule254 orproduct ordering data250. Acommunication module242 may also enable a user to contact a manufacturer or supplier of a product, without requiring that the user supply contact information, such as an electronic mail address or the like.
A[0116]purchasing module246 may function in conjunction with acommunication module242 andproduct ordering data252 to enable a user to automatically order equipment from a supplier of equipment. Thepurchasing module246 may gather data concerning aproject116 and compile a lists of equipment that will need to be purchased in order to implement aproject116. The data gathered may summarize the properties of thedesign elements123, such as the number and manufacturer of each type of design element.
For example, the purchasing module may compile a list containing the number of pumps that will need to be bought from a particular vendor, as well as the number of other design elements to be bought. Product ordering data may provide information facilitating the ordering of equipment such as information needed to contact a vendor over a[0117]network30. Acommunication module242 may permit apurchasing module246 to automatically contact suppliers of equipment over anetwork30 in order to arrange for the purchase of equipment for use in a physical implementation of aproject116.
Referring to FIG. 11, a[0118]design module90 may include acreation module260, anediting module262, adefault module264, and aspecification module266. A creation module may function in conjunction with the equipment placement module142 of theuser interface module82 such that when a user places a piece of equipment in aregion157, acorresponding component124 is stored withproject data116. Likewise, the creation module may create a connection record when a user connectscomponents124 using the component connection module144 of theuser interface module82.
In certain embodiments of the invention supporting the placement of multiple schematic representations of the[0119]same design element123, acreation module260 may storedistinct design elements123 corresponding to each schematic representation of the design element. Thecreation module260 may also storedesign elements123 containing only sufficient data to link onedesign element123 to anotherdesign element123 actually corresponding to another schematic representation of the samehardware design element123.
For example, a heating coil placed in an air handler schematic may have a[0120]component record124 stored in aproject116. The airflow schematic representation of the same heating coil may be stored as acomponent record124 that merely contains data identifying thecomponent record124 storing the air handler schematic representation. Alternatively acreation module260 may store asingle design element123 containing all theproperties131 of all schematic representations of such adesign element123.
The[0121]editing module262 may work in conjunction with a property modification module146 such that a user may edit the values of theproperties131 of adesign element123. Theediting module262 may automatically make corresponding changes to designelements123 corresponding to other schematic representations of thedesign element123 edited.
A[0122]default module264 may automatically provide values fordesign data114, so a user is spared the time and bother of filling in values for which acceptable values may be catalogued, calculated otherwise easily known and do not vary greatly from oneproject116 to anotherproject116. For example, it is common for boilers to have the same outlet fluid temperature. The default module may use thedata access module110 of thedata module102 in order to access default attribute values132 in order to obtain default values for theproperties131 of adesign element123.
The[0123]default module264 may, in some embodiments, supply default values for theproperties131 of adesign element123 based solely on values stored within the default attribute values132. Alternatively, or in addition, thedefault module264 may also automatically calculate certain default values based onother design data114, such as theenvironment data120 of a project or the values of theproperties131 ofother components124 andconnections126 in aproject116.
A[0124]default module264 may also provide a mechanism (e.g. code, tables, calculations, etc.) to specify default values for all equipment or for equipment of a specific type. For example, a user may specify that all pumps have a particular or standardized efficiency, thereby sparing a user the bother of manually changing thisproperty131 to synchronize the performance or requirements for every pump in aproject116.
A[0125]specification module266 may enable a user to incorporate the known values forproperties131 of actual manufactured products into aproject116. Thespecification module266 may enable a user to set the values of theproperties131 of acomponent124 orconnection126 to those corresponding to an actual manufactured product. Aselection module268 may enable a user to select from a list of possible products.
For example, a user may be presented with a list of products. A user may click on an item in the list in order to indicate that a[0126]design element123 shall assume values ofproperties131 corresponding to an actual product.
The selection module may function in conjunction with a filter module[0127]270 to enable a user to more easily select an ideal product for use in aproject116. A filter module270 may include a cost module enabling a user to be selectively presented a list of available products sorted by cost. The cost module may also enable selective presentation of only those products that fall within a certain range of prices.
A[0128]material module274 may enable a user to be selectively presented only those products made of a specific material. For example, by sorting and filtering, a user may specify a request to be presented only with those products made of brass or copper.
A[0129]vendor module276 may selectively present to a user only those products supplied by a particular vendor. Aperformance module278 may provide to a user a selectively presented set of products that satisfy certain performance requirements or fall within a range of performance requirements. Aperformance module278 may also enable a user to specify that the selection module present lists of products sorted based on one or more performance criteria. The criteria used to choose products may include, for example, energy usage, power requirements, efficiency, length of service life, and the like.
Referring to FIG. 12, an[0130]analysis module92 may include various executables, such as, for example, avalidation module286 and acalculation module292. Thevalidation module286 may analyze the design data to determine unacceptable configurations or parameters. Theconnection checking module290 may analyze the connections between components provide feedback to the user indicating unacceptable connections. Unacceptable connections may include, for example, connecting the outlet of onecomponent124 to the outlet of anothercomponent124. The connection checking module may function in conjunction with the error indication module152 (FIG. 4) to visually indicate errors on a computer screen orother output device24. For example, in FIG. 6, thebreaks199 in aconnector198bindicate that the outlet of aheating coil184bis connected to the outlet ofheating coil194.
A[0131]data checking module288 may indicate that the values of certain design parameters are unacceptable. Design parameters that may assume unacceptable values may include project data such as theproperties131 ofcomponents124 orconnections126.Environment data120,customer data118, buildingdata122 and anyother design data114 may be checked by thedata checking module288 in order to verify that all data is consistent and reasonable. Unacceptable parameters may be those that are inconsistent with one another or that are physically improbable or impossible.
The[0132]calculation module292 may analyze thecomponents124 andconnections126 along withother design data114 in order to calculate certain design parameters. Thesolving module294 may solve for parameters based on other parameters of the system. For example, the solvingmodule294 may calculate the energy input of a boiler based on the heat extracted from the working fluid byother components124 and lost byconnectors126. Thesolving module294 may solve, for example, for the air flow that an air handler must provide to a design based on the air flow requirements of all of the spaces in the design.
The[0133]updating module296 may update the variables ofcomponents124 orconnections126 that are affected when a user insertsnew components124 orconnections126 into a design. The updatingmodule296 may also update anydesign data114 affected by modifications to thedesign data114. For example the updating module may update the air flow through an air handler when aspace component record124 is added to a project116a,116b. The updating module may also, for example, change theproperty131 corresponding to an output, such as the heat output of a boiler, when theproperty131 of a driving parameter, such as a heating load, corresponding to heat extracted from the working fluid, is changed.
The[0134]reporting module298 may analyze thedesign data114 to generate reports summarizing important aspects of a system. For example thereporting module298 may generate a list of all power-consuming equipment in aproject116 and calculate the overall power consumption of aproject116. The reporting module may also generate lists (e.g. schedules) summarizing all of the equipment that aproject116 contains.
An[0135]input module86 may enable anapparatus10 to input data frominput devices22. In one embodiment aninput module86 may include auser interface module82. In such an embodiment, some or all input frominput devices22 may be provided or performed by aninput module86.
A[0136]software interface module306 may enable a user to use information from other (e.g. related or completely independent) software packages within in aproject116. For example, a loadsprogram interface module308 may work in conjunction with, or provide the functionality of, a loads program. A loads program is typically a software package enabling a user to enter information concerning the building an HVAC system will service. Based on this information the loads program typically calculates the air flow and heating requirements for the spaces in the building.
A loads[0137]program interface module308 may read the output of a loads program provided and automatically create a design element. For example, a loads program may calculate that a building is going to require a certain flow rate of air as well as require a specific amount of heat input or heat output. The loadsprogram interface module308 may automatically create thecomponents124 andconnections126 necessary to describe an air handler satisfying the air flow requirements. The loadsprogram interface module308 may also createcomponents124 andconnections126 necessary to describe a boiler or chiller suitable for satisfying heating or cooling requirements, respectively.
A CAD[0138]software interface module310 may enables a user or acomputer11 to read directly the output data of a computer aided design (CAD) software package in order to acquire data concerning the interior spaces in a building designed with such a package (application). The CAD software interface module may automatically (or with user intervention) createcomponents124 orconnections126 based on the data output by the CAD software. For example, a building designed using a CAD software package may include descriptions of several rooms. The CADsoftware interface module310 may read the description of the rooms, automatically createcomponents124 describing the rooms, and insert them into aproject116.
A CAD[0139]software interface module310 may also createother components124 andconnections126 needed to provide HVAC services to the spaces. For example the CADsoftware interface module310 may create boilers, chillers, and air handlers and connect them to the spaces, sparing the user the work of creating them, sizing them, or calculating properties thereof manually or independently.
A[0140]retrieval module312 may read indesign data114 that has been written to anoutput device24 for substantially permanent storage. Thus, a user may further access or modify thedesign data114.
Referring to FIG. 14, an[0141]output module320 may include astorage module322, aschedule generation module324, and aschematic generation module326. Astorage module322 may writedesign data114 to anoutput device24 for more substantially permanent storage. Typically, a storage module will storedesign data114 on ahard disk46 or any other type ofstorage device14. Aschedule generation module324 may generate various schedules (e.g. lists) describing aproject116. Schedules generated by aschedule generation module324 may include parts lists, cost summaries, power consumption summaries, and the like.
A[0142]schematic generation module326 may generate schematic representations of aproject116. Schematics that may be generated may include hydronics schematics, air flow schematics, air handler schematics and the like. Theschematic generation module326 may output the schematics in a computer readable form to anyoutput device24.
Referring to FIG. 15, an[0143]apparatus10 may be implemented using an object-orientedarchitecture329. The functionality and operational data of themodules82,84,86,88,90,92,94,96,98 and102 may be provided by objects having both methods and attributes. In one embodiment an object orientedarchitecture329 of anapparatus10 may includeinformation updating objects330 and project objects332.
The various elements of a design and functionality thereof may be embodied in a heirerachical scheme wherein objects[0144]340a-340frepresenting components, inherit from acomponent object336, which may inherit from anequipment object334, which may inherit from ashape object331. Likewise aconnector object338 may also inherit from anequipment object334. Other objects may inherit from aconnector338. For example, a pipe object, duct object, or the like may inherit from aconnector338. In all of these cases inheritance implies that an object posses all of the methods and attributes possessed by the object from which it inherits.
An annotation object may contain text to associated with another object. An annotation object may include text and values to be displayed as well as data linking it to an[0145]equipment object334, orproject object332. Anannotation object333 may contain data locating it on a screen as well as data determining its size. Anannotation object333 may include methods for accessing its attributes, modifying its screen position, updating the displayed text to reflect modifications to its attributes, and other necessary methods. In some embodiments anannotation object333 may display text reflecting the attributes of theobject332,334 to which it is linked. In such an embodiment the updating method may automatically update the text displayed on the screen to reflect changes made to the attributes it reflects. For example, a boiler may have anannotation object333 associated with it that displays the value for the boilers outlet temperature. In some embodiments anannotation object333 may inherit from ashape object331.
A[0146]project object332 may haveattributes350 comprising, for example, notes354,display data356,environment data358, anddesign data360.Notes354 may comprise descriptive data that a user may want to add to a project such as comments justifying design decisions, or suggestions for implementation of a project.Notes354 may also include annotation objects333 that aproject object332 contains.
[0147]Display data356 may contain data determining how information is to be displayed by anoutput device24.Display data356 may include font settings, page formatting data, color settings, sizing settings, and the like.Environment data358 may include information describing the physical location where the actual project being designed will be built. This information may include outside air conditions, geographies location, altitude, characteristics of the electricity supplied, and the like.
[0148]Design data360 may include data describing the design a project contains.Design data360 may include default data for thecomponents124 and connections126 aproject object332 contains. The default data may be set by a user for aspecific project object332. For example, a user may specify that every component or connection of a particular type have a default value for some or all of its attributes.Design data360 may include preferences that govern the behavior of theapparatus10 that a user wants to associate with aparticular project object332. This behavior may include the units in which variables are displayed, the appearance of a user interface, and the like.
A project object may also contain[0149]components124 andconnections336, which may be embodied as instances of component objects336 and connector objects338, respectively.
The methods of a[0150]project object332 may include, for example, attribute accessingmethods362, attributeediting methods364,rendering methods366, numberingmethods368,design updating methods370, reportingmethods372, validatingmethods374,design creating methods376 anddesign editing methods378.Attribute accessing methods362 and attributeediting methods364 may enable a user to access and edit, respectively, theattributes370 of aproject object332.
A[0151]rendering method366 may function in conjunction withrendering methods430,450 of the component objects336 andconnector objects338 it contains. Thus it may support display of a graphical description of aproject object332 on anoutput device24.Numbering methods368 may assign and store identifying data corresponding to thecomponents126 andconnections124 of aproject object332 when they are added to aproject object332.Numbering methods368 may also enable a user to modify the identifying data of thecomponents126 andconnections124.
[0152]Design updating methods370 may maintain the consistency of theconnections124,connections126, anddesign data360, such that when some data is modified, other data that is dependent on it is updated to reflect the change. Areporting method372 ormethods372 may gather information from theattributes350 of aproject object332 to generate reports, such as cost summaries, parts lists, and the like. A validatingmethod374 may analyze theattributes350 of aproject object332 and determine if there are any unacceptable design configurations or parameters. A design creating method375 may enable a user to insertcomponents124 andconnections126 into aproject object332. Adesign editing method378 may permit a user or other objects to access and edit theattributes350 of aproject object332.
Referring to FIG. 17, the attributes of a shape object may have[0153]attributes380 consisting of operational data necessary for the function of themethods382. Themethods382 may comprise user interface handling method388 andrendering methods390. Themethods382 may be virtual functions which are defined by objects which inherit from theshape object331. The user interface handling method388 may receive and interpret mouse clicks, mouse movements, and the like. For example,, a user interface method388 may move the graphical representation of a shape object to a different location on a computer screen based on the movement of a mouse by a user.
Referring to FIG. 18, an[0154]equipment object334 may inherit the methods and attributes of ashape object331 as known in the object-oriented programming art. Theattributes334 of anequipment object334 may, For example,, comprisenotes404,scheduling data406, andproduct information408.
[0155]Notes404 may likewise, For example,, comprise any text a user may choose to associate with an instance of anequipment object334.Notes404 may also comprise data uniquely identifying an instance of anequipment object334, notes may also be embodied as annotation objects333 added by a user or associated automatically with anequipment object334.Scheduling data406 may comprise data needed for compiling reports or schedules about a project116a,116b. Scheduling data for an equipment object may include items such as cost, energy consumption, and the like.
[0156]Product information408 may include the name of the manufacturer or supplier of suitable equipment of the type or of the specific rating or model that theequipment object334 represents.Product information408 may also include the equipment's price or any other information associated with actual manufactured equipment.
The[0157]methods402 of anequipment object334 may include, For example,, attribute accessingmethods410,data calculating methods412, data updating416 methods andreporting methods418. Attribute accessing methods may enable a user or even other objects to access the attributes of an instance of anequipment object334.Data calculating methods412 may calculate values for some of theattributes400 of an instance of anequipment object334 based onother attributes400 of the instance.
A[0158]data resetting method414 may restore the values of theattributes400 to their values previous to some modification or calculation. Areporting method418 may provide information that is to be reported to thereporting method372 of aproject object332. Reported data may include the energy usage data, cost and any other data that may need to be reported.
Referring to FIG. 19, a[0159]component object336 may inherit attributes, methods, or both from anequipment object334. Theattributes420 of acomponent object336 may include, For example,,rendering data424,connection data428,type data426 and user interface data427.Rendering data424 may include a graphical representation of an instance of acomponent object336, its screen location, size and the like.Connection data428 may include information indicating instances of connector objects338 (FIG. 20) connected to thecomponent object336.Connection data428 may include information indicating other component objects336 connected to acomponent object336.
[0160]Type data426 may include data indicating to which type of schematic an instance of a component object belongs.Type data426 may also indicate what type of equipment an connection object pertains such as a pump, chiller, or the like. User interface data427 may include information such as the screen location, size and the like of acomponent object336.
The[0161]methods422 of acomponent object336 may include, For example,,rendering methods430, updatingmethods434, and attributeediting methods432.Rendering methods430 may include methods that render a graphical representations of acomponent object336 to a computer screen orother output device24.Rendering methods430 may also provide some of the same functionality as amapping module154.
[0162]Attribute editing methods432 may provide a mechanism for a user ormodule82,84,86,88,90,92,94,96,98,102 to modify attributes420. Updatingmethods434 may provide for a component object to update itsattributes420 to reflect changes made to relevant data stored in anapparatus10.
Referring to FIG. 20, the[0163]attributes440 of aconnector object338 may include, For example,,connection data444,rendering data446, flowdata448 anduser interface data449.Connection data444 may include information identifying the component objects336 that aconnector object338 connects.Rendering data446 may also include data governing how aconnector object338 is displayed graphically.Rendering data446 may include the screen location of aconnector object338, its shape, or the screen location of points it passes through.Flow data448 may include information regarding the type or direction of fluid that is to pass through aconnector object338.
The[0164]methods442 of aconnector object338 may include, For example,, rendering methods450,attribute accessing methods452 and attributeediting methods454. Rendering methods450 may include methods that render a graphical representations of aconnector object338 to a computer screen orother output device24. Rendering methods450 may also provide some of the same functionality as amapping module154. Attribute accessing andediting methods452,454 may provide for a user, or other objects, to access and modify, respectively, theattributes440.
Referring to FIG. 21, the attributes of a[0165]information updating object330 may include, For example,,type data464, andconnection data466. Adata updating method416 of anequipment object334 may create an information updating object in order to determine values forattributes400. Adata updating method416 of aproject object332 may analyze all theinformation updating objects330 created by the objects contained therein and determine the information that eachequipment object334 needs.
The[0166]attributes460 of aninformation updating object330 may include, For example,, data necessary to enable aproject object332 to update the attributes of the objects contained therein. Theattributes460 may include, For example,, typedata464 indicating what type of data an object needs. For example, a boiler object may need to know the inlet temperature of the fluid entering it. Accordingly a boiler object may generate an information updating object withtype data464 indicating that it needs fluid temperature data.
[0167]Connection data466 may indicate to which other objects an object is connected to. Aproject object332 may use this information to determine the needed information. For example, a boilers inlet temperature is dependent on theother components124 that connect to it.
An[0168]updating method476 may update the attributes of an object when the values thereof have been determined by thedesign updating method370. From the foregoing, it will be appreciated that the present invention provides a powerful, integrated tool for design and analysis of HVAC systems, with much of the integration and calculation transparent to a user.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative, and not restrictive. The scope of the invention is, therefore, indicated by the eventual claims that may issue, rather than by any specific description. All changes that come within the meaning and range of equivalency of such claims are to be embraced within their scope.[0169]