brepjs-bim 0.17.0 → 0.17.1

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.
@@ -7393,8 +7393,10 @@ function disposeAll(solids) {
7393
7393
  *
7394
7394
  * Stairs and ramps carry no element solid (`.geometry` is null), so flight
7395
7395
  * solids are built from `spec.flights` and placed per flight. Curtain walls
7396
- * return placed panels + mullions. Elements with no solid geometry
7397
- * (doors/windows/groups/spatial) return an empty array.
7396
+ * return placed panels + mullions. Proxies are authored in world coordinates
7397
+ * (no placement frame), so their solid is returned as a fresh identity-placed
7398
+ * copy. Elements with no solid geometry (doors/windows/groups/spatial) return
7399
+ * an empty array.
7398
7400
  */
7399
7401
  function placedSolids(el) {
7400
7402
  switch (el.category) {
@@ -7456,6 +7458,27 @@ function placedSolids(el) {
7456
7458
  }
7457
7459
  return (0, brepjs.ok)(out);
7458
7460
  }
7461
+ case "PROXY": {
7462
+ const placed = place(el.geometry, {
7463
+ origin: [
7464
+ 0,
7465
+ 0,
7466
+ 0
7467
+ ],
7468
+ axisX: [
7469
+ 1,
7470
+ 0,
7471
+ 0
7472
+ ],
7473
+ axisZ: [
7474
+ 0,
7475
+ 0,
7476
+ 1
7477
+ ]
7478
+ });
7479
+ if (!placed.ok) return placed;
7480
+ return (0, brepjs.ok)([placed.value]);
7481
+ }
7459
7482
  case "CURTAIN_WALL": {
7460
7483
  const out = [];
7461
7484
  for (const c of [...el.geometry.panels, ...el.geometry.mullions]) try {
@@ -7370,8 +7370,10 @@ function disposeAll(solids) {
7370
7370
  *
7371
7371
  * Stairs and ramps carry no element solid (`.geometry` is null), so flight
7372
7372
  * solids are built from `spec.flights` and placed per flight. Curtain walls
7373
- * return placed panels + mullions. Elements with no solid geometry
7374
- * (doors/windows/groups/spatial) return an empty array.
7373
+ * return placed panels + mullions. Proxies are authored in world coordinates
7374
+ * (no placement frame), so their solid is returned as a fresh identity-placed
7375
+ * copy. Elements with no solid geometry (doors/windows/groups/spatial) return
7376
+ * an empty array.
7375
7377
  */
7376
7378
  function placedSolids(el) {
7377
7379
  switch (el.category) {
@@ -7433,6 +7435,27 @@ function placedSolids(el) {
7433
7435
  }
7434
7436
  return ok(out);
7435
7437
  }
7438
+ case "PROXY": {
7439
+ const placed = place(el.geometry, {
7440
+ origin: [
7441
+ 0,
7442
+ 0,
7443
+ 0
7444
+ ],
7445
+ axisX: [
7446
+ 1,
7447
+ 0,
7448
+ 0
7449
+ ],
7450
+ axisZ: [
7451
+ 0,
7452
+ 0,
7453
+ 1
7454
+ ]
7455
+ });
7456
+ if (!placed.ok) return placed;
7457
+ return ok([placed.value]);
7458
+ }
7436
7459
  case "CURTAIN_WALL": {
7437
7460
  const out = [];
7438
7461
  for (const c of [...el.geometry.panels, ...el.geometry.mullions]) try {
@@ -12,7 +12,9 @@ import { BimError } from '../errors/bimError.js';
12
12
  *
13
13
  * Stairs and ramps carry no element solid (`.geometry` is null), so flight
14
14
  * solids are built from `spec.flights` and placed per flight. Curtain walls
15
- * return placed panels + mullions. Elements with no solid geometry
16
- * (doors/windows/groups/spatial) return an empty array.
15
+ * return placed panels + mullions. Proxies are authored in world coordinates
16
+ * (no placement frame), so their solid is returned as a fresh identity-placed
17
+ * copy. Elements with no solid geometry (doors/windows/groups/spatial) return
18
+ * an empty array.
17
19
  */
18
20
  export declare function placedSolids(el: AnyBimElement): Result<readonly ValidSolid[], BimError>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brepjs-bim",
3
- "version": "0.17.0",
3
+ "version": "0.17.1",
4
4
  "description": "BIM layer for brepjs — IFC4-aligned parametric building elements",
5
5
  "keywords": [
6
6
  "bim",