You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Classes of a few small elements depend on block counts of the byte scan and change when unrelated records are removed #47
The class of some small elements is decided by the block counts of the heuristic byte scan, and a change in unrelated bytes can move a false positive block from one element to another. In the sample project jp_sample_3 (Revit 2022), removing four superseded records that belong to two link symbols (ids 19291850 and 19291853) made element 19 (a line pattern) lose its class while element 28 (a material) gained its class. Neither element is stored twice.
The effect is one class slot in one sample file today, but it shows the class of tiny elements is not decided by their own record. Needed: take the class of these elements from their own root record by the file schema, or reject a block count that is not backed by the element table, and add a test with a file where the surrounding records change.
Status against main at 74e80fc. #190 takes the class root of an element in Revit 2020 and 2022 files (no class schema of their own) from its record in the project block, using the partition framing of #187 and #189, instead of the blocks the stream walk meets. Across 23 files no element loses its class and 59 gain one, 17 of them in the file of this issue. OwnElementClassTests checks that the class of an element held once does not change when other copies are removed. Still open: files with their own class schema (Revit 2021 and 2023 onwards) and the other per-root sources of the walk, including the first class per id, still count blocks from the walk.
Activity
mahach666 commentedon Nov 12, 2026
Status against main at 74e80fc. #190 takes the class root of an element in Revit 2020 and 2022 files (no class schema of their own) from its record in the project block, using the partition framing of #187 and #189, instead of the blocks the stream walk meets. Across 23 files no element loses its class and 59 gain one, 17 of them in the file of this issue.
OwnElementClassTestschecks that the class of an element held once does not change when other copies are removed. Still open: files with their own class schema (Revit 2021 and 2023 onwards) and the other per-root sources of the walk, including the first class per id, still count blocks from the walk.