Skip to content

Geometry Controller

Spatial and metric properties of elements.

Concerned with the pure geometry of an element: its dimensions, volumes, areas, weights, local coordinate system (axes and reference points), facets and edges, and rigid transformations applied to the element's own frame (axis flips and rotations). Use this module to measure or reorient an element's geometry; use element_controller to create or destroy it.

apply_global_scale(element_id_list: list[ElementId], scale: float, origin: point_3d) -> None

Applies a global scale to element.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
scale float

The global scale.

required
origin point_3d

The scaling origin.

required

are_facets_coplanar(first_facet: list[point_3d], second_facet: list[point_3d]) -> bool

Tests if facets are coplanar.

Parameters:

Name Type Description Default
first_facet list[point_3d]

The first facet.

required
second_facet list[point_3d]

The second facet.

required

Returns:

Type Description
bool

True if facets are coplanar, false otherwise.

auto_regenerate_axes(element_id_list: list[ElementId]) -> None

Automatically regenerates axes on element.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required

auto_regenerate_axes_silently(element_id_list: list[ElementId]) -> None

Automatically regenerates axes on elements without any user interaction.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The list of element IDs for which the axes will be regenerated.

required

clear_errors() -> None

Clears all errors.

get_actual_physical_volume(element_id: ElementId) -> float

Gets actual physical volume (includes negative geometry operations, such as end-types, drillings, connectors, openings, and MEP elements; it might also take into account different drilling bodies and counterbores in a connector).

Parameters:

Name Type Description Default
element_id ElementId

The element id.

required

Returns:

Type Description
float

The actual physical volume.

get_actual_physical_weight(element_id: ElementId) -> float

Gets the actual physical weight.

Parameters:

Name Type Description Default
element_id ElementId

The element id.

required

Returns:

Type Description
float

The actual physical weight.

get_area_of_front_face(element_id: ElementId) -> float

Gets the front face area for element.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element front face area.

get_center_of_gravity(element_id: ElementId) -> point_3d

Gets the element center of gravity.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
point_3d

The element center of gravity position.

get_center_of_gravity_for_list(element_id_list: list[ElementId]) -> point_3d

Gets the center of gravity for a list of elements.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The list of element IDs.

required

Returns:

Type Description
point_3d

The center of gravity as a vector3D.

get_center_of_gravity_for_list_considering_materials(element_id_list: list[ElementId]) -> point_3d

Gets the center of gravity for a list of elements, considering their materials.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The list of element IDs.

required

Returns:

Type Description
point_3d

The center of gravity as a vector3D.

get_cross_correction_negative_height(element_id: ElementId) -> float

Gets the element negative height cross correction.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element negative height cross correction.

get_cross_correction_negative_length(element_id: ElementId) -> float

Gets the element negative length cross correction.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element negative length cross correction.

get_cross_correction_negative_width(element_id: ElementId) -> float

Gets the element negative width cross correction.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element negative width cross correction.

get_cross_correction_positive_height(element_id: ElementId) -> float

Gets the element positive height cross correction.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element positive height cross correction.

get_cross_correction_positive_length(element_id: ElementId) -> float

Gets the element positive length cross correction.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element positive length cross correction.

get_cross_correction_positive_width(element_id: ElementId) -> float

Gets the element positive width cross correction.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element positive width cross correction.

get_door_surface(element_id_list: list[ElementId]) -> float

Gets the element door surface.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required

Returns:

Type Description
float

The element door surface.

get_drilling_tolerance(element_id: ElementId) -> float

Gets the drilling tolerance of an axis.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The drilling tolerance.

get_element_facet_count(element_id: ElementId) -> UnsignedInt

Gets the count of facets for a specific element.

Parameters:

Name Type Description Default
element_id ElementId

The ID of the element.

required

Returns:

Type Description
UnsignedInt

The count of facets.

get_element_facets(element_id: ElementId) -> facet_list

Gets the element facet list.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
facet_list

The element facet list.

get_element_reference_face_area(element_id: ElementId) -> float

Gets the area of the reference side.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The area(size) of reference face.

get_element_reference_face_vertices(element_id: ElementId) -> list[point_3d]

Gets the vertices of the reference side.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
list[point_3d]

The vertexlist of all points.

get_element_vertices(element_id: ElementId) -> list[point_3d]

Gets the element vertices.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
list[point_3d]

The element vertice list.

get_end_height_cut_angle(element_id: ElementId) -> float

Gets the element end height cut angle.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element end height cut angle.

get_end_width_cut_angle(element_id: ElementId) -> float

Gets the element end width cut angle.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element end width cut angle.

get_height(element_id: ElementId) -> float

Gets the element height.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element height.

get_length(element_id: ElementId) -> float

Gets the element length.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element length.

get_list_height(element_id: ElementId) -> float

Gets the element list height.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element list height.

get_list_length(element_id: ElementId) -> float

Gets the element list length.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element list length.

get_list_volume(element_id: ElementId) -> float

Gets the element list volume.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element list volume.

get_list_weight(element_id: ElementId) -> float

Gets the element list weight.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element list weight.

get_list_width(element_id: ElementId) -> float

Gets the element list width.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element list width.

get_local_x() -> point_3d

Gets the rotated global coordinate direction (X').

Returns:

Type Description
point_3d

The local X vector.

get_local_y() -> point_3d

Gets the rotated global coordinate direction (Y').

Returns:

Type Description
point_3d

The local Z vector.

get_local_z() -> point_3d

Gets the rotated global coordinate direction (Z').

Returns:

Type Description
point_3d

The local Y vector.

get_minimum_distance_between_elements(first_id: ElementId, second_id: ElementId) -> float

Gets the minimum distance between 2 elements.

Parameters:

Name Type Description Default
first_id ElementId

The first element id.

required
second_id ElementId

The second element id.

required

Returns:

Type Description
float

The minimum distance.

get_over_height(element_id: ElementId) -> float

Gets the element overheight.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element overheight.

get_over_length(element_id: ElementId) -> float

Gets the element overlength.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element overlength.

get_over_width(element_id: ElementId) -> float

Gets the element overwidth.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element overwidth.

get_p1(element_id: ElementId) -> point_3d

Gets the element P1.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
point_3d

The element P1.

get_p2(element_id: ElementId) -> point_3d

Gets the element P2.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
point_3d

The element P2.

get_p3(element_id: ElementId) -> point_3d

Gets the element P3.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
point_3d

The element P3.

get_reference_side(element_id: ElementId) -> int

Gets the element reference side.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
int

The element reference side.

get_round_machine_rough_part_negative_height(element_id: ElementId) -> bool

Gets the value of option RoundMachineRoughPartNegativeHeight.

Parameters:

Name Type Description Default
element_id ElementId

The element id.

required

Returns:

Type Description
bool

The option RoundMachineRoughPartNegativeHeight value.

get_round_machine_rough_part_negative_length(element_id: ElementId) -> bool

Gets the value of option RoundMachineRoughPartNegativeLength.

Parameters:

Name Type Description Default
element_id ElementId

The element id.

required

Returns:

Type Description
bool

The option RoundMachineRoughPartNegativeLength value.

get_round_machine_rough_part_negative_width(element_id: ElementId) -> bool

Gets the value of option RoundMachineRoughPartNegativeWidth.

Parameters:

Name Type Description Default
element_id ElementId

The element id.

required

Returns:

Type Description
bool

The option RoundMachineRoughPartNegativeWidth value.

get_round_machine_rough_part_positive_height(element_id: ElementId) -> bool

Gets the value of option RoundMachineRoughPartPositiveHeight.

Parameters:

Name Type Description Default
element_id ElementId

The element id.

required

Returns:

Type Description
bool

The option RoundMachineRoughPartPositiveHeight value.

get_round_machine_rough_part_positive_length(element_id: ElementId) -> bool

Gets the value of option RoundMachineRoughPartPositiveLength.

Parameters:

Name Type Description Default
element_id ElementId

The element id.

required

Returns:

Type Description
bool

The option RoundMachineRoughPartPositiveLength value.

get_round_machine_rough_part_positive_width(element_id: ElementId) -> bool

Gets the value of option RoundMachineRoughPartPositiveWidth.

Parameters:

Name Type Description Default
element_id ElementId

The element id.

required

Returns:

Type Description
bool

The option RoundMachineRoughPartPositiveWidth value.

get_rounding_height(element_id: ElementId) -> float

Gets the element rounding height.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element rounding height.

get_rounding_length(element_id: ElementId) -> float

Gets the element rounding length.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element rounding length.

get_rounding_width(element_id: ElementId) -> float

Gets the element rounding width.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element rounding width.

get_standard_element_height_from_guid(standard_element_guid: str) -> float

Gets the standard element height from guid.

Parameters:

Name Type Description Default
standard_element_guid str

The standard element guid.

required

Returns:

Type Description
float

The standard element height.

get_standard_element_height_from_name(standard_element_name: str) -> float

Gets the standard element height from name.

Parameters:

Name Type Description Default
standard_element_name str

The standard element name.

required

Returns:

Type Description
float

The standard element height.

get_standard_element_length_from_guid(standard_element_guid: str) -> float

Gets the standard element length from guid.

Parameters:

Name Type Description Default
standard_element_guid str

The standard element guid.

required

Returns:

Type Description
float

The standard element length.

get_standard_element_length_from_name(standard_element_name: str) -> float

Gets the standard element length from name.

Parameters:

Name Type Description Default
standard_element_name str

The standard element name.

required

Returns:

Type Description
float

The standard element length.

get_standard_element_width_from_guid(standard_element_guid: str) -> float

Gets the standard element width from guid.

Parameters:

Name Type Description Default
standard_element_guid str

The standard element guid.

required

Returns:

Type Description
float

The standard element width.

get_standard_element_width_from_name(standard_element_name: str) -> float

Gets the standard element width from name.

Parameters:

Name Type Description Default
standard_element_name str

The standard element name.

required

Returns:

Type Description
float

The standard element width.

get_start_height_cut_angle(element_id: ElementId) -> float

Gets the element start height cut angle.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element start height cut angle.

get_start_width_cut_angle(element_id: ElementId) -> float

Gets the element start width cut angle.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element start width cut angle.

get_total_area_of_all_faces(element_id: ElementId) -> float

Gets the total area of all faces for element.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element total faces area.

get_volume(element_id: ElementId) -> float

Gets the element rough volume (does not include negative geometry operations, such as end-types, drillings, connectors, openings, and MEP elements).

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element rough volume.

get_weight(element_id: ElementId) -> float

Gets the element real weight.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element real weight.

get_weight_real(element_id: ElementId) -> float

Gets the real weight of the element.

Parameters:

Name Type Description Default
element_id ElementId

The ID of the element.

required

Returns:

Type Description
float

The real weight of the element.

get_width(element_id: ElementId) -> float

Gets the element width.

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
float

The element width.

get_window_surface(element_id_list: list[ElementId]) -> float

Gets the element window surface.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required

Returns:

Type Description
float

The element window surface.

get_xl(element_id: ElementId) -> point_3d

Gets the element length axis direction (direction from P1 to P2).

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
point_3d

The element XL vector.

get_yl(element_id: ElementId) -> point_3d

Gets the element width axis direction (ZL cross XL).

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
point_3d

The element YL vector.

get_zl(element_id: ElementId) -> point_3d

Gets the element height/thickness axis direction (direction from P1 to P3).

Parameters:

Name Type Description Default
element_id ElementId

The element Id.

required

Returns:

Type Description
point_3d

The element ZL vector.

invert_model(element_id_list: list[ElementId]) -> None

Inverts element model.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required

rotate_height_axis_180(element_id_list: list[ElementId]) -> None

Rotates the element height axis 180 degrees.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required

rotate_height_axis_2_points(element_id_list: list[ElementId], point1: point_3d, point2: point_3d) -> None

Rotates the element height axis via 2 points.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
point1 point_3d

The first point.

required
point2 point_3d

The second point.

required

rotate_height_axis_90(element_id_list: list[ElementId]) -> None

Rotates the element height axis 90 degrees.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required

rotate_length_axis_180(element_id_list: list[ElementId]) -> None

Rotates element length axis 180 degrees.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required

rotate_length_axis_2_points(element_id_list: list[ElementId], point1: point_3d, point2: point_3d) -> None

Rotates the element length axis via 2 points.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
point1 point_3d

The first point.

required
point2 point_3d

The second point.

required

rotate_length_axis_90(element_id_list: list[ElementId]) -> None

Rotates element length axis 90 degrees.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required

set_cross_correction_negative_height(element_id_list: list[ElementId], value: float) -> None

Sets the element negative height cross correction.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
value float

The element negative height cross correction.

required

set_cross_correction_negative_length(element_id_list: list[ElementId], value: float) -> None

Sets the element negative length cross correction.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
value float

The element negative length cross correction.

required

set_cross_correction_negative_width(element_id_list: list[ElementId], value: float) -> None

Sets the element negative width cross correction.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
value float

The element negative width cross correction.

required

set_cross_correction_positive_height(element_id_list: list[ElementId], value: float) -> None

Sets the element positive height cross correction.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
value float

The element positive height cross correction.

required

set_cross_correction_positive_length(element_id_list: list[ElementId], value: float) -> None

Sets the element positive length cross correction.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
value float

The element positive length cross correction.

required

set_cross_correction_positive_width(element_id_list: list[ElementId], value: float) -> None

Sets the element positive width cross correction.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
value float

The element positive width cross correction.

required

set_drilling_tolerance(element_id_list: list[ElementId], tolerance: float) -> None

Sets the drilling tolerance of the axis.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
tolerance float

The new drilling tolerance.

required

set_height_real(element_id_list: list[ElementId], height: float) -> None

Sets the element real height.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
height float

The element real height.

required

set_length_real(element_id_list: list[ElementId], length: float) -> None

Sets the element real length.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
length float

The element real length.

required

set_over_height(element_id_list: list[ElementId], value: float) -> None

Sets the element overheight.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
value float

The element overheight.

required

set_over_length(element_id_list: list[ElementId], value: float) -> None

Sets the element overlength.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
value float

The element overlength.

required

set_over_width(element_id_list: list[ElementId], value: float) -> None

Sets the element overwidth.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
value float

The element overwidth.

required

set_round_machine_rough_part_negative_height(element_id_list: list[ElementId], value: bool) -> None

Sets the value of option RoundMachineRoughPartNegativeHeight.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
value bool

The new option RoundMachineRoughPartNegativeHeight value.

required

set_round_machine_rough_part_negative_length(element_id_list: list[ElementId], value: bool) -> None

Sets the value of option RoundMachineRoughPartNegativeLength.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
value bool

The new option RoundMachineRoughPartNegativeLength value.

required

set_round_machine_rough_part_negative_width(element_id_list: list[ElementId], value: bool) -> None

Sets the value of option RoundMachineRoughPartNegativeWidth.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
value bool

The new option RoundMachineRoughPartNegativeWidth value.

required

set_round_machine_rough_part_positive_height(element_id_list: list[ElementId], value: bool) -> None

Sets the value of option RoundMachineRoughPartPositiveHeight.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
value bool

The new option RoundMachineRoughPartPositiveHeight options.

required

set_round_machine_rough_part_positive_length(element_id_list: list[ElementId], value: bool) -> None

Sets the value of option RoundMachineRoughPartPositiveLength.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
value bool

The new option RoundMachineRoughPartPositiveLength value.

required

set_round_machine_rough_part_positive_width(element_id_list: list[ElementId], value: bool) -> None

Sets the value of option RoundMachineRoughPartPositiveWidth.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
value bool

The new option RoundMachineRoughPartPositiveWidth value.

required

set_rounding_height(element_id_list: list[ElementId], value: float) -> None

Sets the element rounding height.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
value float

The element rounding height.

required

set_rounding_length(element_id_list: list[ElementId], value: float) -> None

Sets the element rounding length.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
value float

The element rounding length.

required

set_rounding_width(element_id_list: list[ElementId], value: float) -> None

Sets the element rounding width.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
value float

The element rounding width.

required

set_width_real(element_id_list: list[ElementId], width: float) -> None

Sets the element real width.

Parameters:

Name Type Description Default
element_id_list list[ElementId]

The element id list.

required
width float

The element real width.

required