Abstract:
A software interface is disclosed for a model of a building system stored in a memory, wherein the model comprises a plurality of building space objects. The software interface comprises: (a) logic for receiving a call comprising a function identifier and at least one object identifier, the function identifier representative of a function applicable to a plurality of object types; and (b) logic for employing the function identifier and the at least one object to call a software function in a function library, the software function corresponding to the function applicable to the object type that corresponds to the at least one object.

Description:
[0001]     This application claims the benefit of U.S. Provisional Patent Application Ser. Nos. 60/583,519, 60/583,572, and 60/583,585, each filed Jun. 28, 2004, all of which are incorporated herein by reference. 
     
    
     FIELD OF THE INVENTION  
       [0002]     The present invention relates generally to building automation systems, and more particularly, to methods and apparatus for representing and/or storing building automation system data.  
       BACKGROUND OF THE INVENTION  
       [0003]     Building automation systems are comprehensive and distributed control and data collection systems for a variety of building automation functions. Such functions may include comfort systems (also known as heating, ventilation and air condition or HVAC systems), security systems, fire safety systems, as well as others. Building automation systems include various end points from which data is collected. Examples of such end points include temperature sensors, smoke sensors, and light sensors. Building automation systems further include elements that may be controlled, for example, heating coil valves, ventilation dampers, and sprinkler systems. Between the data collection end points and controlled elements are various control logic elements or processors that use the collected data to control the various elements to carry out the ends of providing a comfortable, safe and efficient building.  
         [0004]     Building automation systems often employ one or more data networks to facilitate data communication between the various elements. These networks may include local area networks, wide area networks, and the like. Such networks allow for single point user access to many variables in the system, including collected end point data as well as command values for controlling elements. To this end, a supervisory computer having a graphical user interface is connected to one of the networks. The supervisory computer can then obtain selected data from elements on the system and provide commands to selected elements of the system. The graphical display allows for an intuitive representation of the elements of the system, thereby facilitating comprehension of system data. One commercially available building automation system that incorporates the above described elements is the Apogee system available from Siemens Building Technologies, Inc. of Buffalo Grove, Ill.  
         [0005]     Increasingly, building automation systems have acquired more useful features to assist in the smooth operation of building systems. For example, in addition to controlling physical devices based on sensor readings to achieve a particular result, building automation systems increasingly are capable of providing trending data from sensors, alarm indications when thresholds are crossed, and other elements that directly or indirectly contribute to improved building system services.  
         [0006]     However, most building systems have limited ability to associate sensor values with other building system or general building attributes. Advanced systems allow graphic representations of portions of the building to be generated, and for multiple sensor and/or actuator points to be associated with that graphic representation. By way of example, the Insight™ Workstation, also available from Siemens Building Technologies, Inc. is capable of complex graphical representations of rooms or large devices of the building system. While systems with such graphics provide at least some integrated visible representation of portions of the building automation system, the ability to use such data is limited.  
         [0007]     Accordingly, there is a need for a more comprehensive manner in representing various types of data related to a building system. Such manner of representation could facilitate the development of significant new automated services. Such manner of representation could preferably facilitate remote building control.  
       SUMMARY OF THE INVENTION  
       [0008]     The present invention provides an improved building system model and method for accessing the same for use in software applications. The model is a data mode that links information regarding building topology and building automation devices, among other things. The model facilitates a large set of extended services.  
         [0009]     A first embodiment of the invention is a model of a building system that is stored in a memory. The model comprises a plurality of building space objects and at least one building automation device object. At least one building space object includes a reference to at least one of the group consisting of a parent building space object and a child building space object, a reference to at least one graphic file containing a graphic image representation of the building space, and a reference to information regarding one or more building automation devices associated with the building space object. Each building automation device object includes a reference to a corresponding building space object, and a reference to at least one operating value of the building automation device. Optionally building automation device objects may further include a reference to a link to a file containing information regarding the at least one building automation device object.  
         [0010]     A second embodiment is a method of generating a model of a building system that includes a step of selecting an object template for an element of a building system from an object template library, the object template library including building space object templates and building automation device objects. The method also includes instantiating first information into at least one building space object using the selected object template if the selected object template is a building space object template. In such a case, the first information comprises information associated with the space within a building with which the building system is associated. Another step includes instantiating second information into at least one building automation device object using the selected object template if the selected object template is a building automation device template. The second information in such a case is information associated with a building automation device within the building. The second information includes at least a reference to a building space object corresponding to a building space associated with the building automation device.  
         [0011]     Each of the above embodiments links building automation device information to a building structure or space information, and the building structure or space information is preferably arranged in a hierarchical manner. The resulting model of these embodiments thus provides a useful representation of a building system.  
         [0012]     The above described features and advantages, as well as others, will become more readily apparent to those of ordinary skill in the art by reference to the following detailed description and accompanying drawings.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0013]      FIG. 1  shows a mechanical top view floor plan diagram of a building space wherein various HVAC elements are schematically represented;  
         [0014]      FIG. 2  shows a schematic diagram of the building automation system that employs the HVAC elements of the building space of  FIG. 1 ;  
         [0015]      FIG. 3  shows a block diagram representation of an exemplary model of the building system illustrated in  FIGS. 1 and 2 , the model incorporating aspects of the invention;  
         [0016]      FIG. 4  shows a flow diagram of an exemplary set of operations performed to generate a model in accordance with aspects of the invention;  
         [0017]      FIG. 5  shows a block diagram of an exemplary building zone template for use in generating building zone objects in a model according to an embodiment of the invention;  
         [0018]      FIG. 5   a  shows a block diagram of a building zone object of the model of  FIG. 4  generated from the building zone template of  FIG. 5 ;  
         [0019]      FIG. 6  shows a block diagram of an exemplary room space template for use in generating room space objects in a model according to an embodiment of the invention;  
         [0020]      FIGS. 6   a  and  6   b  shows a block diagram of room space objects of the model of  FIG. 4  generated from the room space template of  FIG. 6 ;  
         [0021]      FIG. 7  shows a block diagram of an exemplary inlet shaft segment template for use in generating inlet shaft segment objects in a model according to an embodiment of the invention;  
         [0022]      FIGS. 7   a  and  7   b  show block diagrams of inlet shaft segment objects of the model of  FIG. 4  generated from the inlet shaft segment template of  FIG. 7 ;  
         [0023]      FIG. 8  shows a block diagram of an exemplary temperature sensor template for use in generating temperature sensor objects in a model according to an embodiment of the invention;  
         [0024]      FIGS. 8   a  and  8   b  show block diagrams of temperature sensor objects of the model of  FIG. 4  generated from the temperature sensor template of  FIG. 8 ;  
         [0025]      FIG. 9  shows a block diagram of an exemplary damper template for use in generating damper objects in a model according to an embodiment of the invention;  
         [0026]      FIGS. 9   a ,  9   b  and  9   c  show block diagrams of damper objects of the model of  FIG. 4  generated from the damper template of  FIG. 9 ;  
         [0027]      FIG. 10  shows a block diagram of an arrangement for providing software functions that employ the building model disclosed herein according to one aspect of the invention; and  
         [0028]      FIG. 11  shows an exemplary set of steps of a software interface. 
     
    
     DETAILED DESCRIPTION  
       [0029]      FIG. 1  shows a top view of a building zone  100  that includes a number of building automation devices that form a portion of the heating, ventilation and air conditioning (“HVAC”) for the building system. The building zone  100  includes a first room space  102 , a first window  102   a , a second room space  104 , a hall space  106  and mechanical space  108 . The mechanical space  108  is illustrated as being adjacent to the room spaces  102  and  104  for clarity of exposition, but in actuality would also typically extend over the top of the first room space  102 , the second room space  104 , and the hall space  106 .  
         [0030]     The portion of the HVAC system shown in  FIG. 1  includes a blower  110 , a shaft damper  112 , a first room damper  114 , a second room damper  116 , a flow sensor  118 , a first room inlet  120 , a second room inlet  122 , a shaft branch  124 , a first temperature sensor  126 , a second temperature sensor  128 , and a space temperature adjuster  130 . Also shown in  FIG. 1  is a security sensor  132  that may be a portion of a security system in the building zone  100 . The HVAC system has further control elements and networks that are not illustrated in  FIG. 1 , but are represented schematically in  FIG. 2 , which is discussed further below.  FIG. 1  shows largely only the mechanical devices in the HVAC system.  
         [0031]     In general, the HVAC system is designed to, among other things, regulate temperature in the first room space  102  and the second room space  104 . To this end, the HVAC system advances cool (or warm air) into the first and second room spaces  102 ,  104  as needed to maintain a desired temperature. The “desired temperature” may vary from room space to room space, or may be uniform through the building zone  100 . The desired temperature is referred to herein as the set point temperature, and may be dictated by a local thermostat setting or from a central control device, as will be discussed in further detail below.  
         [0032]     Referring to the structure of the HVAC system of  FIG. 1 , the blower  110  is a mechanical device well known in the art that is configured to blow air through the shaft branch  124 , as well as other similar shaft branches, not shown. The shaft branch  124  extends adjacent to the room spaces  102  and  104 . The first room inlet  120  extends from a portion of the shaft branch  124  toward the first room space  102  and is in fluid communication with the first room space  102 . The first room damper  114  is disposed in the first room inlet  120  and operates to controllably meter the flow of air from the shaft branch  124  to the first room space  102 . Similarly, the second room inlet  122  extends from another portion of the shaft branch  124  toward the second room space  104  and is in fluid communication with the second room space  104 . The second room damper  116  is disposed in the second room inlet  122  and operates to controllably meter the flow of air from the shaft branch  124  to the second room space  104 . The shaft damper  112  is arranged in the shaft branch  124  to meter the overall air flow through the shaft branch  124 .  
         [0033]     In order to determine whether more or less cold (or warm air) is needed to achieve or maintain a set point temperature, the controlling units of the HVAC system (see  FIG. 2  discussed below) obtain measured or sensed temperatures from the temperature sensors  126  and  128 . If the measured temperature is higher than the set point temperature, then the HVAC system controlling units may cause additional cold air to be advanced into the room spaces  102  and  104  by further opening the dampers  112 ,  114  and/or  116 . Likewise, if the measured temperature is lower than the set point temperature, then the HVAC system controlling units may cause reduced cold air flow into the room spaces  112 ,  114  and  116  by further closing the dampers  112 ,  114  and/or  116 . The HVAC system may also control other devices, not shown, such as chiller plants or the like, that affect temperature, in conjunction with the dampers  112 ,  114  and/or  116 .  
         [0034]      FIG. 2  shows a schematic representation of the HVAC system  200  that includes electrical control and communication devices as well as the HVAC system mechanical elements shown in  FIG. 1 . The HVAC system  200  includes a control station  202 , a building network  204 , first and second equipment controllers  206  and  208 , and a blower controller  210 . The control station  202  is a device that provides status monitoring and control over various aspects of the HVAC system  200 . By way of example, the control station  202  may suitably be an INSIGHT™ model workstation available from Siemens Building Technologies, Inc., discussed further above. The building network  204  is a communication network that allows communication between the control station  202  and the controllers  206 ,  208  and  210 , as well as other devices not depicted in  FIG. 2 . Such building networks are known in the art. Suitable building communication networks designed for use with the INSIGHT™ model workstation include building level networks available with the APOGEE™ building automation system also available from Siemens Building Technologies, Inc.  
         [0035]     The first controller  206  is a device that is operable to receive one or more sensor inputs and generate controlled process outputs based on the sensor inputs and one or more set points. Sensor inputs, for example, may be representative of measured temperature values. Controlled process outputs, for example, may be actuator signals that cause a ventilation damper to further open or further close. Various suitable commercially available equipment controllers are known in the art, including modular equipment controllers available from Siemens Building Technologies, Inc.  
         [0036]     To generate the process output based on set points and sensor inputs, the first controller  206  is operable to perform a control function, such as a proportional control function, a proportional-integral control function, or a proportional-integral-derivative (“PID”) control function (or possibly others). Such control functions use values representative of a measured phenomenon to determine how to manipulate a physical process to attempt to bring the measured phenomenon toward a set point.  
         [0037]     In the embodiment shown in  FIG. 2 , the equipment controller  206  is operable to generate an output that causes either or both of the dampers  114  and  116  to open or close in response to temperature sensor values received from the temperature sensors  126  and  128 . The equipment controller  206  is further operable to receive the set point temperature value from the space temperature adjuster  130 . In some embodiments, the equipment controller  206  may receive temperature set points from other devices, such as the control station  202 , via the building network  204 . The equipment controller  206  may utilize set points from the control station  202  and the space temperature adjuster  130  at different times of day, or for different purposes.  
         [0038]     Regardless of whether the set point is received from the control station, the equipment controller  206  is also operable to communicate to other system control elements such as the control station  202  and the other equipment controllers  208  and  210 , over the building network  204 . Thus, for example, the equipment controller  206  is operable to communicate sensor values generated by the temperature sensors  126  and  128  to the control station  202  and/or the other controllers  208  and  210 .  
         [0039]     The other equipment controller  208  is operable to generate an output that causes the shaft damper  112  to open or close in response to one or more sensor signals and set points. For example, the determination to further open or close the shaft damper  112  may depend at least in part on the measured air flow in the shaft branch  124 . To this end, the equipment controller  208  is also operable to receive shaft air flow values from the shaft flow sensor  118 . The controller  208  may then suitably be configured to generate the output based on the received shaft air flow values and a set point set by the control station  202 . The control station  202  may alter the set point based in part on the temperature values measured by the temperature sensors  126  and  128 , operating characteristics of the blower  110 , or combinations of many factors.  
         [0040]     It will be appreciated that the control algorithms and schemes of the HVAC system  200  are given by way of illustrative example, and that those of ordinary skill in the art may readily device suitable control schemes for HVAC systems of any particular building space. The exact nature of how to develop specific applications of control schemes is outside the scope of the disclosure and would be readily apparent to those of ordinary skill in the art.  
         [0041]     In accordance with the present invention, a system  150  for developing and storing a model of the building system  100  is operably connected to communicate to the control station  202 . Such a connection may be through an intranet, the Internet, or other suitable communication scheme. In alternative embodiments, the system  150  and the control station  202  are present on the same host computer system.  
         [0042]     In any event, the system  150  includes I/O devices  152 , a processing circuit  154  and a memory  156 . The I/O devices  152  may include a user interface, graphical user interface, keyboards, pointing devices, remote and/or local communication links, displays, and other devices that allow externally generated information to be provided to the processing circuit  154 , and that allow internal information of the system  150  to be communicated externally.  
         [0043]     The processing circuit  154  may suitably be a general purpose computer processing circuit such as a microprocessor and its associated circuitry. The processing circuit  154  is operable to carry out the operations attributed to it herein.  
         [0044]     Within the memory  156  is a model  158  of the building system  100 . The model  158  is a collection of interrelated data objects representative of, or that correspond to, elements of the building system  100 . Elements of the building system may include any of the illustrated in  FIGS. 1 and 2 , as well as other elements typically associated with building systems. Building system elements are not limited to HVAC elements, but may include security devices such as the security sensor  132  or the like, fire safety system devices, lighting equipment, or other building equipment.  
         [0045]     An example of the model  158  of the HVAC system  200  of  FIGS. 1 and 2  is illustrated in  FIG. 3  in further detail. With reference to  FIG. 3 , the model  158  includes a building zone object  301 , a first room space object  302 , a first window object  302   a , a second room space object  304 , a hall space object  306 , a mechanical space object  308 , a blower object  310 , a shaft damper object  312 , a first room damper object  314 , a second room damper object  316 , a flow sensor object  318 , a first room inlet object  320 , a second room inlet object  322 , a shaft branch object  324 , a first temperature sensor object  326 , a second temperature sensor object  328 , a space temperature adjuster object  330 , a first equipment controller object  406 , a second equipment controller object  408  and a blower controller object  410 .  
         [0046]     The objects generally relate to either primarily physical building structures or building automation system devices. Building structure (or space) objects correspond to static physical structures or locations within a building space, such as room spaces, hall spaces, mechanical spaces, and shaft elements. Building automation system device objects correspond to active building automation system elements such as sensors, dampers, controllers and the like. It is noted that some elements, such as ventilation shaft elements, could reasonably qualify as both types of elements in other embodiments. However, in the exemplary embodiment described herein, the shaft elements are considered to be building structure elements as they tend to define a subspace within the building space.  
         [0047]     Each object in the model  158  corresponds to an element of the building system of  FIGS. 1 and 2 . Table 1, below lists the objects, and defines the element of the building system to which they correspond.  
                   TABLE 1                       OBJECT No.   CORRESPONDING ELEMENT                   301   Zone 100       302   Room Space 102        302a   Window 102a       304   Room Space 104       306   Hall Space 106       308   Mechanical Space 108       310   Blower 110       312   Shaft Damper 112       314   First Room Damper 114       316   Second Room Damper 116       318   Flow Sensor 118       320   Room Inlet 120       322   Room Inlet 122       324   Shaft Branch 124       326   Temperature Sensor 126       328   Temperature Sensor 128       330   Temperature Adjuster 130       406   Equipment Controller 206       408   Equipment Controller 208       410   Equipment Controller 210                  
 
         [0048]     Each object is a data object having a number of fields. The number and type of fields are defined in part by the type of object. For example, a room space object has a different set of fields than a temperature sensor object. A field usually contains information relating to a property of the object, such as a description, identification of other related objects, and the like.  
         [0049]     The model  158  is built by creating objects from a library of templates  160  (see  FIG. 2 ), which may also be stored in the memory  156 . The library of templates  160  contain templates for several types of objects, and ideally for all types of object. Various examples of templates are discussed herein. In particular,  FIG. 5  shows a building zone template  502 ,  FIG. 6  shows a room space template  602 ,  FIG. 7  shows an inlet shaft segment template  702 ,  FIG. 8  shows a temperature sensor template  802 , and  FIG. 9  shows a damper space template. Other templates for other elements may be developed by those of ordinary skill in the art applying the principles illustrated herein.  
         [0050]      FIG. 4  shows an exemplary method that may be used to generate a model such as the model  158 . In step  402 , the user generates a new object for a selected building system element, and gives the object an identification value or name. To this end, the user may enter information through the I/O devices  152  of the system  150  of  FIG. 2 .  
         [0051]     Thereafter, in step  404 , the user selects an object template corresponding to the selected building system element. To this end, the processing device  154  may cause the I/O devices  152  to display one or more menus of templates available from the template library  160  stored in the memory  156 . The user may then use the I/O devices  152  to enter a selection, which is received by the processing device  154 .  
         [0052]     Then, in step  406 , the user instantiates the selected object template by providing appropriate values to the fields available in the object template. To this end, the processing device  154  may suitably prompt the user for each value to be entered as defined by the selected template. The types of values entered will vary based on the type of template. Building structure templates vary, but share some similarities, as do building automation device templates.  
         [0053]     Once the object is instantiated, the processing circuit  154  stores the object in the memory  156  in a manner that associates the object with the model  158 . In step  408 , the user may select whether additional objects are to be created. If not, then the process is completed. If so, however, then the user creates and names a new object in step  402  and proceeds as described above.  
         [0054]     Examples of templates, and how such templates would be populated or instantiated using the data of the building system of  FIGS. 1 and 2 , are provided below in connection with  FIGS. 5-9 . It will be appreciated that the objects may suitably take the form of an XML object or file.  
         [0055]      FIG. 5 , for example, shows a building zone template  502 . When the user creates an object for the building zone  100  of the building system of  FIGS. 1 and 2 , the user employs the building zone template  502 . The building zone template  502  in the exemplary embodiment described herein has an identifier value, a type identifier, and four fields: a child field  512 , a graphic field  514 , a parent field  516 , and a common name field  518 . The data structure contained in, or pointed to by the value in, the child field  512  is an array. Each element of the array is an identifier value for child entities of the building, such as room spaces, hall spaces and the like. The identifier value may suitably be the identifier of the object corresponding to those child entities. The child field  512  thus allows the building object to be associated with other objects, namely room space, hall space and other space objects, in the model  158 .  
         [0056]     The graphic field  514  contains a pointer to a graphics file. The graphics file contains a graphical representation of the zone, such as a floor plan similar to that illustrated in  FIG. 1 . The data structure for the parent field  516  may suitably be a single value, as most building structure objects should have only single parent object. The value of the parent field  516  may suitably be the identifier for the building object of the building in which the building zone is located. For example, the building zone  100  of  FIG. 1  may be a floor or wing of a building, and thus its parent object is the object for the entire building. The common name field  518  is a string. The common name field  518  could contain a commonly known name for the building zone, such as the “first floor”, or “eastern wing”. Thus, the building zone template  502  provides two ways to identify the building: the system object identifier and the common name.  
         [0057]      FIG. 5   a  shows the building object  301  formed by instantiating the building template  502  with the data associated with the zone  100 . The name “ 100 _GRAPHIC” represents the file reference for the graphic of the zone  100 , and the name “BLDG_OBJECT” represents an object name for an object that describes the overall building, not shown, but which includes the building zone  100 .  
         [0058]      FIG. 6  shows a room space object template  602 . When the user creates an object for each of the first room space  102  and the second room space  104 , the user employs the room space object template  602 . The room space object template  602  in the exemplary embodiment described herein has an identifier value, a type identifier, and seven or more fields: a child field  612 , a parent field  614 , a graphic field  616 , a sensor value field  620 , a square foot field  622 , a volume field  624 , a location field  626 , as well as others. The data structure for the child field  612  is an array, with each element of the array being an identifier value for child entities of the room space, such as cubicles, work spaces or other subdivisions of a room. The data structure of the parent field  614  may suitably be a value, as each room space typically should have only one direct parent.  
         [0059]     The graphic field  616  contains a pointer to a graphics file that contains a graphical representation of the room space. The data structure for the sensor value field  620  is an array containing the identification of each sensor value generated within the room. In most advanced HVAC systems, each sensor value is a data point that may accessed by an identifier. Each sensor value is associated (within the model  158  and the HVAC system  200 ) with the sensor device that created it. For example, the temperature measured by the temperature sensor  126  may be identified as data point  126   t . As discussed above, the sensor value field  620  contains an array of such sensor value data point identifiers.  
         [0060]     The square foot field  622  and the volume field  624  may be integer or floating point values that provide information on the dimensions of the room space. The location field  626  is a data structure that contains coordinates and possibly shape information of the room space. The data structure of the location field  626  may suitable be an array of coordinates of four corners of the room space. Other fields, not shown, may otherwise identify the building automation equipment that is present in the room space.  
         [0061]      FIG. 6   a  shows the room space object  302  formed by instantiating the room space template  602  with the data associated with the first room space  102 .  FIG. 6   b  shows the room space object  304  formed by instantiating the room space template  602  with the data associated with the second room space  104 . It will be appreciated that in  FIGS. 6   a  and  6   b , the location field is populated by a single coordinate of a reference point, e.g. the centerpoint, of the room space. As discussed above, the location field  626  may be implemented in many different ways. It will further be appreciated the sensor value identifiers for the sensor devices  126  and  128  are named  126   t  and  128   t  in the exemplary embodiment of  FIGS. 6   a  and  6   b.    
         [0062]      FIG. 7  shows an inlet object template  702 . When the user creates an object for each of the room inlets  120  and  122 , the user employs the inlet object template  702 . The inlet object template  702  in the exemplary embodiment described herein has an identifier value, a type identifier, and eight or more fields: a parent field  712 , a space field  714 , a graphic field  716 , a sensor value field  718 , a cross-sectional area field  720 , a length field  722 , a BAS device field  724 , a location field  726 , and possibly others. The data structure for the parent field  712  may suitably be a single value that identifies a parent shaft to which the inlet shaft segment is connected. The space field  714  is a value that identifies the room space, hall space or other type of space into which the inlet segment provides fluid communication. The value is the object identifier the corresponds to that space.  
         [0063]     The graphic field  716  contains a pointer to a graphics file that contains a graphical representation of the inlet shaft segment. The data structure for the sensor value field  718  is an array containing the identification of each sensor value generated within the inlet shaft segment. The cross section area field  720  and the length field  722  may be integer or floating point values that provide the dimensions of the inlet shaft segment. The BAS device field  724  contains the identifiers of any controllable BAS devices within the inlet shaft segment. The location field  726  is a data structure that contains location coordinates for the inlet shaft segment.  
         [0064]      FIG. 7   a  shows the inlet segment object  320  formed by instantiating the inlet segment template  702  with the data associated with the first inlet segment  120 .  FIG. 7   b  shows the inlet segment object  322  formed by instantiating the inlet segment template  702  with the data associated with the second inlet segment  122 .  
         [0065]      FIG. 8  shows a temperature sensor object template  802 . When the user creates an object for each of the first temperature sensor object  126  and the second temperature sensor object  128 , the user employs the temperature sensor object template  802 . The temperature sensor object template  802  in the exemplary embodiment described herein has an identifier value, a type identifier, and five or more fields: a space location field  812 , a vendor field  814 , a characteristics field  816 , a vendor model field  818 , a measured temperature point identifier field  820  and possibly others. The data structure for the space location field  812  is a value of the identifier of the object for the room space, hall space or other space in which the sensor device is located. The vendor field  814  may suitably be a string value (or a look-up table code) that identifies the vendor for the sensor. The characteristics field  816  contains a pointer a string, array, graphic or other file that provides characteristics of operation of the sensor, such as graphic performance information or the like. The vendor model field  818  is a string value providing the commercial model number for the device. The measured temperature point identifier field  820  contains of the identification of the system data point of the temperature measured by the sensor. As discussed further above, each measured value (and also control value) has a data point identifier in a typical HVAC network. The temperature sensor object template  802  thus contains at least one field that identifies the data point in which the temperature data obtained by the temperature sensor is stored and transported.  
         [0066]      FIG. 8   a  shows the temperature sensor object  326  formed by instantiating the temperature sensor template  802  with the data associated with the first temperature sensor  126 .  FIG. 8   b  shows the temperature sensor object  328  formed by instantiating the temperature sensor template  802  with the data associated with the second temperature sensor  128 .  
         [0067]      FIG. 9  shows a damper object template  902 . When the user creates an object for each of the dampers  112 ,  114  and  116 , the user employs the damper object template  902 . The damper object template  902  in the exemplary embodiment described herein has an identifier value, a type identifier, and five or more fields: a space location field  912 , a vendor field  914 , a characteristics field  916 , a vendor model field  918 , and a damper actuator control value point identifier field  920 , and possibly others. The data structure for the space location field  912  is a value of the identifier of the shaft branch, inlet segment, outlet segment or other shaft space in which the damper is located. The vendor field  914  may suitably be a string value (or a look-up table code) that identifies the vendor for the damper and/or its actuator. The characteristics field  916  contains a pointer a string, array, graphic or other file that provides characteristics of operation of the damper and/or its actuator, such as energy characteristics, performance information, or the like. The vendor model field  918  is a string value providing the commercial model number for the device. The damper actuator control value point identifier field  920  contains of the identification of the system data point of the control value used to change the position of the damper. As is known in the art, the damper position is physically moved by an actuator, the actuator causing movement responsive to control value. The damper object  902  thus contains thee field  920  to identify the data point in which the control information for the damper is stored and transported.  
         [0068]      FIG. 9   a  shows the damper object  312  formed by instantiating the damper template  902  with the data associated with the shaft damper  112 .  FIG. 9   b  shows the damper object  314  formed by instantiating the damper template  902  with the data associated with the first room damper  114 .  FIG. 9   c  shows the damper object  316  formed by instantiating the damper template  902  with the data associated with the second room damper  116 .  
         [0069]     It will be appreciated that suitable templates may readily be created by those of ordinary skill in the art for other elements, such as, for example, flow sensors and shaft branches, water valve actuators, controllers, and other devices of the building system  100 , as extensions of the examples described above. Using the above examples as a guide, those of ordinary skill in the art may readily develop appropriate templates for other building automation systems, such as security systems, fire safety systems, and the like.  
         [0070]     The building model  158  thus provides a relatively comprehensive description of each of the building automation system devices, and relates those devices to the physical structure of the building. To this end, the building automation system device objects include, in addition to references to relevant control values of the device, but also information as to what part of the building space in which the device is located. Moreover, the building space objects are arranged hierarchically, to further interrelate system devices and values with different “zoom” levels of the building structure. It will be appreciated that the actual data objects may take many forms and still incorporate these features of the invention.  
         [0071]     The model  158  and different models incorporating the same general principles have limitless potential for enhancing building automation system services. Software applications may use the model  158  to relate building information innumerable ways to provide better understanding and operation of building systems.  
         [0072]      FIG. 10  shows an exemplary structure for providing a software interface arrangement  1000  to a building model such as the model  158 . The software interface  1000  includes a library of functions  1002  that utilize the model  158  to provide useful information about the building system  100 , and an interface  1008 . By way of example,  FIG. 10  shows first and second user applications  1004  and  1006 , respectively, that utilize library functions  1002  and the model  158  to obtain building system information.  
         [0073]     The function library  1002  contains, among other things, generic software functions  1002   a ,  1002   b , and so forth, for various elements of the building system. By way of example, there may be one or more trend functions that generate trend information for various sensor measurements in the building system  101 , selfdiagnose functions that perform diagnostic functions of various building automation devices, and/or maxtemp functions that obtain a maximum temperature reading for a zone in the building system  100 . Any number of other functions useful in building control systems may be employed. Because most if not all objects in the model  158  are built from standard templates, software routines that use the model may be made in a relatively generic sense. At a minimum, a user application  1004  or  1006  may easily incorporate functions involving various building devices that would have been extremely difficult to incorporate using prior building control systems.  
         [0074]     User applications  1004 ,  1006  could call system functions by identifying the function name and one or more building objects for or on which the function is being performed. A protocol may allow a single code line of the application  1004  (or  1006 ) to generate the call. For example, the following function calls may be made with the objects of the model  158  (see Table I, above). 
     301 . 304 . 128 .trend //calls a “trend” function for the temperature of room space  104       301 . 310 .selfdiagnose //calls a self-diagnostic function for the blower  110       301 .maxtemp //calls a maximum temperature reading function for the zone  100     
 
         [0078]     The software interface  1008  in each case would identify the proper function based on at least the function name (i.e. trend, selfdiagnose, maxtemp) and the information identifying the relevant device (i.e. object identifiers  128 ,  310 ,  301 ). To this end, as shown in  FIG. 11 , the software interface  1008  first, in step  1102 , receives the call (i.e.  301 . 310 .selfdiagnose) and identifies the selfdiagnose function and object  301 . The software interface  1008  then, in step  1104 , uses rules associated with selfdiagnose to identify the library function  1002  to call, based on the object  310 . By way of example, there may exist several library functions selfdiagnose corresponding to each type of object or building automation device. The rules of the software interface  1008  preferably cause the software interface  1008  to reference the object  310  to determine that the object type=blower, and then identifies the routine that performs a self diagnosis operation on a blower. Other selfdiagnose library functions may perform self-diagnostics on other equipment, such as sensors, actuators, chillers and the like.  
         [0079]     In step  1106 , the software interface  1008  calls the appropriate library function as identified in step  1104  and passes the appropriate parameters. For example, the software interface calls the library function  1002   x  that has the process for performing self-diagnostics on a blower. The software interface  1008  further passes parameters to the library function  1002   x  that identify the blower object  310  itself, along with any other parameters generated by the application  1004  or the interface  1008  itself. The model  158  provides the necessary information to allow the library function  1002   x  to perform the diagnostics on the blower  110 .  
         [0080]     In some cases, a single library function  1002   n  may serve for all instances of a particular function, such as maxtemp, discussed below. In an exemplary maxtemp routine, a software application may be developed to find the highest temperature in each “zone” of a building. The general function may be made generic, regardless of what “kind” of zone is used. In other words, the maxtemp routine may be made generic for buildings, floors, rooms, halls or other space configuration.  
         [0081]     Such a generic routine may be readily accomplished using the general operations listed below: 
        1) check all child objects of the identified zone (i.e. room objects, hall objects, etc.) to identify all temperature sensor values associated with the child objects of each zone. The identified temperature sensor values for each zone constitute list of temperature data point identifiers for each zone;     2) obtain the current measured temperatures for each zone, or in other words, obtain the values of the identified temperature point identifiers for each zone; and     3) identify the highest value for each zone. 
 
 The model  158  makes it simple to identify which temperature data points are associated with each room space, zone space or building space. The above example is non-limiting is merely illustrates one of the advantages of the model. 
       
 
         [0085]     It will be appreciated that the above describe embodiments are merely exemplary, and that those of ordinary skill in the art may readily devise their own modifications and implementations that incorporate the principles of the present invention and fall within the spirit and scope thereof.  
         [0086]     Additional features of some embodiments of the invention are descried in Appendix A.