honeybee-core 1.62.9__py3-none-any.whl → 1.62.11__py3-none-any.whl

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.
honeybee/model.py CHANGED
@@ -151,30 +151,12 @@ class Model(_Base):
151
151
  self.tolerance = tolerance
152
152
  self.angle_tolerance = angle_tolerance
153
153
 
154
- self._rooms = []
155
- self._orphaned_faces = []
156
- self._orphaned_apertures = []
157
- self._orphaned_doors = []
158
- self._orphaned_shades = []
159
- self._shade_meshes = []
160
- if rooms is not None:
161
- for room in rooms:
162
- self.add_room(room)
163
- if orphaned_faces is not None:
164
- for face in orphaned_faces:
165
- self.add_face(face)
166
- if orphaned_apertures is not None:
167
- for aperture in orphaned_apertures:
168
- self.add_aperture(aperture)
169
- if orphaned_doors is not None:
170
- for door in orphaned_doors:
171
- self.add_door(door)
172
- if orphaned_shades is not None:
173
- for shade in orphaned_shades:
174
- self.add_shade(shade)
175
- if shade_meshes is not None:
176
- for shade_mesh in shade_meshes:
177
- self.add_shade_mesh(shade_mesh)
154
+ self.rooms = rooms
155
+ self.orphaned_faces = orphaned_faces
156
+ self.orphaned_apertures = orphaned_apertures
157
+ self.orphaned_doors = orphaned_doors
158
+ self.orphaned_shades = orphaned_shades
159
+ self.shade_meshes = shade_meshes
178
160
 
179
161
  self._properties = ModelProperties(self)
180
162
 
@@ -717,6 +699,13 @@ class Model(_Base):
717
699
  """Get a tuple of all Room objects in the model."""
718
700
  return tuple(self._rooms)
719
701
 
702
+ @rooms.setter
703
+ def rooms(self, value):
704
+ self._rooms = []
705
+ if value is not None:
706
+ for room in value:
707
+ self.add_room(room)
708
+
720
709
  @property
721
710
  def faces(self):
722
711
  """Get a list of all Face objects in the model."""
@@ -822,9 +811,16 @@ class Model(_Base):
822
811
 
823
812
  @property
824
813
  def shade_meshes(self):
825
- """Get a tuple of all ShadeMesh objects in the model."""
814
+ """Get or set a tuple of all ShadeMesh objects in the model."""
826
815
  return tuple(self._shade_meshes)
827
816
 
817
+ @shade_meshes.setter
818
+ def shade_meshes(self, value):
819
+ self._shade_meshes = []
820
+ if value is not None:
821
+ for shd_m in value:
822
+ self.add_shade_mesh(shd_m)
823
+
828
824
  @property
829
825
  def grouped_shades(self):
830
826
  """Get a list of lists where each sub-list contains Shades and/or ShadeMeshes
@@ -850,24 +846,53 @@ class Model(_Base):
850
846
 
851
847
  @property
852
848
  def orphaned_faces(self):
853
- """Get a tuple of all Face objects without parent Rooms in the model."""
849
+ """Get or set a tuple of all Face objects without parent Rooms in the model."""
854
850
  return tuple(self._orphaned_faces)
855
851
 
852
+ @orphaned_faces.setter
853
+ def orphaned_faces(self, value):
854
+ self._orphaned_faces = []
855
+ if value is not None:
856
+ for face in value:
857
+ self.add_face(face)
858
+
856
859
  @property
857
860
  def orphaned_apertures(self):
858
- """Get a tuple of all Aperture objects without parent Faces in the model."""
861
+ """Get or set a tuple of all Aperture objects without parent Faces in the model.
862
+ """
859
863
  return tuple(self._orphaned_apertures)
860
864
 
865
+ @orphaned_apertures.setter
866
+ def orphaned_apertures(self, value):
867
+ self._orphaned_apertures = []
868
+ if value is not None:
869
+ for ap in value:
870
+ self.add_aperture(ap)
871
+
861
872
  @property
862
873
  def orphaned_doors(self):
863
- """Get a tuple of all Door objects without parent Faces in the model."""
874
+ """Get or set a tuple of all Door objects without parent Faces in the model."""
864
875
  return tuple(self._orphaned_doors)
865
876
 
877
+ @orphaned_doors.setter
878
+ def orphaned_doors(self, value):
879
+ self._orphaned_doors = []
880
+ if value is not None:
881
+ for dr in value:
882
+ self.add_door(dr)
883
+
866
884
  @property
867
885
  def orphaned_shades(self):
868
- """Get a tuple of all Shade objects without parent Rooms in the model."""
886
+ """Get or set a tuple of all Shade objects without parent Rooms in the model."""
869
887
  return tuple(self._orphaned_shades)
870
888
 
889
+ @orphaned_shades.setter
890
+ def orphaned_shades(self, value):
891
+ self._orphaned_shades = []
892
+ if value is not None:
893
+ for shd in value:
894
+ self.add_shade(shd)
895
+
871
896
  @property
872
897
  def stories(self):
873
898
  """Get a list of text for each unique story identifier in the Model.
honeybee/room.py CHANGED
@@ -3282,7 +3282,12 @@ class Room(_BaseWithShade):
3282
3282
  local_ids, first_id = set(adj_ids), room.identifier
3283
3283
  while len(adj_ids) != 0:
3284
3284
  # add the current rooms to the local network
3285
- adj_objs = [room_lookup[rm_id] for rm_id in adj_ids]
3285
+ adj_objs = []
3286
+ for rm_id in adj_ids:
3287
+ try:
3288
+ adj_objs.append(room_lookup[rm_id])
3289
+ except KeyError: # missing adjacency among the room groups
3290
+ pass
3286
3291
  local_network.extend(adj_objs)
3287
3292
  adj_ids = [] # reset the list of new adjacencies
3288
3293
  # find any rooms that are adjacent to the adjacent rooms
@@ -3294,7 +3299,12 @@ class Room(_BaseWithShade):
3294
3299
  local_ids.add(rm_id)
3295
3300
  adj_ids.extend(new_ids)
3296
3301
  # after the local network is understood, clean up duplicated rooms
3297
- adj_network.append(local_network)
3302
+ clean_local_network, exist_ids = [], set()
3303
+ for room in local_network:
3304
+ if room.identifier not in exist_ids:
3305
+ clean_local_network.append(room)
3306
+ exist_ids.add(room.identifier)
3307
+ adj_network.append(clean_local_network)
3298
3308
  i_to_remove = [i for i, room_obj in enumerate(all_rooms)
3299
3309
  if room_obj.identifier in local_ids]
3300
3310
  for i in reversed(i_to_remove):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: honeybee-core
3
- Version: 1.62.9
3
+ Version: 1.62.11
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
@@ -16,10 +16,10 @@ honeybee/extensionutil.py,sha256=DDQYhM7tFD3avRSCOjwTzLqX9ldUxl5GzY79V3_sATE,964
16
16
  honeybee/face.py,sha256=j8ud3d-8Z8RvDomeiyYTqalu5czgiCMb08Xue_tFRGo,112287
17
17
  honeybee/facetype.py,sha256=vCtWZKHp21RH-Yzs8zsHJHuFhJvczNh0yFl8wDe_RWY,4489
18
18
  honeybee/logutil.py,sha256=2gn-6RcWqFLvwdFzBHPqUwFqTj_R3iwHKALrl-2eL7M,2564
19
- honeybee/model.py,sha256=YbTZJddBiLzeoivdR4QY7SqeZ_kIMVfWtuR_YwDG-j8,181203
19
+ honeybee/model.py,sha256=WzquyG8denJ5pX-ZiAyXKp1cRXFuIFih-fT7BqiRWL4,181757
20
20
  honeybee/orientation.py,sha256=GogGblASW9OU-fobfDaQ7w5yRbEAFdJJuHwg2fadhKI,5046
21
21
  honeybee/properties.py,sha256=ok976fbUdXzLDR2XiPNf8Q5ejfOM-PArqm5CVUbFiCc,34316
22
- honeybee/room.py,sha256=qgn8Ur6aE864sBpPb-thHqO0kXbOmhgBCAwj5FtPAdw,162693
22
+ honeybee/room.py,sha256=SoChV0-00oIM4RjKDPn8tTlCmtZPika0Tm2ue_lhzko,163183
23
23
  honeybee/search.py,sha256=KOIeQjYdj0yhRWPmF5kiFiH8Ei0WbzuiU-capnwYVeM,5060
24
24
  honeybee/shade.py,sha256=HwLkOqvPpluLMXzicWXmKl4fMVJHmkqqehntT69e00Q,21026
25
25
  honeybee/shademesh.py,sha256=oldugnwhu-ibX9f0hfxpO-DvgM8U7S-dYwUjBSVzo4g,13273
@@ -40,9 +40,9 @@ honeybee/writer/model.py,sha256=N7F_jksf-5TrdVecuxTaFWxnPVFLmQs7k8g27TsdB7Q,177
40
40
  honeybee/writer/room.py,sha256=kFghgStTU1SEJSLigXB0VjOWhZtgs4uXuAqdwd4yRQo,174
41
41
  honeybee/writer/shade.py,sha256=EpgX-vMc-s21TnMvNWvWTKyT8iAnxu1nFVXzjY1oyF8,177
42
42
  honeybee/writer/shademesh.py,sha256=Y41bLogJ7dwpvMe5cAWVRDRVqJEwo9e5hFJQjlt6UX8,189
43
- honeybee_core-1.62.9.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
44
- honeybee_core-1.62.9.dist-info/METADATA,sha256=wVtamXoPjP6t1ExUkw3VV9MROACE7Czsa4zuybrpISU,3729
45
- honeybee_core-1.62.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
46
- honeybee_core-1.62.9.dist-info/entry_points.txt,sha256=r3YqOm40goBroH3ccUhpwQjvTwu10JWLd0HIRHI1J8E,47
47
- honeybee_core-1.62.9.dist-info/top_level.txt,sha256=8ve7puCRLUA9XDEGc1Mcs-UX9sFjpPV8MeTaIMwQ_Tg,9
48
- honeybee_core-1.62.9.dist-info/RECORD,,
43
+ honeybee_core-1.62.11.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
44
+ honeybee_core-1.62.11.dist-info/METADATA,sha256=Ku3shh4F9BKpZRJVv7FkSN3Xensrm6_UBf_p9hqV_80,3730
45
+ honeybee_core-1.62.11.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
46
+ honeybee_core-1.62.11.dist-info/entry_points.txt,sha256=r3YqOm40goBroH3ccUhpwQjvTwu10JWLd0HIRHI1J8E,47
47
+ honeybee_core-1.62.11.dist-info/top_level.txt,sha256=8ve7puCRLUA9XDEGc1Mcs-UX9sFjpPV8MeTaIMwQ_Tg,9
48
+ honeybee_core-1.62.11.dist-info/RECORD,,