@ifc-lite/query 1.14.17 → 2.1.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/duckdb-integration.d.ts.map +1 -1
- package/dist/duckdb-integration.js +10 -15
- package/dist/duckdb-integration.js.map +1 -1
- package/dist/entity-node.d.ts.map +1 -1
- package/dist/entity-node.js +27 -7
- package/dist/entity-node.js.map +1 -1
- package/dist/filter-predicate.d.ts +35 -0
- package/dist/filter-predicate.d.ts.map +1 -0
- package/dist/filter-predicate.js +47 -0
- package/dist/filter-predicate.js.map +1 -0
- package/dist/ifc-query.d.ts +1 -1
- package/dist/ifc-query.d.ts.map +1 -1
- package/dist/ifc-query.js +75 -2
- package/dist/ifc-query.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/property-table.d.ts +10 -1
- package/dist/property-table.d.ts.map +1 -1
- package/dist/property-table.js +21 -2
- package/dist/property-table.js.map +1 -1
- package/dist/pset-lookup.d.ts +63 -0
- package/dist/pset-lookup.d.ts.map +1 -0
- package/dist/pset-lookup.js +73 -0
- package/dist/pset-lookup.js.map +1 -0
- package/dist/query-result-entity.d.ts.map +1 -1
- package/dist/query-result-entity.js +2 -1
- package/dist/query-result-entity.js.map +1 -1
- package/dist/resolve-type-name.d.ts +22 -0
- package/dist/resolve-type-name.d.ts.map +1 -0
- package/dist/resolve-type-name.js +43 -0
- package/dist/resolve-type-name.js.map +1 -0
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duckdb-integration.d.ts","sourceRoot":"","sources":["../src/duckdb-integration.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;IAClB,OAAO,IAAI,OAAO,EAAE,CAAC;IACrB,MAAM,IAAI,OAAO,EAAE,CAAC;CACrB;AAsBD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,EAAE,CAA+B;IACzC,OAAO,CAAC,IAAI,CAAiC;IAC7C,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,WAAW,CAAS;IAE5B;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA0D9C;;OAEG;IACG,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAwB5C;;;OAGG;YACW,cAAc;IAoB5B;;OAEG;YACW,mBAAmB;IAoDjC;;OAEG;YACW,qBAAqB;IA6DnC;;OAEG;YACW,qBAAqB;IAiDnC;;OAEG;YACW,wBAAwB;
|
|
1
|
+
{"version":3,"file":"duckdb-integration.d.ts","sourceRoot":"","sources":["../src/duckdb-integration.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;IAClB,OAAO,IAAI,OAAO,EAAE,CAAC;IACrB,MAAM,IAAI,OAAO,EAAE,CAAC;CACrB;AAsBD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,EAAE,CAA+B;IACzC,OAAO,CAAC,IAAI,CAAiC;IAC7C,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,WAAW,CAAS;IAE5B;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA0D9C;;OAEG;IACG,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAwB5C;;;OAGG;YACW,cAAc;IAoB5B;;OAEG;YACW,mBAAmB;IAoDjC;;OAEG;YACW,qBAAqB;IA6DnC;;OAEG;YACW,qBAAqB;IAiDnC;;OAEG;YACW,wBAAwB;IA2DtC;;OAEG;YACW,WAAW;IAmEzB;;OAEG;WACU,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAU5C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAY/B;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAMlE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;IAAE,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC1D,MAAM,CAER"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
-
import { IfcTypeEnumToString, PropertyValueType, QuantityType, RelationshipType } from '@ifc-lite/data';
|
|
4
|
+
import { IfcTypeEnumToString, PropertyValueType, QuantityType, RelationshipType, flattenRelationshipEdges } from '@ifc-lite/data';
|
|
5
5
|
export class DuckDBIntegration {
|
|
6
6
|
db = null;
|
|
7
7
|
conn = null;
|
|
@@ -272,7 +272,6 @@ export class DuckDBIntegration {
|
|
|
272
272
|
)
|
|
273
273
|
`);
|
|
274
274
|
const { relationships } = store;
|
|
275
|
-
const edges = relationships.forward;
|
|
276
275
|
const batchSize = 1000;
|
|
277
276
|
const relTypeNames = {
|
|
278
277
|
[RelationshipType.ContainsElements]: 'ContainsElements',
|
|
@@ -290,19 +289,15 @@ export class DuckDBIntegration {
|
|
|
290
289
|
[RelationshipType.AssignsToProduct]: 'AssignsToProduct',
|
|
291
290
|
[RelationshipType.ReferencedInSpatialStructure]: 'ReferencedInSpatialStructure',
|
|
292
291
|
};
|
|
293
|
-
//
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
relId: edges.edgeRelIds[i],
|
|
303
|
-
});
|
|
304
|
-
}
|
|
305
|
-
}
|
|
292
|
+
// One row per `IfcRel*` STEP record, including any collapsed into an
|
|
293
|
+
// edge's `shadowedRelationshipIds` (#3760/#3782) — not one row per
|
|
294
|
+
// deduped edge; see `flattenRelationshipEdges`'s doc comment.
|
|
295
|
+
const rows = flattenRelationshipEdges(relationships.forward).map((row) => ({
|
|
296
|
+
sourceId: row.sourceId,
|
|
297
|
+
targetId: row.targetId,
|
|
298
|
+
relType: relTypeNames[row.type] || 'Unknown',
|
|
299
|
+
relId: row.relationshipId,
|
|
300
|
+
}));
|
|
306
301
|
// Insert in batches
|
|
307
302
|
for (let i = 0; i < rows.length; i += batchSize) {
|
|
308
303
|
const end = Math.min(i + batchSize, rows.length);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duckdb-integration.js","sourceRoot":"","sources":["../src/duckdb-integration.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"duckdb-integration.js","sourceRoot":"","sources":["../src/duckdb-integration.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAQ/D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,YAAY,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AA6BlI,MAAM,OAAO,iBAAiB;IACpB,EAAE,GAA0B,IAAI,CAAC;IACjC,IAAI,GAA4B,IAAI,CAAC;IACrC,WAAW,GAAyB,IAAI,CAAC;IACzC,WAAW,GAAG,KAAK,CAAC;IAE5B;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,KAAmB;QAC5B,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAC7B,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAE9C,IAAI,CAAC,WAAW,GAAG,CAAC,KAAK,IAAI,EAAE;YAC7B,IAAI,MAAM,GAAkB,IAAI,CAAC;YACjC,IAAI,CAAC;gBACH,6EAA6E;gBAC7E,mEAAmE;gBACnE,uEAAuE;gBACvE,oEAAoE;gBACpE,MAAM,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC,sCAAsC,CAAC,EAAkB,CAAC;gBAC5F,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC;gBAEtE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;gBACtD,CAAC;gBACD,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACvC,IAAI,CAAC,EAAE,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,aAAa,EAAE,EAAE,MAAM,CAAC,CAAC;gBACrE,MAAM,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;gBACnE,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;gBAEpC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBACjC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;gBAEzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,mEAAmE;gBACnE,mEAAmE;gBACnE,sEAAsE;gBACtE,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;gBAC3B,CAAC;gBAAC,MAAM,CAAC;oBACP,8BAA8B;gBAChC,CAAC;gBACD,IAAI,CAAC;oBACH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;wBACZ,sDAAsD;wBACtD,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;oBAC5B,CAAC;yBAAM,CAAC;wBACN,uDAAuD;wBACvD,MAAM,EAAE,SAAS,EAAE,CAAC;oBACtB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,8BAA8B;gBAChC,CAAC;gBACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gBACjB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;gBACf,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,GAAW;QACrB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAE9B,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAChD,IAAI,EAAE,IAAmB;YACzB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;YACnB,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAY,EAAE,EAAE;gBACtC,MAAM,GAAG,GAA4B,EAAE,CAAC;gBACxC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAS,EAAE,EAAE;oBAChD,sDAAsD;oBACtD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,GAA+B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/F,CAAC,CAAC,CAAC;gBACH,OAAO,GAAG,CAAC;YACb,CAAC,CAAC;SACH,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,cAAc,CAAC,KAAmB;QAC9C,6EAA6E;QAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAK,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,6CAA6C,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAE7F,qCAAqC;QACrC,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAEtC,uCAAuC;QACvC,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAExC,uCAAuC;QACvC,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAExC,0CAA0C;QAC1C,MAAM,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAE3C,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAAC,KAAmB;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAK,CAAC;QACxB,eAAe;QACf,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;;;KAahB,CAAC,CAAC;QAEH,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC;QAEvB,oCAAoC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YACnD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,MAAM,GAAa,EAAE,CAAC;YAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7B,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9D,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtD,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpE,MAAM,IAAI,GAAG,SAAS,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClE,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClE,MAAM,WAAW,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;gBAClD,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC7C,yEAAyE;gBACzE,qEAAqE;gBACrE,uDAAuD;gBACvD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACrG,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAEzF,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,MAAM,QAAQ,OAAO,IAAI,OAAO,WAAW,OAAO,IAAI,OAAO,UAAU,MAAM,WAAW,KAAK,MAAM,KAAK,iBAAiB,KAAK,aAAa,GAAG,CAAC,CAAC;YAC3K,CAAC;YAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,CAAC,KAAK,CAAC,+BAA+B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,2CAA2C,QAAQ,CAAC,KAAK,OAAO,CAAC,CAAC;IAChF,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,qBAAqB,CAAC,KAAmB;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAK,CAAC;QACxB,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;;KAYhB,CAAC,CAAC;QAEH,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC;QAEvB,MAAM,aAAa,GAA2B;YAC5C,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,QAAQ;YACpC,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM;YAChC,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,SAAS;YACtC,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,SAAS;YACtC,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,SAAS;YACtC,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO;YAClC,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,YAAY;YAC5C,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM;YAChC,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM;YAChC,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,WAAW;YAC1C,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM;SACjC,CAAC;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YACrD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YACtD,MAAM,MAAM,GAAa,EAAE,CAAC;YAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChE,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxE,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChE,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;gBAEpE,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC1F,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACpF,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC7C,MAAM,SAAS,GAAG,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;gBAExF,MAAM,CAAC,IAAI,CAAC,IAAI,QAAQ,MAAM,QAAQ,OAAO,YAAY,OAAO,QAAQ,OAAO,QAAQ,MAAM,kBAAkB,KAAK,SAAS,KAAK,QAAQ,KAAK,SAAS,GAAG,CAAC,CAAC;YAC/J,CAAC;YAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,CAAC,KAAK,CAAC,iCAAiC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,6CAA6C,UAAU,CAAC,KAAK,OAAO,CAAC,CAAC;IACpF,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,qBAAqB,CAAC,KAAmB;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAK,CAAC;QACxB,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;KAShB,CAAC,CAAC;QAEH,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC;QAEvB,MAAM,cAAc,GAA2B;YAC7C,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ;YAC/B,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;YAC3B,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ;YAC/B,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,OAAO;YAC7B,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ;YAC/B,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;SAC5B,CAAC;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YACrD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YACtD,MAAM,MAAM,GAAa,EAAE,CAAC;YAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChE,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxE,MAAM,YAAY,GAAG,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;gBAC7E,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAClC,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACzC,MAAM,OAAO,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAEzE,MAAM,CAAC,IAAI,CAAC,IAAI,QAAQ,MAAM,QAAQ,OAAO,YAAY,OAAO,YAAY,MAAM,KAAK,MAAM,OAAO,IAAI,CAAC,CAAC;YAC5G,CAAC;YAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,CAAC,KAAK,CAAC,iCAAiC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,6CAA6C,UAAU,CAAC,KAAK,OAAO,CAAC,CAAC;IACpF,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,wBAAwB,CAAC,KAAmB;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAK,CAAC;QACxB,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;KAOhB,CAAC,CAAC;QAEH,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC;QAEvB,MAAM,YAAY,GAA2B;YAC3C,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,kBAAkB;YACvD,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,YAAY;YAC3C,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,EAAE,qBAAqB;YAC7D,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,eAAe;YACjD,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,oBAAoB;YAC3D,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,EAAE,0BAA0B;YACvE,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,cAAc;YAC/C,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,cAAc;YAC/C,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,EAAE,sBAAsB;YAC/D,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,kBAAkB;YACvD,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,eAAe;YACjD,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,gBAAgB;YACnD,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,kBAAkB;YACvD,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,EAAE,8BAA8B;SAChF,CAAC;QAEF,qEAAqE;QACrE,mEAAmE;QACnE,8DAA8D;QAC9D,MAAM,IAAI,GAAG,wBAAwB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACzE,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS;YAC5C,KAAK,EAAE,GAAG,CAAC,cAAc;SAC1B,CAAC,CAAC,CAAC;QAEJ,oBAAoB;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACjD,MAAM,MAAM,GAAa,EAAE,CAAC;YAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,MAAM,GAAG,CAAC,OAAO,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;YACpF,CAAC;YAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,CAAC,KAAK,CAAC,oCAAoC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,gDAAgD,IAAI,CAAC,MAAM,OAAO,CAAC,CAAC;IAClF,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;OAGhB,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,KAAK,CAAC;;;OAGhB,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,KAAK,CAAC;;;OAGhB,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,KAAK,CAAC;;;OAGhB,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,KAAK,CAAC;;;OAGhB,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,KAAK,CAAC;;;OAGhB,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,KAAK,CAAC;;;OAGhB,CAAC,CAAC;YAEH,uDAAuD;YACvD,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;OAQhB,CAAC,CAAC;YAEH,uDAAuD;YACvD,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;OAOhB,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,6DAA6D;YAC7D,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW;QACtB,IAAI,CAAC;YACH,4EAA4E;YAC5E,MAAM,IAAI,QAAQ,CAAC,sCAAsC,CAAC,EAAkB,CAAC;YAC7E,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,KAAgC;IACxD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,4DAA4D;IAC5D,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,0BAA0B,CACxC,GAAW,EACX,OAA2D;IAE3D,OAAO,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;AAC3E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-node.d.ts","sourceRoot":"","sources":["../src/entity-node.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,IAAI,YAAY,EAAE,SAAS,EAAqB,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"entity-node.d.ts","sourceRoot":"","sources":["../src/entity-node.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,IAAI,YAAY,EAAE,SAAS,EAAqB,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG1I,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA0BlD,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,SAAS,GAChB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC,CAO3D;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAe;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,iBAAiB,CAAyG;gBAEtH,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM;IAKlD;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAa7B,IAAI,QAAQ,IAAI,MAAM,CAMrB;IAED,IAAI,IAAI,IAAI,MAAM,CAMjB;IAED,IAAI,WAAW,IAAI,MAAM,CAMxB;IAED,IAAI,UAAU,IAAI,MAAM,CAMvB;IAED,IAAI,GAAG,IAAI,MAAM,CAGhB;IAED;;;;OAIG;IACH,aAAa,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAe1E,IAAI,IAAI,IAAI,MAAM,CAEjB;IAID,QAAQ,IAAI,UAAU,EAAE;IAIxB,WAAW,IAAI,UAAU,GAAG,IAAI;IAMhC,UAAU,IAAI,UAAU,EAAE;IAI1B,YAAY,IAAI,UAAU,GAAG,IAAI;IAMjC;;;;;;;;OAQG;IACH,YAAY,IAAI,UAAU,GAAG,IAAI;IAKjC,4EAA4E;IAC5E,SAAS,IAAI,UAAU,EAAE;IAKzB,KAAK,IAAI,UAAU,EAAE;IAIrB;;;;;;;OAOG;IACH,QAAQ,IAAI,UAAU,EAAE;IAKxB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,SAAS,GAAG,SAAqB,GAAG,UAAU,EAAE;IA+B9G,QAAQ,IAAI,UAAU,GAAG,IAAI;IAY7B,MAAM,IAAI,UAAU,GAAG,IAAI;IAa3B,UAAU,IAAI,WAAW,EAAE;IAI3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAgBlE,UAAU,IAAI,WAAW,EAAE;IAI3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAW/D,OAAO,CAAC,UAAU;CAInB"}
|
package/dist/entity-node.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
4
|
import { getRawNamedAttributes, extractRootAttributesFromEntity } from '@ifc-lite/parser';
|
|
5
|
+
import { resolveEntityTypeName } from './resolve-type-name.js';
|
|
5
6
|
import { RelationshipType } from '@ifc-lite/data';
|
|
6
7
|
function coerceRaw(raw) {
|
|
7
8
|
if (typeof raw === 'string') {
|
|
@@ -126,7 +127,7 @@ export class EntityNode {
|
|
|
126
127
|
return attrs;
|
|
127
128
|
}
|
|
128
129
|
get type() {
|
|
129
|
-
return this.store
|
|
130
|
+
return resolveEntityTypeName(this.store, this.expressId);
|
|
130
131
|
}
|
|
131
132
|
// Spatial containment
|
|
132
133
|
contains() {
|
|
@@ -234,17 +235,36 @@ export class EntityNode {
|
|
|
234
235
|
return this.store.getProperties(this.expressId);
|
|
235
236
|
}
|
|
236
237
|
property(psetName, propName) {
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
238
|
+
// Two distinct IfcPropertySet entities sharing the same Name is a
|
|
239
|
+
// legitimate model shape, and the on-demand extraction path returns one
|
|
240
|
+
// array entry per underlying set rather than merging them. `.find()`
|
|
241
|
+
// would stop at the first same-named set and miss a property that only
|
|
242
|
+
// lives on a later one with that name (the same defect fixed in
|
|
243
|
+
// `PropertyTable.getProperty`, #2907) — so every same-named set is
|
|
244
|
+
// checked here instead.
|
|
245
|
+
for (const pset of this.store.getProperties(this.expressId)) {
|
|
246
|
+
if (pset.name !== psetName)
|
|
247
|
+
continue;
|
|
248
|
+
const prop = pset.properties.find(p => p.name === propName);
|
|
249
|
+
if (prop)
|
|
250
|
+
return prop.value;
|
|
251
|
+
}
|
|
252
|
+
return null;
|
|
240
253
|
}
|
|
241
254
|
quantities() {
|
|
242
255
|
return this.store.getQuantities(this.expressId);
|
|
243
256
|
}
|
|
244
257
|
quantity(qsetName, quantityName) {
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
258
|
+
// Mirrors property() above: check every same-named quantity set rather
|
|
259
|
+
// than stopping at the first one.
|
|
260
|
+
for (const qset of this.store.getQuantities(this.expressId)) {
|
|
261
|
+
if (qset.name !== qsetName)
|
|
262
|
+
continue;
|
|
263
|
+
const quantity = qset.quantities.find(q => q.name === quantityName);
|
|
264
|
+
if (quantity)
|
|
265
|
+
return quantity.value;
|
|
266
|
+
}
|
|
267
|
+
return null;
|
|
248
268
|
}
|
|
249
269
|
getRelated(relType, direction) {
|
|
250
270
|
const targets = this.store.relationships.getRelated(this.expressId, relType, direction);
|
package/dist/entity-node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-node.js","sourceRoot":"","sources":["../src/entity-node.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"entity-node.js","sourceRoot":"","sources":["../src/entity-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A `where(...)` / `--where` predicate needs to compare a stored property or
|
|
3
|
+
* quantity value against a caller-supplied filter value. Three call sites
|
|
4
|
+
* implemented this independently (the CLI's `HeadlessBackend`, the MCP
|
|
5
|
+
* backend, and the `ifc-lite query --where` flag), and a fourth — the
|
|
6
|
+
* viewer's embedded SDK backend, `bim`'s primary consumption path — never
|
|
7
|
+
* picked up the boolean-normalization/case-insensitive-`contains` fix the
|
|
8
|
+
* other three carry, so the identical `bim.query().where(...)` call silently
|
|
9
|
+
* matched fewer rows there than in the CLI/MCP. This module is the single
|
|
10
|
+
* home for that comparison so the four call sites can't drift apart again.
|
|
11
|
+
*/
|
|
12
|
+
export type FilterComparisonOp = '=' | '!=' | '>' | '<' | '>=' | '<=' | 'contains' | 'exists';
|
|
13
|
+
/**
|
|
14
|
+
* Normalize boolean-like values for comparison. IFC STEP encodes booleans as
|
|
15
|
+
* `.T.`/`.F.` tokens; parsed property values are typically real JS booleans
|
|
16
|
+
* by the time they reach a filter, but a caller-supplied filter value (a CLI
|
|
17
|
+
* flag, a raw mutation) may arrive as one of the string spellings instead.
|
|
18
|
+
* Collapsing every spelling to the same `'true'`/`'false'` string lets the
|
|
19
|
+
* `String(a) === String(b)` comparisons below treat them all as equal.
|
|
20
|
+
*/
|
|
21
|
+
export declare function normalizeBooleanValue(value: unknown): unknown;
|
|
22
|
+
/**
|
|
23
|
+
* Evaluate a single comparison operator against a stored value and a
|
|
24
|
+
* filter value. Booleans are normalized first (see {@link normalizeBooleanValue}),
|
|
25
|
+
* and `contains` is case-insensitive — the settled semantics across the
|
|
26
|
+
* CLI/MCP query backends, now shared rather than duplicated.
|
|
27
|
+
*
|
|
28
|
+
* `exists` answers "is this property/quantity present", not "does it carry a
|
|
29
|
+
* non-null value" — a caller passes `actual` here only once it has already
|
|
30
|
+
* confirmed the property was found (e.g. `IFCPROPERTYSINGLEVALUE('FireRating',
|
|
31
|
+
* $,$,$)` is present in its pset with a `$` nominal value, which parses to
|
|
32
|
+
* `null`; it still exists). So `exists` is unconditional true once reached.
|
|
33
|
+
*/
|
|
34
|
+
export declare function compareFilterValue(actual: unknown, operator: FilterComparisonOp, expected: unknown): boolean;
|
|
35
|
+
//# sourceMappingURL=filter-predicate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-predicate.d.ts","sourceRoot":"","sources":["../src/filter-predicate.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,kBAAkB,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE9F;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAI7D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAc5G"}
|
|
@@ -0,0 +1,47 @@
|
|
|
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
|
+
* Normalize boolean-like values for comparison. IFC STEP encodes booleans as
|
|
6
|
+
* `.T.`/`.F.` tokens; parsed property values are typically real JS booleans
|
|
7
|
+
* by the time they reach a filter, but a caller-supplied filter value (a CLI
|
|
8
|
+
* flag, a raw mutation) may arrive as one of the string spellings instead.
|
|
9
|
+
* Collapsing every spelling to the same `'true'`/`'false'` string lets the
|
|
10
|
+
* `String(a) === String(b)` comparisons below treat them all as equal.
|
|
11
|
+
*/
|
|
12
|
+
export function normalizeBooleanValue(value) {
|
|
13
|
+
if (value === true || value === '.T.' || value === 'true' || value === 'TRUE')
|
|
14
|
+
return 'true';
|
|
15
|
+
if (value === false || value === '.F.' || value === 'false' || value === 'FALSE')
|
|
16
|
+
return 'false';
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Evaluate a single comparison operator against a stored value and a
|
|
21
|
+
* filter value. Booleans are normalized first (see {@link normalizeBooleanValue}),
|
|
22
|
+
* and `contains` is case-insensitive — the settled semantics across the
|
|
23
|
+
* CLI/MCP query backends, now shared rather than duplicated.
|
|
24
|
+
*
|
|
25
|
+
* `exists` answers "is this property/quantity present", not "does it carry a
|
|
26
|
+
* non-null value" — a caller passes `actual` here only once it has already
|
|
27
|
+
* confirmed the property was found (e.g. `IFCPROPERTYSINGLEVALUE('FireRating',
|
|
28
|
+
* $,$,$)` is present in its pset with a `$` nominal value, which parses to
|
|
29
|
+
* `null`; it still exists). So `exists` is unconditional true once reached.
|
|
30
|
+
*/
|
|
31
|
+
export function compareFilterValue(actual, operator, expected) {
|
|
32
|
+
if (operator === 'exists')
|
|
33
|
+
return true;
|
|
34
|
+
const normActual = normalizeBooleanValue(actual);
|
|
35
|
+
const normExpected = normalizeBooleanValue(expected);
|
|
36
|
+
switch (operator) {
|
|
37
|
+
case '=': return String(normActual) === String(normExpected);
|
|
38
|
+
case '!=': return String(normActual) !== String(normExpected);
|
|
39
|
+
case '>': return Number(normActual) > Number(normExpected);
|
|
40
|
+
case '<': return Number(normActual) < Number(normExpected);
|
|
41
|
+
case '>=': return Number(normActual) >= Number(normExpected);
|
|
42
|
+
case '<=': return Number(normActual) <= Number(normExpected);
|
|
43
|
+
case 'contains': return String(normActual).toLowerCase().includes(String(normExpected).toLowerCase());
|
|
44
|
+
default: return false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=filter-predicate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-predicate.js","sourceRoot":"","sources":["../src/filter-predicate.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAgB/D;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IAC7F,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACjG,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAe,EAAE,QAA4B,EAAE,QAAiB;IACjG,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACrD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,GAAG,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,YAAY,CAAC,CAAC;QAC7D,KAAK,IAAI,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9D,KAAK,GAAG,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3D,KAAK,GAAG,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3D,KAAK,IAAI,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;QAC7D,KAAK,IAAI,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;QAC7D,KAAK,UAAU,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACtG,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC;IACxB,CAAC;AACH,CAAC"}
|
package/dist/ifc-query.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Main query interface - provides multiple access patterns
|
|
3
3
|
*/
|
|
4
|
-
import type
|
|
4
|
+
import { type IfcDataStore } from '@ifc-lite/parser';
|
|
5
5
|
import { type SpatialHierarchy } from '@ifc-lite/data';
|
|
6
6
|
import { EntityQuery } from './entity-query.js';
|
|
7
7
|
import { EntityNode } from './entity-node.js';
|
package/dist/ifc-query.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifc-query.d.ts","sourceRoot":"","sources":["../src/ifc-query.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"ifc-query.d.ts","sourceRoot":"","sources":["../src/ifc-query.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAuC,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,qBAAa,QAAQ;IACnB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAkC;gBAEpC,KAAK,EAAE,YAAY;IAQzB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;YAK9B,YAAY;IAuB1B,KAAK,IAAI,WAAW;IAIpB,KAAK,IAAI,WAAW;IAIpB,OAAO,IAAI,WAAW;IAItB,KAAK,IAAI,WAAW;IAIpB,OAAO,IAAI,WAAW;IAItB,KAAK,IAAI,WAAW;IAIpB,MAAM,IAAI,WAAW;IAIrB,MAAM,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW;IA6EvC,GAAG,IAAI,WAAW;IAIlB,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW;IAQpC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU;IAQrC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW;IAQjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;IAQvC,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE;IAWxF,IAAI,SAAS,IAAI,gBAAgB,GAAG,IAAI,CAEvC;IAED,IAAI,OAAO,IAAI,UAAU,GAAG,IAAI,CAG/B;IAED,IAAI,OAAO,IAAI,UAAU,EAAE,CAS1B;CACF"}
|
package/dist/ifc-query.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Main query interface - provides multiple access patterns
|
|
6
|
+
*/
|
|
7
|
+
import { isKnownType, resolveEntityNameAlias } from '@ifc-lite/parser';
|
|
8
|
+
import { IfcTypeEnum, IfcTypeEnumFromString, } from '@ifc-lite/data';
|
|
5
9
|
import { EntityQuery } from './entity-query.js';
|
|
6
10
|
import { EntityNode } from './entity-node.js';
|
|
7
11
|
import { DuckDBIntegration } from './duckdb-integration.js';
|
|
@@ -62,7 +66,76 @@ export class IfcQuery {
|
|
|
62
66
|
return this.ofType('IfcSpace');
|
|
63
67
|
}
|
|
64
68
|
ofType(...types) {
|
|
65
|
-
|
|
69
|
+
// `IfcTypeEnumFromString` falls back to `IfcTypeEnum.Unknown` for any name
|
|
70
|
+
// it does not recognize. That fallback conflates two very different cases:
|
|
71
|
+
//
|
|
72
|
+
// 1. A typo (`ofType('IfcWal')`). `IfcWal` is not an IFC entity name in
|
|
73
|
+
// any schema, so the caller can only have meant `IfcWall`. Left
|
|
74
|
+
// unchecked the query silently returns the Unknown bucket - every
|
|
75
|
+
// entity the store itself could not classify - which is neither the
|
|
76
|
+
// caller's wall nor an empty result, but some other, unrelated set of
|
|
77
|
+
// entities.
|
|
78
|
+
//
|
|
79
|
+
// 2. A real IFC entity name that `TYPE_STRING_TO_ENUM` (data/types.ts)
|
|
80
|
+
// simply has no entry for. That table is a curated subset, so standard
|
|
81
|
+
// types such as `IfcChiller` and `IfcActuator` - and IFC2X3's
|
|
82
|
+
// `IfcDoorStyle` and `IfcWindowStyle`, which is how 2X3 files carry
|
|
83
|
+
// door and window typing - map to `Unknown` too. For those the Unknown
|
|
84
|
+
// bucket is the only representation available and querying it is the
|
|
85
|
+
// documented, working behaviour: a file whose sole unclassified
|
|
86
|
+
// entities are door styles really does answer `ofType('IfcDoorStyle')`
|
|
87
|
+
// correctly this way.
|
|
88
|
+
//
|
|
89
|
+
// Only case 1 is rejected, and the oracle deciding which case a name falls
|
|
90
|
+
// in has to span every schema the parser reads. `IFC_ENTITY_NAMES` does
|
|
91
|
+
// not: it is the hand-kept IFC4X3-only display-name table, and keying on
|
|
92
|
+
// it rejected `IfcDoorStyle` and `IfcWindowStyle` outright. `isKnownType`
|
|
93
|
+
// (@ifc-lite/parser) is the predicate that already answers this question
|
|
94
|
+
// for the SDK's authoring guard - the bundled IFC2X3 + IFC4 + IFC4X3
|
|
95
|
+
// schema union, minus EXPRESS defined types (`IfcLengthMeasure`,
|
|
96
|
+
// `IfcArcIndex`), with the IFC4_ADD2_TC1 codegen pin as a fallback. Using
|
|
97
|
+
// it rather than growing a second name table keeps one source of truth.
|
|
98
|
+
//
|
|
99
|
+
// `isKnownType` deliberately does not resolve `ENTITY_NAME_ALIASES`,
|
|
100
|
+
// because it doubles as a name canonicalizer and an alias maps a leaf to
|
|
101
|
+
// its nearest schema-known *supertype*. For a pure known-ness question the
|
|
102
|
+
// alias table is exactly the right thing to consult: it lists names real
|
|
103
|
+
// STEP files carry that the bundled EXPRESS exports omit, such as IFC4X3's
|
|
104
|
+
// `IfcSolidStratum`, which the bundled table folds into
|
|
105
|
+
// `IfcGeotechnicalStratum` with a PredefinedType. Hence the second lookup -
|
|
106
|
+
// it is the difference between accepting and rejecting those names.
|
|
107
|
+
// (This cited `IfcElectricalDistributionPoint` until #3172, which is not an
|
|
108
|
+
// entity in any schema -- the real IFC2X3 name has no "AL", and being in
|
|
109
|
+
// `ENTITIES_IFC2X3` it never needed the alias table at all.)
|
|
110
|
+
//
|
|
111
|
+
// A genuine query for the Unknown bucket is still made by passing the
|
|
112
|
+
// literal string `'Unknown'`.
|
|
113
|
+
//
|
|
114
|
+
// One normalisation feeds both steps. `trim()` has to happen BEFORE the
|
|
115
|
+
// enum lookup, not just inside the guard: `IfcTypeEnumFromString` only
|
|
116
|
+
// uppercases, so a padded `' IfcWall '` misses `TYPE_STRING_TO_ENUM` and
|
|
117
|
+
// yields `Unknown`, while the guard - trimming - finds `IfcWall` known and
|
|
118
|
+
// lets it through. The query would then run against the Unknown bucket and
|
|
119
|
+
// answer with entities that are not walls, with no error at all. Trimming
|
|
120
|
+
// at one place only is what creates that window; trimming at both closes
|
|
121
|
+
// it. For every unpadded name `trim()` is the identity, so no name that
|
|
122
|
+
// resolves correctly today changes meaning.
|
|
123
|
+
const typeEnums = types.map(t => {
|
|
124
|
+
const trimmed = t.trim();
|
|
125
|
+
const typeEnum = IfcTypeEnumFromString(trimmed);
|
|
126
|
+
if (typeEnum === IfcTypeEnum.Unknown) {
|
|
127
|
+
const known = trimmed.toUpperCase() === 'UNKNOWN' ||
|
|
128
|
+
isKnownType(trimmed) ||
|
|
129
|
+
isKnownType(resolveEntityNameAlias(trimmed));
|
|
130
|
+
if (!known) {
|
|
131
|
+
throw new Error(`ofType(): "${t}" is not an entity name in any IFC schema this ` +
|
|
132
|
+
`build reads (IFC2X3, IFC4, IFC4X3). Check the spelling; for a ` +
|
|
133
|
+
`vendor-specific type name, pass 'Unknown' to query entities ` +
|
|
134
|
+
`whose type could not be classified.`);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return typeEnum;
|
|
138
|
+
});
|
|
66
139
|
return new EntityQuery(this.store, typeEnums);
|
|
67
140
|
}
|
|
68
141
|
all() {
|
package/dist/ifc-query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifc-query.js","sourceRoot":"","sources":["../src/ifc-query.ts"],"names":[],"mappings":"AAAA;;+DAE+D;
|
|
1
|
+
{"version":3,"file":"ifc-query.js","sourceRoot":"","sources":["../src/ifc-query.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,4 +9,6 @@ export { EntityQuery, type ComparisonOperator } from './entity-query.js';
|
|
|
9
9
|
export { EntityNode } from './entity-node.js';
|
|
10
10
|
export { QueryResultEntity } from './query-result-entity.js';
|
|
11
11
|
export { DuckDBIntegration, type SQLResult } from './duckdb-integration.js';
|
|
12
|
+
export { findPropertyInSets, findQuantityInSets, findAllPropertiesInSets, findAllQuantitiesInSets } from './pset-lookup.js';
|
|
13
|
+
export { normalizeBooleanValue, compareFilterValue, type FilterComparisonOp } from './filter-predicate.js';
|
|
12
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC5H,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,4 +12,6 @@ export { EntityQuery } from './entity-query.js';
|
|
|
12
12
|
export { EntityNode } from './entity-node.js';
|
|
13
13
|
export { QueryResultEntity } from './query-result-entity.js';
|
|
14
14
|
export { DuckDBIntegration } from './duckdb-integration.js';
|
|
15
|
+
export { findPropertyInSets, findQuantityInSets, findAllPropertiesInSets, findAllQuantitiesInSets } from './pset-lookup.js';
|
|
16
|
+
export { normalizeBooleanValue, compareFilterValue } from './filter-predicate.js';
|
|
15
17
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAA2B,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAkB,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAA2B,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAkB,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC5H,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAA2B,MAAM,uBAAuB,CAAC"}
|
package/dist/property-table.d.ts
CHANGED
|
@@ -23,7 +23,16 @@ export declare class PropertyTable {
|
|
|
23
23
|
*/
|
|
24
24
|
getProperty(entityId: number, propertySetName: string, propertyName: string): PropertyValue | null;
|
|
25
25
|
/**
|
|
26
|
-
* Get all properties for entity
|
|
26
|
+
* Get all properties for entity, one entry per distinct pset NAME.
|
|
27
|
+
*
|
|
28
|
+
* An entity can carry two same-named property sets (two
|
|
29
|
+
* `IfcRelDefinesByProperties` pointing at distinct `IfcPropertySet`s — the
|
|
30
|
+
* same shape `getProperty`, above, scans through). Keying the result
|
|
31
|
+
* `Map` by name alone would let the later same-named set overwrite the
|
|
32
|
+
* earlier one, silently dropping every property that lived only in the
|
|
33
|
+
* set that got overwritten. Merge same-named sets' properties instead —
|
|
34
|
+
* earlier-set values win on a key collision, matching `getProperty`'s own
|
|
35
|
+
* first-match-wins order above.
|
|
27
36
|
*/
|
|
28
37
|
getProperties(entityId: number): Map<string, PropertySet>;
|
|
29
38
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property-table.d.ts","sourceRoot":"","sources":["../src/property-table.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEnE,qBAAa,aAAa;IACxB,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,iBAAiB,CAAwB;;IAOjD;;OAEG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI;IAI1D;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IASnE;;;;;;OAMG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAelG
|
|
1
|
+
{"version":3,"file":"property-table.d.ts","sourceRoot":"","sources":["../src/property-table.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEnE,qBAAa,aAAa;IACxB,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,iBAAiB,CAAwB;;IAOjD;;OAEG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI;IAI1D;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IASnE;;;;;;OAMG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAelG;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAsBzD;;OAEG;IACH,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,MAAM,EAAE;CAkBlF"}
|
package/dist/property-table.js
CHANGED
|
@@ -47,7 +47,16 @@ export class PropertyTable {
|
|
|
47
47
|
return null;
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
50
|
-
* Get all properties for entity
|
|
50
|
+
* Get all properties for entity, one entry per distinct pset NAME.
|
|
51
|
+
*
|
|
52
|
+
* An entity can carry two same-named property sets (two
|
|
53
|
+
* `IfcRelDefinesByProperties` pointing at distinct `IfcPropertySet`s — the
|
|
54
|
+
* same shape `getProperty`, above, scans through). Keying the result
|
|
55
|
+
* `Map` by name alone would let the later same-named set overwrite the
|
|
56
|
+
* earlier one, silently dropping every property that lived only in the
|
|
57
|
+
* set that got overwritten. Merge same-named sets' properties instead —
|
|
58
|
+
* earlier-set values win on a key collision, matching `getProperty`'s own
|
|
59
|
+
* first-match-wins order above.
|
|
51
60
|
*/
|
|
52
61
|
getProperties(entityId) {
|
|
53
62
|
const result = new Map();
|
|
@@ -56,9 +65,19 @@ export class PropertyTable {
|
|
|
56
65
|
return result;
|
|
57
66
|
for (const setId of propertySetIds) {
|
|
58
67
|
const pset = this.propertySets.get(setId);
|
|
59
|
-
if (pset)
|
|
68
|
+
if (!pset)
|
|
69
|
+
continue;
|
|
70
|
+
const existing = result.get(pset.name);
|
|
71
|
+
if (!existing) {
|
|
60
72
|
result.set(pset.name, pset);
|
|
73
|
+
continue;
|
|
61
74
|
}
|
|
75
|
+
if (existing === pset)
|
|
76
|
+
continue; // same pset shared across entities
|
|
77
|
+
const merged = new Map(pset.properties);
|
|
78
|
+
for (const [key, value] of existing.properties)
|
|
79
|
+
merged.set(key, value); // earlier wins
|
|
80
|
+
result.set(pset.name, { name: pset.name, properties: merged });
|
|
62
81
|
}
|
|
63
82
|
return result;
|
|
64
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property-table.js","sourceRoot":"","sources":["../src/property-table.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAQ/D,MAAM,OAAO,aAAa;IAChB,YAAY,CAA2B;IACvC,iBAAiB,CAAwB,CAAC,mCAAmC;IAErF;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,EAAU,EAAE,WAAwB;QACjD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,QAAgB,EAAE,aAAqB;QAC1D,IAAI,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,EAAE,CAAC;YACV,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3B,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,QAAgB,EAAE,eAAuB,EAAE,YAAoB;QACzE,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC;QAEjC,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAChD,IAAI,KAAK;oBAAE,OAAO,KAAK,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"property-table.js","sourceRoot":"","sources":["../src/property-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An IFC entity can legitimately carry two distinct property (or
|
|
3
|
+
* quantity) sets that share the same name — e.g. two
|
|
4
|
+
* `IfcRelDefinesByProperties` relations pointing at two different
|
|
5
|
+
* "Pset_WallCommon" instances, one via the type definition and one via
|
|
6
|
+
* the occurrence. A lookup that does `sets.find(s => s.name === name)`
|
|
7
|
+
* only ever sees the FIRST such set: if the wanted property lives on
|
|
8
|
+
* the second same-named set, it is wrongly reported missing (or, in a
|
|
9
|
+
* filter, the whole entity is wrongly dropped from the result).
|
|
10
|
+
*
|
|
11
|
+
* These helpers implement the settled semantics (first established by
|
|
12
|
+
* `PropertyTable.getProperty` in #2907, and mirrored by
|
|
13
|
+
* `QueryResultEntity.getProperty`): scan EVERY set, skip ones whose
|
|
14
|
+
* name doesn't match, and within the matching sets return the first
|
|
15
|
+
* property/quantity whose name matches, in set order. Every reader of
|
|
16
|
+
* an entity's property/quantity sets should go through these instead
|
|
17
|
+
* of hand-rolling a two-step `.find`.
|
|
18
|
+
*/
|
|
19
|
+
/** Minimal shape a property/quantity needs to be matched by name. */
|
|
20
|
+
interface Named {
|
|
21
|
+
readonly name: string;
|
|
22
|
+
}
|
|
23
|
+
/** Minimal shape a property set needs: a name and a `properties` array. */
|
|
24
|
+
interface PropertySetLike<P extends Named> {
|
|
25
|
+
readonly name: string;
|
|
26
|
+
readonly properties: readonly P[];
|
|
27
|
+
}
|
|
28
|
+
/** Minimal shape a quantity set needs: a name and a `quantities` array. */
|
|
29
|
+
interface QuantitySetLike<Q extends Named> {
|
|
30
|
+
readonly name: string;
|
|
31
|
+
readonly quantities: readonly Q[];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Find a property by (setName, propName) across every property set
|
|
35
|
+
* carrying that name, first match across the sequence wins. Returns
|
|
36
|
+
* `undefined` when no same-named set carries a property with that name.
|
|
37
|
+
*/
|
|
38
|
+
export declare function findPropertyInSets<P extends Named>(sets: readonly PropertySetLike<P>[], setName: string, propName: string): P | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Find a quantity by (setName, quantityName) across every quantity set
|
|
41
|
+
* carrying that name, first match across the sequence wins. Returns
|
|
42
|
+
* `undefined` when no same-named set carries a quantity with that name.
|
|
43
|
+
*/
|
|
44
|
+
export declare function findQuantityInSets<Q extends Named>(sets: readonly QuantitySetLike<Q>[], setName: string, quantityName: string): Q | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* Find EVERY property named `propName`, across EVERY same-named
|
|
47
|
+
* (setName) property set — not just the first. For a caller evaluating a
|
|
48
|
+
* predicate ("does this entity have a set with this name and value?")
|
|
49
|
+
* first-match is wrong: an entity can carry two distinct `IfcPropertySet`s
|
|
50
|
+
* named e.g. "Pset_WallCommon" (one from the type, one from the
|
|
51
|
+
* occurrence), and the wanted value may live on the second one. Use this
|
|
52
|
+
* instead of `findPropertyInSets` when the result feeds a `.some(...)`
|
|
53
|
+
* predicate rather than a single value read; keep `findPropertyInSets` for
|
|
54
|
+
* value extraction (export/aggregation/display), where picking one member
|
|
55
|
+
* is the documented, correct behaviour.
|
|
56
|
+
*/
|
|
57
|
+
export declare function findAllPropertiesInSets<P extends Named>(sets: readonly PropertySetLike<P>[], setName: string, propName: string): P[];
|
|
58
|
+
/**
|
|
59
|
+
* Quantity counterpart to `findAllPropertiesInSets` — see its doc comment.
|
|
60
|
+
*/
|
|
61
|
+
export declare function findAllQuantitiesInSets<Q extends Named>(sets: readonly QuantitySetLike<Q>[], setName: string, quantityName: string): Q[];
|
|
62
|
+
export {};
|
|
63
|
+
//# sourceMappingURL=pset-lookup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pset-lookup.d.ts","sourceRoot":"","sources":["../src/pset-lookup.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH,qEAAqE;AACrE,UAAU,KAAK;IACb,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,2EAA2E;AAC3E,UAAU,eAAe,CAAC,CAAC,SAAS,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;CACnC;AAED,2EAA2E;AAC3E,UAAU,eAAe,CAAC,CAAC,SAAS,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;CACnC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,KAAK,EAChD,IAAI,EAAE,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,EACnC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,CAAC,GAAG,SAAS,CAOf;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,KAAK,EAChD,IAAI,EAAE,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,EACnC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,CAAC,GAAG,SAAS,CAOf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,KAAK,EACrD,IAAI,EAAE,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,EACnC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,CAAC,EAAE,CASL;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,KAAK,EACrD,IAAI,EAAE,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,EACnC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,CAAC,EAAE,CASL"}
|
|
@@ -0,0 +1,73 @@
|
|
|
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
|
+
* Find a property by (setName, propName) across every property set
|
|
6
|
+
* carrying that name, first match across the sequence wins. Returns
|
|
7
|
+
* `undefined` when no same-named set carries a property with that name.
|
|
8
|
+
*/
|
|
9
|
+
export function findPropertyInSets(sets, setName, propName) {
|
|
10
|
+
for (const set of sets) {
|
|
11
|
+
if (set.name !== setName)
|
|
12
|
+
continue;
|
|
13
|
+
const match = set.properties.find((p) => p.name === propName);
|
|
14
|
+
if (match)
|
|
15
|
+
return match;
|
|
16
|
+
}
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Find a quantity by (setName, quantityName) across every quantity set
|
|
21
|
+
* carrying that name, first match across the sequence wins. Returns
|
|
22
|
+
* `undefined` when no same-named set carries a quantity with that name.
|
|
23
|
+
*/
|
|
24
|
+
export function findQuantityInSets(sets, setName, quantityName) {
|
|
25
|
+
for (const set of sets) {
|
|
26
|
+
if (set.name !== setName)
|
|
27
|
+
continue;
|
|
28
|
+
const match = set.quantities.find((q) => q.name === quantityName);
|
|
29
|
+
if (match)
|
|
30
|
+
return match;
|
|
31
|
+
}
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Find EVERY property named `propName`, across EVERY same-named
|
|
36
|
+
* (setName) property set — not just the first. For a caller evaluating a
|
|
37
|
+
* predicate ("does this entity have a set with this name and value?")
|
|
38
|
+
* first-match is wrong: an entity can carry two distinct `IfcPropertySet`s
|
|
39
|
+
* named e.g. "Pset_WallCommon" (one from the type, one from the
|
|
40
|
+
* occurrence), and the wanted value may live on the second one. Use this
|
|
41
|
+
* instead of `findPropertyInSets` when the result feeds a `.some(...)`
|
|
42
|
+
* predicate rather than a single value read; keep `findPropertyInSets` for
|
|
43
|
+
* value extraction (export/aggregation/display), where picking one member
|
|
44
|
+
* is the documented, correct behaviour.
|
|
45
|
+
*/
|
|
46
|
+
export function findAllPropertiesInSets(sets, setName, propName) {
|
|
47
|
+
const matches = [];
|
|
48
|
+
for (const set of sets) {
|
|
49
|
+
if (set.name !== setName)
|
|
50
|
+
continue;
|
|
51
|
+
for (const p of set.properties) {
|
|
52
|
+
if (p.name === propName)
|
|
53
|
+
matches.push(p);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return matches;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Quantity counterpart to `findAllPropertiesInSets` — see its doc comment.
|
|
60
|
+
*/
|
|
61
|
+
export function findAllQuantitiesInSets(sets, setName, quantityName) {
|
|
62
|
+
const matches = [];
|
|
63
|
+
for (const set of sets) {
|
|
64
|
+
if (set.name !== setName)
|
|
65
|
+
continue;
|
|
66
|
+
for (const q of set.quantities) {
|
|
67
|
+
if (q.name === quantityName)
|
|
68
|
+
matches.push(q);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return matches;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=pset-lookup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pset-lookup.js","sourceRoot":"","sources":["../src/pset-lookup.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAsC/D;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAmC,EACnC,OAAe,EACf,QAAgB;IAEhB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;YAAE,SAAS;QACnC,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC9D,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAmC,EACnC,OAAe,EACf,YAAoB;IAEpB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;YAAE,SAAS;QACnC,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QAClE,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAmC,EACnC,OAAe,EACf,QAAgB;IAEhB,MAAM,OAAO,GAAQ,EAAE,CAAC;IACxB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;YAAE,SAAS;QACnC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAC/B,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAmC,EACnC,OAAe,EACf,YAAoB;IAEpB,MAAM,OAAO,GAAQ,EAAE,CAAC;IACxB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;YAAE,SAAS;QACnC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAC/B,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-result-entity.d.ts","sourceRoot":"","sources":["../src/query-result-entity.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"query-result-entity.d.ts","sourceRoot":"","sources":["../src/query-result-entity.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAe;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAG3B,OAAO,CAAC,WAAW,CAAC,CAAgB;IACpC,OAAO,CAAC,WAAW,CAAC,CAAgB;IACpC,OAAO,CAAC,SAAS,CAAC,CAAkB;gBAExB,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE;IAKtI,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,UAAU,IAAI,WAAW,EAAE,CAK9B;IAED,IAAI,UAAU,IAAI,WAAW,EAAE,CAK9B;IAED,IAAI,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAM9B;IAED,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAUrE,cAAc,IAAI,IAAI;IAMtB,cAAc,IAAI,IAAI;IAMtB,YAAY,IAAI,IAAI;IAQpB,MAAM,IAAI,UAAU;IAIpB,MAAM,IAAI,MAAM;CAUjB"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
4
|
import { EntityNode } from './entity-node.js';
|
|
5
|
+
import { resolveEntityTypeName } from './resolve-type-name.js';
|
|
5
6
|
export class QueryResultEntity {
|
|
6
7
|
store;
|
|
7
8
|
expressId;
|
|
@@ -20,7 +21,7 @@ export class QueryResultEntity {
|
|
|
20
21
|
return this.store.entities.getName(this.expressId);
|
|
21
22
|
}
|
|
22
23
|
get type() {
|
|
23
|
-
return this.store
|
|
24
|
+
return resolveEntityTypeName(this.store, this.expressId);
|
|
24
25
|
}
|
|
25
26
|
get properties() {
|
|
26
27
|
if (this._properties !== undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-result-entity.js","sourceRoot":"","sources":["../src/query-result-entity.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAS/D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"query-result-entity.js","sourceRoot":"","sources":["../src/query-result-entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { IfcStoreBase as IfcDataStore } from '@ifc-lite/data';
|
|
2
|
+
/**
|
|
3
|
+
* An entity's IFC class in canonical PascalCase.
|
|
4
|
+
*
|
|
5
|
+
* `store.entities` indexes products, so it holds no row for an
|
|
6
|
+
* `IfcPropertySet`, `IfcElementQuantity`, `IfcRelDefinesByProperties` or
|
|
7
|
+
* `IfcRelAssociatesMaterial`, and `getTypeName` answers `'Unknown'` for all
|
|
8
|
+
* four — while the parsed entity index knew the class the whole time, as the
|
|
9
|
+
* raw uppercase STEP token. `'Unknown'` is the value callers key passes on, so
|
|
10
|
+
* iterating a model's classes by it silently skips every entity of those
|
|
11
|
+
* classes.
|
|
12
|
+
*
|
|
13
|
+
* Its own `rawTypeName` fallback cannot cover this, because for these entities
|
|
14
|
+
* the table has no row at all to fall back within.
|
|
15
|
+
*
|
|
16
|
+
* Normalising through `normalizeIfcTypeName` rather than a name map keeps the
|
|
17
|
+
* answer correct for classes outside any single curated table — the same
|
|
18
|
+
* reasoning that moved `isProductType` off `IfcTypeEnum`. Handing back the raw
|
|
19
|
+
* uppercase token would just be a second wrong answer.
|
|
20
|
+
*/
|
|
21
|
+
export declare function resolveEntityTypeName(store: IfcDataStore, expressId: number): string;
|
|
22
|
+
//# sourceMappingURL=resolve-type-name.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-type-name.d.ts","sourceRoot":"","sources":["../src/resolve-type-name.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAenE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAKpF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
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
|
+
import { normalizeIfcTypeName } from '@ifc-lite/parser';
|
|
5
|
+
/**
|
|
6
|
+
* The raw STEP class token off an entity-index entry.
|
|
7
|
+
*
|
|
8
|
+
* `IfcStoreBase` types the index values as `unknown` on purpose — the ref shape
|
|
9
|
+
* belongs to the parser — so this narrows structurally rather than casting.
|
|
10
|
+
*/
|
|
11
|
+
function rawTypeOf(ref) {
|
|
12
|
+
if (ref === null || typeof ref !== 'object' || !('type' in ref))
|
|
13
|
+
return undefined;
|
|
14
|
+
const { type } = ref;
|
|
15
|
+
return typeof type === 'string' ? type : undefined;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* An entity's IFC class in canonical PascalCase.
|
|
19
|
+
*
|
|
20
|
+
* `store.entities` indexes products, so it holds no row for an
|
|
21
|
+
* `IfcPropertySet`, `IfcElementQuantity`, `IfcRelDefinesByProperties` or
|
|
22
|
+
* `IfcRelAssociatesMaterial`, and `getTypeName` answers `'Unknown'` for all
|
|
23
|
+
* four — while the parsed entity index knew the class the whole time, as the
|
|
24
|
+
* raw uppercase STEP token. `'Unknown'` is the value callers key passes on, so
|
|
25
|
+
* iterating a model's classes by it silently skips every entity of those
|
|
26
|
+
* classes.
|
|
27
|
+
*
|
|
28
|
+
* Its own `rawTypeName` fallback cannot cover this, because for these entities
|
|
29
|
+
* the table has no row at all to fall back within.
|
|
30
|
+
*
|
|
31
|
+
* Normalising through `normalizeIfcTypeName` rather than a name map keeps the
|
|
32
|
+
* answer correct for classes outside any single curated table — the same
|
|
33
|
+
* reasoning that moved `isProductType` off `IfcTypeEnum`. Handing back the raw
|
|
34
|
+
* uppercase token would just be a second wrong answer.
|
|
35
|
+
*/
|
|
36
|
+
export function resolveEntityTypeName(store, expressId) {
|
|
37
|
+
const fromTable = store.entities.getTypeName(expressId);
|
|
38
|
+
if (fromTable !== 'Unknown')
|
|
39
|
+
return fromTable;
|
|
40
|
+
const raw = rawTypeOf(store.entityIndex.byId.get(expressId));
|
|
41
|
+
return raw === undefined ? fromTable : normalizeIfcTypeName(raw);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=resolve-type-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-type-name.js","sourceRoot":"","sources":["../src/resolve-type-name.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAG/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD;;;;;GAKG;AACH,SAAS,SAAS,CAAC,GAAY;IAC7B,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAClF,MAAM,EAAE,IAAI,EAAE,GAAG,GAAwB,CAAC;IAC1C,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACrD,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAmB,EAAE,SAAiB;IAC1E,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACxD,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC9C,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7D,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;AACnE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ifc-lite/query",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Query system for IFC-Lite",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@ifc-lite/parser": "^
|
|
17
|
-
"@ifc-lite/data": "^
|
|
18
|
-
"@ifc-lite/spatial": "^1.14.
|
|
19
|
-
"@ifc-lite/geometry": "^
|
|
16
|
+
"@ifc-lite/parser": "^5.0.0",
|
|
17
|
+
"@ifc-lite/data": "^4.0.0",
|
|
18
|
+
"@ifc-lite/spatial": "^1.14.16",
|
|
19
|
+
"@ifc-lite/geometry": "^4.2.0"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"typescript": "^6.0.3",
|
|
23
|
-
"vitest": "^4.1.
|
|
23
|
+
"vitest": "^4.1.11"
|
|
24
24
|
},
|
|
25
25
|
"license": "MPL-2.0",
|
|
26
26
|
"author": "Louis True",
|