Draft#

A draft is an isolated, in-memory snapshot of an asset’s entity information. It lets you inspect and modify entities (surfaces, edges, volumes, body groups, etc.) locally without mutating the cloud asset.

DraftContext

Context manager that tracks locally modified simulation entities/status.

The draft is created using the create_draft() function. It is meant to be used with the with statement to create a context manager.

with fl.create_draft(new_run_from=geometry) as draft:
    ...

create_draft(*, new_run_from[, ...])

Create a local draft context from a cloud asset for your run.

The draft is responsible primarily for the following:

  • grouping faces, edges and body groups

  • keeping track of all the existen entities

  • managing mirror actions

  • managing coordinate systems

Access properties#

The properties of the DraftContext that store the geometric entities within the draft are listed below. The entities within those properties can be accessed by name or pattern with the only exception being the imported geometries and surfaces, which can be accessed by index.

DraftContext.body_groups

Return the list of body groups in the draft.

DraftContext.surfaces

Return the list of surfaces in the draft.

DraftContext.mirrored_body_groups

Return the list of mirrored body groups in the draft.

DraftContext.mirrored_surfaces

Return the list of mirrored surfaces in the draft.

DraftContext.edges

Return the list of edges in the draft.

DraftContext.volumes

Return the list of volumes (volume zones) in the draft.

DraftContext.boxes

Return the list of boxes in the draft.

DraftContext.cylinders

Return the list of cylinders in the draft.

DraftContext.imported_geometries

Return the list of imported geometries in the draft.

DraftContext.imported_surfaces

Return the list of imported surfaces in the draft.

Management properties#

Managing mirror actions and coordinate systems is done through the following properties.

DraftContext.coordinate_systems

Coordinate system manager for this draft.

DraftContext.mirror

Mirror manager for this draft.

Those properties provide access to relevant managers.

CoordinateSystemManager

Manage coordinate systems, hierarchy, and entity assignments inside a DraftContext.

MirrorManager

Manage mirror planes and mirrored draft entities inside a DraftContext.

Actions and objects registered through those managers can be modified by directly accessing them through the manager objects.

Example: geometric parameter sensitivity study

with draft:
    draft.coordinate_systems.assign(
        entities=draft.body_groups["body_group_1"],
        coordinate_system=fl.CoordinateSystem(
            name="body_group_1_translation",
            origin=[0, 0, 0] * fl.u.mm,
            axis_of_rotation=(0, 0, 1),
            angle_of_rotation=0 * fl.u.deg,
            scale=(1.0, 1.0, 1.0),
            translation=[20, 0, 0] * fl.u.mm
        )
    )

    prj.run_case(...)

    draft.coordinate_systems.get_by_name("body_group_1_translation").angle_of_rotation = 5*fl.u.deg

    prj.run_case(...)

Important

Mirroring and custom coordinate systems are available only with Geometry AI enabled.