@enervance/insight-cim-model 0.0.47 → 0.0.48

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 (179) hide show
  1. package/README.md +41 -22
  2. package/dist/analysis/analysis-neplan/digi-ons.js +11 -2
  3. package/dist/analysis/analysis-neplan/digi-ons.js.map +1 -1
  4. package/dist/config/westnetz-integral7/integral7-load.config.js +1 -1
  5. package/dist/config/westnetz-integral7/integral7-load.config.js.map +1 -1
  6. package/dist/config/westnetz-neplan/callbacks/cb-connectivitynode.d.ts +4 -4
  7. package/dist/config/westnetz-neplan/callbacks/cb-connectivitynode.js +8 -13
  8. package/dist/config/westnetz-neplan/callbacks/cb-connectivitynode.js.map +1 -1
  9. package/dist/config/westnetz-neplan/property-handler-westenergy.config.d.ts +3 -3
  10. package/dist/constants/init-data/ASSET_HEALTH_EVENTS.d.ts +1 -1
  11. package/dist/constants/init-data/ASSET_HEALTH_EVENTS.js +55 -1
  12. package/dist/constants/init-data/ASSET_HEALTH_EVENTS.js.map +1 -1
  13. package/dist/constants/init-data/ASSSET_OWNER.d.ts +1 -1
  14. package/dist/constants/init-data/ASSSET_OWNER.js +18 -1
  15. package/dist/constants/init-data/ASSSET_OWNER.js.map +1 -1
  16. package/dist/constants/init-data/PSR_TYPES.d.ts +1 -1
  17. package/dist/constants/init-data/PSR_TYPES.js +99 -1
  18. package/dist/constants/init-data/PSR_TYPES.js.map +1 -1
  19. package/dist/constants/init-data/RZ.d.ts +1 -1
  20. package/dist/constants/init-data/RZ.js +54 -0
  21. package/dist/constants/init-data/RZ.js.map +1 -1
  22. package/dist/constants/init-data/xml/settings.d.ts +1 -1
  23. package/dist/constants/init-data/xml/settings.js +64 -0
  24. package/dist/constants/init-data/xml/settings.js.map +1 -1
  25. package/dist/constants/util-init.js +8 -0
  26. package/dist/constants/util-init.js.map +1 -1
  27. package/dist/converter/integral7/converter-i7.d.ts +10 -3
  28. package/dist/converter/integral7/converter-i7.js +1050 -300
  29. package/dist/converter/integral7/converter-i7.js.map +1 -1
  30. package/dist/converter/integral7/interface-i7/data-structures-i7.d.ts +15 -1
  31. package/dist/converter/integral7/interface-i7/data-structures-i7.js.map +1 -1
  32. package/dist/converter/integral7/interface-i7/export-frame-i7.d.ts +16 -1
  33. package/dist/converter/integral7/interface-i7/export-frame-i7.js +43 -1
  34. package/dist/converter/integral7/interface-i7/export-frame-i7.js.map +1 -1
  35. package/dist/converter/integral7/model/dl-utils/I7KnotenBeziehung.d.ts +7 -0
  36. package/dist/converter/integral7/model/dl-utils/I7KnotenBeziehung.js +7 -0
  37. package/dist/converter/integral7/model/dl-utils/I7KnotenBeziehung.js.map +1 -0
  38. package/dist/converter/integral7/model/dl-utils/QueryObjectSsabNsg.d.ts +16 -0
  39. package/dist/converter/integral7/model/dl-utils/QueryObjectSsabNsg.js +25 -0
  40. package/dist/converter/integral7/model/dl-utils/QueryObjectSsabNsg.js.map +1 -0
  41. package/dist/converter/integral7/model/dl-utils/constants.d.ts +68 -0
  42. package/dist/converter/integral7/model/dl-utils/constants.js +56 -0
  43. package/dist/converter/integral7/model/dl-utils/constants.js.map +1 -1
  44. package/dist/converter/integral7/model/dl-utils/util-functions.d.ts +26 -0
  45. package/dist/converter/integral7/model/dl-utils/util-functions.js +457 -0
  46. package/dist/converter/integral7/model/dl-utils/util-functions.js.map +1 -0
  47. package/dist/converter/integral7/model/integral/BaseClassTrafoNsg.d.ts +7 -0
  48. package/dist/converter/integral7/model/integral/BaseClassTrafoNsg.js +13 -0
  49. package/dist/converter/integral7/model/integral/BaseClassTrafoNsg.js.map +1 -0
  50. package/dist/converter/integral7/model/integral/SchaltanlageNSG.js.map +1 -1
  51. package/dist/converter/integral7/model/integral/SchaltfeldNsg.d.ts +3 -6
  52. package/dist/converter/integral7/model/integral/SchaltfeldNsg.js.map +1 -1
  53. package/dist/converter/integral7/model/integral/Trafo2wNsg.d.ts +9 -1
  54. package/dist/converter/integral7/model/integral/Trafo2wNsg.js +10 -1
  55. package/dist/converter/integral7/model/integral/Trafo2wNsg.js.map +1 -1
  56. package/dist/converter/integral7/model/integral/Trafo3w.d.ts +11 -0
  57. package/dist/converter/integral7/model/integral/Trafo3w.js +15 -0
  58. package/dist/converter/integral7/model/integral/Trafo3w.js.map +1 -0
  59. package/dist/converter/integral7/model/integral/Trafo3wNsg.d.ts +13 -0
  60. package/dist/converter/integral7/model/integral/Trafo3wNsg.js +19 -0
  61. package/dist/converter/integral7/model/integral/Trafo3wNsg.js.map +1 -0
  62. package/dist/converter/integral7/model/interfaces.d.ts +55 -16
  63. package/dist/converter/integral7/model/interfaces.js.map +1 -1
  64. package/dist/converter/integral7/sql/integral.sql.d.ts +10 -0
  65. package/dist/converter/integral7/sql/integral.sql.js +68 -18
  66. package/dist/converter/integral7/sql/integral.sql.js.map +1 -1
  67. package/dist/converter/integral7/utils-schema.d.ts +3 -1
  68. package/dist/converter/integral7/utils-schema.js +23 -1
  69. package/dist/converter/integral7/utils-schema.js.map +1 -1
  70. package/dist/converter/integral7/utils.js +29 -25
  71. package/dist/converter/integral7/utils.js.map +1 -1
  72. package/dist/etl/etl-neplan/etl-neplan-csv.js +48 -42
  73. package/dist/etl/etl-neplan/etl-neplan-csv.js.map +1 -1
  74. package/dist/etl/etl-neplan/etl-neplan-geo.js +16 -16
  75. package/dist/etl/etl-neplan/etl-neplan.js +17 -17
  76. package/dist/model/assetinfo/SwitchInfo.js +19 -19
  77. package/dist/model/assetinfo/WireInfo.js +3 -3
  78. package/dist/model/assets/Asset.js +30 -30
  79. package/dist/model/assets/AssetDeployment.js +48 -48
  80. package/dist/model/assets/Facility.js +36 -36
  81. package/dist/model/common/CoordinateSystem.js +17 -17
  82. package/dist/model/common/Location.js +22 -22
  83. package/dist/model/common/PositionPoint.js +25 -25
  84. package/dist/model/core/BaseVoltage.js +22 -22
  85. package/dist/model/core/Bay.js +22 -22
  86. package/dist/model/core/ConnectivityNode.js +26 -30
  87. package/dist/model/core/ConnectivityNode.js.map +1 -1
  88. package/dist/model/core/Feeder.js +29 -29
  89. package/dist/model/core/Substation.js +23 -23
  90. package/dist/model/core/Terminal.js +31 -31
  91. package/dist/model/core/VoltageLevel.js +20 -20
  92. package/dist/model/dc/DCLine.js +17 -17
  93. package/dist/model/diagram/Diagram.js +20 -20
  94. package/dist/model/diagram/DiagramObject.js +26 -26
  95. package/dist/model/diagram/DiagramObject.js.map +1 -1
  96. package/dist/model/diagram/DiagramObjectPoint.js +47 -47
  97. package/dist/model/equivalents/EquivalentInjection.js +1 -2
  98. package/dist/model/equivalents/EquivalentInjection.js.map +1 -1
  99. package/dist/model/extensions/amprion/assets/AMPRIONAssetCommunicationEquipment.js +22 -22
  100. package/dist/model/extensions/amprion/assets/AMPRIONAssetConstructionMaintenance.js +22 -22
  101. package/dist/model/extensions/amprion/assets/AMPRIONAssetPrimaryEquipment.js +22 -22
  102. package/dist/model/extensions/amprion/assets/AMPRIONAssetSecondaryEquipment.js +22 -22
  103. package/dist/model/extensions/amprion/assets/AMPRIONContractingAuthority.js +22 -22
  104. package/dist/model/extensions/amprion/assets/AMPRIONCountry.js +19 -19
  105. package/dist/model/extensions/amprion/assets/AMPRIONFacility.js +60 -60
  106. package/dist/model/extensions/amprion/assets/AMPRIONLeaseholder.js +22 -22
  107. package/dist/model/extensions/amprion/assets/AMPRIONLineDistrict.js +22 -22
  108. package/dist/model/extensions/amprion/assets/AMPRIONServiceProvider.js +22 -22
  109. package/dist/model/extensions/amprion/assets/AMPRIONSpanField.js +49 -49
  110. package/dist/model/extensions/amprion/assets/AMPRIONState.js +21 -21
  111. package/dist/model/extensions/amprion/assets/AMPRIONTower.js +50 -50
  112. package/dist/model/extensions/amprion/assets/AMPRIONWire.js +68 -68
  113. package/dist/model/extensions/amprion/core/AMPRIONBay.js +26 -26
  114. package/dist/model/extensions/amprion/core/AMPRIONLine.d.ts +1 -0
  115. package/dist/model/extensions/amprion/core/AMPRIONLine.js.map +1 -1
  116. package/dist/model/extensions/amprion/core/AMPRIONSubstation.js +25 -25
  117. package/dist/model/extensions/amprion/project/AMPRIONConstructionProject.js +4 -3
  118. package/dist/model/extensions/amprion/project/AMPRIONConstructionProject.js.map +1 -1
  119. package/dist/model/extensions/amprion/project/AMPRIONErpProjectStructure.d.ts +1 -0
  120. package/dist/model/extensions/amprion/project/AMPRIONErpProjectStructure.js +1 -0
  121. package/dist/model/extensions/amprion/project/AMPRIONErpProjectStructure.js.map +1 -1
  122. package/dist/model/extensions/enervance/assetinfo/EVWireInfo.js +38 -38
  123. package/dist/model/extensions/enervance/wires/EVACLineSubSegment.js +32 -32
  124. package/dist/model/extensions/integral/common/INTEGRALMultiplierFactor.js +17 -7
  125. package/dist/model/extensions/integral/common/INTEGRALMultiplierFactor.js.map +1 -1
  126. package/dist/model/extensions/integral/loadmodel/INTEGRALConformLoad.d.ts +1 -0
  127. package/dist/model/extensions/integral/loadmodel/INTEGRALConformLoad.js +11 -10
  128. package/dist/model/extensions/integral/loadmodel/INTEGRALConformLoad.js.map +1 -1
  129. package/dist/model/extensions/integral/wires/INTEGRALACLineSegment.js +1 -1
  130. package/dist/model/extensions/integral/wires/INTEGRALACLineSegment.js.map +1 -1
  131. package/dist/model/extensions/integral/wires/INTEGRALAsynchronousMachine.js +10 -12
  132. package/dist/model/extensions/integral/wires/INTEGRALAsynchronousMachine.js.map +1 -1
  133. package/dist/model/extensions/integral/wires/INTEGRALExternalNetworkInjection.js +11 -13
  134. package/dist/model/extensions/integral/wires/INTEGRALExternalNetworkInjection.js.map +1 -1
  135. package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine.d.ts +1 -0
  136. package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine.js +10 -9
  137. package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine.js.map +1 -1
  138. package/dist/model/extensions/neplan-westnetz/assets/WNFacility.js +33 -33
  139. package/dist/model/extensions/neplan-westnetz/assets/WNFacilityKind.d.ts +1 -1
  140. package/dist/model/extensions/neplan-westnetz/assets/WNFacilityKind.js +1 -1
  141. package/dist/model/extensions/neplan-westnetz/assets/WNFacilityKind.js.map +1 -1
  142. package/dist/model/extensions/neplan-westnetz/assets/WNWireInfo.js +40 -40
  143. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js +31 -31
  144. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js.map +1 -1
  145. package/dist/model/extensions/neplan-westnetz/core/WNFeeder.js +34 -34
  146. package/dist/model/extensions/neplan-westnetz/wires/WNACLineSegment.js +44 -44
  147. package/dist/model/extensions/neplan-westnetz/wires/WNEnergyConsumer.js +89 -89
  148. package/dist/model/generation/GeneratingUnit.js +36 -36
  149. package/dist/model/loadmodel/ConformLoadGroup.js +22 -22
  150. package/dist/model/loadmodel/LoadArea.js +21 -21
  151. package/dist/model/loadmodel/SubLoadArea.js +22 -22
  152. package/dist/model/operationallimits/CurrentLimit.js +19 -19
  153. package/dist/model/operationallimits/OperationalLimitSet.js +18 -18
  154. package/dist/model/operationallimits/OperationalLimitType.js +16 -16
  155. package/dist/model/statevariables/SvPowerFlow.js +20 -20
  156. package/dist/model/topology/TopologicalNode.js +25 -25
  157. package/dist/model/wires/BusbarSection.js +20 -20
  158. package/dist/model/wires/Disconnector.js +1 -1
  159. package/dist/model/wires/Disconnector.js.map +1 -1
  160. package/dist/model/wires/EnergyConsumer.js.map +1 -1
  161. package/dist/model/wires/EnergySource.js +45 -45
  162. package/dist/model/wires/LoadBreakSwitch.js +1 -1
  163. package/dist/model/wires/LoadBreakSwitch.js.map +1 -1
  164. package/dist/model/wires/PowerTransformer.js +27 -27
  165. package/dist/model/wires/PowerTransformerEnd.js +31 -31
  166. package/dist/model/wires/RegulatingControl.js +31 -31
  167. package/dist/model/wires/Switch.js +42 -37
  168. package/dist/model/wires/Switch.js.map +1 -1
  169. package/dist/util/sparql/sparql-utils.js +97 -97
  170. package/package.json +93 -93
  171. package/dist/converter/integral7/model/dl-utils/SsabNsg.d.ts +0 -30
  172. package/dist/converter/integral7/model/dl-utils/SsabNsg.js +0 -179
  173. package/dist/converter/integral7/model/dl-utils/SsabNsg.js.map +0 -1
  174. package/dist/converter/integral7/model/integral/Multiplikationsfaktor.d.ts +0 -7
  175. package/dist/converter/integral7/model/integral/Multiplikationsfaktor.js +0 -11
  176. package/dist/converter/integral7/model/integral/Multiplikationsfaktor.js.map +0 -1
  177. package/dist/converter/integral7/model/integral/NetzObjektBez.d.ts +0 -10
  178. package/dist/converter/integral7/model/integral/NetzObjektBez.js +0 -13
  179. package/dist/converter/integral7/model/integral/NetzObjektBez.js.map +0 -1
@@ -0,0 +1,457 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DLUtilFunctions = void 0;
4
+ const constants_1 = require("./constants");
5
+ const utils_1 = require("../../../../util/utils");
6
+ const utils_schema_1 = require("../../utils-schema");
7
+ const integral_sql_1 = require("../../sql/integral.sql");
8
+ const DiagramObject_1 = require("../../../../model/diagram/DiagramObject");
9
+ const QueryObjectSsabNsg_1 = require("./QueryObjectSsabNsg");
10
+ const DiagramObjectPoint_1 = require("../../../../model/diagram/DiagramObjectPoint");
11
+ class DLUtilFunctions {
12
+ static rotateDiagramObjectPoint(point, angle) {
13
+ const radiansAngle = -angle * (Math.PI / 180);
14
+ const coords = [point.xPosition, point.yPosition];
15
+ const rotMat = [
16
+ [Math.cos(radiansAngle), -Math.sin(radiansAngle)],
17
+ [Math.sin(radiansAngle), Math.cos(radiansAngle)]
18
+ ];
19
+ const resultCoords = [0, 0];
20
+ for (let a = 0; a < rotMat.length; a++) {
21
+ for (let b = 0; b < rotMat[a].length; b++) {
22
+ resultCoords[a] += rotMat[a][b] * coords[b];
23
+ }
24
+ }
25
+ const amountOfDecimals = 100;
26
+ point.xPosition = Math.round(resultCoords[0] * amountOfDecimals) / amountOfDecimals;
27
+ point.yPosition = Math.round(resultCoords[1] * amountOfDecimals) / amountOfDecimals;
28
+ }
29
+ static shiftAddBasedOnNsgSo(cimModel, integral7, variantenNr, nsgSoID, uuidPointsMap) {
30
+ const nsgSo = integral7.integralNSGStandorte.get(nsgSoID);
31
+ uuidPointsMap.forEach((entryDiagramObject, key) => {
32
+ entryDiagramObject.diagramObjectPoints.forEach(entryDiagramObjectPoint => {
33
+ entryDiagramObjectPoint.xPosition += nsgSo.xrel;
34
+ entryDiagramObjectPoint.yPosition += nsgSo.yrel;
35
+ });
36
+ });
37
+ this.addi7ObjectToCIMModel(uuidPointsMap, cimModel, integral7, variantenNr);
38
+ }
39
+ static getRotationBasedOnNsgSa(orientationNsgSa) {
40
+ return (orientationNsgSa * 90 + 90) % 360;
41
+ }
42
+ static getRotationBasedOnTrafo2W(orientationTrafo2w) {
43
+ return (orientationTrafo2w * 90 + 90) % 360;
44
+ }
45
+ static getRotationBasedOnQuerzweig(orientationQuerzweig) {
46
+ return (orientationQuerzweig * 90 + 270) % 360;
47
+ }
48
+ static getRotationBasedOnNsgSaNsgSf(orientationNsgSa, orientationNsgSf) {
49
+ const nsgSaDegrees = DLUtilFunctions.getRotationBasedOnNsgSa(orientationNsgSa);
50
+ const nsgSfDegrees = orientationNsgSf === 0 ? -90 : 90;
51
+ return (360 + nsgSaDegrees + nsgSfDegrees) % 360;
52
+ }
53
+ static rotateShiftAddBasedOnNsgSAA(cimModel, integral7, variantenNr, nsgSaaID, uuidPointsMap, useLeftOffset = false) {
54
+ const nsgSaa = integral7.integralNSGSAAbschnitt.get(nsgSaaID);
55
+ const nsgSa = integral7.integralNSGSchaltanlage.get(nsgSaa.nsgsaid);
56
+ const nsgSo = integral7.integralNSGStandorte.get(nsgSa.nsgsoid);
57
+ let saaShiftOffset = 0;
58
+ for (const tempNsgSaa of nsgSa.saabNsg) {
59
+ saaShiftOffset = saaShiftOffset < (tempNsgSaa.nslots + tempNsgSaa.laenge) ? (tempNsgSaa.nslots + tempNsgSaa.laenge) : saaShiftOffset;
60
+ }
61
+ uuidPointsMap.forEach((entryDiagramObject, key) => {
62
+ entryDiagramObject.diagramObjectPoints.forEach(entryDiagramObjectPoint => {
63
+ entryDiagramObjectPoint.xPosition += useLeftOffset ? nsgSaa.nslots * constants_1.NsgConstants.HORIZONTAL_OFFSET : 0;
64
+ DLUtilFunctions.rotateDiagramObjectPoint(entryDiagramObjectPoint, -90 * nsgSa.ausrichtung);
65
+ entryDiagramObjectPoint.xPosition += nsgSo.xrel + nsgSa.xrel + (nsgSa.ausrichtung === 2 ? saaShiftOffset * constants_1.NsgConstants.HORIZONTAL_OFFSET : 0);
66
+ entryDiagramObjectPoint.yPosition += nsgSo.yrel + nsgSa.yrel + (nsgSa.ausrichtung === 3 ? saaShiftOffset * constants_1.NsgConstants.HORIZONTAL_OFFSET : 0);
67
+ });
68
+ });
69
+ this.addi7ObjectToCIMModel(uuidPointsMap, cimModel, integral7, variantenNr);
70
+ }
71
+ static addi7ObjectToCIMModel(uuidPointsMap, cimModel, integral7, variantenNr) {
72
+ for (const nodePointEntry of uuidPointsMap.entries()) {
73
+ const cimObject = cimModel.getObject(nodePointEntry[0]);
74
+ const diagram = cimModel.getDiagram(integral7.i7SchemaID2UUID.get(variantenNr));
75
+ const diagramObject = new DiagramObject_1.DiagramObject(utils_1.getUUID(undefined));
76
+ if (cimObject !== undefined) {
77
+ diagramObject.name = `${cimObject.name} DiagramObject`;
78
+ diagramObject.setIdentifiedObject(cimObject);
79
+ }
80
+ else {
81
+ diagramObject.name = `${diagramObject.identifiedObjectUUID} DiagramObject`;
82
+ diagramObject.setIdentifiedObjectUUID(nodePointEntry[0]);
83
+ }
84
+ diagramObject.setDiagram(diagram);
85
+ diagram.addDiagramObject(diagramObject);
86
+ utils_schema_1.copyDiagramObject(diagramObject, nodePointEntry[1]);
87
+ integral7.placedCIMObjectsForDLProfil.set(nodePointEntry[0], diagramObject);
88
+ }
89
+ }
90
+ static placeKupplung(i7KnotenBeziehungen, uuidPointsMap, cimModel, relevantSSabIDs, integralNSGSsab, integralID2UUID, placedCIMObjectsForDLProfil, kpFeldDeltaausrichtung, kpFeldLeftOffset, isLKupplung) {
91
+ const nodePointMap = new Map();
92
+ const maxSSabPos = Math.max(...[...integralNSGSsab.values()].map(ssab => ssab.posSSAB));
93
+ const containsLeistungsschalter = i7KnotenBeziehungen.find(entry => entry.knotenTyp === integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.LEISTUNGSSCHALTER]) !== undefined;
94
+ const initialNodes = i7KnotenBeziehungen.filter(elem => relevantSSabIDs.has(elem.aknoten));
95
+ const defaultWidthOfKupplung = 2 * constants_1.NsgConstants.HORIZONTAL_OFFSET;
96
+ for (const initialNode of initialNodes) {
97
+ if (nodePointMap.get(initialNode.id) || placedCIMObjectsForDLProfil.has(integralID2UUID.get(initialNode.id))) {
98
+ continue;
99
+ }
100
+ let tempNodePoints = new Map();
101
+ let tempNodeSSABConnectedMap = new Map();
102
+ let connectionLength = 0;
103
+ let lastNode = null;
104
+ let crtNode = initialNode;
105
+ while (crtNode) {
106
+ connectionLength += 1;
107
+ lastNode = crtNode;
108
+ crtNode = i7KnotenBeziehungen.find(elem => elem.aknoten === crtNode.eknoten);
109
+ }
110
+ let isUniversal = false;
111
+ let lastNodeLeistungsschalter = false;
112
+ if (relevantSSabIDs.has(lastNode.eknoten)) {
113
+ }
114
+ else {
115
+ if (i7KnotenBeziehungen.find(elem => elem.eknoten === lastNode.eknoten && elem !== lastNode)) {
116
+ isUniversal = true;
117
+ lastNodeLeistungsschalter = (lastNode.knotenTyp === integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.LEISTUNGSSCHALTER]);
118
+ if (lastNodeLeistungsschalter) {
119
+ connectionLength += 1;
120
+ }
121
+ }
122
+ }
123
+ let yVecLength = undefined;
124
+ let ssabAnfYPos = undefined;
125
+ if (isLKupplung && !isUniversal) {
126
+ ssabAnfYPos = QueryObjectSsabNsg_1.QueryObjectSsabNsg.getBottomRightPoint(integralNSGSsab.get(initialNode.aknoten)).y;
127
+ const ssabEndYPos = QueryObjectSsabNsg_1.QueryObjectSsabNsg.getTopLeftPoint(integralNSGSsab.get(lastNode.eknoten)).y;
128
+ yVecLength = ssabEndYPos - ssabAnfYPos;
129
+ }
130
+ let pointIndex = 0;
131
+ if (connectionLength == 1) {
132
+ pointIndex = 1;
133
+ connectionLength = 3;
134
+ }
135
+ lastNode = null;
136
+ crtNode = initialNode;
137
+ while (crtNode) {
138
+ if (nodePointMap.get(crtNode.id) === undefined) {
139
+ let xPos = (isUniversal && !lastNodeLeistungsschalter ? 1 : (pointIndex / (connectionLength - 1)));
140
+ let yPos = undefined;
141
+ if (isLKupplung && !isUniversal) {
142
+ yPos = ssabAnfYPos + yVecLength * (pointIndex / connectionLength);
143
+ }
144
+ else {
145
+ yPos = 0;
146
+ }
147
+ const crtNodeDiagramObject = new DiagramObject_1.DiagramObject();
148
+ crtNodeDiagramObject.diagramObjectPoints.push(new DiagramObjectPoint_1.DiagramObjectPoint(xPos, yPos));
149
+ nodePointMap.set(crtNode.id, crtNodeDiagramObject);
150
+ tempNodePoints.set(crtNode.id, crtNodeDiagramObject);
151
+ pointIndex += 1;
152
+ }
153
+ if (relevantSSabIDs.has(crtNode.aknoten) || relevantSSabIDs.has(crtNode.eknoten)) {
154
+ const ssab = relevantSSabIDs.has(crtNode.aknoten) ? integralNSGSsab.get(crtNode.aknoten) : integralNSGSsab.get(crtNode.eknoten);
155
+ tempNodeSSABConnectedMap.set(crtNode.id, ssab);
156
+ }
157
+ lastNode = crtNode;
158
+ crtNode = i7KnotenBeziehungen.find(elem => elem.aknoten === crtNode.eknoten);
159
+ }
160
+ let leftOffset = undefined;
161
+ if (!isLKupplung) {
162
+ leftOffset = kpFeldLeftOffset;
163
+ }
164
+ else {
165
+ if (isUniversal && !lastNodeLeistungsschalter) {
166
+ leftOffset = QueryObjectSsabNsg_1.QueryObjectSsabNsg.getTopLeftPoint(tempNodeSSABConnectedMap.get(initialNode.id)).x;
167
+ }
168
+ else {
169
+ leftOffset = QueryObjectSsabNsg_1.QueryObjectSsabNsg.getBottomRightPoint(tempNodeSSABConnectedMap.get(initialNode.id)).x;
170
+ }
171
+ }
172
+ for (const tempNodePointEntry of tempNodePoints) {
173
+ if (isLKupplung && isUniversal && !lastNodeLeistungsschalter) {
174
+ tempNodePointEntry[1].diagramObjectPoints[0].xPosition = leftOffset;
175
+ }
176
+ else {
177
+ tempNodePointEntry[1].diagramObjectPoints[0].xPosition = (tempNodePointEntry[1].diagramObjectPoints[0].xPosition * defaultWidthOfKupplung) + leftOffset;
178
+ }
179
+ if (tempNodePointEntry[0] === initialNode.id && isUniversal && !lastNodeLeistungsschalter) {
180
+ tempNodePointEntry[1].diagramObjectPoints[0].xPosition -= (constants_1.NsgConstants.HORIZONTAL_OFFSET / 4);
181
+ }
182
+ else if (tempNodePointEntry[0] === initialNode.id && isUniversal) {
183
+ tempNodePointEntry[1].diagramObjectPoints[0].xPosition += (constants_1.NsgConstants.HORIZONTAL_OFFSET / 4);
184
+ }
185
+ }
186
+ if (!isUniversal) {
187
+ tempNodePoints.get(initialNode.id).diagramObjectPoints[0].xPosition += (constants_1.NsgConstants.HORIZONTAL_OFFSET / (connectionLength));
188
+ tempNodePoints.get(lastNode.id).diagramObjectPoints[0].xPosition -= (constants_1.NsgConstants.HORIZONTAL_OFFSET / (connectionLength));
189
+ }
190
+ tempNodePoints.forEach((value, key) => value.rotation = 90);
191
+ if (!isLKupplung) {
192
+ for (const tempNodePointEntry of tempNodePoints) {
193
+ if (tempNodeSSABConnectedMap.get(tempNodePointEntry[0]) && containsLeistungsschalter) {
194
+ tempNodePointEntry[1].diagramObjectPoints[0].yPosition = tempNodeSSABConnectedMap.get(tempNodePointEntry[0]).posSSAB * constants_1.NsgConstants.VERTICAL_OFFSET;
195
+ const tempNode = i7KnotenBeziehungen.find(elem => elem.id === tempNodePointEntry[0]);
196
+ if (relevantSSabIDs.has(tempNode.eknoten)) {
197
+ tempNodePointEntry[1].rotation = kpFeldDeltaausrichtung === 0 ? 180 : 0;
198
+ }
199
+ else {
200
+ tempNodePointEntry[1].rotation = kpFeldDeltaausrichtung === 0 ? 0 : 180;
201
+ }
202
+ }
203
+ else {
204
+ const ssabOffset = kpFeldDeltaausrichtung === 0 ? 0 : maxSSabPos;
205
+ const yOffsetMaxPosSSAB = ((kpFeldDeltaausrichtung === 0 ? -1 : 1) * (1) + ssabOffset) * constants_1.NsgConstants.VERTICAL_OFFSET;
206
+ tempNodePointEntry[1].diagramObjectPoints[0].yPosition = yOffsetMaxPosSSAB;
207
+ if (isUniversal) {
208
+ tempNodePointEntry[1].rotation = kpFeldDeltaausrichtung === 0 ? 0 : 180;
209
+ }
210
+ }
211
+ }
212
+ }
213
+ else {
214
+ if (isUniversal) {
215
+ for (const tempNodePointEntry of tempNodePoints) {
216
+ if (tempNodeSSABConnectedMap.get(tempNodePointEntry[0]) && containsLeistungsschalter) {
217
+ tempNodePointEntry[1].diagramObjectPoints[0].yPosition = tempNodeSSABConnectedMap.get(tempNodePointEntry[0]).posSSAB * constants_1.NsgConstants.VERTICAL_OFFSET;
218
+ tempNodePointEntry[1].rotation = 0;
219
+ }
220
+ else {
221
+ const yOffsetMaxPosSSAB = -1 * maxSSabPos * constants_1.NsgConstants.VERTICAL_OFFSET;
222
+ tempNodePointEntry[1].diagramObjectPoints[0].yPosition = yOffsetMaxPosSSAB;
223
+ }
224
+ }
225
+ }
226
+ else {
227
+ }
228
+ }
229
+ let prevNode = null;
230
+ crtNode = initialNode;
231
+ while (crtNode) {
232
+ if (!relevantSSabIDs.has(crtNode.aknoten)) {
233
+ const aKnotenUUID = integralID2UUID.get(crtNode.aknoten);
234
+ const eKnotenUUID = integralID2UUID.get(crtNode.eknoten);
235
+ if (!placedCIMObjectsForDLProfil.has(aKnotenUUID) && !nodePointMap.has(crtNode.aknoten)) {
236
+ const prevNodePoint = nodePointMap.get(prevNode.id);
237
+ const crtNodePoint = nodePointMap.get(crtNode.id);
238
+ nodePointMap.set(crtNode.aknoten, DLUtilFunctions.createDiagramObjectWithPoint((prevNodePoint.diagramObjectPoints[0].xPosition + crtNodePoint.diagramObjectPoints[0].xPosition) / 2, (prevNodePoint.diagramObjectPoints[0].yPosition + crtNodePoint.diagramObjectPoints[0].yPosition) / 2));
239
+ if (isLKupplung) {
240
+ if (isUniversal) {
241
+ if (relevantSSabIDs.has(prevNode.aknoten) && !relevantSSabIDs.has(crtNode.eknoten)) {
242
+ nodePointMap.set(crtNode.aknoten, DLUtilFunctions.createDiagramObjectWithPoint(nodePointMap.get(prevNode.id).diagramObjectPoints[0].xPosition, nodePointMap.get(crtNode.id).diagramObjectPoints[0].yPosition));
243
+ }
244
+ }
245
+ }
246
+ else {
247
+ if (relevantSSabIDs.has(prevNode.aknoten) && !relevantSSabIDs.has(crtNode.eknoten)) {
248
+ nodePointMap.set(crtNode.aknoten, DLUtilFunctions.createDiagramObjectWithPoint(nodePointMap.get(prevNode.id).diagramObjectPoints[0].xPosition, nodePointMap.get(crtNode.id).diagramObjectPoints[0].yPosition));
249
+ }
250
+ else if (relevantSSabIDs.has(crtNode.eknoten) && !relevantSSabIDs.has(prevNode.aknoten)) {
251
+ nodePointMap.set(crtNode.aknoten, DLUtilFunctions.createDiagramObjectWithPoint(nodePointMap.get(crtNode.id).diagramObjectPoints[0].xPosition, nodePointMap.get(prevNode.id).diagramObjectPoints[0].yPosition));
252
+ }
253
+ }
254
+ }
255
+ }
256
+ if (isUniversal && !placedCIMObjectsForDLProfil.has(integralID2UUID.get(crtNode.eknoten)) && !nodePointMap.has(crtNode.eknoten)) {
257
+ if (containsLeistungsschalter && !relevantSSabIDs.has(crtNode.aknoten)) {
258
+ const xExtraOffset = 0.75 * constants_1.NsgConstants.HORIZONTAL_OFFSET;
259
+ nodePointMap.set(crtNode.eknoten, DLUtilFunctions.createDiagramObjectWithPoint(nodePointMap.get(crtNode.id).diagramObjectPoints[0].xPosition + xExtraOffset, nodePointMap.get(crtNode.id).diagramObjectPoints[0].yPosition));
260
+ }
261
+ else {
262
+ if (relevantSSabIDs.has(crtNode.aknoten) && !relevantSSabIDs.has(crtNode.eknoten)) {
263
+ let yOffsetMaxPosSSAB = undefined;
264
+ if (!isLKupplung) {
265
+ const ssabOffset = kpFeldDeltaausrichtung === 0 ? 0 : maxSSabPos;
266
+ yOffsetMaxPosSSAB = ((kpFeldDeltaausrichtung === 0 ? -1 : 1) * (1) + ssabOffset) * constants_1.NsgConstants.VERTICAL_OFFSET;
267
+ }
268
+ else {
269
+ yOffsetMaxPosSSAB = -1 * maxSSabPos * constants_1.NsgConstants.VERTICAL_OFFSET;
270
+ }
271
+ nodePointMap.set(crtNode.eknoten, DLUtilFunctions.createDiagramObjectWithPoint(nodePointMap.get(crtNode.id).diagramObjectPoints[0].xPosition, yOffsetMaxPosSSAB));
272
+ }
273
+ }
274
+ }
275
+ prevNode = crtNode;
276
+ crtNode = i7KnotenBeziehungen.find(elem => elem.aknoten === crtNode.eknoten);
277
+ }
278
+ crtNode = initialNode;
279
+ while (crtNode) {
280
+ let aKnotenPos = undefined;
281
+ let eKnotenPos = undefined;
282
+ if (!isLKupplung) {
283
+ if (relevantSSabIDs.has(crtNode.aknoten)) {
284
+ aKnotenPos = new DiagramObjectPoint_1.DiagramObjectPoint(((containsLeistungsschalter) ? nodePointMap.get(crtNode.id).diagramObjectPoints[0].xPosition : leftOffset), integralNSGSsab.get(crtNode.aknoten).posSSAB * constants_1.NsgConstants.VERTICAL_OFFSET);
285
+ }
286
+ if (relevantSSabIDs.has(crtNode.eknoten)) {
287
+ eKnotenPos = new DiagramObjectPoint_1.DiagramObjectPoint(((containsLeistungsschalter) ? nodePointMap.get(crtNode.id).diagramObjectPoints[0].xPosition : leftOffset + defaultWidthOfKupplung), integralNSGSsab.get(crtNode.eknoten).posSSAB * constants_1.NsgConstants.VERTICAL_OFFSET);
288
+ }
289
+ }
290
+ else {
291
+ if (relevantSSabIDs.has(crtNode.aknoten)) {
292
+ if (isUniversal) {
293
+ aKnotenPos = new DiagramObjectPoint_1.DiagramObjectPoint(nodePointMap.get(crtNode.id).diagramObjectPoints[0].xPosition, integralNSGSsab.get(crtNode.aknoten).posSSAB * constants_1.NsgConstants.VERTICAL_OFFSET);
294
+ }
295
+ else {
296
+ aKnotenPos = new DiagramObjectPoint_1.DiagramObjectPoint(QueryObjectSsabNsg_1.QueryObjectSsabNsg.getBottomRightPoint(integralNSGSsab.get(crtNode.aknoten)).x, integralNSGSsab.get(crtNode.aknoten).posSSAB * constants_1.NsgConstants.VERTICAL_OFFSET);
297
+ }
298
+ }
299
+ if (relevantSSabIDs.has(crtNode.eknoten)) {
300
+ if (isUniversal) {
301
+ eKnotenPos = new DiagramObjectPoint_1.DiagramObjectPoint(nodePointMap.get(crtNode.id).diagramObjectPoints[0].xPosition, integralNSGSsab.get(crtNode.eknoten).posSSAB * constants_1.NsgConstants.VERTICAL_OFFSET);
302
+ }
303
+ else {
304
+ eKnotenPos = new DiagramObjectPoint_1.DiagramObjectPoint(QueryObjectSsabNsg_1.QueryObjectSsabNsg.getTopLeftPoint(integralNSGSsab.get(crtNode.eknoten)).x, integralNSGSsab.get(crtNode.eknoten).posSSAB * constants_1.NsgConstants.VERTICAL_OFFSET);
305
+ }
306
+ }
307
+ }
308
+ DLUtilFunctions.exportTerminals(crtNode, nodePointMap, uuidPointsMap, cimModel, integralID2UUID, aKnotenPos, eKnotenPos);
309
+ lastNode = crtNode;
310
+ crtNode = i7KnotenBeziehungen.find(elem => elem.aknoten === crtNode.eknoten);
311
+ }
312
+ [...nodePointMap.entries()].forEach(entry => {
313
+ uuidPointsMap.set(integralID2UUID.get(entry[0]), entry[1]);
314
+ });
315
+ }
316
+ }
317
+ static exportTerminals(nodeRelation, nodePointMap, uuidPointsMap, cimModel, integralID2UUID, aKnotenPos = undefined, eKnotenPos = undefined) {
318
+ const ceTerminals = cimModel.getConductingEquipment(integralID2UUID.get(nodeRelation.id)).terminals;
319
+ let terminalDiagramObject;
320
+ let cnTerminals = cimModel.getConnectivityNode(integralID2UUID.get(nodeRelation.aknoten)).terminals;
321
+ let terminal = [...cnTerminals.values()].filter(t => ceTerminals.has(t.getUUID()))[0];
322
+ let cePoint = nodePointMap.get(nodeRelation.id).diagramObjectPoints[0];
323
+ terminalDiagramObject = DLUtilFunctions.createDiagramObjectWithPoint(cePoint.xPosition, cePoint.yPosition);
324
+ let cnPoint = aKnotenPos ? aKnotenPos : nodePointMap.get(nodeRelation.aknoten).diagramObjectPoints[0];
325
+ if (cnPoint.xPosition !== cePoint.xPosition && cnPoint.yPosition !== cePoint.yPosition) {
326
+ terminalDiagramObject.diagramObjectPoints.push(new DiagramObjectPoint_1.DiagramObjectPoint(cnPoint.xPosition, cePoint.yPosition));
327
+ }
328
+ terminalDiagramObject.diagramObjectPoints.push(new DiagramObjectPoint_1.DiagramObjectPoint(cnPoint.xPosition, cnPoint.yPosition));
329
+ DLUtilFunctions.adjustTerminalCEPosition(nodePointMap.get(nodeRelation.id), cnPoint, terminalDiagramObject.diagramObjectPoints[0]);
330
+ uuidPointsMap.set(terminal.getUUID(), terminalDiagramObject);
331
+ cnTerminals = cimModel.getConnectivityNode(integralID2UUID.get(nodeRelation.eknoten)).terminals;
332
+ terminal = [...cnTerminals.values()].filter(t => ceTerminals.has(t.getUUID()))[0];
333
+ cePoint = nodePointMap.get(nodeRelation.id).diagramObjectPoints[0];
334
+ terminalDiagramObject = DLUtilFunctions.createDiagramObjectWithPoint(cePoint.xPosition, cePoint.yPosition);
335
+ cnPoint = eKnotenPos ? eKnotenPos : nodePointMap.get(nodeRelation.eknoten).diagramObjectPoints[0];
336
+ if (cnPoint.xPosition !== cePoint.xPosition && cnPoint.yPosition !== cePoint.yPosition) {
337
+ terminalDiagramObject.diagramObjectPoints.push(new DiagramObjectPoint_1.DiagramObjectPoint(cnPoint.xPosition, cePoint.yPosition));
338
+ }
339
+ terminalDiagramObject.diagramObjectPoints.push(new DiagramObjectPoint_1.DiagramObjectPoint(cnPoint.xPosition, cnPoint.yPosition));
340
+ DLUtilFunctions.adjustTerminalCEPosition(nodePointMap.get(nodeRelation.id), cnPoint, terminalDiagramObject.diagramObjectPoints[0]);
341
+ uuidPointsMap.set(terminal.getUUID(), terminalDiagramObject);
342
+ }
343
+ static adjustTerminalCEPosition(ceDiagramObject, cnPoint, terminalDiagramObjectPoint) {
344
+ const isLeft = cnPoint.xPosition < terminalDiagramObjectPoint.xPosition;
345
+ const isTop = cnPoint.yPosition < terminalDiagramObjectPoint.yPosition;
346
+ const ceRotation = ceDiagramObject.rotation;
347
+ if (ceRotation === 0 || ceRotation === 180) {
348
+ terminalDiagramObjectPoint.yPosition += (isTop ? -1 : 1) * constants_1.NsgConstants.TERMINAL_CE_OFFSET;
349
+ }
350
+ else if (ceRotation === 90 || ceRotation === 270) {
351
+ terminalDiagramObjectPoint.xPosition += (isLeft ? -1 : 1) * constants_1.NsgConstants.TERMINAL_CE_OFFSET;
352
+ }
353
+ }
354
+ static createDiagramObjectWithPoint(x, y, rotation, sequenceNumber) {
355
+ const diagramObject = new DiagramObject_1.DiagramObject();
356
+ if (diagramObject !== undefined)
357
+ diagramObject.rotation = rotation;
358
+ diagramObject.diagramObjectPoints.push(new DiagramObjectPoint_1.DiagramObjectPoint(x, y));
359
+ if (sequenceNumber !== undefined)
360
+ diagramObject.diagramObjectPoints[0].sequenceNumber = sequenceNumber;
361
+ return diagramObject;
362
+ }
363
+ static createDiagramObjectWithPointArrayBased(xy, rotation) {
364
+ const diagramObject = new DiagramObject_1.DiagramObject();
365
+ diagramObject.rotation = rotation;
366
+ diagramObject.diagramObjectPoints.push(new DiagramObjectPoint_1.DiagramObjectPoint(xy[0], xy[1]));
367
+ return diagramObject;
368
+ }
369
+ static filterByVariantenNrOnlyEingeblendet(result, variantenNr, onlyEingeblendet) {
370
+ let filteredResults = result.filter(elem => elem.variantennr === variantenNr);
371
+ if (onlyEingeblendet) {
372
+ filteredResults = filteredResults.filter(elem => {
373
+ return (elem.eingeblendet === 1 || (elem.eingeblendet === null && elem.angezeigt === 1));
374
+ });
375
+ }
376
+ return filteredResults;
377
+ }
378
+ static getXYOffsetFromRelCM(type, integral7, anschlussID, nsgLeitungspkt) {
379
+ let xOffset = 0;
380
+ let yOffset = 0;
381
+ if (type === integral_sql_1.Integral7TableNames.NSG_SCHALTFELD) {
382
+ const nsgSchaltfeld = integral7.integralNSGSchaltfeld.get(anschlussID);
383
+ switch (nsgSchaltfeld.orientation) {
384
+ case 0:
385
+ xOffset = nsgLeitungspkt.abstand_rel_anchor_c;
386
+ yOffset = nsgLeitungspkt.abstand_rel_anchor_m * (-1);
387
+ break;
388
+ case 1:
389
+ xOffset = nsgLeitungspkt.abstand_rel_anchor_m;
390
+ yOffset = nsgLeitungspkt.abstand_rel_anchor_c;
391
+ break;
392
+ case 2:
393
+ xOffset = nsgLeitungspkt.abstand_rel_anchor_c * (-1);
394
+ yOffset = nsgLeitungspkt.abstand_rel_anchor_m;
395
+ break;
396
+ case 3:
397
+ xOffset = nsgLeitungspkt.abstand_rel_anchor_m * (-1);
398
+ yOffset = nsgLeitungspkt.abstand_rel_anchor_c * (-1);
399
+ break;
400
+ }
401
+ }
402
+ else if (type === integral_sql_1.Integral7TableNames.NSG_QUERZWEIG) {
403
+ const nsgQuerzweig = integral7.integralNSGQuerzweig.get(anschlussID);
404
+ switch (nsgQuerzweig.ausrichtung) {
405
+ case 0:
406
+ xOffset = nsgLeitungspkt.abstand_rel_anchor_c * (-1);
407
+ yOffset = nsgLeitungspkt.abstand_rel_anchor_m;
408
+ break;
409
+ case 1:
410
+ xOffset = nsgLeitungspkt.abstand_rel_anchor_m * (-1);
411
+ yOffset = nsgLeitungspkt.abstand_rel_anchor_c * (-1);
412
+ break;
413
+ case 2:
414
+ xOffset = nsgLeitungspkt.abstand_rel_anchor_c;
415
+ yOffset = nsgLeitungspkt.abstand_rel_anchor_m * (-1);
416
+ break;
417
+ case 3:
418
+ xOffset = nsgLeitungspkt.abstand_rel_anchor_m;
419
+ yOffset = nsgLeitungspkt.abstand_rel_anchor_c;
420
+ break;
421
+ }
422
+ }
423
+ else {
424
+ xOffset = nsgLeitungspkt.abstand_rel_anchor_c * (-1);
425
+ yOffset = nsgLeitungspkt.abstand_rel_anchor_m * (-1);
426
+ }
427
+ return [xOffset, yOffset];
428
+ }
429
+ static convertNsgKnoten(cimModel, integral7, data, refCimObjectUUID, width, height) {
430
+ const diagramUUID = integral7.i7SchemaID2UUID.get(data.variantennr);
431
+ const diagram = cimModel.getDiagram(diagramUUID);
432
+ const nsgStandort = integral7.integralNSGStandorte.get(data.nsgso);
433
+ if (!diagram || !nsgStandort) {
434
+ return;
435
+ }
436
+ const diagramObject = new DiagramObject_1.DiagramObject(utils_1.generateUUID(), 'Abzweig');
437
+ diagramObject.diagramUUID = diagramUUID;
438
+ diagramObject.setDiagram(diagram);
439
+ const diagramObjectPoint = new DiagramObjectPoint_1.DiagramObjectPoint(nsgStandort.xrel + data.xrel + (width / 2), nsgStandort.yrel + data.yrel + (height / 2));
440
+ diagramObjectPoint.mrid = utils_1.generateUUID();
441
+ diagramObjectPoint.diagramObject = diagramObject;
442
+ diagramObject.addDiagramObjectPoint(diagramObjectPoint);
443
+ cimModel.addDiagramObject(diagramObject);
444
+ cimModel.addDiagramObjectPoint(diagramObjectPoint);
445
+ if (refCimObjectUUID !== undefined) {
446
+ diagramObject.setIdentifiedObjectUUID(refCimObjectUUID);
447
+ integral7.placedCIMObjectsForDLProfil.set(refCimObjectUUID, diagramObject);
448
+ integral7.i7ID2UUID.set(data.id, refCimObjectUUID);
449
+ }
450
+ else {
451
+ integral7.i7ID2UUID.set(data.id, diagramObject.getUUID());
452
+ integral7.placedCIMObjectsForDLProfil.set(diagramObject.getUUID(), diagramObject);
453
+ }
454
+ }
455
+ }
456
+ exports.DLUtilFunctions = DLUtilFunctions;
457
+ //# sourceMappingURL=util-functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util-functions.js","sourceRoot":"","sources":["../../../../../src/converter/integral7/model/dl-utils/util-functions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { TrafoNsg } from '../interfaces';
2
+ import { BaseClassNsg } from './BaseClassNsg';
3
+ export declare class BaseClassTrafoNsg extends BaseClassNsg {
4
+ ausrichtung: number;
5
+ nsgsoid: number;
6
+ constructor(data: TrafoNsg);
7
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseClassTrafoNsg = void 0;
4
+ const BaseClassNsg_1 = require("./BaseClassNsg");
5
+ class BaseClassTrafoNsg extends BaseClassNsg_1.BaseClassNsg {
6
+ constructor(data) {
7
+ super(data);
8
+ this.nsgsoid = data.nsgso;
9
+ this.ausrichtung = data.ausrichtung;
10
+ }
11
+ }
12
+ exports.BaseClassTrafoNsg = BaseClassTrafoNsg;
13
+ //# sourceMappingURL=BaseClassTrafoNsg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseClassTrafoNsg.js","sourceRoot":"","sources":["../../../../../src/converter/integral7/model/integral/BaseClassTrafoNsg.ts"],"names":[],"mappings":";;;AACA,iDAA8C;AAE9C,MAAa,iBAAkB,SAAQ,2BAAY;IAQjD,YAAY,IAAc;QACxB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACtC,CAAC;CACF;AAbD,8CAaC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SchaltanlageNSG.js","sourceRoot":"","sources":["../../../../../src/converter/integral7/model/integral/SchaltanlageNSG.ts"],"names":[],"mappings":";;;AAAA,iDAA4C;AAM5C,MAAa,mBAAoB,SAAQ,2BAAY;IAanD,YAAY,IAAW;QACrB,KAAK,CAAC,IAAI,CAAC,CAAC;QAHd,YAAO,GAAgC,EAAE,CAAC;QAIxC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACtC,CAAC;CAGF;AArBD,kDAqBC"}
1
+ {"version":3,"file":"SchaltanlageNSG.js","sourceRoot":"","sources":["../../../../../src/converter/integral7/model/integral/SchaltanlageNSG.ts"],"names":[],"mappings":";;;AAAA,iDAA4C;AAM5C,MAAa,mBAAoB,SAAQ,2BAAY;IAcnD,YAAY,IAAW;QACrB,KAAK,CAAC,IAAI,CAAC,CAAC;QAHd,YAAO,GAAgC,EAAE,CAAC;QAIxC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACtC,CAAC;CAGF;AAtBD,kDAsBC"}
@@ -1,17 +1,14 @@
1
1
  import { BaseClassNsg } from './BaseClassNsg';
2
2
  import { NsgSchaltfeld } from '../interfaces';
3
- import { StandortImpl } from './Standort';
4
- import { SchaltanlagenabschnittNsg } from './SchaltanlagenabschnittNsg';
5
- import { SchaltfeldImpl } from './Schaltfeld';
6
3
  export declare class SchaltfeldNsgImpl extends BaseClassNsg {
7
4
  deltaausrichtung: number;
8
5
  slotnummer: number;
9
6
  hoehe: number;
10
- nsgsaa: SchaltanlagenabschnittNsg;
11
7
  nsgsaaid: number;
12
- schaltfeld: SchaltfeldImpl;
13
8
  schaltfeldid: number;
14
- standort: StandortImpl;
15
9
  standortid: number;
10
+ lastNodeID: number;
11
+ lastNodeCimUUID: string;
12
+ orientation: number;
16
13
  constructor(data: NsgSchaltfeld);
17
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SchaltfeldNsg.js","sourceRoot":"","sources":["../../../../../src/converter/integral7/model/integral/SchaltfeldNsg.ts"],"names":[],"mappings":";;;AAAA,iDAA4C;AAM5C,MAAa,iBAAkB,SAAQ,2BAAY;IAoBjD,YAAY,IAAmB;QAC7B,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;IACtC,CAAC;CACF;AA5BD,8CA4BC"}
1
+ {"version":3,"file":"SchaltfeldNsg.js","sourceRoot":"","sources":["../../../../../src/converter/integral7/model/integral/SchaltfeldNsg.ts"],"names":[],"mappings":";;;AAAA,iDAA4C;AAM5C,MAAa,iBAAkB,SAAQ,2BAAY;IAsBjD,YAAY,IAAmB;QAC7B,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;IACtC,CAAC;CACF;AA9BD,8CA8BC"}
@@ -1,2 +1,10 @@
1
- export declare class Trafo2wNsgImpl {
1
+ import { Trafo2wNsg } from '../interfaces';
2
+ import { BaseClassTrafoNsg } from './BaseClassTrafoNsg';
3
+ export declare class Trafo2wNsgImpl extends BaseClassTrafoNsg {
4
+ anschlussanf: number;
5
+ anschlussend: number;
6
+ anschlussanf_stp: number;
7
+ anschlussend_stp: number;
8
+ trafo2wid: number;
9
+ constructor(data: Trafo2wNsg);
2
10
  }
@@ -1,7 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Trafo2wNsgImpl = void 0;
4
- class Trafo2wNsgImpl {
4
+ const BaseClassTrafoNsg_1 = require("./BaseClassTrafoNsg");
5
+ class Trafo2wNsgImpl extends BaseClassTrafoNsg_1.BaseClassTrafoNsg {
6
+ constructor(data) {
7
+ super(data);
8
+ this.anschlussanf = data.anschlussanf;
9
+ this.anschlussend = data.anschlussend;
10
+ this.anschlussanf_stp = data.anschlussanf_stp;
11
+ this.anschlussend_stp = data.anschlussend_stp;
12
+ this.trafo2wid = data.trafo2w;
13
+ }
5
14
  }
6
15
  exports.Trafo2wNsgImpl = Trafo2wNsgImpl;
7
16
  //# sourceMappingURL=Trafo2wNsg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Trafo2wNsg.js","sourceRoot":"","sources":["../../../../../src/converter/integral7/model/integral/Trafo2wNsg.ts"],"names":[],"mappings":";;;AAAA,MAAa,cAAc;CAQ1B;AARD,wCAQC"}
1
+ {"version":3,"file":"Trafo2wNsg.js","sourceRoot":"","sources":["../../../../../src/converter/integral7/model/integral/Trafo2wNsg.ts"],"names":[],"mappings":";;;AAEA,2DAAwD;AAExD,MAAa,cAAe,SAAQ,qCAAiB;IAUnD,YAAY,IAAgB;QAC1B,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC9C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;IAChC,CAAC;CACF;AAlBD,wCAkBC"}
@@ -0,0 +1,11 @@
1
+ import { Trafo3w } from '../interfaces';
2
+ import { BaseClassImpl } from './BaseClass';
3
+ import { Trafo3wNsgImpl } from './Trafo3wNsg';
4
+ export declare class Trafo3wImpl extends BaseClassImpl {
5
+ trafo3wNsgid: number;
6
+ trafo3wNsg: Trafo3wNsgImpl;
7
+ trafowicklung3w1id: number;
8
+ trafowicklung3w2id: number;
9
+ trafowicklung3w3id: number;
10
+ constructor(data: Trafo3w);
11
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Trafo3wImpl = void 0;
4
+ const BaseClass_1 = require("./BaseClass");
5
+ class Trafo3wImpl extends BaseClass_1.BaseClassImpl {
6
+ constructor(data) {
7
+ super(data);
8
+ this.trafo3wNsgid = data.id;
9
+ this.trafowicklung3w1id = data.trafowicklung3w1;
10
+ this.trafowicklung3w2id = data.trafowicklung3w2;
11
+ this.trafowicklung3w3id = data.trafowicklung3w3;
12
+ }
13
+ }
14
+ exports.Trafo3wImpl = Trafo3wImpl;
15
+ //# sourceMappingURL=Trafo3w.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Trafo3w.js","sourceRoot":"","sources":["../../../../../src/converter/integral7/model/integral/Trafo3w.ts"],"names":[],"mappings":";;;AACA,2CAA4C;AAG5C,MAAa,WAAY,SAAQ,yBAAa;IAS5C,YAAY,IAAa;QACvB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAChD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAChD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC;IAClD,CAAC;CACF;AAhBD,kCAgBC"}