honeybee.shademesh module

Honeybee ShadeMesh.

class honeybee.shademesh.ShadeMesh(identifier, geometry, is_detached=True)[source]

Bases: _Base

A single planar shade.

  • identifier – Text string for a unique Shade ID. Must be < 100 characters and not contain any spaces or special characters.

  • geometry – A ladybug-geometry Mesh3D.

  • is_detached – Boolean to note whether this object is detached from other geometry. Cases where this should be True include shade representing surrounding buildings or context. (Default: True).

  • identifier

  • display_name

  • is_detached

  • geometry

  • vertices

  • faces

  • center

  • area

  • min

  • max

  • type_color

  • bc_color

  • user_data


Overwrite .NET ToString.


Change the identifier of this object by inserting a prefix.

This is particularly useful in workflows where you duplicate and edit a starting object and then want to combine it with the original object into one Model (like making a model of repeated rooms) since all objects within a Model must have unique identifiers.


prefix – Text that will be inserted at the start of this object’s identifier and display_name. It is recommended that this prefix be short to avoid maxing out the 100 allowable characters for honeybee identifiers.


Get a list of DisplayMesh3D dictionaries for visualizing the object.


Get a copy of this object.

classmethod from_dict(data)[source]

Initialize an ShadeMesh from a dictionary.


data – A dictionary representation of an ShadeMesh object.

is_geo_equivalent(shade_mesh, tolerance=0.01)[source]

Get a boolean for whether this object is geometrically equivalent to another.

The total number of vertices and the ordering of these vertices can be different but the geometries must share the same center point and be next to one another to within the tolerance.

  • shade_mesh – Another ShadeMesh for which geometric equivalency will be tested.

  • tolerance – The minimum difference between the coordinate values of two vertices at which they can be considered geometrically equivalent.


True if geometrically equivalent. False if not geometrically equivalent.


Move this Shade along a vector.


moving_vec – A ladybug_geometry Vector3D with the direction and distance to move the face.


Reflect this Shade across a plane.


plane – A ladybug_geometry Plane across which the object will be reflected.

rotate(axis, angle, origin)[source]

Rotate this Shade by a certain angle around an axis and origin.

  • axis – A ladybug_geometry Vector3D axis representing the axis of rotation.

  • angle – An angle for rotation in degrees.

  • origin – A ladybug_geometry Point3D for the origin around which the object will be rotated.

rotate_xy(angle, origin)[source]

Rotate this Shade counterclockwise in the world XY plane by a certain angle.

  • angle – An angle in degrees.

  • origin – A ladybug_geometry Point3D for the origin around which the object will be rotated.

scale(factor, origin=None)[source]

Scale this Shade by a factor from an origin point.

  • factor – A number representing how much the object should be scaled.

  • origin – A ladybug_geometry Point3D representing the origin from which to scale. If None, it will be scaled from the World origin (0, 0, 0).

to_dict(abridged=False, included_prop=None)[source]

Return Shade as a dictionary.

  • abridged – Boolean to note whether the extension properties of the object (ie. modifiers, transmittance schedule) should be included in detail (False) or just referenced by identifier (True). Default: False.

  • included_prop – List of properties to filter keys that must be included in output dictionary. For example [‘energy’] will include ‘energy’ key if available in properties to_dict. By default all the keys will be included. To exclude all the keys from extensions use an empty list.


Triangulate non-planar faces in the mesh and remove all degenerate faces.

This is helpful for certain geometry interfaces that require perfectly planar geometry without duplicate or colinear vertices.


tolerance – The minimum distance between a vertex and the boundary segments at which point the vertex is considered colinear. Default: 0.01, suitable for objects in meters.

BC_COLOR = (R:120, G:75, B:190, A:255)
TYPE_COLORS = {False: (R:120, G:75, B:190, A:255), True: (R:80, G:50, B:128, A:255)}
property area

Get the surface area of the shade mesh.

property bc_color

Get a Color to be used in visualizations by boundary condition.

property center

Get a ladybug_geometry Point3D for the center of the shade.

Note that this is the center of the bounding box around this geometry and not the area or volume centroid.

property display_name

Get or set a string for the object name without any character restrictions.

If not set, this will be equal to the identifier.

property faces

Get a tuple of tuples for the faces of the mesh.

property full_id

Get a string with both the object display_name and identifier.

This is formatted as display_name[identifier].

This is useful in error messages to give users an easy means of finding invalid objects within models. If there is no display_name assigned, only the identifier will be returned.

property geometry

Get a ladybug_geometry Mesh3D object representing the Shade.

property identifier

Get or set a text string for the unique object identifier.

This identifier remains constant as the object is mutated, copied, and serialized to different formats (eg. dict, idf, rad). As such, this property is used to reference the object across a Model.

property is_detached

Get or set a boolean for whether this object is detached from other geometry.

property max

Get a Point3D for the maximum of the bounding box around the object.

property min

Get a Point3D for the minimum of the bounding box around the object.

property properties

Get object properties, including Radiance, Energy and other properties.

property to

ShadeMesh writer object.

Use this method to access Writer class to write the shade in different formats.


shade_mesh.to.idf(shade) -> idf string.
shade_mesh.to.radiance(shade) -> Radiance string.
property type_color

Get a Color to be used in visualizations by type.

property user_data

Get or set an optional dictionary for additional meta data for this object.

This will be None until it has been set. All keys and values of this dictionary should be of a standard Python type to ensure correct serialization of the object to/from JSON (eg. str, float, int, list, dict)

property vertices

Get a tuple of ladybug_geometry Point3D for the vertices of the mesh.