Refactor Section Box Tool to Support Configurable Toggle for Visibility or Active State#2797
Conversation
There was a problem hiding this comment.
PR Summary:
This PR refactors the Section Box toggle tool to support configurable operation modes: visibility toggle vs active state toggle. The tool now saves/restores section box geometry per view in active mode, with proper serialization handling for .NET types in IronPython. Updated tooltips across multiple languages reflect the new configurable behavior.
Review Summary:
Found several critical bugs that need fixing before merge: consistent typos in configuration variable names that break functionality, logic issues allowing invalid configuration states, missing validation for mutually exclusive modes, resource management problems with file handles, and incomplete toggle operation in active mode. Review applied knowledge of pyRevit configuration patterns, IronPython resource management requirements, and tool validation standards.
Follow-up suggestions:
...evitTools.extension/pyRevit.tab/Toggles.panel/toggles2.stack/SectionBox.pushbutton/config.py
Outdated
Show resolved
Hide resolved
...evitTools.extension/pyRevit.tab/Toggles.panel/toggles2.stack/SectionBox.pushbutton/config.py
Outdated
Show resolved
Hide resolved
...evitTools.extension/pyRevit.tab/Toggles.panel/toggles2.stack/SectionBox.pushbutton/script.py
Outdated
Show resolved
Hide resolved
...evitTools.extension/pyRevit.tab/Toggles.panel/toggles2.stack/SectionBox.pushbutton/script.py
Outdated
Show resolved
Hide resolved
...evitTools.extension/pyRevit.tab/Toggles.panel/toggles2.stack/SectionBox.pushbutton/script.py
Show resolved
Hide resolved
...evitTools.extension/pyRevit.tab/Toggles.panel/toggles2.stack/SectionBox.pushbutton/script.py
Show resolved
Hide resolved
jmcouffin
left a comment
There was a problem hiding this comment.
Tested, works according to plan 2024-2026
|
Thanks @Wurschdhaud |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25251+0758-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25251+0805-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25251+0824-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25252+1659-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25255+0644-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25255+0911-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25256+0727-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25258+1448-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25265+1047-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25266+0803-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25268+1757-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25269+1336-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25269+1431-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25269+1436-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25269+1822-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25271+1719-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25272+2003-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25272+2012-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25280+0218-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25280+1054-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25280+1057-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25282+1656-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25283+0140-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25286+1022-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25287+0905-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25287+1000-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25288+0613-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25293+0755-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25293+0828-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25293+1113-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25293+1234-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25295+0707-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25296+0824-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25296+0837-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25296+0923-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25300+1037-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25301+1412-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25301+1521-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25302+0921-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25302+0949-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25302+1503-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25307+1644-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25307+1935-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25307+2011-wip |
|
📦 New work-in-progress (wip) builds are available for 5.2.0.25307+2045-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.0.25307+2237-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.0.25308+0721-wip |
|
📦 New public release are available for 5.3.0.25307+2146 |
Description
This PR refactors the existing Section Box toggle tool to support two distinct operational modes based on configuration:
The tool now respects this configuration to perform either action (not both), depending on user preference.
In active mode, the section box bounding box is serialized safely using primitive data (due to .NET serialization limits in IronPython) and stored per-view for accurate restoration.
Tooltips have been updated in all supported languages (EN, DE, FR, RU) to reflect this new behavior and configuration-dependence. →generated by AI
Checklist
Before submitting your pull request, ensure the following requirements are met:
pipenv run black {source_file_or_directory}Related Issues
If applicable, link the issues resolved by this pull request:
Additional Notes
Thank you for contributing to pyRevit! 🎉