Skip to content

docs: physical vs non-physical elements (filtering guide)#97

Open
SamuelAB-VIM wants to merge 3 commits into
mainfrom
docs/physical-vs-non-physical-elements
Open

docs: physical vs non-physical elements (filtering guide)#97
SamuelAB-VIM wants to merge 3 commits into
mainfrom
docs/physical-vs-non-physical-elements

Conversation

@SamuelAB-VIM

Copy link
Copy Markdown

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).

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>
SamuelAB-VIM and others added 2 commits June 22, 2026 22:37
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant