Repository navigation
research(ifc): value sources for every *Source property value, and a test that fails on one with none (#1498) - #1512
Draft
DrunkOnJava wants to merge 4 commits into
Draft
DrunkOnJava wants to merge 4 commits into
DrunkOnJava wants to merge 4 commits into
Conversation
… and the readers behind each value (#1498)
…roperty value, and the offsets test fails on a written value with none (#1498) Elements list a noted source for any reader their own *Source property values name (property_readers), beside their BodySource and ProfileSource: a wall's top, base and end rules (native_wall, the wall's own record, and the frames of the covers it names), the placement of a door or window in a wall (instance_transform, native_opening, opening_host_wall), a wall's orientation and flip (wall_orientation) and a tapered wall's face angle (wall_type_face_angle). SOURCE_VALUES in tests/value_sources_offsets.rs gives every written value a row, sourced or a stated gap.
…ers, the three values the inventory found get rows, and the qualifications clippy refused go (#1498) Measure run 42136996423 (the probe at 92a7e92, 92 models) found StoreyBindSource=record_level_reference, LevelBindSource=structural_framing_top_level and ProfileSource=partition_element_record_join_cut written with no row.
…ten *Source values and the 20 declared gaps (#1498) native_symbol_cut is not attributed: no *Source property keys a door's cut-loop size, so the note would never be listed.
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
Draft. #1498's structural fix and the additive sources for the inputs it lists. Refs #1498 (not
Closesuntil the test has run green on the gate and the proof run is read).property_readers(src/ifc/element_provenance.rs) lists a noted source for any reader an element's own*Sourceproperty values name (BodyHeightSource,BodyBaseSource,BodyEndSource,PlacementAxesSource,ThicknessSource,SpaceOutlineSource), beside itsBodySourceandProfileSource. Before, only those two keyed a listing, so a door whose body was its saved mesh never listed the transform its placement was taken from.SOURCE_VALUESintests/value_sources_offsets.rsgives every written*Sourcevalue a row (sourced, covered by another table, unread, or a declared gap with its reason) and fails on a value with none. A sourced row requires its readers on every element that carries the value. It reads the real exports of the CI gate through--element-provenance.recording_value_sources()):native_wall(the wall's own native record: join lists, cut pairs,m_realJoined, the curve, the flip),native_wall_joined(the records of the walls the lists name, where every one was read),wall_top_coversandwall_base_cover(the frame of each cover the wall names, ruleframe),wall_orientation(agreeing, the scan compares every copy),wall_type_face_angle(agreeing),native_opening(a door's own record: the two flips),opening_host_wall(the host wall's record).Declared gaps: 20 values
12 bindings to a Level or a storey (
LevelBindSource9,StoreyBindSource3), 2 family names chosen by a table (FamilyNameSource), 1 column height (BodyHeightSourcepartition_geometry_node_after_joins: the geometry node's offset is not noted), 5 schema-walker values no model of the 92 writes. Reasons and element counts:docs/export-diagnostics.md, "Written*Sourcevalues". Three listed inputs have no*Sourceproperty to key a row on and carry a stated reason instead: door and window cut-loop sizes, a beam's cross-section rotation, a section's dimensions (not compared with the export).Evidence so far
base=none, 92 models,scorers=none): the inventory of every*Sourcevalue and the readers behind it. It found three values that had no row (StoreyBindSourcerecord_level_reference,LevelBindSourcestructural_framing_top_level,ProfileSourcepartition_element_record_join_cut); they have rows now. That run is the probe commit, which has no export code: it says nothing about byte identity.-f base=main -f samples=true -f sample_years="2024 2027" -f models="core-interior nordic-office-*" -f nordic=true -f scorers=none) waits for the second read.MCP contract
No
rvt-mcpfile is touched. Thevalue_sourcesdescription (rvt-mcp/src/schema.rs,docs/mcp-tools.json) says the copy each reader took "a value of the element's body from"; with this PR it also lists the values of the wall rules and the placement. The wording is the coordinator's to sync; the reader names are free strings in the schema.Testing
cargo fmt,tools/release/changelog.py check,tools/ci/api-doc-ids.pylocally.tests/value_sources_offsets.rson the gate in CI (Corpus health): not yet read at this head.Breaking changes
None.