Repository navigation
fix(elements): a door or window whose type's native map holds entries is not written as its opening alone (#1247) (RE-299) - #1249
Merged
Conversation
…one of that geometry keeps drawing nothing (#1247) (RE-299)
…ap-doors-merge # Conflicts: # docs/rvt-moat-break-reconnaissance.md
DrunkOnJava
enabled auto-merge (squash)
November 3, 2026 00:35
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 door or window is no longer written as its opening alone (
IfcOpeningElement) when its type draws geometry in no material of its own. RE-84 decides "this type only cuts its host" from a byte scan of the type's value block, and that scan misses a geometry-material map whose values are all unset or name a material whose name it did not read. The type's nativem_geomTag2MaterialIdnow decides where it holds entries (RE-299).Motivation
#1247: on a Revit 2024 project,
rvt-ifc --large-modelwrites 73AR_DOR_doors asIfcOpeningElement, the other 361 asIfcDoor. The RE-84 path is unchanged since v0.6.1 (the reporter's v0.6.1 could not read that file), so this is a standing misread rather than a regression.Changes
src/research/native_type_materials.rs:geometry_maps, whichgeometry_materialsnow wraps, also returns the types whose native map holds any entry. Same single native pass.src/research/partition_schema_mvp/materials.rs:refine_type_materialsdrops an empty scanned list for such a type, so it reads as "materials not read" rather than "draws no geometry". Its doors and windows then also get the sizing and naming other doors and windows get, which the flag gated (RE-215 cut-loop sizes, opening-index sizes, RE-154's type name). No type material is written for it: what Revit gives such a door is not measured. One case keeps the flag: a map whose every value is −1, of a family whose own document shows none of that geometry (RE-204: every such form hidden or void, or none). No measured file has one.probes/examples/probe_re299_unset_map_doors.rs,tools/re/void_only_vs_ifc.py(counts the probe's further columns).reports/element-framing/RE-299-native-map-void-only-doors.md, an update line in RE-84, the reconnaissance addendum,changelog.d/fixed/1247-native-map-void-only-doors.md.Testing
Unit tests are banned in this repository: do not add them. Show the change working end to end on real files instead.
tools/check-local.sh: CI.mainafter fix(saved-graphics): mesh a cylinder whose saved basis is left-handed, its normal turned as on a plane (#1247) (RE-301) #1252, againstmainat ca389bb, unfiltered, with the office, R2025, held-out models and samples): all 103 exports byte-identical (ifc.sha256), including the 58 sample projects and 13 held-out models, and the scorer diff is empty. Earlier gates were cancelled when the head changed: 41541177152 (first version) and 41545726999 (f832c25, before the merge).refine_type_materialsdocs, the report's reproduce line.candidate/1247at 429781b, which carries this change, and report counts.Audit-honesty checklist
changelog.d/Legal and contribution hygiene
Contributor declaration (CLEANROOM.md): this finding rests on byte and record observations of public files and on Revit's own IFC exports of them; no Autodesk SDK source, disassembly or NDA material was used.
Breaking changes
None.
geometry_mapsis new underrvt::research(unstable).