
The port instance register enumerates 1,539 rows across 573 objects, and all 1,539 are unique [MODELED]. The same file resolves to 20 port families and 14 system types. The endpoint population is therefore almost two orders of magnitude larger than either vocabulary count. These quantities answer different questions: instances locate terminations, while families and system types describe the kinds of connection the object model can express.
Instance Keys Multiply Endpoints Against Type Counts
Six families carry most of the volume. Access points account for 237 rows, low-voltage power for 198, control for 191, secondary liquid for 172, lift points for 168 and physical paths for 137. The implementation package groups the twenty families by what they are responsible for:
- non-medium endpoints, covering access, path, lift, earth, air, exhaust and vent, which may never appear on a connection edge;
- signal endpoints, covering control, generic signal, data and fibre, which are required to form edges only once the point list and the leak interlock matrix close;
- site utility endpoints, covering firewater, make-up and drain, whose responsible party is unassigned;
- medium endpoints, covering medium-voltage, low-voltage, direct current, secondary and primary liquid and fuel, which default to required.
The instance key itself carries the branch, so a battery endpoint written for the lead-acid branch and the same endpoint written for the lithium branch are two rows and two tokens, not one row with a variant field. That convention multiplies endpoints against types by design, making the two counts definitionally non-interchangeable.
Uniqueness across all 1,539 is a real result and a narrow one. It proves that no port instance is claimed by two objects and that no object repeats a token internally, and it is not sufficient to describe coverage at all.
Between the family count and the instance count sits a third vocabulary measure: 123 distinct port tokens, each combining the family code with any branch qualifier and a sequence number. Even that middle figure is an order of magnitude below the endpoint count, and 99 distinct condition identifiers govern when the conditional endpoints apply.
Responsibility, Not Family, Is the Review Count
Responsibility, not family, is the column that carries review weight. The register classifies 392 instances as required, 579 as conditional and 568 as forbidden endpoints, and it classifies every one of the 1,539, leaving none unclassified. Those three values are what let a validator distinguish a genuinely missing connection from a lawful blank, which the coverage audit states in plain terms: without machine-decidable connection responsibility, a validator will read a real missing power, fluid, control or data connection as a legitimate gap. The audit rejects the opposite shortcut as well, a rule requiring every port to be connected, because a large share of the unconnected endpoints are conditional branches, maintenance envelopes, replacement routes and interfaces that have not been developed yet.
Model state cuts the same file a third way, 757 held instances against 661 active and 121 template rows, so roughly half the endpoint population belongs to branches being preserved.
Coverage Audit and Port Register Differ by Two Rows
The independent coverage audit, written against an earlier snapshot of the same register, reports 573 objects and 183 connections with zero unknown object references, zero non-existent port references and zero doubly connected ports, and puts the register at 1,537 ports, 366 of them used by a connection and 1,171 not used. The implementation package and the instance file both report 1,539. Which figure is current cannot be settled from the two documents: they differ by two endpoints, neither cites the other's total, and the audit does not state the register revision it parsed. Its port-type table is a subset as well, listing 14 families against the instance file's 20.
Reissue the audit against the current snapshot and have it still report 1,537, and the two-row gap stops being a snapshot artefact and becomes a live defect in a file whose uniqueness result would then have to be recomputed before either total is quoted. Until that reissue, the two-row difference is an unresolved snapshot-provenance question. The object model owner produced both files and is the one party positioned to say which of them is current.
© 2026 K&K Data Service Inc. All rights reserved. Reproduction or republication is permitted only with clear attribution to K&K Data Service Inc. and a working hyperlink to the canonical URL of this article. Excerpts must preserve the technical context, maturity labels, assumptions, and limitations. No excerpt may imply project approval, field validation, certification, or endorsement that the original article does not state.
Source: K&K Data Service Inc., “1,539 BIM Ports Are Endpoints, Not Connection Type Codes,” https://www.kkdatasvc.com/lab/bim-and-navisworks/1-539-ports-are-endpoints-not-type-codes/.
Discuss This Constraint. If your project record shows a different result, or the same failure domain under another name, we want to see it. Email inquiry@kkdatasvc.com or use the contact page.