A Building Management System, BMS, for controlling a plurality of devices installed at a building, the BMS comprising: a system model that is configured to be used in controlling the plurality of devices installed in the building, the system model is further configured to be developed and implemented in stages using templates with selectable elements to adhere to a single ontology of the plurality of devices installed at the building during different phases of use of the BMS including two or more of installation, engineering, commissioning, operation, and maintenance, wherein different tools utilizing the templates are used by technicians to develop and implement the system model during each of the two or more different phases, where the system model is configured to be directly accessed and updated by the different tools, the system model is structured to enforce standardized device names and standardized point names that are hardware agnostic for the plurality of devices installed at the building, the system model is configured to define the single ontology of the plurality of devices installed at the building so that the different tools used by the technicians when developing and implementing the system model receive complete information without requiring manual re-entry by the technicians of already provided information, the system model is further configured to receive hardware agnostic point information from a gateway and provide hardware agnostic control commands to the gateway for controlling the plurality of devices installed at the building; the gateway communicatively coupled to the system model and one or more of the devices installed at the building, the gateway configured to: receive point information from the one or more of the plurality of devices installed at the building and convert the received point information into hardware agnostic point information before sending the hardware agnostic point information to the system model; and receive hardware agnostic control commands from the system model and convert the received hardware agnostic control commands into hardware specific control commands before sending the hardware specific control commands to the appropriate devices installed at the building. a system model that is configured to be used in controlling the plurality of devices installed in the building, the system model is further configured to be developed and implemented in stages using templates with selectable elements to adhere to a single ontology of the plurality of devices installed at the building during different phases of use of the BMS including two or more of installation, engineering, commissioning, operation, and maintenance, wherein different tools utilizing the templates are used by technicians to develop and implement the system model during each of the two or more different phases, where the system model is configured to be directly accessed and updated by the different tools, the system model is structured to enforce standardized device names and standardized point names that are hardware agnostic for the plurality of devices installed at the building, the system model is configured to define the single ontology of the plurality of devices installed at the building so that the different tools used by the technicians when developing and implementing the system model receive complete information without requiring manual re-entry by the technicians of already provided information, the system model is further configured to receive hardware agnostic point information from a gateway and provide hardware agnostic control commands to the gateway for controlling the plurality of devices installed at the building; the gateway communicatively coupled to the system model and one or more of the devices installed at the building, the gateway configured to: receive point information from the one or more of the plurality of devices installed at the building and convert the received point information into hardware agnostic point information before sending the hardware agnostic point information to the system model; and receive hardware agnostic control commands from the system model and convert the received hardware agnostic control commands into hardware specific control commands before sending the hardware specific control commands to the appropriate devices installed at the building. receive point information from the one or more of the plurality of devices installed at the building and convert the received point information into hardware agnostic point information before sending the hardware agnostic point information to the system model; and receive hardware agnostic control commands from the system model and convert the received hardware agnostic control commands into hardware specific control commands before sending the hardware specific control commands to the appropriate devices installed at the building.