Migrate railing terminal type to PickType menu

Switches the IfcRailingType terminal-type selector from cycle-on-click
to a popup menu of all terminal-type literals — 5+ values trip the
§2.8 menu-pick threshold. Updates classes registration; removes
EditRailingTerminalType in favour of PickRailingTerminalType which
inherits PickTypeMixin.

Adapts the cherry-pick from db016d881 to post-PR5 framework state:
- Imports CycleTypeMixin / PickTypeMixin / PathPreservingEditMixin
  from bim.parametric_lifecycle (PR5 moved them off gizmos.py).
- Routes is_railing through tool.Parametric (predicates moved off
  tool.Blender.Modifier between PR3-PR5).

Skips the parametric_lifecycle.py framework refactor the source
commit shipped — HEAD has the more-evolved post-PR5 framework that
already covers it.

Adds the _FakePropsBase + make_lifecycle_obj test helpers to
test/bim/conftest.py so the new test_railing_lifecycle.py can
exercise the edit triad without a real bpy.types.Object. Brings the
test_railing_schematic.py marker in line with the rest of the model
lane.

Generated with the assistance of an AI coding tool.
This commit is contained in:
Gorgious56
2026-06-11 20:49:27 +02:00
parent d1d1e1d4a2
commit 05c9df74f9
5 changed files with 172 additions and 176 deletions
@@ -32,7 +32,7 @@ from bonsai.bim.module.drawing.gizmos import (
)
from bonsai.bim.module.model.railing import GizmoRailingSchematic
pytestmark = pytest.mark.railing
pytestmark = pytest.mark.model
@pytest.fixture(autouse=True)
@@ -167,10 +167,8 @@ def test_schematic_dim_visible_length_is_constant():
def test_schematic_no_compute_schematic_scale_override():
"""The constant-length design has no need for a scale factor. If a
subclass redefines ``_compute_schematic_scale``, it indicates the
scale-based proportional sizing was reintroduced — which is the design
we deliberately stepped away from."""
"""The constant-length schematic must not reintroduce scale-based
proportional sizing via a ``_compute_schematic_scale`` override."""
assert "_compute_schematic_scale" not in GizmoRailingSchematic.__dict__