brepjs-bim 0.16.0 → 0.17.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/README.md +22 -17
- package/dist/brepjs-bim.cjs +1160 -288
- package/dist/brepjs-bim.js +1160 -289
- package/dist/elementFns/placedGeometry.d.ts +4 -4
- package/dist/ifc-writer/headerWriter.d.ts +7 -0
- package/dist/index.d.ts +2 -1
- package/dist/specs/spatialSpec.d.ts +24 -0
- package/dist/validation/gherkinChecks.d.ts +18 -0
- package/dist/validation/qtoDefinitions.generated.d.ts +5 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -23,7 +23,8 @@ curtain walls, a panel/mullion grid). Element geometry is **unplaced template ge
|
|
|
23
23
|
coordinates — placement (`origin` / `axisX` / `axisZ`) is applied by the IFC layer via
|
|
24
24
|
`IfcLocalPlacement`, not baked into the brepjs solid. Use `placedSolids(element)` to read an
|
|
25
25
|
element's geometry already transformed to its world placement as fresh, caller-owned solids
|
|
26
|
-
(stairs return one solid per flight
|
|
26
|
+
(stairs and ramps return one solid per flight, curtain walls their panels and mullions) — handy
|
|
27
|
+
for display so the on-screen scene matches the IFC
|
|
27
28
|
export.
|
|
28
29
|
|
|
29
30
|
- Units default to mm; IFC export emits SI metres.
|
|
@@ -35,18 +36,18 @@ export.
|
|
|
35
36
|
|
|
36
37
|
## Status
|
|
37
38
|
|
|
38
|
-
| Area | State
|
|
39
|
-
| ----------------- |
|
|
40
|
-
| Elements | wall, slab, beam, column, roof, curtain wall, space, footing/pile, stair, ramp, railing, covering, proxy
|
|
41
|
-
| Profiles | rectangular / circular / I-shape cores + extended L/T/U/Z/C, hollow, ellipse, arbitrary-with-voids
|
|
42
|
-
| Openings | door / window / slab openings cut as boolean voids; `FillsOpening` / `Voids*` relationships
|
|
43
|
-
| Spatial structure | project → site → building → storey aggregation; `placeIn` to assign elements to a storey
|
|
44
|
-
| Property sets | IFC pset templates + measure types; quantity sets for takeoff
|
|
45
|
-
| Data layers | materials (layer/profile/simple sets), classification refs, surface styles, zones/systems
|
|
46
|
-
| IFC export | `toIfc` → IFC-SPF (`Uint8Array`); IFC4 / IFC4X3 schema selection; owner history
|
|
47
|
-
| IFC import | `fromIfc` / `SpfReader` → `ImportedModel` (elements, geometry, psets, materials, spatial tree)
|
|
48
|
-
| Validation | referential integrity, schema check, geometry validity, IFC round-trip report
|
|
49
|
-
| Interop | COBie 2.4 export (CSV/JSON), IDS 1.0 checking, BCF 3.0 read/write
|
|
39
|
+
| Area | State |
|
|
40
|
+
| ----------------- | ---------------------------------------------------------------------------------------------------------- |
|
|
41
|
+
| Elements | wall, slab, beam, column, roof, curtain wall, space, footing/pile, stair, ramp, railing, covering, proxy |
|
|
42
|
+
| Profiles | rectangular / circular / I-shape cores + extended L/T/U/Z/C, hollow, ellipse, arbitrary-with-voids |
|
|
43
|
+
| Openings | door / window / slab openings cut as boolean voids; `FillsOpening` / `Voids*` relationships |
|
|
44
|
+
| Spatial structure | project → site → building → storey aggregation; `placeIn` to assign elements to a storey |
|
|
45
|
+
| Property sets | IFC pset templates + measure types; quantity sets for takeoff |
|
|
46
|
+
| Data layers | materials (layer/profile/simple sets), classification refs, surface styles, zones/systems |
|
|
47
|
+
| IFC export | `toIfc` → IFC-SPF (`Uint8Array`); IFC4 / IFC4X3 schema selection; owner history |
|
|
48
|
+
| IFC import | `fromIfc` / `SpfReader` → `ImportedModel` (elements, geometry, psets, materials, spatial tree) |
|
|
49
|
+
| Validation | referential integrity, schema check, geometry validity, IFC round-trip report, buildingSMART gherkin rules |
|
|
50
|
+
| Interop | COBie 2.4 export (CSV/JSON), IDS 1.0 checking, BCF 3.0 read/write |
|
|
50
51
|
|
|
51
52
|
### Independent validation
|
|
52
53
|
|
|
@@ -56,9 +57,13 @@ web-ifc parser used internally), not just self-checked. The committed sample
|
|
|
56
57
|
validator and generates geometry for every product. See [VALIDATION.md](./VALIDATION.md)
|
|
57
58
|
to reproduce, and `examples/sampleBuilding.mjs` for the model it validates.
|
|
58
59
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
The buildingSMART Validation Service's complete normative rule catalog also runs
|
|
61
|
+
locally (`scripts/setupGherkinRunner.sh` builds the service's own engine; all three
|
|
62
|
+
committed fixtures pass 950 scenarios with zero failures), so service findings are
|
|
63
|
+
reproducible before upload.
|
|
64
|
+
|
|
65
|
+
> **Not yet:** desktop-tool interop (Revit / Solibri) is unverified. The fixtures
|
|
66
|
+
> and per-tool checklists are ready in [VALIDATION.md](./VALIDATION.md). This is an
|
|
62
67
|
> experimental pre-1.0 package and the API may change.
|
|
63
68
|
|
|
64
69
|
## Usage
|
|
@@ -98,7 +103,7 @@ if (wall.ok) model.placeIn(wall.value, storeyId);
|
|
|
98
103
|
const solid = model.getWalls()[0]?.geometry;
|
|
99
104
|
|
|
100
105
|
// Serialize to an IFC-SPF byte buffer.
|
|
101
|
-
const ifc = await toIfc(model, {
|
|
106
|
+
const ifc = await toIfc(model, { applicationName: 'brepjs-bim', applicationVersion: '1.0' });
|
|
102
107
|
// ifc.ok && ifc.value instanceof Uint8Array
|
|
103
108
|
```
|
|
104
109
|
|