honeybee_radiance.modifier.material.metal module

Radiance Metal Material.

http://radsite.lbl.gov/radiance/refer/ray.html#Metal

class honeybee_radiance.modifier.material.metal.Metal(identifier, r_reflectance=0.0, g_reflectance=0.0, b_reflectance=0.0, specularity=0.9, roughness=0.0, modifier=None, dependencies=None)[source]

Bases: honeybee_radiance.modifier.material.plastic.Plastic

Radiance metal material.

Metal is similar to plastic, but specular highlights are modified by the material color. Specularity of metals is usually .9 or greater.

Parameters
  • identifier – Text string for a unique Material ID. Must not contain spaces or special characters. This will be used to identify the object across a model and in the exported Radiance files.

  • r_reflectance – Reflectance for red. The value should be between 0 and 1 (Default: 0).

  • g_reflectance – Reflectance for green. The value should be between 0 and 1 (Default: 0).

  • b_reflectance – Reflectance for blue. The value should be between 0 and 1 (Default: 0).

  • specularity – Fraction of specularity. Specularity of metals is usually 0.9 or greater. (Default: 0.9).

  • roughness – Roughness is specified as the rms slope of surface facets. A value of 0 corresponds to a perfectly smooth surface, and a value of 1 would be a very rough surface. Roughness values greater than 0.2 are not very realistic. (Default: 0).

  • modifier – Material modifier (Default: None).

  • dependencies – A list of primitives that this primitive depends on. This argument is only useful for defining advanced primitives where the primitive is defined based on other primitives. (Default: [])

Properties:
  • identifier

  • display_name

  • r_reflectance

  • g_reflectance

  • b_reflectance

  • specularity

  • roughness

  • average_reflectance

  • values

  • modifier

  • dependencies

  • is_modifier

  • is_material

ToString()

Overwrite .NET ToString.

add_dependent(dep)

Add dependent.

duplicate()

Get a copy of this object.

static filter_dict_input(input_dict)

Filter a dictionary of a Primitive to get modifier and dependency objects.

classmethod from_dict(data)

Initialize material from a dictionary.

Parameters

data – A dictionary in the format below.

{
"type": "",  # Material type
"identifier": "",  # Material identifier
"display_name": "",  # Material display name
"r_reflectance": float,  # Reflectance for red
"g_reflectance": float,  # Reflectance for green
"b_reflectance": float,  # Reflectance for blue
"specularity": float,  # Material specularity
"roughness": float,  # Material roughness
"modifier": {},  # Material modifier (Default: None)
"dependencies": []
}
classmethod from_primitive_dict(primitive_dict)

Initialize material from a primitive dict.

Parameters

data – A dictionary in the format below.

{
"modifier": {},  # primitive modifier (Default: None)
"type": "",  # primitive type
"identifier": "",  # primitive identifier
"display_name": "",  # primitive display name
"values": [],  # values
"dependencies": []
}
classmethod from_single_reflectance(identifier, rgb_reflectance=0.0, specularity=0.9, roughness=0.0, modifier=None, dependencies=None)[source]

Create Metal material with single reflectance value.

Parameters
  • identifier – Text string for a unique Material ID. Must not contain spaces or special characters. This will be used to identify the object across a model and in the exported Radiance files.

  • rgb_reflectance – Reflectance for red, green and blue. The value should be between 0 and 1 (Default: 0).

  • specularity – Fraction of specularity. Specularity of metals is usually 0.9 or greater. (Default: 0.9).

  • roughness – Roughness is specified as the rms slope of surface facets. A value of 0 corresponds to a perfectly smooth surface, and a value of 1 would be a very rough surface. Roughness values greater than 0.2 are not very realistic. (Default: 0).

  • modifier – Material modifier (Default: None).

  • dependencies – A list of primitives that this primitive depends on. This argument is only useful for defining advanced primitives where the primitive is defined based on other primitives. (Default: None).

Usage:

wall_material = Metal.from_single_reflectance("sheet_metal", .55)
print(wall_material)
classmethod from_string(primitive_string)

Create a Radiance primitive from a string.

If the primitive modifier is not void or it has other dependencies, the modifier and/or dependencies must also be part of the input string.

lock()
to_dict()

Translate this object to a dictionary.

to_radiance(minimal=False, include_modifier=True, include_dependencies=True)

Return full radiance definition.

Parameters
  • minimal – Boolean to note whether the radiance string should be written in a minimal format (with spaces instead of line breaks). Default: False.

  • include_modifier – Boolean to note whether the modifier of this primitive should be included in the string. Default: True.

  • include_dependencies – Boolean to note whether the dependencies of this primitive should be included in the string. Default: True.

unlock()
GEOMETRYTYPES = {'bubble', 'cone', 'cup', 'cylinder', 'instance', 'mesh', 'polygon', 'ring', 'source', 'sphere', 'tube'}
MATERIALTYPES = {'BRTDfunc', 'BSDF', 'aBSDF', 'antimatter', 'ashik2', 'dielectric', 'glass', 'glow', 'illum', 'interface', 'light', 'metal', 'metal2', 'metdata', 'metfunc', 'mirror', 'mist', 'mixedfunc', 'plasdata', 'plasfunc', 'plastic', 'plastic2', 'prism1', 'prism2', 'spotlight', 'trans', 'trans2', 'transdata', 'transfunc'}
MIXTURETYPES = {'mixdata', 'mixfunc', 'mixpict', 'mixtext'}
MODIFIERTYPES = {'BRTDfunc', 'BSDF', 'aBSDF', 'antimatter', 'ashik2', 'brightdata', 'brightfunc', 'brighttext', 'colordata', 'colorfunc', 'colorpict', 'colortext', 'dielectric', 'glass', 'glow', 'illum', 'interface', 'light', 'metal', 'metal2', 'metdata', 'metfunc', 'mirror', 'mist', 'mixdata', 'mixedfunc', 'mixfunc', 'mixpict', 'mixtext', 'plasdata', 'plasfunc', 'plastic', 'plastic2', 'prism1', 'prism2', 'spotlight', 'texdata', 'texfunc', 'trans', 'trans2', 'transdata', 'transfunc'}
NONEOPAQUETYPES = {'BRTDfunc', 'BSDF', 'aBSDF', 'dielectric', 'glass', 'mist', 'mixfunc', 'prism1', 'prism2', 'trans', 'trans2', 'transdata', 'transfunc'}
PATTERNTYPES = {'brightdata', 'brightfunc', 'brighttext', 'colordata', 'colorfunc', 'colorpict', 'colortext'}
TEXTURETYPES = {'texdata', 'texfunc'}
TYPES = {'BRTDfunc', 'BSDF', 'aBSDF', 'antimatter', 'ashik2', 'brightdata', 'brightfunc', 'brighttext', 'bubble', 'colordata', 'colorfunc', 'colorpict', 'colortext', 'cone', 'cup', 'cylinder', 'dielectric', 'glass', 'glow', 'illum', 'instance', 'interface', 'light', 'mesh', 'metal', 'metal2', 'metdata', 'metfunc', 'mirror', 'mist', 'mixdata', 'mixedfunc', 'mixfunc', 'mixpict', 'mixtext', 'plasdata', 'plasfunc', 'plastic', 'plastic2', 'polygon', 'prism1', 'prism2', 'ring', 'source', 'sphere', 'spotlight', 'texdata', 'texfunc', 'trans', 'trans2', 'transdata', 'transfunc', 'tube'}
property average_reflectance

Get the average reflectance of the material.

property b_reflectance

Get or set the reflectance for blue channel.

The value should be between 0 and 1 (Default: 0).

property dependencies

Get list of dependencies for this primitive.

Additional dependencies can be added with the add_dependent method.

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 g_reflectance

Get or set the reflectance for green channel.

The value should be between 0 and 1 (Default: 0).

property identifier

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

property is_geometry

Get a boolean noting whether this object is a Radiance geometry.

property is_material

Get a boolean noting whether this object is a material modifier.

property is_mixture

Get a boolean noting whether this object is a mixture modifier.

property is_modifier

Get a boolean indicating whether this object is a Radiance modifier.

Modifiers include materials, mixtures, textures and patterns.

property is_opaque

Get or set a boolean to indicate whether this primitive is opaque.

This property is used to separate opaque and non-opaque geometries as well as modifiers.

property is_pattern

Get a boolean noting whether this object is a pattern modifier.

property is_texture

Get a boolean noting whether this object is a texture modifier.

property is_void

Only true for a void.

property modifier

Get or set an object for the primitive modifier.

property r_reflectance

Get or set the reflectance for red channel.

The value should be between 0 and 1 (Default: 0).

property roughness

Get or set the roughness as the rms slope of surface facets.

A value of 0 corresponds to a perfectly smooth surface, and a value of 1 would be a very rough surface. Roughness values greater than 0.2 are not very realistic. (Default: 0).

property specularity

Get or set the fraction of specularity.

Specularity fractions greater than 0.1 are not common for non-metallic materials. Specularity fractions smaller than 0.9 are not common for metallic materials.

property type

Get or set a string for the primitive type.

This should always be lower case in order to match the radiance convention.

property values

Get or set the values of the current primitive as a list of three lists.

Each sub-list represents a line of the primitive’s radiance representation and contain the properties that define the primitive.

Usage:

# This will erase all values except the first line, which has 9 custom items
primitive.values = [
    [0.5, 0.5, 0.5, "/usr/oak.pic", ".", "frac(U)", "frac(V)", "-s", 1.1667],
    [],
    []
]