honeybee_idaice.writer module

Write an idm file from a HBJSON file.

honeybee_idaice.writer.ceilings_to_idm(room: Room, origin: Point3D, tolerance: float, angle_tolerance: float = 1.0, decimal_places: int = 3)[source]

Translate the ceilings of a Room to an IDM ENCLOSING-ELEMENT.

Parameters:
  • room – A honeybee Room.

  • origin – A Point3D for the origin of the parent Room.

  • tolerance – The minimum difference between x, y, and z coordinate values at which points are considered distinct.

  • angle_tolerance – The max angle in degrees that Face normal can differ from the World Z before the Face is treated as being in the World XY plane. (Default: 1).

  • decimal_places – An integer for the number of decimal places to which coordinate values will be rounded. (Default: 3).

honeybee_idaice.writer.deconstruct_room(room: Room)[source]

Deconstruct a room into walls, ceilings and floors.

honeybee_idaice.writer.model_to_idm(model: Model, out_folder: Path, name: str = None, max_int_wall_thickness: float = 0.4, max_adjacent_sub_face_dist: float = 0.4, debug: bool = False)[source]

Translate a Honeybee model to an IDM file.

Parameters:
  • model – A honeybee model.

  • out_folder – Output folder for idm file.

  • name – Output IDM file name.

  • max_int_wall_thickness – Maximum thickness of the interior wall in meters. IDA-ICE expects the input model to have a gap between the rooms that represents the wall thickness. This value must be smaller than the smallest Room that is expected in resulting IDA-ICE model and it should never be greater than 0.5 in order to avoid creating invalid building bodies for IDA-ICE. For models where the walls are touching each other, use a value of 0. (Default: 0.40).

  • max_adjacent_sub_face_dist – The maximum distance in meters between interior Apertures and Doors at which they are considered adjacent. This is used to ensure that only one interior Aperture of an adjacent pair is written into the IDM. This value should typically be around the max_int_wall_thickness and should ideally not be thicker than 0.5. But it may be undesirable to set this to zero (like some cases of max_int_wall_thickness), particularly when the adjacent interior geometries are not matching one another. (Default: 0.40).

  • debug – Set to True to not to delete the IDM folder before zipping it into a single file.

honeybee_idaice.writer.prepare_folder(bldg_name: str, out_folder: str) List[Path][source]

Prepare folders for IDM file.

honeybee_idaice.writer.prepare_model(model: Model, max_int_wall_thickness: float = 0.45) Model[source]

Perform a number of model edits to prepare it for translation to IDM.

  • Check room display names and ensure they are unique

  • Mark rooms as extruded and non-extruded

  • Mark doors and apertures in the model to avoid writing duplicated doors and apertures

Parameters:
  • model – A honeybee model.

  • max_int_wall_thickness – Maximum thickness of the interior wall in meters. This will be used to identify adjacent interior doors and apertures in the model to ensure that only one version of the geometry is written to IDA-ICE. (Default: 0.45).

honeybee_idaice.writer.room_to_idm(room: Room, tolerance: float, angle_tolerance: float = 1.0, decimal_places: int = 3) str[source]

Translate a Honeybee Room to an IDM Zone.

Parameters:
  • room – A honeybee Room.

  • tolerance – The minimum difference between x, y, and z coordinate values at which points are considered distinct.

  • angle_tolerance – The max angle in degrees that Face normal can differ from the World Z before the Face is treated as being in the World XY plane. (Default: 1).

  • decimal_places – An integer for the number of decimal places to which coordinate values will be rounded. (Default: 3).