Repository navigation
feat(ifc): the sloped line of a wall's edited elevation profile goes on, along its slope, to the wall's end (#1473) (RE-358) - #1501
Draft
DrunkOnJava wants to merge 13 commits into
Draft
DrunkOnJava wants to merge 13 commits into
DrunkOnJava wants to merge 13 commits into
Conversation
…on, along its slope, to the wall's end (#1473) (RE-358)
…ertex order, both shapes are named, the carried end needs a joined wall, the rule has its own release list (#1473) (RE-358)
…office stub end has; RE-358, the matrix and the addendum hold run 2 (#1473) (RE-358)
…op, a measurement only (#1473) (RE-358)
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
A wall whose elevation profile was edited keeps its cut-out past the profile, to the wall's end, where the wall goes on past the profile. The opening that voids the wall (RE-151) stopped at the profile's end, so a stretch of the wall that goes on past it stayed as the box had it while Revit's body goes on along the profile (#1473, RE-358). Two shapes are read: a sloped line, carried along its slope, and the cut-out of a notch (both neighbours level), carried straight out and told from the wall's own top or base by height, not by the order the outline lists its vertices in.
Motivation
#1470 (RE-348) made the ends of the BIM4LCA office's Basement walls 2057668, 2057670, 2058499 and 2058501 Revit's but left each 0.209 ft3 over Revit's volume as built (0.207 at permit): a 0.4101 ft stretch past the profile's end, flat at 183.7343 ft where Revit's top reaches 183.085 ft. #1410's volume done-when rests on it.
Changes
src/research/partition_schema_mvp/walls.rs,fields.rs: the profile's lowest and highest points along its own axis are kept with the wall's openings (m_profile_extent), on the rule's own release list (Revit 2024).src/ifc/export_content/wall_profile.rs(new),export_content.rs: after the wall ends and base cuts, an opening that reaches an end of the profile with one vertical edge is carried on to the wall's end, where the wall goes on past the profile by more than 0.001 ft and the stretch is at most the wall's thickness (a stated heuristic; the record lists no joined wall at the office's stub ends, so none is asked for). Not read:ProfileStubRefusal.extendedis pure and has unit tests of its failure modes next to it.src/ifc/mod.rs,export_decisions.rs,rvt-mcp/src/*.rs,docs/export-diagnostics.md,docs/mcp.md,docs/schemas/export-diagnostics.schema.json,tools/re/wall_rule_counts.py,tests/export_decisions_counts.rs:exported.wall_profile_sources,exported.wall_profile_refusalsand the decisionwall_profile_extension_refused.Testing
Unit tests are banned; measured end to end on Revit's own exports.
3c461d02againstmainat8060ecc8(nordic=true samples=true sample_years="2024 2024", modelsnordic-office-* core-interior sample-2024-*, the four wall scorers). Eight Basement walls take the rule on each office file (wall_profile_sloped_past_the_high_end6,_low_end2, no refusal): the four of A profile-edited wall's sloped top stops at the profile's end: a 0.41 ft stub stays flat, 0.65 ft too high #1473 go from 0.209 ft3 over Revit's (0.207 at permit) to Revit's within 1.1e-5, withplanrowsequal 100 taller 0; 2056705 and 2056770 (Walls 2056705 and 2056770: Revit cuts their ends back above 182.087 ft and steps them, and neither office file draws that #1474) move 0.206 ft3 towards Revit's; 2070689 and 2070691, which the prediction did not name, go from 0.249 over to Revit's within 4.1e-5. Noloweranywhere. This meets Wall ends Revit steps up the height: the second step is left out (RE-337 follow-up) #1410's volume done-when (2057668 and 2057670 within 1e-5 ft3, no top above Revit's).rac_basic(walls 198694 at both ends and 493612 at the low end, one refusalprofile_cut_not_read_at_the_wall_end; no Revit export to check them) and Snowdon Towers Architectural (wall 1996082 at the low end, one refusalprofile_slope_leaves_the_cut; against the local Revit export itsplanrows go fromequal 662 taller 10toequal 672 taller 0of 672 and it is the only wall of 1,078 that moves, its volume still 8.16 ft3 over Revit's from 12.59). Core Interior and every other 2024 file are byte for bytemain's.337ca29cagainstmainatc5bae9ed(nordic=true samples=true sample_years="2024 2027", modelsnordic-office-* core-interior sample-*, default scorers,keep_ifc; 30 exports): that head asked for a joined wall at the carried end, and it carried nothing.exported.wall_profile_sourcesis empty andexported.wall_profile_refusalsisprofile_end_has_no_join_partner8 on each office file, 2 onrac_basicand 1 on Snowdon: every end run 1 carried was refused.ifc.sha256moved on those four files for the markers alone (the scorer diff holdswall_rules.txtonly). Thesame-project gatescheck run is success (9 samples held to their earlier saves, and the Areas on 4 saves), of a head that carried nothing and a gate that does not compare these walls. The probe of run 42096049754 shows why: at all eight office stub ends the record's end step lists no joined wall (m_realJoinedandm_geomJoinedempty) and names one exposed neighbour, face 6, which 175 of 1,601 ends without a joined wall also have. The requirement is dropped in the push after run 2; the level fix, the names and the release list are measured by no run yet.8e351289againstmain(nordic=true samples=true sample_years="2024 2027", modelsnordic-office-* core-interior sample-*, default scorers,keep_ifc): the rule without the join requirement, the level fix by height, the form names, the release list, the same-project gate on a head that carries, andexported.wall_profile_height_checks, a count of how a carried sloped line stands against the record box's top (a rising line should equal it; the office's falling ones cannot) that nothing is carried or kept by. Not yet read.rac_basic(local only, no licence): walls 198694 and 493612 are in it with the same names and Tags, and neither matches before or after the rule (equal 0of 425 and of 646 plan points); the rule moves their volumes 6.37 and 2.79 ft3 towards Revit's, and they stay 35.2 and 7.7 ft3 from it for reasons the rule does not touch. They are unchecked; the same-project gate does not compare them (the profile openings are read on 2024 only).Audit-honesty checklist
changelog.d/fixed/.Breaking changes
None (additions to
exporteddiagnostics and one decision reason).Related issues
Closes #1410 (its volume done-when is met: 2057668 and 2057670 within 1e-5 ft3, no top above Revit's).
Refs #1473 (not closed here): its done-when says no other wall moves and the stub is read from the bytes. Seven other walls move (2056705, 2056770, 2070689, 2070691 and three of
rac_basicand Snowdon); the slope is read from the profile's bytes andrac_basic493612's record box carries the line to the wall's end, while that Revit goes on along it is shown against Revit's export on the office and one Snowdon wall.Refs #1474 (stays open): walls 2056705 and 2056770 go from 0.339 ft3 over Revit's at permit to 0.132; what remains is the end step above 182.087 ft.