@ifc-lite/create 2.9.2 → 3.1.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 (68) hide show
  1. package/dist/ifc-creator-alignment-referents.d.ts +35 -0
  2. package/dist/ifc-creator-alignment-referents.d.ts.map +1 -0
  3. package/dist/ifc-creator-alignment-referents.js +89 -0
  4. package/dist/ifc-creator-alignment-referents.js.map +1 -0
  5. package/dist/ifc-creator-alignment-vertical.d.ts +40 -0
  6. package/dist/ifc-creator-alignment-vertical.d.ts.map +1 -0
  7. package/dist/ifc-creator-alignment-vertical.js +182 -0
  8. package/dist/ifc-creator-alignment-vertical.js.map +1 -0
  9. package/dist/ifc-creator-alignment.d.ts +15 -0
  10. package/dist/ifc-creator-alignment.d.ts.map +1 -1
  11. package/dist/ifc-creator-alignment.js +27 -28
  12. package/dist/ifc-creator-alignment.js.map +1 -1
  13. package/dist/ifc-creator-math.d.ts +22 -0
  14. package/dist/ifc-creator-math.d.ts.map +1 -1
  15. package/dist/ifc-creator-math.js +68 -2
  16. package/dist/ifc-creator-math.js.map +1 -1
  17. package/dist/ifc-creator.d.ts.map +1 -1
  18. package/dist/ifc-creator.js +3 -7
  19. package/dist/ifc-creator.js.map +1 -1
  20. package/dist/in-store/_emit-helpers.d.ts +2 -1
  21. package/dist/in-store/_emit-helpers.d.ts.map +1 -1
  22. package/dist/in-store/_emit-helpers.js +7 -7
  23. package/dist/in-store/_emit-helpers.js.map +1 -1
  24. package/dist/in-store/extract-walls.d.ts.map +1 -1
  25. package/dist/in-store/extract-walls.js +9 -1
  26. package/dist/in-store/extract-walls.js.map +1 -1
  27. package/dist/in-store/spatial-zone.d.ts.map +1 -1
  28. package/dist/in-store/spatial-zone.js +5 -5
  29. package/dist/in-store/spatial-zone.js.map +1 -1
  30. package/dist/in-store/wall.d.ts.map +1 -1
  31. package/dist/in-store/wall.js +4 -14
  32. package/dist/in-store/wall.js.map +1 -1
  33. package/dist/index.d.ts +4 -1
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/landxml/landxml-to-ifc.d.ts +1 -1
  37. package/dist/landxml/landxml-to-ifc.d.ts.map +1 -1
  38. package/dist/landxml/landxml-to-ifc.js +9 -3
  39. package/dist/landxml/landxml-to-ifc.js.map +1 -1
  40. package/dist/landxml/profile-geometry.d.ts +50 -0
  41. package/dist/landxml/profile-geometry.d.ts.map +1 -0
  42. package/dist/landxml/profile-geometry.js +221 -0
  43. package/dist/landxml/profile-geometry.js.map +1 -0
  44. package/dist/landxml/profile-mapping.d.ts +36 -0
  45. package/dist/landxml/profile-mapping.d.ts.map +1 -0
  46. package/dist/landxml/profile-mapping.js +181 -0
  47. package/dist/landxml/profile-mapping.js.map +1 -0
  48. package/dist/landxml/profile-record.d.ts +46 -0
  49. package/dist/landxml/profile-record.d.ts.map +1 -0
  50. package/dist/landxml/profile-record.js +38 -0
  51. package/dist/landxml/profile-record.js.map +1 -0
  52. package/dist/landxml/refusals.d.ts +5 -1
  53. package/dist/landxml/refusals.d.ts.map +1 -1
  54. package/dist/landxml/refusals.js +29 -6
  55. package/dist/landxml/refusals.js.map +1 -1
  56. package/dist/landxml/result-types.d.ts +5 -0
  57. package/dist/landxml/result-types.d.ts.map +1 -1
  58. package/dist/landxml/station-equations.d.ts +69 -0
  59. package/dist/landxml/station-equations.d.ts.map +1 -0
  60. package/dist/landxml/station-equations.js +140 -0
  61. package/dist/landxml/station-equations.js.map +1 -0
  62. package/dist/landxml/writers.d.ts +3 -1
  63. package/dist/landxml/writers.d.ts.map +1 -1
  64. package/dist/landxml/writers.js +18 -1
  65. package/dist/landxml/writers.js.map +1 -1
  66. package/dist/types.d.ts +13 -9
  67. package/dist/types.d.ts.map +1 -1
  68. package/package.json +5 -5
@@ -2,6 +2,8 @@
2
2
  * License, v. 2.0. If a copy of the MPL was not distributed with this
3
3
  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
4
  import { cogoPointResolver, isAlignmentRecord, mapAlignments, } from './alignment-mapping.js';
5
+ import { mapProfiles } from './profile-mapping.js';
6
+ import { stationEquationsOf } from './station-equations.js';
5
7
  /**
6
8
  * Why each family is out of scope, in the operator's terms.
7
9
  *
@@ -11,7 +13,7 @@ import { cogoPointResolver, isAlignmentRecord, mapAlignments, } from './alignmen
11
13
  */
12
14
  const FAMILY_REASONS = {
13
15
  alignments: 'an alignment is written only when every horizontal segment is a line, circular arc or clothoid that reproduces its authored end point; one that does not is refused whole, because a gap would make every later station wrong',
14
- profiles: 'vertical profiles and their grade lines and vertical curves have no v1 mapping — they describe geometry along an alignment, which v1 does not carry',
16
+ profiles: 'a profile is written, as IfcAlignmentVertical, only when it is the one design profile of a written alignment and its grades and vertical curves reproduce every authored PVI; one that does not is refused whole',
15
17
  'cross-sections': 'cross sections have no v1 mapping — they are sampled along an alignment, which v1 does not carry',
16
18
  roadways: 'roadways have no v1 mapping — they compose alignments and surfaces, and v1 carries only the surfaces',
17
19
  parcels: 'parcel boundaries have no v1 mapping',
@@ -23,7 +25,7 @@ const FAMILY_REASONS = {
23
25
  'surface-contours': 'surface contour lines are not written; only the triangulated surface itself is',
24
26
  'non-rendered-surfaces': 'surfaces that carry no numeric, renderable triangulation (or whose every face is hidden) cannot become an IfcTriangulatedIrregularNetwork',
25
27
  'unlocated-cgpoints': 'CgPoints that carry only a point reference and no coordinates of their own have nothing to place',
26
- 'station-equations': 'station equations are not written; the alignment carries its start station only',
28
+ 'station-equations': "an alignment's station equations are written all or none, because a dropped one would make every later station wrong; the alignment is still written, with its start station only",
27
29
  cant: 'cant (rail superelevation) has no mapping; the alignment is written with its horizontal layout only',
28
30
  superelevation: 'road superelevation has no mapping; the alignment is written with its horizontal layout only',
29
31
  };
@@ -52,7 +54,7 @@ export function isMappableSurface(surface) {
52
54
  export function alignmentMappingOf(source) {
53
55
  return mapAlignments(source.alignments, source.units, false, cogoPointResolver(source.plan?.cogoPoints));
54
56
  }
55
- export function collectRefusals(source, alignmentMapping = alignmentMappingOf(source)) {
57
+ export function collectRefusals(source, alignmentMapping = alignmentMappingOf(source), profileMapping = mapProfiles(source.profiles, source.alignments, alignmentMapping, source.units, stationEquationsOf(source, alignmentMapping)), stationing = stationEquationsOf(source, alignmentMapping)) {
56
58
  // Only the alignments that are WRITTEN carry these on into the IFC; a
57
59
  // refused alignment takes its station equations and cant with it, and
58
60
  // counting them twice would misstate what is missing.
@@ -62,10 +64,11 @@ export function collectRefusals(source, alignmentMapping = alignmentMappingOf(so
62
64
  .filter((alignment) => written.has(alignment.sourceId));
63
65
  const counts = [
64
66
  ['alignments', alignmentMapping.refused.length],
65
- ['station-equations', writtenAlignments.reduce((n, a) => n + (a.stationEquations?.length ?? 0), 0)],
67
+ // Written as IfcReferents (§14) unless refused, all or none, per alignment.
68
+ ['station-equations', writtenAlignments.reduce((n, a) => n + (stationing.get(a.sourceId)?.refusal ? (a.stationEquations?.length ?? 0) : 0), 0)],
66
69
  ['cant', writtenAlignments.filter((a) => a.cant || (a.cantStations?.length ?? 0) > 0).length],
67
70
  ['superelevation', writtenAlignments.reduce((n, a) => n + (a.superelevations?.length ?? 0), 0)],
68
- ['profiles', source.profiles?.length ?? 0],
71
+ ['profiles', profileMapping.refused.length],
69
72
  ['cross-sections', (source.crossSections?.length ?? 0) + (source.crossSectionSurfaces?.length ?? 0)],
70
73
  ['roadways', source.roadways?.length ?? 0],
71
74
  ['parcels', source.plan?.parcels?.length ?? 0],
@@ -85,7 +88,11 @@ export function collectRefusals(source, alignmentMapping = alignmentMappingOf(so
85
88
  count,
86
89
  message: family === 'alignments'
87
90
  ? alignmentRefusalMessage(alignmentMapping.refused)
88
- : `${count} ${family.replace(/-/g, ' ')} record${count === 1 ? '' : 's'} will not be included: ${FAMILY_REASONS[family]}.`,
91
+ : family === 'profiles'
92
+ ? profileRefusalMessage(profileMapping.refused)
93
+ : family === 'station-equations'
94
+ ? stationEquationRefusalMessage(count, writtenAlignments, stationing)
95
+ : `${count} ${family.replace(/-/g, ' ')} record${count === 1 ? '' : 's'} will not be included: ${FAMILY_REASONS[family]}.`,
89
96
  }));
90
97
  }
91
98
  /**
@@ -100,6 +107,22 @@ export function alignmentRefusalMessage(refused) {
100
107
  return `${count} alignment record${count === 1 ? '' : 's'} will not be included (${named.join('; ')}). `
101
108
  + `${FAMILY_REASONS.alignments}.`;
102
109
  }
110
+ /** Name each refused profile and why (§12.6), as alignments are. */
111
+ export function profileRefusalMessage(refused) {
112
+ const count = refused.length;
113
+ const named = refused.map((entry) => `'${entry.name}': ${entry.reason}`);
114
+ return `${count} profile record${count === 1 ? '' : 's'} will not be included (${named.join('; ')}). `
115
+ + `${FAMILY_REASONS.profiles}.`;
116
+ }
117
+ /** Name each alignment whose station equations were refused, and why (§14.2). */
118
+ function stationEquationRefusalMessage(count, alignments, stationing) {
119
+ const named = alignments.flatMap((alignment) => {
120
+ const reason = stationing.get(alignment.sourceId)?.refusal;
121
+ return reason ? [`'${alignment.name || alignment.sourceId}': ${reason}`] : [];
122
+ });
123
+ return `${count} station equation record${count === 1 ? '' : 's'} will not be included (${named.join('; ')}). `
124
+ + `${FAMILY_REASONS['station-equations']}.`;
125
+ }
103
126
  /**
104
127
  * The sentence shown when nothing in the source is mappable.
105
128
  *
@@ -1 +1 @@
1
- {"version":3,"file":"refusals.js","sourceRoot":"","sources":["../../src/landxml/refusals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refusals.js","sourceRoot":"","sources":["../../src/landxml/refusals.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAY/D,OAAO,EACL,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,GACpD,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAA4C,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAA+B,MAAM,wBAAwB,CAAC;AAEzF;;;;;;GAMG;AACH,MAAM,cAAc,GAAyC;IAC3D,UAAU,EAAE,+NAA+N;IAC3O,QAAQ,EAAE,kNAAkN;IAC5N,gBAAgB,EAAE,kGAAkG;IACpH,QAAQ,EAAE,sGAAsG;IAChH,OAAO,EAAE,sCAAsC;IAC/C,SAAS,EAAE,kFAAkF;IAC7F,eAAe,EAAE,kCAAkC;IACnD,eAAe,EAAE,wDAAwD;IACzE,oBAAoB,EAAE,qFAAqF;IAC3G,oBAAoB,EAAE,6EAA6E;IACnG,kBAAkB,EAAE,gFAAgF;IACpG,uBAAuB,EAAE,2IAA2I;IACpK,oBAAoB,EAAE,kGAAkG;IACxH,mBAAmB,EAAE,mLAAmL;IACxM,IAAI,EAAE,qGAAqG;IAC3G,cAAc,EAAE,8FAA8F;CAC/G,CAAC;AAEF,SAAS,mBAAmB,CAC1B,QAAsC,EACtC,IAAoE;IAEpE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAA0B;IAC1D,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU;WACpC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;WACzB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC;AACvF,CAAC;AAED;;;;;;GAMG;AACH,iGAAiG;AACjG,MAAM,UAAU,kBAAkB,CAAC,MAAwB;IACzD,OAAO,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;AAC3G,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,MAAwB,EAAE,mBAAqC,kBAAkB,CAAC,MAAM,CAAC,EACzF,iBAAiC,WAAW,CAC1C,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,gBAAgB,EAAE,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CACjH,EACD,aAA0D,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAEtG,sEAAsE;IACtE,sEAAsE;IACtE,sDAAsD;IACtD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxF,MAAM,iBAAiB,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;SAChD,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1D,MAAM,MAAM,GAA0C;QACpD,CAAC,YAAY,EAAE,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC;QAC/C,4EAA4E;QAC5E,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,MAAM,CAC5C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAC/F,CAAC;QACF,CAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QAC7F,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/F,CAAC,UAAU,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC;QAC3C,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;QACpG,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC;QAC1C,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;QAC9C,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC;QAClD,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC;QACzD,CAAC,eAAe,EAAE,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC;QAC7D,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACjF,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACjF,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC7E,CAAC,uBAAuB,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACtF,CAAC,oBAAoB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;KACvG,CAAC;IAEF,OAAO,MAAM;SACV,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACzB,MAAM;QACN,KAAK;QACL,OAAO,EAAE,MAAM,KAAK,YAAY;YAC9B,CAAC,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC;YACnD,CAAC,CAAC,MAAM,KAAK,UAAU;gBACrB,CAAC,CAAC,qBAAqB,CAAC,cAAc,CAAC,OAAO,CAAC;gBAC/C,CAAC,CAAC,MAAM,KAAK,mBAAmB;oBAC9B,CAAC,CAAC,6BAA6B,CAAC,KAAK,EAAE,iBAAiB,EAAE,UAAU,CAAC;oBACrE,CAAC,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,0BAA0B,cAAc,CAAC,MAAM,CAAC,GAAG;KACjI,CAAC,CAAC,CAAC;AACR,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAoC;IAC1E,uEAAuE;IACvE,8CAA8C;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,OAAO,GAAG,KAAK,oBAAoB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,0BAA0B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;UACpG,GAAG,cAAc,CAAC,UAAU,GAAG,CAAC;AACtC,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,qBAAqB,CAAC,OAAkC;IACtE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,OAAO,GAAG,KAAK,kBAAkB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,0BAA0B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;UAClG,GAAG,cAAc,CAAC,QAAQ,GAAG,CAAC;AACpC,CAAC;AAED,iFAAiF;AACjF,SAAS,6BAA6B,CACpC,KAAa,EAAE,UAA0C,EAAE,UAAuD;IAElH,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAC3D,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,QAAQ,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,KAAK,2BAA2B,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,0BAA0B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;UAC3G,GAAG,cAAc,CAAC,mBAAmB,CAAC,GAAG,CAAC;AAChD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,QAAmC;IAC/D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,iIAAiI,CAAC;IAC3I,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/G,OAAO,2EAA2E,QAAQ,IAAI;UAC1F,2EAA2E,CAAC;AAClF,CAAC"}
@@ -44,6 +44,11 @@ export interface LandXmlIfcCoverage {
44
44
  * read it as `coverage.alignments ?? 0`.
45
45
  */
46
46
  alignments?: number;
47
+ /**
48
+ * Design profiles written as `IfcAlignmentVertical` (§12). Optional for the
49
+ * same reason as `alignments`: read it as `coverage.profiles ?? 0`.
50
+ */
51
+ profiles?: number;
47
52
  }
48
53
  /** What the produced file records about where it came from (§7). */
49
54
  export interface LandXmlIfcProvenance {
@@ -1 +1 @@
1
- {"version":3,"file":"result-types.d.ts","sourceRoot":"","sources":["../../src/landxml/result-types.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAC5B,YAAY,GACZ,UAAU,GACV,gBAAgB,GAChB,UAAU,GACV,SAAS,GACT,WAAW,GACX,eAAe,GACf,eAAe,GACf,oBAAoB,GACpB,oBAAoB,GACpB,kBAAkB,GAClB,uBAAuB,GACvB,oBAAoB,GACpB,mBAAmB,GACnB,MAAM,GACN,gBAAgB,CAAC;AAErB,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wEAAwE;AACxE,MAAM,WAAW,iBAAiB;IAChC,0EAA0E;IAC1E,IAAI,EAAE,mBAAmB,GAAG,oBAAoB,GAAG,cAAc,GAAG,qBAAqB,CAAC;IAC1F,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,oEAAoE;AACpE,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,sBAAsB,EAAE,OAAO,CAAC;IAChC,eAAe,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAClD;AAED,MAAM,MAAM,gBAAgB,GACxB;IACA,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,UAAU,EAAE,oBAAoB,CAAC;IACjC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;IACpC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACxC,GACC;IACA,MAAM,EAAE,SAAS,CAAC;IAClB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;IACpC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACxC,CAAC"}
1
+ {"version":3,"file":"result-types.d.ts","sourceRoot":"","sources":["../../src/landxml/result-types.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAC5B,YAAY,GACZ,UAAU,GACV,gBAAgB,GAChB,UAAU,GACV,SAAS,GACT,WAAW,GACX,eAAe,GACf,eAAe,GACf,oBAAoB,GACpB,oBAAoB,GACpB,kBAAkB,GAClB,uBAAuB,GACvB,oBAAoB,GACpB,mBAAmB,GACnB,MAAM,GACN,gBAAgB,CAAC;AAErB,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wEAAwE;AACxE,MAAM,WAAW,iBAAiB;IAChC,0EAA0E;IAC1E,IAAI,EAAE,mBAAmB,GAAG,oBAAoB,GAAG,cAAc,GAAG,qBAAqB,CAAC;IAC1F,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,oEAAoE;AACpE,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,sBAAsB,EAAE,OAAO,CAAC;IAChC,eAAe,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAClD;AAED,MAAM,MAAM,gBAAgB,GACxB;IACA,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,UAAU,EAAE,oBAAoB,CAAC;IACjC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;IACpC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACxC,GACC;IACA,MAAM,EAAE,SAAS,CAAC;IAClB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;IACpC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACxC,CAAC"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * LandXML `StaEquation` → `IfcReferent` / `Pset_Stationing` parameters
3
+ * (mapping spec §14).
4
+ *
5
+ * Pure numbers, like `alignment-mapping.ts`: the export dialog's pre-flight
6
+ * and the export itself run this same function, so the refusal the dialog
7
+ * shows is the refusal the export gives.
8
+ *
9
+ * An alignment's equations are mapped ALL OR NONE (§14.2). Stationing is
10
+ * cumulative, so writing some and dropping one would make every station after
11
+ * the dropped one wrong in a file that looks complete.
12
+ */
13
+ import { type AlignmentMapping, type MappedAlignment } from './alignment-mapping.js';
14
+ import type { LandXmlIfcAlignment, LandXmlIfcSource, LandXmlIfcUnits } from './source-types.js';
15
+ /**
16
+ * A `StaEquation` as the parser delivers it. `LandXmlIfcAlignment.stationEquations`
17
+ * stays `unknown[]` (narrowing a published input type is a breaking change), so
18
+ * each record is checked against this shape at run time instead.
19
+ */
20
+ export interface LandXmlIfcStationEquation {
21
+ sourceId: string;
22
+ /** Where, in the alignment's continuous stationing (`staStart` + distance along). */
23
+ staInternal: number;
24
+ /** The station from here on. */
25
+ staAhead: number;
26
+ /** The station arriving here, when authored. */
27
+ staBack: number | null;
28
+ /** `'increasing'` / `'decreasing'` — the direction of stationing after this point. */
29
+ staIncrement: string | null;
30
+ }
31
+ /** One station equation, in metres, ready for `Pset_Stationing`. */
32
+ export interface MappedStationEquation {
33
+ sourceId: string;
34
+ /** Distance along the alignment's basis curve from its start. */
35
+ distanceAlong: number;
36
+ /** `Pset_Stationing.Station` — the ahead station. */
37
+ station: number;
38
+ /** `Pset_Stationing.IncomingStation` — authored `staBack`, or derived (§14.1). */
39
+ incomingStation: number;
40
+ /** `Pset_Stationing.HasIncreasingStation`; `null` when `staIncrement` was not authored. */
41
+ increasing: boolean | null;
42
+ }
43
+ export interface StationEquationMapping {
44
+ /** Written equations, in order along the alignment. Empty when refused. */
45
+ equations: MappedStationEquation[];
46
+ /** How many equations the source carries on this alignment. */
47
+ count: number;
48
+ /** Why they were all refused, or `null` when they are written. */
49
+ refusal: string | null;
50
+ }
51
+ /** Map one WRITTEN alignment's station equations, all or none (§14.2). */
52
+ export declare function mapStationEquations(record: LandXmlIfcAlignment, alignment: MappedAlignment, units: LandXmlIfcUnits): StationEquationMapping;
53
+ /**
54
+ * The station-equation mapping of every WRITTEN alignment, by source id. A
55
+ * refused alignment takes its equations with it and is absent here: counting
56
+ * them again would misstate what is missing.
57
+ */
58
+ export declare function stationEquationsOf(source: LandXmlIfcSource, alignmentMapping: AlignmentMapping): Map<string, StationEquationMapping>;
59
+ /**
60
+ * Every distance along the alignment at which the DISPLAYED `station` (metres)
61
+ * occurs, given its written station equations — `rust/landxml`'s
62
+ * `distances_for_station`, over the mapped (metre) values.
63
+ *
64
+ * Empty: the station falls in a forward jump's gap. More than one: a backward
65
+ * jump (or a change of direction) displays it twice. Only exactly one is a
66
+ * place (§12.2, §14.5).
67
+ */
68
+ export declare function distancesForStation(station: number, startStation: number, equations: readonly MappedStationEquation[], length: number): number[];
69
+ //# sourceMappingURL=station-equations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"station-equations.d.ts","sourceRoot":"","sources":["../../src/landxml/station-equations.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,EAC8C,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAC/F,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEhG;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,qFAAqF;IACrF,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,sFAAsF;IACtF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,oEAAoE;AACpE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,aAAa,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,eAAe,EAAE,MAAM,CAAC;IACxB,2FAA2F;IAC3F,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,2EAA2E;IAC3E,SAAS,EAAE,qBAAqB,EAAE,CAAC;IACnC,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAsED,0EAA0E;AAC1E,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,GAC9E,sBAAsB,CASxB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,GAC3D,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAYrC;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,qBAAqB,EAAE,EAAE,MAAM,EAAE,MAAM,GACjG,MAAM,EAAE,CAcV"}
@@ -0,0 +1,140 @@
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
+ * LandXML `StaEquation` → `IfcReferent` / `Pset_Stationing` parameters
6
+ * (mapping spec §14).
7
+ *
8
+ * Pure numbers, like `alignment-mapping.ts`: the export dialog's pre-flight
9
+ * and the export itself run this same function, so the refusal the dialog
10
+ * shows is the refusal the export gives.
11
+ *
12
+ * An alignment's equations are mapped ALL OR NONE (§14.2). Stationing is
13
+ * cumulative, so writing some and dropping one would make every station after
14
+ * the dropped one wrong in a file that looks complete.
15
+ */
16
+ import { ALIGNMENT_POSITION_TOLERANCE_M, isAlignmentRecord, } from './alignment-mapping.js';
17
+ class Refusal extends Error {
18
+ }
19
+ function refuse(message) {
20
+ throw new Refusal(message);
21
+ }
22
+ const finite = (value) => typeof value === 'number' && Number.isFinite(value);
23
+ function checkRecord(value, label) {
24
+ const record = (typeof value === 'object' && value !== null ? value : {});
25
+ const increment = record.staIncrement;
26
+ if (typeof record.sourceId !== 'string' || !finite(record.staInternal) || !finite(record.staAhead)
27
+ || !(record.staBack === null || record.staBack === undefined || finite(record.staBack))
28
+ || !(increment === null || increment === undefined || increment === 'increasing' || increment === 'decreasing')) {
29
+ refuse(`${label} is not a station-equation record (it needs a finite staInternal and staAhead, `
30
+ + 'and a finite staBack and an increasing/decreasing staIncrement where given)');
31
+ }
32
+ return {
33
+ sourceId: record.sourceId,
34
+ staInternal: record.staInternal,
35
+ staAhead: record.staAhead,
36
+ staBack: finite(record.staBack) ? record.staBack : null,
37
+ staIncrement: typeof increment === 'string' ? increment : null,
38
+ };
39
+ }
40
+ function mapAll(records, alignment, units) {
41
+ const scale = units.linearScaleToMeters;
42
+ const length = alignment.segments.reduce((total, segment) => total + segment.length, 0);
43
+ const out = [];
44
+ // The running stationing, exactly as `rust/landxml`'s `station_mapping`
45
+ // walks it: the display value and direction in force since the last equation.
46
+ let previousDistance = 0;
47
+ let displayed = alignment.startStation;
48
+ let direction = 1;
49
+ records.forEach((value, index) => {
50
+ const label = `station equation ${index + 1}`;
51
+ const equation = checkRecord(value, label);
52
+ const distanceAlong = equation.staInternal * scale - alignment.startStation;
53
+ if (distanceAlong <= ALIGNMENT_POSITION_TOLERANCE_M) {
54
+ refuse(`${label} is at internal station ${equation.staInternal}, at or before the alignment's start`);
55
+ }
56
+ if (distanceAlong > length + ALIGNMENT_POSITION_TOLERANCE_M) {
57
+ refuse(`${label} is ${(distanceAlong - length).toFixed(3)} m beyond the alignment's end`);
58
+ }
59
+ if (index > 0 && distanceAlong <= previousDistance) {
60
+ refuse(`${label} is not after station equation ${index} along the alignment`);
61
+ }
62
+ const along = Math.min(distanceAlong, length);
63
+ const incomingStation = equation.staBack !== null
64
+ ? equation.staBack * scale
65
+ : displayed + direction * (along - previousDistance);
66
+ out.push({
67
+ sourceId: equation.sourceId,
68
+ distanceAlong: along,
69
+ station: equation.staAhead * scale,
70
+ incomingStation,
71
+ increasing: equation.staIncrement === null ? null : equation.staIncrement === 'increasing',
72
+ });
73
+ previousDistance = along;
74
+ displayed = equation.staAhead * scale;
75
+ direction = equation.staIncrement === 'decreasing' ? -1 : 1;
76
+ });
77
+ return out;
78
+ }
79
+ /** Map one WRITTEN alignment's station equations, all or none (§14.2). */
80
+ export function mapStationEquations(record, alignment, units) {
81
+ const records = record.stationEquations ?? [];
82
+ if (records.length === 0)
83
+ return { equations: [], count: 0, refusal: null };
84
+ try {
85
+ return { equations: mapAll(records, alignment, units), count: records.length, refusal: null };
86
+ }
87
+ catch (error) {
88
+ if (!(error instanceof Refusal))
89
+ throw error;
90
+ return { equations: [], count: records.length, refusal: error.message };
91
+ }
92
+ }
93
+ /**
94
+ * The station-equation mapping of every WRITTEN alignment, by source id. A
95
+ * refused alignment takes its equations with it and is absent here: counting
96
+ * them again would misstate what is missing.
97
+ */
98
+ export function stationEquationsOf(source, alignmentMapping) {
99
+ const out = new Map();
100
+ if (source.units === null)
101
+ return out;
102
+ const records = new Map();
103
+ for (const candidate of source.alignments ?? []) {
104
+ if (isAlignmentRecord(candidate) && !records.has(candidate.sourceId))
105
+ records.set(candidate.sourceId, candidate);
106
+ }
107
+ for (const alignment of alignmentMapping.mapped) {
108
+ const record = records.get(alignment.sourceId);
109
+ if (record)
110
+ out.set(alignment.sourceId, mapStationEquations(record, alignment, source.units));
111
+ }
112
+ return out;
113
+ }
114
+ /**
115
+ * Every distance along the alignment at which the DISPLAYED `station` (metres)
116
+ * occurs, given its written station equations — `rust/landxml`'s
117
+ * `distances_for_station`, over the mapped (metre) values.
118
+ *
119
+ * Empty: the station falls in a forward jump's gap. More than one: a backward
120
+ * jump (or a change of direction) displays it twice. Only exactly one is a
121
+ * place (§12.2, §14.5).
122
+ */
123
+ export function distancesForStation(station, startStation, equations, length) {
124
+ const tolerance = ALIGNMENT_POSITION_TOLERANCE_M;
125
+ const boundaries = [0, ...equations.map((equation) => equation.distanceAlong), length];
126
+ const out = [];
127
+ for (let index = 0; index + 1 < boundaries.length; index += 1) {
128
+ const previous = index === 0 ? null : equations[index - 1];
129
+ const displayStart = previous ? previous.station : startStation;
130
+ const direction = previous?.increasing === false ? -1 : 1;
131
+ const candidate = boundaries[index] + (station - displayStart) / direction;
132
+ if (candidate < boundaries[index] - tolerance || candidate > boundaries[index + 1] + tolerance)
133
+ continue;
134
+ const distance = Math.min(Math.max(candidate, 0), length);
135
+ if (out.length === 0 || Math.abs(distance - out[out.length - 1]) > tolerance)
136
+ out.push(distance);
137
+ }
138
+ return out;
139
+ }
140
+ //# sourceMappingURL=station-equations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"station-equations.js","sourceRoot":"","sources":["../../src/landxml/station-equations.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@
9
9
  */
10
10
  import type { TerrainWriter } from '../ifc-creator-terrain.js';
11
11
  import type { MappedAlignment } from './alignment-mapping.js';
12
+ import type { MappedProfile } from './profile-mapping.js';
13
+ import type { StationEquationMapping } from './station-equations.js';
12
14
  import type { LandXmlIfcCgPoint, LandXmlIfcSurface, LandXmlIfcUnits } from './source-types.js';
13
15
  /** Deterministic GlobalId from a LandXML source id, passed in to avoid an import cycle. */
14
16
  export type GlobalIdOf = (sourceId: string) => string;
@@ -27,5 +29,5 @@ export declare function writeSurveyPoints(terrain: TerrainWriter, points: readon
27
29
  * source id and the role of each owned entity, so a re-export of an unchanged
28
30
  * alignment is byte-identical (§4.3).
29
31
  */
30
- export declare function writeAlignments(terrain: TerrainWriter, alignments: readonly MappedAlignment[], landXmlGlobalId: GlobalIdOf): Array<[number, number]>;
32
+ export declare function writeAlignments(terrain: TerrainWriter, alignments: readonly MappedAlignment[], landXmlGlobalId: GlobalIdOf, profiles?: readonly MappedProfile[], stationing?: ReadonlyMap<string, StationEquationMapping>): Array<[number, number]>;
31
33
  //# sourceMappingURL=writers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"writers.d.ts","sourceRoot":"","sources":["../../src/landxml/writers.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE/F,2FAA2F;AAC3F,MAAM,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;AA6EtD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EACrG,eAAe,EAAE,UAAU,GAC1B;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,CAwB7F;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,iBAAiB,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EACnG,eAAe,EAAE,UAAU,GAC1B;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,CAyBrD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,eAAe,EAAE,EAAE,eAAe,EAAE,UAAU,GAC1F,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAazB"}
1
+ {"version":3,"file":"writers.d.ts","sourceRoot":"","sources":["../../src/landxml/writers.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE/F,2FAA2F;AAC3F,MAAM,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;AA6EtD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EACrG,eAAe,EAAE,UAAU,GAC1B;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,CAwB7F;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,iBAAiB,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EACnG,eAAe,EAAE,UAAU,GAC1B;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,CAyBrD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,eAAe,EAAE,EAAE,eAAe,EAAE,UAAU,EAC3F,QAAQ,GAAE,SAAS,aAAa,EAAO,EACvC,UAAU,GAAE,WAAW,CAAC,MAAM,EAAE,sBAAsB,CAAa,GAClE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA8BzB"}
@@ -125,14 +125,31 @@ export function writeSurveyPoints(terrain, points, units, swap, landXmlGlobalId)
125
125
  * source id and the role of each owned entity, so a re-export of an unchanged
126
126
  * alignment is byte-identical (§4.3).
127
127
  */
128
- export function writeAlignments(terrain, alignments, landXmlGlobalId) {
128
+ export function writeAlignments(terrain, alignments, landXmlGlobalId, profiles = [], stationing = new Map()) {
129
129
  const samples = [];
130
130
  for (const alignment of alignments) {
131
+ // At most one: `mapProfiles` refuses every design profile of an alignment
132
+ // that has more than one (§12.2).
133
+ const profile = profiles.find((candidate) => candidate.alignmentSourceId === alignment.sourceId);
131
134
  terrain.addAlignment({
135
+ ...(profile ? {
136
+ Vertical: { Name: profile.name, GlobalId: landXmlGlobalId(profile.sourceId), Segments: profile.segments },
137
+ } : {}),
132
138
  Name: alignment.name,
133
139
  GlobalId: landXmlGlobalId(alignment.sourceId),
134
140
  StartStation: alignment.startStation,
135
141
  Segments: alignment.segments,
142
+ // §14: each written equation is an IfcReferent whose GlobalId derives
143
+ // from the equation's own source id.
144
+ StationEquations: (stationing.get(alignment.sourceId)?.equations ?? []).map((equation) => ({
145
+ DistanceAlong: equation.distanceAlong,
146
+ Station: equation.station,
147
+ IncomingStation: equation.incomingStation,
148
+ HasIncreasingStation: equation.increasing,
149
+ Role: equation.sourceId.startsWith(`${alignment.sourceId}:`)
150
+ ? equation.sourceId.slice(alignment.sourceId.length + 1)
151
+ : equation.sourceId,
152
+ })),
136
153
  guidFor: (role) => landXmlGlobalId(`${alignment.sourceId}:${role}`),
137
154
  });
138
155
  for (const segment of alignment.segments)
@@ -1 +1 @@
1
- {"version":3,"file":"writers.js","sourceRoot":"","sources":["../../src/landxml/writers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"writers.js","sourceRoot":"","sources":["../../src/landxml/writers.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -414,12 +414,23 @@ export interface ProxyParams extends ElementAttributes {
414
414
  ProxyType?: string;
415
415
  }
416
416
  /** IFC property value types */
417
- export type PropertyType = 'IfcLabel' | 'IfcText' | 'IfcIdentifier' | 'IfcReal' | 'IfcInteger' | 'IfcBoolean' | 'IfcLogical';
417
+ /**
418
+ * A numeric measure type -- `IfcThermalTransmittanceMeasure`,
419
+ * `IfcPositiveLengthMeasure`, `IfcCountMeasure`, `IfcPlaneAngleMeasure`, ...
420
+ * Standard property sets declare their values in these (Pset_WallCommon's
421
+ * ThermalTransmittance is an IfcThermalTransmittanceMeasure, not an IfcReal),
422
+ * and an IDS check on the data type fails a value written as the wrong one.
423
+ */
424
+ export type PropertyMeasureType = `Ifc${string}Measure`;
425
+ export type PropertyType = 'IfcLabel' | 'IfcText' | 'IfcIdentifier' | 'IfcReal' | 'IfcInteger' | 'IfcBoolean' | 'IfcLogical' | PropertyMeasureType;
418
426
  /** Single property definition */
419
427
  export interface PropertyDef {
420
428
  Name: string;
421
429
  NominalValue: string | number | boolean;
422
- /** Defaults to IfcLabel for strings, IfcReal for numbers, IfcBoolean for booleans */
430
+ /**
431
+ * Defaults to IfcLabel for strings, IfcInteger/IfcReal for numbers, IfcBoolean
432
+ * for booleans. A numeric value may declare any measure type and is written as it.
433
+ */
423
434
  Type?: PropertyType;
424
435
  }
425
436
  /** Property set to attach to an element */
@@ -465,13 +476,6 @@ export interface ProjectParams {
465
476
  Name?: string;
466
477
  Description?: string;
467
478
  Schema?: 'IFC2X3' | 'IFC4' | 'IFC4X3';
468
- /**
469
- * @deprecated IFC4X3 output is now always declared as `IFC4X3_ADD2`, the
470
- * ISO 16739-1:2024 identifier for the layouts `IfcCreator` writes (#5351),
471
- * so this option changes nothing. It still refuses a `Schema` other than
472
- * `'IFC4X3'`. Omit it.
473
- */
474
- FileSchemaIdentifier?: 'IFC4X3_ADD2';
475
479
  /** Length unit: 'METRE' (default), 'MILLIMETRE', 'FOOT' */
476
480
  LengthUnit?: string;
477
481
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ifc-lite/create",
3
- "version": "2.9.2",
3
+ "version": "3.1.0",
4
4
  "description": "IFC creation from scratch — walls, slabs, beams, columns, stairs, roofs with geometry, properties and quantities",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -13,15 +13,15 @@
13
13
  }
14
14
  },
15
15
  "dependencies": {
16
- "@ifc-lite/data": "^5.3.0",
17
- "@ifc-lite/mutations": "^2.7.0",
16
+ "@ifc-lite/data": "^6.0.0",
18
17
  "@ifc-lite/encoding": "^2.2.0",
19
- "@ifc-lite/parser": "^8.2.0"
18
+ "@ifc-lite/mutations": "^2.8.0",
19
+ "@ifc-lite/parser": "^9.0.0"
20
20
  },
21
21
  "devDependencies": {
22
22
  "typescript": "^6.0.3",
23
23
  "vitest": "^5.0.1",
24
- "@ifc-lite/export": "^4.7.2"
24
+ "@ifc-lite/export": "^4.7.4"
25
25
  },
26
26
  "license": "MPL-2.0",
27
27
  "author": "Louis True",