honeybee-core 1.61.32__tar.gz → 1.61.33__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. {honeybee_core-1.61.32/honeybee_core.egg-info → honeybee_core-1.61.33}/PKG-INFO +1 -1
  2. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/room.py +39 -0
  3. {honeybee_core-1.61.32 → honeybee_core-1.61.33/honeybee_core.egg-info}/PKG-INFO +1 -1
  4. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/.github/workflows/ci.yaml +0 -0
  5. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/.github/workflows/dependency-release.yaml +0 -0
  6. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/.gitignore +0 -0
  7. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/.releaserc.json +0 -0
  8. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/CODE_OF_CONDUCT.md +0 -0
  9. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/CONTRIBUTING.md +0 -0
  10. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/LICENSE +0 -0
  11. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/MANIFEST.in +0 -0
  12. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/README.md +0 -0
  13. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/deploy.sh +0 -0
  14. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/dev-requirements.txt +0 -0
  15. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/docs/_build/.nojekyll +0 -0
  16. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/docs/_build/README.md +0 -0
  17. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/docs/_build/docs/README.md +0 -0
  18. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/docs/_static/custom.css +0 -0
  19. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/docs/_templates/layout.html +0 -0
  20. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/docs/cli/index.rst +0 -0
  21. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/docs/conf.py +0 -0
  22. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/docs/index.rst +0 -0
  23. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/__init__.py +0 -0
  24. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/__main__.py +0 -0
  25. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/_base.py +0 -0
  26. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/_basewithshade.py +0 -0
  27. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/_lockable.py +0 -0
  28. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/altnumber.py +0 -0
  29. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/aperture.py +0 -0
  30. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/boundarycondition.py +0 -0
  31. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/checkdup.py +0 -0
  32. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/cli/__init__.py +0 -0
  33. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/cli/compare.py +0 -0
  34. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/cli/create.py +0 -0
  35. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/cli/edit.py +0 -0
  36. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/cli/lib.py +0 -0
  37. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/cli/setconfig.py +0 -0
  38. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/cli/validate.py +0 -0
  39. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/colorobj.py +0 -0
  40. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/config.json +0 -0
  41. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/config.py +0 -0
  42. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/dictutil.py +0 -0
  43. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/door.py +0 -0
  44. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/extensionutil.py +0 -0
  45. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/face.py +0 -0
  46. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/facetype.py +0 -0
  47. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/logutil.py +0 -0
  48. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/model.py +0 -0
  49. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/orientation.py +0 -0
  50. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/properties.py +0 -0
  51. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/search.py +0 -0
  52. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/shade.py +0 -0
  53. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/shademesh.py +0 -0
  54. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/typing.py +0 -0
  55. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/units.py +0 -0
  56. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/writer/__init__.py +0 -0
  57. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/writer/aperture.py +0 -0
  58. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/writer/door.py +0 -0
  59. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/writer/face.py +0 -0
  60. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/writer/model.py +0 -0
  61. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/writer/room.py +0 -0
  62. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/writer/shade.py +0 -0
  63. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee/writer/shademesh.py +0 -0
  64. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee_core.egg-info/SOURCES.txt +0 -0
  65. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee_core.egg-info/dependency_links.txt +0 -0
  66. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee_core.egg-info/entry_points.txt +0 -0
  67. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee_core.egg-info/requires.txt +0 -0
  68. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/honeybee_core.egg-info/top_level.txt +0 -0
  69. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/requirements.txt +0 -0
  70. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/setup.cfg +0 -0
  71. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/setup.py +0 -0
  72. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/__init__.py +0 -0
  73. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/aperture_test.py +0 -0
  74. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/boundary_condition_test.py +0 -0
  75. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/cli_compare_test.py +0 -0
  76. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/cli_create_test.py +0 -0
  77. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/cli_edit_test.py +0 -0
  78. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/cli_validate_test.py +0 -0
  79. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/colorobj_test.py +0 -0
  80. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/config_test.py +0 -0
  81. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/dictutil_test.py +0 -0
  82. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/door_test.py +0 -0
  83. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/face_test.py +0 -0
  84. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/facetype_test.py +0 -0
  85. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/json/ShoeBox.json +0 -0
  86. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/json/bad_geometry_model.hbjson +0 -0
  87. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/json/colliding_room_volumes.hbjson +0 -0
  88. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/json/compare_model_1.hbjson +0 -0
  89. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/json/compare_model_2.hbjson +0 -0
  90. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/json/complex_polyfaces.json +0 -0
  91. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/json/minor_geometry/existing_model.hbjson +0 -0
  92. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/json/minor_geometry/updated_model.hbjson +0 -0
  93. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/json/mismatched_area_adj.hbjson +0 -0
  94. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/json/model_with_adiabatic.hbjson +0 -0
  95. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/json/model_with_holes.hbjson +0 -0
  96. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/json/model_without_adjacency.hbjson +0 -0
  97. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/json/nonascii_face.json +0 -0
  98. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/json/polygons_for_gap_boundary.json +0 -0
  99. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/json/room_for_window_offset.hbjson +0 -0
  100. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/json/single_family_home.hbjson +0 -0
  101. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/lockable_test.py +0 -0
  102. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/model_test.py +0 -0
  103. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/orientation_test.py +0 -0
  104. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/room_test.py +0 -0
  105. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/search_test.py +0 -0
  106. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/shade_test.py +0 -0
  107. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/shademesh_test.py +0 -0
  108. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/stl/cube_ascii.stl +0 -0
  109. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/stl/cube_binary.stl +0 -0
  110. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/typing_test.py +0 -0
  111. {honeybee_core-1.61.32 → honeybee_core-1.61.33}/tests/units_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: honeybee-core
3
- Version: 1.61.32
3
+ Version: 1.61.33
4
4
  Summary: A library to create 3D building geometry for various types of environmental simulation.
5
5
  Home-page: https://github.com/ladybug-tools/honeybee-core
6
6
  Author: Ladybug Tools
@@ -1662,6 +1662,44 @@ class Room(_BaseWithShade):
1662
1662
  msg, raise_exception, detailed, '000107',
1663
1663
  error_type='Degenerate Room Volume')
1664
1664
 
1665
+ def remove_duplicate_faces(self, tolerance=0.01):
1666
+ """Remove duplicate face geometries from the Room.
1667
+
1668
+ Such duplicate faces can sometimes happen as a result of performing many
1669
+ coplanar splits.
1670
+
1671
+ Args:
1672
+ tolerance: The minimum difference between the coordinate values of two
1673
+ faces at which they can be considered adjacent. Default: 0.01,
1674
+ suitable for objects in meters.
1675
+
1676
+ Returns:
1677
+ A list containing only the duplicate Faces that were removed.
1678
+ """
1679
+ # first make a list of faces without any duplicate geometries
1680
+ new_faces, removed_faces = [self._faces[0]], []
1681
+ for face in self._faces[1:]:
1682
+ for e_face in new_faces:
1683
+ if face.geometry.is_centered_adjacent(e_face.geometry, tolerance):
1684
+ tol_area = math.sqrt(face.geometry.area) * tolerance
1685
+ if abs(face.geometry.area - e_face.area) < tol_area:
1686
+ removed_faces.append(face)
1687
+ break # duplicate face found
1688
+ else: # the first face with this type of plane
1689
+ new_faces.append(face)
1690
+ if len(removed_faces) == 0:
1691
+ return removed_faces # nothing has been removed
1692
+
1693
+ # make a new polyface from the updated faces
1694
+ room_polyface = Polyface3D.from_faces(
1695
+ tuple(face.geometry for face in new_faces), tolerance)
1696
+ if not room_polyface.is_solid:
1697
+ room_polyface = room_polyface.merge_overlapping_edges(tolerance)
1698
+ # reset the faces and geometry of the room with the new faces
1699
+ self._faces = tuple(new_faces)
1700
+ self._geometry = room_polyface
1701
+ return removed_faces
1702
+
1665
1703
  def merge_coplanar_faces(
1666
1704
  self, tolerance=0.01, angle_tolerance=1, orthogonal_only=False):
1667
1705
  """Merge coplanar Faces of this Room.
@@ -1941,6 +1979,7 @@ class Room(_BaseWithShade):
1941
1979
  for i, room in enumerate(rooms):
1942
1980
  other_rooms = room_geos[:i] + room_geos[i + 1:]
1943
1981
  room.coplanar_split(other_rooms, tolerance, angle_tolerance)
1982
+ room.remove_duplicate_faces(tolerance)
1944
1983
 
1945
1984
  @staticmethod
1946
1985
  def solve_adjacency(rooms, tolerance=0.01, remove_mismatched_sub_faces=False):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: honeybee-core
3
- Version: 1.61.32
3
+ Version: 1.61.33
4
4
  Summary: A library to create 3D building geometry for various types of environmental simulation.
5
5
  Home-page: https://github.com/ladybug-tools/honeybee-core
6
6
  Author: Ladybug Tools
File without changes