@ifc-lite/cli 0.25.2 → 0.27.0
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/anonymize.d.ts +2 -0
- package/dist/commands/anonymize.d.ts.map +1 -0
- package/dist/commands/anonymize.js +221 -0
- package/dist/commands/anonymize.js.map +1 -0
- package/dist/commands/ask.d.ts +8 -0
- package/dist/commands/ask.d.ts.map +1 -1
- package/dist/commands/ask.js +10 -9
- package/dist/commands/ask.js.map +1 -1
- package/dist/commands/bsdd.d.ts.map +1 -1
- package/dist/commands/bsdd.js +49 -13
- package/dist/commands/bsdd.js.map +1 -1
- package/dist/commands/diff-classification-label.d.ts +12 -0
- package/dist/commands/diff-classification-label.d.ts.map +1 -0
- package/dist/commands/diff-classification-label.js +20 -0
- package/dist/commands/diff-classification-label.js.map +1 -0
- package/dist/commands/diff-engine.d.ts.map +1 -1
- package/dist/commands/diff-engine.js +33 -11
- package/dist/commands/diff-engine.js.map +1 -1
- package/dist/commands/diff-test-helpers.d.ts +12 -0
- package/dist/commands/diff-test-helpers.d.ts.map +1 -1
- package/dist/commands/diff-test-helpers.js +68 -0
- package/dist/commands/diff-test-helpers.js.map +1 -1
- package/dist/commands/diff-unit-scale-fixtures.d.ts +34 -0
- package/dist/commands/diff-unit-scale-fixtures.d.ts.map +1 -0
- package/dist/commands/diff-unit-scale-fixtures.js +94 -0
- package/dist/commands/diff-unit-scale-fixtures.js.map +1 -0
- package/dist/commands/export.d.ts +11 -0
- package/dist/commands/export.d.ts.map +1 -1
- package/dist/commands/export.js +9 -14
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/merge.d.ts.map +1 -1
- package/dist/commands/merge.js +8 -0
- package/dist/commands/merge.js.map +1 -1
- package/dist/commands/query-aggregation.d.ts +27 -4
- package/dist/commands/query-aggregation.d.ts.map +1 -1
- package/dist/commands/query-aggregation.js +67 -6
- package/dist/commands/query-aggregation.js.map +1 -1
- package/dist/commands/query-output.d.ts +7 -0
- package/dist/commands/query-output.d.ts.map +1 -1
- package/dist/commands/query-output.js +63 -27
- package/dist/commands/query-output.js.map +1 -1
- package/dist/commands/query-storey.d.ts +24 -0
- package/dist/commands/query-storey.d.ts.map +1 -0
- package/dist/commands/query-storey.js +71 -0
- package/dist/commands/query-storey.js.map +1 -0
- package/dist/commands/query.d.ts +2 -25
- package/dist/commands/query.d.ts.map +1 -1
- package/dist/commands/query.js +39 -158
- package/dist/commands/query.js.map +1 -1
- package/dist/commands/schedule-aggregate.d.ts +51 -0
- package/dist/commands/schedule-aggregate.d.ts.map +1 -0
- package/dist/commands/schedule-aggregate.js +121 -0
- package/dist/commands/schedule-aggregate.js.map +1 -0
- package/dist/commands/schedule-columns.d.ts +15 -0
- package/dist/commands/schedule-columns.d.ts.map +1 -0
- package/dist/commands/schedule-columns.js +63 -0
- package/dist/commands/schedule-columns.js.map +1 -0
- package/dist/commands/schedule-group.d.ts +65 -0
- package/dist/commands/schedule-group.d.ts.map +1 -0
- package/dist/commands/schedule-group.js +0 -0
- package/dist/commands/schedule-group.js.map +1 -0
- package/dist/commands/schedule-presets.d.ts +21 -0
- package/dist/commands/schedule-presets.d.ts.map +1 -0
- package/dist/commands/schedule-presets.js +62 -0
- package/dist/commands/schedule-presets.js.map +1 -0
- package/dist/commands/schedule-render-html.d.ts +13 -0
- package/dist/commands/schedule-render-html.d.ts.map +1 -0
- package/dist/commands/schedule-render-html.js +100 -0
- package/dist/commands/schedule-render-html.js.map +1 -0
- package/dist/commands/schedule-render-md.d.ts +12 -0
- package/dist/commands/schedule-render-md.d.ts.map +1 -0
- package/dist/commands/schedule-render-md.js +77 -0
- package/dist/commands/schedule-render-md.js.map +1 -0
- package/dist/commands/schedule-render.d.ts +51 -0
- package/dist/commands/schedule-render.d.ts.map +1 -0
- package/dist/commands/schedule-render.js +205 -0
- package/dist/commands/schedule-render.js.map +1 -0
- package/dist/commands/schedule-spec.d.ts +29 -0
- package/dist/commands/schedule-spec.d.ts.map +1 -0
- package/dist/commands/schedule-spec.js +111 -0
- package/dist/commands/schedule-spec.js.map +1 -0
- package/dist/commands/schedule.d.ts +23 -0
- package/dist/commands/schedule.d.ts.map +1 -0
- package/dist/commands/schedule.js +249 -0
- package/dist/commands/schedule.js.map +1 -0
- package/dist/commands/schema.d.ts.map +1 -1
- package/dist/commands/schema.js +192 -17
- package/dist/commands/schema.js.map +1 -1
- package/dist/commands/stats-aggregation.d.ts +31 -6
- package/dist/commands/stats-aggregation.d.ts.map +1 -1
- package/dist/commands/stats-aggregation.js +79 -11
- package/dist/commands/stats-aggregation.js.map +1 -1
- package/dist/commands/stats.d.ts.map +1 -1
- package/dist/commands/stats.js +4 -4
- package/dist/commands/stats.js.map +1 -1
- package/dist/commands/validate.d.ts +7 -4
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +9 -6
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/where-filter.d.ts +42 -0
- package/dist/commands/where-filter.d.ts.map +1 -0
- package/dist/commands/where-filter.js +88 -0
- package/dist/commands/where-filter.js.map +1 -0
- package/dist/energy-export.d.ts.map +1 -1
- package/dist/energy-export.js +12 -2
- package/dist/energy-export.js.map +1 -1
- package/dist/geometry-report.d.ts.map +1 -1
- package/dist/geometry-report.js +15 -3
- package/dist/geometry-report.js.map +1 -1
- package/dist/headless-backend.d.ts +20 -5
- package/dist/headless-backend.d.ts.map +1 -1
- package/dist/headless-backend.js +131 -90
- package/dist/headless-backend.js.map +1 -1
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -1
- package/dist/output.d.ts +13 -0
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +21 -0
- package/dist/output.js.map +1 -1
- package/dist/property-filter-match.d.ts +12 -0
- package/dist/property-filter-match.d.ts.map +1 -0
- package/dist/property-filter-match.js +17 -0
- package/dist/property-filter-match.js.map +1 -0
- package/dist/query-overlay-relations.d.ts +29 -0
- package/dist/query-overlay-relations.d.ts.map +1 -0
- package/dist/query-overlay-relations.js +88 -0
- package/dist/query-overlay-relations.js.map +1 -0
- package/dist/query-overlay.d.ts +44 -0
- package/dist/query-overlay.d.ts.map +1 -0
- package/dist/query-overlay.js +100 -0
- package/dist/query-overlay.js.map +1 -0
- package/package.json +22 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-aggregation.d.ts","sourceRoot":"","sources":["../../src/commands/query-aggregation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"query-aggregation.d.ts","sourceRoot":"","sources":["../../src/commands/query-aggregation.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CA2CrE,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmBxF;AAED,qGAAqG;AACrG,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAuBrF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CA4ClG"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Aggregation utilities for query command — quantity lookup, sorting,
|
|
6
6
|
* and standard QTO maps.
|
|
7
7
|
*/
|
|
8
|
+
import { findPropertyInSets, findQuantityInSets } from '@ifc-lite/query';
|
|
8
9
|
/**
|
|
9
10
|
* Standard IFC quantity set definitions — maps entity type to its standard Qto_ sets
|
|
10
11
|
* and the quantities within each set. Used for disambiguation warnings.
|
|
@@ -60,12 +61,74 @@ export function getQuantityValue(bim, ref, quantityName) {
|
|
|
60
61
|
const qsets = bim.quantities(ref);
|
|
61
62
|
for (const qset of qsets) {
|
|
62
63
|
for (const q of qset.quantities) {
|
|
63
|
-
if (q.name === quantityName)
|
|
64
|
-
|
|
64
|
+
if (q.name === quantityName) {
|
|
65
|
+
// `Number(x) || 0` only catches NaN (an unparseable value): an
|
|
66
|
+
// extreme STEP REAL literal (e.g. 1.0E400) parses to Infinity
|
|
67
|
+
// without erroring at the decode boundary, and `Number(Infinity) ||
|
|
68
|
+
// 0` stays Infinity because Infinity is truthy. Left uncaught, that
|
|
69
|
+
// one entity poisons every downstream sum/avg/min/max over the
|
|
70
|
+
// whole result set. Number.isFinite catches NaN and both infinities
|
|
71
|
+
// alike, so a present-but-non-finite value is treated the same as
|
|
72
|
+
// the existing present-but-unparseable case: substituted with 0.
|
|
73
|
+
const n = Number(q.value);
|
|
74
|
+
return Number.isFinite(n) ? n : 0;
|
|
75
|
+
}
|
|
65
76
|
}
|
|
66
77
|
}
|
|
67
78
|
return null;
|
|
68
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Reduce a list of numbers to a single sum/avg/min/max, skipping every
|
|
82
|
+
* non-finite entry (`Infinity`, `-Infinity`, `NaN`) so one poisoned value can
|
|
83
|
+
* neither dominate a min/max nor turn a sum into `NaN`. Returns `null` when no
|
|
84
|
+
* finite value was seen (an empty list, or one that is all non-finite), which
|
|
85
|
+
* the caller renders as a blank cell / `null` rather than a fabricated `0`.
|
|
86
|
+
*
|
|
87
|
+
* This is the single numeric core `query --group-by`'s aggregation mode
|
|
88
|
+
* (`outputGroupBy` in `query-output.ts`) and `schedule --subtotals`
|
|
89
|
+
* (`schedule-aggregate.ts`) share, so the two cannot drift from each other.
|
|
90
|
+
*
|
|
91
|
+
* It is NOT what protects the flat, ungrouped `query --sum/--avg/--min/--max`
|
|
92
|
+
* (`outputSum`/`outputAggregation`) from a poisoned value — those read
|
|
93
|
+
* straight from `getQuantityValue`, which already substitutes `0` for a
|
|
94
|
+
* non-finite value at the source, before this function (or its caller) ever
|
|
95
|
+
* sees it. `outputGroupBy` calls `getQuantityValue` too, so by the time its
|
|
96
|
+
* values reach `aggregateFinite` here they have ALREADY been zeroed, not
|
|
97
|
+
* dropped. `schedule-aggregate.ts`'s `computeValues` pre-filters the same
|
|
98
|
+
* way with its own `cellToNumber` (also `Number.isFinite`-guarded) before
|
|
99
|
+
* ever building the array passed in here. In both of today's call sites
|
|
100
|
+
* this function's own `!Number.isFinite(v)` guard is consequently
|
|
101
|
+
* unreachable in practice — a defence in depth, exercised directly by this
|
|
102
|
+
* function's own unit tests, not currently by either caller's inputs.
|
|
103
|
+
*/
|
|
104
|
+
export function aggregateFinite(values, mode) {
|
|
105
|
+
let sum = 0;
|
|
106
|
+
let count = 0;
|
|
107
|
+
let min = Infinity;
|
|
108
|
+
let max = -Infinity;
|
|
109
|
+
for (const v of values) {
|
|
110
|
+
if (!Number.isFinite(v))
|
|
111
|
+
continue;
|
|
112
|
+
sum += v;
|
|
113
|
+
count++;
|
|
114
|
+
if (v < min)
|
|
115
|
+
min = v;
|
|
116
|
+
if (v > max)
|
|
117
|
+
max = v;
|
|
118
|
+
}
|
|
119
|
+
if (count === 0)
|
|
120
|
+
return null;
|
|
121
|
+
switch (mode) {
|
|
122
|
+
case 'sum':
|
|
123
|
+
return sum;
|
|
124
|
+
case 'avg':
|
|
125
|
+
return sum / count;
|
|
126
|
+
case 'min':
|
|
127
|
+
return min;
|
|
128
|
+
case 'max':
|
|
129
|
+
return max;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
69
132
|
/**
|
|
70
133
|
* F7: Sort entities by quantity, attribute, or property value.
|
|
71
134
|
* Supports: quantity names, entity attributes (name/type/globalId), PsetName.PropName
|
|
@@ -92,14 +155,12 @@ export function sortEntities(entities, sortBy, descending, bim) {
|
|
|
92
155
|
const [psetName, propName] = sortBy.split('.', 2);
|
|
93
156
|
const getVal = (e) => {
|
|
94
157
|
const props = bim.properties(e.ref);
|
|
95
|
-
const
|
|
96
|
-
const prop = pset?.properties?.find((p) => p.name === propName);
|
|
158
|
+
const prop = findPropertyInSets(props, psetName, propName);
|
|
97
159
|
if (prop?.value != null)
|
|
98
160
|
return prop.value;
|
|
99
161
|
// Also check quantity sets
|
|
100
162
|
const qsets = bim.quantities(e.ref);
|
|
101
|
-
const
|
|
102
|
-
const qty = qset?.quantities?.find((q) => q.name === propName);
|
|
163
|
+
const qty = findQuantityInSets(qsets, psetName, propName);
|
|
103
164
|
return qty?.value ?? null;
|
|
104
165
|
};
|
|
105
166
|
valA = getVal(a);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-aggregation.js","sourceRoot":"","sources":["../../src/commands/query-aggregation.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;GAGG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA6C;IACxE,OAAO,EAAE;QACP,sBAAsB,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,CAAC;KAC5J;IACD,OAAO,EAAE;QACP,sBAAsB,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,CAAC;KACtH;IACD,OAAO,EAAE;QACP,sBAAsB,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC;KACjE;IACD,SAAS,EAAE;QACT,wBAAwB,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC;KACnE;IACD,SAAS,EAAE;QACT,wBAAwB,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC;KAC3K;IACD,OAAO,EAAE;QACP,sBAAsB,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC;KACzK;IACD,QAAQ,EAAE;QACR,uBAAuB,EAAE,CAAC,QAAQ,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,CAAC;KACtP;IACD,OAAO,EAAE;QACP,sBAAsB,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,eAAe,CAAC;KAClE;IACD,QAAQ,EAAE;QACR,uBAAuB,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,CAAC;KAChE;IACD,UAAU,EAAE;QACV,yBAAyB,EAAE,CAAC,QAAQ,CAAC;KACtC;IACD,SAAS,EAAE;QACT,wBAAwB,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC;KAC3K;IACD,QAAQ,EAAE;QACR,uBAAuB,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC;KAC1I;IACD,WAAW,EAAE;QACX,0BAA0B,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC;KACxE;IACD,UAAU,EAAE;QACV,yBAAyB,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC;KACzJ;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAQ,EAAE,GAAQ,EAAE,YAAoB;IACvE,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;
|
|
1
|
+
{"version":3,"file":"query-aggregation.js","sourceRoot":"","sources":["../../src/commands/query-aggregation.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,5 +7,12 @@ export declare function outputSum(entities: any[], quantityName: string, bim: an
|
|
|
7
7
|
*/
|
|
8
8
|
export declare function outputAggregation(entities: any[], quantityName: string, mode: 'avg' | 'min' | 'max', bim: any, jsonOutput: boolean): void;
|
|
9
9
|
export declare function outputGroupBy(entities: any[], groupByKey: string, sumQuantity: string | undefined, bim: any, jsonOutput: boolean, groupLimit?: number, aggMode?: 'sum' | 'avg' | 'min' | 'max'): void;
|
|
10
|
+
/**
|
|
11
|
+
* B6/F8: `--unique` distinct-value counts for `material`, `storey`, `type`,
|
|
12
|
+
* or a `PsetName.PropName` path. Pulled out of `queryCommand` so the
|
|
13
|
+
* blank/whitespace-name handling (`firstNonBlank`) is unit-testable without
|
|
14
|
+
* a fixture model.
|
|
15
|
+
*/
|
|
16
|
+
export declare function computeUniqueValues(entities: any[], uniqueProp: string, bim: any): Map<string, number>;
|
|
10
17
|
export declare function outputEntities(entities: any[], args: string[], bim: any, jsonOutput: boolean): void;
|
|
11
18
|
//# sourceMappingURL=query-output.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-output.d.ts","sourceRoot":"","sources":["../../src/commands/query-output.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"query-output.d.ts","sourceRoot":"","sources":["../../src/commands/query-output.ts"],"names":[],"mappings":"AAaA,mCAAmC;AACnC,eAAO,MAAM,mBAAmB,UAAiC,CAAC;AAElE,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI,CAMpE;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI,CAqGpG;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI,CAwDzI;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,CA4FrM;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAoCtG;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI,CAyCnG"}
|
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
* Output formatting functions for the query command — count, sum,
|
|
6
6
|
* aggregation, group-by, table rendering, and JSON serialization.
|
|
7
7
|
*/
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
8
|
+
import { findPropertyInSets } from '@ifc-lite/query';
|
|
9
|
+
import { printJson, formatTable, hasFlag, fatal, firstNonBlank } from '../output.js';
|
|
10
|
+
import { getQuantityValue, aggregateFinite } from './query-aggregation.js';
|
|
10
11
|
/** Valid built-in grouping keys */
|
|
11
12
|
export const VALID_GROUP_BY_KEYS = ['type', 'storey', 'material'];
|
|
12
13
|
export function outputCount(count, jsonOutput) {
|
|
@@ -37,7 +38,12 @@ export function outputSum(entities, quantityName, bim, jsonOutput) {
|
|
|
37
38
|
allQuantityNames.set(key, { qsetName: qset.name, count: 1 });
|
|
38
39
|
}
|
|
39
40
|
if (q.name === quantityName) {
|
|
40
|
-
|
|
41
|
+
// Mirrors getQuantityValue in query-aggregation.ts: `Number(x) ||
|
|
42
|
+
// 0` lets a present-but-Infinite value through (Infinity is
|
|
43
|
+
// truthy), which would poison `total` for every other entity in
|
|
44
|
+
// the sum. Number.isFinite catches NaN and both infinities.
|
|
45
|
+
const n = Number(q.value);
|
|
46
|
+
total += Number.isFinite(n) ? n : 0;
|
|
41
47
|
matched++;
|
|
42
48
|
matchedQsets.add(qset.name);
|
|
43
49
|
}
|
|
@@ -199,18 +205,19 @@ export function outputGroupBy(entities, groupByKey, sumQuantity, bim, jsonOutput
|
|
|
199
205
|
}
|
|
200
206
|
else if (groupByKey === 'storey') {
|
|
201
207
|
const storey = bim.storey(e.ref);
|
|
202
|
-
groupValue = storey?.name ?? '(no storey)';
|
|
208
|
+
groupValue = firstNonBlank(storey?.name) ?? '(no storey)';
|
|
203
209
|
}
|
|
204
210
|
else if (groupByKey === 'material') {
|
|
205
211
|
const mat = bim.materials(e.ref);
|
|
206
|
-
|
|
212
|
+
const first = mat?.materials?.[0];
|
|
213
|
+
const firstMatName = typeof first === 'string' ? first : first?.name;
|
|
214
|
+
groupValue = firstNonBlank(firstMatName, mat?.name) ?? '(no material)';
|
|
207
215
|
}
|
|
208
216
|
else if (groupByKey.includes('.')) {
|
|
209
217
|
// PsetName.PropName
|
|
210
218
|
const [psetName, propName] = groupByKey.split('.', 2);
|
|
211
219
|
const props = bim.properties(e.ref);
|
|
212
|
-
const
|
|
213
|
-
const prop = pset?.properties?.find((p) => p.name === propName);
|
|
220
|
+
const prop = findPropertyInSets(props, psetName, propName);
|
|
214
221
|
groupValue = prop?.value != null ? String(prop.value) : `(no ${propName})`;
|
|
215
222
|
}
|
|
216
223
|
else {
|
|
@@ -229,29 +236,14 @@ export function outputGroupBy(entities, groupByKey, sumQuantity, bim, jsonOutput
|
|
|
229
236
|
const groupAgg = new Map();
|
|
230
237
|
if (sumQuantity) {
|
|
231
238
|
for (const [key, groupEntities] of groups) {
|
|
232
|
-
|
|
233
|
-
let count = 0;
|
|
234
|
-
let minVal = Infinity;
|
|
235
|
-
let maxVal = -Infinity;
|
|
239
|
+
const vals = [];
|
|
236
240
|
for (const e of groupEntities) {
|
|
237
241
|
const val = getQuantityValue(bim, e.ref, sumQuantity);
|
|
238
|
-
if (val !== null)
|
|
239
|
-
|
|
240
|
-
count++;
|
|
241
|
-
if (val < minVal)
|
|
242
|
-
minVal = val;
|
|
243
|
-
if (val > maxVal)
|
|
244
|
-
maxVal = val;
|
|
245
|
-
}
|
|
242
|
+
if (val !== null)
|
|
243
|
+
vals.push(val);
|
|
246
244
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
else if (mode === 'min')
|
|
250
|
-
groupAgg.set(key, count > 0 ? minVal : 0);
|
|
251
|
-
else if (mode === 'max')
|
|
252
|
-
groupAgg.set(key, count > 0 ? maxVal : 0);
|
|
253
|
-
else
|
|
254
|
-
groupAgg.set(key, sum);
|
|
245
|
+
// Shared finite-guarded reduction; an empty group stays 0 here.
|
|
246
|
+
groupAgg.set(key, aggregateFinite(vals, mode) ?? 0);
|
|
255
247
|
}
|
|
256
248
|
}
|
|
257
249
|
const modeLabel = mode === 'sum' ? 'sum' : mode;
|
|
@@ -299,6 +291,50 @@ export function outputGroupBy(entities, groupByKey, sumQuantity, bim, jsonOutput
|
|
|
299
291
|
}
|
|
300
292
|
}
|
|
301
293
|
}
|
|
294
|
+
/**
|
|
295
|
+
* B6/F8: `--unique` distinct-value counts for `material`, `storey`, `type`,
|
|
296
|
+
* or a `PsetName.PropName` path. Pulled out of `queryCommand` so the
|
|
297
|
+
* blank/whitespace-name handling (`firstNonBlank`) is unit-testable without
|
|
298
|
+
* a fixture model.
|
|
299
|
+
*/
|
|
300
|
+
export function computeUniqueValues(entities, uniqueProp, bim) {
|
|
301
|
+
const valueCounts = new Map();
|
|
302
|
+
if (uniqueProp === 'material') {
|
|
303
|
+
for (const e of entities) {
|
|
304
|
+
const mat = bim.materials(e.ref);
|
|
305
|
+
const first = mat?.materials?.[0];
|
|
306
|
+
const firstName = typeof first === 'string' ? first : first?.name;
|
|
307
|
+
const val = firstNonBlank(firstName, mat?.name) ?? '(no material)';
|
|
308
|
+
valueCounts.set(val, (valueCounts.get(val) ?? 0) + 1);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
else if (uniqueProp === 'storey') {
|
|
312
|
+
for (const e of entities) {
|
|
313
|
+
const storey = bim.storey(e.ref);
|
|
314
|
+
const val = firstNonBlank(storey?.name) ?? '(no storey)';
|
|
315
|
+
valueCounts.set(val, (valueCounts.get(val) ?? 0) + 1);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
else if (uniqueProp === 'type') {
|
|
319
|
+
for (const e of entities) {
|
|
320
|
+
valueCounts.set(e.type, (valueCounts.get(e.type) ?? 0) + 1);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
const dotIdx = uniqueProp.indexOf('.');
|
|
325
|
+
if (dotIdx <= 0)
|
|
326
|
+
fatal(`Invalid --unique path: "${uniqueProp}". Expected: PsetName.PropName, or one of: material, storey, type`);
|
|
327
|
+
const psetName = uniqueProp.slice(0, dotIdx);
|
|
328
|
+
const propName = uniqueProp.slice(dotIdx + 1);
|
|
329
|
+
for (const e of entities) {
|
|
330
|
+
const psets = bim.properties(e.ref);
|
|
331
|
+
const prop = findPropertyInSets(psets, psetName, propName);
|
|
332
|
+
const val = prop?.value != null ? String(prop.value) : '(no value)';
|
|
333
|
+
valueCounts.set(val, (valueCounts.get(val) ?? 0) + 1);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
return valueCounts;
|
|
337
|
+
}
|
|
302
338
|
export function outputEntities(entities, args, bim, jsonOutput) {
|
|
303
339
|
const showProps = hasFlag(args, '--props');
|
|
304
340
|
const showQuantities = hasFlag(args, '--quantities');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-output.js","sourceRoot":"","sources":["../../src/commands/query-output.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"query-output.js","sourceRoot":"","sources":["../../src/commands/query-output.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE3E,mCAAmC;AACnC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAElE,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,UAAmB;IAC5D,IAAI,UAAU,EAAE,CAAC;QACf,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAe,EAAE,YAAoB,EAAE,GAAQ,EAAE,UAAmB;IAC5F,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,6DAA6D;IAC7D,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA+C,CAAC;IAChF,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAEvC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChC,0CAA0C;gBAC1C,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC3C,IAAI,QAAQ,EAAE,CAAC;oBACb,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnB,CAAC;qBAAM,CAAC;oBACN,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC/D,CAAC;gBACD,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC5B,kEAAkE;oBAClE,4DAA4D;oBAC5D,gEAAgE;oBAChE,4DAA4D;oBAC5D,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAC1B,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpC,OAAO,EAAE,CAAC;oBACV,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,IAAI,OAAO,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QACzC,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,gBAAgB,EAAE,CAAC;YACrC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,SAAS,CAAC;gBACR,QAAQ,EAAE,YAAY;gBACtB,KAAK,EAAE,CAAC;gBACR,eAAe,EAAE,CAAC;gBAClB,aAAa,EAAE,QAAQ,CAAC,MAAM;gBAC9B,KAAK,EAAE,aAAa,YAAY,6BAA6B,QAAQ,CAAC,MAAM,YAAY;gBACxF,mBAAmB,EAAE,CAAC,GAAG,cAAc,CAAC;gBACxC,IAAI,EAAE,kFAAkF;aACzF,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,YAAY,6BAA6B,QAAQ,CAAC,MAAM,cAAc,CAAC,CAAC;YAC1G,IAAI,cAAc,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpF,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;QAChG,CAAC;QACD,OAAO;IACT,CAAC;IAED,sDAAsD;IACtD,MAAM,YAAY,GAAG,CAAC,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC;SACjD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE;QAChB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAC9C,oFAAoF;QACpF,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC5F,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnE,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,YAAY,CAAC,CAAC;IAE5D,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,MAAM,GAA4B;YACtC,QAAQ,EAAE,YAAY;YACtB,KAAK;YACL,eAAe,EAAE,OAAO;YACxB,aAAa,EAAE,QAAQ,CAAC,MAAM;YAC9B,gBAAgB,EAAE,CAAC,GAAG,YAAY,CAAC;SACpC,CAAC;QACF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,OAAO,GAAG,uEAAuE,CAAC;YACzF,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvD,IAAI,EAAE,GAAG;gBACT,eAAe,EAAE,IAAI,CAAC,KAAK;aAC5B,CAAC,CAAC,CAAC;QACN,CAAC;QACD,SAAS,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;QACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,KAAK,UAAU,OAAO,OAAO,QAAQ,CAAC,MAAM,qBAAqB,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7I,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;YACvF,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,YAAY,EAAE,CAAC;gBACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,IAAI,CAAC,KAAK,cAAc,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;YAC3F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAe,EAAE,YAAoB,EAAE,IAA2B,EAAE,GAAQ,EAAE,UAAmB;IACjI,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,MAAM,GAAG,QAAQ,CAAC;IACtB,IAAI,MAAM,GAAG,CAAC,QAAQ,CAAC;IACvB,IAAI,SAAS,GAAQ,IAAI,CAAC;IAC1B,IAAI,SAAS,GAAQ,IAAI,CAAC;IAE1B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACvD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,KAAK,IAAI,GAAG,CAAC;YACb,OAAO,EAAE,CAAC;YACV,IAAI,GAAG,GAAG,MAAM,EAAE,CAAC;gBAAC,MAAM,GAAG,GAAG,CAAC;gBAAC,SAAS,GAAG,CAAC,CAAC;YAAC,CAAC;YAClD,IAAI,GAAG,GAAG,MAAM,EAAE,CAAC;gBAAC,MAAM,GAAG,GAAG,CAAC;gBAAC,SAAS,GAAG,CAAC,CAAC;YAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,IAAI,UAAU,EAAE,CAAC;YACf,SAAS,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,YAAY,cAAc,EAAE,IAAI,EAAE,iEAAiE,EAAE,CAAC,CAAC;QACjK,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,YAAY,6BAA6B,QAAQ,CAAC,MAAM,cAAc,CAAC,CAAC;YAC1G,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;QAChG,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,GAAG,OAAO,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3D,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,MAAM,GAA4B,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC7H,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;QACvB,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;YACpB,IAAI,SAAS;gBAAE,MAAM,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC9G,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;YACpB,IAAI,SAAS;gBAAE,MAAM,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC9G,CAAC;QACD,SAAS,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;YACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,YAAY,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,cAAc,CAAC,CAAC;QAC9F,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,YAAY,KAAK,MAAM,KAAK,SAAS,EAAE,IAAI,IAAI,SAAS,KAAK,CAAC,CAAC;QAClG,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,YAAY,KAAK,MAAM,KAAK,SAAS,EAAE,IAAI,IAAI,SAAS,KAAK,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAe,EAAE,UAAkB,EAAE,WAA+B,EAAE,GAAQ,EAAE,UAAmB,EAAE,UAAmB,EAAE,OAAuC;IAC7L,6BAA6B;IAC7B,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3E,KAAK,CAAC,qBAAqB,UAAU,qBAAqB,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACpH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAC;IAExC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,UAAkB,CAAC;QAEvB,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;YAC1B,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC;QACtB,CAAC;aAAM,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjC,UAAU,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,aAAa,CAAC;QAC5D,CAAC;aAAM,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,YAAY,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC;YACrE,UAAU,GAAG,aAAa,CAAC,YAAY,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,eAAe,CAAC;QACzE,CAAC;aAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,oBAAoB;YACpB,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG,kBAAkB,CAAM,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAChE,UAAU,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,QAAQ,GAAG,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,OAAO,UAAU,GAAG,CAAC;QACrD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,gFAAgF;IAChF,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,CAAC;IAC9B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,MAAM,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;gBAC9B,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;gBACtD,IAAI,GAAG,KAAK,IAAI;oBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnC,CAAC;YACD,gEAAgE;YAChE,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAEhD,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,IAAI,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACpC,2CAA2C;QAC3C,IAAI,UAAU;YAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACvD,KAAK,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,OAAO,EAAE,CAAC;YAC3C,MAAM,KAAK,GAA4B,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC;YACvE,IAAI,WAAW;gBAAE,KAAK,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7D,IAAI,WAAW,IAAI,IAAI,KAAK,KAAK;gBAAE,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;YAC5D,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;QACD,SAAS,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,IAAI,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC7E,2CAA2C;QAC3C,IAAI,UAAU;YAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,KAAK,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC/G,KAAK,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,MAAM,EAAE,CAAC;YAC1C,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,eAAe,WAAW,IAAI,SAAS,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAChJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,aAAa,CAAC,MAAM,IAAI,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,UAAU,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACrE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,QAAQ,CAAC,MAAM,gBAAgB,MAAM,CAAC,IAAI,WAAW,CAAC,CAAC;YAC1F,IAAI,UAAU,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,WAAW,4EAA4E,CAAC,CAAC;YACpI,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,QAAQ,CAAC,MAAM,gBAAgB,MAAM,CAAC,IAAI,aAAa,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAe,EAAE,UAAkB,EAAE,GAAQ;IAC/E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE9C,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC;YAClE,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,eAAe,CAAC;YACnE,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;SAAM,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,aAAa,CAAC;YACzD,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;SAAM,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,MAAM,IAAI,CAAC;YAAE,KAAK,CAAC,2BAA2B,UAAU,mEAAmE,CAAC,CAAC;QACjI,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE9C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG,kBAAkB,CAAM,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAChE,MAAM,GAAG,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACpE,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAe,EAAE,IAAc,EAAE,GAAQ,EAAE,UAAmB;IAC3F,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACnD,MAAM,mBAAmB,GAAG,OAAO,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAC/D,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACrD,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEvC,MAAM,WAAW,GAAG,SAAS,IAAI,cAAc,IAAI,aAAa,IAAI,mBAAmB;WAClF,cAAc,IAAI,iBAAiB,IAAI,aAAa,IAAI,aAAa,IAAI,OAAO,CAAC;IAEtF,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;YACrC,MAAM,KAAK,GAA4B;gBACrC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS;gBACvC,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,SAAS;aACtC,CAAC;YACF,IAAI,cAAc,IAAI,OAAO;gBAAE,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACxE,IAAI,SAAS,IAAI,OAAO;gBAAE,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACnE,IAAI,cAAc,IAAI,OAAO;gBAAE,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACxE,IAAI,aAAa,IAAI,OAAO;gBAAE,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACrE,IAAI,mBAAmB,IAAI,OAAO;gBAAE,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACvF,IAAI,aAAa,IAAI,OAAO;gBAAE,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC/E,IAAI,aAAa,IAAI,OAAO;gBAAE,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACrE,IAAI,iBAAiB,IAAI,OAAO;gBAAE,KAAK,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjF,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,MAAM,CAAC,CAAC;QAClB,OAAO;IACT,CAAC;IAED,eAAe;IACf,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,MAAM,aAAa,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve `--storey <filter>` to the set of expressIds of every entity
|
|
3
|
+
* directly contained in the matching storey/storeys.
|
|
4
|
+
*
|
|
5
|
+
* Resolution order:
|
|
6
|
+
* 1. An exact expressId match (unambiguous — expressIds are unique) wins
|
|
7
|
+
* outright and resolves to that single storey.
|
|
8
|
+
* 2. Otherwise, every storey with an exact Name match. A shared Name is the
|
|
9
|
+
* ambiguity this union exists for: the storeys are indistinguishable by
|
|
10
|
+
* the very key the user supplied, so all of them are meant.
|
|
11
|
+
* 3. Otherwise, the storeys whose Name contains the filter
|
|
12
|
+
* (case-insensitive) — but only when those matches all share ONE Name.
|
|
13
|
+
* A substring spanning differently named storeys ("Level" against
|
|
14
|
+
* "Level 1" and "Level 2") is a different situation: the names DO
|
|
15
|
+
* distinguish the storeys, the user just did not pick one. Unioning would
|
|
16
|
+
* silently merge storeys never asked for, and first-match would pick one
|
|
17
|
+
* by array order; both are wrong answers with exit 0, so this errors and
|
|
18
|
+
* lists the candidate names instead.
|
|
19
|
+
*
|
|
20
|
+
* Exits via `fatal()` (never returns) if no storey matches at all, or if the
|
|
21
|
+
* substring tier matches storeys with different Names.
|
|
22
|
+
*/
|
|
23
|
+
export declare function resolveStoreyIds(bim: any, storeyFilter: string): Set<number>;
|
|
24
|
+
//# sourceMappingURL=query-storey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-storey.d.ts","sourceRoot":"","sources":["../../src/commands/query-storey.ts"],"names":[],"mappings":"AAmBA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CA8B5E"}
|
|
@@ -0,0 +1,71 @@
|
|
|
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
|
+
* `query --storey` resolution — extracted from `query.ts` (module-size
|
|
6
|
+
* ratchet) but otherwise unchanged behavior.
|
|
7
|
+
*
|
|
8
|
+
* IfcBuildingStorey.Name is not unique: two storeys legally share a Name as
|
|
9
|
+
* siblings under different buildings, or a malformed/federated file can
|
|
10
|
+
* duplicate a level name outright. Matching by GlobalId/expressId is
|
|
11
|
+
* unambiguous; matching by Name is not, so every storey with that Name is
|
|
12
|
+
* included rather than picking an arbitrary first match and silently
|
|
13
|
+
* dropping the rest (a same-named-storey element would otherwise vanish
|
|
14
|
+
* from the result depending on array order).
|
|
15
|
+
*/
|
|
16
|
+
import { fatal } from '../output.js';
|
|
17
|
+
/**
|
|
18
|
+
* Resolve `--storey <filter>` to the set of expressIds of every entity
|
|
19
|
+
* directly contained in the matching storey/storeys.
|
|
20
|
+
*
|
|
21
|
+
* Resolution order:
|
|
22
|
+
* 1. An exact expressId match (unambiguous — expressIds are unique) wins
|
|
23
|
+
* outright and resolves to that single storey.
|
|
24
|
+
* 2. Otherwise, every storey with an exact Name match. A shared Name is the
|
|
25
|
+
* ambiguity this union exists for: the storeys are indistinguishable by
|
|
26
|
+
* the very key the user supplied, so all of them are meant.
|
|
27
|
+
* 3. Otherwise, the storeys whose Name contains the filter
|
|
28
|
+
* (case-insensitive) — but only when those matches all share ONE Name.
|
|
29
|
+
* A substring spanning differently named storeys ("Level" against
|
|
30
|
+
* "Level 1" and "Level 2") is a different situation: the names DO
|
|
31
|
+
* distinguish the storeys, the user just did not pick one. Unioning would
|
|
32
|
+
* silently merge storeys never asked for, and first-match would pick one
|
|
33
|
+
* by array order; both are wrong answers with exit 0, so this errors and
|
|
34
|
+
* lists the candidate names instead.
|
|
35
|
+
*
|
|
36
|
+
* Exits via `fatal()` (never returns) if no storey matches at all, or if the
|
|
37
|
+
* substring tier matches storeys with different Names.
|
|
38
|
+
*/
|
|
39
|
+
export function resolveStoreyIds(bim, storeyFilter) {
|
|
40
|
+
const storeys = bim.storeys();
|
|
41
|
+
const byExpressId = storeys.find((s) => String(s.ref.expressId) === storeyFilter);
|
|
42
|
+
let matchedStoreys;
|
|
43
|
+
if (byExpressId) {
|
|
44
|
+
matchedStoreys = [byExpressId];
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
const exactNameMatches = storeys.filter((s) => s.name === storeyFilter);
|
|
48
|
+
if (exactNameMatches.length > 0) {
|
|
49
|
+
matchedStoreys = exactNameMatches;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
matchedStoreys = storeys.filter((s) => s.name.toLowerCase().includes(storeyFilter.toLowerCase()));
|
|
53
|
+
const distinctNames = [...new Set(matchedStoreys.map((s) => s.name))];
|
|
54
|
+
if (distinctNames.length > 1) {
|
|
55
|
+
fatal(`Storey "${storeyFilter}" is ambiguous: it matches ${distinctNames.length} differently named storeys ` +
|
|
56
|
+
`(${distinctNames.join(', ')}). Use the exact storey name or an expressId.`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (matchedStoreys.length === 0) {
|
|
61
|
+
const names = storeys.map((s) => s.name).filter(Boolean).join(', ');
|
|
62
|
+
fatal(`Storey "${storeyFilter}" not found. Available: ${names || '(none)'}`);
|
|
63
|
+
}
|
|
64
|
+
const storeyIds = new Set();
|
|
65
|
+
for (const storey of matchedStoreys) {
|
|
66
|
+
for (const e of bim.contains(storey.ref))
|
|
67
|
+
storeyIds.add(e.ref.expressId);
|
|
68
|
+
}
|
|
69
|
+
return storeyIds;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=query-storey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-storey.js","sourceRoot":"","sources":["../../src/commands/query-storey.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAQ,EAAE,YAAoB;IAC7D,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;IAC9B,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,YAAY,CAAC,CAAC;IACvF,IAAI,cAAqB,CAAC;IAC1B,IAAI,WAAW,EAAE,CAAC;QAChB,cAAc,GAAG,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QAC7E,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,cAAc,GAAG,gBAAgB,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACvG,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3E,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,KAAK,CACH,WAAW,YAAY,8BAA8B,aAAa,CAAC,MAAM,6BAA6B;oBACpG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,+CAA+C,CAC9E,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzE,KAAK,CAAC,WAAW,YAAY,2BAA2B,KAAK,IAAI,QAAQ,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/commands/query.d.ts
CHANGED
|
@@ -1,32 +1,9 @@
|
|
|
1
|
+
import { applyWhereFilter, parseWhereFilter, compareValues, normalizeBooleanValue } from './where-filter.js';
|
|
2
|
+
export { applyWhereFilter, parseWhereFilter, compareValues, normalizeBooleanValue };
|
|
1
3
|
/**
|
|
2
4
|
* B9/F6: Auto-prefix Ifc for --type if user omits it.
|
|
3
5
|
* Returns the corrected type string, or the original if already prefixed.
|
|
4
6
|
*/
|
|
5
7
|
export declare function normalizeTypeName(typeStr: string): string;
|
|
6
|
-
/**
|
|
7
|
-
* Parse a --where filter string into psetName, propName, operator, value.
|
|
8
|
-
* Supported formats:
|
|
9
|
-
* PsetName.PropName=Value (equals)
|
|
10
|
-
* PsetName.PropName!=Value (not equals)
|
|
11
|
-
* PsetName.PropName>Value (greater than)
|
|
12
|
-
* PsetName.PropName<Value (less than)
|
|
13
|
-
* PsetName.PropName>=Value (greater or equal)
|
|
14
|
-
* PsetName.PropName<=Value (less or equal)
|
|
15
|
-
* PsetName.PropName~Value (contains)
|
|
16
|
-
* PsetName.PropName (exists)
|
|
17
|
-
*/
|
|
18
|
-
export declare function parseWhereFilter(filter: string): {
|
|
19
|
-
psetName: string;
|
|
20
|
-
propName: string;
|
|
21
|
-
operator: string;
|
|
22
|
-
value?: string;
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* B3/F1: Apply --where filter to entities, searching both property sets AND quantity sets.
|
|
26
|
-
* Falls back to quantity sets when a property set match is not found.
|
|
27
|
-
*/
|
|
28
|
-
export declare function applyWhereFilter(entities: any[], parsed: ReturnType<typeof parseWhereFilter>, bim: any): any[];
|
|
29
|
-
export declare function compareValues(actual: any, operator: string, expected: string | undefined): boolean;
|
|
30
|
-
export declare function normalizeBooleanValue(value: unknown): unknown;
|
|
31
8
|
export declare function queryCommand(args: string[]): Promise<void>;
|
|
32
9
|
//# sourceMappingURL=query.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/commands/query.ts"],"names":[],"mappings":"AAiBA
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/commands/query.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE7G,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,qBAAqB,EAAE,CAAC;AAEpF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAWzD;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8bhE"}
|