Skip to content

Material Controller

Materials and the color-to-material mapping system.

Covers the catalog of materials available in the project — creation, naming, grouping, and physical/structural properties — and the mapping table that ties cadwork's color numbers to materials per element category (beams, panels, drillings, surfaces, nodes, standard and MEP axes, auxiliaries). Element-level material assignment by name lives in attribute_controller.

clear_errors() -> None

Clears all errors.

create_material(name: str) -> MaterialId

Creates new material.

Parameters:

Name Type Description Default
name str

The material name.

required

Returns:

Type Description
MaterialId

The material id.

get_all_material_groups() -> list[str]

Retrieves a list of all material groups.

Returns:

Type Description
list[str]

A list of all material group names.

get_all_materials() -> list[MaterialId]

Retrieves a list of all materials.

Returns:

Type Description
list[MaterialId]

A list of all material id.

get_burn_off_rate(material_id: MaterialId) -> float

Gets the material burn-off rate.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
float

The material burn off rate.

get_code(material_id: MaterialId) -> str

Gets the material code.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
str

The material code.

get_composition(material_id: MaterialId) -> str

Gets the composition of a material.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
str

The composition of the material.

get_drop_forming_class(material_id: MaterialId) -> str

Gets the material drop forming class.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
str

The material drop forming class.

get_fire_resistance_class(material_id: MaterialId) -> str

Gets the material fire resistance class.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
str

The material fire resistance class.

get_grade(material_id: MaterialId) -> str

Gets the grade of a material.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
str

The grade of the material.

get_group(material_id: MaterialId) -> str

Gets the material group.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
str

The material group.

get_heat_capacity(material_id: MaterialId) -> float

Gets the material heat capacity.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
float

The material heat capacity.

get_material_color_assignment_for_auxiliary_elements(color_nb: UnsignedInt) -> MaterialId

Gets the material color assignment for auxiliary elements.

Parameters:

Name Type Description Default
color_nb UnsignedInt

The color number. [1-255]

required

Returns:

Type Description
MaterialId

The material id assigned to the color number for auxiliary elements.

get_material_color_assignment_for_beams(color_nb: UnsignedInt) -> MaterialId

Gets the material color assignment for beams.

Parameters:

Name Type Description Default
color_nb UnsignedInt

The color number. [1-255]

required

Returns:

Type Description
MaterialId

The material id assigned to the color number for beams.

get_material_color_assignment_for_drillings(color_nb: UnsignedInt) -> MaterialId

Gets the material color assignment for drillings.

Parameters:

Name Type Description Default
color_nb UnsignedInt

The color number. [1-255]

required

Returns:

Type Description
MaterialId

The material id assigned to the color number for drillings.

get_material_color_assignment_for_mep_axes(color_nb: UnsignedInt) -> MaterialId

Gets the material color assignment for MEP axes.

Parameters:

Name Type Description Default
color_nb UnsignedInt

The color number. [1-255]

required

Returns:

Type Description
MaterialId

The material id assigned to the color number for MEP axes.

get_material_color_assignment_for_nodes(color_nb: UnsignedInt) -> MaterialId

Gets the material color assignment for nodes.

Parameters:

Name Type Description Default
color_nb UnsignedInt

The color number. [1-255]

required

Returns:

Type Description
MaterialId

The material id assigned to the color number for nodes.

get_material_color_assignment_for_panels(color_nb: UnsignedInt) -> MaterialId

Gets the material color assignment for panels.

Parameters:

Name Type Description Default
color_nb UnsignedInt

The color number. [1-255]

required

Returns:

Type Description
MaterialId

The material id assigned to the color number for panels.

get_material_color_assignment_for_standard_axes(color_nb: UnsignedInt) -> MaterialId

Gets the material color assignment for standard axes.

Parameters:

Name Type Description Default
color_nb UnsignedInt

The color number. [1-255]

required

Returns:

Type Description
MaterialId

The material id assigned to the color number for standard axes.

get_material_color_assignment_for_surfaces(color_nb: UnsignedInt) -> MaterialId

Gets the material color assignment for surfaces.

Parameters:

Name Type Description Default
color_nb UnsignedInt

The color number. [1-255]

required

Returns:

Type Description
MaterialId

The material id assigned to the color number for surfaces.

get_material_id(material_name: str) -> MaterialId

Gets the material with a given name.

Parameters:

Name Type Description Default
material_name str

The material name.

required

Returns:

Type Description
MaterialId

The material id.

get_modulus_elasticity_1(material_id: MaterialId) -> float

Gets the material modulus of elasticity 1.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
float

The material modulus of elasticity 1.

get_modulus_elasticity_2(material_id: MaterialId) -> float

Gets the material modulus of elasticity 2.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
float

The material modulus of elasticity 2.

get_modulus_elasticity_3(material_id: MaterialId) -> float

Gets the material modulus of elasticity 3.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
float

The material modulus of elasticity 3.

get_name(material_id: MaterialId) -> str

Gets the material name.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
str

The material name.

get_parent_group(group: str) -> str

Gets the parent group of a given group.

Parameters:

Name Type Description Default
group str

The name of the group.

required

Returns:

Type Description
str

The name of the parent group.

get_price(material_id: MaterialId) -> float

Gets the material price.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
float

The material price.

get_price_type(material_id: MaterialId) -> str

Gets the material price type.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
str

The material price type.

get_quality(material_id: MaterialId) -> str

Gets the quality of a material.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
str

The quality of the material.

get_shear_modulus_1(material_id: MaterialId) -> float

Gets the material shear modulus 1.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
float

The material shear modulus 1.

get_shear_modulus_2(material_id: MaterialId) -> float

Gets the material shear modulus 2.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
float

The material shear modulus 2.

get_short_name(material_id: MaterialId) -> str

Gets the short name of a material.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
str

The short name of the material.

get_smoke_class(material_id: MaterialId) -> str

Gets the material smoke class.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
str

The material smoke class.

get_texture_color(material_id: MaterialId) -> int

Gets the texture color for a given material ID.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
int

The color of the texture. [1-255]

get_texture_length_alignment(material_id: MaterialId) -> bool

Gets the texture length alignment for a given material ID.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
bool

True if Texture Random Placement is enabled, false otherwise.

get_texture_rotation_angle(material_id: MaterialId) -> float

Gets the texture rotation angle for a given material ID.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
float

The rotation angle of the texture.

get_texture_transparency(material_id: MaterialId) -> int

Gets the texture transparency for a given material ID.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
int

The transparency of the texture.

get_texture_zoom_x(material_id: MaterialId) -> float

Gets the texture zoom factor in the X direction for a given material ID.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
float

The zoom factor of the texture in the X direction.

get_texture_zoom_y(material_id: MaterialId) -> float

Gets the texture zoom factor in the Y direction for a given material ID.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
float

The zoom factor of the texture in the Y direction.

get_thermal_conductivity(material_id: MaterialId) -> float

Gets the material thermal conductivity.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
float

The material thermal conductivity.

get_u_max(material_id: MaterialId) -> float

Gets the material U max.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
float

The material U max.

get_u_min(material_id: MaterialId) -> float

Gets the material U min.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
float

The material U min.

get_weight(material_id: MaterialId) -> float

Gets the material weight.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
float

The material weight.

get_weight_type(material_id: MaterialId) -> str

Gets the material weight type.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required

Returns:

Type Description
str

The material weight type.

set_burn_off_rate(material_id: MaterialId, burn_off_rate: float) -> None

Sets the material burn-off rate.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
burn_off_rate float

The material burn off rate.

required

set_code(material_id: MaterialId, code: str) -> None

Sets the material code.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
code str

The material code.

required

set_composition(material_id: MaterialId, composition: str) -> None

Sets the composition of a material.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
composition str

The composition to set.

required

set_drop_forming_class(material_id: MaterialId, drop_forming_class: str) -> None

Sets the material drop forming class.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
drop_forming_class str

The material drop forming class.

required

set_fire_resistance_class(material_id: MaterialId, fire_resistance_class: str) -> None

Sets the material fire resistance class.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
fire_resistance_class str

The material fire resistance class.

required

set_grade(material_id: MaterialId, grade: str) -> None

Sets the grade of a material.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
grade str

The grade to set.

required

set_group(material_id: MaterialId, group: str) -> None

Sets the material group.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
group str

The material group.

required

set_heat_capacity(material_id: MaterialId, heat_capacity: float) -> None

Sets the material heat capacity.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
heat_capacity float

The material heat capacity.

required

set_material_color_assignment_for_auxiliary_elements(color_nb: UnsignedInt, material_id: MaterialId) -> None

Sets the material color assignment for auxiliary elements.

Parameters:

Name Type Description Default
color_nb UnsignedInt

The color number. [1-255]

required
material_id MaterialId

The material ID to assign to the color number for auxiliary elements.

required

set_material_color_assignment_for_beams(color_nb: UnsignedInt, material_id: MaterialId) -> None

Sets the material color assignment for beams.

Parameters:

Name Type Description Default
color_nb UnsignedInt

The color number. [1-255]

required
material_id MaterialId

The material ID to assign to the color number for beams.

required

set_material_color_assignment_for_drillings(color_nb: UnsignedInt, material_id: MaterialId) -> None

Sets the material color assignment for drillings.

Parameters:

Name Type Description Default
color_nb UnsignedInt

The color number. [1-255]

required
material_id MaterialId

The material ID to assign to the color number for drillings.

required

set_material_color_assignment_for_mep_axes(color_nb: UnsignedInt, material_id: MaterialId) -> None

Sets the material color assignment for MEP axes.

Parameters:

Name Type Description Default
color_nb UnsignedInt

The color number. [1-255]

required
material_id MaterialId

The material ID to assign to the color number for MEP axes.

required

set_material_color_assignment_for_nodes(color_nb: UnsignedInt, material_id: MaterialId) -> None

Sets the material color assignment for nodes.

Parameters:

Name Type Description Default
color_nb UnsignedInt

The color number. [1-255]

required
material_id MaterialId

The material ID to assign to the color number for nodes.

required

set_material_color_assignment_for_panels(color_nb: UnsignedInt, material_id: MaterialId) -> None

Sets the material color assignment for panels.

Parameters:

Name Type Description Default
color_nb UnsignedInt

The color number. [1-255]

required
material_id MaterialId

The material ID to assign to the color number for panels.

required

set_material_color_assignment_for_standard_axes(color_nb: UnsignedInt, material_id: MaterialId) -> None

Sets the material color assignment for standard axes.

Parameters:

Name Type Description Default
color_nb UnsignedInt

The color number. [1-255]

required
material_id MaterialId

The material ID to assign to the color number for standard axes.

required

set_material_color_assignment_for_surfaces(color_nb: UnsignedInt, material_id: MaterialId) -> None

Sets the material color assignment for surfaces.

Parameters:

Name Type Description Default
color_nb UnsignedInt

The color number. [1-255]

required
material_id MaterialId

The material ID to assign to the color number for surfaces.

required

set_modulus_elasticity_1(material_id: MaterialId, modulus_elasticity1: float) -> None

Sets the material modulus of elasticity 1.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
modulus_elasticity1 float

The material modulus of elasticity 1.

required

set_modulus_elasticity_2(material_id: MaterialId, modulus_elasticity2: float) -> None

Sets the material modulus of elasticity 2.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
modulus_elasticity2 float

The material modulus of elasticity 2.

required

set_modulus_elasticity_3(material_id: MaterialId, modulus_elasticity3: float) -> None

Sets the material modulus of elasticity 3.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
modulus_elasticity3 float

The material modulus of elasticity 3.

required

set_name(material_id: MaterialId, name: str) -> None

Sets the material name.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
name str

The material name.

required

set_price(material_id: MaterialId, price: float) -> None

Sets the material price.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
price float

The material price.

required

set_price_type(material_id: MaterialId, price_type: str) -> None

Sets the material price type.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
price_type str

The material price type.

required

set_quality(material_id: MaterialId, quality: str) -> None

Sets the quality of a material.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
quality str

The quality to set.

required

set_shear_modulus_1(material_id: MaterialId, shear_modulus1: float) -> None

Sets the material shear modulus 1.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
shear_modulus1 float

The material shear modulus 1.

required

set_shear_modulus_2(material_id: MaterialId, shear_modulus2: float) -> None

Sets the material shear modulus 2.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
shear_modulus2 float

The material shear modulus 2.

required

set_smoke_class(material_id: MaterialId, smoke_class: str) -> None

Sets the material smoke class.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
smoke_class str

The material smoke class.

required

set_texture_color(color_nb: UnsignedInt, material_id: MaterialId) -> None

Sets the texture color for a given material ID.

Parameters:

Name Type Description Default
color_nb UnsignedInt

The color to set for the texture. [1-255]

required
material_id MaterialId

The material id.

required

set_texture_length_alignment(material_id: MaterialId, flag: bool) -> None

Sets the texture length alignment for a given material ID.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
flag bool

True if Texture Random Placement is enabled, false otherwise.

required

set_texture_rotation_angle(material_id: MaterialId, angle: float) -> None

Sets the texture rotation angle for a given material ID.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
angle float

The rotation angle to set for the texture.

required

set_texture_transparency(color_nb: UnsignedInt, material_id: MaterialId) -> None

Sets the texture transparency for a given material ID.

Parameters:

Name Type Description Default
color_nb UnsignedInt

The transparency to set for the texture.

required
material_id MaterialId

The material id.

required

set_texture_zoom_x(material_id: MaterialId, value: float) -> None

Sets the texture zoom factor in the X direction for a given material ID.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
value float

The zoom factor to set in the X direction.

required

set_texture_zoom_y(material_id: MaterialId, value: float) -> None

Sets the texture zoom factor in the Y direction for a given material ID.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
value float

The zoom factor to set.

required

set_thermal_conductivity(material_id: MaterialId, thermal_conductivity: float) -> None

Sets the material thermal conductivity.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
thermal_conductivity float

The material thermal conductivity.

required

set_u_max(material_id: MaterialId, u_max: float) -> None

Sets the material U max.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
u_max float

The material U max.

required

set_u_min(material_id: MaterialId, u_min: float) -> None

Sets the material U min.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
u_min float

The material U min.

required

set_weight(material_id: MaterialId, weight: float) -> None

Sets the material weight.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
weight float

The material weight.

required

set_weight_type(material_id: MaterialId, weight_type: str) -> None

Sets the material weight type.

Parameters:

Name Type Description Default
material_id MaterialId

The material id.

required
weight_type str

The material weight type.

required