@ifc-lite/create 2.2.1 → 2.5.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.
Files changed (62) hide show
  1. package/dist/ifc-creator-math.d.ts +14 -0
  2. package/dist/ifc-creator-math.d.ts.map +1 -1
  3. package/dist/ifc-creator-math.js +36 -0
  4. package/dist/ifc-creator-math.js.map +1 -1
  5. package/dist/ifc-creator-scheduling.d.ts +27 -0
  6. package/dist/ifc-creator-scheduling.d.ts.map +1 -0
  7. package/dist/ifc-creator-scheduling.js +131 -0
  8. package/dist/ifc-creator-scheduling.js.map +1 -0
  9. package/dist/ifc-creator.d.ts +23 -6
  10. package/dist/ifc-creator.d.ts.map +1 -1
  11. package/dist/ifc-creator.js +39 -59
  12. package/dist/ifc-creator.js.map +1 -1
  13. package/dist/in-store/anchor.d.ts +16 -1
  14. package/dist/in-store/anchor.d.ts.map +1 -1
  15. package/dist/in-store/anchor.js +20 -0
  16. package/dist/in-store/anchor.js.map +1 -1
  17. package/dist/in-store/drawing-markup-geometry.d.ts +46 -0
  18. package/dist/in-store/drawing-markup-geometry.d.ts.map +1 -0
  19. package/dist/in-store/drawing-markup-geometry.js +80 -0
  20. package/dist/in-store/drawing-markup-geometry.js.map +1 -0
  21. package/dist/in-store/drawing-markup-tags.d.ts +29 -0
  22. package/dist/in-store/drawing-markup-tags.d.ts.map +1 -0
  23. package/dist/in-store/drawing-markup-tags.js +31 -0
  24. package/dist/in-store/drawing-markup-tags.js.map +1 -0
  25. package/dist/in-store/drawing-markup.d.ts +184 -0
  26. package/dist/in-store/drawing-markup.d.ts.map +1 -0
  27. package/dist/in-store/drawing-markup.js +196 -0
  28. package/dist/in-store/drawing-markup.js.map +1 -0
  29. package/dist/in-store/extract-walls.d.ts +16 -16
  30. package/dist/in-store/extract-walls.d.ts.map +1 -1
  31. package/dist/in-store/extract-walls.js +31 -289
  32. package/dist/in-store/extract-walls.js.map +1 -1
  33. package/dist/in-store/length-unit-scale.d.ts +34 -0
  34. package/dist/in-store/length-unit-scale.d.ts.map +1 -0
  35. package/dist/in-store/length-unit-scale.js +44 -0
  36. package/dist/in-store/length-unit-scale.js.map +1 -0
  37. package/dist/in-store/placement-frame.d.ts +132 -0
  38. package/dist/in-store/placement-frame.d.ts.map +1 -0
  39. package/dist/in-store/placement-frame.js +266 -0
  40. package/dist/in-store/placement-frame.js.map +1 -0
  41. package/dist/in-store/resolve-anchor.d.ts.map +1 -1
  42. package/dist/in-store/resolve-anchor.js +7 -14
  43. package/dist/in-store/resolve-anchor.js.map +1 -1
  44. package/dist/in-store/resolve-source.d.ts.map +1 -1
  45. package/dist/in-store/resolve-source.js +3 -10
  46. package/dist/in-store/resolve-source.js.map +1 -1
  47. package/dist/in-store/spatial-zone.js +1 -1
  48. package/dist/in-store/storey-plan-frame.d.ts +69 -0
  49. package/dist/in-store/storey-plan-frame.d.ts.map +1 -0
  50. package/dist/in-store/storey-plan-frame.js +157 -0
  51. package/dist/in-store/storey-plan-frame.js.map +1 -0
  52. package/dist/index.d.ts +4 -1
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +3 -0
  55. package/dist/index.js.map +1 -1
  56. package/dist/types-scheduling.d.ts +169 -0
  57. package/dist/types-scheduling.d.ts.map +1 -0
  58. package/dist/types-scheduling.js +5 -0
  59. package/dist/types-scheduling.js.map +1 -0
  60. package/dist/types.d.ts +1 -96
  61. package/dist/types.d.ts.map +1 -1
  62. package/package.json +4 -4
@@ -0,0 +1,69 @@
1
+ /**
2
+ * The storey's own plan frame, expressed in the MODEL'S WORLD FRAME — the whole
3
+ * `IfcLocalPlacement` chain the storey hangs from (storey axis ∘ building ∘
4
+ * site ∘ …), composed, in metres — plus the two folds between that frame and
5
+ * the storey-local one.
6
+ *
7
+ * Why this exists. `addSpaceToStore` authors the outer curve under a placement
8
+ * whose `PlacementRelTo` is the storey's own placement, so every coordinate it
9
+ * is handed is read back through that chain. A producer that already works in
10
+ * world coordinates — anything derived from rendered geometry, which has the
11
+ * chain baked in — must therefore divide the chain out first, or the reader
12
+ * applies it a second time and the room lands a whole site offset and rotation
13
+ * away from the walls it was drawn between. The headless producers
14
+ * (`extractWallSegmentsForStorey`, `existingSpaceFootprintsByStorey`) are
15
+ * storey-local for exactly this reason; these two functions let a world-frame
16
+ * producer join them.
17
+ *
18
+ * Refusing rather than guessing is deliberate in both failure modes below. A
19
+ * subtly turned room is not visible in the tool that drew it: it shows up when
20
+ * somebody else opens the exported file, or when the area is quoted in a
21
+ * schedule.
22
+ */
23
+ import { type IfcDataStore } from '@ifc-lite/parser';
24
+ import type { Vec2 } from './auto-space-detect.js';
25
+ /**
26
+ * A storey's placement chain reduced to a planar rigid motion in the model's
27
+ * world frame, in metres: `world = R · storeyLocal + origin`, with `R` the
28
+ * rotation whose first column is `axisX`.
29
+ */
30
+ export interface StoreyPlanFrame {
31
+ /** The storey origin in world-frame metres. */
32
+ origin: Vec2;
33
+ /** The storey's local X axis in the world frame, unit length. */
34
+ axisX: Vec2;
35
+ }
36
+ /**
37
+ * Compose the storey's whole placement chain into a world-frame plan frame, in
38
+ * metres.
39
+ *
40
+ * A storey with NO `ObjectPlacement` — it is OPTIONAL on `IfcProduct`, and real
41
+ * files leave it out — gets the identity, which is the answer rather than a
42
+ * guess: a product with no placement carries no transform, and the authoring
43
+ * side materialises exactly that (an `IfcLocalPlacement` at the origin with no
44
+ * `PlacementRelTo`) before it writes.
45
+ *
46
+ * Returns `null` — refusing, never approximating — when:
47
+ * - the storey itself will not read, so there is nothing to say;
48
+ * - any link in the chain will not read (a missing `RelativePlacement`,
49
+ * `Location`, or a dangling reference), so only part of the chain could be
50
+ * composed and a partial chain moves the geometry by the wrong amount;
51
+ * - any link tips out of plan — an `IfcAxis2Placement3D.Axis` that is not
52
+ * +Z — because a tilted chain has no planar inverse, and projecting it
53
+ * yields a room that is turned rather than one that is obviously wrong;
54
+ * - the chain closes on itself, so composing every link of it reaches no
55
+ * world frame to express the result in.
56
+ */
57
+ export declare function storeyPlanFrame(store: IfcDataStore, storeyExpressId: number): StoreyPlanFrame | null;
58
+ /**
59
+ * World-frame point → the storey-local frame `addSpaceToStore` writes into:
60
+ * `Rᵀ · (p − origin)`.
61
+ */
62
+ export declare function toStoreyLocal(frame: StoreyPlanFrame, p: Vec2): Vec2;
63
+ /**
64
+ * Storey-local point → the world frame: `R · p + origin`. The inverse of
65
+ * {@link toStoreyLocal}, for reading storey-local geometry (an authored space
66
+ * footprint) back into a world-frame comparison.
67
+ */
68
+ export declare function fromStoreyLocal(frame: StoreyPlanFrame, p: Vec2): Vec2;
69
+ //# sourceMappingURL=storey-plan-frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storey-plan-frame.d.ts","sourceRoot":"","sources":["../../src/in-store/storey-plan-frame.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAUnD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,MAAM,EAAE,IAAI,CAAC;IACb,iEAAiE;IACjE,KAAK,EAAE,IAAI,CAAC;CACb;AAQD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,MAAM,GACtB,eAAe,GAAG,IAAI,CA6BxB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAKnE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAMrE"}
@@ -0,0 +1,157 @@
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
+ * The storey's own plan frame, expressed in the MODEL'S WORLD FRAME — the whole
6
+ * `IfcLocalPlacement` chain the storey hangs from (storey axis ∘ building ∘
7
+ * site ∘ …), composed, in metres — plus the two folds between that frame and
8
+ * the storey-local one.
9
+ *
10
+ * Why this exists. `addSpaceToStore` authors the outer curve under a placement
11
+ * whose `PlacementRelTo` is the storey's own placement, so every coordinate it
12
+ * is handed is read back through that chain. A producer that already works in
13
+ * world coordinates — anything derived from rendered geometry, which has the
14
+ * chain baked in — must therefore divide the chain out first, or the reader
15
+ * applies it a second time and the room lands a whole site offset and rotation
16
+ * away from the walls it was drawn between. The headless producers
17
+ * (`extractWallSegmentsForStorey`, `existingSpaceFootprintsByStorey`) are
18
+ * storey-local for exactly this reason; these two functions let a world-frame
19
+ * producer join them.
20
+ *
21
+ * Refusing rather than guessing is deliberate in both failure modes below. A
22
+ * subtly turned room is not visible in the tool that drew it: it shows up when
23
+ * somebody else opens the exported file, or when the area is quoted in a
24
+ * schedule.
25
+ */
26
+ import { EntityExtractor } from '@ifc-lite/parser';
27
+ import { safeLengthUnitScale } from './length-unit-scale.js';
28
+ import { numericAttr, readEntity, readVec3, storeyFrameAboveBy, storeyPlacementChain, } from './placement-frame.js';
29
+ /** A placement `Axis` is treated as vertical within this of unit +Z. */
30
+ const VERTICAL_EPS = 1e-6;
31
+ /** The frame of a storey that carries no placement at all: no transform. */
32
+ const IDENTITY_FRAME = { origin: [0, 0], axisX: [1, 0] };
33
+ /**
34
+ * Compose the storey's whole placement chain into a world-frame plan frame, in
35
+ * metres.
36
+ *
37
+ * A storey with NO `ObjectPlacement` — it is OPTIONAL on `IfcProduct`, and real
38
+ * files leave it out — gets the identity, which is the answer rather than a
39
+ * guess: a product with no placement carries no transform, and the authoring
40
+ * side materialises exactly that (an `IfcLocalPlacement` at the origin with no
41
+ * `PlacementRelTo`) before it writes.
42
+ *
43
+ * Returns `null` — refusing, never approximating — when:
44
+ * - the storey itself will not read, so there is nothing to say;
45
+ * - any link in the chain will not read (a missing `RelativePlacement`,
46
+ * `Location`, or a dangling reference), so only part of the chain could be
47
+ * composed and a partial chain moves the geometry by the wrong amount;
48
+ * - any link tips out of plan — an `IfcAxis2Placement3D.Axis` that is not
49
+ * +Z — because a tilted chain has no planar inverse, and projecting it
50
+ * yields a room that is turned rather than one that is obviously wrong;
51
+ * - the chain closes on itself, so composing every link of it reaches no
52
+ * world frame to express the result in.
53
+ */
54
+ export function storeyPlanFrame(store, storeyExpressId) {
55
+ if (!store.source)
56
+ return null;
57
+ const extractor = new EntityExtractor(store.source);
58
+ const storey = readEntity(store, extractor, undefined, storeyExpressId);
59
+ if (!storey)
60
+ return null;
61
+ if (numericAttr(storey.attributes[5]) === null)
62
+ return IDENTITY_FRAME; // ObjectPlacement
63
+ const chain = storeyPlacementChain(store, extractor, undefined, storeyExpressId);
64
+ if (!chain || chain.size === 0)
65
+ return null;
66
+ for (const placementId of chain.keys()) {
67
+ if (!placementIsInPlan(store, extractor, placementId))
68
+ return null;
69
+ }
70
+ // `hops === chain.size` composes every link, so the result is expressed in
71
+ // the frame the topmost link's parent would be in — the world frame, PROVIDED
72
+ // the topmost link has no `PlacementRelTo`. `storeyPlacementChain` also stops
73
+ // on a `PlacementRelTo` it has already visited, so a self-referential chain in
74
+ // malformed IFC ends with a link that still has a parent, and composing every
75
+ // link then lands in no frame at all rather than the world. Refuse.
76
+ const last = [...chain.keys()][chain.size - 1];
77
+ const lastPlacement = readEntity(store, extractor, undefined, last);
78
+ if (lastPlacement && numericAttr(lastPlacement.attributes[0]) !== null)
79
+ return null;
80
+ const frame = storeyFrameAboveBy(store, extractor, undefined, chain, chain.size);
81
+ if (!frame)
82
+ return null;
83
+ // A thrown or degenerate unit lookup is not a reason to author a space a
84
+ // thousand times too far out: the origin below is a translation in file
85
+ // units, so a millimetre model read as metres moves the room by
86
+ // kilometres. Refuse.
87
+ const scale = safeLengthUnitScale(store.source, store.entityIndex, 'storeyPlanFrame');
88
+ if (scale === null)
89
+ return null;
90
+ return { origin: [frame.origin[0] * scale, frame.origin[1] * scale], axisX: frame.axisX };
91
+ }
92
+ /**
93
+ * World-frame point → the storey-local frame `addSpaceToStore` writes into:
94
+ * `Rᵀ · (p − origin)`.
95
+ */
96
+ export function toStoreyLocal(frame, p) {
97
+ const [c, s] = frame.axisX;
98
+ const dx = p[0] - frame.origin[0];
99
+ const dy = p[1] - frame.origin[1];
100
+ return [c * dx + s * dy, -s * dx + c * dy];
101
+ }
102
+ /**
103
+ * Storey-local point → the world frame: `R · p + origin`. The inverse of
104
+ * {@link toStoreyLocal}, for reading storey-local geometry (an authored space
105
+ * footprint) back into a world-frame comparison.
106
+ */
107
+ export function fromStoreyLocal(frame, p) {
108
+ const [c, s] = frame.axisX;
109
+ return [
110
+ frame.origin[0] + c * p[0] - s * p[1],
111
+ frame.origin[1] + s * p[0] + c * p[1],
112
+ ];
113
+ }
114
+ /**
115
+ * Whether one `IfcLocalPlacement`'s own axis keeps the chain in plan: its
116
+ * `IfcAxis2Placement3D.Axis` is ABSENT — the +Z default the schema gives it —
117
+ * or is present and reads as +Z.
118
+ *
119
+ * The split at `axisId` is the whole point. Everything above it (the placement,
120
+ * its `RelativePlacement`, that axis placement) is read again by
121
+ * `readOwnPlacementFrame`, which returns null for each, so reporting those as
122
+ * in-plan here does not let them through — the composition refuses instead, and
123
+ * the two checks do not disagree about which failure the caller is told about.
124
+ * `Axis` is the exception: NOTHING else reads it. `readOwnPlacementFrame` takes
125
+ * `Location` and `RefDirection` and never looks at it. So a present `Axis` that
126
+ * dangles, will not parse, or is the zero vector has to be refused HERE or it
127
+ * is silently taken for +Z — which is the guess this function exists to
128
+ * prevent, on the one input where the guess cannot be checked.
129
+ */
130
+ function placementIsInPlan(store, extractor, placementId) {
131
+ const placement = readEntity(store, extractor, undefined, placementId);
132
+ if (!placement)
133
+ return true;
134
+ const axisPlacementId = numericAttr(placement.attributes[1]); // RelativePlacement
135
+ if (axisPlacementId === null)
136
+ return true;
137
+ const axisPlacement = readEntity(store, extractor, undefined, axisPlacementId);
138
+ if (!axisPlacement)
139
+ return true;
140
+ const axisId = numericAttr(axisPlacement.attributes[1]); // Axis
141
+ if (axisId === null)
142
+ return true; // absent: +Z by default, per IFC
143
+ // Present from here on — any failure to read it is a refusal, not a default.
144
+ const axisDir = readEntity(store, extractor, undefined, axisId);
145
+ if (!axisDir)
146
+ return false;
147
+ const v = readVec3(axisDir.attributes[0]);
148
+ if (!v)
149
+ return false;
150
+ const len = Math.hypot(v[0], v[1], v[2]);
151
+ if (!(len > 0) || !Number.isFinite(len))
152
+ return false;
153
+ return Math.abs(v[0] / len) < VERTICAL_EPS
154
+ && Math.abs(v[1] / len) < VERTICAL_EPS
155
+ && v[2] / len > 0;
156
+ }
157
+ //# sourceMappingURL=storey-plan-frame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storey-plan-frame.js","sourceRoot":"","sources":["../../src/in-store/storey-plan-frame.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -35,12 +35,15 @@ export { addRoofToStore, type RoofInStoreParams, type RoofRectangleParams, type
35
35
  export { addPlateToStore, type PlateInStoreParams, type PlateRectangleParams, type PlatePolygonParams, type PlateBuildResult } from './in-store/plate.js';
36
36
  export { addMemberToStore, type MemberInStoreParams, type MemberBuildResult } from './in-store/member.js';
37
37
  export { resolveSpatialAnchor } from './in-store/resolve-anchor.js';
38
+ export { toNativeLength, fromNativeLength } from './in-store/anchor.js';
38
39
  export type { SpatialAnchor } from './in-store/anchor.js';
39
40
  export { duplicateInStore, type SourceAttributes, type DuplicateInStoreOptions, type DuplicateBuildResult, type Vec3 as DuplicateVec3, } from './in-store/duplicate.js';
40
41
  export { resolveDuplicateSource } from './in-store/resolve-source.js';
41
42
  export { detectEnclosedAreas, type Vec2 as AutoSpaceVec2, type Segment as AutoSpaceSegment, type DetectedSpace, type DetectOptions as AutoSpaceDetectOptions, } from './in-store/auto-space-detect.js';
42
43
  export { extractWallSegmentsForStorey, existingSpaceFootprintsByStorey, type OverlayWallReader, type WallExtractionResult, } from './in-store/extract-walls.js';
44
+ export { storeyPlanFrame, toStoreyLocal, fromStoreyLocal, type StoreyPlanFrame, } from './in-store/storey-plan-frame.js';
43
45
  export { generateSpacesFromWalls, offsetRoomFootprint, GENERATED_SPACE_OBJECTTYPE, type GenerateSpacesOptions, type GenerateSpacesResult, type BoundaryMode, } from './in-store/generate-spaces.js';
44
46
  export { generateSpaces, listStoreys, type GenerateSpacesAllOptions, type GenerateSpacesAllResult, type GenerateSpacesStoreyResult, type StoreyInfo, } from './in-store/generate-spaces-all.js';
45
- export type { Point3D, Point2D, Placement3D, RectangleProfile, ArbitraryProfile, CircleProfile, CircleHollowProfile, IShapeProfile, LShapeProfile, TShapeProfile, UShapeProfile, CShapeProfile, RectangleHollowProfile, ProfileDef, RectangularOpening, GenericElementParams, AxisElementParams, ElementAttributes, WallParams, SlabParams, ColumnParams, BeamParams, StairParams, RoofParams, GableRoofParams, WallDoorParams, WallWindowParams, DoorParams, WindowParams, RampParams, RailingParams, PlateParams, MemberParams, FootingParams, PileParams, SpaceParams, CurtainWallParams, FurnishingParams, ProxyParams, PropertyType, PropertyDef, PropertySetDef, QuantityKind, QuantityDef, QuantitySetDef, MaterialLayerDef, MaterialDef, ProjectParams, SiteParams, BuildingParams, StoreyParams, IfcWorkScheduleParams, IfcWorkPlanParams, IfcTaskParams, IfcRelSequenceParams, IfcWorkScheduleType, IfcTaskPredefinedType, IfcTaskDurationType, IfcRelSequenceType, WorkScheduleParams, WorkPlanParams, TaskParams, SequenceParams, WorkScheduleType, TaskPredefinedType, TaskDurationType, SequenceType, CreatedEntity, CreateResult, } from './types.js';
47
+ export { addDrawingMarkupToStore, addMeasureMarkupToStore, addPolygonAreaMarkupToStore, addTextMarkupToStore, addCloudMarkupToStore, DRAWING_MARKUP_OBJECTTYPE, DRAWING_MARKUP_PSET_NAME, DRAWING_MARKUP_QSET_NAME, type DrawingMarkupObjectType, type MarkupAnchor, type MarkupPoint2D, type MeasureMarkupParams, type MeasureMarkupResult, type PolygonAreaMarkupParams, type PolygonAreaMarkupResult, type TextMarkupParams, type TextMarkupResult, type CloudMarkupParams, type CloudMarkupResult, type DrawingMarkupBatchInput, type DrawingMarkupBatchResult, } from './in-store/drawing-markup.js';
48
+ export type { Point3D, Point2D, Placement3D, RectangleProfile, ArbitraryProfile, CircleProfile, CircleHollowProfile, IShapeProfile, LShapeProfile, TShapeProfile, UShapeProfile, CShapeProfile, RectangleHollowProfile, ProfileDef, RectangularOpening, GenericElementParams, AxisElementParams, ElementAttributes, WallParams, SlabParams, ColumnParams, BeamParams, StairParams, RoofParams, GableRoofParams, WallDoorParams, WallWindowParams, DoorParams, WindowParams, RampParams, RailingParams, PlateParams, MemberParams, FootingParams, PileParams, SpaceParams, CurtainWallParams, FurnishingParams, ProxyParams, PropertyType, PropertyDef, PropertySetDef, QuantityKind, QuantityDef, QuantitySetDef, MaterialLayerDef, MaterialDef, ProjectParams, SiteParams, BuildingParams, StoreyParams, IfcWorkScheduleParams, IfcWorkPlanParams, IfcTaskParams, IfcRelSequenceParams, IfcWorkCalendarParams, IfcWorkTimeParams, IfcRecurrencePatternParams, IfcTimePeriodParams, IfcWorkScheduleType, IfcTaskPredefinedType, IfcTaskDurationType, IfcRelSequenceType, IfcWorkCalendarType, IfcRecurrenceType, WorkScheduleParams, WorkPlanParams, TaskParams, SequenceParams, WorkCalendarParams, WorkTimeParams, RecurrencePatternParams, TimePeriodParams, WorkScheduleType, TaskPredefinedType, TaskDurationType, SequenceType, WorkCalendarType, RecurrenceType, CreatedEntity, CreateResult, } from './types.js';
46
49
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -40,10 +40,13 @@ export { addRoofToStore } from './in-store/roof.js';
40
40
  export { addPlateToStore } from './in-store/plate.js';
41
41
  export { addMemberToStore } from './in-store/member.js';
42
42
  export { resolveSpatialAnchor } from './in-store/resolve-anchor.js';
43
+ export { toNativeLength, fromNativeLength } from './in-store/anchor.js';
43
44
  export { duplicateInStore, } from './in-store/duplicate.js';
44
45
  export { resolveDuplicateSource } from './in-store/resolve-source.js';
45
46
  export { detectEnclosedAreas, } from './in-store/auto-space-detect.js';
46
47
  export { extractWallSegmentsForStorey, existingSpaceFootprintsByStorey, } from './in-store/extract-walls.js';
48
+ export { storeyPlanFrame, toStoreyLocal, fromStoreyLocal, } from './in-store/storey-plan-frame.js';
47
49
  export { generateSpacesFromWalls, offsetRoomFootprint, GENERATED_SPACE_OBJECTTYPE, } from './in-store/generate-spaces.js';
48
50
  export { generateSpaces, listStoreys, } from './in-store/generate-spaces-all.js';
51
+ export { addDrawingMarkupToStore, addMeasureMarkupToStore, addPolygonAreaMarkupToStore, addTextMarkupToStore, addCloudMarkupToStore, DRAWING_MARKUP_OBJECTTYPE, DRAWING_MARKUP_PSET_NAME, DRAWING_MARKUP_QSET_NAME, } from './in-store/drawing-markup.js';
49
52
  //# 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;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,yEAAyE;AACzE,0EAA0E;AAC1E,OAAO,EAAE,gBAAgB,EAAoD,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAAE,cAAc,EAAgD,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,cAAc,EAAkG,MAAM,oBAAoB,CAAC;AACpJ,OAAO,EAAE,cAAc,EAAgD,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,cAAc,EAAgD,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAoD,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAAE,eAAe,EAAsG,MAAM,qBAAqB,CAAC;AAC1J,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GAKtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,kBAAkB,EAClB,8BAA8B,GAK/B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAkG,MAAM,oBAAoB,CAAC;AACpJ,OAAO,EAAE,eAAe,EAAsG,MAAM,qBAAqB,CAAC;AAC1J,OAAO,EAAE,gBAAgB,EAAoD,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EACL,gBAAgB,GAKjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EACL,mBAAmB,GAKpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,GAGhC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,0BAA0B,GAI3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,cAAc,EACd,WAAW,GAKZ,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,yEAAyE;AACzE,0EAA0E;AAC1E,OAAO,EAAE,gBAAgB,EAAoD,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAAE,cAAc,EAAgD,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,cAAc,EAAkG,MAAM,oBAAoB,CAAC;AACpJ,OAAO,EAAE,cAAc,EAAgD,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,cAAc,EAAgD,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAoD,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAAE,eAAe,EAAsG,MAAM,qBAAqB,CAAC;AAC1J,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GAKtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,kBAAkB,EAClB,8BAA8B,GAK/B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAkG,MAAM,oBAAoB,CAAC;AACpJ,OAAO,EAAE,eAAe,EAAsG,MAAM,qBAAqB,CAAC;AAC1J,OAAO,EAAE,gBAAgB,EAAoD,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EACL,gBAAgB,GAKjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EACL,mBAAmB,GAKpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,GAGhC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,eAAe,EACf,aAAa,EACb,eAAe,GAEhB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,0BAA0B,GAI3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,cAAc,EACd,WAAW,GAKZ,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,GAczB,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Scheduling / 4D parameter shapes for `IfcCreator` — IfcWorkSchedule,
3
+ * IfcWorkPlan, IfcTask, IfcRelSequence, and IfcWorkCalendar with the
4
+ * IfcWorkTime / IfcRecurrencePattern / IfcTimePeriod entities it owns.
5
+ *
6
+ * A sibling of `types.ts` rather than a section inside it, so that file
7
+ * stays under its recorded module-size budget (see
8
+ * `scripts/module-size-allowlist.txt`). `types.ts` re-exports everything
9
+ * here, so no consumer's import path changes.
10
+ */
11
+ export type WorkScheduleType = 'ACTUAL' | 'BASELINE' | 'PLANNED' | 'USERDEFINED' | 'NOTDEFINED';
12
+ /**
13
+ * IFC task-type enum — union of IFC4 and IFC4X3 `IfcTaskTypeEnum` values.
14
+ *
15
+ * IFC4 introduced the first 14. IFC4X3 added 9 more to cover the
16
+ * operations/maintenance lifecycle (ADJUSTMENT through TROUBLESHOOTING).
17
+ * The superset is exposed here so scripts can author schedules for
18
+ * either schema; IFC4 files that try to round-trip the newer values
19
+ * may fail validation on strict toolchains — caller's responsibility.
20
+ */
21
+ export type TaskPredefinedType = 'ATTENDANCE' | 'CONSTRUCTION' | 'DEMOLITION' | 'DISMANTLE' | 'DISPOSAL' | 'INSTALLATION' | 'LOGISTIC' | 'MAINTENANCE' | 'MOVE' | 'OPERATION' | 'REMOVAL' | 'RENOVATION' | 'USERDEFINED' | 'NOTDEFINED' | 'ADJUSTMENT' | 'CALIBRATION' | 'EMERGENCY' | 'INSPECTION' | 'SAFETY' | 'SHUTDOWN' | 'STARTUP' | 'TESTING' | 'TROUBLESHOOTING';
22
+ export type TaskDurationType = 'WORKTIME' | 'ELAPSEDTIME' | 'NOTDEFINED';
23
+ export type SequenceType = 'START_START' | 'START_FINISH' | 'FINISH_START' | 'FINISH_FINISH' | 'USERDEFINED' | 'NOTDEFINED';
24
+ /**
25
+ * IfcWorkSchedule parameters.
26
+ *
27
+ * Timestamps are ISO 8601 datetimes (e.g. "2024-05-01T08:00:00").
28
+ * `Duration` / `TotalFloat` use ISO 8601 durations (e.g. "P30D", "PT8H").
29
+ */
30
+ export interface WorkScheduleParams {
31
+ Name: string;
32
+ Description?: string;
33
+ Identification?: string;
34
+ CreationDate?: string;
35
+ StartTime: string;
36
+ FinishTime?: string;
37
+ Purpose?: string;
38
+ Duration?: string;
39
+ TotalFloat?: string;
40
+ PredefinedType?: WorkScheduleType;
41
+ }
42
+ /** IfcWorkPlan parameters — identical shape to IfcWorkSchedule. */
43
+ export interface WorkPlanParams extends WorkScheduleParams {
44
+ }
45
+ /** Canonical IFC-prefixed alias for {@link WorkScheduleParams}. */
46
+ export type IfcWorkScheduleParams = WorkScheduleParams;
47
+ /** Canonical IFC-prefixed alias for {@link WorkPlanParams}. */
48
+ export type IfcWorkPlanParams = WorkPlanParams;
49
+ /** Canonical IFC-prefixed alias for {@link WorkScheduleType}. */
50
+ export type IfcWorkScheduleType = WorkScheduleType;
51
+ /** Canonical IFC-prefixed alias for {@link TaskPredefinedType}. */
52
+ export type IfcTaskPredefinedType = TaskPredefinedType;
53
+ /** Canonical IFC-prefixed alias for {@link TaskDurationType}. */
54
+ export type IfcTaskDurationType = TaskDurationType;
55
+ /**
56
+ * IfcTask parameters.
57
+ *
58
+ * When any of the *Start / *Finish / *Duration / IsCritical / Completion
59
+ * fields is supplied, an IfcTaskTime is created and linked.
60
+ */
61
+ export interface TaskParams {
62
+ Name: string;
63
+ Description?: string;
64
+ ObjectType?: string;
65
+ Identification?: string;
66
+ LongDescription?: string;
67
+ Status?: string;
68
+ WorkMethod?: string;
69
+ IsMilestone?: boolean;
70
+ Priority?: number;
71
+ PredefinedType?: TaskPredefinedType;
72
+ /** ISO 8601 datetime */
73
+ ScheduleStart?: string;
74
+ ScheduleFinish?: string;
75
+ ScheduleDuration?: string;
76
+ ActualStart?: string;
77
+ ActualFinish?: string;
78
+ ActualDuration?: string;
79
+ EarlyStart?: string;
80
+ EarlyFinish?: string;
81
+ LateStart?: string;
82
+ LateFinish?: string;
83
+ FreeFloat?: string;
84
+ TotalFloat?: string;
85
+ RemainingTime?: string;
86
+ StatusTime?: string;
87
+ IsCritical?: boolean;
88
+ DurationType?: TaskDurationType;
89
+ /** Percent complete 0..100 */
90
+ Completion?: number;
91
+ }
92
+ /** Canonical IFC-prefixed alias for {@link TaskParams}. */
93
+ export type IfcTaskParams = TaskParams;
94
+ export type WorkCalendarType = 'FIRSTSHIFT' | 'SECONDSHIFT' | 'THIRDSHIFT' | 'USERDEFINED' | 'NOTDEFINED';
95
+ export type RecurrenceType = 'DAILY' | 'WEEKLY' | 'MONTHLY_BY_DAY_OF_MONTH' | 'MONTHLY_BY_POSITION' | 'BY_DAY_COUNT' | 'BY_WEEKDAY_COUNT' | 'YEARLY_BY_DAY_OF_MONTH' | 'YEARLY_BY_POSITION';
96
+ /** One StartTime/EndTime pair on an IfcRecurrencePattern (IfcTimePeriod). */
97
+ export interface TimePeriodParams {
98
+ /** IfcTime, e.g. "07:00:00". */
99
+ StartTime: string;
100
+ EndTime: string;
101
+ }
102
+ /** IfcRecurrencePattern — the repeat rule an IfcWorkTime may carry. */
103
+ export interface RecurrencePatternParams {
104
+ RecurrenceType: RecurrenceType;
105
+ /** Days of the month, 1..31. */
106
+ DayComponent?: number[];
107
+ /** Days of the week, 1 (Monday) .. 7 (Sunday). */
108
+ WeekdayComponent?: number[];
109
+ /** Months of the year, 1..12. */
110
+ MonthComponent?: number[];
111
+ Position?: number;
112
+ Interval?: number;
113
+ Occurrences?: number;
114
+ TimePeriods?: TimePeriodParams[];
115
+ }
116
+ /**
117
+ * IfcWorkTime — one working (or exception) period on an IfcWorkCalendar.
118
+ * `Start`/`Finish` are IfcDate strings (date only, e.g. "2024-05-01"), NOT
119
+ * the datetimes IfcWorkSchedule uses.
120
+ */
121
+ export interface WorkTimeParams {
122
+ Name?: string;
123
+ DataOrigin?: string;
124
+ UserDefinedDataOrigin?: string;
125
+ RecurrencePattern?: RecurrencePatternParams;
126
+ Start?: string;
127
+ Finish?: string;
128
+ }
129
+ /**
130
+ * IfcWorkCalendar parameters. Assign the calendar to tasks or schedules
131
+ * with `addIfcRelAssignsToControl(calendarId, ids)` (or the
132
+ * `assignCalendarToTasks` alias) — IfcWorkCalendar is an IfcControl, so
133
+ * that generic relation already accepts it.
134
+ */
135
+ export interface WorkCalendarParams {
136
+ Name: string;
137
+ Description?: string;
138
+ ObjectType?: string;
139
+ Identification?: string;
140
+ PredefinedType?: WorkCalendarType;
141
+ WorkingTimes?: WorkTimeParams[];
142
+ ExceptionTimes?: WorkTimeParams[];
143
+ }
144
+ /** Canonical IFC-prefixed alias for {@link WorkCalendarParams}. */
145
+ export type IfcWorkCalendarParams = WorkCalendarParams;
146
+ /** Canonical IFC-prefixed alias for {@link WorkTimeParams}. */
147
+ export type IfcWorkTimeParams = WorkTimeParams;
148
+ /** Canonical IFC-prefixed alias for {@link RecurrencePatternParams}. */
149
+ export type IfcRecurrencePatternParams = RecurrencePatternParams;
150
+ /** Canonical IFC-prefixed alias for {@link TimePeriodParams}. */
151
+ export type IfcTimePeriodParams = TimePeriodParams;
152
+ /** Canonical IFC-prefixed alias for {@link WorkCalendarType}. */
153
+ export type IfcWorkCalendarType = WorkCalendarType;
154
+ /** Canonical IFC-prefixed alias for {@link RecurrenceType}. */
155
+ export type IfcRecurrenceType = RecurrenceType;
156
+ /** IfcRelSequence parameters (predecessor → successor edge). */
157
+ export interface IfcRelSequenceParams {
158
+ SequenceType?: IfcRelSequenceType;
159
+ /** ISO 8601 duration (e.g. "P2D"). Negative durations indicate leads. */
160
+ TimeLag?: string;
161
+ /** Duration type applied to the lag (default WORKTIME). */
162
+ LagDurationType?: TaskDurationType;
163
+ UserDefinedSequenceType?: string;
164
+ }
165
+ /** @deprecated Use {@link IfcRelSequenceParams}. */
166
+ export type SequenceParams = IfcRelSequenceParams;
167
+ /** Canonical alias using the IFC EXPRESS enum name. */
168
+ export type IfcRelSequenceType = SequenceType;
169
+ //# sourceMappingURL=types-scheduling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-scheduling.d.ts","sourceRoot":"","sources":["../src/types-scheduling.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAEH,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GAAG,UAAU,GAAG,SAAS,GACjC,aAAa,GAAG,YAAY,CAAC;AAEjC;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAE1B,YAAY,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,GAC1D,UAAU,GAAG,cAAc,GAAG,UAAU,GAAG,aAAa,GACxD,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,YAAY,GAC/C,aAAa,GAAG,YAAY,GAE5B,YAAY,GAAG,aAAa,GAAG,WAAW,GAAG,YAAY,GACzD,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,iBAAiB,CAAC;AAEtE,MAAM,MAAM,gBAAgB,GACxB,UAAU,GAAG,aAAa,GAAG,YAAY,CAAC;AAE9C,MAAM,MAAM,YAAY,GACpB,aAAa,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,GACjE,aAAa,GAAG,YAAY,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,gBAAgB,CAAC;CACnC;AAED,mEAAmE;AACnE,MAAM,WAAW,cAAe,SAAQ,kBAAkB;CAAG;AAE7D,mEAAmE;AACnE,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AACvD,+DAA+D;AAC/D,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAC/C,iEAAiE;AACjE,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AACnD,mEAAmE;AACnE,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AACvD,iEAAiE;AACjE,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,wBAAwB;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,2DAA2D;AAC3D,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC;AAEvC,MAAM,MAAM,gBAAgB,GACxB,YAAY,GAAG,aAAa,GAAG,YAAY,GAC3C,aAAa,GAAG,YAAY,CAAC;AAEjC,MAAM,MAAM,cAAc,GACtB,OAAO,GAAG,QAAQ,GAClB,yBAAyB,GAAG,qBAAqB,GACjD,cAAc,GAAG,kBAAkB,GACnC,wBAAwB,GAAG,oBAAoB,CAAC;AAEpD,6EAA6E;AAC7E,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,uEAAuE;AACvE,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,cAAc,CAAC;IAC/B,gCAAgC;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,iCAAiC;IACjC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;IAChC,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;CACnC;AAED,mEAAmE;AACnE,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AACvD,+DAA+D;AAC/D,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAC/C,wEAAwE;AACxE,MAAM,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;AACjE,iEAAiE;AACjE,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AACnD,iEAAiE;AACjE,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AACnD,+DAA+D;AAC/D,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAE/C,gEAAgE;AAChE,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,oDAAoD;AACpD,MAAM,MAAM,cAAc,GAAG,oBAAoB,CAAC;AAElD,uDAAuD;AACvD,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC"}
@@ -0,0 +1,5 @@
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
+ export {};
5
+ //# sourceMappingURL=types-scheduling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-scheduling.js","sourceRoot":"","sources":["../src/types-scheduling.ts"],"names":[],"mappings":"AAAA;;+DAE+D"}
package/dist/types.d.ts CHANGED
@@ -501,102 +501,7 @@ export interface StoreyParams {
501
501
  Description?: string;
502
502
  Elevation: number;
503
503
  }
504
- export type WorkScheduleType = 'ACTUAL' | 'BASELINE' | 'PLANNED' | 'USERDEFINED' | 'NOTDEFINED';
505
- /**
506
- * IFC task-type enum — union of IFC4 and IFC4X3 `IfcTaskTypeEnum` values.
507
- *
508
- * IFC4 introduced the first 14. IFC4X3 added 9 more to cover the
509
- * operations/maintenance lifecycle (ADJUSTMENT through TROUBLESHOOTING).
510
- * The superset is exposed here so scripts can author schedules for
511
- * either schema; IFC4 files that try to round-trip the newer values
512
- * may fail validation on strict toolchains — caller's responsibility.
513
- */
514
- export type TaskPredefinedType = 'ATTENDANCE' | 'CONSTRUCTION' | 'DEMOLITION' | 'DISMANTLE' | 'DISPOSAL' | 'INSTALLATION' | 'LOGISTIC' | 'MAINTENANCE' | 'MOVE' | 'OPERATION' | 'REMOVAL' | 'RENOVATION' | 'USERDEFINED' | 'NOTDEFINED' | 'ADJUSTMENT' | 'CALIBRATION' | 'EMERGENCY' | 'INSPECTION' | 'SAFETY' | 'SHUTDOWN' | 'STARTUP' | 'TESTING' | 'TROUBLESHOOTING';
515
- export type TaskDurationType = 'WORKTIME' | 'ELAPSEDTIME' | 'NOTDEFINED';
516
- export type SequenceType = 'START_START' | 'START_FINISH' | 'FINISH_START' | 'FINISH_FINISH' | 'USERDEFINED' | 'NOTDEFINED';
517
- /**
518
- * IfcWorkSchedule parameters.
519
- *
520
- * Timestamps are ISO 8601 datetimes (e.g. "2024-05-01T08:00:00").
521
- * `Duration` / `TotalFloat` use ISO 8601 durations (e.g. "P30D", "PT8H").
522
- */
523
- export interface WorkScheduleParams {
524
- Name: string;
525
- Description?: string;
526
- Identification?: string;
527
- CreationDate?: string;
528
- StartTime: string;
529
- FinishTime?: string;
530
- Purpose?: string;
531
- Duration?: string;
532
- TotalFloat?: string;
533
- PredefinedType?: WorkScheduleType;
534
- }
535
- /** IfcWorkPlan parameters — identical shape to IfcWorkSchedule. */
536
- export interface WorkPlanParams extends WorkScheduleParams {
537
- }
538
- /** Canonical IFC-prefixed alias for {@link WorkScheduleParams}. */
539
- export type IfcWorkScheduleParams = WorkScheduleParams;
540
- /** Canonical IFC-prefixed alias for {@link WorkPlanParams}. */
541
- export type IfcWorkPlanParams = WorkPlanParams;
542
- /** Canonical IFC-prefixed alias for {@link WorkScheduleType}. */
543
- export type IfcWorkScheduleType = WorkScheduleType;
544
- /** Canonical IFC-prefixed alias for {@link TaskPredefinedType}. */
545
- export type IfcTaskPredefinedType = TaskPredefinedType;
546
- /** Canonical IFC-prefixed alias for {@link TaskDurationType}. */
547
- export type IfcTaskDurationType = TaskDurationType;
548
- /**
549
- * IfcTask parameters.
550
- *
551
- * When any of the *Start / *Finish / *Duration / IsCritical / Completion
552
- * fields is supplied, an IfcTaskTime is created and linked.
553
- */
554
- export interface TaskParams {
555
- Name: string;
556
- Description?: string;
557
- ObjectType?: string;
558
- Identification?: string;
559
- LongDescription?: string;
560
- Status?: string;
561
- WorkMethod?: string;
562
- IsMilestone?: boolean;
563
- Priority?: number;
564
- PredefinedType?: TaskPredefinedType;
565
- /** ISO 8601 datetime */
566
- ScheduleStart?: string;
567
- ScheduleFinish?: string;
568
- ScheduleDuration?: string;
569
- ActualStart?: string;
570
- ActualFinish?: string;
571
- ActualDuration?: string;
572
- EarlyStart?: string;
573
- EarlyFinish?: string;
574
- LateStart?: string;
575
- LateFinish?: string;
576
- FreeFloat?: string;
577
- TotalFloat?: string;
578
- RemainingTime?: string;
579
- StatusTime?: string;
580
- IsCritical?: boolean;
581
- DurationType?: TaskDurationType;
582
- /** Percent complete 0..100 */
583
- Completion?: number;
584
- }
585
- /** Canonical IFC-prefixed alias for {@link TaskParams}. */
586
- export type IfcTaskParams = TaskParams;
587
- /** IfcRelSequence parameters (predecessor → successor edge). */
588
- export interface IfcRelSequenceParams {
589
- SequenceType?: IfcRelSequenceType;
590
- /** ISO 8601 duration (e.g. "P2D"). Negative durations indicate leads. */
591
- TimeLag?: string;
592
- /** Duration type applied to the lag (default WORKTIME). */
593
- LagDurationType?: TaskDurationType;
594
- UserDefinedSequenceType?: string;
595
- }
596
- /** @deprecated Use {@link IfcRelSequenceParams}. */
597
- export type SequenceParams = IfcRelSequenceParams;
598
- /** Canonical alias using the IFC EXPRESS enum name. */
599
- export type IfcRelSequenceType = SequenceType;
504
+ export type { WorkScheduleType, TaskPredefinedType, TaskDurationType, SequenceType, WorkCalendarType, RecurrenceType, WorkScheduleParams, WorkPlanParams, TaskParams, IfcRelSequenceParams, SequenceParams, WorkCalendarParams, WorkTimeParams, RecurrencePatternParams, TimePeriodParams, IfcWorkScheduleParams, IfcWorkPlanParams, IfcTaskParams, IfcWorkScheduleType, IfcTaskPredefinedType, IfcTaskDurationType, IfcRelSequenceType, IfcWorkCalendarParams, IfcWorkTimeParams, IfcRecurrencePatternParams, IfcTimePeriodParams, IfcWorkCalendarType, IfcRecurrenceType, } from './types-scheduling.js';
600
505
  /** Reference to a created entity (expressId within the created file) */
601
506
  export interface CreatedEntity {
602
507
  expressId: number;