The high level functional requirements for the BCVTB are:
The BCVTB should be modular and simulation tool independent so that different clients can be coupled to it. Examples of clients are EnergyPlus, a BACnet compatible Building Automation System, MATLAB/Simulink, simulation environments for Modelica and visualization tools for the online plot of variables.
For BACnet operation, the coupling should be fault tolerant in the sense that clients can proceed with their operation even if no updated values are available from BACnet. This situation can occur if communication problems prevent BACnet from sending updated values.
The BCVTB should allow users to couple different simulation programs or Building Automation Systems without having to modify source code of the BCVTB.
The computing time for data transfer between simulation programs should be small compared to the computing time spent in the individual simulation programs when performing a co-simulation for a whole building.
The BCVTB should allow communication using BSD sockets or BACnet, and allow users to add other communication mechanism as needed.
The BCVTB should run on Windows, Linux and Mac OS X.