@enervance/insight-cim-model 0.0.159 → 0.0.161

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 (252) hide show
  1. package/dist/converter/PSDM/ConverterPowerSystemDataModel.js +3 -3
  2. package/dist/converter/PSDM/ConverterPowerSystemDataModel.js.map +1 -1
  3. package/dist/converter/cgmes-validator.d.ts +3 -3
  4. package/dist/converter/cgmes-validator.js.map +1 -1
  5. package/dist/converter/integral7/config/integral-prefix.d.ts +2 -0
  6. package/dist/converter/integral7/config/integral-prefix.js +3 -1
  7. package/dist/converter/integral7/config/integral-prefix.js.map +1 -1
  8. package/dist/converter/integral7/converter.integral7.d.ts +36 -41
  9. package/dist/converter/integral7/converter.integral7.js +1015 -792
  10. package/dist/converter/integral7/converter.integral7.js.map +1 -1
  11. package/dist/converter/integral7/dl-convert/data-manager.js +7 -2
  12. package/dist/converter/integral7/dl-convert/data-manager.js.map +1 -1
  13. package/dist/converter/integral7/dl-convert/db/database.interface.types.d.ts +229 -0
  14. package/dist/converter/integral7/dl-convert/dl-converter-i7-2.d.ts +103 -2
  15. package/dist/converter/integral7/dl-convert/dl-converter-i7-2.js +1603 -121
  16. package/dist/converter/integral7/dl-convert/dl-converter-i7-2.js.map +1 -1
  17. package/dist/converter/integral7/dl-convert/dl-converter-i7.d.ts +1 -1
  18. package/dist/converter/integral7/dl-convert/dl-converter-i7.js.map +1 -1
  19. package/dist/converter/integral7/dl-convert/dl-graphs/cim-model-graph.d.ts +9 -2
  20. package/dist/converter/integral7/dl-convert/dl-graphs/cim-model-graph.js +19 -7
  21. package/dist/converter/integral7/dl-convert/dl-graphs/cim-model-graph.js.map +1 -1
  22. package/dist/converter/integral7/dl-convert/dl-graphs/convert-graph-keys.d.ts +105 -5
  23. package/dist/converter/integral7/dl-convert/dl-graphs/convert-graph-keys.js +68 -2
  24. package/dist/converter/integral7/dl-convert/dl-graphs/convert-graph-keys.js.map +1 -1
  25. package/dist/converter/integral7/dl-convert/dl-graphs/db-object-graph.d.ts +1 -1
  26. package/dist/converter/integral7/dl-convert/dl-graphs/db-object-graph.js +45 -25
  27. package/dist/converter/integral7/dl-convert/dl-graphs/db-object-graph.js.map +1 -1
  28. package/dist/converter/integral7/dl-convert/executor.d.ts +1 -0
  29. package/dist/converter/integral7/dl-convert/executor.js +230 -112
  30. package/dist/converter/integral7/dl-convert/executor.js.map +1 -1
  31. package/dist/converter/integral7/interface-i7/data-structures-i7.d.ts +3 -3
  32. package/dist/converter/integral7/interface-i7/{IDefaultValuesConfig.d.ts → default-values-config.interface.d.ts} +4 -1
  33. package/dist/converter/integral7/interface-i7/{IIntegral7ConverterConfig.js → default-values-config.interface.js} +1 -1
  34. package/dist/converter/integral7/interface-i7/default-values-config.interface.js.map +1 -0
  35. package/dist/converter/integral7/interface-i7/export-frame-i7.d.ts +5 -5
  36. package/dist/converter/integral7/interface-i7/export-frame-i7.js +7 -1
  37. package/dist/converter/integral7/interface-i7/export-frame-i7.js.map +1 -1
  38. package/dist/converter/integral7/interface-i7/integral7-converter-config.interface.d.ts +3 -0
  39. package/dist/converter/integral7/{model/integral/Hgueleitung.js → interface-i7/integral7-converter-config.interface.js} +1 -1
  40. package/dist/converter/integral7/interface-i7/integral7-converter-config.interface.js.map +1 -0
  41. package/dist/converter/integral7/interface-i7/{IObjectMappingConfig.d.ts → object-mapping-config.interface.d.ts} +1 -1
  42. package/dist/converter/integral7/interface-i7/{IObjectMappingConfig.js → object-mapping-config.interface.js} +1 -1
  43. package/dist/converter/integral7/interface-i7/object-mapping-config.interface.js.map +1 -0
  44. package/dist/converter/integral7/interface-i7/uuid-config.interface.d.ts +5 -0
  45. package/dist/converter/integral7/interface-i7/{IDefaultValuesConfig.js → uuid-config.interface.js} +1 -1
  46. package/dist/converter/integral7/interface-i7/uuid-config.interface.js.map +1 -0
  47. package/dist/converter/integral7/model/dl-utils/util-functions.d.ts +0 -6
  48. package/dist/converter/integral7/model/dl-utils/util-functions.js +4 -40
  49. package/dist/converter/integral7/model/dl-utils/util-functions.js.map +1 -1
  50. package/dist/converter/integral7/model/integral/HgueleitungImpl.d.ts +24 -0
  51. package/dist/converter/integral7/model/integral/HgueleitungImpl.js +7 -0
  52. package/dist/converter/integral7/model/integral/HgueleitungImpl.js.map +1 -0
  53. package/dist/converter/integral7/model/integral/Leitung.d.ts +1 -0
  54. package/dist/converter/integral7/model/integral/Leitung.js +1 -0
  55. package/dist/converter/integral7/model/integral/Leitung.js.map +1 -1
  56. package/dist/converter/integral7/model/interfaces.d.ts +94 -31
  57. package/dist/converter/integral7/model/interfaces.js.map +1 -1
  58. package/dist/converter/integral7/sql/integral.sql.d.ts +4 -1
  59. package/dist/converter/integral7/sql/integral.sql.js +21 -15
  60. package/dist/converter/integral7/sql/integral.sql.js.map +1 -1
  61. package/dist/converter/integral7/util-asset.model.d.ts +2 -1
  62. package/dist/converter/integral7/util-asset.model.js +3 -2
  63. package/dist/converter/integral7/util-asset.model.js.map +1 -1
  64. package/dist/converter/integral7/utils-cgmes-export.d.ts +10 -10
  65. package/dist/converter/integral7/utils-cgmes-export.js +3 -0
  66. package/dist/converter/integral7/utils-cgmes-export.js.map +1 -1
  67. package/dist/converter/integral7/utils.d.ts +17 -3
  68. package/dist/converter/integral7/utils.js +189 -18
  69. package/dist/converter/integral7/utils.js.map +1 -1
  70. package/dist/etl/etl-neplan/etl-neplan.js +15 -8
  71. package/dist/etl/etl-neplan/etl-neplan.js.map +1 -1
  72. package/dist/index.d.ts +1 -1
  73. package/dist/index.js +3 -3
  74. package/dist/index.js.map +1 -1
  75. package/dist/interfaces/model/core/IIdentifiedObject.d.ts +3 -3
  76. package/dist/model/assetinfo/WireInfo.d.ts +1 -0
  77. package/dist/model/assetinfo/WireInfo.js.map +1 -1
  78. package/dist/model/common/PositionPoint.js +3 -18
  79. package/dist/model/common/PositionPoint.js.map +1 -1
  80. package/dist/model/core/ACDCTerminal.d.ts +2 -2
  81. package/dist/model/core/ACDCTerminal.js.map +1 -1
  82. package/dist/model/core/BaseVoltage.d.ts +2 -2
  83. package/dist/model/core/BaseVoltage.js.map +1 -1
  84. package/dist/model/core/ConnectivityNode.d.ts +2 -2
  85. package/dist/model/core/ConnectivityNode.js.map +1 -1
  86. package/dist/model/core/Equipment.d.ts +2 -2
  87. package/dist/model/core/Equipment.js.map +1 -1
  88. package/dist/model/core/IdentifiedObject.d.ts +3 -3
  89. package/dist/model/core/IdentifiedObject.js +9 -3
  90. package/dist/model/core/IdentifiedObject.js.map +1 -1
  91. package/dist/model/core/Terminal.d.ts +2 -2
  92. package/dist/model/core/Terminal.js +2 -2
  93. package/dist/model/core/Terminal.js.map +1 -1
  94. package/dist/model/dc/ACDCConverter.d.ts +2 -2
  95. package/dist/model/dc/ACDCConverter.js.map +1 -1
  96. package/dist/model/dc/ACDCConverterDCTerminal.js +1 -0
  97. package/dist/model/dc/ACDCConverterDCTerminal.js.map +1 -1
  98. package/dist/model/dc/CsConverter.d.ts +2 -2
  99. package/dist/model/dc/CsConverter.js.map +1 -1
  100. package/dist/model/dc/DCConverterUnit.d.ts +3 -2
  101. package/dist/model/dc/DCConverterUnit.js +3 -0
  102. package/dist/model/dc/DCConverterUnit.js.map +1 -1
  103. package/dist/model/dc/DCLine.js +17 -17
  104. package/dist/model/dc/DCLineSegment.js +25 -25
  105. package/dist/model/dc/DCTerminal.js +1 -0
  106. package/dist/model/dc/DCTerminal.js.map +1 -1
  107. package/dist/model/dc/VsConverter.d.ts +2 -2
  108. package/dist/model/dc/VsConverter.js.map +1 -1
  109. package/dist/model/diagram/Diagram.js +2 -0
  110. package/dist/model/diagram/Diagram.js.map +1 -1
  111. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/DynamicsFunctionBlock.d.ts +2 -2
  112. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/DynamicsFunctionBlock.js.map +1 -1
  113. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/SynchronousMachineTimeConstantReactance.d.ts +2 -2
  114. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/SynchronousMachineTimeConstantReactance.js.map +1 -1
  115. package/dist/model/equivalents/EquivalentBranch.d.ts +2 -2
  116. package/dist/model/equivalents/EquivalentBranch.js.map +1 -1
  117. package/dist/model/equivalents/EquivalentInjection.d.ts +2 -2
  118. package/dist/model/equivalents/EquivalentInjection.js.map +1 -1
  119. package/dist/model/extensions/amprion/core/AMPRIONLine.d.ts +2 -2
  120. package/dist/model/extensions/amprion/core/AMPRIONLine.js.map +1 -1
  121. package/dist/model/extensions/amprion/equivalents/INTEGRALEquivalentBranch.js +2 -9
  122. package/dist/model/extensions/amprion/equivalents/INTEGRALEquivalentBranch.js.map +1 -1
  123. package/dist/model/extensions/integral/loadmodel/INTEGRALConformLoad.d.ts +1 -0
  124. package/dist/model/extensions/integral/loadmodel/INTEGRALConformLoad.js +3 -0
  125. package/dist/model/extensions/integral/loadmodel/INTEGRALConformLoad.js.map +1 -1
  126. package/dist/model/extensions/integral/wires/INTEGRALAsynchronousMachine.js +1 -1
  127. package/dist/model/extensions/integral/wires/INTEGRALAsynchronousMachine.js.map +1 -1
  128. package/dist/model/extensions/integral/wires/INTEGRALExternalNetworkInjection.d.ts +1 -0
  129. package/dist/model/extensions/integral/wires/INTEGRALExternalNetworkInjection.js +6 -3
  130. package/dist/model/extensions/integral/wires/INTEGRALExternalNetworkInjection.js.map +1 -1
  131. package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine.d.ts +1 -0
  132. package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine.js +7 -1
  133. package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine.js.map +1 -1
  134. package/dist/model/generation/GeneratingUnit.d.ts +2 -2
  135. package/dist/model/generation/GeneratingUnit.js.map +1 -1
  136. package/dist/model/loadmodel/ConformLoad.d.ts +2 -2
  137. package/dist/model/loadmodel/ConformLoad.js +33 -33
  138. package/dist/model/loadmodel/ConformLoad.js.map +1 -1
  139. package/dist/model/loadmodel/ConformLoadGroup.js +22 -22
  140. package/dist/model/loadmodel/LoadArea.js +21 -21
  141. package/dist/model/loadmodel/SubLoadArea.js +22 -22
  142. package/dist/model/operationallimits/ApparentPowerLimit.d.ts +15 -0
  143. package/dist/model/operationallimits/ApparentPowerLimit.js +56 -0
  144. package/dist/model/operationallimits/ApparentPowerLimit.js.map +1 -0
  145. package/dist/model/operationallimits/CurrentLimit.d.ts +2 -2
  146. package/dist/model/operationallimits/CurrentLimit.js.map +1 -1
  147. package/dist/model/operations/ControlArea.d.ts +1 -0
  148. package/dist/model/operations/ControlArea.js +6 -2
  149. package/dist/model/operations/ControlArea.js.map +1 -1
  150. package/dist/model/statevariables/SvPowerFlow.d.ts +2 -2
  151. package/dist/model/statevariables/SvPowerFlow.js.map +1 -1
  152. package/dist/model/wires/ACLineSegment.d.ts +2 -2
  153. package/dist/model/wires/ACLineSegment.js.map +1 -1
  154. package/dist/model/wires/AsynchronousMachine.d.ts +2 -2
  155. package/dist/model/wires/AsynchronousMachine.js.map +1 -1
  156. package/dist/model/wires/Breaker.js +1 -1
  157. package/dist/model/wires/Breaker.js.map +1 -1
  158. package/dist/model/wires/Conductor.d.ts +2 -2
  159. package/dist/model/wires/Conductor.js.map +1 -1
  160. package/dist/model/wires/Disconnector.js +1 -1
  161. package/dist/model/wires/Disconnector.js.map +1 -1
  162. package/dist/model/wires/EnergyConsumer.d.ts +2 -2
  163. package/dist/model/wires/EnergyConsumer.js.map +1 -1
  164. package/dist/model/wires/EnergySource.d.ts +2 -2
  165. package/dist/model/wires/EnergySource.js.map +1 -1
  166. package/dist/model/wires/ExternalNetworkInjection.d.ts +2 -2
  167. package/dist/model/wires/ExternalNetworkInjection.js +4 -4
  168. package/dist/model/wires/ExternalNetworkInjection.js.map +1 -1
  169. package/dist/model/wires/GroundingImpedance.d.ts +2 -2
  170. package/dist/model/wires/GroundingImpedance.js.map +1 -1
  171. package/dist/model/wires/LinearShuntCompensator.d.ts +2 -2
  172. package/dist/model/wires/LinearShuntCompensator.js.map +1 -1
  173. package/dist/model/wires/PetersenCoil.d.ts +2 -2
  174. package/dist/model/wires/PetersenCoil.js.map +1 -1
  175. package/dist/model/wires/PhaseTapChangerAsymmetrical.d.ts +2 -2
  176. package/dist/model/wires/PhaseTapChangerAsymmetrical.js +1 -1
  177. package/dist/model/wires/PhaseTapChangerAsymmetrical.js.map +1 -1
  178. package/dist/model/wires/PhaseTapChangerLinear.d.ts +2 -2
  179. package/dist/model/wires/PhaseTapChangerLinear.js.map +1 -1
  180. package/dist/model/wires/PhaseTapChangerNonLinear.d.ts +2 -2
  181. package/dist/model/wires/PhaseTapChangerNonLinear.js.map +1 -1
  182. package/dist/model/wires/PhaseTapChangerSymmetrical.js +1 -1
  183. package/dist/model/wires/PhaseTapChangerSymmetrical.js.map +1 -1
  184. package/dist/model/wires/PhaseTapChangerTable.d.ts +3 -3
  185. package/dist/model/wires/PhaseTapChangerTable.js.map +1 -1
  186. package/dist/model/wires/PhaseTapChangerTablePoint.d.ts +3 -3
  187. package/dist/model/wires/PhaseTapChangerTablePoint.js.map +1 -1
  188. package/dist/model/wires/PowerTransformerEnd.d.ts +2 -2
  189. package/dist/model/wires/PowerTransformerEnd.js.map +1 -1
  190. package/dist/model/wires/RatioTapChanger.d.ts +2 -2
  191. package/dist/model/wires/RatioTapChanger.js.map +1 -1
  192. package/dist/model/wires/RatioTapChangerTable.d.ts +3 -3
  193. package/dist/model/wires/RatioTapChangerTable.js.map +1 -1
  194. package/dist/model/wires/RegulatingCondEq.d.ts +2 -2
  195. package/dist/model/wires/RegulatingCondEq.js.map +1 -1
  196. package/dist/model/wires/RegulatingControl.d.ts +2 -2
  197. package/dist/model/wires/RegulatingControl.js.map +1 -1
  198. package/dist/model/wires/RotatingMachine.d.ts +3 -3
  199. package/dist/model/wires/RotatingMachine.js.map +1 -1
  200. package/dist/model/wires/SeriesCompensator.d.ts +2 -2
  201. package/dist/model/wires/SeriesCompensator.js.map +1 -1
  202. package/dist/model/wires/ShuntCompensator.d.ts +2 -2
  203. package/dist/model/wires/ShuntCompensator.js.map +1 -1
  204. package/dist/model/wires/StaticVarCompensator.d.ts +2 -2
  205. package/dist/model/wires/StaticVarCompensator.js.map +1 -1
  206. package/dist/model/wires/SynchronousMachine.d.ts +2 -2
  207. package/dist/model/wires/SynchronousMachine.js.map +1 -1
  208. package/dist/model/wires/TapChanger.d.ts +2 -2
  209. package/dist/model/wires/TapChanger.js.map +1 -1
  210. package/dist/model/wires/TapChangerTablePoint.d.ts +3 -3
  211. package/dist/model/wires/TapChangerTablePoint.js +6 -18
  212. package/dist/model/wires/TapChangerTablePoint.js.map +1 -1
  213. package/dist/model/wires/TransformerEnd.d.ts +2 -2
  214. package/dist/model/wires/TransformerEnd.js.map +1 -1
  215. package/dist/model-container/model/ModelContainer.d.ts +7 -3
  216. package/dist/model-container/model/ModelContainer.js +13 -1
  217. package/dist/model-container/model/ModelContainer.js.map +1 -1
  218. package/dist/util/collection/util-graph2tree.d.ts +1 -0
  219. package/dist/util/collection/util-graph2tree.js +65 -2
  220. package/dist/util/collection/util-graph2tree.js.map +1 -1
  221. package/dist/util/util-create.d.ts +3 -2
  222. package/dist/util/util-create.js +34 -21
  223. package/dist/util/util-create.js.map +1 -1
  224. package/dist/util/util-test.js +0 -109
  225. package/dist/util/util-test.js.map +1 -1
  226. package/dist/util/utils.d.ts +3 -2
  227. package/dist/util/utils.js +5 -4
  228. package/dist/util/utils.js.map +1 -1
  229. package/dist/util/xml/xml.serializer.d.ts +2 -2
  230. package/dist/util/xml/xml.serializer.js.map +1 -1
  231. package/dist/utils2/common.utils.d.ts +2 -0
  232. package/dist/utils2/common.utils.js +7 -0
  233. package/dist/utils2/common.utils.js.map +1 -1
  234. package/dist/utils2/parser.utils.d.ts +1 -1
  235. package/dist/utils2/parser.utils.js +41 -20
  236. package/dist/utils2/parser.utils.js.map +1 -1
  237. package/package.json +1 -1
  238. package/dist/converter/integral7/ConverterIntegral7.d.ts +0 -0
  239. package/dist/converter/integral7/ConverterIntegral7.js +0 -1
  240. package/dist/converter/integral7/ConverterIntegral7.js.map +0 -1
  241. package/dist/converter/integral7/interface-i7/IDefaultValuesConfig.js.map +0 -1
  242. package/dist/converter/integral7/interface-i7/IIntegral7ConverterConfig.d.ts +0 -3
  243. package/dist/converter/integral7/interface-i7/IIntegral7ConverterConfig.js.map +0 -1
  244. package/dist/converter/integral7/interface-i7/IObjectMappingConfig.js.map +0 -1
  245. package/dist/converter/integral7/model/integral/Hgueleitung.d.ts +0 -12
  246. package/dist/converter/integral7/model/integral/Hgueleitung.js.map +0 -1
  247. package/dist/converter/integral7/model/integral/Kopfstation.d.ts +0 -44
  248. package/dist/converter/integral7/model/integral/Kopfstation.js +0 -10
  249. package/dist/converter/integral7/model/integral/Kopfstation.js.map +0 -1
  250. package/dist/model/model/Model.d.ts +0 -0
  251. package/dist/model/model/Model.js +0 -1
  252. package/dist/model/model/Model.js.map +0 -1
@@ -17,10 +17,12 @@ const db_object_graph_1 = require("./dl-graphs/db-object-graph.js");
17
17
  const DiagramObjectPoint_1 = require("../../../model/diagram/DiagramObjectPoint.js");
18
18
  const utils_schema_1 = require("../utils-schema.js");
19
19
  const BusbarSection_1 = require("../../../model/wires/BusbarSection.js");
20
+ const Junction_1 = require("../../../model/wires/Junction.js");
20
21
  class DLConverterI7 {
21
- constructor(logger) {
22
+ constructor(logger, config) {
22
23
  this.exportedDiagramObjectsGraph = {};
23
24
  this.logger = logger;
25
+ this.config = config;
24
26
  this.dbObjectGraph = new db_object_graph_1.DbObjectGraph(convert_graph_keys_1.i7SchemaKeyDefinitions);
25
27
  this.dbObjectKeyCimModelUuidGraph = new cim_model_graph_1.DbObjectKey2CimModelUUIDGraph(convert_graph_keys_1.i7SchemaKeyDefinitions);
26
28
  this.cimModelGraph = new cim_model_graph_1.CimModelGraph();
@@ -46,6 +48,9 @@ class DLConverterI7 {
46
48
  this.dbObjectKeyCimModelUuidGraph.addRelation(typeOfKey, dbKey, uuid);
47
49
  this.cimModelGraph.addUnspecifiedObject(uuid, object);
48
50
  }
51
+ /**
52
+ * convertNsgVariante
53
+ */
49
54
  convertNsgVariante(arg) {
50
55
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
51
56
  const diagram = new Diagram_1.Diagram((0, parser_utils_1.getUUID)(arg.guid), arg.name, String(arg.id));
@@ -54,10 +59,16 @@ class DLConverterI7 {
54
59
  return diagram;
55
60
  });
56
61
  }
62
+ /**
63
+ * convertSchemaStandort
64
+ */
57
65
  convertSchemaStandort(arg) {
58
66
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
59
67
  });
60
68
  }
69
+ /**
70
+ * convertSchemaKnotenStandort
71
+ */
61
72
  convertSchemaKnotenStandort(nsgKnotenSo) {
62
73
  var _a, _b;
63
74
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
@@ -71,7 +82,7 @@ class DLConverterI7 {
71
82
  diagramObjectName: 'Abzweig',
72
83
  identifiedObjectUUID: cimObjectUUID
73
84
  });
74
- // knotenso must be accesible via knotenzw-id
85
+ // knotenso must be accessible via knotenzw-id
75
86
  const netzSchlaufen = yield this.dbObjectGraph.findByAttributes(convert_graph_keys_1.i7TableNames.netz_schlaufe, {
76
87
  eknoten: { in: [nsgKnotenSo.knotenso] }
77
88
  });
@@ -84,10 +95,45 @@ class DLConverterI7 {
84
95
  return diagramObject;
85
96
  });
86
97
  }
98
+ /**
99
+ * convertSchemaKnotenStandort
100
+ */
101
+ convertSchemaKnotenHgue(nsgKnotenHgue) {
102
+ var _a, _b;
103
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
104
+ const nsgStandort = yield this.dbObjectGraph.findObjectByKey(convert_graph_keys_1.i7TableNames.nsg_nsgstandort, convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, { variantennr: nsgKnotenHgue.variantennr, id: nsgKnotenHgue.nsgso });
105
+ if (nsgStandort === undefined)
106
+ return null;
107
+ const cimObjectUUID = (_b = (_a = this.dbObjectKeyCimModelUuidGraph) === null || _a === void 0 ? void 0 : _a.getCimObjectIdFromDbKey(convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: nsgKnotenHgue.knotenso })) !== null && _b !== void 0 ? _b : undefined;
108
+ const diagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint2({
109
+ xPosition: nsgStandort.xrel + nsgKnotenHgue.xrel + 16,
110
+ yPosition: nsgStandort.yrel + nsgKnotenHgue.yrel + 16,
111
+ diagramObjectName: 'Hgue-Knoten',
112
+ identifiedObjectUUID: cimObjectUUID
113
+ });
114
+ // knotenso must be accessible via knotenzw-id
115
+ const netzSchlaufen = yield this.dbObjectGraph.findByAttributes(convert_graph_keys_1.i7TableNames.netz_schlaufe, {
116
+ eknoten: { in: [nsgKnotenHgue.knotenso] }
117
+ });
118
+ if (netzSchlaufen && netzSchlaufen.length > 0) {
119
+ for (const netzSchlaufe of netzSchlaufen) {
120
+ this.addExportedDiagramObjectToGraph(nsgKnotenHgue.variantennr, netzSchlaufe.knotenzw, diagramObject);
121
+ }
122
+ }
123
+ this.addExportedDiagramObjectToGraph(nsgKnotenHgue.variantennr, nsgKnotenHgue.knotenso, diagramObject);
124
+ return diagramObject;
125
+ });
126
+ }
127
+ /**
128
+ * convertSchemaSchaltanlage
129
+ */
87
130
  convertSchemaSchaltanlage(arg) {
88
131
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
89
132
  });
90
133
  }
134
+ /**
135
+ * convertSchemaSchaltanlagenAbschnitte
136
+ */
91
137
  convertSchemaSchaltanlagenAbschnitte(arg) {
92
138
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
93
139
  // const nsgSchaltanlage: NsgSchaltanlage = await this.dbObjectGraph.findObjectByKey(
@@ -115,8 +161,11 @@ class DLConverterI7 {
115
161
  return resultingDiagramObjects;
116
162
  });
117
163
  }
164
+ /**
165
+ * convertSchemaSammelschienenAbschnitt
166
+ */
118
167
  convertSchemaSammelschienenAbschnitt(nsgSaabschnitt, netzSsab) {
119
- var _a, _b;
168
+ var _a, _b, _c;
120
169
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
121
170
  const nsgSchaltanlage = yield this.dbObjectGraph.findObjectByKey(convert_graph_keys_1.i7TableNames.nsg_nsgschaltanlage, convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, { variantennr: nsgSaabschnitt.variantennr, id: nsgSaabschnitt.nsgsa });
122
171
  if (!nsgSchaltanlage)
@@ -143,37 +192,49 @@ class DLConverterI7 {
143
192
  const connectivityNode = this.cimModelGraph.findObjectByUUID(cimObjectUUID);
144
193
  let busbarSection = null;
145
194
  let busbarSectionTerminal = null;
146
- for (const terminal of connectivityNode.terminals.values()) {
147
- if (terminal.conductingEquipment instanceof BusbarSection_1.BusbarSection) {
148
- busbarSection = terminal.conductingEquipment;
149
- busbarSectionTerminal = terminal;
150
- break;
195
+ if (connectivityNode) {
196
+ for (const terminal of connectivityNode.terminals.values()) {
197
+ if (terminal.conductingEquipment instanceof BusbarSection_1.BusbarSection) {
198
+ busbarSection = terminal.conductingEquipment;
199
+ busbarSectionTerminal = terminal;
200
+ break;
201
+ }
151
202
  }
152
203
  }
153
- // compute the position for the ConnectivityNode (the center of the BusbarSection)
154
- const centerPosition = [
155
- (topLeft.xPosition + bottomRight.xPosition) / 2,
156
- (topLeft.yPosition + bottomRight.yPosition) / 2
157
- ];
158
- const doConnectivityNode = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(centerPosition[0], centerPosition[1], null);
159
- doConnectivityNode.name = `NetzSsab CN ${netzSsab.id}`;
160
- doConnectivityNode.identifiedObjectUUID = cimObjectUUID;
161
- this.addExportedDiagramObjectToGraph(nsgSaabschnitt.variantennr, netzSsab.id, doConnectivityNode);
162
- if (busbarSection && busbarSectionTerminal) {
204
+ if (busbarSection && busbarSectionTerminal && !((_c = this.config) === null || _c === void 0 ? void 0 : _c.busbarSectionAsConnectivityNode)) {
205
+ // compute the position for the ConnectivityNode (the center of the BusbarSection)
206
+ const centerPosition = [
207
+ (topLeft.xPosition + bottomRight.xPosition) / 2,
208
+ (topLeft.yPosition + bottomRight.yPosition) / 2
209
+ ];
210
+ const doConnectivityNode = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(centerPosition[0], centerPosition[1], null);
211
+ doConnectivityNode.name = `NetzSsab CN ${netzSsab.id}`;
212
+ doConnectivityNode.identifiedObjectUUID = cimObjectUUID;
213
+ this.addExportedDiagramObjectToGraph(nsgSaabschnitt.variantennr, netzSsab.id, doConnectivityNode);
163
214
  const doBusbarSection = new DiagramObject_1.DiagramObject(common_utils_1.CommonUtils.generateUUID(), `NetzSsab ${netzSsab.id}`);
164
215
  doBusbarSection.identifiedObjectUUID = busbarSection.getUUID();
165
216
  doBusbarSection.rotation = util_functions_1.DLUtilFunctions.getRotationBasedOnNsgSa(nsgSchaltanlage.ausrichtung);
166
217
  (0, utils_schema_1.copyDiagramObjectPoints)(doBusbarSection, points);
167
218
  this.exportedTerminalUUIDs.add(busbarSectionTerminal.getUUID());
168
- const doBusbarSectionTerminal = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoints([[topLeft.xPosition, topLeft.yPosition], [...centerPosition]], null);
169
- doBusbarSectionTerminal.identifiedObjectUUID = busbarSectionTerminal.getUUID();
219
+ const doBusbarSectionTerminal = this.createTerminalDiagramObjectFromPoints({
220
+ cePoints: [topLeft.xPosition, topLeft.yPosition], cnPoints: [...centerPosition],
221
+ terminalUuid: busbarSectionTerminal.getUUID()
222
+ });
170
223
  return [doBusbarSection, doBusbarSectionTerminal, doConnectivityNode];
171
224
  }
172
225
  else {
173
- return [doConnectivityNode];
226
+ const doBusbarSectionAsConnectivityNode = new DiagramObject_1.DiagramObject(common_utils_1.CommonUtils.generateUUID(), `NetzSsab CN ${netzSsab.id}`);
227
+ doBusbarSectionAsConnectivityNode.identifiedObjectUUID = cimObjectUUID;
228
+ doBusbarSectionAsConnectivityNode.rotation = util_functions_1.DLUtilFunctions.getRotationBasedOnNsgSa(nsgSchaltanlage.ausrichtung);
229
+ (0, utils_schema_1.copyDiagramObjectPoints)(doBusbarSectionAsConnectivityNode, points);
230
+ this.addExportedDiagramObjectToGraph(nsgSaabschnitt.variantennr, netzSsab.id, doBusbarSectionAsConnectivityNode);
231
+ return [doBusbarSectionAsConnectivityNode];
174
232
  }
175
233
  });
176
234
  }
235
+ /**
236
+ * convertSchemaSchaltfeldElemente
237
+ */
177
238
  convertSchemaSchaltfeldElemente(nsgSchaltfeld) {
178
239
  var _a, _b;
179
240
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
@@ -256,10 +317,6 @@ class DLConverterI7 {
256
317
  }
257
318
  // ConductingEquipment
258
319
  nodePointMap.set(onSsabNode.id, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(position[0], position[1], rotationValue));
259
- // nodePointMap.set(
260
- // onSsabNode.aknoten,
261
- // DLUtilFunctions.createDiagramObjectWithPoint(position[0], position[1], null)
262
- // );
263
320
  }
264
321
  const leftUpperCornerOfBay = yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgschaltfeld, nsgSchaltfeld);
265
322
  const maxSsabPos = yield this.getMaxPosOfSaabschnitt(nsgSaabschnitt);
@@ -366,28 +423,23 @@ class DLConverterI7 {
366
423
  dopBackwardConnectivityNode[1] = dopConductingEquipment[1];
367
424
  break;
368
425
  }
369
- const backwardTerminalUUID = this.lookupTerminalUUID(schaltfeldNode.aknoten, schaltfeldNode.id);
370
- if (!this.exportedTerminalUUIDs.has(backwardTerminalUUID)) {
371
- this.exportedTerminalUUIDs.add(backwardTerminalUUID);
372
- const terminalDiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoints([[...dopBackwardConnectivityNode], [...dopConductingEquipment]], null);
373
- terminalDiagramObject.identifiedObjectUUID = backwardTerminalUUID;
374
- resultingDiagramObjects.push(terminalDiagramObject);
375
- }
376
426
  }
377
- else {
378
- const backwardTerminalUUID = this.lookupTerminalUUID(schaltfeldNode.aknoten, schaltfeldNode.id);
379
- if (!this.exportedTerminalUUIDs.has(backwardTerminalUUID)) {
380
- this.exportedTerminalUUIDs.add(backwardTerminalUUID);
381
- const terminalDiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoints([[...dopBackwardConnectivityNode], [...dopConductingEquipment]], null);
382
- terminalDiagramObject.identifiedObjectUUID = backwardTerminalUUID;
383
- resultingDiagramObjects.push(terminalDiagramObject);
384
- }
427
+ const backwardTerminalUUID = this.lookupTerminalUUID(schaltfeldNode.aknoten, schaltfeldNode.id);
428
+ if (!this.exportedTerminalUUIDs.has(backwardTerminalUUID)) {
429
+ this.exportedTerminalUUIDs.add(backwardTerminalUUID);
430
+ const terminalDiagramObject = this.createTerminalDiagramObjectFromPoints({
431
+ cePoints: [...dopConductingEquipment], cnPoints: [...dopBackwardConnectivityNode],
432
+ terminalUuid: backwardTerminalUUID
433
+ });
434
+ resultingDiagramObjects.push(terminalDiagramObject);
385
435
  }
386
436
  const forwardTerminalUUID = this.lookupTerminalUUID(schaltfeldNode.eknoten, schaltfeldNode.id);
387
437
  if (!this.exportedTerminalUUIDs.has(forwardTerminalUUID)) {
388
438
  this.exportedTerminalUUIDs.add(forwardTerminalUUID);
389
- const terminalDiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoints([[...dopForwardConnectivityNode], [...dopConductingEquipment]], null);
390
- terminalDiagramObject.identifiedObjectUUID = forwardTerminalUUID;
439
+ const terminalDiagramObject = this.createTerminalDiagramObjectFromPoints({
440
+ cePoints: [...dopConductingEquipment], cnPoints: [...dopForwardConnectivityNode],
441
+ terminalUuid: forwardTerminalUUID
442
+ });
391
443
  resultingDiagramObjects.push(terminalDiagramObject);
392
444
  }
393
445
  }
@@ -396,6 +448,9 @@ class DLConverterI7 {
396
448
  return resultingDiagramObjects;
397
449
  });
398
450
  }
451
+ /**
452
+ * convertSchemaTransformer2W
453
+ */
399
454
  convertSchemaTransformer2W(nsgTrafo2w) {
400
455
  var _a, _b;
401
456
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
@@ -480,16 +535,19 @@ class DLConverterI7 {
480
535
  const doAKnotenConnectivityNode = this.exportedDiagramObjectsGraph[nsgTrafo2w.variantennr][netzTrafo2W.aknoten];
481
536
  if (doAKnotenConnectivityNode) {
482
537
  const dopAKnotenConnectivityNode = doAKnotenConnectivityNode.diagramObjectPoints[0];
483
- util_functions_1.DLUtilFunctions.copyAndPushDiagramObjectPoint(terminal1DiagramObject, dopAKnotenConnectivityNode, true);
538
+ util_functions_1.DLUtilFunctions.copyAndPushDiagramObjectPoint(terminal1DiagramObject, dopAKnotenConnectivityNode, false);
484
539
  }
485
540
  const doEKnotenConnectivityNode = this.exportedDiagramObjectsGraph[nsgTrafo2w.variantennr][netzTrafo2W.eknoten];
486
541
  if (doEKnotenConnectivityNode) {
487
542
  const dopEKnotenConnectivityNode = doEKnotenConnectivityNode.diagramObjectPoints[0];
488
- util_functions_1.DLUtilFunctions.copyAndPushDiagramObjectPoint(terminal2DiagramObject, dopEKnotenConnectivityNode, true);
543
+ util_functions_1.DLUtilFunctions.copyAndPushDiagramObjectPoint(terminal2DiagramObject, dopEKnotenConnectivityNode, false);
489
544
  }
490
545
  return createdDiagramObjects;
491
546
  });
492
547
  }
548
+ /**
549
+ * convertSchemaTransformer3W
550
+ */
493
551
  convertSchemaTransformer3W(nsgTrafo3w) {
494
552
  var _a, _b;
495
553
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
@@ -569,25 +627,28 @@ class DLConverterI7 {
569
627
  });
570
628
  if (w1TypedResult) {
571
629
  const w1ConnectivityNodePosition = yield this.getConnectivityNodePositionFor(w1TypedResult.type, w1TypedResult.object);
572
- util_functions_1.DLUtilFunctions.copyAndPushXYCoordinates(terminal1DiagramObject, w1ConnectivityNodePosition, true);
630
+ util_functions_1.DLUtilFunctions.copyAndPushXYCoordinates(terminal1DiagramObject, w1ConnectivityNodePosition, false);
573
631
  }
574
632
  const w2TypedResult = this.dbObjectGraph.findTypedFirstByKey(convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, {
575
633
  variantennr: nsgTrafo3w.variantennr, id: nsgTrafo3w.anschluss_w2
576
634
  });
577
635
  if (w2TypedResult) {
578
636
  const w2ConnectivityNodePosition = yield this.getConnectivityNodePositionFor(w2TypedResult.type, w2TypedResult.object);
579
- util_functions_1.DLUtilFunctions.copyAndPushXYCoordinates(terminal2DiagramObject, w2ConnectivityNodePosition, true);
637
+ util_functions_1.DLUtilFunctions.copyAndPushXYCoordinates(terminal2DiagramObject, w2ConnectivityNodePosition, false);
580
638
  }
581
639
  const w3TypedResult = this.dbObjectGraph.findTypedFirstByKey(convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, {
582
640
  variantennr: nsgTrafo3w.variantennr, id: nsgTrafo3w.anschluss_w3
583
641
  });
584
642
  if (w3TypedResult) {
585
643
  const w3ConnectivityNodePosition = yield this.getConnectivityNodePositionFor(w3TypedResult.type, w3TypedResult.object);
586
- util_functions_1.DLUtilFunctions.copyAndPushXYCoordinates(terminal3DiagramObject, w3ConnectivityNodePosition, true);
644
+ util_functions_1.DLUtilFunctions.copyAndPushXYCoordinates(terminal3DiagramObject, w3ConnectivityNodePosition, false);
587
645
  }
588
646
  return createdDiagramObjects;
589
647
  });
590
648
  }
649
+ /**
650
+ * getConnectivityNodePositionFor
651
+ */
591
652
  getConnectivityNodePositionFor(i7ObjectType, object) {
592
653
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
593
654
  const leftUpperCorner = yield this.getLeftUpperCornerOf(i7ObjectType, object);
@@ -620,19 +681,44 @@ class DLConverterI7 {
620
681
  return [null, null];
621
682
  });
622
683
  }
684
+ /**
685
+ * convertSchemaLeitung
686
+ */
623
687
  convertSchemaLeitung(nsgLeitung, splitLine = true) {
624
688
  var _a, _b, _c, _d;
625
689
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
626
- const netzLeitung = yield this.dbObjectGraph.findObjectByKey(convert_graph_keys_1.i7TableNames.netz_leitung, convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: nsgLeitung.leitung });
690
+ let netzLeitung;
691
+ netzLeitung = yield this.dbObjectGraph.findObjectByKey([
692
+ convert_graph_keys_1.i7TableNames.netz_leitung, convert_graph_keys_1.i7TableNames.netz_hgueleitung, convert_graph_keys_1.i7TableNames.netz_ersatzlaengszweig,
693
+ convert_graph_keys_1.i7TableNames.netz_streckenlast
694
+ ], convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: nsgLeitung.leitung });
627
695
  if (!netzLeitung)
628
696
  return;
697
+ if ('teilung' in netzLeitung) {
698
+ return this.convertNsgLeitungStreckenlast(nsgLeitung, netzLeitung, splitLine);
699
+ }
700
+ let generalNetzLeitung;
701
+ if ('anetzobjekt' in netzLeitung) {
702
+ generalNetzLeitung = {
703
+ id: netzLeitung.id,
704
+ bezeichner: netzLeitung.bezeichner,
705
+ kurzname: netzLeitung.kurzname,
706
+ aknoten: netzLeitung.anetzobjekt,
707
+ eknoten: netzLeitung.enetzobjekt,
708
+ aknotenzw: undefined, eknotenzw: undefined,
709
+ flakn3p: undefined, flekn3p: undefined
710
+ };
711
+ }
712
+ else {
713
+ generalNetzLeitung = netzLeitung;
714
+ }
629
715
  const nsgLtgpunkte = yield this.dbObjectGraph.findAllByAttributes(convert_graph_keys_1.i7TableNames.nsg_nsgltgpunkt, { nsgleitung: nsgLeitung.id });
630
716
  // Manche Leitung beinhalten keine Zwischenpunkte, sondern verlaufen lediglich zwischen dem Start- und Endpunkt
631
717
  // if (nsgLtgpunkte.length === 0) return;
632
718
  const cimObjectUUID = (_b = (_a = this.dbObjectKeyCimModelUuidGraph) === null || _a === void 0 ? void 0 : _a.getCimObjectIdFromDbKey(convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: nsgLeitung.leitung })) !== null && _b !== void 0 ? _b : undefined;
633
719
  nsgLtgpunkte.sort((a, b) => a.pos - b.pos);
634
720
  const diagramObject = new DiagramObject_1.DiagramObject();
635
- diagramObject.name = `Leitung ${netzLeitung.id}`;
721
+ diagramObject.name = `Leitung ${generalNetzLeitung.id}`;
636
722
  diagramObject.identifiedObjectUUID = cimObjectUUID;
637
723
  diagramObject.mrid = common_utils_1.CommonUtils.generateUUID();
638
724
  diagramObject.rotation = null;
@@ -698,11 +784,19 @@ class DLConverterI7 {
698
784
  }
699
785
  const resultingDiagramObjects = [];
700
786
  const uuidsOfPlacedCimObject = new Set();
787
+ const netzLeitungsabschnitte = yield this.dbObjectGraph.findAllByAttributes([convert_graph_keys_1.i7TableNames.netz_freileitungabschnitt, convert_graph_keys_1.i7TableNames.netz_kabelabschnitt], { leitung: nsgLeitung.leitung });
788
+ netzLeitungsabschnitte.sort((a, b) => a.pos - b.pos);
789
+ if (netzLeitungsabschnitte.length === 0) {
790
+ splitLine = false;
791
+ }
701
792
  if (splitLine) {
702
793
  /* ---------- ---------- ---------- */
703
794
  // BEGIN: split the line into line segments
704
- const netzLeitungsabschnitte = yield this.dbObjectGraph.findAllByAttributes([convert_graph_keys_1.i7TableNames.netz_freileitungabschnitt, convert_graph_keys_1.i7TableNames.netz_kabelabschnitt], { leitung: nsgLeitung.leitung });
705
- netzLeitungsabschnitte.sort((a, b) => a.pos - b.pos);
795
+ // const netzLeitungsabschnitte = await this.dbObjectGraph.findAllByAttributes(
796
+ // [i7TableNames.netz_freileitungabschnitt, i7TableNames.netz_kabelabschnitt],
797
+ // { leitung: nsgLeitung.leitung }
798
+ // );
799
+ // netzLeitungsabschnitte.sort((a, b) => a.pos - b.pos);
706
800
  const segmentPercentages = [];
707
801
  let completeLength = 0;
708
802
  for (let a = 0; a < netzLeitungsabschnitte.length; ++a) {
@@ -720,7 +814,7 @@ class DLConverterI7 {
720
814
  const thisSegmentUUID = (_d = (_c = this.dbObjectKeyCimModelUuidGraph) === null || _c === void 0 ? void 0 : _c.getCimObjectIdFromDbKey(convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: netzLeitungsabschnitte[a].id })) !== null && _d !== void 0 ? _d : undefined;
721
815
  const thisSegmentCimObject = this.cimModelGraph.findObjectByUUID(thisSegmentUUID);
722
816
  const diagramObject = new DiagramObject_1.DiagramObject();
723
- diagramObject.name = `Leitung ${netzLeitung.id}`;
817
+ diagramObject.name = `Leitung ${generalNetzLeitung.id}`;
724
818
  diagramObject.identifiedObjectUUID = thisSegmentUUID;
725
819
  diagramObject.mrid = common_utils_1.CommonUtils.generateUUID();
726
820
  diagramObject.rotation = null;
@@ -764,7 +858,7 @@ class DLConverterI7 {
764
858
  const doConnectivityNode = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint2({
765
859
  xPosition: segments[a][0][0],
766
860
  yPosition: segments[a][0][1],
767
- diagramObjectName: `CN ${a} - Netz-Leitung ${netzLeitung.id}`,
861
+ diagramObjectName: `CN ${a} - Netz-Leitung ${generalNetzLeitung.id}`,
768
862
  identifiedObjectUUID: connectivityNodeUUIDThisToPrev
769
863
  });
770
864
  resultingDiagramObjects.push(doConnectivityNode);
@@ -773,7 +867,7 @@ class DLConverterI7 {
773
867
  const doTerminal = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint2({
774
868
  xPosition: segments[a][0][0],
775
869
  yPosition: segments[a][0][1],
776
- diagramObjectName: `T (Anf) ${a} - Netz-Leitung ${netzLeitung.id}`,
870
+ diagramObjectName: `T (Anf) ${a} - Netz-Leitung ${generalNetzLeitung.id}`,
777
871
  identifiedObjectUUID: terminalUUIDThisToPrevConnectivityNode
778
872
  });
779
873
  resultingDiagramObjects.push(doTerminal);
@@ -808,7 +902,7 @@ class DLConverterI7 {
808
902
  const doConnectivityNode = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint2({
809
903
  xPosition: segments[a][segments[a].length - 1][0],
810
904
  yPosition: segments[a][segments[a].length - 1][1],
811
- diagramObjectName: `CN ${a} - Netz-Leitung ${netzLeitung.id}`,
905
+ diagramObjectName: `CN ${a} - Netz-Leitung ${generalNetzLeitung.id}`,
812
906
  identifiedObjectUUID: connectivityNodeUUIDThisToNext
813
907
  });
814
908
  resultingDiagramObjects.push(doConnectivityNode);
@@ -817,7 +911,7 @@ class DLConverterI7 {
817
911
  const doTerminal = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint2({
818
912
  xPosition: segments[a][segments[a].length - 1][0],
819
913
  yPosition: segments[a][segments[a].length - 1][1],
820
- diagramObjectName: `T (End) ${a} - Netz-Leitung ${netzLeitung.id}`,
914
+ diagramObjectName: `T (End) ${a} - Netz-Leitung ${generalNetzLeitung.id}`,
821
915
  identifiedObjectUUID: terminalUUIDThisToNextConnectivityNode
822
916
  });
823
917
  resultingDiagramObjects.push(doTerminal);
@@ -833,46 +927,44 @@ class DLConverterI7 {
833
927
  }
834
928
  /* ---------- ---------- ---------- */
835
929
  // BEGIN: export the first terminal
836
- try {
837
- const anschlussanfTypedResult = this.dbObjectGraph.findTypedFirstByKey(convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, {
838
- variantennr: nsgLeitung.variantennr, id: nsgLeitung.anschlussanf
839
- });
840
- const aknotenTerminalUUID = this.lookupTerminalUUID(netzLeitung.aknoten, netzLeitung.id);
841
- if (anschlussanfTypedResult && aknotenTerminalUUID) {
842
- const connectivityNodePosition = yield this.getConnectivityNodePositionFor(anschlussanfTypedResult.type, anschlussanfTypedResult.object);
843
- const anfTerminalDiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint2({
844
- xPosition: connectivityNodePosition[0],
845
- yPosition: connectivityNodePosition[1],
846
- diagramObjectName: 'Terminal Leitung-Anf',
847
- identifiedObjectUUID: aknotenTerminalUUID
848
- });
849
- resultingDiagramObjects.push(anfTerminalDiagramObject);
850
- util_functions_1.DLUtilFunctions.copyAndPushXYCoordinates(anfTerminalDiagramObject, connectivityNodePosition, true);
851
- }
852
- const anschlussendTypedResult = this.dbObjectGraph.findTypedFirstByKey(convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, {
853
- variantennr: nsgLeitung.variantennr, id: nsgLeitung.anschlussend
930
+ // try {
931
+ const anschlussanfTypedResult = this.dbObjectGraph.findTypedFirstByKey(convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, {
932
+ variantennr: nsgLeitung.variantennr, id: nsgLeitung.anschlussanf
933
+ });
934
+ const aknotenTerminalUUID = this.lookupTerminalUUID(generalNetzLeitung.aknoten, generalNetzLeitung.id);
935
+ if (anschlussanfTypedResult && aknotenTerminalUUID) {
936
+ const connectivityNodePosition = yield this.getConnectivityNodePositionFor(anschlussanfTypedResult.type, anschlussanfTypedResult.object);
937
+ const anfTerminalDiagramObject = this.createTerminalDiagramObjectFromPoints({
938
+ cePoints: [...connectivityNodePosition], cnPoints: [...connectivityNodePosition],
939
+ terminalUuid: aknotenTerminalUUID,
940
+ name: 'Terminal Leitung-Anf'
854
941
  });
855
- const eknotenTerminalUUID = this.lookupTerminalUUID(netzLeitung.eknoten, netzLeitung.id);
856
- if (anschlussendTypedResult && eknotenTerminalUUID) {
857
- const connectivityNodePosition = yield this.getConnectivityNodePositionFor(anschlussendTypedResult.type, anschlussendTypedResult.object);
858
- const endTerminalDiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint2({
859
- xPosition: connectivityNodePosition[0],
860
- yPosition: connectivityNodePosition[1],
861
- diagramObjectName: 'Terminal Leitung-End',
862
- identifiedObjectUUID: eknotenTerminalUUID
863
- });
864
- resultingDiagramObjects.push(endTerminalDiagramObject);
865
- util_functions_1.DLUtilFunctions.copyAndPushXYCoordinates(endTerminalDiagramObject, connectivityNodePosition, true);
866
- }
942
+ resultingDiagramObjects.push(anfTerminalDiagramObject);
867
943
  }
868
- catch (e) {
869
- console.log(e);
944
+ const anschlussendTypedResult = this.dbObjectGraph.findTypedFirstByKey(convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, {
945
+ variantennr: nsgLeitung.variantennr, id: nsgLeitung.anschlussend
946
+ });
947
+ const eknotenTerminalUUID = this.lookupTerminalUUID(generalNetzLeitung.eknoten, generalNetzLeitung.id);
948
+ if (anschlussendTypedResult && eknotenTerminalUUID) {
949
+ const connectivityNodePosition = yield this.getConnectivityNodePositionFor(anschlussendTypedResult.type, anschlussendTypedResult.object);
950
+ const endTerminalDiagramObject = this.createTerminalDiagramObjectFromPoints({
951
+ cePoints: [...connectivityNodePosition], cnPoints: [...connectivityNodePosition],
952
+ terminalUuid: eknotenTerminalUUID,
953
+ name: 'Terminal Leitung-End'
954
+ });
955
+ resultingDiagramObjects.push(endTerminalDiagramObject);
870
956
  }
957
+ // } catch (e) {
958
+ // console.log(e)
959
+ // }
871
960
  // END: export the last terminal
872
961
  /* ---------- ---------- ---------- */
873
962
  return resultingDiagramObjects;
874
963
  });
875
964
  }
965
+ /**
966
+ * convertSchemaQuerzweig
967
+ */
876
968
  convertSchemaQuerzweig(nsgQuerzweig) {
877
969
  var _a, _b;
878
970
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
@@ -888,8 +980,17 @@ class DLConverterI7 {
888
980
  const querzweigWrapperObject = this.dbObjectGraph.findTypedFirstByKey(convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, {
889
981
  id: nsgQuerzweig.querzweig
890
982
  });
891
- if (!querzweigWrapperObject)
983
+ if (!querzweigWrapperObject) {
892
984
  return null;
985
+ }
986
+ if (querzweigWrapperObject.type === convert_graph_keys_1.i7TableNames.netz_hguekopfklassisch) {
987
+ xPosition += 8;
988
+ yPosition += 8;
989
+ }
990
+ else if (querzweigWrapperObject.type === convert_graph_keys_1.i7TableNames.netz_hguekopfvsc) {
991
+ xPosition += 8;
992
+ yPosition += 8;
993
+ }
893
994
  const netzQuerzweig = querzweigWrapperObject.object;
894
995
  if (type === convert_graph_keys_1.i7TableNames.nsg_nsgschaltfeld) {
895
996
  const nsgSchaltfeld = object;
@@ -918,20 +1019,737 @@ class DLConverterI7 {
918
1019
  const backwardTerminalUUID = this.lookupTerminalUUID(netzQuerzweig.anschluss, nsgQuerzweig.querzweig);
919
1020
  if (!this.exportedTerminalUUIDs.has(backwardTerminalUUID)) {
920
1021
  this.exportedTerminalUUIDs.add(backwardTerminalUUID);
921
- const terminalDiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoints([[...dopBackwardConnectivityNode], [...dopConductingEquipment]], null);
922
- terminalDiagramObject.identifiedObjectUUID = backwardTerminalUUID;
1022
+ const terminalDiagramObject = this.createTerminalDiagramObjectFromPoints({
1023
+ cePoints: [...dopConductingEquipment], cnPoints: [...dopBackwardConnectivityNode],
1024
+ terminalUuid: backwardTerminalUUID
1025
+ });
923
1026
  resultingDiagramObjects.push(terminalDiagramObject);
924
1027
  }
925
- // END: Terminal-Export
926
- /* ---------- ---------- ---------- */
1028
+ // END: Terminal-Export
1029
+ /* ---------- ---------- ---------- */
1030
+ return resultingDiagramObjects;
1031
+ });
1032
+ }
1033
+ /**
1034
+ * convertNsgLeitungStreckenlast
1035
+ */
1036
+ convertNsgLeitungStreckenlast(nsgLeitung, netzStreckenlast, splitLine = true) {
1037
+ var _a, _b, _c, _d;
1038
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1039
+ const nsgLtgpunkte = yield this.dbObjectGraph.findAllByAttributes(convert_graph_keys_1.i7TableNames.nsg_nsgltgpunkt, { nsgleitung: nsgLeitung.id });
1040
+ // Manche Leitung beinhalten keine Zwischenpunkte, sondern verlaufen lediglich zwischen dem Start- und Endpunkt
1041
+ // if (nsgLtgpunkte.length === 0) return;
1042
+ const cimObjectUUID = (_b = (_a = this.dbObjectKeyCimModelUuidGraph) === null || _a === void 0 ? void 0 : _a.getCimObjectIdFromDbKey(convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: nsgLeitung.leitung })) !== null && _b !== void 0 ? _b : undefined;
1043
+ nsgLtgpunkte.sort((a, b) => a.pos - b.pos);
1044
+ const diagramObject = new DiagramObject_1.DiagramObject();
1045
+ diagramObject.name = `Streckenlast ${netzStreckenlast.id}`;
1046
+ diagramObject.identifiedObjectUUID = cimObjectUUID;
1047
+ diagramObject.mrid = common_utils_1.CommonUtils.generateUUID();
1048
+ diagramObject.rotation = null;
1049
+ const relStartPos = yield this.getRelPos(nsgLeitung, true);
1050
+ if (relStartPos === null)
1051
+ return null;
1052
+ const relEndPos = yield this.getRelPos(nsgLeitung, false);
1053
+ if (relEndPos === null)
1054
+ return null;
1055
+ const leftUpperCornerStartPos = yield this.getLeftUpperCornerOfUnspecified(nsgLeitung.variantennr, nsgLeitung.anschlussanf);
1056
+ const leftUpperCornerEndPos = yield this.getLeftUpperCornerOfUnspecified(nsgLeitung.variantennr, nsgLeitung.anschlussend);
1057
+ for (let a = 0; a < nsgLtgpunkte.length; ++a) {
1058
+ const nsgLtgpunkt = nsgLtgpunkte[a];
1059
+ const diagramObjectPoint = new DiagramObjectPoint_1.DiagramObjectPoint();
1060
+ diagramObjectPoint.mrid = common_utils_1.CommonUtils.generateUUID();
1061
+ diagramObject.diagramObjectPoints.push(diagramObjectPoint);
1062
+ diagramObjectPoint.diagramObject = diagramObject;
1063
+ if (nsgLtgpunkt.userelpos === 1) {
1064
+ if (nsgLtgpunkt.reltoanf === 1) {
1065
+ diagramObjectPoint.xPosition = leftUpperCornerStartPos[0] + nsgLtgpunkt.xrel;
1066
+ diagramObjectPoint.yPosition = leftUpperCornerStartPos[1] + nsgLtgpunkt.yrel;
1067
+ }
1068
+ else if (nsgLtgpunkt.reltoanf === 0) {
1069
+ diagramObjectPoint.xPosition = leftUpperCornerEndPos[0] + nsgLtgpunkt.xrel;
1070
+ diagramObjectPoint.yPosition = leftUpperCornerEndPos[1] + nsgLtgpunkt.yrel;
1071
+ }
1072
+ }
1073
+ else {
1074
+ diagramObjectPoint.xPosition = nsgLtgpunkt.xrel;
1075
+ diagramObjectPoint.yPosition = nsgLtgpunkt.yrel;
1076
+ }
1077
+ }
1078
+ /*
1079
+ left:
1080
+ m: => x
1081
+ c: => y
1082
+ right:
1083
+ m: => x * (-1)
1084
+ c: => y * (-1)
1085
+ top:
1086
+ m: => y
1087
+ c: => x * (-1)
1088
+ bottom:
1089
+ m: => y * (-1)
1090
+ c: => x
1091
+ */
1092
+ const firstDiagramObjectPoint = new DiagramObjectPoint_1.DiagramObjectPoint();
1093
+ firstDiagramObjectPoint.mrid = common_utils_1.CommonUtils.generateUUID();
1094
+ firstDiagramObjectPoint.xPosition = relStartPos[0]; // + xyOffsetFirstPoint[0];
1095
+ firstDiagramObjectPoint.yPosition = relStartPos[1]; // + xyOffsetFirstPoint[1];
1096
+ firstDiagramObjectPoint.diagramObject = diagramObject;
1097
+ diagramObject.diagramObjectPoints.unshift(firstDiagramObjectPoint);
1098
+ const lastDiagramObjectPoint = new DiagramObjectPoint_1.DiagramObjectPoint();
1099
+ lastDiagramObjectPoint.mrid = common_utils_1.CommonUtils.generateUUID();
1100
+ lastDiagramObjectPoint.xPosition = relEndPos[0]; // + xyOffsetLastPoint[0];
1101
+ lastDiagramObjectPoint.yPosition = relEndPos[1]; // + xyOffsetLastPoint[1];
1102
+ lastDiagramObjectPoint.diagramObject = diagramObject;
1103
+ diagramObject.diagramObjectPoints.push(lastDiagramObjectPoint);
1104
+ for (let a = 0; a < diagramObject.diagramObjectPoints.length; ++a) {
1105
+ diagramObject.diagramObjectPoints[a].xPosition += 2;
1106
+ diagramObject.diagramObjectPoints[a].yPosition += 2;
1107
+ diagramObject.diagramObjectPoints[a].sequenceNumber = a + 1;
1108
+ }
1109
+ const resultingDiagramObjects = [];
1110
+ const uuidsOfPlacedCimObject = new Set();
1111
+ const netzLeitungsabschnitte = yield this.dbObjectGraph.findAllByAttributes([convert_graph_keys_1.i7TableNames.netz_freileitungabschnitt, convert_graph_keys_1.i7TableNames.netz_kabelabschnitt], { leitung: nsgLeitung.leitung });
1112
+ netzLeitungsabschnitte.sort((a, b) => a.pos - b.pos);
1113
+ if (netzLeitungsabschnitte.length === 0) {
1114
+ splitLine = false;
1115
+ }
1116
+ if (splitLine) {
1117
+ /* ---------- ---------- ---------- */
1118
+ // BEGIN: split the line into line segments
1119
+ // const netzLeitungsabschnitte = await this.dbObjectGraph.findAllByAttributes(
1120
+ // [i7TableNames.netz_freileitungabschnitt, i7TableNames.netz_kabelabschnitt],
1121
+ // { leitung: nsgLeitung.leitung }
1122
+ // );
1123
+ // netzLeitungsabschnitte.sort((a, b) => a.pos - b.pos);
1124
+ const segmentPercentages = [];
1125
+ let completeLength = 0;
1126
+ for (let a = 0; a < netzLeitungsabschnitte.length; ++a) {
1127
+ completeLength += netzLeitungsabschnitte[a].laenge;
1128
+ }
1129
+ // Berechne die Prozent-Anteile eines Leitungsabschnittes bezogen auf die Gesamtlänge
1130
+ let crtLength = 0;
1131
+ for (let a = 0; a < netzLeitungsabschnitte.length; ++a) {
1132
+ // todo fix if 'laenge' is null (equals to a not-set length)
1133
+ crtLength += netzLeitungsabschnitte[a].laenge;
1134
+ segmentPercentages.push(crtLength / completeLength);
1135
+ }
1136
+ const segments = util_functions_1.DLUtilFunctions.splitLineIntoLineSegments(segmentPercentages, diagramObject.diagramObjectPoints.map(arg => [arg.xPosition, arg.yPosition]));
1137
+ for (let a = 0; a < segments.length; ++a) {
1138
+ const thisSegmentUUID = (_d = (_c = this.dbObjectKeyCimModelUuidGraph) === null || _c === void 0 ? void 0 : _c.getCimObjectIdFromDbKey(convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: netzLeitungsabschnitte[a].id })) !== null && _d !== void 0 ? _d : undefined;
1139
+ const thisSegmentCimObject = this.cimModelGraph.findObjectByUUID(thisSegmentUUID);
1140
+ const diagramObject = new DiagramObject_1.DiagramObject();
1141
+ diagramObject.name = `Leitung ${netzStreckenlast.id}`;
1142
+ diagramObject.identifiedObjectUUID = thisSegmentUUID;
1143
+ diagramObject.mrid = common_utils_1.CommonUtils.generateUUID();
1144
+ diagramObject.rotation = null;
1145
+ // for (const segment of segments[a]) {
1146
+ for (const segmentPoint of segments[a]) {
1147
+ const diagramObjectPoint = new DiagramObjectPoint_1.DiagramObjectPoint();
1148
+ diagramObjectPoint.mrid = common_utils_1.CommonUtils.generateUUID();
1149
+ diagramObjectPoint.xPosition = segmentPoint[0];
1150
+ diagramObjectPoint.yPosition = segmentPoint[1];
1151
+ diagramObjectPoint.sequenceNumber = diagramObject.diagramObjectPoints.length + 1;
1152
+ diagramObjectPoint.diagramObject = diagramObject;
1153
+ diagramObject.diagramObjectPoints.push(diagramObjectPoint);
1154
+ }
1155
+ // }
1156
+ resultingDiagramObjects.push(diagramObject);
1157
+ if (a === 0) {
1158
+ // continue (will be added at the end)
1159
+ }
1160
+ else {
1161
+ if (thisSegmentCimObject) {
1162
+ // need to get the ConnectivityNode and the Terminal, which connects the current (this) with the prev segment
1163
+ const prevSegment = netzLeitungsabschnitte[a - 1];
1164
+ const prevSegmentUUID = this.dbObjectKeyCimModelUuidGraph.getCimObjectIdFromDbKey(convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: prevSegment.id });
1165
+ const prevSegmentCimObject = this.cimModelGraph.findObjectByUUID(prevSegmentUUID);
1166
+ let connectivityNodeUUIDThisToPrev;
1167
+ let terminalUUIDThisToPrevConnectivityNode;
1168
+ for (const thisTerminal of thisSegmentCimObject.terminals.values()) {
1169
+ for (const prevTerminal of prevSegmentCimObject.terminals.values()) {
1170
+ if (prevTerminal.getConnectivityNodeUUID() === thisTerminal.getConnectivityNodeUUID()) {
1171
+ connectivityNodeUUIDThisToPrev = prevTerminal.getConnectivityNodeUUID();
1172
+ terminalUUIDThisToPrevConnectivityNode = thisTerminal.getUUID();
1173
+ break;
1174
+ }
1175
+ }
1176
+ if (terminalUUIDThisToPrevConnectivityNode) {
1177
+ break;
1178
+ }
1179
+ }
1180
+ // place the ConnectivityNode (if not being placed cause => maybe a previous iteration has placed it)
1181
+ if (!uuidsOfPlacedCimObject.has(connectivityNodeUUIDThisToPrev)) {
1182
+ const doConnectivityNode = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint2({
1183
+ xPosition: segments[a][0][0],
1184
+ yPosition: segments[a][0][1],
1185
+ diagramObjectName: `CN ${a} - Netz-Leitung ${netzStreckenlast.id}`,
1186
+ identifiedObjectUUID: connectivityNodeUUIDThisToPrev
1187
+ });
1188
+ resultingDiagramObjects.push(doConnectivityNode);
1189
+ }
1190
+ // place the terminal
1191
+ const doTerminal = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint2({
1192
+ xPosition: segments[a][0][0],
1193
+ yPosition: segments[a][0][1],
1194
+ diagramObjectName: `T (Anf) ${a} - Netz-Leitung ${netzStreckenlast.id}`,
1195
+ identifiedObjectUUID: terminalUUIDThisToPrevConnectivityNode
1196
+ });
1197
+ resultingDiagramObjects.push(doTerminal);
1198
+ util_functions_1.DLUtilFunctions.copyAndPushXYCoordinates(doTerminal, segments[a][0], true);
1199
+ }
1200
+ }
1201
+ if (a === segments.length - 1) {
1202
+ // continue (will be added at the end)
1203
+ }
1204
+ else {
1205
+ if (thisSegmentCimObject) {
1206
+ // need to get the ConnectivityNode and the Terminal, which connects the current (this) with the next segment
1207
+ const nextSegment = netzLeitungsabschnitte[a + 1];
1208
+ const nextSegmentUUID = this.dbObjectKeyCimModelUuidGraph.getCimObjectIdFromDbKey(convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: nextSegment.id });
1209
+ const nextSegmentCimObject = this.cimModelGraph.findObjectByUUID(nextSegmentUUID);
1210
+ let connectivityNodeUUIDThisToNext;
1211
+ let terminalUUIDThisToNextConnectivityNode;
1212
+ for (const thisTerminal of thisSegmentCimObject.terminals.values()) {
1213
+ for (const nextTerminal of nextSegmentCimObject.terminals.values()) {
1214
+ if (nextTerminal.getConnectivityNodeUUID() === thisTerminal.getConnectivityNodeUUID()) {
1215
+ connectivityNodeUUIDThisToNext = nextTerminal.getConnectivityNodeUUID();
1216
+ terminalUUIDThisToNextConnectivityNode = thisTerminal.getUUID();
1217
+ break;
1218
+ }
1219
+ }
1220
+ if (terminalUUIDThisToNextConnectivityNode) {
1221
+ break;
1222
+ }
1223
+ }
1224
+ // place the ConnectivityNode (if not being placed cause => maybe a previous iteration has placed it)
1225
+ if (!uuidsOfPlacedCimObject.has(connectivityNodeUUIDThisToNext)) {
1226
+ const doConnectivityNode = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint2({
1227
+ xPosition: segments[a][segments[a].length - 1][0],
1228
+ yPosition: segments[a][segments[a].length - 1][1],
1229
+ diagramObjectName: `CN ${a} - Netz-Leitung ${netzStreckenlast.id}`,
1230
+ identifiedObjectUUID: connectivityNodeUUIDThisToNext
1231
+ });
1232
+ resultingDiagramObjects.push(doConnectivityNode);
1233
+ }
1234
+ // place the terminal
1235
+ const doTerminal = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint2({
1236
+ xPosition: segments[a][segments[a].length - 1][0],
1237
+ yPosition: segments[a][segments[a].length - 1][1],
1238
+ diagramObjectName: `T (End) ${a} - Netz-Leitung ${netzStreckenlast.id}`,
1239
+ identifiedObjectUUID: terminalUUIDThisToNextConnectivityNode
1240
+ });
1241
+ resultingDiagramObjects.push(doTerminal);
1242
+ util_functions_1.DLUtilFunctions.copyAndPushXYCoordinates(doTerminal, segments[a][segments[a].length - 1], true);
1243
+ }
1244
+ }
1245
+ }
1246
+ // END: split the line into line segments
1247
+ /* ---------- ---------- ---------- */
1248
+ }
1249
+ else {
1250
+ resultingDiagramObjects.push(diagramObject);
1251
+ }
1252
+ const netzLeitungen = yield this.dbObjectGraph.findAllByAttributes(convert_graph_keys_1.i7TableNames.netz_leitung, { streckenlast: netzStreckenlast.id });
1253
+ if (netzLeitungen.length === 2) {
1254
+ /* ---------- ---------- ---------- */
1255
+ // BEGIN: export the first and last terminal
1256
+ // try {
1257
+ const anfId = netzLeitungen[0].eknoten === netzLeitungen[1].aknoten ? netzLeitungen[0].aknoten : netzLeitungen[0].eknoten;
1258
+ const endId = netzLeitungen[0].aknoten === netzLeitungen[1].eknoten ? netzLeitungen[0].eknoten : netzLeitungen[0].aknoten;
1259
+ const doAnfConnectivityNode = this.exportedDiagramObjectsGraph[nsgLeitung.variantennr][anfId];
1260
+ const doEndConnectivityNode = this.exportedDiagramObjectsGraph[nsgLeitung.variantennr][endId];
1261
+ const anschlussanfTypedResult = this.dbObjectGraph.findTypedFirstByKey(convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, {
1262
+ variantennr: nsgLeitung.variantennr, id: nsgLeitung.anschlussend
1263
+ });
1264
+ const anschlussendTypedResult = this.dbObjectGraph.findTypedFirstByKey(convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, {
1265
+ variantennr: nsgLeitung.variantennr, id: nsgLeitung.anschlussend
1266
+ });
1267
+ const aknotenTerminalUUID = this.lookupTerminalUUID(anfId, netzStreckenlast.id);
1268
+ const eknotenTerminalUUID = this.lookupTerminalUUID(endId, netzStreckenlast.id);
1269
+ if (anschlussanfTypedResult && aknotenTerminalUUID && doAnfConnectivityNode) {
1270
+ const mappedPoint = [
1271
+ doAnfConnectivityNode.diagramObjectPoints[0].xPosition,
1272
+ doAnfConnectivityNode.diagramObjectPoints[0].yPosition
1273
+ ];
1274
+ const anfTerminalDiagramObject = this.createTerminalDiagramObjectFromPoints({
1275
+ cePoints: [...mappedPoint], cnPoints: [...mappedPoint],
1276
+ terminalUuid: aknotenTerminalUUID,
1277
+ name: 'Terminal Leitung-Anf'
1278
+ });
1279
+ resultingDiagramObjects.push(anfTerminalDiagramObject);
1280
+ }
1281
+ if (anschlussendTypedResult && eknotenTerminalUUID && doEndConnectivityNode) {
1282
+ const mappedPoint = [
1283
+ doEndConnectivityNode.diagramObjectPoints[0].xPosition,
1284
+ doEndConnectivityNode.diagramObjectPoints[0].yPosition
1285
+ ];
1286
+ const endTerminalDiagramObject = this.createTerminalDiagramObjectFromPoints({
1287
+ cePoints: [...mappedPoint], cnPoints: [...mappedPoint],
1288
+ terminalUuid: eknotenTerminalUUID,
1289
+ name: 'Terminal Leitung-End'
1290
+ });
1291
+ resultingDiagramObjects.push(endTerminalDiagramObject);
1292
+ }
1293
+ // END: export the first and last terminal
1294
+ /* ---------- ---------- ---------- */
1295
+ }
1296
+ else {
1297
+ console.error(`Streckenlast-Error: Expected exactly two lines for the Terminal-Export, but got ${netzLeitungen.length}!`);
1298
+ }
1299
+ return resultingDiagramObjects;
1300
+ });
1301
+ }
1302
+ /**
1303
+ * convertSchemaQuerzweigqcont
1304
+ */
1305
+ convertSchemaQuerzweigqzcont(nsgQuerzweigqzcont) {
1306
+ var _a, _b;
1307
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1308
+ const resultingDiagramObjects = [];
1309
+ const typedResult = this.dbObjectGraph.findTypedFirstByKey(convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, {
1310
+ variantennr: nsgQuerzweigqzcont.variantennr, id: nsgQuerzweigqzcont.bezugsobjekt
1311
+ });
1312
+ if (!typedResult)
1313
+ return null;
1314
+ const { type, object } = typedResult;
1315
+ let xPosition = nsgQuerzweigqzcont.xrel + 8;
1316
+ let yPosition = nsgQuerzweigqzcont.yrel + 8;
1317
+ const nsgQuerzweigqzContelems = yield this.dbObjectGraph.findAllByAttributes(convert_graph_keys_1.i7TableNames.nsg_nsgquerzweigqzcontelem, { constainer: nsgQuerzweigqzcont.id });
1318
+ // if (!querzweigWrapperObject) {
1319
+ // return null;
1320
+ // }
1321
+ //
1322
+ // if (querzweigWrapperObject.type === i7TableNames.netz_hguekopfklassisch) {
1323
+ // xPosition += 8;
1324
+ // yPosition += 8;
1325
+ // } else if (querzweigWrapperObject.type === i7TableNames.netz_hguekopfvsc) {
1326
+ // xPosition += 8;
1327
+ // yPosition += 8;
1328
+ // }
1329
+ if (type === convert_graph_keys_1.i7TableNames.nsg_nsgschaltfeld) {
1330
+ const nsgSchaltfeld = object;
1331
+ const leftUpperCornerOfSchaltfeld = yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgschaltfeld, nsgSchaltfeld);
1332
+ xPosition += leftUpperCornerOfSchaltfeld[0];
1333
+ yPosition += leftUpperCornerOfSchaltfeld[1];
1334
+ }
1335
+ else {
1336
+ return null;
1337
+ }
1338
+ for (const nsgQuerzweigqzContelem of nsgQuerzweigqzContelems) {
1339
+ const querzweigWrapperObject = this.dbObjectGraph.findTypedFirstByKey(convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, {
1340
+ id: nsgQuerzweigqzContelem.querzweig
1341
+ });
1342
+ const netzQuerzweig = querzweigWrapperObject.object;
1343
+ const cimObjectUUID = (_b = (_a = this.dbObjectKeyCimModelUuidGraph) === null || _a === void 0 ? void 0 : _a.getCimObjectIdFromDbKey(convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: nsgQuerzweigqzContelem.querzweig })) !== null && _b !== void 0 ? _b : undefined;
1344
+ const querzweigDiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint2({
1345
+ xPosition: xPosition,
1346
+ yPosition: yPosition,
1347
+ rotation: util_functions_1.DLUtilFunctions.getRotationBasedOnQuerzweig(nsgQuerzweigqzcont.ausrichtung),
1348
+ diagramObjectName: `DiagramObject ${nsgQuerzweigqzcont.querzweig}`,
1349
+ identifiedObjectUUID: cimObjectUUID
1350
+ });
1351
+ this.addExportedDiagramObjectToGraph(nsgQuerzweigqzcont.variantennr, nsgQuerzweigqzcont.querzweig, querzweigDiagramObject);
1352
+ resultingDiagramObjects.push(querzweigDiagramObject);
1353
+ /* ---------- ---------- ---------- */
1354
+ // BEGIN: Terminal-Export
1355
+ const doBackwardConnectivityNode = this.exportedDiagramObjectsGraph[nsgQuerzweigqzContelem.variantennr][netzQuerzweig.anschluss];
1356
+ const dopBackwardConnectivityNode = doBackwardConnectivityNode.diagramObjectPoints.map(arg => [arg.xPosition, arg.yPosition])[0];
1357
+ const dopConductingEquipment = querzweigDiagramObject.diagramObjectPoints.map(arg => [arg.xPosition, arg.yPosition])[0];
1358
+ const backwardTerminalUUID = this.lookupTerminalUUID(netzQuerzweig.anschluss, nsgQuerzweigqzContelem.querzweig);
1359
+ if (!this.exportedTerminalUUIDs.has(backwardTerminalUUID)) {
1360
+ this.exportedTerminalUUIDs.add(backwardTerminalUUID);
1361
+ const terminalDiagramObject = this.createTerminalDiagramObjectFromPoints({
1362
+ cePoints: [...dopConductingEquipment], cnPoints: [...dopBackwardConnectivityNode],
1363
+ terminalUuid: backwardTerminalUUID
1364
+ });
1365
+ resultingDiagramObjects.push(terminalDiagramObject);
1366
+ }
1367
+ // END: Terminal-Export
1368
+ /* ---------- ---------- ---------- */
1369
+ }
1370
+ return resultingDiagramObjects;
1371
+ });
1372
+ }
1373
+ /**
1374
+ * convertSchemaNsgLKupplungRss
1375
+ */
1376
+ convertSchemaNsgLKupplungRss(nsgLKupplungRss) {
1377
+ var _a, _b;
1378
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1379
+ const resultingDiagramObjects = [];
1380
+ const netzLKupplung = yield this.dbObjectGraph.findObjectByKey(convert_graph_keys_1.i7TableNames.netz_lkupplung, convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: nsgLKupplungRss.lkupplung });
1381
+ if (!netzLKupplung)
1382
+ return;
1383
+ const nsgSaabschnittAnf = yield this.dbObjectGraph.findObjectByKey(convert_graph_keys_1.i7TableNames.nsg_nsgsaabschnitt, convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, { variantennr: nsgLKupplungRss.variantennr, id: nsgLKupplungRss.nsgsaa_anf });
1384
+ if (!nsgSaabschnittAnf)
1385
+ return;
1386
+ const nsgSaabschnittEnd = yield this.dbObjectGraph.findObjectByKey(convert_graph_keys_1.i7TableNames.nsg_nsgsaabschnitt, convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, { variantennr: nsgLKupplungRss.variantennr, id: nsgLKupplungRss.nsgsaa_end });
1387
+ if (!nsgSaabschnittEnd)
1388
+ return;
1389
+ const nsgSchaltanlage = yield this.dbObjectGraph.findObjectByKey(convert_graph_keys_1.i7TableNames.nsg_nsgschaltanlage, convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, { variantennr: nsgLKupplungRss.variantennr, id: nsgSaabschnittAnf.nsgsa });
1390
+ if (!nsgSchaltanlage)
1391
+ return;
1392
+ const coordsSlotAnf = yield this.getLeftUpperCornerOfLKupplungRssElement(nsgLKupplungRss, { slot_anf: true });
1393
+ const coordsSelf = yield this.getLeftUpperCornerOfLKupplungRssElement(nsgLKupplungRss, { self: true });
1394
+ const coordsSlotEnd = yield this.getLeftUpperCornerOfLKupplungRssElement(nsgLKupplungRss, { slot_end: true });
1395
+ let coordsSelfAnfDock;
1396
+ let coordsSelfEndDock;
1397
+ let coordsSelfCenter;
1398
+ switch (nsgLKupplungRss.ausrichtung) {
1399
+ case 0:
1400
+ coordsSelfAnfDock = [coordsSelf[0] + 16, coordsSelf[1] + 8];
1401
+ coordsSelfCenter = [coordsSelf[0] + 8, coordsSelf[1] + 8];
1402
+ coordsSelfEndDock = [coordsSelf[0], coordsSelf[1] + 8];
1403
+ break;
1404
+ case 1:
1405
+ coordsSelfAnfDock = [coordsSelf[0] + 8, coordsSelf[1] + 16];
1406
+ coordsSelfCenter = [coordsSelf[0] + 8, coordsSelf[1] + 8];
1407
+ coordsSelfEndDock = [coordsSelf[0] + 8, coordsSelf[1]];
1408
+ break;
1409
+ case 2:
1410
+ coordsSelfAnfDock = [coordsSelf[0], coordsSelf[1] + 8];
1411
+ coordsSelfCenter = [coordsSelf[0] + 8, coordsSelf[1] + 8];
1412
+ coordsSelfEndDock = [coordsSelf[0] + 16, coordsSelf[1] + 8];
1413
+ break;
1414
+ case 3:
1415
+ coordsSelfAnfDock = [coordsSelf[0] + 8, coordsSelf[1]];
1416
+ coordsSelfCenter = [coordsSelf[0] + 8, coordsSelf[1] + 8];
1417
+ coordsSelfEndDock = [coordsSelf[0] + 8, coordsSelf[1] + 16];
1418
+ break;
1419
+ }
1420
+ let bendnodeOfAnf;
1421
+ let bendnodeOfEnd;
1422
+ switch (nsgSchaltanlage.ausrichtung) {
1423
+ case 0:
1424
+ case 2:
1425
+ coordsSlotAnf[0] += 16;
1426
+ coordsSlotAnf[1] += 12;
1427
+ coordsSlotEnd[0] += 16;
1428
+ coordsSlotEnd[1] += 12;
1429
+ bendnodeOfAnf = [coordsSlotAnf[0], coordsSelfAnfDock[1]];
1430
+ bendnodeOfEnd = [coordsSlotEnd[0], coordsSelfEndDock[1]];
1431
+ break;
1432
+ case 1:
1433
+ case 3:
1434
+ coordsSlotAnf[0] += 12;
1435
+ coordsSlotAnf[1] += 16;
1436
+ coordsSlotEnd[0] += 12;
1437
+ coordsSlotEnd[1] += 16;
1438
+ bendnodeOfAnf = [coordsSelfAnfDock[0], coordsSlotAnf[1]];
1439
+ bendnodeOfEnd = [coordsSelfEndDock[0], coordsSlotEnd[1]];
1440
+ break;
1441
+ }
1442
+ const netzSsabs = yield this.dbObjectGraph.findByAttributes(convert_graph_keys_1.i7TableNames.netz_ssab, {
1443
+ saabschnitt: {
1444
+ in: [nsgSaabschnittAnf.saabschnitt, nsgSaabschnittEnd.saabschnitt]
1445
+ }
1446
+ });
1447
+ const lkupplungNodes = yield this.getNodesOfLKupplung(netzLKupplung);
1448
+ const netzSsabsIds = new Set(netzSsabs.map(arg => arg.id));
1449
+ const ssabConnectedNodes = lkupplungNodes.filter(elem => netzSsabsIds.has(elem.aknoten) || netzSsabsIds.has(elem.eknoten));
1450
+ const nodePointMap = new Map();
1451
+ if (lkupplungNodes.length === 1 && netzSsabsIds.has(lkupplungNodes[0].aknoten) && netzSsabsIds.has(lkupplungNodes[0].eknoten)) {
1452
+ const rotationValue = 360 - (nsgLKupplungRss.ausrichtung + 1 % 4) * 90;
1453
+ const ssabConnectedNode = ssabConnectedNodes[0];
1454
+ const aKnotenSsab = netzSsabs.find(arg => arg.id === ssabConnectedNode.aknoten);
1455
+ const eKnotenSsab = netzSsabs.find(arg => arg.id === ssabConnectedNode.eknoten);
1456
+ switch (nsgSchaltanlage.ausrichtung) {
1457
+ case 0:
1458
+ case 2:
1459
+ coordsSlotAnf[1] += aKnotenSsab.pos * 8;
1460
+ coordsSlotEnd[1] += eKnotenSsab.pos * 8;
1461
+ break;
1462
+ case 1:
1463
+ case 3:
1464
+ coordsSlotAnf[0] += aKnotenSsab.pos * 8;
1465
+ coordsSlotEnd[0] += eKnotenSsab.pos * 8;
1466
+ break;
1467
+ }
1468
+ if (yield this.dbObjectGraph.findObjectByKey(convert_graph_keys_1.i7TableNames.netz_sestarr3p, convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: ssabConnectedNode.id })) {
1469
+ // cause 'starre Verbindungen' are modelled as junctions, there must be two points extracted
1470
+ // those two points are equal to the connectivity node positions and the rotation value is unnecessary
1471
+ const aKnotenPosition = [...coordsSlotAnf];
1472
+ const eKnotenPosition = [...coordsSlotEnd];
1473
+ const junctionCoordinates = [coordsSelfAnfDock, coordsSelfEndDock];
1474
+ nodePointMap.set(ssabConnectedNode.id, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoints(junctionCoordinates, null));
1475
+ nodePointMap.set(ssabConnectedNode.aknoten, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(aKnotenPosition[0], aKnotenPosition[1], null));
1476
+ nodePointMap.set(ssabConnectedNode.eknoten, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(eKnotenPosition[0], eKnotenPosition[1], null));
1477
+ }
1478
+ else {
1479
+ const aKnotenPosition = [...coordsSlotAnf];
1480
+ const eKnotenPosition = [...coordsSlotEnd];
1481
+ const switchCoordinates = [...coordsSelfCenter];
1482
+ nodePointMap.set(ssabConnectedNode.id, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(switchCoordinates[0], switchCoordinates[1], rotationValue));
1483
+ nodePointMap.set(ssabConnectedNode.aknoten, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(aKnotenPosition[0], aKnotenPosition[1], null));
1484
+ nodePointMap.set(ssabConnectedNode.eknoten, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(eKnotenPosition[0], eKnotenPosition[1], null));
1485
+ }
1486
+ const terminalAnfUUID = this.lookupTerminalUUID(ssabConnectedNode.aknoten, ssabConnectedNode.id);
1487
+ // if (!this.exportedTerminalUUIDs.has(terminalAnfUUID)) {
1488
+ this.exportedTerminalUUIDs.add(terminalAnfUUID);
1489
+ const terminalAnfDiagramObject = this.createTerminalDiagramObjectFromPoints({
1490
+ points: [coordsSelfAnfDock, bendnodeOfAnf, coordsSlotAnf],
1491
+ terminalUuid: terminalAnfUUID
1492
+ });
1493
+ resultingDiagramObjects.push(terminalAnfDiagramObject);
1494
+ // }
1495
+ const terminalEndUUID = this.lookupTerminalUUID(ssabConnectedNode.eknoten, ssabConnectedNode.id);
1496
+ // if (!this.exportedTerminalUUIDs.has(terminalEndUUID)) {
1497
+ this.exportedTerminalUUIDs.add(terminalEndUUID);
1498
+ const terminalEndDiagramObject = this.createTerminalDiagramObjectFromPoints({
1499
+ points: [coordsSelfEndDock, bendnodeOfEnd, coordsSlotEnd],
1500
+ terminalUuid: terminalEndUUID
1501
+ });
1502
+ resultingDiagramObjects.push(terminalEndDiagramObject);
1503
+ // }
1504
+ }
1505
+ else if (lkupplungNodes.length === 2 &&
1506
+ (netzSsabsIds.has(lkupplungNodes[0].aknoten) || netzSsabsIds.has(lkupplungNodes[0].eknoten)) &&
1507
+ (netzSsabsIds.has(lkupplungNodes[1].aknoten) || netzSsabsIds.has(lkupplungNodes[1].eknoten))) {
1508
+ let aKnotenSsabNode;
1509
+ let aKnotenSsabId;
1510
+ let eKnotenSsabNode;
1511
+ let eKnotenSsabId;
1512
+ let inbetweenNodeId;
1513
+ if (netzSsabsIds.has(lkupplungNodes[0].aknoten)) {
1514
+ aKnotenSsabId = lkupplungNodes[0].aknoten;
1515
+ aKnotenSsabNode = lkupplungNodes[0];
1516
+ eKnotenSsabId = lkupplungNodes[1].eknoten;
1517
+ eKnotenSsabNode = lkupplungNodes[1];
1518
+ inbetweenNodeId = lkupplungNodes[1].aknoten;
1519
+ }
1520
+ else {
1521
+ aKnotenSsabId = lkupplungNodes[1].aknoten;
1522
+ aKnotenSsabNode = lkupplungNodes[1];
1523
+ eKnotenSsabId = lkupplungNodes[0].eknoten;
1524
+ eKnotenSsabNode = lkupplungNodes[0];
1525
+ inbetweenNodeId = lkupplungNodes[0].aknoten;
1526
+ }
1527
+ const aKnotenSsab = netzSsabs.find(arg => arg.id === aKnotenSsabNode.aknoten);
1528
+ const eKnotenSsab = netzSsabs.find(arg => arg.id === eKnotenSsabNode.eknoten);
1529
+ switch (nsgSchaltanlage.ausrichtung) {
1530
+ case 0:
1531
+ case 2:
1532
+ coordsSlotAnf[1] += aKnotenSsab.pos * 8;
1533
+ coordsSlotEnd[1] += eKnotenSsab.pos * 8;
1534
+ break;
1535
+ case 1:
1536
+ case 3:
1537
+ coordsSlotAnf[0] += aKnotenSsab.pos * 8;
1538
+ coordsSlotEnd[0] += eKnotenSsab.pos * 8;
1539
+ break;
1540
+ }
1541
+ const aKnotenPosition = [...coordsSlotAnf];
1542
+ const eKnotenPosition = [...coordsSlotEnd];
1543
+ let rotationValue;
1544
+ switch (nsgSchaltanlage.ausrichtung) {
1545
+ case 0:
1546
+ case 2:
1547
+ rotationValue = 0;
1548
+ break;
1549
+ case 1:
1550
+ case 3:
1551
+ rotationValue = 270;
1552
+ break;
1553
+ }
1554
+ nodePointMap.set(aKnotenSsabNode.aknoten, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(aKnotenPosition[0], aKnotenPosition[1], null));
1555
+ const terminalAnfUUID = this.lookupTerminalUUID(aKnotenSsabNode.aknoten, aKnotenSsabNode.id);
1556
+ // if (!this.exportedTerminalUUIDs.has(terminalAnfUUID)) {
1557
+ this.exportedTerminalUUIDs.add(terminalAnfUUID);
1558
+ const terminalAnfDiagramObject = this.createTerminalDiagramObjectFromPoints({
1559
+ points: [aKnotenPosition, aKnotenPosition],
1560
+ terminalUuid: terminalAnfUUID
1561
+ });
1562
+ resultingDiagramObjects.push(terminalAnfDiagramObject);
1563
+ // }
1564
+ nodePointMap.set(aKnotenSsabNode.id, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(aKnotenPosition[0], aKnotenPosition[1], rotationValue));
1565
+ const terminalAnfInbetweenUUID = this.lookupTerminalUUID(inbetweenNodeId, aKnotenSsabNode.id);
1566
+ // if (!this.exportedTerminalUUIDs.has(terminalAnfInbetweenUUID)) {
1567
+ this.exportedTerminalUUIDs.add(terminalAnfInbetweenUUID);
1568
+ const terminalAnfInbetweenDiagramObject = this.createTerminalDiagramObjectFromPoints({
1569
+ points: [aKnotenPosition, bendnodeOfAnf, coordsSelfCenter],
1570
+ terminalUuid: terminalAnfInbetweenUUID
1571
+ });
1572
+ resultingDiagramObjects.push(terminalAnfInbetweenDiagramObject);
1573
+ // }
1574
+ nodePointMap.set(inbetweenNodeId, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(coordsSelfCenter[0], coordsSelfCenter[1], null));
1575
+ const terminalEndInbetweenUUID = this.lookupTerminalUUID(inbetweenNodeId, eKnotenSsabNode.id);
1576
+ // if (!this.exportedTerminalUUIDs.has(terminalEndInbetweenUUID)) {
1577
+ this.exportedTerminalUUIDs.add(terminalEndInbetweenUUID);
1578
+ const terminalndInbetweenDiagramObject = this.createTerminalDiagramObjectFromPoints({
1579
+ points: [eKnotenPosition, bendnodeOfEnd, coordsSelfCenter],
1580
+ terminalUuid: terminalEndInbetweenUUID
1581
+ });
1582
+ resultingDiagramObjects.push(terminalndInbetweenDiagramObject);
1583
+ // }
1584
+ nodePointMap.set(eKnotenSsabNode.id, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(eKnotenPosition[0], eKnotenPosition[1], rotationValue));
1585
+ const terminalEndUUID = this.lookupTerminalUUID(eKnotenSsabNode.eknoten, eKnotenSsabNode.id);
1586
+ // if (!this.exportedTerminalUUIDs.has(terminalEndUUID)) {
1587
+ this.exportedTerminalUUIDs.add(terminalEndUUID);
1588
+ const terminalEndDiagramObject = this.createTerminalDiagramObjectFromPoints({
1589
+ points: [eKnotenPosition, eKnotenPosition],
1590
+ terminalUuid: terminalEndUUID
1591
+ });
1592
+ resultingDiagramObjects.push(terminalEndDiagramObject);
1593
+ // }
1594
+ nodePointMap.set(eKnotenSsabNode.eknoten, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(eKnotenPosition[0], eKnotenPosition[1], null));
1595
+ }
1596
+ else {
1597
+ for (const ssabConnectedNode of ssabConnectedNodes) {
1598
+ const idOfSsab = netzSsabsIds.has(ssabConnectedNode.aknoten) ? ssabConnectedNode.aknoten : ssabConnectedNode.eknoten;
1599
+ const leftUpperCornerOfSsab = yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.netz_ssab, netzSsabs.find(arg => arg.id === idOfSsab), nsgLKupplungRss.variantennr);
1600
+ // needed to get the correct behaviour for universal couplings
1601
+ const breakerNode = lkupplungNodes.find(arg => arg.aknoten === ssabConnectedNode.eknoten);
1602
+ if (netzSsabsIds.has(ssabConnectedNode.aknoten) && breakerNode) {
1603
+ // place on 'left' side of the coupling-field (but at the end of the busbar)
1604
+ let rotationValue;
1605
+ const position = [null, null];
1606
+ const aKnotenPosition = [null, null]; // connectivity node to busbar
1607
+ switch (nsgSchaltanlage.ausrichtung) {
1608
+ case 0: // left to right
1609
+ position[0] = coordsSlotAnf[0];
1610
+ position[1] = leftUpperCornerOfSsab[1];
1611
+ rotationValue = 0;
1612
+ aKnotenPosition[0] = coordsSlotAnf[0];
1613
+ aKnotenPosition[1] = leftUpperCornerOfSsab[1];
1614
+ break;
1615
+ case 1: // top to bottom
1616
+ position[0] = leftUpperCornerOfSsab[0];
1617
+ position[1] = coordsSlotAnf[1];
1618
+ rotationValue = 270;
1619
+ aKnotenPosition[0] = leftUpperCornerOfSsab[0];
1620
+ aKnotenPosition[1] = coordsSlotAnf[1];
1621
+ break;
1622
+ case 2: // right to left
1623
+ position[0] = coordsSlotAnf[0];
1624
+ position[1] = leftUpperCornerOfSsab[1];
1625
+ rotationValue = 0;
1626
+ aKnotenPosition[0] = coordsSlotAnf[0];
1627
+ aKnotenPosition[1] = leftUpperCornerOfSsab[1];
1628
+ break;
1629
+ case 3: // bottom to top
1630
+ position[0] = leftUpperCornerOfSsab[0];
1631
+ position[1] = coordsSlotAnf[1];
1632
+ rotationValue = 270;
1633
+ aKnotenPosition[0] = leftUpperCornerOfSsab[0];
1634
+ aKnotenPosition[1] = coordsSlotAnf[1];
1635
+ break;
1636
+ }
1637
+ nodePointMap.set(ssabConnectedNode.id, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(position[0], position[1], rotationValue));
1638
+ nodePointMap.set(ssabConnectedNode.aknoten, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(aKnotenPosition[0], aKnotenPosition[1], null));
1639
+ }
1640
+ else {
1641
+ // place on 'right' side of the coupling-field (but at the start of the busbar)
1642
+ let rotationValue;
1643
+ const position = [null, null];
1644
+ const eKnotenPosition = [null, null]; // connectivity node to busbar
1645
+ switch (nsgSchaltanlage.ausrichtung) {
1646
+ case 0: // left to right
1647
+ position[0] = coordsSlotEnd[0];
1648
+ position[1] = leftUpperCornerOfSsab[1];
1649
+ rotationValue = 0;
1650
+ eKnotenPosition[0] = coordsSlotEnd[0];
1651
+ eKnotenPosition[1] = leftUpperCornerOfSsab[1];
1652
+ break;
1653
+ case 1: // top to bottom
1654
+ position[0] = leftUpperCornerOfSsab[0];
1655
+ position[1] = coordsSlotEnd[1];
1656
+ rotationValue = 270;
1657
+ eKnotenPosition[0] = leftUpperCornerOfSsab[0];
1658
+ eKnotenPosition[1] = coordsSlotEnd[1];
1659
+ break;
1660
+ case 2: // right to left
1661
+ position[0] = coordsSlotEnd[0];
1662
+ position[1] = leftUpperCornerOfSsab[1];
1663
+ rotationValue = 0;
1664
+ eKnotenPosition[0] = coordsSlotEnd[0];
1665
+ eKnotenPosition[1] = leftUpperCornerOfSsab[1];
1666
+ break;
1667
+ case 3: // bottom to top
1668
+ position[0] = leftUpperCornerOfSsab[0];
1669
+ position[1] = coordsSlotEnd[1];
1670
+ rotationValue = 270;
1671
+ eKnotenPosition[0] = leftUpperCornerOfSsab[0];
1672
+ eKnotenPosition[1] = coordsSlotEnd[1];
1673
+ break;
1674
+ }
1675
+ nodePointMap.set(ssabConnectedNode.id, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(position[0], position[1], rotationValue));
1676
+ nodePointMap.set(
1677
+ // needed to get the correct behaviour for universal couplings
1678
+ netzSsabsIds.has(ssabConnectedNode.aknoten) ? ssabConnectedNode.aknoten : ssabConnectedNode.eknoten, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(eKnotenPosition[0], eKnotenPosition[1], null));
1679
+ }
1680
+ }
1681
+ if (ssabConnectedNodes.length > 2) {
1682
+ // universal-coupling ==> breaker must be placed 'on top' of the coupling
1683
+ const startSsabConnectedNode = lkupplungNodes.filter(elem => netzSsabsIds.has(elem.aknoten));
1684
+ // if (startSsabConnectedNode.length === 1 && !nodePointMap.has(startSsabConnectedNode[0].eknoten)) {
1685
+ const breakerNode = lkupplungNodes.find(arg => arg.aknoten === startSsabConnectedNode[0].eknoten || arg.eknoten === startSsabConnectedNode[0].eknoten);
1686
+ const rotationValue = 360 - (nsgLKupplungRss.ausrichtung + 1 % 4) * 90;
1687
+ nodePointMap.set(breakerNode.id, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(coordsSelfCenter[0], coordsSelfCenter[1], rotationValue));
1688
+ nodePointMap.set(breakerNode.aknoten, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(bendnodeOfAnf[0], bendnodeOfAnf[1], null));
1689
+ nodePointMap.set(breakerNode.eknoten, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(bendnodeOfEnd[0], bendnodeOfEnd[1], null));
1690
+ }
1691
+ else {
1692
+ const startSsabConnectedNode = lkupplungNodes.filter(elem => netzSsabsIds.has(elem.aknoten));
1693
+ if (startSsabConnectedNode.length === 1 && !nodePointMap.has(startSsabConnectedNode[0].eknoten)) {
1694
+ const centeredNode = lkupplungNodes.find(arg => arg.aknoten === startSsabConnectedNode[0].eknoten);
1695
+ const rotationValue = 360 - (nsgLKupplungRss.ausrichtung + 1 % 4) * 90;
1696
+ nodePointMap.set(centeredNode.id, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(coordsSelfCenter[0], coordsSelfCenter[1], rotationValue));
1697
+ nodePointMap.set(centeredNode.aknoten, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(bendnodeOfAnf[0], bendnodeOfAnf[1], null));
1698
+ nodePointMap.set(centeredNode.eknoten, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(bendnodeOfEnd[0], bendnodeOfEnd[1], null));
1699
+ }
1700
+ }
1701
+ /* ---------- ---------- ---------- */
1702
+ // BEGIN: Terminal-Export
1703
+ for (const lkupplungNode of lkupplungNodes) {
1704
+ const doBackwardConnectivityNode = nodePointMap.get(lkupplungNode.aknoten);
1705
+ const doConductingEquipment = nodePointMap.get(lkupplungNode.id);
1706
+ const doForwardConnectivityNode = nodePointMap.get(lkupplungNode.eknoten);
1707
+ const dopBackwardConnectivityNode = doBackwardConnectivityNode === null || doBackwardConnectivityNode === void 0 ? void 0 : doBackwardConnectivityNode.diagramObjectPoints.map(arg => [arg.xPosition, arg.yPosition])[0];
1708
+ const dopsConductingEquipment = doConductingEquipment === null || doConductingEquipment === void 0 ? void 0 : doConductingEquipment.diagramObjectPoints.map(arg => [arg.xPosition, arg.yPosition]);
1709
+ const dopForwardConnectivityNode = doForwardConnectivityNode === null || doForwardConnectivityNode === void 0 ? void 0 : doForwardConnectivityNode.diagramObjectPoints.map(arg => [arg.xPosition, arg.yPosition])[0];
1710
+ if (!dopBackwardConnectivityNode || !dopsConductingEquipment || !dopForwardConnectivityNode)
1711
+ continue;
1712
+ const backwardTerminalUUID = this.lookupTerminalUUID(lkupplungNode.aknoten, lkupplungNode.id);
1713
+ // if (!this.exportedTerminalUUIDs.has(backwardTerminalUUID)) {
1714
+ this.exportedTerminalUUIDs.add(backwardTerminalUUID);
1715
+ const terminalbackwardDiagramObject = this.createTerminalDiagramObjectFromPoints({
1716
+ cePoints: dopsConductingEquipment[0], cnPoints: dopBackwardConnectivityNode,
1717
+ terminalUuid: backwardTerminalUUID
1718
+ });
1719
+ resultingDiagramObjects.push(terminalbackwardDiagramObject);
1720
+ // }
1721
+ const forwardTerminalUUID = this.lookupTerminalUUID(lkupplungNode.eknoten, lkupplungNode.id);
1722
+ // if (!this.exportedTerminalUUIDs.has(forwardTerminalUUID)) {
1723
+ this.exportedTerminalUUIDs.add(forwardTerminalUUID);
1724
+ const terminalforwardDiagramObject = this.createTerminalDiagramObjectFromPoints({
1725
+ cePoints: dopsConductingEquipment[dopsConductingEquipment.length - 1], cnPoints: dopForwardConnectivityNode,
1726
+ terminalUuid: forwardTerminalUUID
1727
+ });
1728
+ resultingDiagramObjects.push(terminalforwardDiagramObject);
1729
+ // }
1730
+ }
1731
+ // END: Terminal-Export
1732
+ /* ---------- ---------- ---------- */
1733
+ }
1734
+ for (const nodePointEntry of nodePointMap.entries()) {
1735
+ const key = nodePointEntry[0];
1736
+ const value = nodePointEntry[1];
1737
+ const cimObjectUUID = (_b = (_a = this.dbObjectKeyCimModelUuidGraph) === null || _a === void 0 ? void 0 : _a.getCimObjectIdFromDbKey(convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: key })) !== null && _b !== void 0 ? _b : undefined;
1738
+ value.identifiedObjectUUID = cimObjectUUID;
1739
+ resultingDiagramObjects.push(value);
1740
+ }
927
1741
  return resultingDiagramObjects;
928
1742
  });
929
1743
  }
1744
+ /**
1745
+ * getRelPos
1746
+ */
930
1747
  getRelPos(nsgLeitung, aknoten) {
931
1748
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
932
- const netzLeitung = yield this.dbObjectGraph.findObjectByKey(convert_graph_keys_1.i7TableNames.netz_leitung, convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: nsgLeitung.leitung });
933
- if (!netzLeitung)
934
- return;
1749
+ // const netzLeitung = await this.dbObjectGraph.findObjectByKey(i7TableNames.netz_leitung,
1750
+ // i7SchemaKeyNames.IdOnlyKey, { id: nsgLeitung.leitung }
1751
+ // );
1752
+ // if (!netzLeitung) return;
935
1753
  const idOfNsgKnoten = aknoten ? nsgLeitung.anschlussanf : nsgLeitung.anschlussend;
936
1754
  const typedResult = this.dbObjectGraph.findTypedFirstByKey(convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, {
937
1755
  variantennr: nsgLeitung.variantennr, id: idOfNsgKnoten
@@ -943,6 +1761,10 @@ class DLConverterI7 {
943
1761
  const relPos = yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgknotenso, object);
944
1762
  return [relPos[0] + 32 / 2 - 2, relPos[1] + 32 / 2 - 2];
945
1763
  }
1764
+ else if (type === convert_graph_keys_1.i7TableNames.nsg_nsgknotenhgue) {
1765
+ const relPos = yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgknotenhgue, object);
1766
+ return [relPos[0] + 32 / 2 - 2, relPos[1] + 32 / 2 - 2];
1767
+ }
946
1768
  else if (type === convert_graph_keys_1.i7TableNames.nsg_nsgschaltfeld) {
947
1769
  const nsgSchaltfeld = object;
948
1770
  const nsgSaabschnitt = yield this.dbObjectGraph.findObjectByKey(convert_graph_keys_1.i7TableNames.nsg_nsgsaabschnitt, convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, { variantennr: nsgSchaltfeld.variantennr, id: nsgSchaltfeld.nsgsaa });
@@ -979,9 +1801,16 @@ class DLConverterI7 {
979
1801
  relPos[1] -= 2;
980
1802
  return relPos;
981
1803
  }
1804
+ else if (type === convert_graph_keys_1.i7TableNames.nsg_nsgquerzweig) {
1805
+ const relPos = yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgquerzweig, object);
1806
+ return [relPos[0] + 32 / 2 - 2, relPos[1] + 32 / 2 - 2];
1807
+ }
982
1808
  return [];
983
1809
  });
984
1810
  }
1811
+ /**
1812
+ * convertSchemaKpfeld
1813
+ */
985
1814
  convertSchemaKpfeld(nsgKpfeld) {
986
1815
  var _a, _b;
987
1816
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
@@ -1121,15 +1950,19 @@ class DLConverterI7 {
1121
1950
  const backwardTerminalUUID = this.lookupTerminalUUID(kpfeldNode.aknoten, kpfeldNode.id);
1122
1951
  if (!this.exportedTerminalUUIDs.has(backwardTerminalUUID)) {
1123
1952
  this.exportedTerminalUUIDs.add(backwardTerminalUUID);
1124
- const terminalDiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoints([[...dopBackwardConnectivityNode], [...dopConductingEquipment]], null);
1125
- terminalDiagramObject.identifiedObjectUUID = backwardTerminalUUID;
1953
+ const terminalDiagramObject = this.createTerminalDiagramObjectFromPoints({
1954
+ cePoints: [...dopConductingEquipment], cnPoints: [...dopBackwardConnectivityNode],
1955
+ terminalUuid: backwardTerminalUUID
1956
+ });
1126
1957
  resultingDiagramObjects.push(terminalDiagramObject);
1127
1958
  }
1128
1959
  const forwardTerminalUUID = this.lookupTerminalUUID(kpfeldNode.eknoten, kpfeldNode.id);
1129
1960
  if (!this.exportedTerminalUUIDs.has(forwardTerminalUUID)) {
1130
1961
  this.exportedTerminalUUIDs.add(forwardTerminalUUID);
1131
- const terminalDiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoints([[...dopForwardConnectivityNode], [...dopConductingEquipment]], null);
1132
- terminalDiagramObject.identifiedObjectUUID = forwardTerminalUUID;
1962
+ const terminalDiagramObject = this.createTerminalDiagramObjectFromPoints({
1963
+ cePoints: [...dopConductingEquipment], cnPoints: [...dopForwardConnectivityNode],
1964
+ terminalUuid: forwardTerminalUUID
1965
+ });
1133
1966
  resultingDiagramObjects.push(terminalDiagramObject);
1134
1967
  }
1135
1968
  }
@@ -1254,16 +2087,18 @@ class DLConverterI7 {
1254
2087
  bendNode[1] = dopBackwardConnectivityNode[1];
1255
2088
  break;
1256
2089
  }
1257
- backwardTerminalPoints = [[...dopBackwardConnectivityNode], bendNode, [...dopConductingEquipment]];
2090
+ backwardTerminalPoints = [[...dopConductingEquipment], bendNode, [...dopBackwardConnectivityNode]];
1258
2091
  }
1259
2092
  else {
1260
- backwardTerminalPoints = [[...dopBackwardConnectivityNode], [...dopConductingEquipment]];
2093
+ backwardTerminalPoints = [[...dopConductingEquipment], [...dopBackwardConnectivityNode]];
1261
2094
  }
1262
2095
  const backwardTerminalUUID = this.lookupTerminalUUID(kpfeldNode.aknoten, kpfeldNode.id);
1263
2096
  if (!this.exportedTerminalUUIDs.has(backwardTerminalUUID)) {
1264
2097
  this.exportedTerminalUUIDs.add(backwardTerminalUUID);
1265
- const terminalDiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoints(backwardTerminalPoints, null);
1266
- terminalDiagramObject.identifiedObjectUUID = backwardTerminalUUID;
2098
+ const terminalDiagramObject = this.createTerminalDiagramObjectFromPoints({
2099
+ points: backwardTerminalPoints,
2100
+ terminalUuid: backwardTerminalUUID
2101
+ });
1267
2102
  resultingDiagramObjects.push(terminalDiagramObject);
1268
2103
  }
1269
2104
  let forwardTerminalPoints;
@@ -1282,16 +2117,18 @@ class DLConverterI7 {
1282
2117
  bendNode[1] = dopForwardConnectivityNode[1];
1283
2118
  break;
1284
2119
  }
1285
- forwardTerminalPoints = [[...dopForwardConnectivityNode], bendNode, [...dopConductingEquipment]];
2120
+ forwardTerminalPoints = [[...dopConductingEquipment], bendNode, [...dopForwardConnectivityNode]];
1286
2121
  }
1287
2122
  else {
1288
- forwardTerminalPoints = [[...dopForwardConnectivityNode], [...dopConductingEquipment]];
2123
+ forwardTerminalPoints = [[...dopConductingEquipment], [...dopForwardConnectivityNode]];
1289
2124
  }
1290
2125
  const forwardTerminalUUID = this.lookupTerminalUUID(kpfeldNode.eknoten, kpfeldNode.id);
1291
2126
  if (!this.exportedTerminalUUIDs.has(forwardTerminalUUID)) {
1292
2127
  this.exportedTerminalUUIDs.add(forwardTerminalUUID);
1293
- const terminalDiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoints(forwardTerminalPoints, null);
1294
- terminalDiagramObject.identifiedObjectUUID = forwardTerminalUUID;
2128
+ const terminalDiagramObject = this.createTerminalDiagramObjectFromPoints({
2129
+ points: forwardTerminalPoints,
2130
+ terminalUuid: forwardTerminalUUID
2131
+ });
1295
2132
  resultingDiagramObjects.push(terminalDiagramObject);
1296
2133
  }
1297
2134
  }
@@ -1308,6 +2145,9 @@ class DLConverterI7 {
1308
2145
  return resultingDiagramObjects;
1309
2146
  });
1310
2147
  }
2148
+ /**
2149
+ * convertSchemaLKupplung
2150
+ */
1311
2151
  convertSchemaLKupplung(nsgLKupplung, netzLKupplung) {
1312
2152
  var _a, _b;
1313
2153
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
@@ -1686,21 +2526,27 @@ class DLConverterI7 {
1686
2526
  const doBackwardConnectivityNode = nodePointMap.get(lkupplungNode.aknoten);
1687
2527
  const doConductingEquipment = nodePointMap.get(lkupplungNode.id);
1688
2528
  const doForwardConnectivityNode = nodePointMap.get(lkupplungNode.eknoten);
1689
- const dopBackwardConnectivityNode = doBackwardConnectivityNode.diagramObjectPoints.map(arg => [arg.xPosition, arg.yPosition])[0];
1690
- const dopsConductingEquipment = doConductingEquipment.diagramObjectPoints.map(arg => [arg.xPosition, arg.yPosition]);
1691
- const dopForwardConnectivityNode = doForwardConnectivityNode.diagramObjectPoints.map(arg => [arg.xPosition, arg.yPosition])[0];
2529
+ const dopBackwardConnectivityNode = doBackwardConnectivityNode === null || doBackwardConnectivityNode === void 0 ? void 0 : doBackwardConnectivityNode.diagramObjectPoints.map(arg => [arg.xPosition, arg.yPosition])[0];
2530
+ const dopsConductingEquipment = doConductingEquipment === null || doConductingEquipment === void 0 ? void 0 : doConductingEquipment.diagramObjectPoints.map(arg => [arg.xPosition, arg.yPosition]);
2531
+ const dopForwardConnectivityNode = doForwardConnectivityNode === null || doForwardConnectivityNode === void 0 ? void 0 : doForwardConnectivityNode.diagramObjectPoints.map(arg => [arg.xPosition, arg.yPosition])[0];
2532
+ if (!dopBackwardConnectivityNode || !dopsConductingEquipment || !dopForwardConnectivityNode)
2533
+ continue;
1692
2534
  const backwardTerminalUUID = this.lookupTerminalUUID(lkupplungNode.aknoten, lkupplungNode.id);
1693
2535
  if (!this.exportedTerminalUUIDs.has(backwardTerminalUUID)) {
1694
2536
  this.exportedTerminalUUIDs.add(backwardTerminalUUID);
1695
- const terminalDiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoints([[...dopBackwardConnectivityNode], [...dopsConductingEquipment[0]]], null);
1696
- terminalDiagramObject.identifiedObjectUUID = backwardTerminalUUID;
2537
+ const terminalDiagramObject = this.createTerminalDiagramObjectFromPoints({
2538
+ cePoints: dopsConductingEquipment[0], cnPoints: dopBackwardConnectivityNode,
2539
+ terminalUuid: backwardTerminalUUID
2540
+ });
1697
2541
  resultingDiagramObjects.push(terminalDiagramObject);
1698
2542
  }
1699
2543
  const forwardTerminalUUID = this.lookupTerminalUUID(lkupplungNode.eknoten, lkupplungNode.id);
1700
2544
  if (!this.exportedTerminalUUIDs.has(forwardTerminalUUID)) {
1701
2545
  this.exportedTerminalUUIDs.add(forwardTerminalUUID);
1702
- const terminalDiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoints([[...dopForwardConnectivityNode], [...dopsConductingEquipment[dopsConductingEquipment.length - 1]]], null);
1703
- terminalDiagramObject.identifiedObjectUUID = forwardTerminalUUID;
2546
+ const terminalDiagramObject = this.createTerminalDiagramObjectFromPoints({
2547
+ cePoints: dopsConductingEquipment[dopsConductingEquipment.length - 1], cnPoints: dopForwardConnectivityNode,
2548
+ terminalUuid: forwardTerminalUUID
2549
+ });
1704
2550
  resultingDiagramObjects.push(terminalDiagramObject);
1705
2551
  }
1706
2552
  }
@@ -1716,6 +2562,385 @@ class DLConverterI7 {
1716
2562
  return resultingDiagramObjects;
1717
2563
  });
1718
2564
  }
2565
+ /**
2566
+ * convertSchemaStpschiene
2567
+ */
2568
+ convertSchemaLKondensator(nsgLKondensator) {
2569
+ var _a, _b;
2570
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
2571
+ const resultingDiagramObjects = [];
2572
+ const leftUpperCornerOfNsgLKondensator = yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsglkondensator, nsgLKondensator);
2573
+ const lkondensator = yield this.dbObjectGraph.findObjectByKey(convert_graph_keys_1.i7TableNames.netz_lkondensator, convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: nsgLKondensator.lkondensator });
2574
+ if (!lkondensator)
2575
+ return null;
2576
+ const pos = [...leftUpperCornerOfNsgLKondensator];
2577
+ const anfPos = [...leftUpperCornerOfNsgLKondensator];
2578
+ const endPos = [...leftUpperCornerOfNsgLKondensator];
2579
+ switch (nsgLKondensator.ausrichtung) {
2580
+ case 0: // <-- anschlussend || anschlussanf -->
2581
+ pos[0] += 24;
2582
+ pos[1] += 16;
2583
+ anfPos[0] += 48;
2584
+ anfPos[1] += 16;
2585
+ endPos[0] += 0;
2586
+ endPos[1] += 16;
2587
+ break;
2588
+ case 1:
2589
+ pos[0] += 16;
2590
+ pos[1] += 24;
2591
+ anfPos[0] += 16;
2592
+ anfPos[1] += 48;
2593
+ endPos[0] += 0;
2594
+ endPos[1] += 16;
2595
+ break;
2596
+ case 2:
2597
+ pos[0] += 24;
2598
+ pos[1] += 16;
2599
+ anfPos[0] += 0;
2600
+ anfPos[1] += 16;
2601
+ endPos[0] += 48;
2602
+ endPos[1] += 16;
2603
+ break;
2604
+ case 3:
2605
+ pos[0] += 16;
2606
+ pos[1] += 24;
2607
+ anfPos[0] += 0;
2608
+ anfPos[1] += 16;
2609
+ endPos[0] += 16;
2610
+ endPos[1] += 48;
2611
+ break;
2612
+ }
2613
+ const cimObjectUUID = (_b = (_a = this.dbObjectKeyCimModelUuidGraph) === null || _a === void 0 ? void 0 : _a.getCimObjectIdFromDbKey(convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: nsgLKondensator.lkondensator })) !== null && _b !== void 0 ? _b : undefined;
2614
+ const doLKondensator = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint2({
2615
+ xPosition: pos[0],
2616
+ yPosition: pos[1],
2617
+ rotation: util_functions_1.DLUtilFunctions.getRotationBasedOnQuerzweig(nsgLKondensator.ausrichtung),
2618
+ diagramObjectName: `DiagramObject ${nsgLKondensator.lkondensator}`,
2619
+ identifiedObjectUUID: cimObjectUUID
2620
+ });
2621
+ this.addExportedDiagramObjectToGraph(nsgLKondensator.variantennr, nsgLKondensator.id, doLKondensator);
2622
+ resultingDiagramObjects.push(doLKondensator);
2623
+ /* ---------- ---------- ---------- */
2624
+ // BEGIN: Terminal-Export
2625
+ const anschlussanfTypedResult = this.dbObjectGraph.findTypedFirstByKey(convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, {
2626
+ variantennr: nsgLKondensator.variantennr, id: nsgLKondensator.anschlussanf
2627
+ });
2628
+ const anfTerminalUUID = this.lookupTerminalUUID(lkondensator.aknoten, nsgLKondensator.lkondensator);
2629
+ if (anschlussanfTypedResult && anfTerminalUUID) {
2630
+ if (!this.exportedTerminalUUIDs.has(anfTerminalUUID)) {
2631
+ const connectivityNodePosition = yield this.getConnectivityNodePositionFor(anschlussanfTypedResult.type, anschlussanfTypedResult.object);
2632
+ this.exportedTerminalUUIDs.add(anfTerminalUUID);
2633
+ const terminalDiagramObject = this.createTerminalDiagramObjectFromPoints({
2634
+ cePoints: anfPos, cnPoints: connectivityNodePosition,
2635
+ terminalUuid: anfTerminalUUID
2636
+ });
2637
+ resultingDiagramObjects.push(terminalDiagramObject);
2638
+ }
2639
+ }
2640
+ const anschlussendTypedResult = this.dbObjectGraph.findTypedFirstByKey(convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, {
2641
+ variantennr: nsgLKondensator.variantennr, id: nsgLKondensator.anschlussend
2642
+ });
2643
+ const endTerminalUUID = this.lookupTerminalUUID(lkondensator.eknoten, nsgLKondensator.lkondensator);
2644
+ if (anschlussendTypedResult && endTerminalUUID) {
2645
+ if (!this.exportedTerminalUUIDs.has(endTerminalUUID)) {
2646
+ const connectivityNodePosition = yield this.getConnectivityNodePositionFor(anschlussendTypedResult.type, anschlussendTypedResult.object);
2647
+ this.exportedTerminalUUIDs.add(endTerminalUUID);
2648
+ const terminalDiagramObject = this.createTerminalDiagramObjectFromPoints({
2649
+ cePoints: endPos, cnPoints: connectivityNodePosition,
2650
+ terminalUuid: endTerminalUUID
2651
+ });
2652
+ resultingDiagramObjects.push(terminalDiagramObject);
2653
+ }
2654
+ }
2655
+ // const doEndConnectivityNode = this.exportedDiagramObjectsGraph[nsgLKondensator.variantennr][nsgLKondensator.anschlussend];
2656
+ // const dopEndConnectivityNode = doEndConnectivityNode.diagramObjectPoints.map(arg => [arg.xPosition, arg.yPosition])[0];
2657
+ //
2658
+ // const endTerminalUUID = this.lookupTerminalUUID(nsgLKondensator.anschlussend, nsgLKondensator.id);
2659
+ // if (!this.exportedTerminalUUIDs.has(endTerminalUUID)) {
2660
+ // this.exportedTerminalUUIDs.add(endTerminalUUID);
2661
+ // const terminalDiagramObject = DLUtilFunctions.createDiagramObjectWithPoints(
2662
+ // [[...dopEndConnectivityNode], [...endPos]], null
2663
+ // );
2664
+ // terminalDiagramObject.identifiedObjectUUID = endTerminalUUID;
2665
+ // resultingDiagramObjects.push(terminalDiagramObject);
2666
+ // }
2667
+ // END: Terminal-Export
2668
+ /* ---------- ---------- ---------- */
2669
+ return resultingDiagramObjects;
2670
+ });
2671
+ }
2672
+ /**
2673
+ * convertSchemaStpschiene
2674
+ */
2675
+ convertSchemaStpschiene(nsgStpschiene) {
2676
+ var _a, _b, _c;
2677
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
2678
+ const leftUpperCornerOfNsgStpschiene = yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgstpschiene, nsgStpschiene);
2679
+ const length = nsgStpschiene.laenge;
2680
+ const points = [];
2681
+ let topLeft = new DiagramObjectPoint_1.DiagramObjectPoint();
2682
+ let bottomRight = new DiagramObjectPoint_1.DiagramObjectPoint();
2683
+ topLeft.xPosition = leftUpperCornerOfNsgStpschiene[0];
2684
+ topLeft.yPosition = leftUpperCornerOfNsgStpschiene[1];
2685
+ if (nsgStpschiene.ausrichtung % 2 === 0) {
2686
+ bottomRight.xPosition = leftUpperCornerOfNsgStpschiene[0] + length * constants_1.NsgConstants.HORIZONTAL_OFFSET;
2687
+ bottomRight.yPosition = leftUpperCornerOfNsgStpschiene[1];
2688
+ topLeft.yPosition += 4;
2689
+ bottomRight.yPosition += 4;
2690
+ }
2691
+ else {
2692
+ bottomRight.xPosition = leftUpperCornerOfNsgStpschiene[0];
2693
+ bottomRight.yPosition = leftUpperCornerOfNsgStpschiene[1] + length * constants_1.NsgConstants.HORIZONTAL_OFFSET;
2694
+ topLeft.xPosition += 4;
2695
+ bottomRight.xPosition += 4;
2696
+ }
2697
+ topLeft.sequenceNumber = 1;
2698
+ bottomRight.sequenceNumber = 2;
2699
+ points.push(topLeft, bottomRight);
2700
+ const cimObjectUUID = (_b = (_a = this.dbObjectKeyCimModelUuidGraph) === null || _a === void 0 ? void 0 : _a.getCimObjectIdFromDbKey(convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: nsgStpschiene.stpschiene })) !== null && _b !== void 0 ? _b : undefined;
2701
+ const connectivityNode = this.cimModelGraph.findObjectByUUID(cimObjectUUID);
2702
+ let junction = null;
2703
+ let junctionTerminal = null;
2704
+ if (connectivityNode) {
2705
+ for (const terminal of connectivityNode.terminals.values()) {
2706
+ if (terminal.conductingEquipment instanceof Junction_1.Junction) {
2707
+ junction = terminal.conductingEquipment;
2708
+ junctionTerminal = terminal;
2709
+ break;
2710
+ }
2711
+ }
2712
+ }
2713
+ if (junction && junctionTerminal && !((_c = this.config) === null || _c === void 0 ? void 0 : _c.busbarSectionAsConnectivityNode)) {
2714
+ // compute the position for the ConnectivityNode (the center of the BusbarSection)
2715
+ const centerPosition = [
2716
+ (topLeft.xPosition + bottomRight.xPosition) / 2,
2717
+ (topLeft.yPosition + bottomRight.yPosition) / 2
2718
+ ];
2719
+ const doConnectivityNode = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(centerPosition[0], centerPosition[1], null);
2720
+ doConnectivityNode.name = `Stpschiene CN ${nsgStpschiene.stpschiene}`;
2721
+ doConnectivityNode.identifiedObjectUUID = cimObjectUUID;
2722
+ this.addExportedDiagramObjectToGraph(nsgStpschiene.variantennr, nsgStpschiene.id, doConnectivityNode);
2723
+ const doJunction = new DiagramObject_1.DiagramObject(common_utils_1.CommonUtils.generateUUID(), `Stpschiene ${nsgStpschiene.id}`);
2724
+ doJunction.identifiedObjectUUID = junction.getUUID();
2725
+ doJunction.rotation = util_functions_1.DLUtilFunctions.getRotationBasedOnNsgSa(nsgStpschiene.ausrichtung);
2726
+ (0, utils_schema_1.copyDiagramObjectPoints)(doJunction, points);
2727
+ this.exportedTerminalUUIDs.add(junctionTerminal.getUUID());
2728
+ const doJunctionTerminal = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoints([[topLeft.xPosition, topLeft.yPosition], [...centerPosition]], null);
2729
+ doJunctionTerminal.identifiedObjectUUID = junctionTerminal.getUUID();
2730
+ return [doJunction, doJunctionTerminal, doConnectivityNode];
2731
+ }
2732
+ else {
2733
+ const doBusbarSectionAsConnectivityNode = new DiagramObject_1.DiagramObject(common_utils_1.CommonUtils.generateUUID(), `Stpschiene CN ${nsgStpschiene.id}`);
2734
+ doBusbarSectionAsConnectivityNode.identifiedObjectUUID = cimObjectUUID;
2735
+ doBusbarSectionAsConnectivityNode.rotation = util_functions_1.DLUtilFunctions.getRotationBasedOnNsgSa(nsgStpschiene.ausrichtung);
2736
+ (0, utils_schema_1.copyDiagramObjectPoints)(doBusbarSectionAsConnectivityNode, points);
2737
+ this.addExportedDiagramObjectToGraph(nsgStpschiene.variantennr, nsgStpschiene.id, doBusbarSectionAsConnectivityNode);
2738
+ return [doBusbarSectionAsConnectivityNode];
2739
+ }
2740
+ });
2741
+ }
2742
+ /**
2743
+ * convertSchemaStpknoten
2744
+ */
2745
+ convertSchemaStpknoten(nsgStpknoten) {
2746
+ var _a, _b;
2747
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
2748
+ const resultingDiagramObjects = [];
2749
+ let leftUpperCornerOfNsgStpknoten = yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgstpknoten, nsgStpknoten);
2750
+ const coords = [...leftUpperCornerOfNsgStpknoten];
2751
+ switch (nsgStpknoten.ausrichtung) {
2752
+ case 0:
2753
+ case 2:
2754
+ coords[0] += 8;
2755
+ coords[1] += 16;
2756
+ break;
2757
+ case 1:
2758
+ case 3:
2759
+ coords[0] += 16;
2760
+ coords[1] += 8;
2761
+ break;
2762
+ }
2763
+ const cimObjectUUID = (_b = (_a = this.dbObjectKeyCimModelUuidGraph) === null || _a === void 0 ? void 0 : _a.getCimObjectIdFromDbKey(convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: nsgStpknoten.knoten })) !== null && _b !== void 0 ? _b : undefined;
2764
+ const doStpknoten = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint2({
2765
+ xPosition: coords[0],
2766
+ yPosition: coords[1],
2767
+ diagramObjectName: 'NsgStpknoten',
2768
+ identifiedObjectUUID: cimObjectUUID
2769
+ });
2770
+ this.addExportedDiagramObjectToGraph(nsgStpknoten.variantennr, nsgStpknoten.id, doStpknoten);
2771
+ resultingDiagramObjects.push(doStpknoten);
2772
+ // // TODO grounding
2773
+ // // check, if there is a ground that must be exported either
2774
+ // const netzKnoten1pelem = await this.dbObjectGraph.findFirstByAttributes(i7TableNames.netz_knoten1pelem, {
2775
+ // id: nsgStpknoten.knoten
2776
+ // });
2777
+ //
2778
+ // if (netzKnoten1pelem && netzKnoten1pelem.geerdet === 1) {
2779
+ //
2780
+ // }
2781
+ return resultingDiagramObjects;
2782
+ });
2783
+ }
2784
+ /**
2785
+ * convertSchemaStpimpedanz
2786
+ */
2787
+ convertSchemaStpimpedanz(nsgStpimpedanz) {
2788
+ var _a, _b;
2789
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
2790
+ const resultingDiagramObjects = [];
2791
+ let leftUpperCornerOfNsgStpimpedanz = yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgstpimpedanz, nsgStpimpedanz);
2792
+ const coords = [...leftUpperCornerOfNsgStpimpedanz];
2793
+ /* width and height by orientation zero */
2794
+ const width = 32;
2795
+ const height = 16;
2796
+ switch (nsgStpimpedanz.ausrichtung) {
2797
+ case 0:
2798
+ case 2:
2799
+ coords[0] += (width / 2);
2800
+ coords[1] += (height / 2);
2801
+ break;
2802
+ case 1:
2803
+ case 3:
2804
+ coords[0] += (height / 2);
2805
+ coords[1] += (width / 2);
2806
+ break;
2807
+ }
2808
+ const cimObjectUUID = (_b = (_a = this.dbObjectKeyCimModelUuidGraph) === null || _a === void 0 ? void 0 : _a.getCimObjectIdFromDbKey(convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: nsgStpimpedanz.kdrossel })) !== null && _b !== void 0 ? _b : undefined;
2809
+ const doStpknoten = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint2({
2810
+ xPosition: coords[0],
2811
+ yPosition: coords[1],
2812
+ diagramObjectName: 'NsgStpknoten',
2813
+ identifiedObjectUUID: cimObjectUUID
2814
+ });
2815
+ this.addExportedDiagramObjectToGraph(nsgStpimpedanz.variantennr, nsgStpimpedanz.id, doStpknoten);
2816
+ resultingDiagramObjects.push(doStpknoten);
2817
+ return resultingDiagramObjects;
2818
+ });
2819
+ }
2820
+ /**
2821
+ * convertSchemaStpschaltfeld
2822
+ */
2823
+ convertSchemaStpschaltfeldElemente(nsgStpschaltfeld) {
2824
+ var _a, _b, _c, _d;
2825
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
2826
+ const resultingDiagramObjects = [];
2827
+ const leftUpperCornerOfNsgStpSchaltfeld = yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgstpschaltfeld, nsgStpschaltfeld);
2828
+ const nsgStpschiene = yield this.dbObjectGraph.findObjectByKey(convert_graph_keys_1.i7TableNames.nsg_nsgstpschiene, convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, {
2829
+ variantennr: nsgStpschaltfeld.variantennr,
2830
+ id: nsgStpschaltfeld.nsgstpschiene
2831
+ });
2832
+ if (!nsgStpschiene)
2833
+ return;
2834
+ if (nsgStpschaltfeld.schaltfeld !== undefined) {
2835
+ const schaltelement1pelem = yield this.dbObjectGraph.findObjectByKey(convert_graph_keys_1.i7TableNames.netz_schaltelement1pelem, convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: nsgStpschaltfeld.schaltfeld });
2836
+ let bayOrientation = nsgStpschiene.ausrichtung;
2837
+ if (nsgStpschaltfeld.deltaausrichtung === 1) {
2838
+ bayOrientation = (bayOrientation + 2) % 4;
2839
+ }
2840
+ let rotationValue = null;
2841
+ const coordsEquipment = [...leftUpperCornerOfNsgStpSchaltfeld];
2842
+ const coordsConnectivityNodeBusbarSection = [...leftUpperCornerOfNsgStpSchaltfeld];
2843
+ const coordsConnectivityNodeBayEnd = [...leftUpperCornerOfNsgStpSchaltfeld];
2844
+ switch (bayOrientation) {
2845
+ case 0: // TOP
2846
+ rotationValue = 0;
2847
+ coordsEquipment[0] += 8;
2848
+ coordsEquipment[1] += 12;
2849
+ coordsConnectivityNodeBayEnd[0] += 8;
2850
+ // coordsConnectivityNodeBayEnd[1];
2851
+ coordsConnectivityNodeBusbarSection[0] += 8;
2852
+ coordsConnectivityNodeBusbarSection[1] += 20;
2853
+ break;
2854
+ case 1: // RIGHT
2855
+ rotationValue = 90;
2856
+ coordsEquipment[0] += 12;
2857
+ coordsEquipment[1] += 8;
2858
+ coordsConnectivityNodeBayEnd[0] += 24;
2859
+ coordsConnectivityNodeBayEnd[1] += 8;
2860
+ coordsConnectivityNodeBusbarSection[0] += 4;
2861
+ coordsConnectivityNodeBusbarSection[1] += 8;
2862
+ break;
2863
+ case 2: // BOTTOM
2864
+ rotationValue = 180;
2865
+ coordsEquipment[0] += 8;
2866
+ coordsEquipment[1] += 12;
2867
+ coordsConnectivityNodeBayEnd[0] += 8;
2868
+ coordsConnectivityNodeBayEnd[1] += 24;
2869
+ coordsConnectivityNodeBusbarSection[0] += 8;
2870
+ coordsConnectivityNodeBusbarSection[1] += 4;
2871
+ break;
2872
+ case 3: // LEFT
2873
+ rotationValue = 270;
2874
+ coordsEquipment[0] += 12;
2875
+ coordsEquipment[1] += 8;
2876
+ // coordsConnectivityNodeBayEnd[0];
2877
+ coordsConnectivityNodeBayEnd[1] += 8;
2878
+ coordsConnectivityNodeBusbarSection[0] += 20;
2879
+ coordsConnectivityNodeBusbarSection[1] += 8;
2880
+ break;
2881
+ }
2882
+ const equipmentUUID = (_b = (_a = this.dbObjectKeyCimModelUuidGraph) === null || _a === void 0 ? void 0 : _a.getCimObjectIdFromDbKey(convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: schaltelement1pelem.id })) !== null && _b !== void 0 ? _b : undefined;
2883
+ const doEquipment = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint2({
2884
+ xPosition: coordsEquipment[0],
2885
+ yPosition: coordsEquipment[1],
2886
+ rotation: rotationValue,
2887
+ diagramObjectName: `NsgStpschaltfeld-Node ${schaltelement1pelem.id}`,
2888
+ identifiedObjectUUID: equipmentUUID
2889
+ });
2890
+ const connectivityNodeBayEndUUID = (_d = (_c = this.dbObjectKeyCimModelUuidGraph) === null || _c === void 0 ? void 0 : _c.getCimObjectIdFromDbKey(convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: schaltelement1pelem.eknoten })) !== null && _d !== void 0 ? _d : undefined;
2891
+ const doConnectivityNodeBayEnd = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint2({
2892
+ xPosition: coordsConnectivityNodeBayEnd[0],
2893
+ yPosition: coordsConnectivityNodeBayEnd[1],
2894
+ diagramObjectName: `ConnectivityNodeBayEnd ${schaltelement1pelem.eknoten}`,
2895
+ identifiedObjectUUID: connectivityNodeBayEndUUID
2896
+ });
2897
+ const doTerminal1 = this.createTerminalDiagramObjectFromPoints({
2898
+ cePoints: [...coordsConnectivityNodeBusbarSection], cnPoints: [...coordsEquipment],
2899
+ terminalUuid: this.lookupTerminalUUID(schaltelement1pelem.aknoten, schaltelement1pelem.id)
2900
+ });
2901
+ resultingDiagramObjects.push(doTerminal1);
2902
+ const doTerminal2 = this.createTerminalDiagramObjectFromPoints({
2903
+ cePoints: [...coordsConnectivityNodeBayEnd], cnPoints: [...coordsEquipment],
2904
+ terminalUuid: this.lookupTerminalUUID(schaltelement1pelem.eknoten, schaltelement1pelem.id)
2905
+ });
2906
+ resultingDiagramObjects.push(doTerminal2);
2907
+ // this.addExportedDiagramObjectToGraph(nsgStpschaltfeld.variantennr, nsgStpschaltfeld.id, doStpknoten);
2908
+ resultingDiagramObjects.push(doEquipment);
2909
+ resultingDiagramObjects.push(doConnectivityNodeBayEnd);
2910
+ }
2911
+ return resultingDiagramObjects;
2912
+ });
2913
+ }
2914
+ /**
2915
+ * convertSchemaStp*-Terminals
2916
+ */
2917
+ convertSchemaStpTerminals(nsgStpknoten) {
2918
+ var _a, _b;
2919
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
2920
+ const resultingDiagramObjects = [];
2921
+ const cimObjectUUID = (_b = (_a = this.dbObjectKeyCimModelUuidGraph) === null || _a === void 0 ? void 0 : _a.getCimObjectIdFromDbKey(convert_graph_keys_1.i7SchemaKeyNames.IdOnlyKey, { id: nsgStpknoten.knoten })) !== null && _b !== void 0 ? _b : undefined;
2922
+ const doConnectivityNode = this.exportedDiagramObjectsGraph[nsgStpknoten.variantennr][nsgStpknoten.id];
2923
+ const connectivityNode = this.cimModelGraph.findObjectByUUID(doConnectivityNode.getIdentifiedObjectUUID());
2924
+ if (connectivityNode !== undefined) {
2925
+ for (const terminal of connectivityNode.terminals.values()) {
2926
+ if (this.exportedTerminalUUIDs.has(terminal.getUUID()))
2927
+ continue;
2928
+ const ceUUID = terminal.getConductingEquipmentUUID();
2929
+ const ceDbKeys = this.dbObjectKeyCimModelUuidGraph.getDbKeyDbFromCimObjectId(ceUUID);
2930
+ if (ceDbKeys.VariantenNrIdKey) {
2931
+ const ceDbKey = ceDbKeys.VariantenNrIdKey;
2932
+ const doConductingEquipment = this.exportedDiagramObjectsGraph[ceDbKey.variantennr][ceDbKey.id];
2933
+ }
2934
+ else if (ceDbKeys.IdOnlyKey) {
2935
+ }
2936
+ }
2937
+ }
2938
+ else {
2939
+ console.log(cimObjectUUID);
2940
+ }
2941
+ return resultingDiagramObjects;
2942
+ });
2943
+ }
1719
2944
  /* ---------- ---------- ---------- ---------- ---------- */
1720
2945
  //
1721
2946
  // utility functions
@@ -1729,9 +2954,15 @@ class DLConverterI7 {
1729
2954
  if (type === convert_graph_keys_1.i7TableNames.nsg_nsgknotenso) {
1730
2955
  return yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgknotenso, object);
1731
2956
  }
2957
+ else if (type === convert_graph_keys_1.i7TableNames.nsg_nsgknotenhgue) {
2958
+ return yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgknotenhgue, object);
2959
+ }
1732
2960
  else if (type === convert_graph_keys_1.i7TableNames.nsg_nsgschaltfeld) {
1733
2961
  return yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgschaltfeld, object);
1734
2962
  }
2963
+ else if (type === convert_graph_keys_1.i7TableNames.nsg_nsgquerzweig) {
2964
+ return yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgquerzweig, object);
2965
+ }
1735
2966
  });
1736
2967
  }
1737
2968
  getLeftUpperCornerOf(i7ObjectType, object, variantennr) {
@@ -1743,6 +2974,13 @@ class DLConverterI7 {
1743
2974
  return;
1744
2975
  return [nsgStandort.xrel + nsgKnotenSo.xrel, nsgStandort.yrel + nsgKnotenSo.yrel];
1745
2976
  }
2977
+ else if (i7ObjectType === convert_graph_keys_1.i7TableNames.nsg_nsgknotenhgue) {
2978
+ const nsgKnotenHgue = object;
2979
+ const nsgStandort = yield this.dbObjectGraph.findObjectByKey(convert_graph_keys_1.i7TableNames.nsg_nsgstandort, convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, { variantennr: nsgKnotenHgue.variantennr, id: nsgKnotenHgue.nsgso });
2980
+ if (!nsgStandort)
2981
+ return;
2982
+ return [nsgStandort.xrel + nsgKnotenHgue.xrel, nsgStandort.yrel + nsgKnotenHgue.yrel];
2983
+ }
1746
2984
  else if (i7ObjectType === convert_graph_keys_1.i7TableNames.nsg_nsgstandort) {
1747
2985
  /* ---------- ---------- ---------- */
1748
2986
  /* NsgStandort */
@@ -1908,6 +3146,203 @@ class DLConverterI7 {
1908
3146
  const nsgSchaltanlageCoords = yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgschaltanlage, nsgSchaltanlage);
1909
3147
  return util_functions_1.DLUtilFunctions.add(nsgSaabschnittCoords, nsgSchaltanlageCoords, nsgSchaltanlage.ausrichtung % 2 === 0 ? [8, 0] : [0, 8]);
1910
3148
  }
3149
+ else if (i7ObjectType === convert_graph_keys_1.i7TableNames.nsg_nsgstpschiene) {
3150
+ /* ---------- ---------- ---------- */
3151
+ /* NsgStpschiene */
3152
+ /* ---------- ---------- ---------- */
3153
+ const nsgStpschiene = object;
3154
+ const nsgStandort = yield this.dbObjectGraph.findObjectByKey(convert_graph_keys_1.i7TableNames.nsg_nsgstandort, convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, { variantennr: nsgStpschiene.variantennr, id: nsgStpschiene.nsgso });
3155
+ if (!nsgStandort)
3156
+ return;
3157
+ const coords = yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgstandort, nsgStandort);
3158
+ coords[0] += nsgStpschiene.xrel;
3159
+ coords[1] += nsgStpschiene.yrel;
3160
+ return coords;
3161
+ }
3162
+ else if (i7ObjectType === convert_graph_keys_1.i7TableNames.nsg_nsgtrafo2w || i7ObjectType === convert_graph_keys_1.i7TableNames.nsg_nsgtrafo3w) {
3163
+ /* ---------- ---------- ---------- */
3164
+ /* NsgTrafo{2w|3w}*/
3165
+ /* ---------- ---------- ---------- */
3166
+ const nsgTrafo = object;
3167
+ const nsgStandort = yield this.dbObjectGraph.findObjectByKey(convert_graph_keys_1.i7TableNames.nsg_nsgstandort, convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, { variantennr: nsgTrafo.variantennr, id: nsgTrafo.nsgso });
3168
+ if (!nsgStandort)
3169
+ return;
3170
+ const leftUpperCornerOfNsgSo = yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgstandort, nsgStandort);
3171
+ leftUpperCornerOfNsgSo[0] += nsgTrafo.xrel;
3172
+ leftUpperCornerOfNsgSo[1] += nsgTrafo.yrel;
3173
+ return leftUpperCornerOfNsgSo;
3174
+ }
3175
+ else if (i7ObjectType === convert_graph_keys_1.i7TableNames.nsg_nsgstpschaltfeld) {
3176
+ /* ---------- ---------- ---------- */
3177
+ /* NsgStpschaltfeld */
3178
+ /* ---------- ---------- ---------- */
3179
+ const nsgStpschaltfeld = object;
3180
+ const nsgStpschiene = yield this.dbObjectGraph.findObjectByKey(convert_graph_keys_1.i7TableNames.nsg_nsgstpschiene, convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, {
3181
+ variantennr: nsgStpschaltfeld.variantennr,
3182
+ id: nsgStpschaltfeld.nsgstpschiene
3183
+ });
3184
+ if (!nsgStpschiene)
3185
+ return;
3186
+ const leftUpperCornerOfNsgStpschiene = yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgstpschiene, nsgStpschiene);
3187
+ let orientation = nsgStpschiene.ausrichtung;
3188
+ if (nsgStpschaltfeld.deltaausrichtung === 1) {
3189
+ orientation = (orientation + 2) % 4;
3190
+ }
3191
+ let position = [...leftUpperCornerOfNsgStpschiene];
3192
+ let schaltfeldOffset;
3193
+ switch (nsgStpschiene.ausrichtung) {
3194
+ case 0:
3195
+ case 1:
3196
+ schaltfeldOffset = nsgStpschaltfeld.slotnummer * 16;
3197
+ break;
3198
+ case 2:
3199
+ case 3:
3200
+ schaltfeldOffset = (nsgStpschiene.laenge - nsgStpschaltfeld.slotnummer - 1) * 16;
3201
+ break;
3202
+ }
3203
+ switch (orientation) {
3204
+ case 0: // TOP
3205
+ position[0] += schaltfeldOffset;
3206
+ position[1] -= nsgStpschaltfeld.hoehe - 8;
3207
+ break;
3208
+ case 1: // RIGHT
3209
+ position[1] += schaltfeldOffset;
3210
+ break;
3211
+ case 2: // BOTTOM
3212
+ position[0] += schaltfeldOffset;
3213
+ break;
3214
+ case 3: // LEFT
3215
+ position[0] -= nsgStpschaltfeld.hoehe - 8;
3216
+ position[1] += schaltfeldOffset;
3217
+ break;
3218
+ }
3219
+ return position;
3220
+ }
3221
+ else if (i7ObjectType === convert_graph_keys_1.i7TableNames.nsg_nsgstpknoten) {
3222
+ /* ---------- ---------- ---------- */
3223
+ /* NsgStpknoten */
3224
+ /* ---------- ---------- ---------- */
3225
+ const nsgStpknoten = object;
3226
+ let leftUpperCornerOfNsgTrafo;
3227
+ const nsgTrafo2w = this.dbObjectGraph.findFirstByAttributes(convert_graph_keys_1.i7TableNames.nsg_nsgtrafo2w, {
3228
+ anschlussanf_stp: nsgStpknoten.id,
3229
+ anschlussend_stp: nsgStpknoten.id
3230
+ }, true);
3231
+ if (!nsgTrafo2w) {
3232
+ const nsgTrafo3w = this.dbObjectGraph.findFirstByAttributes(convert_graph_keys_1.i7TableNames.nsg_nsgtrafo3w, {
3233
+ anschlussanfw1: nsgStpknoten.id,
3234
+ anschlussanfw2: nsgStpknoten.id,
3235
+ anschlussanfw3: nsgStpknoten.id
3236
+ }, true);
3237
+ if (!nsgTrafo3w)
3238
+ return;
3239
+ leftUpperCornerOfNsgTrafo = yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgtrafo3w, nsgTrafo3w);
3240
+ }
3241
+ else {
3242
+ leftUpperCornerOfNsgTrafo = yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgtrafo2w, nsgTrafo2w);
3243
+ }
3244
+ if (!leftUpperCornerOfNsgTrafo)
3245
+ return;
3246
+ leftUpperCornerOfNsgTrafo[0] += nsgStpknoten.xrel;
3247
+ leftUpperCornerOfNsgTrafo[1] += nsgStpknoten.yrel;
3248
+ return leftUpperCornerOfNsgTrafo;
3249
+ }
3250
+ else if (i7ObjectType === convert_graph_keys_1.i7TableNames.nsg_nsgstpimpedanz) {
3251
+ /* ---------- ---------- ---------- */
3252
+ /* NsgStpimpedanz */
3253
+ /* ---------- ---------- ---------- */
3254
+ const nsgStpimpedanz = object;
3255
+ const nsgStpschaltfeld = yield this.dbObjectGraph.findObjectByKey(convert_graph_keys_1.i7TableNames.nsg_nsgstpschaltfeld, convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, {
3256
+ variantennr: nsgStpimpedanz.variantennr,
3257
+ id: nsgStpimpedanz.anschluss
3258
+ });
3259
+ if (!nsgStpschaltfeld)
3260
+ return;
3261
+ const coords = yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgstpschaltfeld, nsgStpschaltfeld);
3262
+ coords[0] += nsgStpimpedanz.xrel;
3263
+ coords[1] += nsgStpimpedanz.yrel;
3264
+ return coords;
3265
+ }
3266
+ else if (i7ObjectType === convert_graph_keys_1.i7TableNames.nsg_nsglkondensator) {
3267
+ /* ---------- ---------- ---------- */
3268
+ /* NsgLKondensator */
3269
+ /* ---------- ---------- ---------- */
3270
+ const nsgLKondensator = object;
3271
+ const nsgStandort = yield this.dbObjectGraph.findObjectByKey(convert_graph_keys_1.i7TableNames.nsg_nsgstandort, convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, { variantennr: nsgLKondensator.variantennr, id: nsgLKondensator.nsgso });
3272
+ if (!nsgStandort)
3273
+ return;
3274
+ const leftUpperCornerOfNsgSo = yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgstandort, nsgStandort);
3275
+ leftUpperCornerOfNsgSo[0] += nsgLKondensator.xrel;
3276
+ leftUpperCornerOfNsgSo[1] += nsgLKondensator.yrel;
3277
+ return leftUpperCornerOfNsgSo;
3278
+ }
3279
+ else if (i7ObjectType === convert_graph_keys_1.i7TableNames.nsg_nsgquerzweig) {
3280
+ /* ---------- ---------- ---------- */
3281
+ /* NsgQuerzweig */
3282
+ /* ---------- ---------- ---------- */
3283
+ const nsgQuerzweig = object;
3284
+ const typedResult = this.dbObjectGraph.findTypedFirstByKey(convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, {
3285
+ variantennr: nsgQuerzweig.variantennr, id: nsgQuerzweig.bezugsobjekt
3286
+ });
3287
+ if (!typedResult)
3288
+ return null;
3289
+ const { type, object: resultObject } = typedResult;
3290
+ let xPosition = nsgQuerzweig.xrel;
3291
+ let yPosition = nsgQuerzweig.yrel;
3292
+ if (type === convert_graph_keys_1.i7TableNames.nsg_nsgschaltfeld) {
3293
+ const nsgSchaltfeld = resultObject;
3294
+ const leftUpperCornerOfSchaltfeld = yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgschaltfeld, nsgSchaltfeld);
3295
+ return [xPosition + leftUpperCornerOfSchaltfeld[0], yPosition + leftUpperCornerOfSchaltfeld[1]];
3296
+ }
3297
+ else {
3298
+ return [undefined, undefined];
3299
+ }
3300
+ }
3301
+ return [undefined, undefined];
3302
+ });
3303
+ }
3304
+ getLeftUpperCornerOfLKupplungRssElement(nsgLKupplungRss, cornerOf) {
3305
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
3306
+ if (cornerOf.slot_anf || cornerOf.slot_end) {
3307
+ /* ---------- ---------- ---------- */
3308
+ /* slot_anf || slot_end*/
3309
+ /* ---------- ---------- ---------- */
3310
+ const nsgSaabschnittId = cornerOf.slot_anf ? nsgLKupplungRss.nsgsaa_anf : nsgLKupplungRss.nsgsaa_end;
3311
+ const slotIndex = cornerOf.slot_anf ? nsgLKupplungRss.slot_anf : nsgLKupplungRss.slot_end;
3312
+ const nsgSaabschnitt = yield this.dbObjectGraph.findObjectByKey(convert_graph_keys_1.i7TableNames.nsg_nsgsaabschnitt, convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, { variantennr: nsgLKupplungRss.variantennr, id: nsgSaabschnittId });
3313
+ if (!nsgSaabschnitt)
3314
+ return;
3315
+ const leftUpperCornerOfNsgSaabschnitt = yield this.getLeftUpperCornerOf(convert_graph_keys_1.i7TableNames.nsg_nsgsaabschnitt, nsgSaabschnitt);
3316
+ const nsgSchaltanlage = yield this.dbObjectGraph.findObjectByKey(convert_graph_keys_1.i7TableNames.nsg_nsgschaltanlage, convert_graph_keys_1.i7SchemaKeyNames.VariantenNrIdKey, { variantennr: nsgSaabschnitt.variantennr, id: nsgSaabschnitt.nsgsa });
3317
+ if (!nsgSchaltanlage)
3318
+ return;
3319
+ switch (nsgSchaltanlage.ausrichtung) {
3320
+ case 0:
3321
+ leftUpperCornerOfNsgSaabschnitt[0] += slotIndex * 16 - 8;
3322
+ leftUpperCornerOfNsgSaabschnitt[1] -= 8;
3323
+ break;
3324
+ case 1:
3325
+ leftUpperCornerOfNsgSaabschnitt[0] -= 8;
3326
+ leftUpperCornerOfNsgSaabschnitt[1] += slotIndex * 16 - 8;
3327
+ break;
3328
+ case 2:
3329
+ leftUpperCornerOfNsgSaabschnitt[0] += (nsgSaabschnitt.laenge - slotIndex - 1) * 16 - 8;
3330
+ leftUpperCornerOfNsgSaabschnitt[1] -= 8;
3331
+ break;
3332
+ case 3:
3333
+ leftUpperCornerOfNsgSaabschnitt[0] -= 8;
3334
+ leftUpperCornerOfNsgSaabschnitt[1] += (nsgSaabschnitt.laenge - slotIndex - 1) * 16 - 8;
3335
+ break;
3336
+ }
3337
+ return leftUpperCornerOfNsgSaabschnitt;
3338
+ }
3339
+ else if (cornerOf.self) {
3340
+ /* ---------- ---------- ---------- */
3341
+ /* self */
3342
+ /* ---------- ---------- ---------- */
3343
+ const leftUpperCornerOfSlotAnf = yield this.getLeftUpperCornerOfLKupplungRssElement(nsgLKupplungRss, { slot_anf: true });
3344
+ return [leftUpperCornerOfSlotAnf[0] + nsgLKupplungRss.xrel, leftUpperCornerOfSlotAnf[1] + nsgLKupplungRss.yrel];
3345
+ }
1911
3346
  return [undefined, undefined];
1912
3347
  });
1913
3348
  }
@@ -2024,14 +3459,61 @@ class DLConverterI7 {
2024
3459
  // if (!connectivityNode || !conductingEquipment) return null;
2025
3460
  if (!connectivityNode)
2026
3461
  return null;
2027
- const cnTerminals = [...connectivityNode.terminals.values()];
2028
- for (const cnTerminal of cnTerminals) {
2029
- if (cnTerminal.getConductingEquipmentUUID() === conductingEquipmentUUID) {
2030
- const terminalUUID = cnTerminal.getUUID();
2031
- return terminalUUID !== undefined ? terminalUUID : null;
3462
+ if (connectivityNode.terminals !== undefined) {
3463
+ const cnTerminals = [...connectivityNode.terminals.values()];
3464
+ for (const cnTerminal of cnTerminals) {
3465
+ if (cnTerminal.getConductingEquipmentUUID() === conductingEquipmentUUID) {
3466
+ const terminalUUID = cnTerminal.getUUID();
3467
+ return terminalUUID !== undefined ? terminalUUID : null;
3468
+ }
3469
+ }
3470
+ }
3471
+ // try a brute-force terminal lookup for dc terminals / pcc terminals
3472
+ const bruteForcedTerminalUUID = this.cimModelGraph.findTerminalUUID(conductingEquipmentUUID, connectivityNodeUUID);
3473
+ return bruteForcedTerminalUUID !== undefined ? bruteForcedTerminalUUID : null;
3474
+ }
3475
+ /**
3476
+ * returns three Uuids if those two ConductingEquipments are connected with each other
3477
+ * result is either [Terminal-UUID, ConnectivityNode-UUID, Terminal-UUID] or []
3478
+ */
3479
+ findConnectionAsUuidsBetweenTwoConductingEquipments(args) {
3480
+ const conductingEquipment1 = this.cimModelGraph.findObjectByUUID(args.conductingEquipment1Uuid);
3481
+ const conductingEquipment2 = this.cimModelGraph.findObjectByUUID(args.conductingEquipment2Uuid);
3482
+ if (!conductingEquipment1 || !conductingEquipment2) {
3483
+ return [];
3484
+ }
3485
+ if (conductingEquipment1.terminals !== undefined) {
3486
+ const ce1Terminals = [...conductingEquipment1.terminals.values()];
3487
+ for (const ce1Terminal of ce1Terminals) {
3488
+ const connectivityNode = this.cimModelGraph.findObjectByUUID(ce1Terminal.getConnectivityNodeUUID());
3489
+ if (connectivityNode.terminals !== undefined) {
3490
+ const cnTerminals = [...connectivityNode.terminals.values()];
3491
+ for (const cnTerminal of cnTerminals) {
3492
+ const tempConductingEquipmentUuid = cnTerminal.getConductingEquipmentUUID();
3493
+ if (tempConductingEquipmentUuid === args.conductingEquipment2Uuid) {
3494
+ return [ce1Terminal.getUUID(), connectivityNode.getUUID(), cnTerminal.getUUID()];
3495
+ }
3496
+ }
3497
+ }
2032
3498
  }
2033
3499
  }
2034
- return null;
3500
+ return [];
3501
+ }
3502
+ createTerminalDiagramObjectFromPoints(args) {
3503
+ if (args.points) {
3504
+ const terminalDiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoints([...args.points], null);
3505
+ terminalDiagramObject.identifiedObjectUUID = args.terminalUuid;
3506
+ if (args.name)
3507
+ terminalDiagramObject.name = args.name;
3508
+ return terminalDiagramObject;
3509
+ }
3510
+ else {
3511
+ const terminalDiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoints([[...args.cePoints], [...args.cnPoints]], null);
3512
+ terminalDiagramObject.identifiedObjectUUID = args.terminalUuid;
3513
+ if (args.name)
3514
+ terminalDiagramObject.name = args.name;
3515
+ return terminalDiagramObject;
3516
+ }
2035
3517
  }
2036
3518
  }
2037
3519
  exports.DLConverterI7 = DLConverterI7;