@ifc-lite/create 1.14.1 → 1.14.3

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.
@@ -13,7 +13,7 @@
13
13
  *
14
14
  * All values in metres unless LengthUnit is overridden.
15
15
  */
16
- import type { WallParams, SlabParams, ColumnParams, BeamParams, StairParams, RoofParams, ProjectParams, StoreyParams, PropertySetDef, QuantitySetDef, MaterialDef, CreateResult } from './types.js';
16
+ import type { Point3D, Point2D, Placement3D, ElementAttributes, ProfileDef, GenericElementParams, AxisElementParams, WallParams, SlabParams, ColumnParams, BeamParams, StairParams, RoofParams, GableRoofParams, WallDoorParams, WallWindowParams, DoorParams, WindowParams, RampParams, RailingParams, PlateParams, MemberParams, FootingParams, PileParams, SpaceParams, CurtainWallParams, FurnishingParams, ProxyParams, ProjectParams, StoreyParams, PropertySetDef, QuantitySetDef, MaterialDef, CreateResult } from './types.js';
17
17
  export declare class IfcCreator {
18
18
  private nextId;
19
19
  private lines;
@@ -39,10 +39,20 @@ export declare class IfcCreator {
39
39
  private elementMaterials;
40
40
  private storeyIds;
41
41
  private storeyElements;
42
+ /** Storey expressId → its IfcLocalPlacement id (at [0,0,elevation]) */
43
+ private storeyPlacements;
44
+ /** Element expressId → containing storey expressId */
45
+ private elementStoreys;
46
+ /** Wall expressId → wall local placement */
47
+ private wallPlacements;
48
+ /** Wall expressId → wall thickness */
49
+ private wallThicknesses;
42
50
  private projectParams;
43
51
  constructor(params?: ProjectParams);
44
52
  /** Add a building storey. Returns the storey expressId for use with element creation. */
45
53
  addIfcBuildingStorey(params: StoreyParams): number;
54
+ /** Get the IfcLocalPlacement for a storey (falls back to world if unknown) */
55
+ private getStoreyPlacement;
46
56
  /**
47
57
  * Create a wall from Start to End with given Thickness and Height.
48
58
  *
@@ -73,11 +83,152 @@ export declare class IfcCreator {
73
83
  */
74
84
  addIfcStair(storeyId: number, params: StairParams): number;
75
85
  /**
76
- * Create a roof. Position is the minimum corner.
77
- * Width along +X, Depth along +Y, Thickness extruded upward.
78
- * Optional Slope rotates the extrusion around the Y axis.
86
+ * Create a flat or mono-pitch roof slab. Position is the minimum corner.
87
+ * Width along +X, Depth along +Y, Thickness extruded normal to the slab.
88
+ * Optional Slope is in radians and creates a single slope along +X.
79
89
  */
80
90
  addIfcRoof(storeyId: number, params: RoofParams): number;
91
+ /**
92
+ * Create a standard dual-pitch gable roof from a rectangular footprint.
93
+ * The ridge runs along the longer footprint dimension to keep the roof height reasonable.
94
+ */
95
+ addIfcGableRoof(storeyId: number, params: GableRoofParams): number;
96
+ /**
97
+ * Create a door hosted in a wall opening and aligned to the host wall.
98
+ * Position is wall-local: [distance_along_wall, 0, base_height].
99
+ */
100
+ addIfcWallDoor(wallId: number, params: WallDoorParams): number;
101
+ /**
102
+ * Create a window hosted in a wall opening and aligned to the host wall.
103
+ * Position is wall-local: [distance_along_wall, 0, sill_height].
104
+ */
105
+ addIfcWallWindow(wallId: number, params: WallWindowParams): number;
106
+ /**
107
+ * Create a door element. Width × Height × Thickness panel.
108
+ */
109
+ addIfcDoor(storeyId: number, params: DoorParams): number;
110
+ /**
111
+ * Create a window element. Width × Height × Thickness frame.
112
+ */
113
+ addIfcWindow(storeyId: number, params: WindowParams): number;
114
+ /**
115
+ * Create a ramp. Position is the low end.
116
+ * Width along +Y, Length along +X, Rise optionally inclines the ramp.
117
+ */
118
+ addIfcRamp(storeyId: number, params: RampParams): number;
119
+ /**
120
+ * Create a railing from Start to End with given Height.
121
+ */
122
+ addIfcRailing(storeyId: number, params: RailingParams): number;
123
+ /**
124
+ * Create a plate (thin flat element, e.g. steel plate).
125
+ */
126
+ addIfcPlate(storeyId: number, params: PlateParams): number;
127
+ /**
128
+ * Create a structural member (brace, strut, etc.) from Start to End.
129
+ */
130
+ addIfcMember(storeyId: number, params: MemberParams): number;
131
+ /**
132
+ * Create a footing (foundation). Position is top centre, Height extends downward.
133
+ */
134
+ addIfcFooting(storeyId: number, params: FootingParams): number;
135
+ /**
136
+ * Create a pile (deep foundation). Position is top, Length extends downward.
137
+ * Uses circular cross-section by default, rectangular if IsRectangular is set.
138
+ */
139
+ addIfcPile(storeyId: number, params: PileParams): number;
140
+ /**
141
+ * Create a space (room volume).
142
+ */
143
+ addIfcSpace(storeyId: number, params: SpaceParams): number;
144
+ /**
145
+ * Create a curtain wall. Thin panel from Start to End, extruded by Height.
146
+ */
147
+ addIfcCurtainWall(storeyId: number, params: CurtainWallParams): number;
148
+ /**
149
+ * Create a furnishing element (furniture/equipment bounding box).
150
+ */
151
+ addIfcFurnishingElement(storeyId: number, params: FurnishingParams): number;
152
+ /**
153
+ * Create a proxy element (generic element for custom/unclassified objects).
154
+ */
155
+ addIfcBuildingElementProxy(storeyId: number, params: ProxyParams): number;
156
+ /**
157
+ * Create a column with circular cross-section.
158
+ */
159
+ addIfcCircularColumn(storeyId: number, params: {
160
+ Position: Point3D;
161
+ Radius: number;
162
+ Height: number;
163
+ } & ElementAttributes): number;
164
+ /**
165
+ * Create a beam with I-shape (wide-flange/H-shape) cross-section.
166
+ */
167
+ addIfcIShapeBeam(storeyId: number, params: {
168
+ Start: Point3D;
169
+ End: Point3D;
170
+ OverallWidth: number;
171
+ OverallDepth: number;
172
+ WebThickness: number;
173
+ FlangeThickness: number;
174
+ FilletRadius?: number;
175
+ } & ElementAttributes): number;
176
+ /**
177
+ * Create a member with L-shape (angle) cross-section.
178
+ */
179
+ addIfcLShapeMember(storeyId: number, params: {
180
+ Start: Point3D;
181
+ End: Point3D;
182
+ Depth: number;
183
+ Width: number;
184
+ Thickness: number;
185
+ FilletRadius?: number;
186
+ } & ElementAttributes): number;
187
+ /**
188
+ * Create a member with T-shape cross-section.
189
+ */
190
+ addIfcTShapeMember(storeyId: number, params: {
191
+ Start: Point3D;
192
+ End: Point3D;
193
+ FlangeWidth: number;
194
+ Depth: number;
195
+ WebThickness: number;
196
+ FlangeThickness: number;
197
+ FilletRadius?: number;
198
+ } & ElementAttributes): number;
199
+ /**
200
+ * Create a member with U-shape (channel) cross-section.
201
+ */
202
+ addIfcUShapeMember(storeyId: number, params: {
203
+ Start: Point3D;
204
+ End: Point3D;
205
+ Depth: number;
206
+ FlangeWidth: number;
207
+ WebThickness: number;
208
+ FlangeThickness: number;
209
+ FilletRadius?: number;
210
+ } & ElementAttributes): number;
211
+ /**
212
+ * Create a column or pile with hollow circular cross-section.
213
+ */
214
+ addIfcHollowCircularColumn(storeyId: number, params: {
215
+ Position: Point3D;
216
+ Radius: number;
217
+ WallThickness: number;
218
+ Height: number;
219
+ } & ElementAttributes): number;
220
+ /**
221
+ * Create a beam/column with hollow rectangular (tube) cross-section.
222
+ */
223
+ addIfcRectangleHollowBeam(storeyId: number, params: {
224
+ Start: Point3D;
225
+ End: Point3D;
226
+ XDim: number;
227
+ YDim: number;
228
+ WallThickness: number;
229
+ InnerFilletRadius?: number;
230
+ OuterFilletRadius?: number;
231
+ } & ElementAttributes): number;
81
232
  /** Attach a property set to an element */
82
233
  addIfcPropertySet(elementId: number, pset: PropertySetDef): number;
83
234
  /** Attach element quantities to an element */
@@ -118,18 +269,124 @@ export declare class IfcCreator {
118
269
  private addCartesianPoint2D;
119
270
  private addDirection;
120
271
  private addAxis2Placement3D;
121
- private addLocalPlacement;
272
+ /**
273
+ * Create a local placement relative to the world coordinate system.
274
+ * @param relativeTo - Parent placement ID (use getWorldPlacementId() for world origin)
275
+ * @param placement - Location and optional axis/ref directions
276
+ */
277
+ addLocalPlacement(relativeTo: number, placement: Placement3D): number;
122
278
  /**
123
279
  * Create a rectangle profile.
124
280
  * @param xDim Width of rectangle
125
281
  * @param yDim Height of rectangle
126
282
  * @param center Optional 2D offset for the profile centre. Default [0,0] = centred at origin.
127
283
  */
128
- private addRectangleProfile;
129
- private addArbitraryProfile;
130
- private addExtrudedAreaSolid;
131
- private addShapeRepresentation;
132
- private addProductDefinitionShape;
284
+ addRectangleProfile(xDim: number, yDim: number, center?: Point2D): number;
285
+ /** Create a circle profile. */
286
+ addCircleProfile(radius: number): number;
287
+ /** Create a hollow circle profile (pipe section). */
288
+ addCircleHollowProfile(radius: number, wallThickness: number): number;
289
+ /** Create an I-shape (wide-flange / H-beam) profile. */
290
+ addIShapeProfile(overallWidth: number, overallDepth: number, webThickness: number, flangeThickness: number, filletRadius?: number): number;
291
+ /** Create an L-shape (angle section) profile. */
292
+ addLShapeProfile(depth: number, width: number, thickness: number, filletRadius?: number): number;
293
+ /** Create a T-shape (tee section) profile. */
294
+ addTShapeProfile(flangeWidth: number, depth: number, webThickness: number, flangeThickness: number, filletRadius?: number): number;
295
+ /** Create a U-shape (channel section) profile. */
296
+ addUShapeProfile(depth: number, flangeWidth: number, webThickness: number, flangeThickness: number, filletRadius?: number): number;
297
+ /** Create a C-shape (cold-formed channel) profile. */
298
+ addCShapeProfile(depth: number, width: number, wallThickness: number, girth: number): number;
299
+ /** Create a hollow rectangle (tube section) profile. */
300
+ addRectangleHollowProfile(xDim: number, yDim: number, wallThickness: number, innerFilletRadius?: number, outerFilletRadius?: number): number;
301
+ /** Create an arbitrary closed profile from a polyline. Points are auto-closed. */
302
+ addArbitraryProfile(points: Point2D[]): number;
303
+ /**
304
+ * Create an extruded area solid from a profile.
305
+ * @param profileId - ID returned by any addXxxProfile() method
306
+ * @param depth - Extrusion depth
307
+ * @param extrusionDir - Optional direction ID (default: Z-up)
308
+ * @param positionId - Optional local solid placement (default: origin, world axes)
309
+ */
310
+ addExtrudedAreaSolid(profileId: number, depth: number, extrusionDir?: number, positionId?: number): number;
311
+ /**
312
+ * Create a shape representation from solid IDs.
313
+ * @param repType - 'Body' or 'Axis'
314
+ * @param itemIds - Array of solid IDs (from addExtrudedAreaSolid, etc.)
315
+ */
316
+ addShapeRepresentation(repType: string, itemIds: number[]): number;
317
+ /** Wrap shape representations into a product definition shape. */
318
+ addProductDefinitionShape(repIds: number[]): number;
319
+ /** Get the world placement ID (use as relativeTo for addLocalPlacement). */
320
+ getWorldPlacementId(): number;
321
+ /** Create a direction entity. Returns the direction ID. */
322
+ addDirection3D(d: Point3D): number;
323
+ /**
324
+ * Create a profile from a ProfileDef union type.
325
+ * This is the high-level entry point for profile creation — it dispatches
326
+ * to the appropriate addXxxProfile() method based on the shape.
327
+ *
328
+ * ```ts
329
+ * const profileId = creator.createProfile({
330
+ * ProfileType: 'AREA',
331
+ * Radius: 0.15,
332
+ * }); // Creates a circle profile
333
+ * ```
334
+ */
335
+ createProfile(profile: ProfileDef): number;
336
+ /**
337
+ * Create ANY IFC element type with an extruded profile at a placement.
338
+ *
339
+ * This is the low-level foundation that all high-level methods (addIfcWall,
340
+ * addIfcBeam, etc.) are built on. Use it when you need an IFC type that
341
+ * doesn't have a dedicated method, or when you need full control.
342
+ *
343
+ * ```ts
344
+ * // Pipe segment with circular profile
345
+ * creator.addElement(storeyId, {
346
+ * IfcType: 'IFCFLOWSEGMENT',
347
+ * Placement: { Location: [0, 0, 3] },
348
+ * Profile: { ProfileType: 'AREA', Radius: 0.05 },
349
+ * Depth: 5,
350
+ * PredefinedType: '.RIGIDSEGMENT.',
351
+ * Name: 'Pipe-001',
352
+ * });
353
+ *
354
+ * // Distribution element with L-profile
355
+ * creator.addElement(storeyId, {
356
+ * IfcType: 'IFCDISTRIBUTIONELEMENT',
357
+ * Placement: { Location: [2, 0, 0], Axis: [0, 0, 1], RefDirection: [1, 0, 0] },
358
+ * Profile: { ProfileType: 'AREA', Depth: 0.1, Width: 0.1, Thickness: 0.01 },
359
+ * Depth: 3,
360
+ * });
361
+ * ```
362
+ */
363
+ addElement(storeyId: number, params: GenericElementParams): number;
364
+ /**
365
+ * Create ANY IFC element type extruded along an axis (Start → End).
366
+ *
367
+ * The profile is placed at Start and extruded along the direction to End.
368
+ * The extrusion length equals the distance between Start and End.
369
+ *
370
+ * ```ts
371
+ * // Pipe segment along an axis
372
+ * creator.addAxisElement(storeyId, {
373
+ * IfcType: 'IFCPIPESEGMENT',
374
+ * Start: [0, 0, 3],
375
+ * End: [5, 0, 3],
376
+ * Profile: { ProfileType: 'AREA', Radius: 0.05 },
377
+ * Name: 'Pipe-001',
378
+ * });
379
+ *
380
+ * // Cable tray with rectangle profile
381
+ * creator.addAxisElement(storeyId, {
382
+ * IfcType: 'IFCCABLETRAYSEGMENT',
383
+ * Start: [0, 0, 2.5],
384
+ * End: [10, 0, 2.5],
385
+ * Profile: { ProfileType: 'AREA', XDim: 0.3, YDim: 0.1 },
386
+ * });
387
+ * ```
388
+ */
389
+ addAxisElement(storeyId: number, params: AxisElementParams): number;
133
390
  /**
134
391
  * Add an opening in a wall.
135
392
  * Opening Position: [distance_along_wall, 0, sill_height]
@@ -147,8 +404,11 @@ export declare class IfcCreator {
147
404
  private finalizeRelationships;
148
405
  private addIfcRelAggregates;
149
406
  private addIfcRelContainedInSpatialStructure;
407
+ private addIfcRelFillsElement;
150
408
  private id;
151
409
  private line;
410
+ private getHostedWallInfo;
411
+ private addHostedWallFillPlacement;
152
412
  private trackElement;
153
413
  /** Compute a stable RefDirection perpendicular to a given Axis */
154
414
  private computeRefDirection;
@@ -1 +1 @@
1
- {"version":3,"file":"ifc-creator.d.ts","sourceRoot":"","sources":["../src/ifc-creator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ifc-creator.d.ts","sourceRoot":"","sources":["../src/ifc-creator.ts"],"names":[],"mappings":"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"}