Skip to content

📚 Technical Reference

Internal registrations, data models, and structural details for developers and advanced users.

Registered Menus

These are the Blender menus registered by the feature set:

  • IZOM_PROPUI_MT_clean_host
  • IZOM_PROPUI_MT_clean_prop
  • IZOM_PROPUI_MT_shortcut_target
  • IZOM_PROPUI_MT_entry_tools
  • IZOM_PROPUI_MT_hide_tools
  • IZOM_PROPUI_MT_layout_column
  • IZOM_PROPUI_MT_layout_import

Registered UI Lists

  • IZOM_PROPUI_UL_entries — supports filter text, collapse, type display, parent indentation, and hidden-state pruning.
  • IZOM_PROPUI_UL_layout_boxes
  • IZOM_PROPUI_UL_layout_entries — uses row headers for shared rows.
  • IZOM_PROPUI_UL_value_labels — shows ordered threshold/source summaries.

Registered Operators

Bulk operators (2)
  • pose.izom_propui_nuke
  • pose.izom_propui_remove_all_entries
Entry / general operators (16)
  • pose.izom_propui_add_entry
  • pose.izom_propui_apply_type_default
  • pose.izom_propui_copy_from_same_type_entry
  • pose.izom_propui_copy_to_same_type_entries
  • pose.izom_propui_duplicate_entry
  • pose.izom_propui_indent_row_group_info
  • pose.izom_propui_move_entry
  • pose.izom_propui_pick_icon
  • pose.izom_propui_remove_entry
  • pose.izom_propui_reset_type_default
  • pose.izom_propui_save_type_default
  • pose.izom_propui_select_gl_entry_in_entry_list
  • pose.izom_propui_select_entry
  • pose.izom_propui_select_layout_view_item
  • pose.izom_propui_toggle_entry_collapse
  • pose.izom_propui_toggle_layout_row_group_collapse
Hierarchy operators (8)
  • pose.izom_propui_clear_parent
  • pose.izom_propui_group_entry
  • pose.izom_propui_indent_entry
  • pose.izom_propui_outdent_entry
  • pose.izom_propui_set_hidden_in_editor
  • pose.izom_propui_set_parent
  • pose.izom_propui_unparent_entry_children
  • pose.izom_propui_unparent_entry_descendants
Layout operators (7)
  • pose.izom_propui_add_layout_box_range
  • pose.izom_propui_clear_layout_entries
  • pose.izom_propui_group_layout_item
  • pose.izom_propui_import_layout_entries
  • pose.izom_propui_remove_layout_box_range
  • pose.izom_propui_set_layout_column
  • pose.izom_propui_ungroup_layout_row
Sync operators (3)
  • pose.izom_propui_clean_metarig_props
  • pose.izom_propui_import_entries
  • pose.izom_propui_sync_metarig_props
Value label operators (6)
  • pose.izom_propui_add_value_label
  • pose.izom_propui_duplicate_value_label
  • pose.izom_propui_move_value_label
  • pose.izom_propui_remove_value_label
  • pose.izom_propui_select_value_label
  • pose.izom_propui_set_value_label_source_entry
Shortcut operators (12)
  • pose.izom_propui_set_shortcut_target
  • pose.izom_propui_shortcut_add_entry
  • pose.izom_propui_shortcut_duplicate_entry
  • pose.izom_propui_shortcut_hide_all
  • pose.izom_propui_shortcut_indent
  • pose.izom_propui_shortcut_move_down
  • pose.izom_propui_shortcut_move_up
  • pose.izom_propui_shortcut_outdent
  • pose.izom_propui_shortcut_promote
  • pose.izom_propui_shortcut_remove_entry
  • pose.izom_propui_shortcut_toggle_hidden_selected
  • pose.izom_propui_shortcut_unhide_all

Property Groups and Data Models

PropertyEntry fields

Identity: uid, parent_uid, prop_id, label, description, prop_type.

Text style: text_alignment, text_body_mode, text_link_spacing, text_linked_spacing_editor, text_vertical_alignment, text_top_spacing, text_bottom_spacing, text_line_above, text_line_above_position, text_line_below, text_line_below_position, text_use_box, text_alert, text_icon, text_icon_after.

Float config: default_float, min_float/max_float, soft min/max, use_soft_limits, step_float, precision, float_subtype.

Int config: default_int, min_int/max_int, soft min/max, use_soft_limits, step_int.

Bool config: default_bool, bool_ui_style, use_bool_state_labels, bool_label_false, bool_label_true.

Layout behavior: ui_order, display_order, display_order_input, row_slot, slider, indent_in_generated_ui, generated_ui_indent_amount, hidden_in_editor.

Dynamic labels: use_value_labels, use_other_entry_labels, text_use_other_entry_labels, value_labels collection, other_value_labels collection.

Child visibility: bool_child_visibility, number_child_visibility, visibility_inheritance_depth, visibility_match_float/int, visibility_range_max_float/int.

Child availability: bool_child_availability, number_child_availability, availability_inheritance_depth, availability_match_float/int, availability_range_max_float/int.

Other: shared_row_hidden_mode, library_overridable.

LayoutItem fields

uid, entry_uid, row_index, column_index, column_position.

LayoutViewItem fields (editor-only)

uid, kind, layout_uid, entry_uid, parent_uid, row_index, column_index, row_member_uids_json, ui_order.

LayoutBoxRange fields

uid, row_a, row_b.

ValueLabel fields

uid, rule_kind, threshold fields, target threshold fields, label, source entry uid, source bool state, target bool scope, use_other_entry_labels, text override style and all text-style overrides, nested other_value_labels collection.

ConditionalValueLabel fields

uid, rule_kind, label, threshold, source_entry_uid, source_bool_state.

Internal Editor State

The rig parameters also store internal editor state that preserves selection and context between operations:

  • Entry/layout/layout-view/row-box active index and UID
  • Selected UID JSON for entry, layout, layout view, and value-label collections
  • Selection anchor UIDs
  • Collapsed entry UIDs JSON and collapsed layout row UIDs JSON
  • Layout UID order JSON
  • Last editor context and last clicked list context
  • Shortcut target
  • Last synced prop IDs JSON
  • Expansion flags for collapsible editor sections

Rig Type and Mixin Structure

The izom.PropUI rig entry point combines several mixins:

  • BaseRig
  • IzomPropUIGenerationMixin
  • IzomPropUIPanelMixin
  • IzomPropUIRawCopyMixin

Major generation-stage responsibilities: initialize, prepare generation safety, make output bone, parent output bone, configure output bone, configure custom properties, rig bones implementation, make output widget.

License

The source files of the Feature Set are GPL-3.0-or-later licensed.