brepjs-bim 0.1.0 → 0.3.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 CHANGED
@@ -1,6 +1,10 @@
1
1
  # brepjs-bim
2
2
 
3
- > Experimental, unpublished satellite package.
3
+ > Experimental satellite package, published to npm. Early-stage — the API may change.
4
+
5
+ ```bash
6
+ npm install brepjs-bim
7
+ ```
4
8
 
5
9
  A BIM (Building Information Modeling) layer for [brepjs](https://github.com/andymai/brepjs). It
6
10
  authors IFC4-aligned parametric building elements (walls, slabs, beams, columns, roofs, curtain
@@ -17,10 +21,17 @@ useful downstream (psets, classification, materials, quantities), with import, e
17
21
  validation. Geometry is produced by brepjs (OCCT); each element carries a `ValidSolid` (or, for
18
22
  curtain walls, a panel/mullion grid). Element geometry is **unplaced template geometry** in local
19
23
  coordinates — placement (`origin` / `axisX` / `axisZ`) is applied by the IFC layer via
20
- `IfcLocalPlacement`, not baked into the brepjs solid.
24
+ `IfcLocalPlacement`, not baked into the brepjs solid. Use `placedSolids(element)` to read an
25
+ element's geometry already transformed to its world placement as fresh, caller-owned solids
26
+ (stairs return one solid per flight) — handy for display so the on-screen scene matches the IFC
27
+ export.
21
28
 
22
29
  - Units default to mm; IFC export emits SI metres.
23
30
  - Stable identity: deterministic IFC GUIDs (`deriveIfcGuid`) and local id counters.
31
+ - Shaped geometry: roofs build real shed/gable/hip/dome solids when `pitch` is set (flat slab
32
+ otherwise); railings build posts + top/bottom rails with `infill: 'POSTED'` (a single swept panel
33
+ otherwise). Shaped roofs and posted railings serialize to IFC as tessellated bodies; flat roofs
34
+ and panel railings keep their parametric `IfcExtrudedAreaSolid`.
24
35
 
25
36
  ## Status
26
37
 
@@ -37,6 +48,18 @@ coordinates — placement (`origin` / `axisX` / `axisZ`) is applied by the IFC l
37
48
  | Validation | referential integrity, schema check, geometry validity, IFC round-trip report |
38
49
  | Interop | COBie 2.4 export (CSV/JSON), IDS 1.0 checking, BCF 3.0 read/write |
39
50
 
51
+ ### Independent validation
52
+
53
+ The exported IFC is validated by **IfcOpenShell** (a separate implementation from the
54
+ web-ifc parser used internally), not just self-checked. The committed sample
55
+ (`examples/sample-building.ifc`) passes IfcOpenShell's EXPRESS schema + where-rule
56
+ validator and generates geometry for every product. See [VALIDATION.md](./VALIDATION.md)
57
+ to reproduce, and `examples/sampleBuilding.mjs` for the model it validates.
58
+
59
+ > **Not yet:** the official buildingSMART Validation Service and desktop-tool
60
+ > interop (Revit / ArchiCAD / Solibri) are unverified. This is an early-stage
61
+ > (`0.1.x`) experimental package and the API will change.
62
+
40
63
  ## Usage
41
64
 
42
65
  Author a small model and export IFC: