honeybee_plus.hbsurface module

class honeybee_plus.hbsurface.HBSurface(name, sorted_points=[], surface_type=None, is_name_set_by_user=False, is_type_set_by_user=False, rad_properties=None, ep_properties=None, states=None)[source]

Bases: honeybee_plus._hbanalysissurface.HBAnalysisSurface

Base class for Honeybee surface.

name

A unique string for surface name

sorted_points

A list of 3 points or more as tuple or list with three items (x, y, z). Points should be sorted. This class won’t sort the points. If surfaces has multiple subsurfaces you can pass lists of point lists to this function (e.g. ((0, 0, 0), (10, 0, 0), (0, 10, 0))).

surface_type

Optional input for surface type. You can use any of the surface types available from surfacetype libraries or use a float number to indicate the type. If not indicated it will be assigned based on normal angle of the surface which will be calculated from surface points.

0.0: Wall 0.5: UndergroundWall 1.0: Roof 1.5: UndergroundCeiling 2.0: Floor 2.25: UndergroundSlab 2.5: SlabOnGrade 2.75: ExposedFloor 3.0: Ceiling 4.0: AirWall 6.0: Context

is_name_set_by_user

If you want the name to be changed by honeybee any case set is_name_set_by_user to True. Default is set to False which let Honeybee to rename the surface in cases like creating a newHBZone.

rad_properties

Radiance properties for this surface. If empty default RADProperties will be assigned to surface by Honeybee.

ep_properties

EnergyPlus properties for this surface. If empty default ep_properties will be assigned to surface by Honeybee.

Usage:

pts = ((0, 0, 0), (10, 0, 0), (0, 0, 10)) hbsrf = HBSurface(“001”, pts, surface_type=None, is_name_set_by_user=True,

is_type_set_by_user=True)

print(hbsrf.to_rad_string(include_materials=True))

> void plastic generic_wall > 0 > 0 > 5 0.500 0.500 0.500 0.000 0.000 > generic_wall polygon 001 > 0 > 0 > 9 > 0 0 0 > 10 0 0 > 0 10 10

add_fenestration_surface(fenestration_surface)[source]

Add a fenestration surface to HB surface.

add_fenestration_surface_by_size(name, width, height, sill_height=1, radiance_material=None)[source]

Add rectangular fenestration surface to surface.

Parameters
  • width – Opening width. Opening will be centered in HBSurface.

  • height – Opening height.

  • sill_height – Sill height (default: 1).

  • radiance_material – Optional radiance material for this fenestration.

property children_surfaces

Get children surfaces.

classmethod from_ep_string(ep_string)[source]

Init Honeybee surface from an ep_string.

Parameters

ep_string – The full ep_string for an EnergyPlus surface.

classmethod from_geometry(name, geometry, surface_type=None, is_name_set_by_user=False, is_type_set_by_user=False, rad_properties=None, ep_properties=None, states=None, group=False)[source]

Create honeybee surface[s] from a Grasshopper geometry.

If group is False it will return a list of HBSurfaces.

property geometry

Return geometry.

property has_child_surfaces

Return True if Honeybee surface has Fenestration surrfaces.

property isHBSurface

Return True for HBSurface.

property is_child_surface

Return False for HBSurface.

property is_created_from_geometry

Return True if the surface is created from a geometry not points.

property parent

Get or set parent zone.

property profile

Get profile curve of this surface.