Translation of Shading:Fin & Shading:Fin:Projection objects doesn't work if fin depth is zero
When opening an IDF with “simple geometry” Shading:Fin or Shading:Fin:Projection objects, Euclid will translate them into Shading:Zone:Detailed object. Each of the “simple geometry” shading fin objects define the geometry of the fin on left & right sides of the window separately. If the fin depth of one side is set to zero, then Euclid stops translation with the following error message:
ERROR:
TypeError
wrong argument type Geom::Point3d (expected Array)
BACKTRACE:
C:/projects/euclid/build/output/extension/euclid/lib/legacy_openstudio/lib/interfaces/Surface.rb:130:in 'add_face' C:/projects/euclid/build/output/extension/euclid/lib/legacy_openstudio/lib/interfaces/Surface.rb:130:in 'create_entity'
C:/projects/euclid/build/output/extension/euclid/lib/legacy_openstudio/lib/interfaces/DrawingInterface.rb:82:in 'draw_entity' C:/projects/euclid/build/output/extension/euclid/lib/legacy_openstudio/lib/interfaces/ModelInterface.rb:204:in block in 'update_model'
C:/projects/euclid/build/output/extension/euclid/lib/legacy_openstudio/lib/interfaces/ModelInterface.rb:200:in 'each' C:/projects/euclid/build/output/extension/euclid/lib/legacy_openstudio/lib/interfaces/ModelInterface.rb:200:in 'each_with_index'
C:/projects/euclid/build/output/extension/euclid/lib/legacy_openstudio/lib/interfaces/ModelInterface.rb:200:in 'update_model' C:/projects/euclid/build/output/extension/euclid/lib/legacy_openstudio/lib/interfaces/ModelInterface.rb:117:in 'draw_model'
C:/projects/euclid/build/output/extension/euclid/lib/legacy_openstudio/lib/ModelManager.rb:185:in 'open_input_file' C:/projects/euclid/build/output/extension/euclid/lib/legacy_openstudio/lib/CommandManager.rb:70:in 'open_input_file'
C:/projects/euclid/build/output/extension/euclid/lib/legacy_openstudio/lib/MenuManager.rb:76:in block in 'create_commands' SketchUp:1:in 'call'
Solution: When these “simple geometry” shading fin objects are translated, check if the fin depth on either side is zero. If it is, then skip the generation of the new detailed shade on that side of the window.
Comments (7)
-
reporter -
reporter Check if similar depth or area input fields exist for other simple shading objects (Shading:Building, Shading:Overhang, etc.).
Should add warning message (Not Ruby console, but similar to version mis-match between loaded IDF and what Euclid expects) for shading objects with no surface area.
-
reporter - edited description
-
reporter - edited description
-
reporter Attaching version of ‘4ZonewithShading_Simple2.idf’ example file to illustrate the issue. I’ve made a copy of the original `Shading:Fin:Projection` object to have one with only left depth (right depth = 0) and the other with only right depth (left depth = 0). EnergyPlus v9.6 runs with this IDF, but generates the following warning messages:
** Warning ** Shading:Fin:Projection=Right Fin of "ZN001:WALL001:SHADE003 LEFT", illegal surface area=[0.00]. Surface will NOT be entered. ** Warning ** Shading:Fin:Projection=Left Fin of "ZN001:WALL001:SHADE003 RIGHT", illegal surface area=[0.00]. Surface will NOT be entered.
Propose to “filter” surfaces with zero area and delete them from the IDF to avoid warnings/errors like this when running the IDF. Will add warning message to Ruby console in Euclid when this happens, similar to surfaces with less than 3 vertices.
-
reporter -
reporter - Log in to comment
Need to test a few situations for running in EnergyPlus (warnings or severe errors, specifically):