Air Boundary or Transparent wall?

Airboundary vs. Transparent wall

I am creating models for daylight simulation (radiance). The issue I’m having is that in some unique cases, the AirBoundary wall type is causing the simulation to fail. I’m using AirBoundary to walls that should be invisible, and for this workflow I have narrowed it down to 2 unique examples:

For example an open staircase, or a room with two or three walls.

the-island.hbjson (62.5 KB)

Anytime there is an opening in the facade wall, like a parking space:

the-opening.hbjson (29.3 KB)

I would like to note that the simulation runs successfully as long as the AirBoundary is not in an “island” or a facade opening. For reference, here is how I’m defining the AirBoundary wall:

          "type": "Face",
          "identifier": "Room_0..Face5",
          "properties": {
            "type": "FacePropertiesAbridged"
          "geometry": {
            "type": "Face3D",
            "boundary": [
              [485, 100, 0.0],
              [485, 100, 300.0],
              [485, 478, 300.0],
              [485, 478, 0.0]
          "face_type": "AirBoundary",
          "boundary_condition": {
            "type": "Surface",
            "boundary_condition_objects": []

If AirBoundary cannot handle these edge cases, I will need to use something else, perhaps a completely transparent material that let’s through light? I’m writing (converting) the hbjson files by hand, so would love to see an example of how something like this would be written.

Hi @jriise, you should be able to use air boundaries but you need to create the model like how you would do it for an energy model. That means you have to duplicate the face and make sure they are adjacent.

That said, if you are only using this model for daylighting, you can just exclude that face from the model. Would that be an acceptable solution?

1 Like

Thank you @mostapha simply ignoring the “invisible” walls seem to enable the simulation. However, I get a downstream issue of piecing together the rooms.

I would love to try the AirBoundary option as I’m likely going to need to perform some energy simulation at some point. Could you help me understand the minimal effort to add this to the file?

Do I need to add the “energy” property to the top of the document for example? Would I need to add any of these to the hbjson?

  "properties": {
    "type": "ModelProperties",
    "energy": {
      "type": "ModelEnergyProperties",
      "global_construction_set": {
        "type": "GlobalConstructionSet",
        "materials": [],
        "constructions": [],
        "wall_set": [],
        "floor_set": [],
        "roof_ceiling_set": [],
        "aperture_set": [],
        "door_set": [],
        "shade_construction": "Generic Shade",
        "air_boundary_construction": "Generic Air Boundary"
      "construction_sets": [],
      "constructions": [],
      "materials": [],
      "hvacs": [],
      "program_types": [],
      "schedules": [],
      "schedule_type_limits": [],
    "radiance": {
      "type": "ModelRadianceProperties",
      "global_modifier_set": {
        "type": "GlobalModifierSet",

And should I add any specific properties to the Face object itself, or is it fine how I have implemented it as shown previously?

Hi @jriise,

I created a model with a wall with an air boundary.

The study is available here on Pollination and you can download the HBJSON file. I’m also attaching it here.

model_with_air_boundary.hbjson (174.9 KB)

As you can see the light goes through the air boundary. The HBJSON → RAD routine removes the air boundaries during the translation process so they won’t affect the daylighting results.

Make sure to use the latest version of honeybee-radiance. We used to write them as fully translucent faces but we fully removed them from the rad file recently.

1 Like