Repository navigation
fix(reader): a wall whose record holds its previous location line is read by VWallDriver.m_pCrv, so 14 doors of rac_advanced 2027 take the axes rule (#1475) (RE-360) - #1500
Draft
DrunkOnJava wants to merge 10 commits into
Conversation
…s read, no wall that was read moves, the 14 doors take the axes rule, and the 2027 gate floor and ceiling move (#1475) (RE-360)
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #1475.
On Revit 2027's save of
rac_advanced, 18 of 180SWallrecords hold a secondGLinebesides the location curve, owned byWallRunTimeData.m_prevLocLine.native_wallsleft out any wall with a second curve, so the 8 host walls of 14 doors returned no native line and the doors kept the default axes (RE-360). A record of exactly two curves is now read where one is the levelGLineVWallDriver.m_pCrvnames and the other is aGLinethat onlym_prevLocLinenames. A record with the oneGLinereads as before, and any other set of curves stays unread (aCurveLoop.m_curvesprofile wall, an arc, a null or ambiguousm_pCrv).Motivation
#1456's second read found 14 doors of
rac_advanced's 2027 save left on the default axes. #1454's check compares each cut opening with the 2025 save, so the 14 differ on axes alone. Both done-when items of #1475 are met: the missing row is explained from the bytes (RE-360 section 1), and the 14 doors are placed by the rule on 2027. The 15th door of the 2024 save's 8 hosts is hosted by another wall on 2027: #1454's cause, not this one.Changes
src/research/native_walls.rs:record_line,location_curve_index,is_previous_location_line;location_curve(RE-348) now shares the pointer read.tools/re/bodies_across_saves.py: the 2027 floor ofrac_advanceddoors 47 to 61 and the ceiling of doors left on the default axes 42 to 28, as RE-347 requires of a count that moves. Whichever of this and feat(ifc): Revit 2026 and 2027 pipes, ports, door and window cuts and the 2025 properties are read as on 2025 (#1190) (RE-346) #1454 lands second sets 2027's numbers from a samples run on the merged head and takes neither side's: feat(ifc): Revit 2026 and 2027 pipes, ports, door and window cuts and the 2025 properties are read as on 2025 (#1190) (RE-346) #1454's branch holds 68, 24 and 15 for the same counts, and this change's 61, 18 and 28 would loosen them.probes/examples/probe_re360_wall_location_curve.rs,tools/ci/scrub-holdout-results.sh(keeps the probe's counts-onlyprevious lines:line for a model without a licence),reports/element-framing/RE-360-wall-previous-location-line.md,changelog.d/fixed/1475-wall-previous-location-line.md,docs/maintaining.md, RE-347's section 7 (figures it no longer holds).Testing
Unit tests are banned in this repository: none added. Measured on Autodesk's sample projects of 2024 to 2027 (25 files, no Revit export of any):
Measure 42129732742, head
d741927: the probe, the cause.Measure 42134051521, head
0a0ba7ceagainst basece3a3c47(the same code without the rule), default scorers, every job green. The figures below are from it. It was dispatched frommain, so it tookmain's gate.Measure 42137808608 on head
b470a9ab: thesame-project gatescheck passes on 9 samples, but reads "Scored by workflow commitc5bae9ed",main's gate, whose 2027 ceiling is 42. It did not exercise this PR's edit ofbodies_across_saves.py, so 61, 18 and 28 are not yet scored by anything.Measure 42141380072, the unfiltered run on head
5754c7f3, dispatched from this branch (-f base=main -f samples=true -f nordic=true -f r2025=true -f holdout=true -f keep_ifc=true, the probe on every model), so its scorers include the edited gate: queued, not read yet.Verified end to end on real Revit files: the command, the files and the measured result are in the report, with the probe that reproduces it
Touches the IFC exporter through what the wall read feeds: of the 25 sample exports five change and 20 are byte for byte the base's. The models that are not Autodesk samples (Core Interior, RE1, the offices, the Revit 2025 models, the held-out models) are in the unfiltered run above, not read yet
Not a performance change
Measured result (run 42134051521, samples only)
rac_advanced2027 162, 180 (2024 to 2026 180, 180);rac_basic47, 52 on 2024 to 2026 and 46, 52 on 2027;rme_advanced,rme_basic,rst_basicunchanged; Snowdon Architectural 1,202, 1,204. On the headrac_basicreads the same 52 walls andrac_advancedthe same 180 on all four saves, by id. No wall the old rule read is un-read. 26 walls are newly read over everySWallrecord of the 25 files (the probe's count), of which 20 can reach an export: the 18 ofrac_advanced2027 andrac_basic's 709245 and 234869, none on Snowdon.m_pCrv's line equals the partition axis (RE-53) to 0.0000 ft on all 13 dumped walls that have one, andattach_wall_lengthsgivesm_wall_curve_lengthonly within 1e-4 ft of that axis, which all 17 newly read plain walls got. A record whosem_pCrvnames the stale line could not be told apart by naming; none exists in the 25 files. Curtain walls have no axis and no guard, so only the rule protects them; both here have a coincident previous line.rac_basic2024 to 2027 andrac_advanced2027 only.rac_basic: curtain wall 709245 gainsQto_CurtainWallQuantities.Length3.01 m, nothing else.rac_advanced2027: curtain wall 149877 gainsLength25.6109 m (its 2024 to 2026 value); 14 doors gainPlacementAxesSource; 13 doors and their 13 openings change placement. No body volume or world box moves, no product added or removed. No other wall, neighbour reach, shell or length changes on any save. No check holds the two curtainLengthvalues: no Revit export of these files exists, no gate compares a curtain wall'sLength, 709245 gains it on all four saves at once, and only its box width of 9.8753 ft corroborates it.lane/1454-gates): one overlap, 234869 onrac_basic2027; its body, volume, box and properties are unchanged, so its pin holds. Nothing re-pinned.rac_advanced2027 compares 79 (61 doors, 18 windows) and leaves 28 out, where the base compared 65 and left 42 out.Audit-honesty checklist
changelog.d/fixed/probes/examples/and the report RE-360Legal and contribution hygiene
Breaking changes
None.