ducpy.builders.element_builders

Helper functions for creating DUC elements with a user-friendly API.

Classes

Functions

_create_element_wrapper(element_class, base_params, ...)

Helper function to create an ElementWrapper with the given parameters.

create_duc_path(→ ducpy.classes.ElementsClass.DucPath)

Helper function to create a DucPath object for path overrides.

create_datum_reference(...)

Helper function to create a DatumReference object.

create_tolerance_clause(...)

Helper function to create a ToleranceClause object.

create_fcf_segment(...)

Helper function to create a FeatureControlFrameSegment object.

create_fcf_segment_row(...)

Helper function to create an FCFSegmentRow object.

create_bound_element(...)

Helper to create a BoundElement using a builder-like approach.

create_table_column(...)

Helper to create a DucTableColumn object.

create_table_row(→ ducpy.classes.ElementsClass.DucTableRow)

Helper to create a DucTableRow object.

create_table_cell_span(...)

Helper to create a DucTableCellSpan object.

create_table_cell(...)

Helper to create a DucTableCell object.

create_table_auto_size(...)

Helper to create a DucTableAutoSize object.

create_table_column_entry(...)

Helper to create a DucTableColumnEntry object.

create_table_row_entry(...)

Helper to create a DucTableRowEntry object.

create_table_cell_entry(...)

Helper to create a DucTableCellEntry object.

Module Contents

ducpy.builders.element_builders._create_element_wrapper(element_class, base_params, element_params, explicit_properties_override=None)

Helper function to create an ElementWrapper with the given parameters.

class ducpy.builders.element_builders.BaseElementParams
x: float
y: float
width: float
height: float
scope: str
angle: float = 0.0
styles: ducpy.classes.ElementsClass.DucElementStylesBase | None = None
id: str | None = None
label: str = ''
locked: bool = False
is_visible: bool = True
z_index: float = 0.0
description: str = ''
group_ids: List[str] | None = []
region_ids: List[str] | None = []
layer_id: str = ''
frame_id: str | None = None
bound_elements: List[ducpy.classes.ElementsClass.BoundElement] | None = []
custom_data: str | Dict[str, Any] = ''
is_plot: bool = True
is_annotative: bool = False
is_deleted: bool = False
index: int | None = None
class ducpy.builders.element_builders.ElementBuilder(x: float = 0.0, y: float = 0.0, width: float = 1.0, height: float = 1.0, scope: str = DEFAULT_SCOPE)
base
extra
at_position(x: float, y: float)
with_size(width: float, height: float)
with_angle(angle: float)
with_styles(styles: ducpy.classes.ElementsClass.DucElementStylesBase)
with_id(id: str)
with_label(label: str)
with_scope(scope: str)
with_locked(locked: bool)
with_visible(is_visible: bool)
with_z_index(z_index: float)
with_description(description: str)
with_group_ids(group_ids: List[str])
with_region_ids(region_ids: List[str])
with_layer_id(layer_id: str)
with_frame_id(frame_id: str)
with_bound_elements(bound_elements: List[ducpy.classes.ElementsClass.BoundElement])
with_bound_element(element_id: str, element_type: str)

Adds a single bound element to the current element.

with_custom_data(custom_data: str | Dict[str, Any])
with_plot(is_plot: bool)
with_annotative(is_annotative: bool)
with_deleted(is_deleted: bool)
with_index(index: int)
with_extra(**kwargs)
build_rectangle()
build_ellipse()
build_polygon()
build_linear_element()
build_arrow_element()
build_image_element()
build_pdf_element()
build_parametric_element()
build_text_element()
build_table_from_data()
build_table_element()
build_frame_element()
build_plot_element()
build_viewport_element()
build_freedraw_element()
build_doc_element()
build_linear_dimension()
build_aligned_dimension()
build_angular_dimension()
build_radius_dimension()
build_diameter_dimension()
build_arc_length_dimension()
build_center_mark_dimension()
build_rotated_dimension()
build_spacing_dimension()
build_continue_dimension()
build_baseline_dimension()
build_jogged_linear_dimension()
build_leader_element()
build_feature_control_frame_element()
build_block_instance_element()
build_mermaid_element()
build_embeddable_element()
build_xray_element()
ducpy.builders.element_builders.create_duc_path(line_indices: List[int], background: ducpy.classes.ElementsClass.ElementBackground | None = None, stroke: ducpy.classes.ElementsClass.ElementStroke | None = None) ducpy.classes.ElementsClass.DucPath

Helper function to create a DucPath object for path overrides.

ducpy.builders.element_builders.create_datum_reference(letters: str, modifier: ducpy.Duc.MATERIAL_CONDITION.MATERIAL_CONDITION | None = None) ducpy.classes.ElementsClass.DatumReference

Helper function to create a DatumReference object.

ducpy.builders.element_builders.create_tolerance_clause(value: str, zone_type: ducpy.Duc.TOLERANCE_ZONE_TYPE.TOLERANCE_ZONE_TYPE | None = None, feature_modifiers: List[ducpy.Duc.FEATURE_MODIFIER.FEATURE_MODIFIER] | None = None, material_condition: ducpy.Duc.MATERIAL_CONDITION.MATERIAL_CONDITION | None = None) ducpy.classes.ElementsClass.ToleranceClause

Helper function to create a ToleranceClause object.

ducpy.builders.element_builders.create_fcf_segment(symbol: ducpy.Duc.GDT_SYMBOL.GDT_SYMBOL, tolerance: ducpy.classes.ElementsClass.ToleranceClause, datums: List[ducpy.classes.ElementsClass.DatumReference]) ducpy.classes.ElementsClass.FeatureControlFrameSegment

Helper function to create a FeatureControlFrameSegment object.

ducpy.builders.element_builders.create_fcf_segment_row(segments: List[ducpy.classes.ElementsClass.FeatureControlFrameSegment]) ducpy.classes.ElementsClass.FCFSegmentRow

Helper function to create an FCFSegmentRow object.

ducpy.builders.element_builders.create_bound_element(element_id: str, element_type: str) ducpy.classes.ElementsClass.BoundElement

Helper to create a BoundElement using a builder-like approach.

ducpy.builders.element_builders.create_table_column(id: str, width: float = 100.0, style_overrides: ducpy.classes.ElementsClass.DucElementStylesBase | None = None) ducpy.classes.ElementsClass.DucTableColumn

Helper to create a DucTableColumn object.

ducpy.builders.element_builders.create_table_row(id: str, height: float = 30.0, style_overrides: ducpy.classes.ElementsClass.DucElementStylesBase | None = None) ducpy.classes.ElementsClass.DucTableRow

Helper to create a DucTableRow object.

ducpy.builders.element_builders.create_table_cell_span(columns: int = 1, rows: int = 1) ducpy.classes.ElementsClass.DucTableCellSpan

Helper to create a DucTableCellSpan object.

ducpy.builders.element_builders.create_table_cell(row_id: str, column_id: str, data: str = '', locked: bool = False, span: ducpy.classes.ElementsClass.DucTableCellSpan | None = None, style_overrides: ducpy.classes.ElementsClass.DucElementStylesBase | None = None) ducpy.classes.ElementsClass.DucTableCell

Helper to create a DucTableCell object.

ducpy.builders.element_builders.create_table_auto_size(columns: bool = True, rows: bool = True) ducpy.classes.ElementsClass.DucTableAutoSize

Helper to create a DucTableAutoSize object.

ducpy.builders.element_builders.create_table_column_entry(key: str, value: ducpy.classes.ElementsClass.DucTableColumn) ducpy.classes.ElementsClass.DucTableColumnEntry

Helper to create a DucTableColumnEntry object.

ducpy.builders.element_builders.create_table_row_entry(key: str, value: ducpy.classes.ElementsClass.DucTableRow) ducpy.classes.ElementsClass.DucTableRowEntry

Helper to create a DucTableRowEntry object.

ducpy.builders.element_builders.create_table_cell_entry(key: str, value: ducpy.classes.ElementsClass.DucTableCell) ducpy.classes.ElementsClass.DucTableCellEntry

Helper to create a DucTableCellEntry object.

class ducpy.builders.element_builders.ElementSpecificBuilder(base: BaseElementParams, extra: dict)
base
extra
class ducpy.builders.element_builders.RectangleElementBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.EllipseElementBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

with_ratio(ratio: float)
with_start_angle(start_angle: float)
with_end_angle(end_angle: float)
with_show_aux_crosshair(show_aux_crosshair: bool)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.PolygonElementBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

with_sides(sides: int)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.LinearElementBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

with_points(points: List[tuple])
with_lines(lines: List[ducpy.classes.ElementsClass.DucLine] | None)
with_bezier_handles(bezier_handles: dict | None)
with_line_definitions(line_definitions: List[dict] | None)
with_path_overrides(path_overrides: List[ducpy.classes.ElementsClass.DucPath] | None)
with_last_committed_point(last_committed_point: ducpy.classes.ElementsClass.DucPoint | None)
with_start_binding(start_binding: ducpy.classes.ElementsClass.DucPointBinding | None)
with_end_binding(end_binding: ducpy.classes.ElementsClass.DucPointBinding | None)
with_wipeout_below(wipeout_below: bool)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.ArrowElementBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

with_points(points: List[tuple])
with_start_binding(start_binding: ducpy.classes.ElementsClass.DucPointBinding | None)
with_end_binding(end_binding: ducpy.classes.ElementsClass.DucPointBinding | None)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.ImageElementBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

with_file_id(file_id: str)
with_scale(scale: List[float])
with_status(status: ducpy.Duc.IMAGE_STATUS.IMAGE_STATUS)
with_crop(crop: ducpy.classes.ElementsClass.ImageCrop | None)
with_filter(filter: ducpy.classes.ElementsClass.DucImageFilter | None)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.PdfElementBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

with_file_id(file_id: str)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.ParametricElementBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

with_file_id(file_id: str)
with_source_type(source_type: ducpy.Duc.PARAMETRIC_SOURCE_TYPE.PARAMETRIC_SOURCE_TYPE)
with_code(code: str)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.TextElementBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

with_text(text: str)
with_text_style(text_style: ducpy.classes.ElementsClass.DucTextStyle | None)
with_auto_resize(auto_resize: bool)
with_dynamic(dynamic: List[ducpy.classes.ElementsClass.DucTextDynamicPart] | None)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.TableFromDataBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

with_data(data: List[List[str]])
with_column_headers(column_headers: List[str] | None)
with_column_widths(column_widths: List[float] | None)
with_row_height(row_height: float)
with_header_row_count(header_row_count: int)
with_table_style(style: ducpy.classes.ElementsClass.DucTableStyle | None)
with_auto_size(auto_size: ducpy.classes.ElementsClass.DucTableAutoSize | None)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.TableElementBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

with_columns(columns: List[ducpy.classes.ElementsClass.DucTableColumn])
with_rows(rows: List[ducpy.classes.ElementsClass.DucTableRow])
with_cells(cells: List[ducpy.classes.ElementsClass.DucTableCell])
with_table_style(style: ducpy.classes.ElementsClass.DucTableStyle | None)
with_header_row_count(header_row_count: int)
with_auto_size(auto_size: ducpy.classes.ElementsClass.DucTableAutoSize | None)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.FrameElementBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

with_stack_base(stack_base: ducpy.classes.ElementsClass.DucStackBase | None)
with_clip(clip: bool)
with_label_visible(label_visible: bool)
with_standard_override(standard_override: ducpy.classes.StandardsClass.Standard | None)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.PlotElementBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

with_margins(margins: ducpy.classes.ElementsClass.Margins | None)
with_style(style: ducpy.classes.ElementsClass.DucPlotStyle | None)
with_stack_base(stack_base: ducpy.classes.ElementsClass.DucStackBase | None)
with_clip(clip: bool)
with_label_visible(label_visible: bool)
with_standard_override(standard_override: ducpy.classes.StandardsClass.Standard | None)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.ViewportElementBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

with_points(points: List[tuple])
with_view(view: ducpy.classes.ElementsClass.DucView)
with_view_scale(scale: float)
with_viewport_style(style: ducpy.classes.ElementsClass.DucViewportStyle | None)
with_stack_base(stack_base: ducpy.classes.ElementsClass.DucStackBase | None)
with_standard_override(standard_override: ducpy.classes.StandardsClass.Standard | None)
with_shade_plot(shade_plot: ducpy.Duc.VIEWPORT_SHADE_PLOT.VIEWPORT_SHADE_PLOT | None)
with_frozen_group_ids(frozen_group_ids: List[str] | None)
with_start_binding(start_binding: ducpy.classes.ElementsClass.DucPointBinding | None)
with_end_binding(end_binding: ducpy.classes.ElementsClass.DucPointBinding | None)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.FreeDrawElementBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

with_points(points: list)
with_pressures(pressures: list)
with_size_thickness(size: float)
with_thinning(thinning: float)
with_smoothing(smoothing: float)
with_streamline(streamline: float)
with_easing(easing: str)
with_simulate_pressure(simulate_pressure: bool)
with_start_cap(cap: bool)
with_start_taper(taper: float)
with_start_easing(easing: str)
with_end_cap(cap: bool)
with_end_taper(taper: float)
with_end_easing(easing: str)
with_last_committed_point(last_committed_point: ducpy.classes.ElementsClass.DucPoint | None)
with_svg_path(svg_path: str | None)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.DocElementBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

with_text(text: str)
with_doc_style(style: ducpy.classes.ElementsClass.DucDocStyle | None)
with_columns_layout(columns: ducpy.classes.ElementsClass.ColumnLayout | None)
with_auto_resize(auto_resize: bool)
with_flow_direction(flow_direction: ducpy.Duc.TEXT_FLOW_DIRECTION.TEXT_FLOW_DIRECTION | None)
with_dynamic(dynamic: List[ducpy.classes.ElementsClass.DucTextDynamicPart] | None)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.LinearDimensionBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

with_origin1(origin1: ducpy.classes.ElementsClass.GeometricPoint)
with_origin2(origin2: ducpy.classes.ElementsClass.GeometricPoint)
with_location(location: ducpy.classes.ElementsClass.GeometricPoint)
with_dimension_style(style: ducpy.classes.ElementsClass.DucDimensionStyle | None)
with_text_override(text_override: str | None)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.AlignedDimensionBuilder(base: BaseElementParams, extra: dict)

Bases: LinearDimensionBuilder

build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.AngularDimensionBuilder(base: BaseElementParams, extra: dict)

Bases: LinearDimensionBuilder

build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.RadiusDimensionBuilder(base: BaseElementParams, extra: dict)

Bases: LinearDimensionBuilder

build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.DiameterDimensionBuilder(base: BaseElementParams, extra: dict)

Bases: LinearDimensionBuilder

build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.ArcLengthDimensionBuilder(base: BaseElementParams, extra: dict)

Bases: LinearDimensionBuilder

build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.CenterMarkDimensionBuilder(base: BaseElementParams, extra: dict)

Bases: LinearDimensionBuilder

build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.RotatedDimensionBuilder(base: BaseElementParams, extra: dict)

Bases: LinearDimensionBuilder

build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.SpacingDimensionBuilder(base: BaseElementParams, extra: dict)

Bases: LinearDimensionBuilder

build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.ContinueDimensionBuilder(base: BaseElementParams, extra: dict)

Bases: LinearDimensionBuilder

with_continue_from_dimension_id(continue_from_dimension_id: str)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.BaselineDimensionBuilder(base: BaseElementParams, extra: dict)

Bases: LinearDimensionBuilder

with_base_dimension_id(base_dimension_id: str)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.JoggedLinearDimensionBuilder(base: BaseElementParams, extra: dict)

Bases: LinearDimensionBuilder

with_jog_x(jog_x: float)
with_jog_y(jog_y: float)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.LeaderElementBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

with_content_anchor_x(content_anchor_x: float)
with_content_anchor_y(content_anchor_y: float)
with_content(content: ducpy.classes.ElementsClass.LeaderContent | None)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.FeatureControlFrameElementBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

with_segments(segments: List[ducpy.classes.ElementsClass.FCFSegmentRow])
with_frame_modifiers(frame_modifiers: ducpy.classes.ElementsClass.FCFFrameModifiers | None)
with_leader_element_id(leader_element_id: str | None)
with_datum_definition(datum_definition: ducpy.classes.ElementsClass.FCFDatumDefinition | None)
with_style(style: ducpy.classes.ElementsClass.DucFeatureControlFrameStyle | None)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.BlockInstanceElementBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

with_block_id(block_id: str)
with_element_overrides(element_overrides: List[ducpy.classes.ElementsClass.StringValueEntry] | None)
with_attribute_values(attribute_values: List[ducpy.classes.ElementsClass.StringValueEntry] | None)
with_duplication_array(duplication_array: ducpy.classes.ElementsClass.DucBlockDuplicationArray | None)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.MermaidElementBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

with_source(source: str)
with_theme(theme: str | None)
with_svg_path(svg_path: str | None)
build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.EmbeddableElementBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

build() ducpy.classes.ElementsClass.ElementWrapper
class ducpy.builders.element_builders.XrayElementBuilder(base: BaseElementParams, extra: dict)

Bases: ElementSpecificBuilder

with_origin_x(origin_x: float)
with_origin_y(origin_y: float)
with_direction_x(direction_x: float)
with_direction_y(direction_y: float)
with_color(color: str)
with_start_from_origin(start_from_origin: bool)
build() ducpy.classes.ElementsClass.ElementWrapper