4.3. What's Changed from V1

There are a number of differences between the V1 and V2 representations of a product. Some changes were made to clarify the nature of the data, whilst others were made to reflect new ways the data is modelled in IGSDBv2. The following sections highlight the most important differences.

Product Type and Subtype

In IGSDBv2, the string constants that describe a product's type and subtype have changed. Most constants, including types and subtypes, are now all capital letters separated with underscores.

Product Types

V1 V2
glazing GLAZING
shading SHADING

Product Subtypes

V1 V2
GLAZING
-- COATING
-- FILM
monolithic MONOLITHIC
coated-glass COATED
applied-film APPLIED_FILM
laminate LAMINATE
SHADING
bsdf-file --
( Now reported by data_file_type. See BSDF File Type in V2 below for more information.)
cellular-shade CELLULAR_SHADE
fritted-glass FRITTED_GLASS
perforated-screen PERFORATED_SCREEN
venetian VENETIAN_BLIND
-- VERTICAL_LOUVER
-- PERFORATED_SCREEN
-- WOVEN_SHADE
-- ROLLER_SHADE
-- PLEATED_SHADE
-- ROMAN_SHADE
-- DIFFUSING_SHADE
-- SOLAR_SCREEN
-- SHADE_MATERIAL
-- FRITTED_GLASS
-- SANDBLASTED_GLASS
-- ACID_ETCHED_GLASS
-- CHROMOGENIC

Integrated Spectral Averages Summary

V1 V2
integrated_results_summary integrated_spectral_averages_summaries

  • The name is updated to better indicated the nature of the data (integrated spectral averages summaries).
  • The variable name is now pluralized to better indicate there may be more than one summary, based on calculation standard (e.g. "NFRC").
  • The data structure containing integrated summary values has been extended.

See Integrated Spectral Average Summaries below.

Spectral Data

V1 V2
spectral_data physical_properties

In IGSDBv2, spectral data is provided in a more structured way, and presented with other physical properties of the product in the physical_properties object.

See Physical Properties below

New Fields

The following fields have been added to the product detail in the IGSDBv2 API and do not exist in the IGSDBv1 API.

Field Description
token

A new human-readable, URL-compatible slug that uniquely identifies a product. The token field is meant to :

  • replace the convention of using the data file name as a common identifier for a product.
  • provide an easily-remembered, human-readable identifier for a product.
  • provide a identifier that can be reliably used in a URL for API and web requests.
component_id A Universally Unique Identifier for the product, as registered with the Building Envelope Data metabase
igsb_db The ID of the product in the IGDB database, if present.
  • For FILM or COATING products, this means the CoatingID
  • For INTERLAYER products, this means the InterlayerID
  • For MONOLITHIC,APPLIED_FILM, COATED and LAMINATE products, this means the GlazingID
  • For MONOLITHIC, MONOLITHIC, products, this means the GlazingID
  • For what are called "shade material" products in the IGDB, this means the ID column of the ShadeMaterial table
  • For what are called "shading layer" products in the IGDB, this means the ID column of the ShadeLayer table
mdb_time_created "Time created" timestamp from the IGDB or CGDB .mdb database, if product was imported into the IGSDBv2 from the IGDB or CGDB.
cgdb_time_created "Time created" timestamp from the CGDB database, if product was imported into the IGSDBv2 from the CGDB database
igsdb_version

The IGSDB database version for the product. This represents the latest version the product was either added or updated. For unmodified products imported into the IGSDBv2 directly from the IGDB, this will be the same as the igdb_database_version.

However, in the future products published in the IGSDBv2 from LBNL's Checkertool product will potentially have an igsdb_version but not an igdb_database_version.

cgdb_id

In the IGSDBv1, the cgdb_shade_material_id held the ID of "Shade Material" products imported from the IGDB. The cgdb_shading_layer_id held the ID of "Shading Layer" products.

In the IGSDBv2, both types of products have their ID stored in the cgdb_id field. If the product is of subtype SHADE_MATERIAL, this ID corresponds to the "Shading Layer" ID in the IGDB. Otherwise, it corresponds to the "Shade Material" ID in the IGDB. ( This only applies if the shading product appears in the IGDB. )

hidden

Whether the product is a 'hidden' record in that it was provided solely for purpose of submitted another product (e.g. a hidden MONOLITHIC product used as part of a COATED product submission). Hidden products are not returned in the product list, but can be viewed directly by their token in the API or the web user interface.

material_bulk_properties

The IGSDBv2 provides this object with data on the bulk properties of the material.

material

A convenience value that lifts the name property up from the material_bulk_properties object.

geometric_properties

The IGSDBv2 provides this object with data on the geometric properties of a product (e.g. slat dimensions for a venetian blind).

owner_name

The IGSDBv2 allows an "owner" to be defined in additional to the "manufacturer." (Owner will often be the same as "manufacturer".)

data_file_type

Describes the type of data file associated with the product. Data files are used during product submission to provide information about the product and can contain a variety of formats.

Valid types are:

  • BSDF_XML : A BSDF file describing the product.
  • THERM : A THERM file describing the product.
  • IGDB_LEGACY_SUBMISSION_FILE : A submission file in 'legacy' format.
  • CGDB_LEGACY_SUBMISSION_FILE : A CGDB submission file in 'legacy' format.
  • SPD : A IGSDBv2 "simple product document", the modern JSON-based way of describing a product.
  • OTHER : Undocumented type.
coating_id

A convenience field that lifts a legacy IGDB coating ID up from the composition structure, if one is present. This is useful for COATED and LAMINATE products that contain a COATING product as one of their layers.

This value can also represent a FILM product's legacy "coating id"...due to the IGDB's data model where FILM products were sometimes referred to as "coatings".

window8_application_type

WINDOW8 application type, if applicable. WINDOW8 has a different identifier for certain products: it uses BSDF_XML and GEN_BSDF_XML as a product type, where the IGSDBv2 now has e.g., type SHADING and subtype CELLULAR_SHADE, with a data_file_type of BSDF_XML.

( see BSDF File Type in V2 below.)

  • tir_front
  • tir_back
  • emissivity_back
  • emissivity_front

These values are provided at the top level as a convenience. They are the same values that are provided in either the integrated_spectral_averages_summaries object or the physical_properties object (depending on the nature of the product).

BSDF File Type in V2

In the legacy CGDB, a shading product that was defined by a 'type' of 7 corresponded to a 'GEN_BSDF_XML' file. Products defined by a "Gen" BSDF xml file (and an accompanying "THMX" file) were usually cellular shades, roman shades or pleated shades.

Shading products of 'type' 2 were considered "BSDF_XML" products...which usually corresponded to roller shades.

However, the semantics of this system were suboptimal, as the real 'type' of product was now obscured by terms which really only defined the nature of the data file used to describe it, not the product's actual type.

In the IGSDB, a shading product is defined by type SHADING and a subtype that corresponds to its actual nature, such as CELLULAR_SHADE.

Meanwhile, the type and nature of the data files that define its properties has been moved to a different property called data_file_type

CGDB Legacy Value Possible IGSDB Subtypes
BSDF_XML (code 2) ROLLER_SHADE
GEN_BSDF_XML (code 7)
  • ROMAN_SHADE
  • CELLULAR_SHADE
  • PLEATED_SHADE

Integrated Spectral Averages Summaries

In the IGSDBv1, summary values for each available standard were presented in a flat structure, such as in the following example:

"integrated_results_summary": [
    {
      "calculation_standard_name": "NFRC",
      "tfsol": 0.8483579,
      "tbsol": null,
      "rfsol": 0.07563639,
      "rbsol": 0.07565702,
      "tfvis": 0.9044294,
      "tbvis": null,
      "rfvis": 0.08225197,
      "rbvis": 0.08225287,
      "tdw": 0.8480601,
      "tuv": 0.7253202,
      "tspf": 10.40653,
      "tkr": null,
      "tciex": 85.31423,
      "tciey": 90.45058,
      "tciez": 96.74794,
      "tf_r": null,
      "tf_g": null,
      "tf_b": null,
      "rfciex": 7.753658,
      "rfciey": 8.233734,
      "rfciez": 8.986135,
      "rf_r": null,
      "rf_g": null,
      "rf_b": null,
      "rbciex": null,
      "rbciey": null,
      "rbciez": null,
      "rb_r": null,
      "rb_g": null,
      "rb_b": null
    }
  ],
    

In the IGSDBv2, this structure has been extended to support more type of data, such as shown in the following example:


  "integrated_spectral_averages_summaries": [
    {
      "calculation_standard": "NFRC",
      "source": "IGDB",
      "source_version": "93",
      "spf": {
        "error": null,
        "reflectance_back": {
          "matrix": null,
          "direct_direct": null,
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "reflectance_front": {
          "matrix": null,
          "direct_direct": null,
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "transmittance_back": {
          "matrix": null,
          "direct_direct": null,
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "transmittance_front": {
          "matrix": null,
          "direct_direct": "14.91371",
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "absorptance_back_direct": null,
        "absorptance_front_direct": null,
        "absorptance_back_hemispheric": null,
        "absorptance_front_hemispheric": null
      },
      "tdw": {
        "error": null,
        "reflectance_back": {
          "matrix": null,
          "direct_direct": null,
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "reflectance_front": {
          "matrix": null,
          "direct_direct": null,
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "transmittance_back": {
          "matrix": null,
          "direct_direct": null,
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "transmittance_front": {
          "matrix": null,
          "direct_direct": "0.8129907",
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "absorptance_back_direct": null,
        "absorptance_front_direct": null,
        "absorptance_back_hemispheric": null,
        "absorptance_front_hemispheric": null
      },
      "tkr": {
        "error": null,
        "reflectance_back": {
          "matrix": null,
          "direct_direct": null,
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "reflectance_front": {
          "matrix": null,
          "direct_direct": null,
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "transmittance_back": {
          "matrix": null,
          "direct_direct": null,
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "transmittance_front": {
          "matrix": null,
          "direct_direct": null,
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "absorptance_back_direct": null,
        "absorptance_front_direct": null,
        "absorptance_back_hemispheric": null,
        "absorptance_front_hemispheric": null
      },
      "tuv": {
        "error": null,
        "reflectance_back": {
          "matrix": null,
          "direct_direct": null,
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "reflectance_front": {
          "matrix": null,
          "direct_direct": null,
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "transmittance_back": {
          "matrix": null,
          "direct_direct": null,
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "transmittance_front": {
          "matrix": null,
          "direct_direct": "0.6370433",
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "absorptance_back_direct": null,
        "absorptance_front_direct": null,
        "absorptance_back_hemispheric": null,
        "absorptance_front_hemispheric": null
      },
      "color": {
        "reflectance_back": {
          "direct_direct": {
            "lab": {
              "a": null,
              "b": null,
              "l": null
            },
            "rgb": {
              "b": null,
              "g": null,
              "r": null
            },
            "trichromatic": {
              "x": null,
              "y": null,
              "z": null
            }
          },
          "direct_diffuse": {
            "lab": {
              "a": null,
              "b": null,
              "l": null
            },
            "rgb": {
              "b": null,
              "g": null,
              "r": null
            },
            "trichromatic": {
              "x": null,
              "y": null,
              "z": null
            }
          },
          "diffuse_diffuse": {
            "lab": {
              "a": null,
              "b": null,
              "l": null
            },
            "rgb": {
              "b": null,
              "g": null,
              "r": null
            },
            "trichromatic": {
              "x": null,
              "y": null,
              "z": null
            }
          },
          "direct_hemispherical": {
            "lab": {
              "a": null,
              "b": null,
              "l": null
            },
            "rgb": {
              "b": null,
              "g": null,
              "r": null
            },
            "trichromatic": {
              "x": null,
              "y": null,
              "z": null
            }
          }
        },
        "reflectance_front": {
          "direct_direct": {
            "lab": {
              "a": null,
              "b": null,
              "l": null
            },
            "rgb": {
              "b": null,
              "g": null,
              "r": null
            },
            "trichromatic": {
              "x": "7.568347",
              "y": "8.042",
              "z": "8.78969"
            }
          },
          "direct_diffuse": {
            "lab": {
              "a": null,
              "b": null,
              "l": null
            },
            "rgb": {
              "b": null,
              "g": null,
              "r": null
            },
            "trichromatic": {
              "x": null,
              "y": null,
              "z": null
            }
          },
          "diffuse_diffuse": {
            "lab": {
              "a": null,
              "b": null,
              "l": null
            },
            "rgb": {
              "b": null,
              "g": null,
              "r": null
            },
            "trichromatic": {
              "x": null,
              "y": null,
              "z": null
            }
          },
          "direct_hemispherical": {
            "lab": {
              "a": null,
              "b": null,
              "l": null
            },
            "rgb": {
              "b": null,
              "g": null,
              "r": null
            },
            "trichromatic": {
              "x": null,
              "y": null,
              "z": null
            }
          }
        },
        "transmittance_back": {
          "direct_direct": {
            "lab": {
              "a": null,
              "b": null,
              "l": null
            },
            "rgb": {
              "b": null,
              "g": null,
              "r": null
            },
            "trichromatic": {
              "x": null,
              "y": null,
              "z": null
            }
          },
          "direct_diffuse": {
            "lab": {
              "a": null,
              "b": null,
              "l": null
            },
            "rgb": {
              "b": null,
              "g": null,
              "r": null
            },
            "trichromatic": {
              "x": null,
              "y": null,
              "z": null
            }
          },
          "diffuse_diffuse": {
            "lab": {
              "a": null,
              "b": null,
              "l": null
            },
            "rgb": {
              "b": null,
              "g": null,
              "r": null
            },
            "trichromatic": {
              "x": null,
              "y": null,
              "z": null
            }
          },
          "direct_hemispherical": {
            "lab": {
              "a": null,
              "b": null,
              "l": null
            },
            "rgb": {
              "b": null,
              "g": null,
              "r": null
            },
            "trichromatic": {
              "x": null,
              "y": null,
              "z": null
            }
          }
        },
        "transmittance_front": {
          "direct_direct": {
            "lab": {
              "a": null,
              "b": null,
              "l": null
            },
            "rgb": {
              "b": null,
              "g": null,
              "r": null
            },
            "trichromatic": {
              "x": "83.5511",
              "y": "88.97398",
              "z": "95.14458"
            }
          },
          "direct_diffuse": {
            "lab": {
              "a": null,
              "b": null,
              "l": null
            },
            "rgb": {
              "b": null,
              "g": null,
              "r": null
            },
            "trichromatic": {
              "x": null,
              "y": null,
              "z": null
            }
          },
          "diffuse_diffuse": {
            "lab": {
              "a": null,
              "b": null,
              "l": null
            },
            "rgb": {
              "b": null,
              "g": null,
              "r": null
            },
            "trichromatic": {
              "x": null,
              "y": null,
              "z": null
            }
          },
          "direct_hemispherical": {
            "lab": {
              "a": null,
              "b": null,
              "l": null
            },
            "rgb": {
              "b": null,
              "g": null,
              "r": null
            },
            "trichromatic": {
              "x": null,
              "y": null,
              "z": null
            }
          }
        }
      },
      "solar": {
        "error": null,
        "reflectance_back": {
          "matrix": null,
          "direct_direct": "0.07274423",
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "reflectance_front": {
          "matrix": null,
          "direct_direct": "0.07274743",
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "transmittance_back": {
          "matrix": null,
          "direct_direct": "0.793344",
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "transmittance_front": {
          "matrix": null,
          "direct_direct": "0.793344",
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "absorptance_back_direct": null,
        "absorptance_front_direct": null,
        "absorptance_back_hemispheric": null,
        "absorptance_front_hemispheric": null
      },
      "photopic": {
        "error": null,
        "reflectance_back": {
          "matrix": null,
          "direct_direct": "0.08032206",
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "reflectance_front": {
          "matrix": null,
          "direct_direct": "0.08032206",
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "transmittance_back": {
          "matrix": null,
          "direct_direct": null,
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "transmittance_front": {
          "matrix": null,
          "direct_direct": "0.8894838",
          "direct_diffuse": null,
          "diffuse_diffuse": null,
          "direct_hemispherical": null
        },
        "absorptance_back_direct": null,
        "absorptance_front_direct": null,
        "absorptance_back_hemispheric": null,
        "absorptance_front_hemispheric": null
      },
      "thermal_ir": {
        "absorptance_back_hemispheric": null,
        "absorptance_front_hemispheric": null,
        "transmittance_back_diffuse_diffuse": null,
        "transmittance_front_diffuse_diffuse": null
      }
    }
  ]