mbdlyb_ui.functional.helpers

Copyright (c) 2023 - 2026 TNO-ESI All rights reserved.

Classes

AffectsRelation

Represent an editable affects relation.

FunctionalRelation

Represent an editable functional relation.

IndicatesRelation

Represent an editable indicates relation.

ObservesRelation

Represent an editable observes relation.

RealizesRelation

Represent an editable realizes relation.

RequiredForRelation

Represent an editable required for relation.

State

Represent a named functional node state.

StateTable

Manage editable functional node states.

SubfunctionOfRelation

Represent an editable subfunction of relation.

TestsRelation

Represent an editable tests relation.

Functions

build_tree(→ dict)

Build a nested tree entry with node identity and CPT metadata.

save_new_object(obj, net[, disable_redirect])

Save a functional element and optionally navigate to its cluster.

state_table(state_table, default_states)

Render editable state names and controls for adding or removing states.

Module Contents

class mbdlyb_ui.functional.helpers.AffectsRelation(start_node: mbdlyb.gdb.GMBDElement | None = None, end_node: mbdlyb.gdb.GMBDElement | None = None, start_node_type: type[mbdlyb.gdb.GMBDElement] | None = None, end_node_type: type[mbdlyb.gdb.GMBDElement] | None = None, weight: float = 1.0)

Bases: FunctionalRelation

Represent an editable affects relation.

class mbdlyb_ui.functional.helpers.FunctionalRelation(start_node: mbdlyb.gdb.GMBDElement | None = None, end_node: mbdlyb.gdb.GMBDElement | None = None, start_node_type: type[mbdlyb.gdb.GMBDElement] | None = None, end_node_type: type[mbdlyb.gdb.GMBDElement] | None = None, weight: float = 1.0)

Bases: mbdlyb_ui.helpers.Relation

Represent an editable functional relation.

get_props() → dict

Return the relation properties needed for persistence.

Returns:

Properties to persist on the relation.

weight: float
class mbdlyb_ui.functional.helpers.IndicatesRelation(start_node: mbdlyb.gdb.GMBDElement | None = None, end_node: mbdlyb.gdb.GMBDElement | None = None, start_node_type: type[mbdlyb.gdb.GMBDElement] | None = None, end_node_type: type[mbdlyb.gdb.GMBDElement] | None = None, weight: float = 1.0)

Bases: FunctionalRelation

Represent an editable indicates relation.

class mbdlyb_ui.functional.helpers.ObservesRelation(start_node: mbdlyb.gdb.GMBDElement | None = None, end_node: mbdlyb.gdb.GMBDElement | None = None, start_node_type: type[mbdlyb.gdb.GMBDElement] | None = None, end_node_type: type[mbdlyb.gdb.GMBDElement] | None = None, weight: float = 1.0)

Bases: FunctionalRelation

Represent an editable observes relation.

class mbdlyb_ui.functional.helpers.RealizesRelation(start_node: mbdlyb.gdb.GMBDElement | None = None, end_node: mbdlyb.gdb.GMBDElement | None = None, start_node_type: type[mbdlyb.gdb.GMBDElement] | None = None, end_node_type: type[mbdlyb.gdb.GMBDElement] | None = None, weight: float = 1.0)

Bases: FunctionalRelation

Represent an editable realizes relation.

class mbdlyb_ui.functional.helpers.RequiredForRelation(start_node: mbdlyb.gdb.GMBDElement | None = None, end_node: mbdlyb.gdb.GMBDElement | None = None, start_node_type: type[mbdlyb.gdb.GMBDElement] | None = None, end_node_type: type[mbdlyb.gdb.GMBDElement] | None = None, weight: float = 1.0, operating_modes: list[str] | None = None)

Bases: FunctionalRelation

Represent an editable required for relation.

get_props() → dict

Return the relation properties needed for persistence.

Returns:

Properties to persist on the relation.

operating_modes: list[str]
class mbdlyb_ui.functional.helpers.State(name: str)

Represent a named functional node state.

name
class mbdlyb_ui.functional.helpers.StateTable(states: list[State])

Manage editable functional node states.

add_state()

Append a uniquely named state and refresh the state editor.

drop_state(state: State)

Remove a state and refresh the state editor.

Parameters:

state – State entry to remove.

classmethod from_list(l: list[str]) → StateTable

Create editable state entries from stored names.

Parameters:

l – Stored state or operating mode names to turn into entries.

Returns:

Editable collection initialized from the stored values.

to_list() → list[str]

Extract state names from the editable entries.

Returns:

Stored values represented by the editable entries.

states: list[State]
class mbdlyb_ui.functional.helpers.SubfunctionOfRelation(start_node: mbdlyb.gdb.GMBDElement | None = None, end_node: mbdlyb.gdb.GMBDElement | None = None, start_node_type: type[mbdlyb.gdb.GMBDElement] | None = None, end_node_type: type[mbdlyb.gdb.GMBDElement] | None = None, weight: float = 1.0)

Bases: FunctionalRelation

Represent an editable subfunction of relation.

class mbdlyb_ui.functional.helpers.TestsRelation(start_node: mbdlyb.gdb.GMBDElement | None = None, end_node: mbdlyb.gdb.GMBDElement | None = None, start_node_type: type[mbdlyb.gdb.GMBDElement] | None = None, end_node_type: type[mbdlyb.gdb.GMBDElement] | None = None, weight: float = 1.0)

Bases: FunctionalRelation

Represent an editable tests relation.

mbdlyb_ui.functional.helpers.build_tree(node: mbdlyb.functional.gdb.GFunctionalNode | mbdlyb.functional.gdb.GCluster) → dict

Build a nested tree entry with node identity and CPT metadata.

Parameters:

node – Node whose identity, CPT status, and children are serialized.

Returns:

Nested tree entry describing the node and its children.

mbdlyb_ui.functional.helpers.save_new_object(obj: mbdlyb.gdb.GMBDElement, net: mbdlyb.functional.gdb.GCluster, disable_redirect: bool = False)

Save a functional element and optionally navigate to its cluster.

Parameters:
  • obj – Functional element to add to the cluster.

  • net – Cluster containing the new model object.

  • disable_redirect – Whether to suppress navigation after saving.

mbdlyb_ui.functional.helpers.state_table(state_table: StateTable, default_states: list[str])

Render editable state names and controls for adding or removing states.

Parameters:
  • state_table – Editable collection of states.

  • default_states – Fallback state names shown when no custom states are set.