@ifc-lite/cli 0.25.0 → 0.25.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/stats-aggregation.d.ts +109 -0
- package/dist/commands/stats-aggregation.d.ts.map +1 -0
- package/dist/commands/stats-aggregation.js +153 -0
- package/dist/commands/stats-aggregation.js.map +1 -0
- package/dist/commands/stats.d.ts.map +1 -1
- package/dist/commands/stats.js +11 -127
- package/dist/commands/stats.js.map +1 -1
- package/dist/commands/validate.d.ts +29 -0
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +34 -9
- package/dist/commands/validate.js.map +1 -1
- package/package.json +12 -12
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure aggregation helpers for `ifc-lite stats` — extracted so the KPI /
|
|
3
|
+
* WWR / GFA math can be unit tested against a fake `bim` surface instead of
|
|
4
|
+
* only through a real parsed IFC file. `statsCommand` in stats.ts wires
|
|
5
|
+
* these to the SDK's `BimContext`.
|
|
6
|
+
*/
|
|
7
|
+
export interface QuantitySet {
|
|
8
|
+
name: string;
|
|
9
|
+
quantities: Array<{
|
|
10
|
+
name: string;
|
|
11
|
+
value: unknown;
|
|
12
|
+
}>;
|
|
13
|
+
}
|
|
14
|
+
export interface PropertySet {
|
|
15
|
+
name: string;
|
|
16
|
+
properties?: Array<{
|
|
17
|
+
name: string;
|
|
18
|
+
value: unknown;
|
|
19
|
+
}>;
|
|
20
|
+
}
|
|
21
|
+
/** Minimal surface these helpers need from a `BimContext`. */
|
|
22
|
+
export interface QuantityBim<R = unknown> {
|
|
23
|
+
quantities: (ref: R) => QuantitySet[];
|
|
24
|
+
}
|
|
25
|
+
export interface PropertyBim<R = unknown> {
|
|
26
|
+
properties: (ref: R) => PropertySet[];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Sum a named quantity across every quantity set on every element ref,
|
|
30
|
+
* adding up all matches ("Gross" and "Net" names given as alternatives —
|
|
31
|
+
* Gross/Net are two names for a slot the model only ever fills one of, not
|
|
32
|
+
* two quantities to add). A quantity set holding two quantities with the
|
|
33
|
+
* same name is not valid IFC — IfcElementQuantity's UniqueQuantityNames
|
|
34
|
+
* WHERE rule forbids it — so this function does not try to guess intent
|
|
35
|
+
* for non-compliant data; it just sums whatever is present. Returns 0 for
|
|
36
|
+
* an empty list — the caller decides what an empty aggregate means (e.g. a
|
|
37
|
+
* GFA fallback).
|
|
38
|
+
*/
|
|
39
|
+
export declare function sumQuantity<R>(bim: QuantityBim<R>, refs: R[], quantityNames: string[]): number;
|
|
40
|
+
/** Read a single property's value out of a named property set, or undefined. */
|
|
41
|
+
export declare function getPropertyValue<R>(bim: PropertyBim<R>, ref: R, psetName: string, propName: string): unknown;
|
|
42
|
+
/** IFC boolean-logical literals that mean "true" across the encodings the parser hands back. */
|
|
43
|
+
export declare function isTruthyIfcBoolean(value: unknown): boolean;
|
|
44
|
+
export interface WallAggregate {
|
|
45
|
+
totalWallArea: number;
|
|
46
|
+
exteriorWallArea: number;
|
|
47
|
+
totalWallVolume: number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Per-wall area/volume aggregation, plus the exterior-wall-area subtotal
|
|
51
|
+
* used as the Window-Wall-Ratio denominator. `exteriorWallArea` is a SUBSET
|
|
52
|
+
* of `totalWallArea` (every exterior wall's area is counted in both), not a
|
|
53
|
+
* separate quantity — callers must not sum them.
|
|
54
|
+
*/
|
|
55
|
+
export declare function aggregateWalls<R>(bim: QuantityBim<R> & PropertyBim<R>, walls: Array<{
|
|
56
|
+
ref: R;
|
|
57
|
+
}>): WallAggregate;
|
|
58
|
+
/**
|
|
59
|
+
* Window-Wall Ratio as a percentage. Uses exterior wall area when any exists
|
|
60
|
+
* (the architecturally meaningful denominator); falls back to total wall
|
|
61
|
+
* area only when there is no exterior-wall data at all — NOT when exterior
|
|
62
|
+
* area happens to be smaller, and not summed with total wall area.
|
|
63
|
+
*/
|
|
64
|
+
export declare function computeWindowWallRatio(totalWindowArea: number, exteriorWallArea: number, totalWallArea: number): number;
|
|
65
|
+
/**
|
|
66
|
+
* Gross Floor Area: sum of each storey's own `GrossFloorArea` quantity
|
|
67
|
+
* (a storey with none contributes 0, i.e. an empty group — it must not be
|
|
68
|
+
* skipped or it would silently undercount). Falls back to the model's total
|
|
69
|
+
* slab floor area only when the storey-quantity sum is exactly 0 (no storey
|
|
70
|
+
* anywhere reports GFA), not per-storey.
|
|
71
|
+
*/
|
|
72
|
+
export declare function computeGrossFloorArea<R>(bim: QuantityBim<R>, storeys: Array<{
|
|
73
|
+
ref: R;
|
|
74
|
+
}>, fallbackTotalFloorArea: number): number;
|
|
75
|
+
export interface MaterialSummaryEntry {
|
|
76
|
+
name: string;
|
|
77
|
+
count: number;
|
|
78
|
+
volume: number;
|
|
79
|
+
}
|
|
80
|
+
export interface MaterialsBim<R = unknown> extends QuantityBim<R> {
|
|
81
|
+
materials: (ref: R) => {
|
|
82
|
+
materials?: Array<string | {
|
|
83
|
+
name?: string;
|
|
84
|
+
}>;
|
|
85
|
+
name?: string;
|
|
86
|
+
} | null | undefined;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Per-material element count and summed Gross/NetVolume, sorted by element
|
|
90
|
+
* count descending (most common material first).
|
|
91
|
+
*/
|
|
92
|
+
export declare function computeMaterialSummary<R>(bim: MaterialsBim<R>, elements: Array<{
|
|
93
|
+
ref: R;
|
|
94
|
+
}>, round: (n: number) => number): MaterialSummaryEntry[];
|
|
95
|
+
export interface ValidationSummary {
|
|
96
|
+
duplicateGlobalIds: number;
|
|
97
|
+
unnamedElements: number;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Model-health checks: how many GlobalIds are duplicated (a count of
|
|
101
|
+
* *offending IDs*, not of duplicate rows — three elements sharing one
|
|
102
|
+
* GlobalId count as 1 here, matching the original implementation) and how
|
|
103
|
+
* many elements have no name / an empty-string name.
|
|
104
|
+
*/
|
|
105
|
+
export declare function computeValidation(elements: Array<{
|
|
106
|
+
globalId?: unknown;
|
|
107
|
+
name?: unknown;
|
|
108
|
+
}>): ValidationSummary;
|
|
109
|
+
//# sourceMappingURL=stats-aggregation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats-aggregation.d.ts","sourceRoot":"","sources":["../../src/commands/stats-aggregation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
/**
|
|
5
|
+
* Sum a named quantity across every quantity set on every element ref,
|
|
6
|
+
* adding up all matches ("Gross" and "Net" names given as alternatives —
|
|
7
|
+
* Gross/Net are two names for a slot the model only ever fills one of, not
|
|
8
|
+
* two quantities to add). A quantity set holding two quantities with the
|
|
9
|
+
* same name is not valid IFC — IfcElementQuantity's UniqueQuantityNames
|
|
10
|
+
* WHERE rule forbids it — so this function does not try to guess intent
|
|
11
|
+
* for non-compliant data; it just sums whatever is present. Returns 0 for
|
|
12
|
+
* an empty list — the caller decides what an empty aggregate means (e.g. a
|
|
13
|
+
* GFA fallback).
|
|
14
|
+
*/
|
|
15
|
+
export function sumQuantity(bim, refs, quantityNames) {
|
|
16
|
+
let total = 0;
|
|
17
|
+
for (const ref of refs) {
|
|
18
|
+
const qsets = bim.quantities(ref);
|
|
19
|
+
for (const qset of qsets) {
|
|
20
|
+
for (const q of qset.quantities) {
|
|
21
|
+
if (quantityNames.includes(q.name)) {
|
|
22
|
+
total += Number(q.value) || 0;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return total;
|
|
28
|
+
}
|
|
29
|
+
/** Read a single property's value out of a named property set, or undefined. */
|
|
30
|
+
export function getPropertyValue(bim, ref, psetName, propName) {
|
|
31
|
+
try {
|
|
32
|
+
const psets = bim.properties(ref);
|
|
33
|
+
for (const pset of psets) {
|
|
34
|
+
if (pset.name === psetName) {
|
|
35
|
+
const prop = pset.properties?.find(p => p.name === propName);
|
|
36
|
+
if (prop)
|
|
37
|
+
return prop.value;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// Property not available
|
|
43
|
+
}
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
/** IFC boolean-logical literals that mean "true" across the encodings the parser hands back. */
|
|
47
|
+
export function isTruthyIfcBoolean(value) {
|
|
48
|
+
return value === true || value === 'TRUE' || value === '.T.';
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Per-wall area/volume aggregation, plus the exterior-wall-area subtotal
|
|
52
|
+
* used as the Window-Wall-Ratio denominator. `exteriorWallArea` is a SUBSET
|
|
53
|
+
* of `totalWallArea` (every exterior wall's area is counted in both), not a
|
|
54
|
+
* separate quantity — callers must not sum them.
|
|
55
|
+
*/
|
|
56
|
+
export function aggregateWalls(bim, walls) {
|
|
57
|
+
let totalWallArea = 0;
|
|
58
|
+
let exteriorWallArea = 0;
|
|
59
|
+
let totalWallVolume = 0;
|
|
60
|
+
for (const w of walls) {
|
|
61
|
+
let wallArea = 0;
|
|
62
|
+
let wallVolume = 0;
|
|
63
|
+
const qsets = bim.quantities(w.ref);
|
|
64
|
+
for (const qset of qsets) {
|
|
65
|
+
for (const q of qset.quantities) {
|
|
66
|
+
if (q.name === 'GrossSideArea' || q.name === 'NetSideArea') {
|
|
67
|
+
wallArea = Number(q.value) || 0;
|
|
68
|
+
}
|
|
69
|
+
if (q.name === 'GrossVolume' || q.name === 'NetVolume') {
|
|
70
|
+
wallVolume = Number(q.value) || 0;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
totalWallArea += wallArea;
|
|
75
|
+
totalWallVolume += wallVolume;
|
|
76
|
+
const isExternal = getPropertyValue(bim, w.ref, 'Pset_WallCommon', 'IsExternal');
|
|
77
|
+
if (isTruthyIfcBoolean(isExternal)) {
|
|
78
|
+
exteriorWallArea += wallArea;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return { totalWallArea, exteriorWallArea, totalWallVolume };
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Window-Wall Ratio as a percentage. Uses exterior wall area when any exists
|
|
85
|
+
* (the architecturally meaningful denominator); falls back to total wall
|
|
86
|
+
* area only when there is no exterior-wall data at all — NOT when exterior
|
|
87
|
+
* area happens to be smaller, and not summed with total wall area.
|
|
88
|
+
*/
|
|
89
|
+
export function computeWindowWallRatio(totalWindowArea, exteriorWallArea, totalWallArea) {
|
|
90
|
+
const wwrBase = exteriorWallArea > 0 ? exteriorWallArea : totalWallArea;
|
|
91
|
+
return wwrBase > 0 ? (totalWindowArea / wwrBase) * 100 : 0;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Gross Floor Area: sum of each storey's own `GrossFloorArea` quantity
|
|
95
|
+
* (a storey with none contributes 0, i.e. an empty group — it must not be
|
|
96
|
+
* skipped or it would silently undercount). Falls back to the model's total
|
|
97
|
+
* slab floor area only when the storey-quantity sum is exactly 0 (no storey
|
|
98
|
+
* anywhere reports GFA), not per-storey.
|
|
99
|
+
*/
|
|
100
|
+
export function computeGrossFloorArea(bim, storeys, fallbackTotalFloorArea) {
|
|
101
|
+
const grossFloorArea = sumQuantity(bim, storeys.map(s => s.ref), ['GrossFloorArea']);
|
|
102
|
+
return grossFloorArea === 0 ? fallbackTotalFloorArea : grossFloorArea;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Per-material element count and summed Gross/NetVolume, sorted by element
|
|
106
|
+
* count descending (most common material first).
|
|
107
|
+
*/
|
|
108
|
+
export function computeMaterialSummary(bim, elements, round) {
|
|
109
|
+
const materialVolumes = new Map();
|
|
110
|
+
const materialCounts = new Map();
|
|
111
|
+
for (const e of elements) {
|
|
112
|
+
const mat = bim.materials(e.ref);
|
|
113
|
+
const first = mat?.materials?.[0];
|
|
114
|
+
const firstName = typeof first === 'string' ? first : first?.name;
|
|
115
|
+
const matName = firstName ?? mat?.name;
|
|
116
|
+
if (!matName)
|
|
117
|
+
continue;
|
|
118
|
+
materialCounts.set(matName, (materialCounts.get(matName) ?? 0) + 1);
|
|
119
|
+
const qsets = bim.quantities(e.ref);
|
|
120
|
+
for (const qset of qsets) {
|
|
121
|
+
for (const q of qset.quantities) {
|
|
122
|
+
if (q.name === 'GrossVolume' || q.name === 'NetVolume') {
|
|
123
|
+
materialVolumes.set(matName, (materialVolumes.get(matName) ?? 0) + (Number(q.value) || 0));
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return [...materialCounts.entries()]
|
|
130
|
+
.sort((a, b) => b[1] - a[1])
|
|
131
|
+
.map(([name, count]) => ({
|
|
132
|
+
name,
|
|
133
|
+
count,
|
|
134
|
+
volume: round(materialVolumes.get(name) ?? 0),
|
|
135
|
+
}));
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Model-health checks: how many GlobalIds are duplicated (a count of
|
|
139
|
+
* *offending IDs*, not of duplicate rows — three elements sharing one
|
|
140
|
+
* GlobalId count as 1 here, matching the original implementation) and how
|
|
141
|
+
* many elements have no name / an empty-string name.
|
|
142
|
+
*/
|
|
143
|
+
export function computeValidation(elements) {
|
|
144
|
+
const globalIds = elements.map(e => e.globalId).filter(Boolean);
|
|
145
|
+
const globalIdCounts = new Map();
|
|
146
|
+
for (const id of globalIds) {
|
|
147
|
+
globalIdCounts.set(id, (globalIdCounts.get(id) ?? 0) + 1);
|
|
148
|
+
}
|
|
149
|
+
const duplicateGlobalIds = [...globalIdCounts.entries()].filter(([, count]) => count > 1).length;
|
|
150
|
+
const unnamedElements = elements.filter(e => !e.name || e.name === '').length;
|
|
151
|
+
return { duplicateGlobalIds, unnamedElements };
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=stats-aggregation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats-aggregation.js","sourceRoot":"","sources":["../../src/commands/stats-aggregation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"AAsBA,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuJhE"}
|
package/dist/commands/stats.js
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { createHeadlessContext } from '../loader.js';
|
|
11
11
|
import { printJson, hasFlag, fatal } from '../output.js';
|
|
12
|
+
import { aggregateWalls, computeWindowWallRatio, computeGrossFloorArea, computeMaterialSummary, computeValidation, sumQuantity, } from './stats-aggregation.js';
|
|
12
13
|
export async function statsCommand(args) {
|
|
13
14
|
const filePath = args.find(a => !a.startsWith('-'));
|
|
14
15
|
if (!filePath)
|
|
@@ -44,127 +45,26 @@ export async function statsCommand(args) {
|
|
|
44
45
|
const walls = bim.query().byType('IfcWall').toArray();
|
|
45
46
|
const slabs = bim.query().byType('IfcSlab').toArray();
|
|
46
47
|
const windows = bim.query().byType('IfcWindow').toArray();
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
let wallArea = 0;
|
|
52
|
-
let wallVolume = 0;
|
|
53
|
-
const qsets = bim.quantities(w.ref);
|
|
54
|
-
for (const qset of qsets) {
|
|
55
|
-
for (const q of qset.quantities) {
|
|
56
|
-
if (q.name === 'GrossSideArea' || q.name === 'NetSideArea') {
|
|
57
|
-
wallArea = Number(q.value) || 0;
|
|
58
|
-
}
|
|
59
|
-
if (q.name === 'GrossVolume' || q.name === 'NetVolume') {
|
|
60
|
-
wallVolume = Number(q.value) || 0;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
totalWallArea += wallArea;
|
|
65
|
-
totalWallVolume += wallVolume;
|
|
66
|
-
// Check IsExternal from Pset_WallCommon
|
|
67
|
-
const isExternal = getPropertyValue(bim, w.ref, 'Pset_WallCommon', 'IsExternal');
|
|
68
|
-
if (isExternal === true || isExternal === 'TRUE' || isExternal === '.T.') {
|
|
69
|
-
exteriorWallArea += wallArea;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
let totalFloorArea = 0;
|
|
73
|
-
let totalSlabVolume = 0;
|
|
74
|
-
for (const s of slabs) {
|
|
75
|
-
const qsets = bim.quantities(s.ref);
|
|
76
|
-
for (const qset of qsets) {
|
|
77
|
-
for (const q of qset.quantities) {
|
|
78
|
-
if (q.name === 'GrossArea' || q.name === 'NetArea') {
|
|
79
|
-
totalFloorArea += Number(q.value) || 0;
|
|
80
|
-
}
|
|
81
|
-
if (q.name === 'GrossVolume' || q.name === 'NetVolume') {
|
|
82
|
-
totalSlabVolume += Number(q.value) || 0;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
let totalWindowArea = 0;
|
|
88
|
-
for (const w of windows) {
|
|
89
|
-
const qsets = bim.quantities(w.ref);
|
|
90
|
-
for (const qset of qsets) {
|
|
91
|
-
for (const q of qset.quantities) {
|
|
92
|
-
if (q.name === 'Area') {
|
|
93
|
-
totalWindowArea += Number(q.value) || 0;
|
|
94
|
-
break;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
48
|
+
const { totalWallArea, exteriorWallArea, totalWallVolume } = aggregateWalls(bim, walls);
|
|
49
|
+
const totalFloorArea = sumQuantity(bim, slabs.map((s) => s.ref), ['GrossArea', 'NetArea']);
|
|
50
|
+
const totalSlabVolume = sumQuantity(bim, slabs.map((s) => s.ref), ['GrossVolume', 'NetVolume']);
|
|
51
|
+
const totalWindowArea = sumQuantity(bim, windows.map((w) => w.ref), ['Area']);
|
|
99
52
|
// WWR uses exterior wall area if available, falls back to total wall area
|
|
100
|
-
const
|
|
101
|
-
const windowWallRatio = wwrBase > 0 ? (totalWindowArea / wwrBase) * 100 : 0;
|
|
53
|
+
const windowWallRatio = computeWindowWallRatio(totalWindowArea, exteriorWallArea, totalWallArea);
|
|
102
54
|
// GFA: sum GrossFloorArea from IfcBuildingStorey quantities, fallback to slab area
|
|
103
|
-
|
|
104
|
-
for (const storey of storeys) {
|
|
105
|
-
const qsets = bim.quantities(storey.ref);
|
|
106
|
-
for (const qset of qsets) {
|
|
107
|
-
for (const q of qset.quantities) {
|
|
108
|
-
if (q.name === 'GrossFloorArea') {
|
|
109
|
-
grossFloorArea += Number(q.value) || 0;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
if (grossFloorArea === 0)
|
|
115
|
-
grossFloorArea = totalFloorArea;
|
|
55
|
+
const grossFloorArea = computeGrossFloorArea(bim, storeys, totalFloorArea);
|
|
116
56
|
// Total volume across all elements
|
|
117
57
|
let totalVolume = totalWallVolume + totalSlabVolume;
|
|
118
58
|
const volTypes = ['IfcColumn', 'IfcBeam', 'IfcRoof', 'IfcStair', 'IfcFooting'];
|
|
119
59
|
for (const t of volTypes) {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
for (const qset of qsets) {
|
|
123
|
-
for (const q of qset.quantities) {
|
|
124
|
-
if (q.name === 'GrossVolume' || q.name === 'NetVolume') {
|
|
125
|
-
totalVolume += Number(q.value) || 0;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
60
|
+
const refs = bim.query().byType(t).toArray().map((e) => e.ref);
|
|
61
|
+
totalVolume += sumQuantity(bim, refs, ['GrossVolume', 'NetVolume']);
|
|
130
62
|
}
|
|
131
63
|
// Material summary with volumes
|
|
132
|
-
const materialVolumes = new Map();
|
|
133
|
-
const materialCounts = new Map();
|
|
134
64
|
const allBuildingElements = bim.query().toArray();
|
|
135
|
-
|
|
136
|
-
const mat = bim.materials(e.ref);
|
|
137
|
-
const first = mat?.materials?.[0];
|
|
138
|
-
const firstName = typeof first === 'string' ? first : first?.name;
|
|
139
|
-
const matName = firstName ?? mat?.name;
|
|
140
|
-
if (!matName)
|
|
141
|
-
continue;
|
|
142
|
-
materialCounts.set(matName, (materialCounts.get(matName) ?? 0) + 1);
|
|
143
|
-
const qsets = bim.quantities(e.ref);
|
|
144
|
-
for (const qset of qsets) {
|
|
145
|
-
for (const q of qset.quantities) {
|
|
146
|
-
if (q.name === 'GrossVolume' || q.name === 'NetVolume') {
|
|
147
|
-
materialVolumes.set(matName, (materialVolumes.get(matName) ?? 0) + (Number(q.value) || 0));
|
|
148
|
-
break;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
const materialSummary = [...materialCounts.entries()]
|
|
154
|
-
.sort((a, b) => b[1] - a[1])
|
|
155
|
-
.map(([name, count]) => ({
|
|
156
|
-
name,
|
|
157
|
-
count,
|
|
158
|
-
volume: round(materialVolumes.get(name) ?? 0),
|
|
159
|
-
}));
|
|
65
|
+
const materialSummary = computeMaterialSummary(bim, allBuildingElements, round);
|
|
160
66
|
// Validation checks
|
|
161
|
-
const
|
|
162
|
-
const globalIdCounts = new Map();
|
|
163
|
-
for (const id of globalIds) {
|
|
164
|
-
globalIdCounts.set(id, (globalIdCounts.get(id) ?? 0) + 1);
|
|
165
|
-
}
|
|
166
|
-
const duplicateGlobalIds = [...globalIdCounts.entries()].filter(([, count]) => count > 1).length;
|
|
167
|
-
const unnamedElements = allBuildingElements.filter((e) => !e.name || e.name === '').length;
|
|
67
|
+
const { duplicateGlobalIds, unnamedElements } = computeValidation(allBuildingElements);
|
|
168
68
|
const stats = {
|
|
169
69
|
building: buildingName,
|
|
170
70
|
schema,
|
|
@@ -253,20 +153,4 @@ export async function statsCommand(args) {
|
|
|
253
153
|
function round(n) {
|
|
254
154
|
return Math.round(n * 100) / 100;
|
|
255
155
|
}
|
|
256
|
-
function getPropertyValue(bim, ref, psetName, propName) {
|
|
257
|
-
try {
|
|
258
|
-
const psets = bim.properties(ref);
|
|
259
|
-
for (const pset of psets) {
|
|
260
|
-
if (pset.name === psetName) {
|
|
261
|
-
const prop = pset.properties?.find((p) => p.name === propName);
|
|
262
|
-
if (prop)
|
|
263
|
-
return prop.value;
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
catch {
|
|
268
|
-
// Property not available
|
|
269
|
-
}
|
|
270
|
-
return undefined;
|
|
271
|
-
}
|
|
272
156
|
//# sourceMappingURL=stats.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,35 @@ interface DanglingReference {
|
|
|
21
21
|
/** The missing expressId being referenced. */
|
|
22
22
|
target: number;
|
|
23
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* The building-element types the `named-elements` and `quantity-completeness`
|
|
26
|
+
* rules scan, as base types only.
|
|
27
|
+
*
|
|
28
|
+
* Which base types appear here is a **policy** choice and deliberately narrow:
|
|
29
|
+
* neither rule claims to cover every `IfcProduct`, and widening either list is
|
|
30
|
+
* a decision about what the report should say, not a bug fix. The two lists are
|
|
31
|
+
* not identical — `IfcRailing` is scanned for a missing Name but not for a
|
|
32
|
+
* missing quantity set — and that asymmetry is preserved here unchanged.
|
|
33
|
+
*
|
|
34
|
+
* What is *not* a policy choice is whether a listed type's own concrete
|
|
35
|
+
* subtypes are scanned. `entityIndex.byType` is keyed by the raw STEP type
|
|
36
|
+
* name, so an `IfcWallStandardCase` sits in its own bucket; a rule that says it
|
|
37
|
+
* looks at walls and reads only `IFCWALL` walks straight past it. That is why
|
|
38
|
+
* the scanned lists below are `expandTypes(...)` of these bases rather than
|
|
39
|
+
* hand-written: the quantity list used to spell six subtypes out by hand and
|
|
40
|
+
* had drifted four short (`IfcWallElementedCase`, `IfcSlabElementedCase`,
|
|
41
|
+
* `IfcMemberStandardCase`, `IfcPlateStandardCase`), and the naming list spelled
|
|
42
|
+
* out none of the ten at all. `expandTypes` is the same expansion every
|
|
43
|
+
* `byType()` backend uses, so these rules and a `byType('IfcWall')` query
|
|
44
|
+
* cannot disagree about what counts as a wall.
|
|
45
|
+
*/
|
|
46
|
+
export declare const NAMED_ELEMENT_BASE_TYPES: readonly string[];
|
|
47
|
+
/** @see NAMED_ELEMENT_BASE_TYPES */
|
|
48
|
+
export declare const QUANTIFIABLE_BASE_TYPES: readonly string[];
|
|
49
|
+
/** `NAMED_ELEMENT_BASE_TYPES` plus every subtype the schema declares under one. */
|
|
50
|
+
export declare const NAMED_ELEMENT_TYPES: readonly string[];
|
|
51
|
+
/** `QUANTIFIABLE_BASE_TYPES` plus every subtype the schema declares under one. */
|
|
52
|
+
export declare const QUANTIFIABLE_TYPES: readonly string[];
|
|
24
53
|
/**
|
|
25
54
|
* Walk every indexed entity record and collect `#N` references whose target
|
|
26
55
|
* does not exist in the file (rule `reference-integrity`). Uses the parsed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAmBA,OAAO,
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAgE,KAAK,YAAY,EAAuC,MAAM,kBAAkB,CAAC;AAExJ,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gGAAgG;IAChG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,4EAA4E;AAC5E,UAAU,iBAAiB;IACzB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,4GAA4G;IAC5G,cAAc,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAC2D,CAAC;AAElH,oCAAoC;AACpC,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAC8C,CAAC;AAEpG,mFAAmF;AACnF,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAA+C,CAAC;AAEjG,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAA8C,CAAC;AAoG/F;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,YAAY,GAAG,iBAAiB,EAAE,CAmBlF;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,YAAY,GAAG,eAAe,EAAE,CA6I9E;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmCnE"}
|
|
@@ -15,7 +15,38 @@
|
|
|
15
15
|
import { loadIfcFile } from '../loader.js';
|
|
16
16
|
import { hasFlag, fatal, printJson } from '../output.js';
|
|
17
17
|
import { EntityNode } from '@ifc-lite/query';
|
|
18
|
-
import { getInheritanceChainAcrossSchemas, asSourceBytes } from '@ifc-lite/parser';
|
|
18
|
+
import { expandTypes, getInheritanceChainAcrossSchemas, asSourceBytes } from '@ifc-lite/parser';
|
|
19
|
+
/**
|
|
20
|
+
* The building-element types the `named-elements` and `quantity-completeness`
|
|
21
|
+
* rules scan, as base types only.
|
|
22
|
+
*
|
|
23
|
+
* Which base types appear here is a **policy** choice and deliberately narrow:
|
|
24
|
+
* neither rule claims to cover every `IfcProduct`, and widening either list is
|
|
25
|
+
* a decision about what the report should say, not a bug fix. The two lists are
|
|
26
|
+
* not identical — `IfcRailing` is scanned for a missing Name but not for a
|
|
27
|
+
* missing quantity set — and that asymmetry is preserved here unchanged.
|
|
28
|
+
*
|
|
29
|
+
* What is *not* a policy choice is whether a listed type's own concrete
|
|
30
|
+
* subtypes are scanned. `entityIndex.byType` is keyed by the raw STEP type
|
|
31
|
+
* name, so an `IfcWallStandardCase` sits in its own bucket; a rule that says it
|
|
32
|
+
* looks at walls and reads only `IFCWALL` walks straight past it. That is why
|
|
33
|
+
* the scanned lists below are `expandTypes(...)` of these bases rather than
|
|
34
|
+
* hand-written: the quantity list used to spell six subtypes out by hand and
|
|
35
|
+
* had drifted four short (`IfcWallElementedCase`, `IfcSlabElementedCase`,
|
|
36
|
+
* `IfcMemberStandardCase`, `IfcPlateStandardCase`), and the naming list spelled
|
|
37
|
+
* out none of the ten at all. `expandTypes` is the same expansion every
|
|
38
|
+
* `byType()` backend uses, so these rules and a `byType('IfcWall')` query
|
|
39
|
+
* cannot disagree about what counts as a wall.
|
|
40
|
+
*/
|
|
41
|
+
export const NAMED_ELEMENT_BASE_TYPES = ['IFCWALL', 'IFCSLAB', 'IFCCOLUMN', 'IFCBEAM',
|
|
42
|
+
'IFCDOOR', 'IFCWINDOW', 'IFCSTAIR', 'IFCROOF', 'IFCSPACE', 'IFCRAILING', 'IFCMEMBER', 'IFCPLATE', 'IFCFOOTING'];
|
|
43
|
+
/** @see NAMED_ELEMENT_BASE_TYPES */
|
|
44
|
+
export const QUANTIFIABLE_BASE_TYPES = ['IFCWALL', 'IFCSLAB', 'IFCCOLUMN', 'IFCBEAM',
|
|
45
|
+
'IFCDOOR', 'IFCWINDOW', 'IFCSTAIR', 'IFCROOF', 'IFCSPACE', 'IFCMEMBER', 'IFCPLATE', 'IFCFOOTING'];
|
|
46
|
+
/** `NAMED_ELEMENT_BASE_TYPES` plus every subtype the schema declares under one. */
|
|
47
|
+
export const NAMED_ELEMENT_TYPES = expandTypes([...NAMED_ELEMENT_BASE_TYPES]);
|
|
48
|
+
/** `QUANTIFIABLE_BASE_TYPES` plus every subtype the schema declares under one. */
|
|
49
|
+
export const QUANTIFIABLE_TYPES = expandTypes([...QUANTIFIABLE_BASE_TYPES]);
|
|
19
50
|
/** Cap on individually-reported dangling references; the remainder is rolled into one summary issue. */
|
|
20
51
|
const DANGLING_REF_ISSUE_CAP = 50;
|
|
21
52
|
const CH_QUOTE = 0x27; // '
|
|
@@ -213,10 +244,8 @@ export function computeValidationIssues(store) {
|
|
|
213
244
|
});
|
|
214
245
|
}
|
|
215
246
|
// 4. Check for unnamed elements
|
|
216
|
-
const productTypes = ['IFCWALL', 'IFCSLAB', 'IFCCOLUMN', 'IFCBEAM', 'IFCDOOR', 'IFCWINDOW',
|
|
217
|
-
'IFCSTAIR', 'IFCROOF', 'IFCSPACE', 'IFCRAILING', 'IFCMEMBER', 'IFCPLATE', 'IFCFOOTING'];
|
|
218
247
|
let unnamedCount = 0;
|
|
219
|
-
for (const pt of
|
|
248
|
+
for (const pt of NAMED_ELEMENT_TYPES) {
|
|
220
249
|
const ids = store.entityIndex.byType.get(pt) ?? [];
|
|
221
250
|
for (const id of ids) {
|
|
222
251
|
const node = new EntityNode(store, id);
|
|
@@ -232,13 +261,9 @@ export function computeValidationIssues(store) {
|
|
|
232
261
|
issues.push({ severity: 'warning', rule: 'schema-version', message: 'Could not determine IFC schema version' });
|
|
233
262
|
}
|
|
234
263
|
// 6. Quantity completeness — check if product entities have quantity sets
|
|
235
|
-
const quantifiableTypes = ['IFCWALL', 'IFCSLAB', 'IFCCOLUMN', 'IFCBEAM', 'IFCDOOR', 'IFCWINDOW',
|
|
236
|
-
'IFCSTAIR', 'IFCROOF', 'IFCSPACE', 'IFCMEMBER', 'IFCPLATE', 'IFCFOOTING',
|
|
237
|
-
'IFCWALLSTANDARDCASE', 'IFCSLABSTANDARDCASE', 'IFCBEAMSTANDARDCASE',
|
|
238
|
-
'IFCCOLUMNSTANDARDCASE', 'IFCDOORSTANDARDCASE', 'IFCWINDOWSTANDARDCASE'];
|
|
239
264
|
let withQuantities = 0;
|
|
240
265
|
let withoutQuantities = 0;
|
|
241
|
-
for (const qt of
|
|
266
|
+
for (const qt of QUANTIFIABLE_TYPES) {
|
|
242
267
|
const ids = store.entityIndex.byType.get(qt) ?? [];
|
|
243
268
|
for (const id of ids) {
|
|
244
269
|
const node = new EntityNode(store, id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ifc-lite/cli",
|
|
3
|
-
"version": "0.25.
|
|
3
|
+
"version": "0.25.2",
|
|
4
4
|
"description": "CLI toolkit for IFC files — query, validate, export, create, and script BIM data",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -20,25 +20,25 @@
|
|
|
20
20
|
"README.md"
|
|
21
21
|
],
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@ifc-lite/clash": "^1.9.1",
|
|
24
|
-
"@ifc-lite/create": "^2.2.0",
|
|
25
|
-
"@ifc-lite/data": "^3.4.1",
|
|
26
23
|
"@ifc-lite/bcf": "^2.0.0",
|
|
24
|
+
"@ifc-lite/clash": "^1.9.2",
|
|
25
|
+
"@ifc-lite/create": "^2.2.0",
|
|
26
|
+
"@ifc-lite/data": "^3.5.0",
|
|
27
27
|
"@ifc-lite/diff": "^0.7.0",
|
|
28
|
+
"@ifc-lite/export": "^3.0.1",
|
|
29
|
+
"@ifc-lite/geometry": "^4.1.0",
|
|
28
30
|
"@ifc-lite/extensions": "^0.5.0",
|
|
29
|
-
"@ifc-lite/
|
|
30
|
-
"@ifc-lite/ids": "^1.15.49",
|
|
31
|
+
"@ifc-lite/ifcx": "^3.0.1",
|
|
31
32
|
"@ifc-lite/merge": "^0.4.4",
|
|
32
|
-
"@ifc-lite/
|
|
33
|
+
"@ifc-lite/ids": "^1.15.51",
|
|
33
34
|
"@ifc-lite/mutations": "^1.27.0",
|
|
34
|
-
"@ifc-lite/geometry": "^4.0.0",
|
|
35
|
-
"@ifc-lite/ifcx": "^3.0.0",
|
|
36
|
-
"@ifc-lite/parser": "^4.3.0",
|
|
37
35
|
"@ifc-lite/sandbox": "^2.2.1",
|
|
36
|
+
"@ifc-lite/parser": "^4.3.2",
|
|
38
37
|
"@ifc-lite/query": "^2.0.0",
|
|
39
38
|
"@ifc-lite/sdk": "^3.0.0",
|
|
40
|
-
"@ifc-lite/
|
|
41
|
-
"@ifc-lite/
|
|
39
|
+
"@ifc-lite/viewer-core": "^0.2.14",
|
|
40
|
+
"@ifc-lite/mcp": "^0.12.0",
|
|
41
|
+
"@ifc-lite/wasm": "^6.1.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@types/node": "^26.2.0",
|