1.2 Extending the Model Schema - ladybug-tools/honeybee-schema GitHub Wiki

The Model object and all 5 of the geometry objects that make up the Model are meant to be extended with properties for different simulation engines like EnergyPlus/OpenStudio or Radiance. This is done through a "properties" key that each of these objects possesses.

The "properties" key

Underneath the "properties" key that each geometry object possesses, keys are added for a specific simulation engine. These keys mus be consistent across all geometry objects in the model. For example, the "energy" key is used to house all of the properties of the object for energy simulation and the "radiance"key houses all properties of the object for radiance simulation. The "type" (or class) of the object in each of these slots follows a standard naming convention starting with the name of the object and ending with the word "Properties".

For example, the Model object has been extended to work for both energy and radiance simulations would be structured like so: Extended Honeybee Model

The various keys under "properties" are all optional, meaning that radiance properties are not necessary when a model is only intended for energy simulation and vice versa.

Example extension for energy simulation

Underneath the key of a given extension, the properties related to that extension are stored. For example, extending the Model for energy simulation involves the addition of keys for materials, constructions, construction_sets, schedules and program_types like so: Extended Honeybee Model for Energy

A note on Abridged schemas

Throughout a given model, there are several objects that possess a "type" key (aka. a class indicator) with the word Abridged in it. For example, the extension of the Shade object for energy and radiance simulations involves the addition of ShadeEnergyPropertiesAbridged and ShadeRadiancePropertiesAbridged like so: Extended Honeybee Shade

The word Abridged notes that the description of the Abridged object is not enough to full re-serialize or re-create the object on its own. This is because information to do so exists in another part of the Model that the Abridged object is a part of. In the example of the Shade above, the transmittance_schedule that might be applied to the object for energy simulation does not exist in full underneath the ShadeEnergyPropertiesAbridged. Instead, a name of a schedule can be found there, which must be looked up under the schedules key underneath the ModelEnergyProperties of the model that the Shade object is a part of.

Various objects in extensions also make use of the Abridged naming convention. For example, OpaqueConstructionAbirdged objects used in energy simulations only possess the names of material layers and these materials must be looked up under the "materials" key of the ModelEnergyProperties.