OCHRE icon indicating copy to clipboard operation
OCHRE copied to clipboard

Failed to load house from Resstock Metadata due to error: Unknown attached wall for Door: Wall3

Open zkschmitz opened this issue 10 months ago • 2 comments

I am trying to use buildings loaded from Resstock 3.1.1 into OCHRE but it fails for some buildings (mostly the MF buildings but some still work). For instance, the building:

My question is, am I missing something (maybe I'm using the wrong version of Resstock) or is there a way to make this work or should I just discard these buildings that fail?

CleanShot 2024-04-23 at 14 35 46@2x

I am have traced it to:

def get_boundaries_by_wall(boundaries, ext_walls, gar_walls, attic_walls):
    # for windows and doors, determine interior zone based on attached wall zone
    ext_bd, gar_bd, attic_bd = {}, {}, {}
    for name, boundary in boundaries.items():
        boundary['Exterior Zone'] = 'Outdoor'
        wall = boundary['AttachedToWall']['@idref']
        if wall in ext_walls:
            boundary['Interior Zone'] = 'Indoor'
            ext_bd[name] = boundary
            ext_walls[wall]['Area'] -= boundary['Area']
        elif wall in gar_walls:
            boundary['Interior Zone'] = 'Garage'
            gar_bd[name] = boundary
            gar_walls[wall]['Area'] -= boundary['Area']
        elif wall in attic_walls:
            boundary['Interior Zone'] = 'Attic'
            attic_bd[name] = boundary
            attic_walls[wall]['Area'] -= boundary['Area']
        else:
            raise IOError(f'Unknown attached wall for {name}: {wall}')

Below is the HPXML file I am trying to use:

Doors:

<Doors>
    <Door>
      <SystemIdentifier id='Door1'/>
      <AttachedToWall idref='Wall3'/>
      <Area>20.0</Area>
      <Azimuth>0</Azimuth>
      <Orientation>north</Orientation>
      <RValue>5.0</RValue>
    </Door>
  </Doors>

Walls:

<Walls>
          <Wall>
            <SystemIdentifier id='Wall1'/>
            <ExteriorAdjacentTo>outside</ExteriorAdjacentTo>
            <InteriorAdjacentTo>living space</InteriorAdjacentTo>
            <WallType>
              <StructuralBrick/>
            </WallType>
            <Area>201.2</Area>
            <Orientation>south</Orientation>
            <Azimuth>180</Azimuth>
            <Siding>none</Siding>
            <Color>medium</Color>
            <SolarAbsorptance>0.7</SolarAbsorptance>
            <Emittance>0.9</Emittance>
            <InteriorFinish>
              <Type>gypsum board</Type>
              <Thickness>0.5</Thickness>
            </InteriorFinish>
            <Insulation>
              <SystemIdentifier id='Wall1Insulation'/>
              <AssemblyEffectiveRValue>13.3</AssemblyEffectiveRValue>
            </Insulation>
          </Wall>
          <Wall>
            <SystemIdentifier id='Wall2'/>
            <ExteriorAdjacentTo>other housing unit</ExteriorAdjacentTo>
            <InteriorAdjacentTo>living space</InteriorAdjacentTo>
            <WallType>
              <StructuralBrick/>
            </WallType>
            <Area>362.1</Area>
            <Orientation>west</Orientation>
            <Azimuth>270</Azimuth>
            <Color>medium</Color>
            <InteriorFinish>
              <Type>gypsum board</Type>
              <Thickness>0.5</Thickness>
            </InteriorFinish>
            <Insulation>
              <SystemIdentifier id='Wall2Insulation'/>
              <AssemblyEffectiveRValue>4.0</AssemblyEffectiveRValue>
            </Insulation>
          </Wall>
          <Wall>
            <SystemIdentifier id='Wall3'/>
            <ExteriorAdjacentTo>other housing unit</ExteriorAdjacentTo>
            <InteriorAdjacentTo>living space</InteriorAdjacentTo>
            <WallType>
              <StructuralBrick/>
            </WallType>
            <Area>201.2</Area>
            <Orientation>north</Orientation>
            <Azimuth>0</Azimuth>
            <Color>medium</Color>
            <InteriorFinish>
              <Type>gypsum board</Type>
              <Thickness>0.5</Thickness>
            </InteriorFinish>
            <Insulation>
              <SystemIdentifier id='Wall3Insulation'/>
              <AssemblyEffectiveRValue>4.0</AssemblyEffectiveRValue>
            </Insulation>
          </Wall>
          <Wall>
            <SystemIdentifier id='Wall4'/>
            <ExteriorAdjacentTo>other housing unit</ExteriorAdjacentTo>
            <InteriorAdjacentTo>living space</InteriorAdjacentTo>
            <WallType>
              <StructuralBrick/>
            </WallType>
            <Area>362.1</Area>
            <Orientation>east</Orientation>
            <Azimuth>90</Azimuth>
            <Color>medium</Color>
            <InteriorFinish>
              <Type>gypsum board</Type>
              <Thickness>0.5</Thickness>
            </InteriorFinish>
            <Insulation>
              <SystemIdentifier id='Wall4Insulation'/>
              <AssemblyEffectiveRValue>4.0</AssemblyEffectiveRValue>
            </Insulation>
          </Wall>
        </Walls>

zkschmitz avatar Apr 23 '24 18:04 zkschmitz

Thanks for flagging this. It looks like ResStock 3.1 allows for doors to other interior spaces, e.g. a hallway in MF buildings. I don't think we can handle that yet.

The fix should be fairly easy, adding attached walls to the function above. We will very likely end up ignoring the door by assuming it is adiabatic (this is what we do for attached walls). However, I'm not sure if this will get into our next release.

In the meantime, you're welcome to delete the door from the HPXML file. That should fix the issue.

mnblonsky avatar Apr 24 '24 13:04 mnblonsky

Fantastic! Just wanted to make sure removing the door wouldn't make a dramatically different result in terms of the outputs but I can write a filter that removes if those are a problem. Thanks!

zkschmitz avatar Apr 24 '24 16:04 zkschmitz

Resolved with #132

mnblonsky avatar Aug 02 '24 19:08 mnblonsky