Repository navigation
feat(editor): edit shared parameters on a homogeneous multi-selection - #680
Conversation
…tion Selecting several nodes of the same type now shows one inspector for their shared parametrics.groups fields, with mixed-value controls, a single undo step, and wall/ceiling follows-level vs custom height. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 4 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want reviews to match your repository better? Bugbot Learning can learn team-specific rules from PR activity. A team admin can enable Learning in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 63f339f. Configure here.
| (height: number) => { | ||
| commitMultiNodeFields(nodeIds, () => ({ height }), parametrics) | ||
| }, | ||
| [nodeIds, parametrics], |
There was a problem hiding this comment.
Ceiling height skips clamp bound
High Severity
Multi ceiling height preview and commit write the slider value with no per-node getCeilingClampBound limit. The single ceiling panel clamps every height write and caps the slider with that bound, so multi-edit can push ceilings through the storey or a covering slab and produce invalid geometry.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 63f339f. Configure here.
| selectedIds.length > 1 | ||
| ? formatSelectionBreakdown(selectedIds.map((id) => s.nodes[id as AnyNodeId]?.type)) | ||
| : '', | ||
| ) |
There was a problem hiding this comment.
Mobile title ignores selection proxies
Medium Severity
multiBreakdown builds the mobile bar/sheet title from raw selectedIds types, while routing and MultiParametricInspector edit proxy-resolved ids. Selecting children that resolve to parents (for example cabinet modules → cabinets) can show a child-type label while the sheet edits parent parameters.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 63f339f. Configure here.
| const matchedGroup = useMemo( | ||
| () => selectionMatchesSessionGroup(sessionGroups, selectedIds), | ||
| [sessionGroups, selectedIds], | ||
| ) |
There was a problem hiding this comment.
Session group ignores live ids
Low Severity
MultiParametricInspector calls selectionMatchesSessionGroup without liveIds, unlike MultiSelectionPanel. After members are deleted but still linger in selection or group storage, the session-group banner can disagree with Group/Ungroup actions that do filter live ids.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 63f339f. Configure here.
| parametrics={parametrics} | ||
| /> | ||
| ) | ||
| })} |
There was a problem hiding this comment.
Curve edits ignore wall children
Medium Severity
Homogeneous wall multi-edit always exposes curveOffset from registry parametrics. The single wall panel hides that control when doors, windows, or wall-attached items are present. Multi-edit can therefore curve walls that host openings and break opening placement.
Reviewed by Cursor Bugbot for commit 63f339f. Configure here.
…tion (pascalorg#680) Selecting several nodes of the same type now shows one inspector for their shared parametrics.groups fields, with mixed-value controls, a single undo step, and wall/ceiling follows-level vs custom height. Co-authored-by: Cursor <cursoragent@cursor.com>


What does this PR do?
Selecting several nodes of the same type now opens a shared parameters inspector instead of the actions-only multi-select panel. Edits are absolute (every node gets the value you land on), mixed fields show a mixed indicator until touched, and one
updateNodescall keeps the whole change as a single undo step.Walls and ceilings keep Follows level vs Custom height. Slider drags preview through live overrides so geometry updates without history churn, and the slider readout tracks the drag. Mobile uses the same panel in the existing sheet.
How to test
bun dev(or hosted community against this SHA). Open a project with several walls.Screenshots / screen recording
N/A in this PR — verified locally in community on :3001. A reviewer clip of the 3-wall height drag is still useful.
Checklist
bun devbun checkto verify)mainbranchMade with Cursor