docs: physical vs non-physical elements (filtering guide)#97
Open
SamuelAB-VIM wants to merge 3 commits into
Open
docs: physical vs non-physical elements (filtering guide)#97SamuelAB-VIM wants to merge 3 commits into
SamuelAB-VIM wants to merge 3 commits into
Conversation
A VIM carries the whole Revit project database (families, types, annotations, views, cameras, levels) alongside placed objects, so naive counts over-count. This guide documents the correct geometry-free filter (Domain == Physical AND IsInstance, i.e. CategoryDomain == 'Physical - Instance'), the classification taxonomy, and a derivation recipe -- and explains why hasGeometry is the wrong gate: it drops legitimate 2D / no-mesh placed instances (lazily-2D doors, embedded opening families). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Companion to BIM_PHYSICAL_ELEMENTS.md. A practical guide for vim-web / HTML consumers reading raw .vim: compound structure layers (type-level build-ups), rooms and objects-in-rooms (the two opposite-direction links), phases and phase filters (existence vs presentation), levels and geometric containment, nested/hosted families (Host vs SuperComponent vs ElementHierarchy), material takeoff, and the parameter instance/type/family fan-out + native|display value encoding. Each section gives the real table/column names, the correct usage pattern, a worked example, and gotchas -- and explicitly flags the two things the data model does NOT encode (phase-filter presentation vocabulary, level-containment code names), pointing consumers to the exporter. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…n walls Verified against TowerS-ARCHITECTURE.vim (106,823 elements): - Raw .vim has only FamilyInstance.Host + SuperComponent. ElementHierarchy (closure table) and SuperComponentDistance are Parquet/PowerBI-pipeline only, NOT in the raw SDK file. Removed them as raw mechanisms. - Fixed an inverted example: curtain panels/mullions are HOSTED by the curtain wall (every one has SuperComponent=-1), not super-components of it. - SuperComponent is for shared nested families (furniture-system members, nested door hardware, pipe/plumbing assemblies). - New worked example: one curtain wall hosts 607 panels + 1,750 mullions = 2,357 sub-elements; curtain grids stay Conceptual. Added isolation/counting/takeoff consequences and shared-vs-non-shared nested-family behavior. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
A VIM carries the whole Revit project database (families, types, annotations, views, cameras, levels) alongside placed objects, so naive counts over-count. This guide documents the correct geometry-free filter (Domain == Physical AND IsInstance, i.e. CategoryDomain == 'Physical - Instance'), the classification taxonomy, and a derivation recipe -- and explains why hasGeometry is the wrong gate: it drops legitimate 2D / no-mesh placed instances (lazily-2D doors, embedded opening families).