title: Reinf QC # DEV. A fresh IronPython engine for every press: `lib/vibe` is re-imported # on each click, so an edit to a module this button uses (it shares # `lib/vibe/ticketqc_run.py` and `ticketchecks.py` with Ticket QC) is # visible without a Revit restart. See TicketQC.pushbutton/bundle.yaml for # the full explanation; this one carries the same key for the same reason. # # REMOVE IT PER BUTTON as that button stabilises: delete the two lines below. engine: clean: true # No tooltip and no author on purpose. pyRevit renders both on hover; # the owner wants nothing there. Guarded by # WillTools.extension/tests/test_button_tooltips.py -- do not add them back. # # Added 2026-09-05, on the owner's own instruction: a cut-down TicketQC for # a panel whose reinforcing is finished (the model already has everything it # should have) but whose ticketing has not started. Shares its engine with # TicketQC -- both call into `lib/vibe/ticketqc_run.py`, which takes a # `mode` of 'ticket' or 'reinforcing' -- and reads the same evidence one # stage earlier: no ticket sheet is required, and any check whose evidence # is a ticket artefact (a hatch, a callout, a BOM table, a sheet name...) # does not run here. See `lib/vibe/ticketchecks.REINFORCING_CHECKS` for # exactly which of the 41 checks that is, and why, one by one. # # One line: this button is a row in a `.pulldown`, and a pulldown row renders # as text beside a 16px icon. A `\n` in it has nowhere to go. The dropdown # grows to fit the longest row, so the title may say what it means -- kept # short anyway so it reads at a glance beside "Ticket QC".