Skip to main content

cimmodel/generated/
nc_classes.rs

1// Generated by cimgen — do not edit by hand.
2#![allow(clippy::all, dead_code)]
3
4use crate::base::{AttrDef, AttrKind, ClassDef, EnumDef, EnumValueDef, Schema};
5
6/// Every class of the `nc` family. The index of a row is its class id.
7pub static CLASSES: &[ClassDef] = &[
8    ClassDef {
9        ns: "https://cim.ucaiug.io/ns#",
10        local: "ACDCConverter",
11        qualified: "nc:ACDCConverter",
12        super_class: Some(90),
13        concrete: false,
14        origins: &["ER", "RA", "SSI"],
15        comment: "A unit with valves for three phases, together with unit control equipment, essential protective and switching devices, DC storage capacitors, phase reactors and auxiliaries, if any, used for conversion.",
16        attrs: &[
17            AttrDef { id: "ACDCConverter.ACDCConverterController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ACDCConverterController", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Direct current controller which controls the ACDC converter." },
18            AttrDef { id: "ACDCConverter.DCConverterAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ACDCConverterAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The action that is applied to an ACDCConverter." },
19            AttrDef { id: "ACDCConverter.ExternalDCTerminal", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCTerminal", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The external terminal of the ACDCConverter." },
20            AttrDef { id: "ACDCConverter.baseS", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "ApparentPower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Base apparent power of the converter pole. The attribute shall be a positive value." },
21            AttrDef { id: "ACDCConverter.maxP", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Maximum active power limit. The value is overwritten by values of VsCapabilityCurve, if present." },
22            AttrDef { id: "ACDCConverter.maxUdc", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The maximum voltage on the DC side at which the converter should operate. It is converter’s configuration data used in power flow. The attribute shall be a positive value." },
23            AttrDef { id: "ACDCConverter.minP", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Minimum active power limit. The value is overwritten by values of VsCapabilityCurve, if present." },
24            AttrDef { id: "ACDCConverter.minUdc", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The minimum voltage on the DC side at which the converter should operate. It is converter’s configuration data used in power flow. The attribute shall be a positive value." },
25            AttrDef { id: "ACDCConverter.ratedUdc", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Rated converter DC voltage, also called UdN. The attribute shall be a positive value. It is converter’s configuration data used in power flow. For instance a bipolar HVDC link with value 200 kV has a 400kV difference between the dc lines." },
26        ],
27    },
28    ClassDef {
29        ns: "https://cim4.eu/ns/nc#",
30        local: "ACDCConverterAction",
31        qualified: "nc:ACDCConverterAction",
32        super_class: Some(507),
33        concrete: true,
34        origins: &["RA", "SSI"],
35        comment: "Alternate current Direct current (ACDC) converter action.",
36        attrs: &[
37            AttrDef { id: "ACDCConverterAction.ACDCConverter", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ACDCConverter", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The ACDCConverter that is associated with an action." },
38        ],
39    },
40    ClassDef {
41        ns: "https://cim4.eu/ns/nc#",
42        local: "ACDCConverterController",
43        qualified: "nc:ACDCConverterController",
44        super_class: Some(205),
45        concrete: true,
46        origins: &["ER"],
47        comment: "ACDC converter unit control. According to IEC 60633, it is the control system used for the controlling, monitoring and protection of a single converter unit.",
48        attrs: &[
49            AttrDef { id: "ACDCConverterController.ACDCConverter", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ACDCConverter", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "ACDC converter controlled by the direct current controller." },
50            AttrDef { id: "ACDCConverterController.DirectCurrentPoleController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DirectCurrentPoleController", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "DC pole controller that controls this ACDC controller." },
51            AttrDef { id: "ACDCConverterController.controlStrategy", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "ACDCConverterControlStrategyKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["ER"], comment: "High-level control strategy defining how the converter interacts with and regulates the connected AC system." },
52        ],
53    },
54    ClassDef {
55        ns: "https://cim4.eu/ns/nc#",
56        local: "ACDCConverterRegularSchedule",
57        qualified: "nc:ACDCConverterRegularSchedule",
58        super_class: Some(59),
59        concrete: false,
60        origins: &["SHS"],
61        comment: "Regular schedule for ACDC converter.",
62        attrs: &[
63            AttrDef { id: "ACDCConverterRegularSchedule.p", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Active power at the point of common coupling. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for a steady state solution in the case a simplified power flow model is used." },
64            AttrDef { id: "ACDCConverterRegularSchedule.q", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Reactive power at the point of common coupling. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for a steady state solution in the case a simplified power flow model is used." },
65            AttrDef { id: "ACDCConverterRegularSchedule.targetPpcc", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Real power injection target in AC grid, at point of common coupling. Load sign convention is used, i.e. positive sign means flow out from a node." },
66            AttrDef { id: "ACDCConverterRegularSchedule.targetUdc", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Target value for DC voltage magnitude. The attribute shall be a positive value." },
67        ],
68    },
69    ClassDef {
70        ns: "https://cim.ucaiug.io/ns#",
71        local: "ACDCTerminal",
72        qualified: "nc:ACDCTerminal",
73        super_class: Some(318),
74        concrete: false,
75        origins: &["ER", "RA", "SAR"],
76        comment: "An electrical connection point (AC or DC) to a piece of conducting equipment. Terminals are connected at physical connection points called connectivity nodes.",
77        attrs: &[
78            AttrDef { id: "ACDCTerminal.InfeedTerminal", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "InfeedTerminal", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Infeed terminal that is associated with an ACDCTerminal." },
79            AttrDef { id: "ACDCTerminal.OperationalLimitSet", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "OperationalLimitSet", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The operational limit sets at the terminal." },
80            AttrDef { id: "ACDCTerminal.PowerFlowResult", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerFlowResult", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SAR"], comment: "Power result associated with the ACDC terminal." },
81        ],
82    },
83    ClassDef {
84        ns: "https://cim4.eu/ns/nc#",
85        local: "ACDCTimePoint",
86        qualified: "nc:ACDCTimePoint",
87        super_class: None,
88        concrete: false,
89        origins: &["SHS"],
90        comment: "ACDC values for a given point in time.",
91        attrs: &[
92            AttrDef { id: "ACDCTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS"], comment: "The time the data is valid for." },
93            AttrDef { id: "ACDCTimePoint.p", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Active power at the point of common coupling. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for a steady state solution in the case a simplified power flow model is used." },
94            AttrDef { id: "ACDCTimePoint.q", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Reactive power at the point of common coupling. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for a steady state solution in the case a simplified power flow model is used." },
95            AttrDef { id: "ACDCTimePoint.targetPpcc", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Real power injection target in AC grid, at point of common coupling. Load sign convention is used, i.e. positive sign means flow out from a node." },
96            AttrDef { id: "ACDCTimePoint.targetUdc", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Target value for DC voltage magnitude. The attribute shall be a positive value." },
97        ],
98    },
99    ClassDef {
100        ns: "https://cim4.eu/ns/nc#",
101        local: "ACEmulationControlFunction",
102        qualified: "nc:ACEmulationControlFunction",
103        super_class: Some(109),
104        concrete: true,
105        origins: &["ER", "SIS", "SSI"],
106        comment: "The AC emulation control function is used when AC emulation model is activated for a DC system. It consists in computing the active power set point of the DC system as a function of the voltage angle difference between both points of common coupling with the AC network in order to mimic the behavior of an AC transmission line. This control mode enables the automatic adjustment of the active power reference following variations of the AC system operational point. The setpoint of the DC system is calculated by Psetpoint=Pref+Kdc*(angle1-angle2), where - Pref is the existing active power setpoint; - Kdc is the control system gain and - angle1 and angle2 are the phase angle measurement (measured at points of common coupling with the AC network) respectively at the side 1 and 2 of the DC system.",
107        attrs: &[
108            AttrDef { id: "ACEmulationControlFunction.ACEmulationControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ACEmulationControlFunctionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule of the control function." },
109            AttrDef { id: "ACEmulationControlFunction.gain", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Control system gain in AC transmission emulation control measured in MW/deg. It plays the role of an admittance of the equivalent AC transmission line that the control is emulating the higher is the gain the higher is the active power transfer at steady state." },
110            AttrDef { id: "ACEmulationControlFunction.referenceP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Existing active power setpoint used to calculate the active power setpoint of the AC emulation control." },
111            AttrDef { id: "ACEmulationControlFunction.timeConstant", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Control system time constant in AC transmission emulation control. It affects the time needed to reach a new steady state equilibrium point after a network perturbation extremely important to guarantee N-1 relief related to an interconnection. The higher is time constant the slower is the DC system dynamic." },
112        ],
113    },
114    ClassDef {
115        ns: "https://cim4.eu/ns/nc#",
116        local: "ACEmulationControlFunctionSchedule",
117        qualified: "nc:ACEmulationControlFunctionSchedule",
118        super_class: Some(57),
119        concrete: true,
120        origins: &["SIS"],
121        comment: "The schedule for ACEmulationControlFunction.",
122        attrs: &[
123            AttrDef { id: "ACEmulationControlFunctionSchedule.ACEmulationControlFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ACEmulationControlFunction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The control function that has this schedule." },
124            AttrDef { id: "ACEmulationControlFunctionSchedule.ACEmulationControlFunctionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ACEmulationControlFunctionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point of the schedule." },
125        ],
126    },
127    ClassDef {
128        ns: "https://cim4.eu/ns/nc#",
129        local: "ACEmulationControlFunctionTimePoint",
130        qualified: "nc:ACEmulationControlFunctionTimePoint",
131        super_class: None,
132        concrete: true,
133        origins: &["SIS"],
134        comment: "AC emulation control function value for a given point in time.",
135        attrs: &[
136            AttrDef { id: "ACEmulationControlFunctionTimePoint.ACEmulationControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ACEmulationControlFunctionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule that has this time point." },
137            AttrDef { id: "ACEmulationControlFunctionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
138            AttrDef { id: "ACEmulationControlFunctionTimePoint.gain", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Control system gain in AC transmission emulation control measured in MW/deg. It plays the role of an admittance of the equivalent AC transmission line that the control is emulating the higher is the gain the higher is the active power transfer at steady state." },
139            AttrDef { id: "ACEmulationControlFunctionTimePoint.referenceP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Existing active power setpoint used to calculate the active power setpoint of the AC emulation control." },
140            AttrDef { id: "ACEmulationControlFunctionTimePoint.timeConstant", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Control system time constant in AC transmission emulation control. It affects the time needed to reach a new steady state equilibrium point after a network perturbation extremely important to guarantee N-1 relief related to an interconnection. The higher is time constant the slower is the DC system dynamic." },
141        ],
142    },
143    ClassDef {
144        ns: "https://cim.ucaiug.io/ns#",
145        local: "ACLineSegment",
146        qualified: "nc:ACLineSegment",
147        super_class: Some(91),
148        concrete: true,
149        origins: &["SSI"],
150        comment: "A wire or combination of wires, with consistent electrical characteristics, building a single electrical system, used to carry alternating current between points in the power system. For symmetrical, transposed three phase lines, it is sufficient to use attributes of the line segment, which describe impedances and admittances for the entire length of the segment. Additionally impedances can be computed by using length and associated per length impedances. The BaseVoltage at the two ends of ACLineSegments in a Line shall have the same BaseVoltage.nominalVoltage. However, boundary lines may have slightly different BaseVoltage.nominalVoltages and variation is allowed. Larger voltage difference in general requires use of an equivalent branch.",
151        attrs: &[],
152    },
153    ClassDef {
154        ns: "https://cim4.eu/ns/nc#",
155        local: "ACTieCorridor",
156        qualified: "nc:ACTieCorridor",
157        super_class: Some(564),
158        concrete: true,
159        origins: &["ER"],
160        comment: "A collection of one or more AC tie lines that connect two different control areas.",
161        attrs: &[
162            AttrDef { id: "ACTieCorridor.Line", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Line", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Line that is part of the ACTieCorridor." },
163        ],
164    },
165    ClassDef {
166        ns: "https://cim4.eu/ns/nc#",
167        local: "ActivePowerControlFunction",
168        qualified: "nc:ActivePowerControlFunction",
169        super_class: Some(109),
170        concrete: true,
171        origins: &["ER", "SIS", "SSI"],
172        comment: "Active power control function is a function block that calculates operating point of the controlled equipment to achieve the target active power.",
173        attrs: &[
174            AttrDef { id: "ActivePowerControlFunction.ActivePowerControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ActivePowerControlFunctionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule of the control function." },
175            AttrDef { id: "ActivePowerControlFunction.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Target value for the active power that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
176        ],
177    },
178    ClassDef {
179        ns: "https://cim4.eu/ns/nc#",
180        local: "ActivePowerControlFunctionSchedule",
181        qualified: "nc:ActivePowerControlFunctionSchedule",
182        super_class: Some(57),
183        concrete: true,
184        origins: &["SIS"],
185        comment: "The schedule for ActivePowerControlFunction.",
186        attrs: &[
187            AttrDef { id: "ActivePowerControlFunctionSchedule.ActivePowerControlFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ActivePowerControlFunction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The control function that has this schedule." },
188            AttrDef { id: "ActivePowerControlFunctionSchedule.ActivePowerControlFunctionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ActivePowerControlFunctionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point of the schedule." },
189        ],
190    },
191    ClassDef {
192        ns: "https://cim4.eu/ns/nc#",
193        local: "ActivePowerControlFunctionTimePoint",
194        qualified: "nc:ActivePowerControlFunctionTimePoint",
195        super_class: None,
196        concrete: true,
197        origins: &["SIS"],
198        comment: "Active power control function value for a given point in time.",
199        attrs: &[
200            AttrDef { id: "ActivePowerControlFunctionTimePoint.ActivePowerControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ActivePowerControlFunctionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule that has this time point." },
201            AttrDef { id: "ActivePowerControlFunctionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
202            AttrDef { id: "ActivePowerControlFunctionTimePoint.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Target value for the active power that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
203        ],
204    },
205    ClassDef {
206        ns: "https://cim.ucaiug.io/ns#",
207        local: "ActivePowerLimit",
208        qualified: "nc:ActivePowerLimit",
209        super_class: None,
210        concrete: false,
211        origins: &["SHS"],
212        comment: "Limit on active power flow.",
213        attrs: &[
214            AttrDef { id: "ActivePowerLimit.ActivePowerLimitSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ActivePowerLimitSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "Active power limit schedule associated with an active power limit." },
215        ],
216    },
217    ClassDef {
218        ns: "https://cim4.eu/ns/nc#",
219        local: "ActivePowerLimitSchedule",
220        qualified: "nc:ActivePowerLimitSchedule",
221        super_class: Some(57),
222        concrete: true,
223        origins: &["SHS"],
224        comment: "Schedule for active power limit.",
225        attrs: &[
226            AttrDef { id: "ActivePowerLimitSchedule.ActivePowerLimit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ActivePowerLimit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Active power limit which has active power limit schedules." },
227            AttrDef { id: "ActivePowerLimitSchedule.ActivePowerLimitTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ActivePowerLimitTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The time point that relates to this active pwoer limit schedule." },
228        ],
229    },
230    ClassDef {
231        ns: "https://cim4.eu/ns/nc#",
232        local: "ActivePowerLimitTimePoint",
233        qualified: "nc:ActivePowerLimitTimePoint",
234        super_class: None,
235        concrete: true,
236        origins: &["SHS"],
237        comment: "Active power limit for a given point in time.",
238        attrs: &[
239            AttrDef { id: "ActivePowerLimitTimePoint.ActivePowerLimitSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ActivePowerLimitSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "The active power limit schedule that has this time point." },
240            AttrDef { id: "ActivePowerLimitTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS"], comment: "The time the data is valid for." },
241            AttrDef { id: "ActivePowerLimitTimePoint.value", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Value of active power limit. The attribute shall be a positive value or zero." },
242        ],
243    },
244    ClassDef {
245        ns: "https://cim4.eu/ns/nc#",
246        local: "AmbientTemperatureDependencyCurve",
247        qualified: "nc:AmbientTemperatureDependencyCurve",
248        super_class: Some(342),
249        concrete: true,
250        origins: &["ER"],
251        comment: "A curve or functional relationship between the ambient temperature independent variable (X-axis) and relative temperature dependent (Y-axis) variables.",
252        attrs: &[
253            AttrDef { id: "AmbientTemperatureDependencyCurve.OperationalLimitType", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OperationalLimitType", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The operational limit type that has this permanent ambient temperature dependency curve." },
254        ],
255    },
256    ClassDef {
257        ns: "https://cim.ucaiug.io/ns#",
258        local: "ApparentPowerLimit",
259        qualified: "nc:ApparentPowerLimit",
260        super_class: None,
261        concrete: false,
262        origins: &["SHS"],
263        comment: "Apparent power limit.",
264        attrs: &[
265            AttrDef { id: "ApparentPowerLimit.ApparentPowerLimitSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ApparentPowerLimitSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "Apparent power limit schedule associated with an apparent power limit." },
266        ],
267    },
268    ClassDef {
269        ns: "https://cim4.eu/ns/nc#",
270        local: "ApparentPowerLimitSchedule",
271        qualified: "nc:ApparentPowerLimitSchedule",
272        super_class: Some(57),
273        concrete: true,
274        origins: &["SHS"],
275        comment: "Schedule for apparent power limit.",
276        attrs: &[
277            AttrDef { id: "ApparentPowerLimitSchedule.ApparentPowerLimit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ApparentPowerLimit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Apparent power limit which has apparent power limit schedules." },
278            AttrDef { id: "ApparentPowerLimitSchedule.ApparentPowerLimitTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ApparentPowerLimitTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The time point that relates to this apparent power limit schedule." },
279        ],
280    },
281    ClassDef {
282        ns: "https://cim4.eu/ns/nc#",
283        local: "ApparentPowerLimitTimePoint",
284        qualified: "nc:ApparentPowerLimitTimePoint",
285        super_class: None,
286        concrete: true,
287        origins: &["SHS"],
288        comment: "Apparent power limit for a given point in time.",
289        attrs: &[
290            AttrDef { id: "ApparentPowerLimitTimePoint.ApparentPowerLimitSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ApparentPowerLimitSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "The apparent power limit schedule that has this time point." },
291            AttrDef { id: "ApparentPowerLimitTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS"], comment: "The time the data is valid for." },
292            AttrDef { id: "ApparentPowerLimitTimePoint.value", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ApparentPower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "The apparent power limit. The attribute shall be a positive value or zero." },
293        ],
294    },
295    ClassDef {
296        ns: "https://cim4.eu/ns/nc#",
297        local: "AreaBorderTerminal",
298        qualified: "nc:AreaBorderTerminal",
299        super_class: None,
300        concrete: true,
301        origins: &["MA"],
302        comment: "Area border terminal defines the terminals that are defining a monitoring area.",
303        attrs: &[
304            AttrDef { id: "AreaBorderTerminal.MonitoringArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "MonitoringArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["MA"], comment: "The MonitoringArea defined by this AreaBorderTerminal." },
305            AttrDef { id: "AreaBorderTerminal.Terminal", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Terminal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["MA"], comment: "The Terminal that is part of an AreaBorderTerminal." },
306            AttrDef { id: "AreaBorderTerminal.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["MA"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
307        ],
308    },
309    ClassDef {
310        ns: "https://cim4.eu/ns/nc#",
311        local: "AreaInterchangeController",
312        qualified: "nc:AreaInterchangeController",
313        super_class: Some(543),
314        concrete: true,
315        origins: &["ER"],
316        comment: "Area interchange control is set to control active power of an area.",
317        attrs: &[
318            AttrDef { id: "AreaInterchangeController.BiddingZone", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BiddingZone", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Bidding zone which has an area interchange controller." },
319            AttrDef { id: "AreaInterchangeController.BiddingZoneBorder", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BiddingZoneBorder", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Bidding zone border that has an area interchange controller." },
320            AttrDef { id: "AreaInterchangeController.ControlArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ControlArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Control area that has a area interchange controller." },
321            AttrDef { id: "AreaInterchangeController.pTolerance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Active power net interchange tolerance. The attribute shall be a positive value or zero." },
322        ],
323    },
324    ClassDef {
325        ns: "https://cim4.eu/ns/nc#",
326        local: "AreaReserveResource",
327        qualified: "nc:AreaReserveResource",
328        super_class: Some(440),
329        concrete: true,
330        origins: &["ER", "PS", "SIS", "SSI"],
331        comment: "A resource representation for a specific balancing reserve product, associated with either a scheduling area or a tie corridor, and used to represent reserve capability made available to a control area for market and operational purposes. Note: An AreaReserveResource shall be associated with either a SchedulingArea or a TieCorridor, but not both. When associated with a SchedulingArea, the resource represents reserve capability made available within that area context. When associated with a TieCorridor, the resource represents reserve capability provided across an inter-area connection to support a control area other than the one in which the underlying resource is located. A single physical or logical resource (for example a GeneratingUnit, HydroPump, PowerElectronicsUnit, or equivalent) may be represented by multiple AreaReserveResource instances, each corresponding to a different balancing reserve product (e.g. FCR, aFRR, mFRR).",
332        attrs: &[
333            AttrDef { id: "AreaReserveResource.AreaReserveResourceRegularSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AreaReserveResourceRegularSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule for this resource." },
334            AttrDef { id: "AreaReserveResource.AreaReserveResourceSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AreaReserveResourceSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule for this resource." },
335            AttrDef { id: "AreaReserveResource.GeneratingUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GeneratingUnit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Generating unit that provides the reserve capability represented by the area reserve resource." },
336            AttrDef { id: "AreaReserveResource.HydroPump", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "HydroPump", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Hydro pump that provides the reserve capability represented by the area reserve resource." },
337            AttrDef { id: "AreaReserveResource.PowerElectronicsUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerElectronicsUnit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Power electronics unit that provides the reserve capability represented by the area reserve resource." },
338            AttrDef { id: "AreaReserveResource.PowerSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PS"], comment: "Power schedule which has area dispatchable units." },
339            AttrDef { id: "AreaReserveResource.ScheduleResource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ScheduleResource", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Schedule resource representing an aggregation or grouping of resources that provides the reserve capability represented by the area reserve resource." },
340            AttrDef { id: "AreaReserveResource.SchedulingArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchedulingArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Scheduling area within which the reserve resource is made available when the reserve support is provided in the area context of the underlying resource." },
341            AttrDef { id: "AreaReserveResource.TieCorridor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TieCorridor", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Tie corridor through which the reserve resource is made available to support a control area other than the one in which the underlying resource is located." },
342            AttrDef { id: "AreaReserveResource.activatedP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Amount of active power currently activated for the reserve product." },
343            AttrDef { id: "AreaReserveResource.allocatedP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Amount of active power capability allocated from the associated resource to the area for the given reserve product." },
344            AttrDef { id: "AreaReserveResource.availableP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Amount of active power currently available for provision of the reserve product." },
345            AttrDef { id: "AreaReserveResource.contractedP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Amount of active power contracted for the reserve product." },
346            AttrDef { id: "AreaReserveResource.enabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "Identifies if the unit is enabled to accept a dispatch instruction. If true, the unit is enabled to accept a dispatch instruction. If false, the unit has the capability, but it is not enabled to receive a dispatch instruction." },
347            AttrDef { id: "AreaReserveResource.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "BalancingReserveKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["SSI"], comment: "Type of reserve product represented by the allocation." },
348            AttrDef { id: "AreaReserveResource.normalEnabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER"], comment: "Identifies if the unit is normally enabled to accept a dispatch instruction. If true, the unit is enabled to accept a dispatch instruction. If false, the unit has the capability, but it is not enabled to receive a dispatch instruction." },
349            AttrDef { id: "AreaReserveResource.priority", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["SSI"], comment: "Relative priority for activation or selection within an area or aggregated reserve structure." },
350        ],
351    },
352    ClassDef {
353        ns: "https://cim4.eu/ns/nc#",
354        local: "AreaReserveResourceRegularSchedule",
355        qualified: "nc:AreaReserveResourceRegularSchedule",
356        super_class: Some(59),
357        concrete: true,
358        origins: &["SIS"],
359        comment: "Regular schedule for area reserve resource .",
360        attrs: &[
361            AttrDef { id: "AreaReserveResourceRegularSchedule.AreaReserveResource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AreaReserveResource", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The resource that has a schedule." },
362        ],
363    },
364    ClassDef {
365        ns: "https://cim4.eu/ns/nc#",
366        local: "AreaReserveResourceSchedule",
367        qualified: "nc:AreaReserveResourceSchedule",
368        super_class: Some(57),
369        concrete: true,
370        origins: &["SIS"],
371        comment: "Schedule for area reserve resource .",
372        attrs: &[
373            AttrDef { id: "AreaReserveResourceSchedule.AreaReserveResource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AreaReserveResource", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The resource that has a schedule." },
374            AttrDef { id: "AreaReserveResourceSchedule.AreaReserveResourceTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AreaReserveResourceTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point for this schedule." },
375        ],
376    },
377    ClassDef {
378        ns: "https://cim4.eu/ns/nc#",
379        local: "AreaReserveResourceTimePoint",
380        qualified: "nc:AreaReserveResourceTimePoint",
381        super_class: None,
382        concrete: true,
383        origins: &["SIS"],
384        comment: "Area reserve resource for a given point in time.",
385        attrs: &[
386            AttrDef { id: "AreaReserveResourceTimePoint.AreaReserveResourceSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AreaReserveResourceSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule that has a time point." },
387            AttrDef { id: "AreaReserveResourceTimePoint.activatedP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Amount of active power currently activated for the reserve product." },
388            AttrDef { id: "AreaReserveResourceTimePoint.allocatedP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Amount of active power capability allocated from the associated resource to the area for the given reserve product." },
389            AttrDef { id: "AreaReserveResourceTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
390            AttrDef { id: "AreaReserveResourceTimePoint.availableP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Amount of active power currently available for provision of the reserve product." },
391            AttrDef { id: "AreaReserveResourceTimePoint.contractedP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Amount of active power contracted for the reserve product." },
392            AttrDef { id: "AreaReserveResourceTimePoint.enabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SIS"], comment: "Identifies if the unit is enabled to accept a dispatch instruction. If true, the unit is enabled to accept a dispatch instruction. If false, the unit has the capability, but it is not enabled to receive a dispatch instruction." },
393            AttrDef { id: "AreaReserveResourceTimePoint.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "BalancingReserveKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["SIS"], comment: "Type of reserve product represented by the allocation." },
394            AttrDef { id: "AreaReserveResourceTimePoint.priority", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["SIS"], comment: "Relative priority for activation or selection within an area or aggregated reserve structure." },
395            AttrDef { id: "AreaReserveResourceTimePoint.regulationDirection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "MarketRegulationDirectionKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["SIS"], comment: "Direction of the product flow." },
396        ],
397    },
398    ClassDef {
399        ns: "https://cim4.eu/ns/nc#",
400        local: "AssessedElement",
401        qualified: "nc:AssessedElement",
402        super_class: Some(318),
403        concrete: true,
404        origins: &["AE", "AS", "SIS", "SM", "SSI"],
405        comment: "Assessed element is a network element for which the electrical state is evaluated in the regional or cross-regional process and which value is expected to fulfil regional rules function of the operational security limits. The measurements and limits are as defined in the steady state hypothesis.",
406        attrs: &[
407            AttrDef { id: "AssessedElement.AssessedElementRegularSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElementRegularSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Regular schedule that belongs to an assessed element." },
408            AttrDef { id: "AssessedElement.AssessedElementSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElementSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Assessed element schedule for an assessed element." },
409            AttrDef { id: "AssessedElement.AssessedElementWithContingency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElementWithContingency", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AE"], comment: "The contingency and assessed element combination to be simulated for this assessed element." },
410            AttrDef { id: "AssessedElement.AssessedElementWithRemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElementWithRemedialAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AE"], comment: "The assessed element and remedial action combination to be simulated for this assessed element." },
411            AttrDef { id: "AssessedElement.AssessedPowerTransferCorridor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerTransferCorridor", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AE"], comment: "The power transfer corridor that is designated as an assessed element." },
412            AttrDef { id: "AssessedElement.AssessedSystemOperator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SystemOperator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AE"], comment: "A system operator that assesses the element." },
413            AttrDef { id: "AssessedElement.AvailabilityEnabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilityEnabled", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "Availability enabled describes the enabling or disabling of this assessed element." },
414            AttrDef { id: "AssessedElement.ConductingEquipment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ConductingEquipment", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AE"], comment: "The conducting equipment that is designated as an assessed element, i.e. the equipment that is assessed." },
415            AttrDef { id: "AssessedElement.CrossBorderRelevance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CrossBorderRelevance", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AE"], comment: "The Bidding zone border for which this assessed element is cross border relevant." },
416            AttrDef { id: "AssessedElement.DCTieCorridor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCTieCorridor", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AE"], comment: "The DC tie corridor that is assessed." },
417            AttrDef { id: "AssessedElement.Line", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Line", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AE"], comment: "The line that is designated as an assessed element, i.e. the equipment that is assessed." },
418            AttrDef { id: "AssessedElement.NativeRegion", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Region", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AE"], comment: "The native region for an assessed element." },
419            AttrDef { id: "AssessedElement.ObservableQuantity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ObservableQuantity", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SM"], comment: "The observable quantity for this assessed element with contingency." },
420            AttrDef { id: "AssessedElement.OperationalLimit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OperationalLimit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AE"], comment: "The terminal limit that is being assessed against." },
421            AttrDef { id: "AssessedElement.OverlappingZone", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OverlappingZone", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AE"], comment: "The overlapping zone grouping the overlapping assessed elements." },
422            AttrDef { id: "AssessedElement.ScannedForRegion", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Region", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AE"], comment: "This is the region in which this assessed element is scanned." },
423            AttrDef { id: "AssessedElement.SecuredForRegion", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Region", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AE"], comment: "This is the region where the element is secured." },
424            AttrDef { id: "AssessedElement.appointedMargin", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The percentage (appointed to a region) of the remaining margin obtained in the grid model to reach its current limit under normal operating conditions. The maximum percentage shall by default be 10% of the remaining margin. It is only used when an assessed element is considered conservative for a region. The allowed value range is [0,100]." },
425            AttrDef { id: "AssessedElement.coordinatedValidationAdjustment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Positive value calculated and provided by the Coordinated Capacity Calculator (CCC) for the reduction of Remaining Available Margin (RAM) in order to ensure grid security." },
426            AttrDef { id: "AssessedElement.coordinatedValidationAdjustmentJustification", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["SSI"], comment: "Free text description provided by the coordinated capacity calculator (CCC) for justifying the reduction of Remaining Available Margin (RAM) by means of Coordinated Validation Adjustment (CVA). This justification is not intended for any application processing purpose, it should only be used for reporting." },
427            AttrDef { id: "AssessedElement.criticalElement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "CriticalElementKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["AE"], comment: "Indicates the type of the critical element." },
428            AttrDef { id: "AssessedElement.criticalElementJustification", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["SSI"], comment: "Free text describing the justification of critical element categorization (e.g. the use of the kind). This justification is not intended for any application processing purpose, it should only be used for reporting." },
429            AttrDef { id: "AssessedElement.enabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "If true, the assessed element is enabled, otherwise it is disabled." },
430            AttrDef { id: "AssessedElement.exclusionReason", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "SecuredExclusionReasonKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["AE"], comment: "Reason for not associating this assessed element with a secured region." },
431            AttrDef { id: "AssessedElement.flowReliabilityMargin", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["AE"], comment: "Percentage of the maximum flow (margin) reserved to anticipate forecasting errors. The allowed value range is [0,100]." },
432            AttrDef { id: "AssessedElement.inBaseCase", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["AE"], comment: "Indicates if the assessed element is scanned in the base case. In case of a base case overload, the assessed element is considered as a limiting element for the optimization process. True means that the assessed element is scanned in the base case. False means it is not scanned in the base case." },
433            AttrDef { id: "AssessedElement.individualValidationAdjustment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Positive value calculated and provided by System Operators from their individual validation process for the reduction of Remaining Available Margin (RAM) in order to ensure grid security." },
434            AttrDef { id: "AssessedElement.individualValidationAdjustmentJustification", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["SSI"], comment: "Free text description provided by System Operators for justifying the reduction of Remaining Available Margin (RAM) by means of Individual Validation Adjustment (IVA). This justification is not intended for any application processing purpose, it should only be used for reporting." },
435            AttrDef { id: "AssessedElement.individualValidationAdjustmentShare", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Positive value expressed calculated by the Coordinated Capacity Calculator (CCC) based on the provided Individual Validation Adjustment (IVA) by System Operators in order to show the actual reduction of Remaining Available Margin (RAM). Individual Validation Adjustment Share is a positive non-zero value. It is equal or less than the Individual Validation Adjustment value." },
436            AttrDef { id: "AssessedElement.insideCapacityMargin", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["AE"], comment: "Percentage of the maximum flow (margin) from coordinated capacity calculation, i.e. capacity available for cross-zonal trade within the considered coordination area. The allowed value range is [0,100]." },
437            AttrDef { id: "AssessedElement.isCombinableWithContingency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["AE"], comment: "Defines if the AssessedElement is available to be combined with Contingency. If true, this AssessedElement can be included in various combinations not defined in the data exchange in an explicit way. If false, this assessed element is not to be considered in any combination with remedial actions and contingencies except for the exclusive combination. If not provided, the default meaning is true, i.e. the assessed element is combinable." },
438            AttrDef { id: "AssessedElement.isCombinableWithRemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["AE"], comment: "Defines if the AssessedElement is available to be combined with RemedialAction. If true, this AssessedElement can be included in various combinations not defined in the data exchange in an explicit way. If false, this assessed element is not to be considered in any combination with remedial actions and contingencies except for the exclusive combination. If not provided, the default meaning is true, i.e. the assessed element is combinable." },
439            AttrDef { id: "AssessedElement.isCriticalForCapacityCalculation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["AE"], comment: "Indicates whether the capacity calculation process is using the element or not." },
440            AttrDef { id: "AssessedElement.maxFlow", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Maximum flow on a conducting equipment or a collection of conducting equipment forming a power transfer corridor. For assessed element that becomes critical due to contingency, this value represents the maximum flow with remedial action taken into consideration." },
441            AttrDef { id: "AssessedElement.maxMarginAdjustment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["AE", "SSI"], comment: "Maximum adjustment, relative to maximum flow allowed for exceeding the maximum flow of this assessed element. The allowed value range is [0,100]." },
442            AttrDef { id: "AssessedElement.normalAppointedMargin", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["AE"], comment: "The normal percentage (appointed to a region) of the remaining margin obtained in the grid model to reach its current limit under normal operating conditions. The maximum percentage shall by default be 10% of the remaining margin. It is only used when an assessed element is considered conservative for a region. The allowed value range is [0,100]." },
443            AttrDef { id: "AssessedElement.normalCoordinatedValidationAdjustment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["AE"], comment: "Normal positive value calculated and provided by the Coordinated Capacity Calculator (CCC) for the reduction of Remaining Available Margin (RAM) in order to ensure grid security." },
444            AttrDef { id: "AssessedElement.normalCoordinatedValidationAdjustmentJustification", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["AE"], comment: "Normal free text description provided by the coordinated capacity calculator (CCC) for justifying the reduction of Remaining Available Margin (RAM) by means of Coordinated Validation Adjustment (CVA). This justification is not intended for any application processing purpose, it should only be used for reporting." },
445            AttrDef { id: "AssessedElement.normalCriticalElementJustification", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["AE"], comment: "Normal free text describing the justification of critical element categorization (e.g. the use of the kind). This justification is not intended for any application processing purpose, it should only be used for reporting." },
446            AttrDef { id: "AssessedElement.normalEnabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["AE"], comment: "If true, the assessed element shall be considered under normal operating conditions." },
447            AttrDef { id: "AssessedElement.normalIndividualValidationAdjustment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["AE"], comment: "Normal positive value calculated and provided by System Operators from their individual validation process for the reduction of Remaining Available Margin (RAM) in order to ensure grid security." },
448            AttrDef { id: "AssessedElement.normalIndividualValidationAdjustmentJustification", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["AE"], comment: "Normal free text description provided by System Operators for justifying the reduction of Remaining Available Margin (RAM) by means of Individual Validation Adjustment (IVA). This justification is not intended for any application processing purpose, it should only be used for reporting." },
449            AttrDef { id: "AssessedElement.normalIndividualValidationAdjustmentShare", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["AE"], comment: "Normal positive value expressed calculated by the Coordinated Capacity Calculator (CCC) based on the provided Individual Validation Adjustment (IVA) by System Operators in order to show the actual reduction of Remaining Available Margin (RAM). Individual Validation Adjustment Share is a positive non-zero value. It is equal or less than the Individual Validation Adjustment value." },
450            AttrDef { id: "AssessedElement.normalMaxFlow", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["AE"], comment: "Maximum flow on a conducting equipment or a collection of conducting equipment forming a power transfer corridor under normal operating conditions. For assessed elements that become critical due to contingency, this value represents the maximum flow with remedial action taken into consideration." },
451            AttrDef { id: "AssessedElement.normalPositiveVirtualMargin", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["AE"], comment: "A positive margin that defines the overload allowed in a solution for the assessed element for a normal situation. The margin represents influences that can be solved by the System Operators using available remedial action which is not cross-border relevant remedial action. All relevant operational limits (e.g. PATL, TATL, etc) are modified by this margin value. The attribute represents the increase. The allowed value range is [0,100]." },
452            AttrDef { id: "AssessedElement.normalScannedThresholdMargin", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["AE"], comment: "Normal threshold percentage that a scanned element can be overloaded, on a given element, on top of any overload prior to optimisation (default= 5%). e.g. Initial loading of the element is 110%, with a 5% scanned threshold margin, the new maximum is 115% of the limit (e.g. PATL, TATL, etc). The allowed value range is [0,100]." },
453            AttrDef { id: "AssessedElement.normalTargetRemainingAvailableMarginJustification", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["AE"], comment: "Normal free text describing the justification for the target Remaining Available Margin (RAM). This justification is not intended for any application processing purpose, it should only be used for reporting." },
454            AttrDef { id: "AssessedElement.outsideCapacityMargin", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["AE"], comment: "Percentage of the maximum flow (margin) capacity calculation, i.e. the capacity available for cross-zonal trade outside the considered coordination area. The allowed value range is [0,100]." },
455            AttrDef { id: "AssessedElement.positiveVirtualMargin", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "A positive margin that defines the overload allowed in a solution for the assessed element for the current situation. The margin represents influences that can be solved by the System Operators using available remedial action which is not cross-border relevant remedial action. All relevant operational limits (e.g. PATL, TATL, etc) are modified by this margin value. The attribute represents the increase. The allowed value range is [0,100]." },
456            AttrDef { id: "AssessedElement.scannedThresholdMargin", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Threshold percentage that a scanned element can be overloaded, on a given element, on top of any overload prior to optimisation (default= 5%). e.g. Initial loading of the element is 110%, with a 5% scanned threshold margin, the new maximum is 115% of the limit (e.g. PATL, TATL, etc). The allowed value range is [0,100]." },
457            AttrDef { id: "AssessedElement.targetRemainingAvailableMargin", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["AE"], comment: "Target for the remaining available margin as a percentage of maximum flow. The allowed value range is [0,100]." },
458            AttrDef { id: "AssessedElement.targetRemainingAvailableMarginJustification", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["SSI"], comment: "Free text describing the justification for the target Remaining Available Margin (RAM). This justification is not intended for any application processing purpose, it should only be used for reporting." },
459        ],
460    },
461    ClassDef {
462        ns: "https://cim4.eu/ns/nc#",
463        local: "AssessedElementRegularSchedule",
464        qualified: "nc:AssessedElementRegularSchedule",
465        super_class: Some(59),
466        concrete: true,
467        origins: &["SIS"],
468        comment: "Regular schedule for assessed element.",
469        attrs: &[
470            AttrDef { id: "AssessedElementRegularSchedule.AssessedElement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElement", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Assessed Element that has regular schedules." },
471            AttrDef { id: "AssessedElementRegularSchedule.AssessedElementRegularTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElementRegularTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Assessed element regular time point which belong to an assessed element regular schedule." },
472        ],
473    },
474    ClassDef {
475        ns: "https://cim4.eu/ns/nc#",
476        local: "AssessedElementRegularTimePoint",
477        qualified: "nc:AssessedElementRegularTimePoint",
478        super_class: None,
479        concrete: true,
480        origins: &["SIS"],
481        comment: "Assessed element instruction value at a given point in time.",
482        attrs: &[
483            AttrDef { id: "AssessedElementRegularTimePoint.AssessedElementRegularSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElementRegularSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Assessed element regular schedule which has assessed element regular time points." },
484            AttrDef { id: "AssessedElementRegularTimePoint.appointedMargin", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The percentage (appointed to a region) of the remaining margin obtained in the grid model to reach its current limit. The maximum percentage shall by default be 10% of the remaining margin. It is only used when an assessed element is considered conservative for a region. The allowed value range is [0,100]." },
485            AttrDef { id: "AssessedElementRegularTimePoint.enabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SIS"], comment: "It identifies if the assessed element is enabled. True means enabled, False means disabled." },
486            AttrDef { id: "AssessedElementRegularTimePoint.maxFlow", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Maximum flow on an a conducting equipment or a collection of conducting equipment forming a power transfer corridor. For assessed elements that is becomes critical due to contingency, this value represents the maximum flow with remedial action taken into consideration." },
487            AttrDef { id: "AssessedElementRegularTimePoint.positiveVirtualMargin", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "A margin defined only for scanned AssessedElement (If AssessedElement.ScannedForRegion is present) in order to represent the influence of available remedial action which is not cross-border relevant remedial action. The margin is modifying the limits used for the assessment whatever the limit it is (e.g. PATL, TATL).This symbolizes a remedial action that can be applied internally by the System Operator. It will be resolved by the System Operator and not by the optimization of remedial actions. The attribute shall be a positive value. The allowed value range is [0,100]." },
488            AttrDef { id: "AssessedElementRegularTimePoint.scannedThresholdMargin", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Threshold percentage that a scanned element can be overloaded, on a given element, on top of any overload prior to optimisation (default= 5%). e.g. Initial loading of the element is 110%, with a 5% scanned threshold margin, the new maximum is 115% of the limit (e.g. PATL, TATL, etc). The allowed value range is [0,100]." },
489        ],
490    },
491    ClassDef {
492        ns: "https://cim4.eu/ns/nc#",
493        local: "AssessedElementSchedule",
494        qualified: "nc:AssessedElementSchedule",
495        super_class: Some(57),
496        concrete: true,
497        origins: &["SIS"],
498        comment: "Schedule for assessed element.",
499        attrs: &[
500            AttrDef { id: "AssessedElementSchedule.AssessedElement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElement", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Assessed element which has an assessed element schedule." },
501            AttrDef { id: "AssessedElementSchedule.AssessedElementTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElementTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point that relates to this assessed element schedule." },
502        ],
503    },
504    ClassDef {
505        ns: "https://cim4.eu/ns/nc#",
506        local: "AssessedElementTimePoint",
507        qualified: "nc:AssessedElementTimePoint",
508        super_class: None,
509        concrete: true,
510        origins: &["SIS"],
511        comment: "Assessed element instruction value at a given point in time.",
512        attrs: &[
513            AttrDef { id: "AssessedElementTimePoint.AssessedElementSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElementSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The assessed element schedule that has this time point." },
514            AttrDef { id: "AssessedElementTimePoint.appointedMargin", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The percentage (appointed to a region) of the remaining margin obtained in the grid model to reach its current limit. The maximum percentage shall by default be 10% of the remaining margin. It is only used when an assessed element is considered conservative for a region. The allowed value range is [0,100]." },
515            AttrDef { id: "AssessedElementTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
516            AttrDef { id: "AssessedElementTimePoint.coordinatedValidationAdjustment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "A positive value expressed in MW, calculated and provided by the coordinated capacity calculator (CCC) for the reduction of Remaining Available Margin (RAM) in order to ensure grid security." },
517            AttrDef { id: "AssessedElementTimePoint.coordinatedValidationAdjustmentJustification", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["SIS"], comment: "A text description provided by the coordinated capacity calculator (CCC) for justifying the reduction of Remaining Available Margin (RAM) by means of Coordinated Validation Adjustment (CVA). This justification is not intended for any application processing purpose, it should only be used for reporting." },
518            AttrDef { id: "AssessedElementTimePoint.criticalElementJustification", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["SIS"], comment: "Justification indicating the kind of critical element contingency. This justification is not intended for any application processing purpose, it should only be used for reporting." },
519            AttrDef { id: "AssessedElementTimePoint.enabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SIS"], comment: "It identifies if the assessed element is enabled. True means enabled, False means disabled." },
520            AttrDef { id: "AssessedElementTimePoint.exclusionReason", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "SecuredExclusionReasonKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["SIS"], comment: "Reason for not associating this assessed element with a secured region." },
521            AttrDef { id: "AssessedElementTimePoint.individualValidationAdjustment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "A positive value expressed in MW, calculated and provided by System Operators from their individual validation process for the reduction of Remaining Available Margin in order to ensure grid security." },
522            AttrDef { id: "AssessedElementTimePoint.individualValidationAdjustmentJustification", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["SIS"], comment: "A text description provided by System Operators for justifying the reduction of Remaining Available Margin (RAM) by means of Individual Validation Adjustment (IVA). This justification is not intended for any application processing purpose, it should only be used for reporting." },
523            AttrDef { id: "AssessedElementTimePoint.individualValidationAdjustmentShare", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "A positive value expressed in MW, calculated by the coordinated capacity calculator (CCC) based on the provided Individual Validation Adjustment (IVA) by System Operators in order to show the actual reduction of Remaining Available Margin (RAM). Individual Validation Adjustment Share is a positive non-zero value. It is equal or less than the Individual Validation Adjustment value." },
524            AttrDef { id: "AssessedElementTimePoint.maxFlow", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Maximum flow on an a conducting equipment or a collection of conducting equipment forming a power transfer corridor. For assessed elements that is becomes critical due to contingency, this value represents the maximum flow with remedial action taken into consideration." },
525            AttrDef { id: "AssessedElementTimePoint.positiveVirtualMargin", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "A margin defined only for scanned AssessedElement (If AssessedElement.ScannedForRegion is present) in order to represent the influence of available remedial action which is not cross-border relevant remedial action. The margin is modifying the limits used for the assessment whatever the limit it is (e.g. PATL, TATL).This symbolizes a remedial action that can be applied internally by the System Operator. It will be resolved by the System Operator and not by the optimization of remedial actions. The attribute shall be a positive value. The allowed value range is [0,100]." },
526            AttrDef { id: "AssessedElementTimePoint.scannedThresholdMargin", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Threshold percentage that a scanned element can be overloaded, on a given element, on top of any overload prior to optimisation (default= 5%). e.g. Initial loading of the element is 110%, with a 5% scanned threshold margin, the new maximum is 115% of the limit (e.g. PATL, TATL, etc). The allowed value range is [0,100]." },
527            AttrDef { id: "AssessedElementTimePoint.targetRemainingAvailableMarginJustification", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["SIS"], comment: "Justification indicating the target remaining available margin. This justification is not intended for any application processing purpose, it should only be used for reporting." },
528        ],
529    },
530    ClassDef {
531        ns: "https://cim4.eu/ns/nc#",
532        local: "AssessedElementWithContingency",
533        qualified: "nc:AssessedElementWithContingency",
534        super_class: None,
535        concrete: true,
536        origins: &["AE", "SIS", "SSI"],
537        comment: "Combination of an assessed element and a contingency.",
538        attrs: &[
539            AttrDef { id: "AssessedElementWithContingency.AssessedElement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElement", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AE"], comment: "The assessed element defined for this contingency and assessed element combination." },
540            AttrDef { id: "AssessedElementWithContingency.Contingency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Contingency", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AE"], comment: "The contingency defined for this contingency and assessed element combination." },
541            AttrDef { id: "AssessedElementWithContingency.GenericEnablingSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GenericEnablingSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Enabling schedule which belongs to the assessed element with contingency." },
542            AttrDef { id: "AssessedElementWithContingency.combinationConstraintKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "ElementCombinationConstraintKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["AE"], comment: "Defines the combination constraint of the AssessedElement and Contingency. If included, this assessed element is only assessed for this contingency. Else if excluded, this assessed element should not be assessed for this contingency. Considered shall not be used for this combination." },
543            AttrDef { id: "AssessedElementWithContingency.enabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "If true, the assessed element with contingency is enabled, otherwise it is disabled." },
544            AttrDef { id: "AssessedElementWithContingency.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["AE"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
545            AttrDef { id: "AssessedElementWithContingency.normalEnabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["AE"], comment: "If true, the assessed element with contingency is enabled, otherwise it is disabled under normal operating conditions." },
546        ],
547    },
548    ClassDef {
549        ns: "https://cim4.eu/ns/nc#",
550        local: "AssessedElementWithRemedialAction",
551        qualified: "nc:AssessedElementWithRemedialAction",
552        super_class: None,
553        concrete: true,
554        origins: &["AE", "SIS", "SSI"],
555        comment: "Combination of an assessed element and a remedial action",
556        attrs: &[
557            AttrDef { id: "AssessedElementWithRemedialAction.AssessedElement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElement", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AE"], comment: "The assessed element defined for this assessed element and remedial action combination." },
558            AttrDef { id: "AssessedElementWithRemedialAction.GenericEnablingSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GenericEnablingSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Enabling schedule which belongs to the assessed element with remedial action." },
559            AttrDef { id: "AssessedElementWithRemedialAction.RemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialAction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AE"], comment: "The remedial action defined for this assessed element and remedial action combination." },
560            AttrDef { id: "AssessedElementWithRemedialAction.combinationConstraintKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "ElementCombinationConstraintKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["AE"], comment: "Defines the combination constraint of the AssessedElement and Remedial Action. If included, this remedial action is only assessed for this assessed element. Else if excluded, this remedial action should not be used for this assessed element. Else if considered, this remedial action can be considered for this assessed element." },
561            AttrDef { id: "AssessedElementWithRemedialAction.enabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "If true, the assessed element with remedial action is enabled, otherwise it is disabled." },
562            AttrDef { id: "AssessedElementWithRemedialAction.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["AE"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
563            AttrDef { id: "AssessedElementWithRemedialAction.normalEnabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["AE"], comment: "If true, the assessed element with remedial action is enabled, otherwise it is disabled under normal operating conditions." },
564        ],
565    },
566    ClassDef {
567        ns: "https://cim.ucaiug.io/ns#",
568        local: "AsynchronousMachine",
569        qualified: "nc:AsynchronousMachine",
570        super_class: Some(488),
571        concrete: true,
572        origins: &["SSI", "SHS"],
573        comment: "A rotating machine whose shaft rotates asynchronously with the electrical field. Also known as an induction machine with no external connection to the rotor windings, e.g. squirrel-cage induction machine.",
574        attrs: &[
575            AttrDef { id: "AsynchronousMachine.AsynchronousMachineRegularSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AsynchronousMachineRegularSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "AsynchronousMachineRegularSchedule which belongs to an asynchronous machine." },
576            AttrDef { id: "AsynchronousMachine.AsynchronousMachineSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AsynchronousMachineSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "Asynchronous machine schedule associated with an asynchronous machine." },
577        ],
578    },
579    ClassDef {
580        ns: "https://cim4.eu/ns/nc#",
581        local: "AsynchronousMachineRegularSchedule",
582        qualified: "nc:AsynchronousMachineRegularSchedule",
583        super_class: Some(59),
584        concrete: true,
585        origins: &["SHS"],
586        comment: "Regular schedule for asynchronous machine.",
587        attrs: &[
588            AttrDef { id: "AsynchronousMachineRegularSchedule.AsynchronousMachine", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AsynchronousMachine", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "AsynchronousMachine which has AsynchronousMachineRegularSchedule." },
589            AttrDef { id: "AsynchronousMachineRegularSchedule.asynchronousMachineType", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "AsynchronousMachineKind", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["SHS"], comment: "Indicates the type of Asynchronous Machine (motor or generator)." },
590        ],
591    },
592    ClassDef {
593        ns: "https://cim4.eu/ns/nc#",
594        local: "AsynchronousMachineSchedule",
595        qualified: "nc:AsynchronousMachineSchedule",
596        super_class: Some(57),
597        concrete: true,
598        origins: &["SHS"],
599        comment: "Schedule for asynchronous machine.",
600        attrs: &[
601            AttrDef { id: "AsynchronousMachineSchedule.AsynchronousMachine", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AsynchronousMachine", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Asynchronous machine which has asynchronous machine schedules." },
602            AttrDef { id: "AsynchronousMachineSchedule.AsynchronousMachineTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AsynchronousMachineTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The time point that relates to this asynchronous machine schedule." },
603        ],
604    },
605    ClassDef {
606        ns: "https://cim4.eu/ns/nc#",
607        local: "AsynchronousMachineTimePoint",
608        qualified: "nc:AsynchronousMachineTimePoint",
609        super_class: None,
610        concrete: true,
611        origins: &["SHS"],
612        comment: "Asynchronous machine values for a given point in time.",
613        attrs: &[
614            AttrDef { id: "AsynchronousMachineTimePoint.AsynchronousMachineSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AsynchronousMachineSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "The asynchronous machine schedule that has this time point." },
615            AttrDef { id: "AsynchronousMachineTimePoint.asynchronousMachineType", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "AsynchronousMachineKind", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["SHS"], comment: "Indicates the type of Asynchronous Machine (motor or generator)." },
616            AttrDef { id: "AsynchronousMachineTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS"], comment: "The time the data is valid for." },
617        ],
618    },
619    ClassDef {
620        ns: "https://cim4.eu/ns/nc#",
621        local: "AutomationBlockGroup",
622        qualified: "nc:AutomationBlockGroup",
623        super_class: None,
624        concrete: true,
625        origins: &["ER"],
626        comment: "Grouping of function block that are operated with the same priority as settings.",
627        attrs: &[
628            AttrDef { id: "AutomationBlockGroup.AutomationFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AutomationFunction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Automation function which has automation block group." },
629            AttrDef { id: "AutomationBlockGroup.FunctionBlock", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FunctionBlock", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Function block which belongs to an automation block group." },
630            AttrDef { id: "AutomationBlockGroup.priority", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["ER"], comment: "Value 0 means ignore priority. 1 means the highest priority, 2 is the second highest priority." },
631        ],
632    },
633    ClassDef {
634        ns: "https://cim4.eu/ns/nc#",
635        local: "AutomationFunction",
636        qualified: "nc:AutomationFunction",
637        super_class: Some(440),
638        concrete: false,
639        origins: &["ER", "SIS", "SSI"],
640        comment: "Automation function is a collection of functional block or other automation function that can be executed as a work cycle program as part of an automated system.",
641        attrs: &[
642            AttrDef { id: "AutomationFunction.AutomationBlockGroup", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AutomationBlockGroup", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Automation block group which belongs to an automation function." },
643            AttrDef { id: "AutomationFunction.FunctionBlock", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FunctionBlock", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Function block is part of this automation function." },
644            AttrDef { id: "AutomationFunction.GenericEnablingSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GenericEnablingSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Enabling schedule associated to an automation function." },
645            AttrDef { id: "AutomationFunction.HasPart", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AutomationFunction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Automation function has this automation function as a part." },
646            AttrDef { id: "AutomationFunction.PartOf", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AutomationFunction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Automation function is part of this automation function." },
647            AttrDef { id: "AutomationFunction.enabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "True, if the automation function is enabled (active). Otherwise false." },
648            AttrDef { id: "AutomationFunction.normalEnabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER"], comment: "True, if the automation function is enabled (active). Otherwise false." },
649            AttrDef { id: "AutomationFunction.type", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["ER"], comment: "Type of automation function." },
650        ],
651    },
652    ClassDef {
653        ns: "https://cim.ucaiug.io/ns#",
654        local: "AuxiliaryEquipment",
655        qualified: "nc:AuxiliaryEquipment",
656        super_class: Some(241),
657        concrete: false,
658        origins: &["SSI"],
659        comment: "AuxiliaryEquipment describe equipment that is not performing any primary functions but support for the equipment performing the primary function. AuxiliaryEquipment is attached to primary equipment via an association with Terminal.",
660        attrs: &[],
661    },
662    ClassDef {
663        ns: "https://cim4.eu/ns/nc#",
664        local: "AvailabilityContainer",
665        qualified: "nc:AvailabilityContainer",
666        super_class: Some(46),
667        concrete: true,
668        origins: &["AS"],
669        comment: "Availability container serves for associating an equipment container with an availability schedule. For instance, putting in or out of service all the equipment inside a Line or a Bay in combination with other availability functions with the same availability schedule.",
670        attrs: &[
671            AttrDef { id: "AvailabilityContainer.EquipmentContainer", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquipmentContainer", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "Equipment container that is affected by the availability given by this availability container." },
672        ],
673    },
674    ClassDef {
675        ns: "https://cim4.eu/ns/nc#",
676        local: "AvailabilityEnabled",
677        qualified: "nc:AvailabilityEnabled",
678        super_class: Some(46),
679        concrete: true,
680        origins: &["AS"],
681        comment: "Availability enabled is enabling or disabling grid state alteration (e.g. tap position action) or assessed element that is related to the availability schedule. For instance, the cancellation of availability schedule can lead to changes in the assessed element. This is done by enabling one assessment and disabling another.",
682        attrs: &[
683            AttrDef { id: "AvailabilityEnabled.AssessedElement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElement", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "Assessed element that is affected by the availability given by this availability enabling." },
684            AttrDef { id: "AvailabilityEnabled.GridStateAlteration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridStateAlteration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "Grid state alteration that is affected by the availability given by this availability enabling." },
685            AttrDef { id: "AvailabilityEnabled.enabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["AS"], comment: "Instruction to enable or disable alteration and assessment." },
686        ],
687    },
688    ClassDef {
689        ns: "https://cim4.eu/ns/nc#",
690        local: "AvailabilityEquipment",
691        qualified: "nc:AvailabilityEquipment",
692        super_class: Some(46),
693        concrete: true,
694        origins: &["AS"],
695        comment: "Availability equipment serves for associating an equipment with an availability schedule. For instance, putting in or out of service an ACLineSegment in combination with other availability functions with the same availability schedule.",
696        attrs: &[
697            AttrDef { id: "AvailabilityEquipment.Equipment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Equipment", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "Equipment that is affected by the availability given by this availability equipment." },
698        ],
699    },
700    ClassDef {
701        ns: "https://cim4.eu/ns/nc#",
702        local: "AvailabilityExceptionalLimit",
703        qualified: "nc:AvailabilityExceptionalLimit",
704        super_class: Some(46),
705        concrete: true,
706        origins: &["AS"],
707        comment: "Availability exceptional limit serves for associating an operational limit restriction with an availability schedule. For instance, enabling or disabling the current limit on ACLineSegment terminal in combination with other availability functions with the same availability schedule or de-rating due to fault.",
708        attrs: &[
709            AttrDef { id: "AvailabilityExceptionalLimit.OperationalLimit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OperationalLimit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "Operational limit that is constrained by this availability exceptional limit." },
710            AttrDef { id: "AvailabilityExceptionalLimit.value", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["AS"], comment: "Value for the referred operational limit." },
711        ],
712    },
713    ClassDef {
714        ns: "https://cim4.eu/ns/nc#",
715        local: "AvailabilityGroup",
716        qualified: "nc:AvailabilityGroup",
717        super_class: Some(318),
718        concrete: true,
719        origins: &["AS"],
720        comment: "Container to link relevant equipment that is affected by (un)availability schedule across availability coordinator (e.g. TSO-TSO, TSO-DSO or DSO-DSO).",
721        attrs: &[
722            AttrDef { id: "AvailabilityGroup.AvailabilityPowerSystemFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilityPowerSystemFunction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "All availability power system functions linked through mutual dependency with other availability power system functions controlled by other system operators." },
723        ],
724    },
725    ClassDef {
726        ns: "https://cim4.eu/ns/nc#",
727        local: "AvailabilityPowerSystemFunction",
728        qualified: "nc:AvailabilityPowerSystemFunction",
729        super_class: Some(318),
730        concrete: false,
731        origins: &["AS"],
732        comment: "Availability power system function describes the power system function that has a non-normal availability in the associated availability schedule. The availability of the function is needed as part of a power flow solution. This function is the cause and not the effect of the availability, if the effect can be calculated through power flow. For instance if only the step-up transformer for a generator is not available, the power flow will calculate that the generator is de-energized (outage). If both are tagged as not available it will not be possible to investigate remedial action for connecting the generator. It is expected that the power flow function is able to perform simple topology changes affected by a function taken out of service, e.g. open switches on both end of a ACLineSegment when the ACLineSegment is taken out of service. More complex changes, like change regulation set point, must be described in the linked GridStateAlterationCollection.",
733        attrs: &[
734            AttrDef { id: "AvailabilityPowerSystemFunction.AvailabilityGroup", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilityGroup", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "Grouping for all availability power system functions (controlled by all relevant system operators) that have the same availability schedule." },
735            AttrDef { id: "AvailabilityPowerSystemFunction.AvailabilitySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilitySchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "Availability schedule for this availability power system function." },
736            AttrDef { id: "AvailabilityPowerSystemFunction.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "AvailabilityFunctionKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["AS"], comment: "Kind of availability that affect the power system function." },
737        ],
738    },
739    ClassDef {
740        ns: "https://cim4.eu/ns/nc#",
741        local: "AvailabilityRemedialAction",
742        qualified: "nc:AvailabilityRemedialAction",
743        super_class: Some(466),
744        concrete: true,
745        origins: &["RA", "AS", "RAS", "SSI"],
746        comment: "Availability remedial action is a remedial action that cancels or reschedules an availability schedule.",
747        attrs: &[
748            AttrDef { id: "AvailabilityRemedialAction.AvailabilitySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilitySchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS", "RAS"], comment: "Availability schedule that is part of the remedial action." },
749        ],
750    },
751    ClassDef {
752        ns: "https://cim4.eu/ns/nc#",
753        local: "AvailabilityRemedialActionScheme",
754        qualified: "nc:AvailabilityRemedialActionScheme",
755        super_class: Some(46),
756        concrete: true,
757        origins: &["AS"],
758        comment: "Availability remedial action scheme serves for associating a remedial action scheme with an availability schedule. For instance, taking in or out of service a SIPS / SPS due to communication issue, in combination with other availability functions with the same availability schedule.",
759        attrs: &[
760            AttrDef { id: "AvailabilityRemedialActionScheme.RemedialActionScheme", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionScheme", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "Remedial action scheme that is affected by the availability given by this availability remedial action scheme." },
761        ],
762    },
763    ClassDef {
764        ns: "https://cim4.eu/ns/nc#",
765        local: "AvailabilitySchedule",
766        qualified: "nc:AvailabilitySchedule",
767        super_class: Some(318),
768        concrete: true,
769        origins: &["AS", "PSP", "RAS"],
770        comment: "A given (un)availability schedule with a given status and cause that include multiple equipment that need to follow the same scheduling periods.",
771        attrs: &[
772            AttrDef { id: "AvailabilitySchedule.ActualSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EventSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "Actual schedule that relates to this availability schedule; used for ex-post reporting and analysis (e.g., to compare planned vs. actual)." },
773            AttrDef { id: "AvailabilitySchedule.AlternativeSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilitySchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "Alternative schedule. The priority in regards to multiple alternatives is given by the priority attribute. This schedule is only relevant if all the alternatives with higher priority are cancelled." },
774            AttrDef { id: "AvailabilitySchedule.AvailabilityPowerSystemFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilityPowerSystemFunction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "All the couplings that associate one concrete function (e.g., equipment or container, SIPS/SPSs, grid state alteration, exceptional operational limits) with the same availability schedule." },
775            AttrDef { id: "AvailabilitySchedule.AvailabilitySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilitySchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "Availability schedule that has a dependent availability schedule." },
776            AttrDef { id: "AvailabilitySchedule.AvailablityPlan", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailablityPlan", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The AvailabilityPlan of which this AvailabilitySchedule is a component." },
777            AttrDef { id: "AvailabilitySchedule.DependentOnSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilitySchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "(Un)availability schedule requested by one operator may require another operator to request their (un)availability schedule. This association is linking the schedules so that the dependency is clear." },
778            AttrDef { id: "AvailabilitySchedule.GridStateAlterationCollection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridStateAlterationCollection", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The grid state alteration collection that has this availability schedule." },
779            AttrDef { id: "AvailabilitySchedule.OutageAvailability", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageAvailability", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "All outage requests that contribute to the formation of this availability schedule." },
780            AttrDef { id: "AvailabilitySchedule.PlannedSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EventSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "Planned schedule that relates to this availability schedule used for planning availability (e.g., to compare planned vs. actual)." },
781            AttrDef { id: "AvailabilitySchedule.PowerSystemProject", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSystemProject", is_list: false, used: false, xsd: "", value_ns: "", origins: &["PSP"], comment: "The power system project that has this availability schedule." },
782            AttrDef { id: "AvailabilitySchedule.PrioritySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilitySchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "Priority schedule. This is the schedule that has the highest priority and the only valid if not cancelled." },
783            AttrDef { id: "AvailabilitySchedule.RemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilityRemedialAction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS", "RAS"], comment: "Remedial action that is cancelling this availability schedule." },
784            AttrDef { id: "AvailabilitySchedule.cancelledDateTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["AS"], comment: "The date and time the (un)availability schedule were cancelled ." },
785            AttrDef { id: "AvailabilitySchedule.causeDescription", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["AS"], comment: "A cause description for a cause kind. In case of CauseKind equals other, description or a reference of the cause of the (un)availability schedule." },
786            AttrDef { id: "AvailabilitySchedule.causeKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "AvailabilityScheduleCauseKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["AS"], comment: "Kind of cause for the availability schedule." },
787            AttrDef { id: "AvailabilitySchedule.daytimeRestitutionDuration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The time required to take the out-of-service equipment back into service during daytime. This includes the start-up time for generating units." },
788            AttrDef { id: "AvailabilitySchedule.eveningRestitutionDuration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The time required to take the out-of-service equipment back into service after office hours. This includes the start-up time for generating units." },
789            AttrDef { id: "AvailabilitySchedule.isCancelled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["AS", "RAS"], comment: "Defines the cancelling of the availability schedule. True means that is cancelling, False means that it is not cancelling." },
790            AttrDef { id: "AvailabilitySchedule.maxRestitutionDuration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The maximum time required to take the out-of-service equipment back into service. This includes the start-up time for generating units." },
791            AttrDef { id: "AvailabilitySchedule.priority", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["AS", "RAS"], comment: "Value 0 means ignore priority. 1 means the highest priority, 2 is the second highest priority." },
792            AttrDef { id: "AvailabilitySchedule.weekendRestitutionDuration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The time required to take the out-of-service equipment back into service in the weekend or during bank holidays. This includes the start-up time for generating units." },
793        ],
794    },
795    ClassDef {
796        ns: "https://cim4.eu/ns/nc#",
797        local: "AvailabilityTimePoint",
798        qualified: "nc:AvailabilityTimePoint",
799        super_class: None,
800        concrete: true,
801        origins: &["SIS"],
802        comment: "Availability instruction value at a given point in time.",
803        attrs: &[
804            AttrDef { id: "AvailabilityTimePoint.GenericAvailabilitySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GenericAvailableSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The availability schedule which belongs to the availability timepoint." },
805            AttrDef { id: "AvailabilityTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
806            AttrDef { id: "AvailabilityTimePoint.available", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SIS"], comment: "It identifies if the element is available. True means available, False means unavailable." },
807        ],
808    },
809    ClassDef {
810        ns: "https://cim4.eu/ns/nc#",
811        local: "AvailablityPlan",
812        qualified: "nc:AvailablityPlan",
813        super_class: Some(318),
814        concrete: true,
815        origins: &["AS"],
816        comment: "A consolidated plan established by a System Operator that groups the AvailabilitySchedules applicable to a defined period and operational scope. Note: An AvailabilityPlan provides the system-level view of resource availability used for outage coordination and operational planning. It may be divided into subordinate AvailabilityPlans and may be subject to approval by an Outage Coordinator.",
817        attrs: &[
818            AttrDef { id: "AvailablityPlan.AvailabilitySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilitySchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "The AvailabilitySchedules included in this AvailabilityPlan." },
819            AttrDef { id: "AvailablityPlan.AvailablityPlanApprover", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageCoordinator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The Outage Coordinator responsible for approving the AvailabilityPlan." },
820            AttrDef { id: "AvailablityPlan.AvailablityPlanVersion", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailablityPlanVersion", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "The versions created for this AvailabilityPlan." },
821            AttrDef { id: "AvailablityPlan.HasPart", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailablityPlan", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "The subordinate AvailabilityPlans that form part of this AvailabilityPlan." },
822            AttrDef { id: "AvailablityPlan.PartOf", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailablityPlan", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The parent AvailabilityPlan of which this AvailabilityPlan forms a part." },
823            AttrDef { id: "AvailablityPlan.SystemOperator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SystemOperator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The System Operator responsible for establishing and maintaining the AvailabilityPlan." },
824            AttrDef { id: "AvailablityPlan.validFrom", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["AS"], comment: "The date and time the start of the availability plan." },
825            AttrDef { id: "AvailablityPlan.validTo", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["AS"], comment: "The date and time the end of the availability plan." },
826        ],
827    },
828    ClassDef {
829        ns: "https://cim4.eu/ns/nc#",
830        local: "AvailablityPlanResponse",
831        qualified: "nc:AvailablityPlanResponse",
832        super_class: None,
833        concrete: true,
834        origins: &["AS"],
835        comment: "A formal response provided by an affected Outage Coordinator to a specific AvailabilityPlanVersion. Note: The response records the coordinator’s position on the proposed plan, such as acceptance, refusal, acceptance with conditions, an alternative proposal, acknowledgement, or absence of a response within the applicable time limit.",
836        attrs: &[
837            AttrDef { id: "AvailablityPlanResponse.AffectedCoordinator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageCoordinator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The affected Outage Coordinator that provides the response to the AvailabilityPlanVersion." },
838            AttrDef { id: "AvailablityPlanResponse.AvailablityPlanVersion", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailablityPlanVersion", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The version of the AvailabilityPlan to which this response applies." },
839            AttrDef { id: "AvailablityPlanResponse.comment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["AS"], comment: "Free-text explanation, justification or additional information provided with the response to the outage request version." },
840            AttrDef { id: "AvailablityPlanResponse.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["AS"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
841            AttrDef { id: "AvailablityPlanResponse.status", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "RequestResponseKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["AS"], comment: "Outcome of the response to the outage request version, indicating the decision or position of the responding party." },
842        ],
843    },
844    ClassDef {
845        ns: "https://cim4.eu/ns/nc#",
846        local: "BaseCaseCurrentLimit",
847        qualified: "nc:BaseCaseCurrentLimit",
848        super_class: Some(370),
849        concrete: true,
850        origins: &["AE", "SIS", "SSI"],
851        comment: "Operational limit on current applicable for base case.",
852        attrs: &[
853            AttrDef { id: "BaseCaseCurrentLimit.BaseCaseCurrentLimitSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BaseCaseCurrentLimitSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Base case current limit schedule associated with a base case current limit." },
854            AttrDef { id: "BaseCaseCurrentLimit.normalValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["AE"], comment: "The normal value for limit on current flow. The attribute shall be a positive value or zero." },
855            AttrDef { id: "BaseCaseCurrentLimit.value", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Limit on current flow. The attribute shall be a positive value or zero." },
856        ],
857    },
858    ClassDef {
859        ns: "https://cim4.eu/ns/nc#",
860        local: "BaseCaseCurrentLimitSchedule",
861        qualified: "nc:BaseCaseCurrentLimitSchedule",
862        super_class: Some(57),
863        concrete: true,
864        origins: &["SIS"],
865        comment: "The schedule for a base case current limit.",
866        attrs: &[
867            AttrDef { id: "BaseCaseCurrentLimitSchedule.BaseCaseCurrentLimit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BaseCaseCurrentLimit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Base case current limit which has base case current limit schedule." },
868            AttrDef { id: "BaseCaseCurrentLimitSchedule.BaseCaseCurrentLimitTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BaseCaseCurrentLimitTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Base case current limit time point that relates to this base case current limit schedule." },
869        ],
870    },
871    ClassDef {
872        ns: "https://cim4.eu/ns/nc#",
873        local: "BaseCaseCurrentLimitTimePoint",
874        qualified: "nc:BaseCaseCurrentLimitTimePoint",
875        super_class: None,
876        concrete: true,
877        origins: &["SIS"],
878        comment: "Base case current limit at a given point in time.",
879        attrs: &[
880            AttrDef { id: "BaseCaseCurrentLimitTimePoint.BaseCaseCurrentLimitSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BaseCaseCurrentLimitSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Base case current limit schedule that has time point." },
881            AttrDef { id: "BaseCaseCurrentLimitTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
882            AttrDef { id: "BaseCaseCurrentLimitTimePoint.value", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Value of current limit. The attribute shall be a positive value or zero." },
883        ],
884    },
885    ClassDef {
886        ns: "https://cim4.eu/ns/nc#",
887        local: "BaseCasePowerFlowResult",
888        qualified: "nc:BaseCasePowerFlowResult",
889        super_class: Some(426),
890        concrete: true,
891        origins: &["SAR"],
892        comment: "Base case power flow result for a given terminal.",
893        attrs: &[],
894    },
895    ClassDef {
896        ns: "https://cim4.eu/ns/nc#",
897        local: "BaseIrregularTimeSeries",
898        qualified: "nc:BaseIrregularTimeSeries",
899        super_class: Some(60),
900        concrete: false,
901        origins: &["AS", "PS", "RAS", "SHS", "SIS"],
902        comment: "Time series that has irregular points in time.",
903        attrs: &[],
904    },
905    ClassDef {
906        ns: "https://cim4.eu/ns/nc#",
907        local: "BaseOverloadLimitCurve",
908        qualified: "nc:BaseOverloadLimitCurve",
909        super_class: Some(342),
910        concrete: true,
911        origins: &["ER"],
912        comment: "A curve or functional relationship between - the relative loading - current loading over permanent loading (PATL) independent variable (X-axis), and - temporary overloading (TATL) limiting dependent (Y-axis) variables.",
913        attrs: &[
914            AttrDef { id: "BaseOverloadLimitCurve.OperationalLimitType", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OperationalLimitType", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The operational limit type that has this temporary base overload limit curve." },
915        ],
916    },
917    ClassDef {
918        ns: "https://cim4.eu/ns/nc#",
919        local: "BaseRegularIntervalSchedule",
920        qualified: "nc:BaseRegularIntervalSchedule",
921        super_class: Some(60),
922        concrete: false,
923        origins: &["SHS", "SIS"],
924        comment: "Time series that has regular points in time.",
925        attrs: &[
926            AttrDef { id: "BaseRegularIntervalSchedule.HourPattern", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "HourPattern", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS", "SIS"], comment: "HourPattern that has base regular interval schedule." },
927            AttrDef { id: "BaseRegularIntervalSchedule.Season", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Season", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS", "SIS"], comment: "Season associated with a base regular interval schedule." },
928            AttrDef { id: "BaseRegularIntervalSchedule.dayOfWeek", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "DayOfWeekKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["SHS", "SIS"], comment: "Day of the week for which the schedule is valid for." },
929            AttrDef { id: "BaseRegularIntervalSchedule.intervalEndTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS", "SIS"], comment: "Interval end time for which the schedule is valid for." },
930            AttrDef { id: "BaseRegularIntervalSchedule.intervalStartTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS", "SIS"], comment: "Interval start time for which the schedule is valid for." },
931        ],
932    },
933    ClassDef {
934        ns: "https://cim4.eu/ns/nc#",
935        local: "BaseTimeSeries",
936        qualified: "nc:BaseTimeSeries",
937        super_class: Some(318),
938        concrete: false,
939        origins: &["AS", "PS", "RAS", "SHS", "SIS"],
940        comment: "Time series of values at points in time.",
941        attrs: &[
942            AttrDef { id: "BaseTimeSeries.actionMethod", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["PS", "SIS"], comment: "Action method used to create the value. This is used for identification in the case where there is multiple time series for the same validity period and kind." },
943            AttrDef { id: "BaseTimeSeries.generatedAtTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["PS", "SHS"], comment: "The time this time series (entity) come to existents and available for use." },
944            AttrDef { id: "BaseTimeSeries.interpolationKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "TimeSeriesInterpolationKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["AS", "PS", "RAS", "SHS", "SIS"], comment: "Kind of interpolation done between time point." },
945            AttrDef { id: "BaseTimeSeries.percentile", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["PS", "SHS"], comment: "The percentile is a number where a certain percentage of scores/ranking/values of a sample fall below that number. This is a way for expressing uncertainty in the number provided." },
946            AttrDef { id: "BaseTimeSeries.timeSeriesKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "BaseTimeSeriesKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["AS", "PS", "SHS", "SIS"], comment: "Kind of base time series." },
947        ],
948    },
949    ClassDef {
950        ns: "https://cim.ucaiug.io/ns#",
951        local: "BaseVoltage",
952        qualified: "nc:BaseVoltage",
953        super_class: Some(318),
954        concrete: false,
955        origins: &["GD"],
956        comment: "Defines a system base voltage which is referenced.",
957        attrs: &[
958            AttrDef { id: "BaseVoltage.Fault", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Fault", is_list: true, used: false, xsd: "", value_ns: "", origins: &["GD"], comment: "The fault which belongs to the base voltage." },
959        ],
960    },
961    ClassDef {
962        ns: "https://cim.ucaiug.io/ns#",
963        local: "BatteryUnit",
964        qualified: "nc:BatteryUnit",
965        super_class: Some(420),
966        concrete: true,
967        origins: &["ER", "RA", "SHS", "SSI"],
968        comment: "An electrochemical energy storage device.",
969        attrs: &[
970            AttrDef { id: "BatteryUnit.BatteryUnitAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BatteryUnitAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The action that is applied to a BatteryUnit." },
971            AttrDef { id: "BatteryUnit.BatteryUnitSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BatteryUnitSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "Battery unit schedule associated with a battery unit." },
972            AttrDef { id: "BatteryUnit.ratedE", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Full energy storage capacity of the battery. The attribute shall be a positive value." },
973        ],
974    },
975    ClassDef {
976        ns: "https://cim4.eu/ns/nc#",
977        local: "BatteryUnitAction",
978        qualified: "nc:BatteryUnitAction",
979        super_class: Some(507),
980        concrete: true,
981        origins: &["RA", "SSI"],
982        comment: "Battery unit setpoint action.",
983        attrs: &[
984            AttrDef { id: "BatteryUnitAction.BatteryUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BatteryUnit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The BatteryUnit that is associated with an action." },
985        ],
986    },
987    ClassDef {
988        ns: "https://cim4.eu/ns/nc#",
989        local: "BatteryUnitSchedule",
990        qualified: "nc:BatteryUnitSchedule",
991        super_class: Some(57),
992        concrete: true,
993        origins: &["SHS"],
994        comment: "Schedule for battery unit.",
995        attrs: &[
996            AttrDef { id: "BatteryUnitSchedule.BatteryUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BatteryUnit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Battery unit which has battery unit schedules." },
997            AttrDef { id: "BatteryUnitSchedule.BatteryUnitTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BatteryUnitTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The time point that relates to this battery unit schedule." },
998        ],
999    },
1000    ClassDef {
1001        ns: "https://cim4.eu/ns/nc#",
1002        local: "BatteryUnitTimePoint",
1003        qualified: "nc:BatteryUnitTimePoint",
1004        super_class: None,
1005        concrete: true,
1006        origins: &["SHS"],
1007        comment: "Battery unit values for a given point in time.",
1008        attrs: &[
1009            AttrDef { id: "BatteryUnitTimePoint.BatteryUnitSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BatteryUnitSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "The battery unit schedule that has this time point." },
1010            AttrDef { id: "BatteryUnitTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS"], comment: "The time the data is valid for." },
1011            AttrDef { id: "BatteryUnitTimePoint.batteryState", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "BatteryStateKind", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["SHS"], comment: "The current state of the battery (charging, full, etc.)." },
1012            AttrDef { id: "BatteryUnitTimePoint.storedE", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Amount of energy currently stored. The attribute shall be a positive value or zero and lower than BatteryUnit.ratedE." },
1013        ],
1014    },
1015    ClassDef {
1016        ns: "https://cim4.eu/ns/nc#",
1017        local: "BiddingZone",
1018        qualified: "nc:BiddingZone",
1019        super_class: Some(440),
1020        concrete: true,
1021        origins: &["ER", "PS", "RA", "SSI"],
1022        comment: "A bidding zone is a market-based method for handling power transmission congestion. It consists of scheduling areas that include the relevant production (supply) and consumption (demand) to form an electrical area with the same market price without capacity allocation.",
1023        attrs: &[
1024            AttrDef { id: "BiddingZone.AreaInterchangeController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AreaInterchangeController", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Area interchange controller for this bidding zone." },
1025            AttrDef { id: "BiddingZone.BiddingZoneAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BiddingZoneAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The bidding zone action that relates to this bidding zone." },
1026            AttrDef { id: "BiddingZone.CapacityCalculationRegion", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CapacityCalculationRegion", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The capacity calculation region related to this bidding zone." },
1027            AttrDef { id: "BiddingZone.FromBiddingZoneBorder", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BiddingZoneBorder", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The from side of the border." },
1028            AttrDef { id: "BiddingZone.GridPowerCapacity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridPowerCapacity", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Grid Power capacity whidh is asocciated to the bidding zone." },
1029            AttrDef { id: "BiddingZone.PowerRemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerRemedialAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The power remedial action applied to this BiddingZone." },
1030            AttrDef { id: "BiddingZone.PowerSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PS"], comment: "Power schedule which belongs to the power bidding zone." },
1031            AttrDef { id: "BiddingZone.SchedulingArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchedulingArea", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The scheduling area that has bidding zone." },
1032            AttrDef { id: "BiddingZone.ToBiddingZoneBorder", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BiddingZoneBorder", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The to side of the border." },
1033            AttrDef { id: "BiddingZone.isTradeEnabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER"], comment: "Identifies the mechanism for determining the energy price for a given bidding zone. If true, the bid and the offer is expected to be provided for the bidding zone to create the market price. If false, other mechanism determines the price of energy for a given bidding zone, e.g. virtual bidding zone." },
1034            AttrDef { id: "BiddingZone.netPosition", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Net position is the netted sum of electricity exports and imports for each market time unit for a bidding zone." },
1035        ],
1036    },
1037    ClassDef {
1038        ns: "https://cim4.eu/ns/nc#",
1039        local: "BiddingZoneAction",
1040        qualified: "nc:BiddingZoneAction",
1041        super_class: Some(507),
1042        concrete: true,
1043        origins: &["RA", "SSI"],
1044        comment: "Bidding zone set point action.",
1045        attrs: &[
1046            AttrDef { id: "BiddingZoneAction.BiddingZone", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BiddingZone", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The bidding zone that has this bidding zone action." },
1047        ],
1048    },
1049    ClassDef {
1050        ns: "https://cim4.eu/ns/nc#",
1051        local: "BiddingZoneBorder",
1052        qualified: "nc:BiddingZoneBorder",
1053        super_class: Some(440),
1054        concrete: true,
1055        origins: &["ER", "AE", "PS", "RA", "SSI"],
1056        comment: "A unidirectional interface between two adjacent Bidding Zones, representing the available transmission capacity from the Bidding Zone defined by the association FromBiddingZone (source) to the Bidding Zone defined by the association ToBiddingZone (sink). It defines the capacity constraints and market-based allocation mechanisms for cross-zonal electricity exchange in the specified direction, considering potential transmission congestion and market price differences.",
1057        attrs: &[
1058            AttrDef { id: "BiddingZoneBorder.AreaInterchangeController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AreaInterchangeController", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Area interchange controller that relates to this bidding zone border." },
1059            AttrDef { id: "BiddingZoneBorder.CapacityCalculationRegion", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CapacityCalculationRegion", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The capacity calculation region for which the capacity is derived from." },
1060            AttrDef { id: "BiddingZoneBorder.CrossBorderRelevance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CrossBorderRelevance", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AE"], comment: "Cross border relevant combination for this bidding zone border." },
1061            AttrDef { id: "BiddingZoneBorder.CrossZonalNetworkElement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CrossZonalNetworkElement", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "A network element participating in the transfer of electrical power between two bidding zones and associated with the two opposite directional BiddingZoneBorder instances representing that bidding zone pair." },
1062            AttrDef { id: "BiddingZoneBorder.DCTieCorridor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCTieCorridor", is_list: false, used: false, xsd: "", value_ns: "", origins: &["SSI"], comment: "The DC tie corridor which includes the bidding zone border." },
1063            AttrDef { id: "BiddingZoneBorder.DCTieCorridorDirectionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCTieCorridorDirectionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PS"], comment: "The DC tie corridor time point related to the bidding zone border." },
1064            AttrDef { id: "BiddingZoneBorder.FromBiddingZone", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BiddingZone", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The bidding zone for the from side." },
1065            AttrDef { id: "BiddingZoneBorder.PowerRemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerRemedialAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "Power remedial action applied to this Bidding Zone Border." },
1066            AttrDef { id: "BiddingZoneBorder.PowerSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PS"], comment: "Power schedule which has bidding zone border." },
1067            AttrDef { id: "BiddingZoneBorder.TieCorridor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TieCorridor", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Tie corridor for a given bidding zone border." },
1068            AttrDef { id: "BiddingZoneBorder.ToBiddingZone", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BiddingZone", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The bidding zone for the to side." },
1069            AttrDef { id: "BiddingZoneBorder.alreadyAllocatedCapacity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Already Allocated Capacity (AAC) means the total amount of allocated transmission rights i.e. transmission capacity reserved by virtue of historical long-term contracts and the previously held transmission capacity reservation auctions." },
1070            AttrDef { id: "BiddingZoneBorder.alreadyAllocatedFlow", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The maximum allowed flow on the collection of interconnection between two bidding zones." },
1071            AttrDef { id: "BiddingZoneBorder.availableTransferCapacity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Available Transfer Capacity (ATC) means the transmission capacity that remains available, after allocation procedure, to be used under the physical conditions of the transmission system. ATC value is defined as: ATC = NTC - AAC." },
1072            AttrDef { id: "BiddingZoneBorder.netTransferCapacity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Net Transfer Capacity (NTC) is defined as NTC = TTC - TRM and corresponds to the maximum exchange between two areas compatible with operational security limits applicable in both areas and taking into account the technical uncertainties on future network conditions." },
1073            AttrDef { id: "BiddingZoneBorder.totalTransferCapacity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Total Transfer Capacity (TTC) is the maximum exchange program between two areas compatible with operational security standards applicable at each system if future network conditions, generation and load patterns were perfectly known in advance." },
1074            AttrDef { id: "BiddingZoneBorder.transmissionReliabilityMargin", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Transmission Reliability Margin (TRM) is the minimum reserve that system operators must have available at their connections so that they can help other countries to which their system is directly or indirectly connected, if necessary." },
1075        ],
1076    },
1077    ClassDef {
1078        ns: "https://cim4.eu/ns/nc#",
1079        local: "BipolarDCSystem",
1080        qualified: "nc:BipolarDCSystem",
1081        super_class: Some(187),
1082        concrete: true,
1083        origins: &["ER"],
1084        comment: "Bipolar DC system (IEC 60633) consists of two poles of opposite polarity with respect to earth. The overhead lines, if any, of the two poles may be carried on common or separate towers.",
1085        attrs: &[
1086            AttrDef { id: "BipolarDCSystem.DCBiPole", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCBiPole", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "DC bipole that belongs to a bipolar DC system." },
1087            AttrDef { id: "BipolarDCSystem.isRigid", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER"], comment: "If true, the bipolar DC system is a rigid DC current bipolar system (IEC 60633). It is a bipolar DC system without neutral connection between both converter stations. Since only two (pole) conductors exist, no unbalance current between both poles is possible. In case of interruption of power transfer of one converter pole, the current of the other pole has to be interrupted as well (at least for a limited time to allow reconfiguration of the DC circuit)." },
1088        ],
1089    },
1090    ClassDef {
1091        ns: "https://cim4.eu/ns/nc#",
1092        local: "BoundaryPoint",
1093        qualified: "nc:BoundaryPoint",
1094        super_class: Some(87),
1095        concrete: true,
1096        origins: &["ER"],
1097        comment: "<<EU>> Designates a connection point at which one or more model authority sets shall connect to. The location of the connection point as well as other properties are agreed between organisations responsible for the interconnection, hence all attributes of the class represent this agreement. It is primarily used in a boundary model authority set which can contain one or many BoundaryPoint-s among other Equipment-s and their connections. New: A BoundaryPoint is a CommonResponsibilityPoint that identifies a location in the power system model where two or more parties establish a common agreement on modelling responsibility. It defines the point at which the representation of adjacent model responsibilities connect and where the agreed boundary between modelling domains is established. Note: A BoundaryPoint represents the agreed location where modelling responsibility changes between organisations such as transmission system operators, distribution system operators, or other authorised model authorities. The BoundaryPoint may be located on an interconnection between networks or at an internal location within a substation or facility where modelling responsibility is divided between parties.",
1098        attrs: &[
1099            AttrDef { id: "BoundaryPoint.BoundaryPointBorder", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BoundaryPointBorder", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The BoundaryPointBorder that identifies the bilateral border relationship between the two parties responsible for this BoundaryPoint." },
1100            AttrDef { id: "BoundaryPoint.BoundaryPointBorderLink", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BoundaryPointBorderLink", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "BoundaryPointBorderLink instances that relate this BoundaryPoint to multiple bilateral BoundaryPointBorder relationships." },
1101            AttrDef { id: "BoundaryPoint.partyOneResourceName", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["ER"], comment: "Name used by the first party to refer to the shared or connected resource associated with the BoundaryPoint. Note: This attribute records the name used in the model maintained by the first party for the resource or connection associated with the BoundaryPoint. It shall only be used when exactly two parties share modelling responsibility at the BoundaryPoint." },
1102            AttrDef { id: "BoundaryPoint.partyTwoResourceName", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["ER"], comment: "Name used by the second party to refer to the shared or connected resource associated with the BoundaryPoint. Note: This attribute records the name used in the model maintained by the second party for the resource or connection associated with the BoundaryPoint. It shall only be used when exactly two parties share modelling responsibility at the BoundaryPoint." },
1103        ],
1104    },
1105    ClassDef {
1106        ns: "https://cim4.eu/ns/nc#",
1107        local: "BoundaryPointBorder",
1108        qualified: "nc:BoundaryPointBorder",
1109        super_class: Some(318),
1110        concrete: true,
1111        origins: &["ER"],
1112        comment: "A BoundaryPointBorder identifies a specific border relationship between exactly two parties for one or more BoundaryPoints. It provides a bilateral context used to describe and reference the two parties that share responsibility for coordinating and exchanging boundary information across that border. Note: A BoundaryPointBorder always represents exactly two parties, even when one or more associated BoundaryPoints are shared among more than two parties (for example in multi-party interconnections). In such cases, separate BoundaryPointBorder instances are used to represent each bilateral border relationship. partyOne* and partyTwo* attributes are role-neutral and do not imply direction, hierarchy, or electrical flow.",
1113        attrs: &[
1114            AttrDef { id: "BoundaryPointBorder.BoundaryPoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BoundaryPoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "BoundaryPoint that is part of a BoundaryPointBorder." },
1115            AttrDef { id: "BoundaryPointBorder.BoundaryPointBorderLink", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BoundaryPointBorderLink", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The BoundaryPointBorderLink instances that identify the BoundaryPoints participating in this bilateral BoundaryPointBorder relationship." },
1116            AttrDef { id: "BoundaryPointBorder.partyOneDesignatorRef", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "URI", is_list: false, used: true, xsd: "anyURI", value_ns: "", origins: &["ER"], comment: "Globally unique reference to the designator associated with the first party, expressed as a URI. Note: The reference may be a web URL identifying the designator or another persistent identifier expressed in URI form. When resolvable, the URI may provide additional linked data describing the designator. The designator typically represents a jurisdictional or organisational designation that has empowered the party with the authority to provide the normative power system reference model. This may refer to a country or to a specific regulatory or governing organisation. Example: 'https://vocabulary.uncefact.org/unlocode-countries#NO', 'https://www.nve.no/reguleringsmyndigheten/'" },
1117            AttrDef { id: "BoundaryPointBorder.partyOneName", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["ER"], comment: "Human-readable name of the first party participating in the border relationship. Note: This name shall be suitable for unambiguous identification of the party within the exchange context. If partyOneRef is provided, partyOneName shall be aligned with the party identified by partyOneRef. Example: 'Statnett'" },
1118            AttrDef { id: "BoundaryPointBorder.partyOneRef", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "URI", is_list: false, used: true, xsd: "anyURI", value_ns: "", origins: &["ER"], comment: "Globally unique reference to the first party participating in the border relationship, expressed as a URI. Note: The reference may be a web URL identifying the party or another persistent identifier expressed in URI form. When resolvable, the URI may provide additional linked data describing the party. Example: 'https://energy.referencedata.eu/party/statnett', 'urn:uuid:6f3e3a4e-3d4e-4b1a-a1e4-2b2c3f1a9a8d', 'https://virksomhet.brreg.no/nb/oppslag/enheter/962986633'" },
1119            AttrDef { id: "BoundaryPointBorder.partyTwoDesignatorRef", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "URI", is_list: false, used: true, xsd: "anyURI", value_ns: "", origins: &["ER"], comment: "Globally unique reference to the designator associated with the second party, expressed as a URI. Note: The reference may be a web URL identifying the designator or another persistent identifier expressed in URI form. When resolvable, the URI may provide additional linked data describing the designator. The designator typically represents a jurisdictional or organisational designation that has empowered the party with the authority to provide the normative power system reference model. This may refer to a country or to a specific regulatory or governing organisation. Example: 'https://vocabulary.uncefact.org/unlocode-countries#SE', 'https://ei.se/'" },
1120            AttrDef { id: "BoundaryPointBorder.partyTwoName", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["ER"], comment: "Human-readable name of the second party participating in the border relationship. Note: This name shall be suitable for unambiguous identification of the party within the exchange context. If partyTwoRef is provided, partyTwoName shall be aligned with the party identified by partyTwoRef. Example: 'SvenskaKraftnet'" },
1121            AttrDef { id: "BoundaryPointBorder.partyTwoRef", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "URI", is_list: false, used: true, xsd: "anyURI", value_ns: "", origins: &["ER"], comment: "Globally unique reference to the second party participating in the border relationship, expressed as a URI. Note: The reference may be a web URL identifying the party or another persistent identifier expressed in URI form. When resolvable, the URI may provide additional linked data describing the party. Example: 'https://energy.referencedata.eu/party/svk', 'urn:uuid:0d4c7c30-cc7e-4f8f-bb6c-6d6b8c6f7f62', 'https://www.allabolag.se/foretag/svenska-kraftn%C3%A4t/sundbyberg/energif%C3%B6rs%C3%B6rjning/XF94VWI5YE1K'" },
1122        ],
1123    },
1124    ClassDef {
1125        ns: "https://cim4.eu/ns/nc#",
1126        local: "BoundaryPointBorderLink",
1127        qualified: "nc:BoundaryPointBorderLink",
1128        super_class: None,
1129        concrete: true,
1130        origins: &["ER"],
1131        comment: "A BoundaryPointBorderLink identifies the relationship between a specific BoundaryPoint and a specific BoundaryPointBorder. It is used when a BoundaryPoint is shared by more than two parties and therefore needs to be related to multiple bilateral BoundaryPointBorder instances Note: When exactly two parties share a BoundaryPoint, the BoundaryPoint shall be directly associated with a single BoundaryPointBorder and BoundaryPointBorderLink shall not be used. BoundaryPointBorderLink does not imply direction or hierarchy between the two parties; it only establishes that the BoundaryPoint participates in the bilateral border context.",
1132        attrs: &[
1133            AttrDef { id: "BoundaryPointBorderLink.BoundaryPoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BoundaryPoint", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "BoundaryPoint that is linked to multiple BoundaryPointBorder through the BoundaryPointBorderLink." },
1134            AttrDef { id: "BoundaryPointBorderLink.BoundaryPointBorder", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BoundaryPointBorder", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The BoundaryPointBorder that is given by the BoundaryPointBorderLink." },
1135            AttrDef { id: "BoundaryPointBorderLink.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["ER"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
1136        ],
1137    },
1138    ClassDef {
1139        ns: "https://cim.ucaiug.io/ns#",
1140        local: "Breaker",
1141        qualified: "nc:Breaker",
1142        super_class: Some(448),
1143        concrete: true,
1144        origins: &["SSI"],
1145        comment: "A mechanical switching device capable of making, carrying, and breaking currents under normal circuit conditions and also making, carrying for a specified time, and breaking currents under specified abnormal circuit conditions e.g. those of short circuit.",
1146        attrs: &[],
1147    },
1148    ClassDef {
1149        ns: "https://cim.ucaiug.io/ns#",
1150        local: "BusbarSection",
1151        qualified: "nc:BusbarSection",
1152        super_class: Some(96),
1153        concrete: true,
1154        origins: &["SSI"],
1155        comment: "A conductor, or group of conductors, with negligible impedance, that serve to connect other conducting equipment within a single substation. Voltage measurements are typically obtained from voltage transformers that are connected to busbar sections. A bus bar section may have many physical terminals but for analysis is modelled with exactly one logical terminal.",
1156        attrs: &[],
1157    },
1158    ClassDef {
1159        ns: "https://cim4.eu/ns/nc#",
1160        local: "CalculationBasedImpactAssessmentMatrix",
1161        qualified: "nc:CalculationBasedImpactAssessmentMatrix",
1162        super_class: Some(320),
1163        concrete: true,
1164        origins: &["IAM"],
1165        comment: "Calculation based impact assessment matrix. It relates to the remedial action schedule. Calculation-Based is the impact matrix determined by calculating the impact factors (eventually scaled by the intensity of the remedial action) and matching them against a threshold in a determined way described by the methodologies.",
1166        attrs: &[],
1167    },
1168    ClassDef {
1169        ns: "https://cim4.eu/ns/nc#",
1170        local: "CapacityCalculationRegion",
1171        qualified: "nc:CapacityCalculationRegion",
1172        super_class: Some(459),
1173        concrete: true,
1174        origins: &["ER"],
1175        comment: "Capacity calculation region is a coherent part of the interconnected system that is used for calculating the transmission capacity for a bidding zone or between bidding zones.",
1176        attrs: &[
1177            AttrDef { id: "CapacityCalculationRegion.BiddingZone", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BiddingZone", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The bidding zone for this capacity calculation region." },
1178            AttrDef { id: "CapacityCalculationRegion.BiddingZoneBorder", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BiddingZoneBorder", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The bidding zone border on which the capacity is calculated." },
1179            AttrDef { id: "CapacityCalculationRegion.CoordinatedCapacityCalculator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CoordinatedCapacityCalculator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Coordinated capacity calculator responsible for the capacity calculation of the region." },
1180            AttrDef { id: "CapacityCalculationRegion.SecurityCoordinator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SecurityCoordinator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The security coordinator responsible for the capacity calculation region." },
1181        ],
1182    },
1183    ClassDef {
1184        ns: "https://cim4.eu/ns/nc#",
1185        local: "Circuit",
1186        qualified: "nc:Circuit",
1187        super_class: Some(440),
1188        concrete: false,
1189        origins: &["ER"],
1190        comment: "A circuit is a collection of equipment in a network graph that provide common stability limits. The relevant equipment is in general given by the identifying terminal. A software application that can do topology processing shall calculate the equipment belonging to the circuit, if there are no stability limits associated to it. In case of stability limits, the containment reflects the equipments that were used in the calculation/analysis.",
1191        attrs: &[
1192            AttrDef { id: "Circuit.CircuitShare", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CircuitShare", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The circuit share of the given power transfer corridor." },
1193            AttrDef { id: "Circuit.Equipment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Equipment", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The equipment which is part of the circuit. This includes all equipment related to the circuit (e.g. If the circuit is a transformer, the equipment could be all switching and auxiliary equipments related to the transformer). A BusbarSection shall not be part of the circuit." },
1194            AttrDef { id: "Circuit.IdentifyingTerminal", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Terminal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Terminal that identifies the circuit." },
1195            AttrDef { id: "Circuit.positiveFlowIn", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER"], comment: "True, if the positive value on the terminal shall be considered flow into the circuit. False, if the positive value on the terminal shall be considered flow out of the circuit." },
1196        ],
1197    },
1198    ClassDef {
1199        ns: "https://cim4.eu/ns/nc#",
1200        local: "CircuitShare",
1201        qualified: "nc:CircuitShare",
1202        super_class: Some(318),
1203        concrete: true,
1204        origins: &["ER", "SSI"],
1205        comment: "Defines the share of the circuit which is part of an associated power transfer corridor.",
1206        attrs: &[
1207            AttrDef { id: "CircuitShare.Circuit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Circuit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The circuit that has a share of the power system corridor." },
1208            AttrDef { id: "CircuitShare.PowerTransferCorridor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerTransferCorridor", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The power transfer corridor that has this circuit share." },
1209            AttrDef { id: "CircuitShare.contributionFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Contribution factor for the circuit which is part of a power transfer corridor. The allowed value range is [0,100]." },
1210            AttrDef { id: "CircuitShare.normalContributionFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Normal contribution factor for the circuit which is part of a power transfer corridor. The allowed value range is [0,100]." },
1211        ],
1212    },
1213    ClassDef {
1214        ns: "https://cim.ucaiug.io/ns#",
1215        local: "Clamp",
1216        qualified: "nc:Clamp",
1217        super_class: Some(90),
1218        concrete: true,
1219        origins: &["SSI"],
1220        comment: "A Clamp is a galvanic connection at a line segment where other equipment is connected. A Clamp does not cut the line segment. A Clamp is ConductingEquipment and has one Terminal with an associated ConnectivityNode. Any other ConductingEquipment can be connected to the Clamp ConnectivityNode.",
1221        attrs: &[],
1222    },
1223    ClassDef {
1224        ns: "https://cim4.eu/ns/nc#",
1225        local: "ClimateZone",
1226        qualified: "nc:ClimateZone",
1227        super_class: Some(440),
1228        concrete: true,
1229        origins: &["ER", "SIS", "SSI"],
1230        comment: "A geographically defined area characterised according to a climate classification and used as a spatial reference for representative meteorological, hydrological and marine conditions relevant to energy production, consumption and resource availability. Note: ClimateZone provides selected climatological normal values as structured information and may reference time series for detailed climate, weather, hydrological and marine data. A normal value represents a climatological reference condition for the area. Time series may represent observed, historical, modelled, forecast, scenario or climatological data. Reference period, scenario, source, calculation method and other provenance information are represented separately. ClimateZone may be used to associate energy resources and energy-system studies with climate-dependent conditions such as temperature, wind, solar irradiance, precipitation, snow, hydro inflow, extreme weather, waves, sea ice and sea currents. Example: Climate study zones defined in the Pan-European Climate Database (PECD) for European energy-system modelling.",
1231        attrs: &[
1232            AttrDef { id: "ClimateZone.ClimateZoneRegularSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ClimateZoneRegularSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The climate zone regular schedule for this climate zone." },
1233            AttrDef { id: "ClimateZone.ClimateZoneSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ClimateZoneSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The climate zone schedule for the clomate zone." },
1234            AttrDef { id: "ClimateZone.EnergyResourceGroupCapacity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyResourceGroupCapacity", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The Energy Resource Group Capacity that has this climate zone." },
1235            AttrDef { id: "ClimateZone.avalancheDangerIndex", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SSI"], comment: "An index representing the avalanche danger for the corresponding time interval. Note: The applicable avalanche danger methodology and classification are identified through the associated data provenance. The CIM model does not prescribe a particular avalanche danger scale. Where the index represents categorical danger levels, the numerical values shall not be assumed to form a linear scale. Example: Using the European Avalanche Danger Scale: '1' (Low), '2' (Moderate), '3' (Considerable), '4' (High), '5' (Very high)." },
1236            AttrDef { id: "ClimateZone.classificationKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "ClimateZoneClassificationKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["ER"], comment: "The kind of climate classification scheme according to which the ClimateZone is defined. Note: The attribute identifies the classification scheme and not the code or identifier of the ClimateZone within that scheme. When the classification scheme is not explicitly represented by ClimateZoneClassificationKind, classificationKind shall be set to other and otherClassification shall identify the scheme." },
1237            AttrDef { id: "ClimateZone.cloudCover", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The proportion of the sky covered by cloud for the corresponding time interval." },
1238            AttrDef { id: "ClimateZone.code", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["ER"], comment: "The code or identifier assigned to the ClimateZone by the selected climate classification scheme. Note: The interpretation of the code depends on ClimateZone.classificationKind. The code should conform to the identification or naming convention defined by the corresponding classification scheme. Example: 'Dfb' or 'Cfb' for K&#246;ppen-Geiger, or a zone code defined by PECD or a national classification." },
1239            AttrDef { id: "ClimateZone.dewPointTempAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The dew-point temperature at 2 metres above ground level for the corresponding time interval." },
1240            AttrDef { id: "ClimateZone.diffuseSolarIrradiance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Irradiance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The diffuse solar irradiance for the corresponding time interval." },
1241            AttrDef { id: "ClimateZone.directSolarIrradiance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Irradiance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The direct solar irradiance for the corresponding time interval." },
1242            AttrDef { id: "ClimateZone.droughtCode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SSI"], comment: "The Drought Code for the corresponding time interval. Note: The Drought Code is a component of the Canadian Fire Weather Index System representing the moisture condition of deep, compact organic fuel layers. It is particularly useful for representing the cumulative effect of prolonged dry conditions and seasonal drought on wildfire potential. Higher values indicate drier conditions. The attribute is used when the applicable wildfire methodology provides a Drought Code. Example: Values such as '15', '300' and '600' represent progressively drier conditions in the Drought Code scale. No universal low, moderate or high classification is implied by these example values; interpretation is provided by the applicable methodology and provenance." },
1243            AttrDef { id: "ClimateZone.evaporation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The evaporation and evapotranspiration during the corresponding time interval, expressed as an equivalent depth of water. Note: The sign convention, where relevant, is defined by the applicable data specification." },
1244            AttrDef { id: "ClimateZone.fireWeatherIndex", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SSI"], comment: "A fire-weather index indicating the meteorological conditions relevant to wildfire danger for the corresponding time interval. Note: The applicable fire-weather index methodology and classification are identified through the associated data provenance. The CIM model does not prescribe a specific wildfire classification. The Canadian Fire Weather Index (FWI) System, as used by European Forest Fire Information System (EFFIS), is one example. In this system, the index combines fuel-moisture and fire-behaviour components derived from temperature, relative humidity, wind speed and precipitation. Higher values indicate conditions increasingly favourable to intense wildfire. Example: Using the EFFIS classification: '5.0' (Very low), '10.0' (Low), '15.0' (Moderate), '37.77' (High), '40.01' (Very high), '55.55' (Extreme)." },
1245            AttrDef { id: "ClimateZone.freezingPrecipitationDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SSI"], comment: "The number of days with freezing precipitation within the corresponding time interval." },
1246            AttrDef { id: "ClimateZone.frostDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SSI"], comment: "The number of frost days within the corresponding time interval." },
1247            AttrDef { id: "ClimateZone.globalSolarIrradiance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Irradiance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The global solar irradiance for the corresponding time interval. Note: Global solar irradiance represents the total direct and diffuse solar power incident per unit area on the applicable reference surface. It may be used as an environmental input for applications such as photovoltaic production and thermal rating of overhead conductors. The orientation of the reference surface is defined by the applicable dataset or provenance information." },
1248            AttrDef { id: "ClimateZone.hailDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SSI"], comment: "The number of days on which hail occurs within the corresponding time interval." },
1249            AttrDef { id: "ClimateZone.heatwaveDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SSI"], comment: "The number of days occurring as part of a heatwave within the corresponding time interval." },
1250            AttrDef { id: "ClimateZone.hotDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SSI"], comment: "The number of days meeting the applicable hot-day criterion within the corresponding time interval." },
1251            AttrDef { id: "ClimateZone.hydroInflow", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The energy equivalent of natural hydro inflow associated with hydro resources in the ClimateZone during the corresponding time interval. Note: The value represents inflow energy for the interval. For example, a weekly TimePoint may contain the natural hydro inflow energy for that week." },
1252            AttrDef { id: "ClimateZone.icingDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SSI"], comment: "The number of days meeting the applicable icing criterion within the corresponding time interval." },
1253            AttrDef { id: "ClimateZone.lightningDensity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CountPerArea", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The number of lightning events per unit area occurring during the corresponding time interval." },
1254            AttrDef { id: "ClimateZone.maxTempAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The maximum air temperature at 2 metres above ground level during the corresponding time interval. Note: This time series is intended for datasets providing maximum temperature directly." },
1255            AttrDef { id: "ClimateZone.minTempAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The minimum air temperature at 2 metres above ground level during the corresponding time interval. Note: This time series is intended for datasets providing minimum temperature directly, for example daily minimum temperature. It is not required when the minimum can appropriately be derived from tempAt2m." },
1256            AttrDef { id: "ClimateZone.normalAnnualDiffuseSolarIrradiation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Irradiation", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal total diffuse solar energy received per unit area during an annual period. Note: The orientation of the applicable reference surface is defined by the data specification or provenance information." },
1257            AttrDef { id: "ClimateZone.normalAnnualDirectSolarIrradiation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Irradiation", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal total direct solar energy received per unit area during an annual period. Note: The orientation of the applicable reference surface is defined by the data specification or provenance information." },
1258            AttrDef { id: "ClimateZone.normalAnnualEvaporation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal amount of water returned to the atmosphere through evaporation and evapotranspiration during an annual period, expressed as an equivalent depth of water." },
1259            AttrDef { id: "ClimateZone.normalAnnualExtremeFireDangerDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The climatological normal number of days during an annual period classified as having extreme fire danger. Note: The criterion for extreme fire danger is determined by the applicable wildfire index and classification identified through the data provenance. The CIM model does not prescribe a specific threshold. Example: When the European Forest Fire Information System (EFFIS) classification is applied, extreme fire danger corresponds to an Canadian Fire Weather Index (FWI) of 50 or greater. A value of '18.5' therefore indicates a climatological normal of 18.5 days per year with FWI greater than or equal to 50." },
1260            AttrDef { id: "ClimateZone.normalAnnualFreezingPrecipitationDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The climatological normal number of days during an annual period with freezing precipitation." },
1261            AttrDef { id: "ClimateZone.normalAnnualFrostDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The climatological normal number of frost days during an annual period. Note: The threshold used to define a frost day is determined by the applicable meteorological specification, normally using minimum air temperature." },
1262            AttrDef { id: "ClimateZone.normalAnnualGlobalSolarIrradiation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Irradiation", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal total global solar energy received per unit area during an annual period. Note: Global solar irradiation includes direct and diffuse solar radiation incident on the applicable reference surface. For a horizontal reference surface it corresponds to global horizontal irradiation. Example: A value may be expressed as annual solar energy per square metre, such as MJ/m2 or an equivalent unit." },
1263            AttrDef { id: "ClimateZone.normalAnnualHailDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The climatological normal number of days during an annual period on which hail occurs." },
1264            AttrDef { id: "ClimateZone.normalAnnualHeatwaveDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The climatological normal number of days during an annual period occurring as part of a heatwave. Note: A heatwave represents unusually high temperature persisting for a defined minimum duration. The temperature criteria and minimum duration are specified by the applicable climate dataset or scenario." },
1265            AttrDef { id: "ClimateZone.normalAnnualHighAvalancheDangerDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The climatological normal number of days during an annual period classified as having high avalanche danger. Note: The criterion for high avalanche danger is determined by the applicable avalanche methodology and classification identified through data provenance. The CIM model does not prescribe a particular threshold. Example: '8.5' when high avalanche danger is defined as EAWS danger level 4 or 5." },
1266            AttrDef { id: "ClimateZone.normalAnnualHotDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The climatological normal number of hot days during an annual period. Note: A hot day is defined using the threshold specified by the applicable climate dataset or scenario. The threshold may be an absolute temperature or a percentile relative to the local climatology." },
1267            AttrDef { id: "ClimateZone.normalAnnualHydroInflow", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal energy equivalent of natural hydro inflow associated with hydro resources in the ClimateZone during an annual period. Note: The value represents the potential energy associated with natural inflow and not generated electrical energy. This representation is intended for aggregated power-system and adequacy studies where hydro inflow is expressed as an energy quantity. Example: The value may represent the annual energy equivalent of natural inflow to reservoir hydropower resources within the ClimateZone." },
1268            AttrDef { id: "ClimateZone.normalAnnualIcingDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The climatological normal number of days during an annual period with meteorological conditions producing significant icing. Note: The criteria defining an icing day are provided by the applicable data specification or provenance information. The attribute may be used to characterise climate-related availability risk for overhead lines, wind turbines and other exposed equipment." },
1269            AttrDef { id: "ClimateZone.normalAnnualLightningDensity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CountPerArea", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal number of lightning events per unit area during an annual period. Note: The definition of a lightning event, for example a flash or ground strike, is determined by the applicable data specification. Example: 1.5 flashes/km2 indicates that an average of 1.5 lightning flashes per square kilometre occurs during a normal year." },
1270            AttrDef { id: "ClimateZone.normalAnnualMaxDailyPrecipitation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal of the maximum precipitation accumulated during a single day within an annual period. Note: This value provides an indication of exposure to extreme precipitation that is not represented by normalAnnualPrecipitation alone. Example: A value of 85 mm indicates that the normal annual maximum one-day precipitation is approximately 85 mm." },
1271            AttrDef { id: "ClimateZone.normalAnnualMaxSignificantWaveHeight", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal of the maximum significant wave height occurring during an annual period. Note: This value characterises exposure to severe sea states relevant to accessibility, equipment loading and availability of offshore resources." },
1272            AttrDef { id: "ClimateZone.normalAnnualMaxTempAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal of the maximum air temperature at 2 metres above ground level occurring during an annual period. Note: This represents an annual extreme maximum rather than the normal mean of daily maximum temperatures." },
1273            AttrDef { id: "ClimateZone.normalAnnualMaxWindGustAt10m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Speed", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal of the maximum wind gust at 10 metres above ground level occurring during an annual period. Note: This value characterises exposure to strong short-duration wind events rather than the normal wind resource. Example: A value of 31 m/s indicates that the climatological normal annual maximum gust is approximately 31 m/s." },
1274            AttrDef { id: "ClimateZone.normalAnnualMinTempAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal of the minimum air temperature at 2 metres above ground level occurring during an annual period. Note: This represents an annual extreme minimum rather than the normal mean of daily minimum temperatures." },
1275            AttrDef { id: "ClimateZone.normalAnnualPotentialEvaporation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal potential amount of water that could be returned to the atmosphere by evaporation during an annual period, expressed as an equivalent depth of water. Note: Potential evaporation represents atmospheric evaporative demand and is not limited by actual water availability." },
1276            AttrDef { id: "ClimateZone.normalAnnualPrecipitation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal total precipitation received during an annual period. Note: Precipitation includes liquid and solid precipitation and is expressed as an equivalent depth of water over the area. Example: 1100 mm represents an annual precipitation volume equivalent to 1100 litres of water per square metre." },
1277            AttrDef { id: "ClimateZone.normalAnnualRainfall", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal amount of liquid precipitation received during an annual period." },
1278            AttrDef { id: "ClimateZone.normalAnnualRunoff", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal runoff during an annual period, expressed as an equivalent depth of water over the area. Note: Runoff represents water leaving the land surface and subsurface drainage system after precipitation, snowmelt, evaporation, infiltration and storage effects." },
1279            AttrDef { id: "ClimateZone.normalAnnualSeaIceDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The climatological normal number of days during an annual period for which sea ice is present within the ClimateZone. Note: The minimum ice concentration or other criterion used to determine sea-ice presence is defined by the applicable data specification." },
1280            AttrDef { id: "ClimateZone.normalAnnualSnowfall", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal amount of solid precipitation received during an annual period, expressed as its equivalent amount of liquid water. Note: The value represents water input from snowfall rather than physical snow depth. Example: 500 mm means that the annual snowfall normally contains an amount of water equivalent to a 500 mm layer of liquid water." },
1281            AttrDef { id: "ClimateZone.normalAnnualSnowmelt", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal amount of water released by melting snow during an annual period. Note: Snowmelt is expressed as the equivalent depth of liquid water produced from the snowpack." },
1282            AttrDef { id: "ClimateZone.normalAnnualSunshineDuration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Hours", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal total duration of sunshine during an annual period. Example: 1650 h represents approximately 1650 hours of sunshine during a normal year." },
1283            AttrDef { id: "ClimateZone.normalAnnualThunderDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The climatological normal number of days during an annual period on which thunder is observed." },
1284            AttrDef { id: "ClimateZone.normalAnnualTropicalNights", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The climatological normal number of tropical nights during an annual period. Note: A tropical night is a night for which the minimum air temperature remains above the applicable threshold. A threshold of 20 degC is commonly used in European climate indicators, but the applicable threshold is defined by the dataset or scenario." },
1285            AttrDef { id: "ClimateZone.normalCloudCover", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal proportion of the sky covered by cloud." },
1286            AttrDef { id: "ClimateZone.normalDewPointTempAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal dew-point temperature at 2 metres above ground level. Note: Dew-point temperature indicates atmospheric moisture content and may be used together with air temperature to derive relative humidity and icing conditions." },
1287            AttrDef { id: "ClimateZone.normalMaxSeaCurrentSpeed", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Speed", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal maximum sea-current speed within the ClimateZone. Note: The value characterises strong current conditions relevant to marine-energy resource potential and equipment loading. The applicable depth and method for determining the maximum are defined by the source dataset or provenance information." },
1288            AttrDef { id: "ClimateZone.normalMaxSeaIceThickness", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal maximum sea-ice thickness during the seasonal cycle within a marine ClimateZone. Note: This attribute is primarily relevant for high-latitude offshore areas and may be used when assessing accessibility and availability of offshore resources. Example: 0.8 m indicates that the normal seasonal maximum sea-ice thickness is approximately 0.8 metres." },
1289            AttrDef { id: "ClimateZone.normalMaxSnowWater", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal of the maximum amount of water stored in the snowpack during the seasonal cycle. Note: Snow water represents the water content of the snowpack expressed as an equivalent depth of liquid water. The value characterises seasonal snow storage and is more hydrologically meaningful than physical snow depth. Example: 450 mm indicates that the normal seasonal maximum snowpack contains an amount of water equivalent to a 450 mm layer of liquid water." },
1290            AttrDef { id: "ClimateZone.normalPopulationWeightedTempAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal population-weighted air temperature at 2 metres above ground level. Note: Population-weighted temperature is a spatially aggregated temperature in which locations with a higher population are given greater weight. It provides a representative temperature for the conditions experienced by the population and is particularly relevant for energy-demand modelling. The population dataset, weighting method and other provenance information are represented separately." },
1291            AttrDef { id: "ClimateZone.normalRelativeHumidityAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal relative humidity at 2 metres above ground level." },
1292            AttrDef { id: "ClimateZone.normalSeaCurrentSpeed", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Speed", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal speed of the sea-water current within the ClimateZone. Note: Sea-current speed depends on depth. The applicable depth or vertical reference is defined by the source dataset or provenance information." },
1293            AttrDef { id: "ClimateZone.normalSeaSurfaceTemp", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal sea-surface temperature within a marine ClimateZone." },
1294            AttrDef { id: "ClimateZone.normalSignificantWaveHeight", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal significant wave height within a marine ClimateZone. Note: Significant wave height is a statistical representation of sea state commonly approximated as the mean height of the highest one-third of waves. Example: A value of 2.1 m represents a climate where the normal significant wave height is approximately 2.1 metres." },
1295            AttrDef { id: "ClimateZone.normalSurfacePressure", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Pressure", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal atmospheric pressure at the surface." },
1296            AttrDef { id: "ClimateZone.normalTempAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal air temperature at 2 metres above ground level. Note: Two metres above ground is the standard reference height for near-surface air temperature." },
1297            AttrDef { id: "ClimateZone.normalWavePeriod", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal representative wave period within a marine ClimateZone. Note: The precise wave-period statistic, such as mean or peak period, is determined by the applicable data specification." },
1298            AttrDef { id: "ClimateZone.normalWindSpeedAt100m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Speed", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal wind speed at 100 metres above ground level. Note: Wind speed at 100 metres is commonly available in meteorological and energy datasets and provides a useful indication of the wind resource for electricity generation." },
1299            AttrDef { id: "ClimateZone.normalWindSpeedAt10m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Speed", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The climatological normal wind speed at 10 metres above ground level. Note: Ten metres above ground is the conventional reference height for near-surface meteorological wind observations." },
1300            AttrDef { id: "ClimateZone.otherClassification", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["ER"], comment: "The name or identifier of the climate classification scheme when ClimateZone.classificationKind equals other. Note: This attribute shall only be used when ClimateZone.classificationKind is set to other. It identifies the classification scheme that is not explicitly represented by ClimateZoneClassificationKind. The value should be sufficiently descriptive to identify the scheme. Example: 'Trewartha Climate Classification', 'Holdridge Life Zones', 'Thornthwaite Climate Classification', 'Company Internal Climate Zones'." },
1301            AttrDef { id: "ClimateZone.populationWeightedTempAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The population-weighted air temperature at 2 metres above ground level for the corresponding time interval. Note: The value is derived by spatially weighting the air temperature within the represented area by the population distribution. It may be used for modelling temperature-dependent energy consumption, including heating and cooling demand. The population dataset and weighting method are identified through the applicable provenance information." },
1302            AttrDef { id: "ClimateZone.potentialEvaporation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The potential evaporation during the corresponding time interval, expressed as an equivalent depth of water." },
1303            AttrDef { id: "ClimateZone.precipitation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The total precipitation received during the corresponding time interval. Note: The value represents accumulated precipitation expressed as an equivalent depth of water." },
1304            AttrDef { id: "ClimateZone.rainfall", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The amount of liquid precipitation received during the corresponding time interval. Note: The value represents accumulated rainfall expressed as an equivalent depth of water." },
1305            AttrDef { id: "ClimateZone.ref", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "URI", is_list: false, used: true, xsd: "anyURI", value_ns: "", origins: &["ER"], comment: "A URI identifying the ClimateZone within the applicable climate classification scheme. Note: The URI identifies the classified zone or concept rather than the classification scheme itself. It may be used as an alternative to code when the classification is published as linked data or another URI-based controlled vocabulary. Both code and ref may be provided when the classification defines both representations. Example: 'https://example.org/climate/pecd/zone-12' as an illustrative URI identifying a climate zone within a PECD classification." },
1306            AttrDef { id: "ClimateZone.relativeHumidityAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The relative humidity at 2 metres above ground level for the corresponding time interval." },
1307            AttrDef { id: "ClimateZone.runoff", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The runoff during the corresponding time interval, expressed as an equivalent depth of water over the area." },
1308            AttrDef { id: "ClimateZone.seaCurrentDirection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The direction of the sea-water current for the corresponding time interval. Note: Current direction normally identifies the direction towards which the water is moving, unlike meteorological wind direction, which identifies the direction from which the wind originates." },
1309            AttrDef { id: "ClimateZone.seaCurrentSpeed", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Speed", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The speed of the sea-water current for the corresponding time interval. Note: The applicable depth or vertical reference is defined by the source dataset or provenance information." },
1310            AttrDef { id: "ClimateZone.seaIceConcentration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The proportion of the sea surface covered by sea ice for the corresponding time interval. Note: Sea-ice concentration provides the time-dependent information needed to determine sea-ice presence and extent. It replaces a simple integer seaIce value, which cannot distinguish between partial and complete ice coverage." },
1311            AttrDef { id: "ClimateZone.seaIceThickness", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The sea-ice thickness for the corresponding time interval." },
1312            AttrDef { id: "ClimateZone.seaSurfaceTemp", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The sea-surface temperature for the corresponding time interval." },
1313            AttrDef { id: "ClimateZone.significantWaveHeight", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The significant wave height for the corresponding time interval." },
1314            AttrDef { id: "ClimateZone.snowWater", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The amount of water stored in the snowpack at the corresponding time, expressed as an equivalent depth of liquid water. Example: January = 180 mm, March = 430 mm, May = 160 mm, June = 0 mm." },
1315            AttrDef { id: "ClimateZone.snowfall", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The solid precipitation received during the corresponding time interval, expressed as its equivalent amount of liquid water." },
1316            AttrDef { id: "ClimateZone.snowmelt", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The amount of water released by melting snow during the corresponding time interval, expressed as an equivalent depth of liquid water." },
1317            AttrDef { id: "ClimateZone.sunshineDuration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Hours", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The duration of sunshine during the corresponding time interval." },
1318            AttrDef { id: "ClimateZone.surfacePressure", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Pressure", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The atmospheric pressure at the surface for the corresponding time interval. Note: Surface pressure may be relevant when determining air density for wind-energy calculations." },
1319            AttrDef { id: "ClimateZone.tempAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The air temperature at 2 metres above ground level for the corresponding time interval." },
1320            AttrDef { id: "ClimateZone.thunderDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SSI"], comment: "The number of days on which thunder is observed within the corresponding time interval." },
1321            AttrDef { id: "ClimateZone.tropicalNights", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SSI"], comment: "The number of nights meeting the applicable tropical-night criterion within the corresponding time interval." },
1322            AttrDef { id: "ClimateZone.waveDirection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The direction from which waves propagate for the corresponding time interval. Note: No corresponding normal value is defined because a single average direction may not meaningfully represent a multi-directional sea state." },
1323            AttrDef { id: "ClimateZone.wavePeriod", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The representative wave period for the corresponding time interval." },
1324            AttrDef { id: "ClimateZone.windDirectionAt100m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The wind direction at 100 metres above ground level for the corresponding time interval. Note: Meteorological wind direction normally identifies the direction from which the wind originates." },
1325            AttrDef { id: "ClimateZone.windDirectionAt10m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The wind direction at 10 metres above ground level for the corresponding time interval. Note: Meteorological wind direction normally identifies the direction from which the wind originates. No corresponding normal attribute is defined because a single average direction may be misleading for multimodal wind regimes." },
1326            AttrDef { id: "ClimateZone.windGustAt10m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Speed", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The maximum wind gust at 10 metres above ground level during the corresponding time interval. Note: The time interval over which the gust maximum applies is defined by the associated Schedule and TimePoint." },
1327            AttrDef { id: "ClimateZone.windSpeedAt100m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Speed", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The wind speed at 100 metres above ground level for the corresponding time interval." },
1328            AttrDef { id: "ClimateZone.windSpeedAt10m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Speed", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The wind speed at 10 metres above ground level for the corresponding time interval." },
1329        ],
1330    },
1331    ClassDef {
1332        ns: "https://cim4.eu/ns/nc#",
1333        local: "ClimateZoneRegularSchedule",
1334        qualified: "nc:ClimateZoneRegularSchedule",
1335        super_class: Some(59),
1336        concrete: true,
1337        origins: &["SIS"],
1338        comment: "Regular schedule for ClimateZone.",
1339        attrs: &[
1340            AttrDef { id: "ClimateZoneRegularSchedule.ClimateZone", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ClimateZone", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The climate zone that has regular schedule." },
1341            AttrDef { id: "ClimateZoneRegularSchedule.avalancheDangerIndex", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "An index representing the avalanche danger for the corresponding time interval. Note: The applicable avalanche danger methodology and classification are identified through the associated data provenance. The CIM model does not prescribe a particular avalanche danger scale. Where the index represents categorical danger levels, the numerical values shall not be assumed to form a linear scale. Example: Using the European Avalanche Danger Scale: '1' (Low), '2' (Moderate), '3' (Considerable), '4' (High), '5' (Very high)." },
1342            AttrDef { id: "ClimateZoneRegularSchedule.cloudCover", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The proportion of the sky covered by cloud for the corresponding time interval." },
1343            AttrDef { id: "ClimateZoneRegularSchedule.dewPointTempAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The dew-point temperature at 2 metres above ground level for the corresponding time interval." },
1344            AttrDef { id: "ClimateZoneRegularSchedule.diffuseSolarIrradiance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Irradiance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The diffuse solar irradiance for the corresponding time interval." },
1345            AttrDef { id: "ClimateZoneRegularSchedule.directSolarIrradiance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Irradiance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The direct solar irradiance for the corresponding time interval." },
1346            AttrDef { id: "ClimateZoneRegularSchedule.droughtCode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The Drought Code for the corresponding time interval. Note: The Drought Code is a component of the Canadian Fire Weather Index System representing the moisture condition of deep, compact organic fuel layers. It is particularly useful for representing the cumulative effect of prolonged dry conditions and seasonal drought on wildfire potential. Higher values indicate drier conditions. The attribute is used when the applicable wildfire methodology provides a Drought Code. Example: Values such as '15', '300' and '600' represent progressively drier conditions in the Drought Code scale. No universal low, moderate or high classification is implied by these example values; interpretation is provided by the applicable methodology and provenance." },
1347            AttrDef { id: "ClimateZoneRegularSchedule.evaporation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The evaporation and evapotranspiration during the corresponding time interval, expressed as an equivalent depth of water. Note: The sign convention, where relevant, is defined by the applicable data specification." },
1348            AttrDef { id: "ClimateZoneRegularSchedule.fireWeatherIndex", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "A fire-weather index indicating the meteorological conditions relevant to wildfire danger for the corresponding time interval. Note: The applicable fire-weather index methodology and classification are identified through the associated data provenance. The CIM model does not prescribe a specific wildfire classification. The Canadian Fire Weather Index (FWI) System, as used by European Forest Fire Information System (EFFIS), is one example. In this system, the index combines fuel-moisture and fire-behaviour components derived from temperature, relative humidity, wind speed and precipitation. Higher values indicate conditions increasingly favourable to intense wildfire. Example: Using the EFFIS classification: '5.0' (Very low), '10.0' (Low), '15.0' (Moderate), '37.77' (High), '40.01' (Very high), '55.55' (Extreme)." },
1349            AttrDef { id: "ClimateZoneRegularSchedule.freezingPrecipitationDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The number of days with freezing precipitation within the corresponding time interval." },
1350            AttrDef { id: "ClimateZoneRegularSchedule.frostDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The number of frost days within the corresponding time interval." },
1351            AttrDef { id: "ClimateZoneRegularSchedule.globalSolarIrradiance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Irradiance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The global solar irradiance for the corresponding time interval. Note: Global solar irradiance represents the total direct and diffuse solar power incident per unit area on the applicable reference surface. It may be used as an environmental input for applications such as photovoltaic production and thermal rating of overhead conductors. The orientation of the reference surface is defined by the applicable dataset or provenance information." },
1352            AttrDef { id: "ClimateZoneRegularSchedule.hailDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The number of days on which hail occurs within the corresponding time interval." },
1353            AttrDef { id: "ClimateZoneRegularSchedule.heatwaveDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The number of days occurring as part of a heatwave within the corresponding time interval." },
1354            AttrDef { id: "ClimateZoneRegularSchedule.hotDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The number of days meeting the applicable hot-day criterion within the corresponding time interval." },
1355            AttrDef { id: "ClimateZoneRegularSchedule.hydroInflow", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The energy equivalent of natural hydro inflow associated with hydro resources in the ClimateZone during the corresponding time interval. Note: The value represents inflow energy for the interval. For example, a weekly TimePoint may contain the natural hydro inflow energy for that week." },
1356            AttrDef { id: "ClimateZoneRegularSchedule.icingDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The number of days meeting the applicable icing criterion within the corresponding time interval." },
1357            AttrDef { id: "ClimateZoneRegularSchedule.lightningDensity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CountPerArea", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The number of lightning events per unit area occurring during the corresponding time interval." },
1358            AttrDef { id: "ClimateZoneRegularSchedule.maxTempAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The maximum air temperature at 2 metres above ground level during the corresponding time interval. Note: This time series is intended for datasets providing maximum temperature directly." },
1359            AttrDef { id: "ClimateZoneRegularSchedule.minTempAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The minimum air temperature at 2 metres above ground level during the corresponding time interval. Note: This time series is intended for datasets providing minimum temperature directly, for example daily minimum temperature. It is not required when the minimum can appropriately be derived from tempAt2m." },
1360            AttrDef { id: "ClimateZoneRegularSchedule.populationWeightedTempAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The population-weighted air temperature at 2 metres above ground level for the corresponding time interval. Note: The value is derived by spatially weighting the air temperature within the represented area by the population distribution. It may be used for modelling temperature-dependent energy consumption, including heating and cooling demand. The population dataset and weighting method are identified through the applicable provenance information." },
1361            AttrDef { id: "ClimateZoneRegularSchedule.potentialEvaporation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The potential evaporation during the corresponding time interval, expressed as an equivalent depth of water." },
1362            AttrDef { id: "ClimateZoneRegularSchedule.precipitation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The total precipitation received during the corresponding time interval. Note: The value represents accumulated precipitation expressed as an equivalent depth of water." },
1363            AttrDef { id: "ClimateZoneRegularSchedule.rainfall", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The amount of liquid precipitation received during the corresponding time interval. Note: The value represents accumulated rainfall expressed as an equivalent depth of water." },
1364            AttrDef { id: "ClimateZoneRegularSchedule.relativeHumidityAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The relative humidity at 2 metres above ground level for the corresponding time interval." },
1365            AttrDef { id: "ClimateZoneRegularSchedule.runoff", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The runoff during the corresponding time interval, expressed as an equivalent depth of water over the area." },
1366            AttrDef { id: "ClimateZoneRegularSchedule.seaCurrentDirection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The direction of the sea-water current for the corresponding time interval. Note: Current direction normally identifies the direction towards which the water is moving, unlike meteorological wind direction, which identifies the direction from which the wind originates." },
1367            AttrDef { id: "ClimateZoneRegularSchedule.seaCurrentSpeed", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Speed", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The speed of the sea-water current for the corresponding time interval. Note: The applicable depth or vertical reference is defined by the source dataset or provenance information." },
1368            AttrDef { id: "ClimateZoneRegularSchedule.seaIceConcentration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The proportion of the sea surface covered by sea ice for the corresponding time interval. Note: Sea-ice concentration provides the time-dependent information needed to determine sea-ice presence and extent. It replaces a simple integer seaIce value, which cannot distinguish between partial and complete ice coverage." },
1369            AttrDef { id: "ClimateZoneRegularSchedule.seaIceThickness", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The sea-ice thickness for the corresponding time interval." },
1370            AttrDef { id: "ClimateZoneRegularSchedule.seaSurfaceTemp", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The sea-surface temperature for the corresponding time interval." },
1371            AttrDef { id: "ClimateZoneRegularSchedule.significantWaveHeight", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The significant wave height for the corresponding time interval." },
1372            AttrDef { id: "ClimateZoneRegularSchedule.snowWater", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The amount of water stored in the snowpack at the corresponding time, expressed as an equivalent depth of liquid water. Example: January = 180 mm, March = 430 mm, May = 160 mm, June = 0 mm." },
1373            AttrDef { id: "ClimateZoneRegularSchedule.snowfall", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The solid precipitation received during the corresponding time interval, expressed as its equivalent amount of liquid water." },
1374            AttrDef { id: "ClimateZoneRegularSchedule.snowmelt", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The amount of water released by melting snow during the corresponding time interval, expressed as an equivalent depth of liquid water." },
1375            AttrDef { id: "ClimateZoneRegularSchedule.sunshineDuration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Hours", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The duration of sunshine during the corresponding time interval." },
1376            AttrDef { id: "ClimateZoneRegularSchedule.surfacePressure", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Pressure", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The atmospheric pressure at the surface for the corresponding time interval. Note: Surface pressure may be relevant when determining air density for wind-energy calculations." },
1377            AttrDef { id: "ClimateZoneRegularSchedule.tempAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The air temperature at 2 metres above ground level for the corresponding time interval." },
1378            AttrDef { id: "ClimateZoneRegularSchedule.thunderDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The number of days on which thunder is observed within the corresponding time interval." },
1379            AttrDef { id: "ClimateZoneRegularSchedule.tropicalNights", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The number of nights meeting the applicable tropical-night criterion within the corresponding time interval." },
1380            AttrDef { id: "ClimateZoneRegularSchedule.waveDirection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The direction from which waves propagate for the corresponding time interval. Note: No corresponding normal value is defined because a single average direction may not meaningfully represent a multi-directional sea state." },
1381            AttrDef { id: "ClimateZoneRegularSchedule.wavePeriod", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The representative wave period for the corresponding time interval." },
1382            AttrDef { id: "ClimateZoneRegularSchedule.windDirectionAt100m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The wind direction at 100 metres above ground level for the corresponding time interval. Note: Meteorological wind direction normally identifies the direction from which the wind originates." },
1383            AttrDef { id: "ClimateZoneRegularSchedule.windDirectionAt10m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The wind direction at 10 metres above ground level for the corresponding time interval. Note: Meteorological wind direction normally identifies the direction from which the wind originates. No corresponding normal attribute is defined because a single average direction may be misleading for multimodal wind regimes." },
1384            AttrDef { id: "ClimateZoneRegularSchedule.windGustAt10m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Speed", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The maximum wind gust at 10 metres above ground level during the corresponding time interval. Note: The time interval over which the gust maximum applies is defined by the associated Schedule and TimePoint." },
1385            AttrDef { id: "ClimateZoneRegularSchedule.windSpeedAt100m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Speed", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The wind speed at 100 metres above ground level for the corresponding time interval." },
1386            AttrDef { id: "ClimateZoneRegularSchedule.windSpeedAt10m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Speed", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The wind speed at 10 metres above ground level for the corresponding time interval." },
1387        ],
1388    },
1389    ClassDef {
1390        ns: "https://cim4.eu/ns/nc#",
1391        local: "ClimateZoneSchedule",
1392        qualified: "nc:ClimateZoneSchedule",
1393        super_class: Some(57),
1394        concrete: true,
1395        origins: &["SIS"],
1396        comment: "The irregular schedule for the ClimateZone.",
1397        attrs: &[
1398            AttrDef { id: "ClimateZoneSchedule.ClimateZone", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ClimateZone", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The climate zone that has this schedule." },
1399            AttrDef { id: "ClimateZoneSchedule.ClimateZoneTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ClimateZoneTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The climate zone time point of the climate zone schedule." },
1400        ],
1401    },
1402    ClassDef {
1403        ns: "https://cim4.eu/ns/nc#",
1404        local: "ClimateZoneTimePoint",
1405        qualified: "nc:ClimateZoneTimePoint",
1406        super_class: None,
1407        concrete: true,
1408        origins: &["SIS"],
1409        comment: "Climate zone value at a given point in time.",
1410        attrs: &[
1411            AttrDef { id: "ClimateZoneTimePoint.ClimateZoneSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ClimateZoneSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The climate zone schedule that has climate zone time point." },
1412            AttrDef { id: "ClimateZoneTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
1413            AttrDef { id: "ClimateZoneTimePoint.avalancheDangerIndex", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "An index representing the avalanche danger for the corresponding time interval. Note: The applicable avalanche danger methodology and classification are identified through the associated data provenance. The CIM model does not prescribe a particular avalanche danger scale. Where the index represents categorical danger levels, the numerical values shall not be assumed to form a linear scale. Example: Using the European Avalanche Danger Scale: '1' (Low), '2' (Moderate), '3' (Considerable), '4' (High), '5' (Very high)." },
1414            AttrDef { id: "ClimateZoneTimePoint.cloudCover", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The proportion of the sky covered by cloud for the corresponding time interval." },
1415            AttrDef { id: "ClimateZoneTimePoint.dewPointTempAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The dew-point temperature at 2 metres above ground level for the corresponding time interval." },
1416            AttrDef { id: "ClimateZoneTimePoint.diffuseSolarIrradiance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Irradiance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The diffuse solar irradiance for the corresponding time interval." },
1417            AttrDef { id: "ClimateZoneTimePoint.directSolarIrradiance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Irradiance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The direct solar irradiance for the corresponding time interval." },
1418            AttrDef { id: "ClimateZoneTimePoint.droughtCode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The Drought Code for the corresponding time interval. Note: The Drought Code is a component of the Canadian Fire Weather Index System representing the moisture condition of deep, compact organic fuel layers. It is particularly useful for representing the cumulative effect of prolonged dry conditions and seasonal drought on wildfire potential. Higher values indicate drier conditions. The attribute is used when the applicable wildfire methodology provides a Drought Code. Example: Values such as '15', '300' and '600' represent progressively drier conditions in the Drought Code scale. No universal low, moderate or high classification is implied by these example values; interpretation is provided by the applicable methodology and provenance." },
1419            AttrDef { id: "ClimateZoneTimePoint.evaporation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The evaporation and evapotranspiration during the corresponding time interval, expressed as an equivalent depth of water. Note: The sign convention, where relevant, is defined by the applicable data specification." },
1420            AttrDef { id: "ClimateZoneTimePoint.fireWeatherIndex", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "A fire-weather index indicating the meteorological conditions relevant to wildfire danger for the corresponding time interval. Note: The applicable fire-weather index methodology and classification are identified through the associated data provenance. The CIM model does not prescribe a specific wildfire classification. The Canadian Fire Weather Index (FWI) System, as used by European Forest Fire Information System (EFFIS), is one example. In this system, the index combines fuel-moisture and fire-behaviour components derived from temperature, relative humidity, wind speed and precipitation. Higher values indicate conditions increasingly favourable to intense wildfire. Example: Using the EFFIS classification: '5.0' (Very low), '10.0' (Low), '15.0' (Moderate), '37.77' (High), '40.01' (Very high), '55.55' (Extreme)." },
1421            AttrDef { id: "ClimateZoneTimePoint.freezingPrecipitationDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The number of days with freezing precipitation within the corresponding time interval." },
1422            AttrDef { id: "ClimateZoneTimePoint.frostDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The number of frost days within the corresponding time interval." },
1423            AttrDef { id: "ClimateZoneTimePoint.globalSolarIrradiance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Irradiance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The global solar irradiance for the corresponding time interval. Note: Global solar irradiance represents the total direct and diffuse solar power incident per unit area on the applicable reference surface. It may be used as an environmental input for applications such as photovoltaic production and thermal rating of overhead conductors. The orientation of the reference surface is defined by the applicable dataset or provenance information." },
1424            AttrDef { id: "ClimateZoneTimePoint.hailDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The number of days on which hail occurs within the corresponding time interval." },
1425            AttrDef { id: "ClimateZoneTimePoint.heatwaveDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The number of days occurring as part of a heatwave within the corresponding time interval." },
1426            AttrDef { id: "ClimateZoneTimePoint.hotDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The number of days meeting the applicable hot-day criterion within the corresponding time interval." },
1427            AttrDef { id: "ClimateZoneTimePoint.hydroInflow", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The energy equivalent of natural hydro inflow associated with hydro resources in the ClimateZone during the corresponding time interval. Note: The value represents inflow energy for the interval. For example, a weekly TimePoint may contain the natural hydro inflow energy for that week." },
1428            AttrDef { id: "ClimateZoneTimePoint.icingDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The number of days meeting the applicable icing criterion within the corresponding time interval." },
1429            AttrDef { id: "ClimateZoneTimePoint.lightningDensity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CountPerArea", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The number of lightning events per unit area occurring during the corresponding time interval." },
1430            AttrDef { id: "ClimateZoneTimePoint.maxTempAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The maximum air temperature at 2 metres above ground level during the corresponding time interval. Note: This time series is intended for datasets providing maximum temperature directly." },
1431            AttrDef { id: "ClimateZoneTimePoint.minTempAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The minimum air temperature at 2 metres above ground level during the corresponding time interval. Note: This time series is intended for datasets providing minimum temperature directly, for example daily minimum temperature. It is not required when the minimum can appropriately be derived from tempAt2m." },
1432            AttrDef { id: "ClimateZoneTimePoint.populationWeightedTempAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The population-weighted air temperature at 2 metres above ground level for the corresponding time interval. Note: The value is derived by spatially weighting the air temperature within the represented area by the population distribution. It may be used for modelling temperature-dependent energy consumption, including heating and cooling demand. The population dataset and weighting method are identified through the applicable provenance information." },
1433            AttrDef { id: "ClimateZoneTimePoint.potentialEvaporation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The potential evaporation during the corresponding time interval, expressed as an equivalent depth of water." },
1434            AttrDef { id: "ClimateZoneTimePoint.precipitation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The total precipitation received during the corresponding time interval. Note: The value represents accumulated precipitation expressed as an equivalent depth of water." },
1435            AttrDef { id: "ClimateZoneTimePoint.rainfall", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The amount of liquid precipitation received during the corresponding time interval. Note: The value represents accumulated rainfall expressed as an equivalent depth of water." },
1436            AttrDef { id: "ClimateZoneTimePoint.relativeHumidityAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The relative humidity at 2 metres above ground level for the corresponding time interval." },
1437            AttrDef { id: "ClimateZoneTimePoint.runoff", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The runoff during the corresponding time interval, expressed as an equivalent depth of water over the area." },
1438            AttrDef { id: "ClimateZoneTimePoint.seaCurrentDirection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The direction of the sea-water current for the corresponding time interval. Note: Current direction normally identifies the direction towards which the water is moving, unlike meteorological wind direction, which identifies the direction from which the wind originates." },
1439            AttrDef { id: "ClimateZoneTimePoint.seaCurrentSpeed", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Speed", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The speed of the sea-water current for the corresponding time interval. Note: The applicable depth or vertical reference is defined by the source dataset or provenance information." },
1440            AttrDef { id: "ClimateZoneTimePoint.seaIceConcentration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The proportion of the sea surface covered by sea ice for the corresponding time interval. Note: Sea-ice concentration provides the time-dependent information needed to determine sea-ice presence and extent. It replaces a simple integer seaIce value, which cannot distinguish between partial and complete ice coverage." },
1441            AttrDef { id: "ClimateZoneTimePoint.seaIceThickness", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The sea-ice thickness for the corresponding time interval." },
1442            AttrDef { id: "ClimateZoneTimePoint.seaSurfaceTemp", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The sea-surface temperature for the corresponding time interval." },
1443            AttrDef { id: "ClimateZoneTimePoint.significantWaveHeight", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The significant wave height for the corresponding time interval." },
1444            AttrDef { id: "ClimateZoneTimePoint.snowWater", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The amount of water stored in the snowpack at the corresponding time, expressed as an equivalent depth of liquid water. Example: January = 180 mm, March = 430 mm, May = 160 mm, June = 0 mm." },
1445            AttrDef { id: "ClimateZoneTimePoint.snowfall", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The solid precipitation received during the corresponding time interval, expressed as its equivalent amount of liquid water." },
1446            AttrDef { id: "ClimateZoneTimePoint.snowmelt", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The amount of water released by melting snow during the corresponding time interval, expressed as an equivalent depth of liquid water." },
1447            AttrDef { id: "ClimateZoneTimePoint.sunshineDuration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Hours", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The duration of sunshine during the corresponding time interval." },
1448            AttrDef { id: "ClimateZoneTimePoint.surfacePressure", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Pressure", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The atmospheric pressure at the surface for the corresponding time interval. Note: Surface pressure may be relevant when determining air density for wind-energy calculations." },
1449            AttrDef { id: "ClimateZoneTimePoint.tempAt2m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The air temperature at 2 metres above ground level for the corresponding time interval." },
1450            AttrDef { id: "ClimateZoneTimePoint.thunderDays", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The number of days on which thunder is observed within the corresponding time interval." },
1451            AttrDef { id: "ClimateZoneTimePoint.tropicalNights", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The number of nights meeting the applicable tropical-night criterion within the corresponding time interval." },
1452            AttrDef { id: "ClimateZoneTimePoint.waveDirection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The direction from which waves propagate for the corresponding time interval. Note: No corresponding normal value is defined because a single average direction may not meaningfully represent a multi-directional sea state." },
1453            AttrDef { id: "ClimateZoneTimePoint.wavePeriod", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The representative wave period for the corresponding time interval." },
1454            AttrDef { id: "ClimateZoneTimePoint.windDirectionAt100m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The wind direction at 100 metres above ground level for the corresponding time interval. Note: Meteorological wind direction normally identifies the direction from which the wind originates." },
1455            AttrDef { id: "ClimateZoneTimePoint.windDirectionAt10m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The wind direction at 10 metres above ground level for the corresponding time interval. Note: Meteorological wind direction normally identifies the direction from which the wind originates. No corresponding normal attribute is defined because a single average direction may be misleading for multimodal wind regimes." },
1456            AttrDef { id: "ClimateZoneTimePoint.windGustAt10m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Speed", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The maximum wind gust at 10 metres above ground level during the corresponding time interval. Note: The time interval over which the gust maximum applies is defined by the associated Schedule and TimePoint." },
1457            AttrDef { id: "ClimateZoneTimePoint.windSpeedAt100m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Speed", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The wind speed at 100 metres above ground level for the corresponding time interval." },
1458            AttrDef { id: "ClimateZoneTimePoint.windSpeedAt10m", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Speed", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The wind speed at 10 metres above ground level for the corresponding time interval." },
1459        ],
1460    },
1461    ClassDef {
1462        ns: "https://cim4.eu/ns/nc#",
1463        local: "ClosedDistributionSystemOperator",
1464        qualified: "nc:ClosedDistributionSystemOperator",
1465        super_class: Some(546),
1466        concrete: true,
1467        origins: &["ER"],
1468        comment: "A system operator which distributes electricity (or gas) within a geographically confined industrial, commercial or shared services and does not supply household customers.",
1469        attrs: &[],
1470    },
1471    ClassDef {
1472        ns: "https://cim4.eu/ns/nc#",
1473        local: "CogenerationPlant",
1474        qualified: "nc:CogenerationPlant",
1475        super_class: Some(561),
1476        concrete: true,
1477        origins: &["ER"],
1478        comment: "A set of thermal generating units for the production of electrical energy and process steam (usually from the output of the steam turbines). The steam sendout is typically used for industrial purposes or for municipal heating and cooling. Update:",
1479        attrs: &[],
1480    },
1481    ClassDef {
1482        ns: "https://cim4.eu/ns/nc#",
1483        local: "CombinedCyclePlant",
1484        qualified: "nc:CombinedCyclePlant",
1485        super_class: Some(561),
1486        concrete: true,
1487        origins: &["ER"],
1488        comment: "A thermal power plant in which two or more thermal generating units are operated in combination so that heat from one thermodynamic cycle is used as an energy input to another thermodynamic cycle. Note: A combined cycle plant normally includes at least one combustion-turbine generating unit and one steam-turbine generating unit. Dependencies between the thermal generating units may define their relative activation, deactivation and operation.",
1489        attrs: &[
1490            AttrDef { id: "CombinedCyclePlant.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "CombinedCycleConfigurationKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["ER"], comment: "The configuration used to arrange and coordinate the thermal generating units of the combined cycle plant." },
1491        ],
1492    },
1493    ClassDef {
1494        ns: "https://cim4.eu/ns/nc#",
1495        local: "CommonResponsibilityPoint",
1496        qualified: "nc:CommonResponsibilityPoint",
1497        super_class: Some(318),
1498        concrete: false,
1499        origins: &["ER"],
1500        comment: "A Common Responsibility Point represents a named and persistent point in a power system model where two or more parties share a formally agreed responsibility related to the power system. It provides a stable reference for expressing agreements, constraints, and conditions that apply at a specific location in the power system model and that are defined jointly by the involved parties. Note: A CommonResponsibilityPoint is anchored to the connectivity model by association to either a ConnectivityNode (AC grid) or a DCNode (DC grid). This separation allows the same responsibility-point concept to be used consistently for AC and DC networks without duplicating classes.",
1501        attrs: &[
1502            AttrDef { id: "CommonResponsibilityPoint.ConnectivityNode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ConnectivityNode", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The ConnectivityNode that anchors this CommonResponsiblityPoint in the AC grid model." },
1503            AttrDef { id: "CommonResponsibilityPoint.DCNode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCNode", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The DCNode that anchors this CommonResponsibilityPoint in the DC grid model." },
1504            AttrDef { id: "CommonResponsibilityPoint.isDirectCurrent", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER"], comment: "Indicates whether the CommonResponsibilityPoint is anchored to a DC grid node. If isDirectCurrent is true, the CommonResponsibilityPoint shall be associated to a DCNode and shall not be associated to a ConnectivityNode. If isDirectCurrent is false, the CommonResponsibilityPoint shall be associated to a ConnectivityNode and shall not be associated to a DCNode." },
1505        ],
1506    },
1507    ClassDef {
1508        ns: "https://cim4.eu/ns/nc#",
1509        local: "CompensatorController",
1510        qualified: "nc:CompensatorController",
1511        super_class: Some(243),
1512        concrete: true,
1513        origins: &["ER", "SSI"],
1514        comment: "Compensator controller is controlling the equipment to optimize the use of the compensators.",
1515        attrs: &[
1516            AttrDef { id: "CompensatorController.mode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "CompensatorControlModeKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["SSI"], comment: "Mode of the compensator controller." },
1517        ],
1518    },
1519    ClassDef {
1520        ns: "https://cim4.eu/ns/nc#",
1521        local: "CompressedAirEnergyStoragePlant",
1522        qualified: "nc:CompressedAirEnergyStoragePlant",
1523        super_class: Some(240),
1524        concrete: true,
1525        origins: &["ER"],
1526        comment: "An energy storage plant in which energy is stored by compressing air and is subsequently recovered by expanding the compressed air to support electrical generation. The plant may use stored thermal energy, external heat or fuel combustion during the energy recovery process.",
1527        attrs: &[
1528            AttrDef { id: "CompressedAirEnergyStoragePlant.ThermalGeneratingUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ThermalGeneratingUnit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The thermal generating unit that is a member of this compressed air energy storage plant." },
1529        ],
1530    },
1531    ClassDef {
1532        ns: "https://cim.ucaiug.io/ns#",
1533        local: "ConductingEquipment",
1534        qualified: "nc:ConductingEquipment",
1535        super_class: Some(241),
1536        concrete: false,
1537        origins: &["AE", "ER", "SIS", "SSI"],
1538        comment: "The parts of the AC power system that are designed to carry current or that are conductively connected through terminals.",
1539        attrs: &[
1540            AttrDef { id: "ConductingEquipment.AssessedElement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElement", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AE"], comment: "The assessed element indicating that the conducting equipment is assessed, i.e. monitored." },
1541        ],
1542    },
1543    ClassDef {
1544        ns: "https://cim.ucaiug.io/ns#",
1545        local: "Conductor",
1546        qualified: "nc:Conductor",
1547        super_class: Some(90),
1548        concrete: false,
1549        origins: &["ER", "SSI"],
1550        comment: "Combination of conducting material with consistent electrical characteristics, building a single electrical system, used to carry current between points in the power system.",
1551        attrs: &[],
1552    },
1553    ClassDef {
1554        ns: "https://cim.ucaiug.io/ns#",
1555        local: "ConformLoad",
1556        qualified: "nc:ConformLoad",
1557        super_class: Some(230),
1558        concrete: true,
1559        origins: &["SSI"],
1560        comment: "ConformLoad represent loads that follow a daily load change pattern where the pattern can be used to scale the load with a system load.",
1561        attrs: &[],
1562    },
1563    ClassDef {
1564        ns: "https://cim4.eu/ns/nc#",
1565        local: "ConnectingImpactAssessmentMatrix",
1566        qualified: "nc:ConnectingImpactAssessmentMatrix",
1567        super_class: Some(320),
1568        concrete: true,
1569        origins: &["IAM"],
1570        comment: "Connecting system operator matrix is the impact matrix indicating which system operators are connecting for that specific remedial action. The concept of connecting system operator for a remedial action is defined by CSAm Article 2.1(14).",
1571        attrs: &[],
1572    },
1573    ClassDef {
1574        ns: "https://cim.ucaiug.io/ns#",
1575        local: "ConnectivityNode",
1576        qualified: "nc:ConnectivityNode",
1577        super_class: Some(318),
1578        concrete: true,
1579        origins: &["ER"],
1580        comment: "Connectivity nodes are points where terminals of AC conducting equipment are connected together with zero impedance.",
1581        attrs: &[
1582            AttrDef { id: "ConnectivityNode.CommonResponsibilityPoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CommonResponsibilityPoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "CommonResponsibilityPoints anchored to this ConnectivityNode, representing one or more responsibility or agreement contexts that apply at the same AC grid location." },
1583        ],
1584    },
1585    ClassDef {
1586        ns: "https://cim.ucaiug.io/ns#",
1587        local: "ConnectivityNodeContainer",
1588        qualified: "nc:ConnectivityNodeContainer",
1589        super_class: Some(440),
1590        concrete: false,
1591        origins: &["ER"],
1592        comment: "A base class for all objects that may contain connectivity nodes or topological nodes.",
1593        attrs: &[],
1594    },
1595    ClassDef {
1596        ns: "https://cim.ucaiug.io/ns#",
1597        local: "Connector",
1598        qualified: "nc:Connector",
1599        super_class: Some(90),
1600        concrete: false,
1601        origins: &["SSI"],
1602        comment: "A conductor, or group of conductors, with negligible impedance, that serve to connect other conducting equipment within a single substation and are modelled with a single logical terminal.",
1603        attrs: &[],
1604    },
1605    ClassDef {
1606        ns: "https://cim.ucaiug.io/ns#",
1607        local: "Contingency",
1608        qualified: "nc:Contingency",
1609        super_class: Some(318),
1610        concrete: false,
1611        origins: &["AE", "CO", "RA", "RAS", "SAR", "SIS", "SM", "SSI"],
1612        comment: "An event threatening system reliability, consisting of one or more contingency elements.",
1613        attrs: &[
1614            AttrDef { id: "Contingency.AssessedElementWithContingency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElementWithContingency", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AE"], comment: "The contingency and assessed element combination to be simulated for this contingency." },
1615            AttrDef { id: "Contingency.ContingencyElement", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "ContingencyElement", is_list: true, used: false, xsd: "", value_ns: "", origins: &["CO"], comment: "A contingency can have any number of contingency elements." },
1616            AttrDef { id: "Contingency.ContingencyPowerFlowResult", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ContingencyPowerFlowResult", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SAR"], comment: "The power flow result that is associated with a contingency." },
1617            AttrDef { id: "Contingency.ContingencySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ContingencySchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Contingency schedule for a contingecy." },
1618            AttrDef { id: "Contingency.ContingencyWithRemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ContingencyWithRemedialAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The contingency and remedial action combination for this contingency." },
1619            AttrDef { id: "Contingency.CurativeRemedialActionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RAS"], comment: "Curative remedial action schedule linked to this contingency." },
1620            AttrDef { id: "Contingency.EquipmentOperator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SystemOperator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["CO"], comment: "System operator that is operating the equipment that is being run a contingency on." },
1621            AttrDef { id: "Contingency.ObservableQuantity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ObservableQuantity", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SM"], comment: "The observable quantity for this contingency." },
1622            AttrDef { id: "Contingency.PinContingency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PinContingency", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The pin that uses this input." },
1623            AttrDef { id: "Contingency.SimulationEvents", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SimulationEvents", is_list: false, used: true, xsd: "", value_ns: "", origins: &["CO"], comment: "Simulation event for a contingency." },
1624            AttrDef { id: "Contingency.mustStudy", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "Set true if must study this contingency." },
1625            AttrDef { id: "Contingency.normalMustStudy", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["CO"], comment: "Specifies the requirement of study the contingency under normal operating conditions. True means the contingency must be study in a normal scenario. False means that the contingency does not need to be included in the scenario. This is the default value if mustStudy is missing." },
1626            AttrDef { id: "Contingency.normalProbability", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["CO"], comment: "Normal probability of the occurrence of the contingency based on normal operational condition. The value is used as the default if the probability is missing. The allowed value range is [0,100]." },
1627            AttrDef { id: "Contingency.probability", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The forecasted probability of the occurrence of the contingency based on the given operational condition, status of the equipment and the forecasted environment condition. The allowed value range is [0,100]." },
1628        ],
1629    },
1630    ClassDef {
1631        ns: "https://cim4.eu/ns/nc#",
1632        local: "ContingencyArea",
1633        qualified: "nc:ContingencyArea",
1634        super_class: Some(333),
1635        concrete: true,
1636        origins: &["MA"],
1637        comment: "A monitoring area that defines the required contingency elements. This includes elements that are part of the external contingency list.",
1638        attrs: &[],
1639    },
1640    ClassDef {
1641        ns: "https://cim.ucaiug.io/ns#",
1642        local: "ContingencyElement",
1643        qualified: "nc:ContingencyElement",
1644        super_class: Some(318),
1645        concrete: false,
1646        origins: &["CO"],
1647        comment: "An element of a system event to be studied by contingency analysis, representing a change in status of a single piece of equipment.",
1648        attrs: &[
1649            AttrDef { id: "ContingencyElement.Contingency", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "Contingency", is_list: false, used: true, xsd: "", value_ns: "", origins: &["CO"], comment: "A contingency element belongs to one contingency." },
1650        ],
1651    },
1652    ClassDef {
1653        ns: "https://cim.ucaiug.io/ns#",
1654        local: "ContingencyEquipment",
1655        qualified: "nc:ContingencyEquipment",
1656        super_class: Some(99),
1657        concrete: true,
1658        origins: &["CO"],
1659        comment: "Equipment whose in service status is to change, such as a power transformer or AC line segment.",
1660        attrs: &[
1661            AttrDef { id: "ContingencyEquipment.Equipment", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "Equipment", is_list: false, used: true, xsd: "", value_ns: "", origins: &["CO"], comment: "The single piece of equipment to which to apply the contingency." },
1662            AttrDef { id: "ContingencyEquipment.contingentStatus", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Enum, range: "ContingencyEquipmentStatusKind", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["CO"], comment: "The status for the associated equipment when in the contingency state. This status is independent of the case to which the contingency is originally applied, but defines the equipment status when the contingency is applied." },
1663        ],
1664    },
1665    ClassDef {
1666        ns: "https://cim4.eu/ns/nc#",
1667        local: "ContingencyPowerFlowResult",
1668        qualified: "nc:ContingencyPowerFlowResult",
1669        super_class: Some(426),
1670        concrete: true,
1671        origins: &["SAR"],
1672        comment: "Contingency power flow result on a given terminal for a given contingency.",
1673        attrs: &[
1674            AttrDef { id: "ContingencyPowerFlowResult.Contingency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Contingency", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SAR"], comment: "The contingency that has this power flow result." },
1675        ],
1676    },
1677    ClassDef {
1678        ns: "https://cim4.eu/ns/nc#",
1679        local: "ContingencySchedule",
1680        qualified: "nc:ContingencySchedule",
1681        super_class: Some(57),
1682        concrete: true,
1683        origins: &["SIS"],
1684        comment: "The schedule for Contingency.",
1685        attrs: &[
1686            AttrDef { id: "ContingencySchedule.Contingency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Contingency", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Contingency which has a contingency schedule." },
1687            AttrDef { id: "ContingencySchedule.ContingencyTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ContingencyTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point that relates to this contingency schedule." },
1688        ],
1689    },
1690    ClassDef {
1691        ns: "https://cim4.eu/ns/nc#",
1692        local: "ContingencyTimePoint",
1693        qualified: "nc:ContingencyTimePoint",
1694        super_class: None,
1695        concrete: true,
1696        origins: &["SIS"],
1697        comment: "Contingency instruction value at a given point in time.",
1698        attrs: &[
1699            AttrDef { id: "ContingencyTimePoint.ContingencySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ContingencySchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The contingency schedule that has this time point." },
1700            AttrDef { id: "ContingencyTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
1701            AttrDef { id: "ContingencyTimePoint.mustStudy", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SIS"], comment: "Set true if must study this contingency." },
1702            AttrDef { id: "ContingencyTimePoint.probability", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Probability of occurrence. The allowed value range is [0,100]." },
1703        ],
1704    },
1705    ClassDef {
1706        ns: "https://cim4.eu/ns/nc#",
1707        local: "ContingencyWithRemedialAction",
1708        qualified: "nc:ContingencyWithRemedialAction",
1709        super_class: None,
1710        concrete: true,
1711        origins: &["RA", "SIS", "SSI"],
1712        comment: "Combination of a contingency and a remedial action. ContingencyWithRemedialAction shall not be instantiated for preventive RemedialAction (RemedialAction.kind equals RemedialActionKind.preventive).",
1713        attrs: &[
1714            AttrDef { id: "ContingencyWithRemedialAction.Contingency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Contingency", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The contingency that is associated with a remedial action, i.e. the contingency that is the cause for the creation of a remedial action and justifies it or would usually be resolved with a remedial action." },
1715            AttrDef { id: "ContingencyWithRemedialAction.GenericEnablingSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GenericEnablingSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Enabling schedule associated to a contingency with remedial action." },
1716            AttrDef { id: "ContingencyWithRemedialAction.RemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialAction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The remedial action defined for this contingency and remedial action combination." },
1717            AttrDef { id: "ContingencyWithRemedialAction.combinationConstraintKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "ElementCombinationConstraintKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["RA"], comment: "Defines the combination constraint of the Contingency and Remedial Action. If included, this remedial action can only be applied for this contingency. Else if excluded, this remedial action should not be used for this contingency. Else if considered, this remedial action can be considered for this contingency." },
1718            AttrDef { id: "ContingencyWithRemedialAction.enabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "If true, the contingency with remedial action is enabled, otherwise it is disabled." },
1719            AttrDef { id: "ContingencyWithRemedialAction.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["RA"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
1720            AttrDef { id: "ContingencyWithRemedialAction.normalEnabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["RA"], comment: "If true, the contingency with remedial action is enabled, otherwise it is disabled under normal operating conditions." },
1721        ],
1722    },
1723    ClassDef {
1724        ns: "https://cim.ucaiug.io/ns#",
1725        local: "ControlArea",
1726        qualified: "nc:ControlArea",
1727        super_class: Some(440),
1728        concrete: true,
1729        origins: &["ER", "SHS"],
1730        comment: "A control area is a grouping of generating units and/or loads and a cutset of tie lines (as terminals) which may be used for a variety of purposes including automatic generation control, power flow solution area interchange control specification, and input to load forecasting. All generation and load within the area defined by the terminals on the border are considered in the area interchange control. Note that any number of overlapping control area specifications can be superimposed on the physical model. The following general principles apply to ControlArea: 1. The control area orientation for net interchange is positive for an import, negative for an export. 2. The control area net interchange is determined by summing flows in Terminals. The Terminals are identified by creating a set of TieFlow objects associated with a ControlArea object. Each TieFlow object identifies one Terminal. 3. In a single network model, a tie between two control areas must be modelled in both control area specifications, such that the two representations of the tie flow sum to zero. 4. The normal orientation of Terminal flow is positive for flow into the conducting equipment that owns the Terminal. (i.e. flow from a bus into a device is positive.) However, the orientation of each flow in the control area specification must align with the control area convention, i.e. import is positive. If the orientation of the Terminal flow referenced by a TieFlow is positive into the control area, then this is confirmed by setting TieFlow.positiveFlowIn flag TRUE. If not, the orientation must be reversed by setting the TieFlow.positiveFlowIn flag FALSE.",
1731        attrs: &[
1732            AttrDef { id: "ControlArea.AreaInterchangeController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AreaInterchangeController", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Area interchange controller for this control area." },
1733            AttrDef { id: "ControlArea.ControlAreaRegularSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ControlAreaRegularSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "ControlAreaRegularSchedule which belongs to a control area." },
1734            AttrDef { id: "ControlArea.ControlAreaSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ControlAreaSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "Control area schedule associated with a control area." },
1735            AttrDef { id: "ControlArea.HasPart", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ControlArea", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The control area that has these control area parts." },
1736            AttrDef { id: "ControlArea.OutageCoordinationRegion", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageCoordinationRegion", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The outage coordination region that has this control area." },
1737            AttrDef { id: "ControlArea.PartOf", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ControlArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The control area that is part of this control area." },
1738            AttrDef { id: "ControlArea.PowerFrequencyController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerFrequencyController", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Power frequency controller for this control area." },
1739            AttrDef { id: "ControlArea.SchedulingArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchedulingArea", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The scheduling area related to a control area." },
1740            AttrDef { id: "ControlArea.SystemOperator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SystemOperator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The system operator that operates this control area." },
1741            AttrDef { id: "ControlArea.areaType", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["ER"], comment: "Type of control area." },
1742        ],
1743    },
1744    ClassDef {
1745        ns: "https://cim4.eu/ns/nc#",
1746        local: "ControlAreaRegularSchedule",
1747        qualified: "nc:ControlAreaRegularSchedule",
1748        super_class: Some(59),
1749        concrete: true,
1750        origins: &["SHS"],
1751        comment: "Regular schedule for control area.",
1752        attrs: &[
1753            AttrDef { id: "ControlAreaRegularSchedule.ControlArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ControlArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "ControlArea which has ControlAreaRegularSchedule." },
1754            AttrDef { id: "ControlAreaRegularSchedule.netInterchange", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "The specified positive net interchange into the control area, i.e. positive sign means flow into the area." },
1755            AttrDef { id: "ControlAreaRegularSchedule.pTolerance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Active power net interchange tolerance. The attribute shall be a positive value or zero." },
1756        ],
1757    },
1758    ClassDef {
1759        ns: "https://cim4.eu/ns/nc#",
1760        local: "ControlAreaSchedule",
1761        qualified: "nc:ControlAreaSchedule",
1762        super_class: Some(57),
1763        concrete: true,
1764        origins: &["SHS"],
1765        comment: "Schedule for control area.",
1766        attrs: &[
1767            AttrDef { id: "ControlAreaSchedule.ControlArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ControlArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Control area which has control area schedules." },
1768            AttrDef { id: "ControlAreaSchedule.ControlAreaTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ControlAreaTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The time point that relates to this control area schedule." },
1769        ],
1770    },
1771    ClassDef {
1772        ns: "https://cim4.eu/ns/nc#",
1773        local: "ControlAreaTimePoint",
1774        qualified: "nc:ControlAreaTimePoint",
1775        super_class: None,
1776        concrete: true,
1777        origins: &["SHS"],
1778        comment: "Participation factor for a given point in time.",
1779        attrs: &[
1780            AttrDef { id: "ControlAreaTimePoint.ControlAreaSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ControlAreaSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "The control area schedule that has this time point." },
1781            AttrDef { id: "ControlAreaTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS"], comment: "The time the data is valid for." },
1782            AttrDef { id: "ControlAreaTimePoint.netInterchange", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "The specified positive net interchange into the control area, i.e. positive sign means flow into the area." },
1783            AttrDef { id: "ControlAreaTimePoint.pTolerance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Active power net interchange tolerance. The attribute shall be a positive value or zero." },
1784        ],
1785    },
1786    ClassDef {
1787        ns: "https://cim4.eu/ns/nc#",
1788        local: "ControlFunctionBlock",
1789        qualified: "nc:ControlFunctionBlock",
1790        super_class: Some(282),
1791        concrete: false,
1792        origins: &["ER", "RA", "SSI"],
1793        comment: "Control function block is a function block that contains an algorithm for controlling the equipment.",
1794        attrs: &[
1795            AttrDef { id: "ControlFunctionBlock.ControlFunctionBlockAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ControlFunctionBlockAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The action that is applied to this control function block." },
1796            AttrDef { id: "ControlFunctionBlock.isDiscrete", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER"], comment: "True, if the control function is discrete. This applies to equipment with discrete controls, e.g. tap changers and shunt compensators." },
1797            AttrDef { id: "ControlFunctionBlock.maxAllowedTargetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Maximum allowed target value given by the percent of target value. The allowed value range is [0,100]." },
1798            AttrDef { id: "ControlFunctionBlock.minAllowedTargetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Minimum allowed target value given by the percent of target value. The allowed value range is [0,100]." },
1799            AttrDef { id: "ControlFunctionBlock.targetValueDeadband", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The deadband related to the targetValue of the control function. It is used with discrete control to avoid excessive update of controls like tap changers and shunt compensator banks while regulating. The attribute shall be a positive value or zero. If isDiscrete is set to 'false', the targetDeadband is to be ignored. Note that for instance, if the targetValue is 100 kV and the targetValueDeadband is 2 percent the range is from 99 to 101 kV." },
1800        ],
1801    },
1802    ClassDef {
1803        ns: "https://cim4.eu/ns/nc#",
1804        local: "ControlFunctionBlockAction",
1805        qualified: "nc:ControlFunctionBlockAction",
1806        super_class: Some(507),
1807        concrete: true,
1808        origins: &["RA", "SSI"],
1809        comment: "Action for setting the control function block target values.",
1810        attrs: &[
1811            AttrDef { id: "ControlFunctionBlockAction.ControlFunctionBlock", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ControlFunctionBlock", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The control function block that is associated with a ControlFunctionBlockAction." },
1812        ],
1813    },
1814    ClassDef {
1815        ns: "https://cim4.eu/ns/nc#",
1816        local: "ControllableQuantity",
1817        qualified: "nc:ControllableQuantity",
1818        super_class: None,
1819        concrete: true,
1820        origins: &["SM"],
1821        comment: "Controllable quantity is a set point quantity on a grid state alteration or on a remedial action.",
1822        attrs: &[
1823            AttrDef { id: "ControllableQuantity.GridStateAlteration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridStateAlteration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SM"], comment: "The grid state alteration for this controllable quantity." },
1824            AttrDef { id: "ControllableQuantity.RemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialAction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SM"], comment: "Remedial action which is associated with the controllable quantity." },
1825            AttrDef { id: "ControllableQuantity.SensitivityFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SensitivityFactor", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SM"], comment: "The sensitivity factor associated with a controllable quantity." },
1826            AttrDef { id: "ControllableQuantity.value", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SM"], comment: "The value of the change applied to the grid state alteration or remedial action. In the case of multiple changes or non-quantifiable changes (e.g. Topology changes) the value needs to represent the suitable value that makes the derivable value given in the observable quantity for the purpose of the calculation of the sensitivity factor. The value can be integer, float or boolean. In case of boolean 1 equals true and 0 equals false." },
1827        ],
1828    },
1829    ClassDef {
1830        ns: "https://cim.ucaiug.io/ns#",
1831        local: "CoordinateSystem",
1832        qualified: "nc:CoordinateSystem",
1833        super_class: Some(318),
1834        concrete: true,
1835        origins: &["GD"],
1836        comment: "Coordinate reference system.",
1837        attrs: &[
1838            AttrDef { id: "CoordinateSystem.Locations", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "Location", is_list: true, used: false, xsd: "", value_ns: "", origins: &["GD"], comment: "All locations described with position points in this coordinate system." },
1839            AttrDef { id: "CoordinateSystem.crsUrn", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GD"], comment: "A Uniform Resource Name (URN) for the coordinate reference system (crs) used to define 'Location.PositionPoints'. An example would be the European Petroleum Survey Group (EPSG) code for a coordinate reference system, defined in URN under the Open Geospatial Consortium (OGC) namespace as: urn:ogc:def:crs:EPSG::XXXX, where XXXX is an EPSG code (a full list of codes can be found at the EPSG Registry web site http://www.epsg-registry.org/). To define the coordinate system as being WGS84 (latitude, longitude) using an EPSG OGC, this attribute would be urn:ogc:def:crs:EPSG::4236. A profile should limit this code to a set of allowed URNs agreed to by all sending and receiving parties." },
1840        ],
1841    },
1842    ClassDef {
1843        ns: "https://cim4.eu/ns/nc#",
1844        local: "CoordinatedCapacityCalculator",
1845        qualified: "nc:CoordinatedCapacityCalculator",
1846        super_class: Some(544),
1847        concrete: true,
1848        origins: &["ER"],
1849        comment: "A post that coordinates and executes the task of calculating transmission capacity.",
1850        attrs: &[
1851            AttrDef { id: "CoordinatedCapacityCalculator.CapacityCalculationRegion", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CapacityCalculationRegion", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Capacity calculation region in which the capacity is calculated by the coordinated capacity calculator." },
1852        ],
1853    },
1854    ClassDef {
1855        ns: "https://cim4.eu/ns/nc#",
1856        local: "CountertradeRemedialAction",
1857        qualified: "nc:CountertradeRemedialAction",
1858        super_class: Some(430),
1859        concrete: true,
1860        origins: &["RA", "SSI"],
1861        comment: "Countertrade is a remedial action to relieve physical congestions where the location of activated resources within the bidding zone is not known.",
1862        attrs: &[
1863            AttrDef { id: "CountertradeRemedialAction.maxEconomicPMargin", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["RA"], comment: "High economic active power limit given by the percentage of the relevant units operating p. e.g. If a generating unit (G1) with maximum operating active power of 100 MW and a conform load with active maximum load of 50 MW (L1). Max economic p margin of 90% will give the limit of the shift key to be 90 MW for the G1 and 45 MW for the L1. The allowed value range is [0,100]." },
1864            AttrDef { id: "CountertradeRemedialAction.minEconomicPMargin", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["RA"], comment: "Low economic active power limit given by the percentage of the relevant units operating p. e.g. If a generating unit (G1) with minimum operating active power of 10 MW and a conform load with active maximum load of 5 MW (L1). Min economic p margin of 90% will give the limit of the shift key to be 11 MW for the G1 and 5.5 MW for the L1. The allowed value range is [0,100]." },
1865        ],
1866    },
1867    ClassDef {
1868        ns: "https://cim4.eu/ns/nc#",
1869        local: "CountertradeScheduleAction",
1870        qualified: "nc:CountertradeScheduleAction",
1871        super_class: Some(434),
1872        concrete: true,
1873        origins: &["RAS"],
1874        comment: "Countertrade schedule action is an action to rearrange power schedules based on a Generation and Load Shift Key (GLSK) strategy.",
1875        attrs: &[],
1876    },
1877    ClassDef {
1878        ns: "https://cim4.eu/ns/nc#",
1879        local: "CrossBorderRelevance",
1880        qualified: "nc:CrossBorderRelevance",
1881        super_class: None,
1882        concrete: true,
1883        origins: &["AE", "SIS", "SSI"],
1884        comment: "Combination of an assessed element and one or more bidding zone border that are affected by the assessment.",
1885        attrs: &[
1886            AttrDef { id: "CrossBorderRelevance.AssessedElement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElement", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AE"], comment: "Assessed element which is cross border relevant." },
1887            AttrDef { id: "CrossBorderRelevance.BiddingZoneBorder", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BiddingZoneBorder", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AE"], comment: "Bidding zone border relevant for this combination." },
1888            AttrDef { id: "CrossBorderRelevance.GenericEnablingSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GenericEnablingSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Enabling schedule which belongs to the cross border relevant." },
1889            AttrDef { id: "CrossBorderRelevance.enabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "If true, the cross border relevance is enabled, otherwise it is disabled." },
1890            AttrDef { id: "CrossBorderRelevance.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["AE"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
1891            AttrDef { id: "CrossBorderRelevance.normalEnabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["AE"], comment: "If true, the cross border relevance shall be considered under normal operating conditions." },
1892        ],
1893    },
1894    ClassDef {
1895        ns: "https://cim4.eu/ns/nc#",
1896        local: "CrossZonalDCPole",
1897        qualified: "nc:CrossZonalDCPole",
1898        super_class: Some(119),
1899        concrete: true,
1900        origins: &["ER"],
1901        comment: "A CrossZonalNetworkElement represented by an HVDC pole participating in the transfer of electrical power between two bidding zones.",
1902        attrs: &[
1903            AttrDef { id: "CrossZonalDCPole.DCPole", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCPole", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Direct current pole represented by the CrossZonalDCPole." },
1904        ],
1905    },
1906    ClassDef {
1907        ns: "https://cim4.eu/ns/nc#",
1908        local: "CrossZonalLine",
1909        qualified: "nc:CrossZonalLine",
1910        super_class: Some(119),
1911        concrete: true,
1912        origins: &["ER"],
1913        comment: "A CrossZonalNetworkElement represented by an AC line participating in the transfer of electrical power between two bidding zones.",
1914        attrs: &[
1915            AttrDef { id: "CrossZonalLine.Line", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Line", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The AC line represented by the CrossZonalLine." },
1916        ],
1917    },
1918    ClassDef {
1919        ns: "https://cim4.eu/ns/nc#",
1920        local: "CrossZonalNetworkElement",
1921        qualified: "nc:CrossZonalNetworkElement",
1922        super_class: None,
1923        concrete: false,
1924        origins: &["ER"],
1925        comment: "A network element participating in the transfer of electrical power between two bidding zones and associated with the two opposite directional BiddingZoneBorder instances representing that bidding zone pair.",
1926        attrs: &[
1927            AttrDef { id: "CrossZonalNetworkElement.BiddingZoneBorder", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BiddingZoneBorder", is_list: true, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The directional bidding zone borders associated with the cross-zonal network element. Exactly two borders shall be referenced, representing the same bidding zone pair in opposite directions." },
1928            AttrDef { id: "CrossZonalNetworkElement.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["ER"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
1929        ],
1930    },
1931    ClassDef {
1932        ns: "https://cim4.eu/ns/nc#",
1933        local: "CrossZonalPowerTransformer",
1934        qualified: "nc:CrossZonalPowerTransformer",
1935        super_class: Some(119),
1936        concrete: true,
1937        origins: &["ER"],
1938        comment: "A CrossZonalNetworkElement represented by a power transformer participating in the transfer of electrical power between two bidding zones.",
1939        attrs: &[
1940            AttrDef { id: "CrossZonalPowerTransformer.PowerTransformer", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerTransformer", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Power transformer represented by the CrossZonalPowerTransformer." },
1941        ],
1942    },
1943    ClassDef {
1944        ns: "https://cim.ucaiug.io/ns#",
1945        local: "CsConverter",
1946        qualified: "nc:CsConverter",
1947        super_class: Some(0),
1948        concrete: true,
1949        origins: &["SSI", "ER", "SHS"],
1950        comment: "DC side of the current source converter (CSC). The firing angle controls the dc voltage at the converter, both for rectifier and inverter. The difference between the dc voltages of the rectifier and inverter determines the dc current. The extinction angle is used to limit the dc voltage at the inverter, if needed, and is not used in active power control. The firing angle, transformer tap position and number of connected filters are the primary means to control a current source dc line. Higher level controls are built on top, e.g. dc voltage, dc current and active power. From a steady state perspective it is sufficient to specify the wanted active power transfer (ACDCConverter.targetPpcc) and the control functions will set the dc voltage, dc current, firing angle, transformer tap position and number of connected filters to meet this. Therefore attributes targetAlpha and targetGamma are not applicable in this case. The reactive power consumed by the converter is a function of the firing angle, transformer tap position and number of connected filter, which can be approximated with half of the active power. The losses is a function of the dc voltage and dc current. The attributes minAlpha and maxAlpha define the range of firing angles for rectifier operation between which no discrete tap changer action takes place. The range is typically 10-18 degrees. The attributes minGamma and maxGamma define the range of extinction angles for inverter operation between which no discrete tap changer action takes place. The range is typically 17-20 degrees.",
1951        attrs: &[
1952            AttrDef { id: "CsConverter.CsConverterRegularSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CsConverterRegularSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "CsConverterRegularSchedule which belongs to a CSConverter." },
1953            AttrDef { id: "CsConverter.CsConverterSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CsConverterSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "Cs converter schedule associated with a Cs converter." },
1954            AttrDef { id: "CsConverter.ThyristorValve", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ThyristorValve", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The ThyristorValve of this CsConverter." },
1955        ],
1956    },
1957    ClassDef {
1958        ns: "https://cim4.eu/ns/nc#",
1959        local: "CsConverterRegularSchedule",
1960        qualified: "nc:CsConverterRegularSchedule",
1961        super_class: Some(3),
1962        concrete: true,
1963        origins: &["SHS"],
1964        comment: "Regular schedule for CS converter.",
1965        attrs: &[
1966            AttrDef { id: "CsConverterRegularSchedule.CsConverter", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CsConverter", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "CsConverter which has CsConverterRegularSchedule." },
1967            AttrDef { id: "CsConverterRegularSchedule.operatingMode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "CsOperatingModeKind", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["SHS"], comment: "Indicates whether the DC pole is operating as an inverter or as a rectifier. It is converter’s control variable used in power flow." },
1968            AttrDef { id: "CsConverterRegularSchedule.pPccControl", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "CsPpccControlKind", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["SHS"], comment: "Kind of active power control." },
1969            AttrDef { id: "CsConverterRegularSchedule.targetAlpha", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Target firing angle. It is converter’s control variable used in power flow. It is only applicable for rectifier if continuous tap changer control is used. Allowed values are within the range minAlpha<=targetAlpha<=maxAlpha. The attribute shall be a positive value." },
1970            AttrDef { id: "CsConverterRegularSchedule.targetGamma", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Target extinction angle. It is converter’s control variable used in power flow. It is only applicable for inverter if continuous tap changer control is used. Allowed values are within the range minGamma<=targetGamma<=maxGamma. The attribute shall be a positive value." },
1971            AttrDef { id: "CsConverterRegularSchedule.targetIdc", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "DC current target value. It is converter’s control variable used in power flow. The attribute shall be a positive value." },
1972        ],
1973    },
1974    ClassDef {
1975        ns: "https://cim4.eu/ns/nc#",
1976        local: "CsConverterSchedule",
1977        qualified: "nc:CsConverterSchedule",
1978        super_class: Some(57),
1979        concrete: true,
1980        origins: &["SHS"],
1981        comment: "Schedule for CS converter.",
1982        attrs: &[
1983            AttrDef { id: "CsConverterSchedule.CsConverter", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CsConverter", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Cs converter which has Cs converter schedules." },
1984            AttrDef { id: "CsConverterSchedule.CsConverterTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CsConverterTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The time point that relates to this CS converter schedule." },
1985        ],
1986    },
1987    ClassDef {
1988        ns: "https://cim4.eu/ns/nc#",
1989        local: "CsConverterTimePoint",
1990        qualified: "nc:CsConverterTimePoint",
1991        super_class: Some(5),
1992        concrete: true,
1993        origins: &["SHS"],
1994        comment: "CSConverter values for a given point in time.",
1995        attrs: &[
1996            AttrDef { id: "CsConverterTimePoint.CsConverterSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CsConverterSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "The CS converter schedule that has this time point." },
1997            AttrDef { id: "CsConverterTimePoint.operatingMode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "CsOperatingModeKind", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["SHS"], comment: "Indicates whether the DC pole is operating as an inverter or as a rectifier. It is converter’s control variable used in power flow." },
1998            AttrDef { id: "CsConverterTimePoint.pPccControl", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "CsPpccControlKind", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["SHS"], comment: "Kind of active power control." },
1999            AttrDef { id: "CsConverterTimePoint.targetAlpha", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Target firing angle. It is converter’s control variable used in power flow. It is only applicable for rectifier if continuous tap changer control is used. Allowed values are within the range minAlpha<=targetAlpha<=maxAlpha. The attribute shall be a positive value." },
2000            AttrDef { id: "CsConverterTimePoint.targetGamma", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Target extinction angle. It is converter’s control variable used in power flow. It is only applicable for inverter if continuous tap changer control is used. Allowed values are within the range minGamma<=targetGamma<=maxGamma. The attribute shall be a positive value." },
2001            AttrDef { id: "CsConverterTimePoint.targetIdc", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "DC current target value. It is converter’s control variable used in power flow. The attribute shall be a positive value." },
2002        ],
2003    },
2004    ClassDef {
2005        ns: "https://cim4.eu/ns/nc#",
2006        local: "CurrentControlFunction",
2007        qualified: "nc:CurrentControlFunction",
2008        super_class: Some(109),
2009        concrete: true,
2010        origins: &["ER", "SIS", "SSI"],
2011        comment: "Current control function is a function block that calculates the operating point of the controlled equipment to achieve the target current.",
2012        attrs: &[
2013            AttrDef { id: "CurrentControlFunction.CurrentControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CurrentControlFunctionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule of the control function." },
2014            AttrDef { id: "CurrentControlFunction.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Target value for the current that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
2015        ],
2016    },
2017    ClassDef {
2018        ns: "https://cim4.eu/ns/nc#",
2019        local: "CurrentControlFunctionSchedule",
2020        qualified: "nc:CurrentControlFunctionSchedule",
2021        super_class: Some(57),
2022        concrete: true,
2023        origins: &["SIS"],
2024        comment: "The schedule for CurrentControlFunction.",
2025        attrs: &[
2026            AttrDef { id: "CurrentControlFunctionSchedule.CurrentControlFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CurrentControlFunction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The control function that has this schedule." },
2027            AttrDef { id: "CurrentControlFunctionSchedule.CurrentControlFunctionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CurrentControlFunctionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point of the schedule." },
2028        ],
2029    },
2030    ClassDef {
2031        ns: "https://cim4.eu/ns/nc#",
2032        local: "CurrentControlFunctionTimePoint",
2033        qualified: "nc:CurrentControlFunctionTimePoint",
2034        super_class: None,
2035        concrete: true,
2036        origins: &["SIS"],
2037        comment: "Current control function value for a given point in time.",
2038        attrs: &[
2039            AttrDef { id: "CurrentControlFunctionTimePoint.CurrentControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CurrentControlFunctionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule that has this time point." },
2040            AttrDef { id: "CurrentControlFunctionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
2041            AttrDef { id: "CurrentControlFunctionTimePoint.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Target value for the current that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
2042        ],
2043    },
2044    ClassDef {
2045        ns: "https://cim4.eu/ns/nc#",
2046        local: "CurrentDroopControlFunction",
2047        qualified: "nc:CurrentDroopControlFunction",
2048        super_class: Some(109),
2049        concrete: true,
2050        origins: &["ER", "SIS", "SSI"],
2051        comment: "Current droop control function is a function block that calculates the operating point of the controlled equipment to achieve the target current.",
2052        attrs: &[
2053            AttrDef { id: "CurrentDroopControlFunction.CurrentDroopControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CurrentDroopControlFunctionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule of the control function." },
2054            AttrDef { id: "CurrentDroopControlFunction.droopCapacitive", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Droop in capacitive region. The unit is V/A." },
2055            AttrDef { id: "CurrentDroopControlFunction.droopInductive", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Droop in inductive region. The unit is V/A." },
2056            AttrDef { id: "CurrentDroopControlFunction.offsetCapacitive", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Offset in capacitive region." },
2057            AttrDef { id: "CurrentDroopControlFunction.offsetInductive", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Offset in capacitive region." },
2058            AttrDef { id: "CurrentDroopControlFunction.targetValueCapacitive", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Setpoint when control is active in capacitive region." },
2059            AttrDef { id: "CurrentDroopControlFunction.targetValueInductive", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Setpoint when control is active in inductive region." },
2060        ],
2061    },
2062    ClassDef {
2063        ns: "https://cim4.eu/ns/nc#",
2064        local: "CurrentDroopControlFunctionSchedule",
2065        qualified: "nc:CurrentDroopControlFunctionSchedule",
2066        super_class: Some(57),
2067        concrete: true,
2068        origins: &["SIS"],
2069        comment: "The schedule for CurrentDroopControlFunction.",
2070        attrs: &[
2071            AttrDef { id: "CurrentDroopControlFunctionSchedule.CurrentDroopControlFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CurrentDroopControlFunction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The control function that has this schedule." },
2072            AttrDef { id: "CurrentDroopControlFunctionSchedule.CurrentDroopControlFunctionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CurrentDroopControlFunctionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point of the schedule." },
2073        ],
2074    },
2075    ClassDef {
2076        ns: "https://cim4.eu/ns/nc#",
2077        local: "CurrentDroopControlFunctionTimePoint",
2078        qualified: "nc:CurrentDroopControlFunctionTimePoint",
2079        super_class: None,
2080        concrete: true,
2081        origins: &["SIS"],
2082        comment: "Current droop control function value for a given point in time.",
2083        attrs: &[
2084            AttrDef { id: "CurrentDroopControlFunctionTimePoint.CurrentDroopControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CurrentDroopControlFunctionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule that has this time point." },
2085            AttrDef { id: "CurrentDroopControlFunctionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
2086            AttrDef { id: "CurrentDroopControlFunctionTimePoint.droopCapacitive", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Droop in capacitive region. The unit is V/A." },
2087            AttrDef { id: "CurrentDroopControlFunctionTimePoint.droopInductive", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Droop in inductive region. The unit is V/A." },
2088            AttrDef { id: "CurrentDroopControlFunctionTimePoint.offsetCapacitive", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Offset in capacitive region." },
2089            AttrDef { id: "CurrentDroopControlFunctionTimePoint.offsetInductive", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Offset in capacitive region." },
2090            AttrDef { id: "CurrentDroopControlFunctionTimePoint.targetValueCapacitive", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Setpoint when control is active in capacitive region." },
2091            AttrDef { id: "CurrentDroopControlFunctionTimePoint.targetValueInductive", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Setpoint when control is active in inductive region." },
2092        ],
2093    },
2094    ClassDef {
2095        ns: "https://cim4.eu/ns/nc#",
2096        local: "CurrentDroopOverride",
2097        qualified: "nc:CurrentDroopOverride",
2098        super_class: None,
2099        concrete: true,
2100        origins: &["ER", "SSI"],
2101        comment: "Current droop override uses the following logic: - When the current exceeds a threshold the device executes the following transitions: 1) When injecting an inductive voltage or in monitoring mode the device tends to inject a voltage proportional to the difference between the line current and the aforementioned threshold. 2) When injecting a capacitive voltage the device transitions to monitoring mode. - If the aforementioned proportional voltage is lower than the initial one, the voltage injection remains unchanged. Current droop override is not applied when the device operates in currentDroop mode.",
2102        attrs: &[
2103            AttrDef { id: "CurrentDroopOverride.SSSCController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SSSCController", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The SSSC controller to which this CurrentDroopOverride applies to." },
2104            AttrDef { id: "CurrentDroopOverride.droopCapacitive", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Droop in capacitive region. The unit is V/A." },
2105            AttrDef { id: "CurrentDroopOverride.droopInductive", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Droop in inductive region. The unit is V/A." },
2106            AttrDef { id: "CurrentDroopOverride.enabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "True, if the current droop override is enabled (active). Otherwise false." },
2107            AttrDef { id: "CurrentDroopOverride.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["ER"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
2108            AttrDef { id: "CurrentDroopOverride.offsetCapacitiveI", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Offset in capacitive region." },
2109            AttrDef { id: "CurrentDroopOverride.offsetInductiveI", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Offset in capacitive region." },
2110            AttrDef { id: "CurrentDroopOverride.targetValueCapacitiveI", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Setpoint when control is active in capacitive region." },
2111            AttrDef { id: "CurrentDroopOverride.targetValueInductiveI", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Setpoint when control is active in inductive region." },
2112        ],
2113    },
2114    ClassDef {
2115        ns: "https://cim.ucaiug.io/ns#",
2116        local: "CurrentLimit",
2117        qualified: "nc:CurrentLimit",
2118        super_class: None,
2119        concrete: false,
2120        origins: &["SHS"],
2121        comment: "Operational limit on current.",
2122        attrs: &[
2123            AttrDef { id: "CurrentLimit.CurrentLimitSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CurrentLimitSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "Current limit schedule associated with a current limit." },
2124        ],
2125    },
2126    ClassDef {
2127        ns: "https://cim4.eu/ns/nc#",
2128        local: "CurrentLimitSchedule",
2129        qualified: "nc:CurrentLimitSchedule",
2130        super_class: Some(57),
2131        concrete: true,
2132        origins: &["SHS"],
2133        comment: "Schedule for current limit.",
2134        attrs: &[
2135            AttrDef { id: "CurrentLimitSchedule.CurrentLimit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CurrentLimit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Current limit which has current limit schedules." },
2136            AttrDef { id: "CurrentLimitSchedule.CurrentLimitTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CurrentLimitTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The time point that relates to this current limit schedule." },
2137        ],
2138    },
2139    ClassDef {
2140        ns: "https://cim4.eu/ns/nc#",
2141        local: "CurrentLimitTimePoint",
2142        qualified: "nc:CurrentLimitTimePoint",
2143        super_class: None,
2144        concrete: true,
2145        origins: &["SHS"],
2146        comment: "Current limit values for a given point in time.",
2147        attrs: &[
2148            AttrDef { id: "CurrentLimitTimePoint.CurrentLimitSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CurrentLimitSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "The current limit schedule that has this time point." },
2149            AttrDef { id: "CurrentLimitTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS"], comment: "The time the data is valid for." },
2150            AttrDef { id: "CurrentLimitTimePoint.value", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Limit on current flow. The attribute shall be a positive value or zero." },
2151        ],
2152    },
2153    ClassDef {
2154        ns: "https://cim.ucaiug.io/ns#",
2155        local: "CurrentTransformer",
2156        qualified: "nc:CurrentTransformer",
2157        super_class: Some(504),
2158        concrete: true,
2159        origins: &["SSI"],
2160        comment: "Instrument transformer used to measure electrical qualities of the circuit that is being protected and/or monitored. Typically used as current transducer for the purpose of metering or protection. A typical secondary current rating would be 5A.",
2161        attrs: &[],
2162    },
2163    ClassDef {
2164        ns: "https://cim.ucaiug.io/ns#",
2165        local: "Curve",
2166        qualified: "nc:Curve",
2167        super_class: Some(318),
2168        concrete: false,
2169        origins: &["ER"],
2170        comment: "A multi-purpose curve or functional relationship between an independent variable (X-axis) and dependent (Y-axis) variables.",
2171        attrs: &[
2172            AttrDef { id: "Curve.CurveDatas", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "CurveData", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The point data values that define this curve." },
2173            AttrDef { id: "Curve.curveStyle", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Enum, range: "CurveStyle", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["ER"], comment: "The style or shape of the curve." },
2174            AttrDef { id: "Curve.xMultiplier", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Enum, range: "UnitMultiplier", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["ER"], comment: "Multiplier for X-axis." },
2175            AttrDef { id: "Curve.xUnit", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Enum, range: "UnitSymbol", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["ER"], comment: "The X-axis units of measure." },
2176            AttrDef { id: "Curve.y1Multiplier", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Enum, range: "UnitMultiplier", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["ER"], comment: "Multiplier for Y1-axis." },
2177            AttrDef { id: "Curve.y1Unit", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Enum, range: "UnitSymbol", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["ER"], comment: "The Y1-axis units of measure." },
2178            AttrDef { id: "Curve.y2Multiplier", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Enum, range: "UnitMultiplier", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["ER"], comment: "Multiplier for Y2-axis." },
2179            AttrDef { id: "Curve.y2Unit", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Enum, range: "UnitSymbol", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["ER"], comment: "The Y2-axis units of measure." },
2180        ],
2181    },
2182    ClassDef {
2183        ns: "https://cim.ucaiug.io/ns#",
2184        local: "CurveData",
2185        qualified: "nc:CurveData",
2186        super_class: None,
2187        concrete: true,
2188        origins: &["ER"],
2189        comment: "Multi-purpose data points for defining a curve. The use of this generic class is discouraged if a more specific class can be used to specify the X and Y axis values along with their specific data types.",
2190        attrs: &[
2191            AttrDef { id: "CurveData.Curve", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "Curve", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The curve of this curve data point." },
2192            AttrDef { id: "CurveData.xvalue", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The data value of the X-axis variable, depending on the X-axis units." },
2193            AttrDef { id: "CurveData.y1value", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The data value of the first Y-axis variable, depending on the Y-axis units." },
2194            AttrDef { id: "CurveData.y2value", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The data value of the second Y-axis variable (if present), depending on the Y-axis units." },
2195        ],
2196    },
2197    ClassDef {
2198        ns: "https://cim.ucaiug.io/ns#",
2199        local: "Cut",
2200        qualified: "nc:Cut",
2201        super_class: Some(534),
2202        concrete: true,
2203        origins: &["SSI"],
2204        comment: "A cut separates a line segment into two parts. The cut appears as a switch inserted between these two parts and connects them together. As the cut is normally open there is no galvanic connection between the two line segment parts. But it is possible to close the cut to get galvanic connection. The cut terminals are oriented towards the line segment terminals with the same sequence number. Hence the cut terminal with sequence number equal to 1 is oriented to the line segment's terminal with sequence number equal to 1. The cut terminals also act as connection points for jumpers and other equipment, e.g. a mobile generator. To enable this, connectivity nodes are placed at the cut terminals. Once the connectivity nodes are in place any conducting equipment can be connected at them.",
2205        attrs: &[],
2206    },
2207    ClassDef {
2208        ns: "https://cim4.eu/ns/nc#",
2209        local: "DCActivePowerControlFunction",
2210        qualified: "nc:DCActivePowerControlFunction",
2211        super_class: Some(109),
2212        concrete: true,
2213        origins: &["ER", "SIS", "SSI"],
2214        comment: "Direct current active power control function is a function block that calculates operating point of the controlled equipment to achieve the target active power.",
2215        attrs: &[
2216            AttrDef { id: "DCActivePowerControlFunction.DCActivePowerControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCActivePowerControlFunctionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule of the control function." },
2217            AttrDef { id: "DCActivePowerControlFunction.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Target value for the active power that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
2218        ],
2219    },
2220    ClassDef {
2221        ns: "https://cim4.eu/ns/nc#",
2222        local: "DCActivePowerControlFunctionSchedule",
2223        qualified: "nc:DCActivePowerControlFunctionSchedule",
2224        super_class: Some(57),
2225        concrete: true,
2226        origins: &["SIS"],
2227        comment: "The schedule for DCActivePowerControlFunction.",
2228        attrs: &[
2229            AttrDef { id: "DCActivePowerControlFunctionSchedule.DCActivePowerControlFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCActivePowerControlFunction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The control function that has this schedule." },
2230            AttrDef { id: "DCActivePowerControlFunctionSchedule.DCActivePowerControlFunctionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCActivePowerControlFunctionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point of the schedule." },
2231        ],
2232    },
2233    ClassDef {
2234        ns: "https://cim4.eu/ns/nc#",
2235        local: "DCActivePowerControlFunctionTimePoint",
2236        qualified: "nc:DCActivePowerControlFunctionTimePoint",
2237        super_class: None,
2238        concrete: true,
2239        origins: &["SIS"],
2240        comment: "Direct current active power control function value for a given point in time.",
2241        attrs: &[
2242            AttrDef { id: "DCActivePowerControlFunctionTimePoint.DCActivePowerControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCActivePowerControlFunctionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule that has this time point." },
2243            AttrDef { id: "DCActivePowerControlFunctionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
2244            AttrDef { id: "DCActivePowerControlFunctionTimePoint.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Target value for the active power that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
2245        ],
2246    },
2247    ClassDef {
2248        ns: "https://cim.ucaiug.io/ns#",
2249        local: "DCBaseTerminal",
2250        qualified: "nc:DCBaseTerminal",
2251        super_class: Some(4),
2252        concrete: false,
2253        origins: &["ER"],
2254        comment: "An electrical connection point at a piece of DC conducting equipment. DC terminals are connected at one physical DC node that may have multiple DC terminals connected. A DC node is similar to an AC connectivity node. The model requires that DC connections are distinct from AC connections.",
2255        attrs: &[],
2256    },
2257    ClassDef {
2258        ns: "https://cim4.eu/ns/nc#",
2259        local: "DCBiPole",
2260        qualified: "nc:DCBiPole",
2261        super_class: Some(440),
2262        concrete: true,
2263        origins: &["ER"],
2264        comment: "DC system bipole (IEC 60633), which is part of an DC system consisting of two independently operable DC system poles, which during normal operation, exhibit opposite direct voltage polarities with respect to earth.",
2265        attrs: &[
2266            AttrDef { id: "DCBiPole.BipolarDCSystem", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BipolarDCSystem", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Bipolar DC system that has this DC bipole." },
2267            AttrDef { id: "DCBiPole.DCPole", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCPole", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "DC pole part of the DC system bipole." },
2268        ],
2269    },
2270    ClassDef {
2271        ns: "https://cim.ucaiug.io/ns#",
2272        local: "DCBreaker",
2273        qualified: "nc:DCBreaker",
2274        super_class: Some(186),
2275        concrete: true,
2276        origins: &["ER", "SSI"],
2277        comment: "A breaker within a DC system.",
2278        attrs: &[],
2279    },
2280    ClassDef {
2281        ns: "https://cim.ucaiug.io/ns#",
2282        local: "DCBusbar",
2283        qualified: "nc:DCBusbar",
2284        super_class: Some(149),
2285        concrete: true,
2286        origins: &["ER", "SSI"],
2287        comment: "A busbar within a DC system.",
2288        attrs: &[],
2289    },
2290    ClassDef {
2291        ns: "https://cim4.eu/ns/nc#",
2292        local: "DCBypassSwitch",
2293        qualified: "nc:DCBypassSwitch",
2294        super_class: Some(167),
2295        concrete: true,
2296        origins: &["ER", "SSI"],
2297        comment: "By-pass switch (IEC 60633) is a high-speed DC switch connected across each converter valve group in DC schemes using more than one independent converter per pole, designed to close rapidly to bypass a converter group that is being taken out of service and commutate the current back into a valve group that is being taken back in service. A by-pass switch may also be used for prolonged shunting of the bridge(s).",
2298        attrs: &[],
2299    },
2300    ClassDef {
2301        ns: "https://cim.ucaiug.io/ns#",
2302        local: "DCChopper",
2303        qualified: "nc:DCChopper",
2304        super_class: Some(149),
2305        concrete: true,
2306        origins: &["ER", "SSI"],
2307        comment: "Low resistance equipment used in the internal DC circuit to balance voltages. It has typically positive and negative pole terminals and a ground.",
2308        attrs: &[],
2309    },
2310    ClassDef {
2311        ns: "https://cim4.eu/ns/nc#",
2312        local: "DCCommutationSwitch",
2313        qualified: "nc:DCCommutationSwitch",
2314        super_class: Some(167),
2315        concrete: false,
2316        origins: &["ER", "SSI"],
2317        comment: "DC commutation switch (IEC 60633) is a type of high-speed DC switch specifically designed to commutate load current into an alternative parallel current path.",
2318        attrs: &[],
2319    },
2320    ClassDef {
2321        ns: "https://cim.ucaiug.io/ns#",
2322        local: "DCConductingEquipment",
2323        qualified: "nc:DCConductingEquipment",
2324        super_class: Some(241),
2325        concrete: false,
2326        origins: &["ER", "SSI"],
2327        comment: "The parts of the DC power system that are designed to carry current or that are conductively connected through DC terminals.",
2328        attrs: &[
2329            AttrDef { id: "DCConductingEquipment.ratedCurrent", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The maximum continuous current carrying capacity in amps governed by the device material and construction. The attribute shall be a positive value." },
2330            AttrDef { id: "DCConductingEquipment.ratedUdc", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Rated DC device voltage. The attribute shall be a positive value. It is configuration data used in power flow." },
2331        ],
2332    },
2333    ClassDef {
2334        ns: "https://cim4.eu/ns/nc#",
2335        local: "DCConverterParallelingSwitch",
2336        qualified: "nc:DCConverterParallelingSwitch",
2337        super_class: Some(167),
2338        concrete: true,
2339        origins: &["ER", "SSI"],
2340        comment: "Converter paralleling switch (IEC 60633) is a high-speed DC switch connected in series with each converter at the DC terminal in DC schemes where two or more converters are connected in parallel onto a common pole conductor, designed to allow additional converter(s) to be connected in parallel or disconnected without affecting the load current in the other converter.",
2341        attrs: &[],
2342    },
2343    ClassDef {
2344        ns: "https://cim.ucaiug.io/ns#",
2345        local: "DCConverterUnit",
2346        qualified: "nc:DCConverterUnit",
2347        super_class: Some(157),
2348        concrete: true,
2349        origins: &["ER"],
2350        comment: "Indivisible operative unit comprising all equipment between the point of common coupling on the AC side and the point of common coupling - DC side, essentially one or more converters, together with one or more converter transformers, converter control equipment, essential protective and switching devices and auxiliaries, if any, used for conversion.",
2351        attrs: &[
2352            AttrDef { id: "DCConverterUnit.DCPole", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCPole", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The DC pole that has this DC converter unit." },
2353            AttrDef { id: "DCConverterUnit.DCSubstation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCSubstation", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "DC substation that has one or more DC converter units." },
2354            AttrDef { id: "DCConverterUnit.PointOfCommonCoupling", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PointOfCommonCoupling", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The PointOfCommonCoupling that represents the electrical reference location where this DCConverterUnit interacts with the connected AC or DC grid." },
2355            AttrDef { id: "DCConverterUnit.Substation", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "Substation", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The containing substation of the DC converter unit." },
2356        ],
2357    },
2358    ClassDef {
2359        ns: "https://cim4.eu/ns/nc#",
2360        local: "DCCurrentControlFunction",
2361        qualified: "nc:DCCurrentControlFunction",
2362        super_class: Some(109),
2363        concrete: true,
2364        origins: &["ER", "SIS", "SSI"],
2365        comment: "DC current control function is a function block that calculates the operating point of the controlled equipment to achieve the target current.",
2366        attrs: &[
2367            AttrDef { id: "DCCurrentControlFunction.DCCurrentControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCCurrentControlFunctionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule of the control function." },
2368            AttrDef { id: "DCCurrentControlFunction.droop", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Droop constant. The pu value is obtained as D [kV/MW] x Sb / Ubdc. The attribute shall be a positive value." },
2369            AttrDef { id: "DCCurrentControlFunction.droopCompensation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Compensation constant. Used to compensate for voltage drop when controlling voltage at a distant bus. The attribute shall be a positive value." },
2370            AttrDef { id: "DCCurrentControlFunction.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Target value for the current that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
2371        ],
2372    },
2373    ClassDef {
2374        ns: "https://cim4.eu/ns/nc#",
2375        local: "DCCurrentControlFunctionSchedule",
2376        qualified: "nc:DCCurrentControlFunctionSchedule",
2377        super_class: Some(57),
2378        concrete: true,
2379        origins: &["SIS"],
2380        comment: "The schedule for DCCurrentControlFunction.",
2381        attrs: &[
2382            AttrDef { id: "DCCurrentControlFunctionSchedule.DCCurrentControlFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCCurrentControlFunction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The control function that has this schedule." },
2383            AttrDef { id: "DCCurrentControlFunctionSchedule.DCCurrentControlFunctionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCCurrentControlFunctionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point of the schedule." },
2384        ],
2385    },
2386    ClassDef {
2387        ns: "https://cim4.eu/ns/nc#",
2388        local: "DCCurrentControlFunctionTimePoint",
2389        qualified: "nc:DCCurrentControlFunctionTimePoint",
2390        super_class: None,
2391        concrete: true,
2392        origins: &["SIS"],
2393        comment: "DC current control function value for a given point in time.",
2394        attrs: &[
2395            AttrDef { id: "DCCurrentControlFunctionTimePoint.DCCurrentControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCCurrentControlFunctionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule that has this time point." },
2396            AttrDef { id: "DCCurrentControlFunctionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
2397            AttrDef { id: "DCCurrentControlFunctionTimePoint.droop", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Droop constant. The pu value is obtained as D [kV/MW] x Sb / Ubdc. The attribute shall be a positive value." },
2398            AttrDef { id: "DCCurrentControlFunctionTimePoint.droopCompensation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Compensation constant. Used to compensate for voltage drop when controlling voltage at a distant bus. The attribute shall be a positive value." },
2399            AttrDef { id: "DCCurrentControlFunctionTimePoint.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Target value for the current that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
2400        ],
2401    },
2402    ClassDef {
2403        ns: "https://cim.ucaiug.io/ns#",
2404        local: "DCDisconnector",
2405        qualified: "nc:DCDisconnector",
2406        super_class: Some(186),
2407        concrete: true,
2408        origins: &["ER", "SSI"],
2409        comment: "A disconnector within a DC system.",
2410        attrs: &[],
2411    },
2412    ClassDef {
2413        ns: "https://cim4.eu/ns/nc#",
2414        local: "DCEarthReturnTransferSwitch",
2415        qualified: "nc:DCEarthReturnTransferSwitch",
2416        super_class: Some(148),
2417        concrete: true,
2418        origins: &["ER", "SSI"],
2419        comment: "Earth return transfer switch (IEC 60633) DC commutation switch used to transfer DC current from a metallic return path to an earth return path. In some applications, this function is performed by a by-pass switch. Although the term 'earth return transfer breaker' has been widely used in the industry for many years, it is misleading since such switches have no ability to interrupt fault current.",
2420        attrs: &[],
2421    },
2422    ClassDef {
2423        ns: "https://cim.ucaiug.io/ns#",
2424        local: "DCEquipmentContainer",
2425        qualified: "nc:DCEquipmentContainer",
2426        super_class: Some(242),
2427        concrete: false,
2428        origins: &["ER"],
2429        comment: "A modelling construct to provide a root class for containment of DC as well as AC equipment. The class differ from the EquipmentContaner for AC in that it may also contain DCNode-s. Hence it can contain both AC and DC equipment.",
2430        attrs: &[],
2431    },
2432    ClassDef {
2433        ns: "https://cim4.eu/ns/nc#",
2434        local: "DCEquivalentInjection",
2435        qualified: "nc:DCEquivalentInjection",
2436        super_class: Some(149),
2437        concrete: true,
2438        origins: &["ER", "SIS", "SSI"],
2439        comment: "This class represents direct current equivalent injections (generation or load).",
2440        attrs: &[
2441            AttrDef { id: "DCEquivalentInjection.PowerShiftKeySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerShiftKeySchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule for DC equivalent injection." },
2442            AttrDef { id: "DCEquivalentInjection.maxP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Maximum active power limit." },
2443            AttrDef { id: "DCEquivalentInjection.minP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Minimum active power limit." },
2444            AttrDef { id: "DCEquivalentInjection.p", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Equivalent DC active power injection. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for steady state solutions." },
2445        ],
2446    },
2447    ClassDef {
2448        ns: "https://cim4.eu/ns/nc#",
2449        local: "DCExtinctionAngleControlFunction",
2450        qualified: "nc:DCExtinctionAngleControlFunction",
2451        super_class: Some(109),
2452        concrete: true,
2453        origins: &["ER", "SIS", "SSI"],
2454        comment: "Direct current extinction angle control function is a function block that calculates operating point of the controlled equipment to achieve the target extinction angle.",
2455        attrs: &[
2456            AttrDef { id: "DCExtinctionAngleControlFunction.DCExtinctionAngleControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCExtinctionAngleControlFunctionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule of the control function." },
2457            AttrDef { id: "DCExtinctionAngleControlFunction.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Target value for the extinction angle that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
2458        ],
2459    },
2460    ClassDef {
2461        ns: "https://cim4.eu/ns/nc#",
2462        local: "DCExtinctionAngleControlFunctionSchedule",
2463        qualified: "nc:DCExtinctionAngleControlFunctionSchedule",
2464        super_class: Some(57),
2465        concrete: true,
2466        origins: &["SIS"],
2467        comment: "The schedule for DCExtinctionAngleControlFunction.",
2468        attrs: &[
2469            AttrDef { id: "DCExtinctionAngleControlFunctionSchedule.DCExtinctionAngleControlFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCExtinctionAngleControlFunction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The control function that has this schedule." },
2470            AttrDef { id: "DCExtinctionAngleControlFunctionSchedule.DCExtinctionAngleControlFunctionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCExtinctionAngleControlFunctionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point of the schedule." },
2471        ],
2472    },
2473    ClassDef {
2474        ns: "https://cim4.eu/ns/nc#",
2475        local: "DCExtinctionAngleControlFunctionTimePoint",
2476        qualified: "nc:DCExtinctionAngleControlFunctionTimePoint",
2477        super_class: None,
2478        concrete: true,
2479        origins: &["SIS"],
2480        comment: "Direct current extinction angle control function value for a given point in time.",
2481        attrs: &[
2482            AttrDef { id: "DCExtinctionAngleControlFunctionTimePoint.DCExtinctionAngleControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCExtinctionAngleControlFunctionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule that has this time point." },
2483            AttrDef { id: "DCExtinctionAngleControlFunctionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
2484            AttrDef { id: "DCExtinctionAngleControlFunctionTimePoint.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Target value for the extinction angle that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
2485        ],
2486    },
2487    ClassDef {
2488        ns: "https://cim4.eu/ns/nc#",
2489        local: "DCFiringAngleControlFunction",
2490        qualified: "nc:DCFiringAngleControlFunction",
2491        super_class: Some(109),
2492        concrete: true,
2493        origins: &["ER", "SIS", "SSI"],
2494        comment: "Direct current firing angle control function is a function block that calculates operating point of the controlled equipment to achieve the target firing angle.",
2495        attrs: &[
2496            AttrDef { id: "DCFiringAngleControlFunction.DCFiringAngleControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCFiringAngleControlFunctionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule of the control function." },
2497            AttrDef { id: "DCFiringAngleControlFunction.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Target value for the firing angle that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
2498        ],
2499    },
2500    ClassDef {
2501        ns: "https://cim4.eu/ns/nc#",
2502        local: "DCFiringAngleControlFunctionSchedule",
2503        qualified: "nc:DCFiringAngleControlFunctionSchedule",
2504        super_class: Some(57),
2505        concrete: true,
2506        origins: &["SIS"],
2507        comment: "The schedule for DCFiringAngleControlFunction.",
2508        attrs: &[
2509            AttrDef { id: "DCFiringAngleControlFunctionSchedule.DCFiringAngleControlFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCFiringAngleControlFunction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The control function that has this schedule." },
2510            AttrDef { id: "DCFiringAngleControlFunctionSchedule.DCFiringAngleControlFunctionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCFiringAngleControlFunctionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point of the schedule." },
2511        ],
2512    },
2513    ClassDef {
2514        ns: "https://cim4.eu/ns/nc#",
2515        local: "DCFiringAngleControlFunctionTimePoint",
2516        qualified: "nc:DCFiringAngleControlFunctionTimePoint",
2517        super_class: None,
2518        concrete: true,
2519        origins: &["SIS"],
2520        comment: "Direct current firing angle control function value for a given point in time.",
2521        attrs: &[
2522            AttrDef { id: "DCFiringAngleControlFunctionTimePoint.DCFiringAngleControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCFiringAngleControlFunctionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule that has this time point." },
2523            AttrDef { id: "DCFiringAngleControlFunctionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
2524            AttrDef { id: "DCFiringAngleControlFunctionTimePoint.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Target value for the firing angle that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
2525        ],
2526    },
2527    ClassDef {
2528        ns: "https://cim.ucaiug.io/ns#",
2529        local: "DCGround",
2530        qualified: "nc:DCGround",
2531        super_class: Some(149),
2532        concrete: true,
2533        origins: &["ER", "SSI"],
2534        comment: "A ground within a DC system.",
2535        attrs: &[],
2536    },
2537    ClassDef {
2538        ns: "https://cim4.eu/ns/nc#",
2539        local: "DCHarmonicFilter",
2540        qualified: "nc:DCHarmonicFilter",
2541        super_class: Some(179),
2542        concrete: true,
2543        origins: &["ER", "SSI"],
2544        comment: "DC harmonic filter (IEC 60633) is a filter which, in conjunction with the DC reactor(s) and with the DC surge capacitor(s), if any, serves the primary function of reducing (current or voltage) ripple on the DC transmission line and/or earth electrode line.",
2545        attrs: &[],
2546    },
2547    ClassDef {
2548        ns: "https://cim4.eu/ns/nc#",
2549        local: "DCHighSpeedSwitch",
2550        qualified: "nc:DCHighSpeedSwitch",
2551        super_class: Some(186),
2552        concrete: false,
2553        origins: &["ER", "SSI"],
2554        comment: "High-speed DC switch (IEC 60633) is a type of switchgear used on a DC scheme, required to open or close rapidly (< 1 s), including in some cases the need to commutate load current into a parallel conducting path, but with no requirement to interrupt fault or load current. DC switchgear is usually based on a single-phase unit of an AC circuit-breaker, appropriately modified for their DC applications. Their capabilities to perform faster opening and closing than disconnect switches are used but the function of breaking short-circuit currents is not required.",
2555        attrs: &[],
2556    },
2557    ClassDef {
2558        ns: "https://cim.ucaiug.io/ns#",
2559        local: "DCLine",
2560        qualified: "nc:DCLine",
2561        super_class: None,
2562        concrete: true,
2563        origins: &["ER"],
2564        comment: "Overhead lines and/or cables connecting two or more HVDC substations.",
2565        attrs: &[
2566            AttrDef { id: "DCLine.DCPole", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCPole", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The DC pole that has this DC line." },
2567        ],
2568    },
2569    ClassDef {
2570        ns: "https://cim4.eu/ns/nc#",
2571        local: "DCLineParallelingSwitch",
2572        qualified: "nc:DCLineParallelingSwitch",
2573        super_class: Some(148),
2574        concrete: true,
2575        origins: &["ER", "SSI"],
2576        comment: "Line paralleling switch (IEC 60633) DC commutation switch placed in series with one or more high-voltage pole conductors, allowing two or more lines to be connected in parallel or to revert to single-line operation while conducting load current.",
2577        attrs: &[],
2578    },
2579    ClassDef {
2580        ns: "https://cim.ucaiug.io/ns#",
2581        local: "DCLineSegment",
2582        qualified: "nc:DCLineSegment",
2583        super_class: Some(149),
2584        concrete: true,
2585        origins: &["ER", "SSI"],
2586        comment: "A wire or combination of wires not insulated from one another, with consistent electrical characteristics, used to carry direct current between points in the DC region of the power system.",
2587        attrs: &[],
2588    },
2589    ClassDef {
2590        ns: "https://cim4.eu/ns/nc#",
2591        local: "DCMetalicReturnSwitch",
2592        qualified: "nc:DCMetalicReturnSwitch",
2593        super_class: Some(148),
2594        concrete: true,
2595        origins: &["ER", "SSI"],
2596        comment: "Metallic return transfer switch (IEC 60633) is a DC commutation switch used to transfer DC current from an earth return path to a metallic return path. Although the term 'metallic return transfer breaker' has been widely used in the industry for many years, it is misleading since such switches have no ability to interrupt fault current.",
2597        attrs: &[],
2598    },
2599    ClassDef {
2600        ns: "https://cim4.eu/ns/nc#",
2601        local: "DCNeutralBusGroundingSwitch",
2602        qualified: "nc:DCNeutralBusGroundingSwitch",
2603        super_class: Some(148),
2604        concrete: true,
2605        origins: &["ER", "SSI"],
2606        comment: "Neutral bus grounding switch (IEC 60633) or a neutral bus earthing switch is a DC commutation switch connected from the neutral bus to the station earth mat on a bipolar DC scheme, designed to provide a temporary earth connection in the event of an open circuit fault on the electrode line until the imbalance of current between the two poles can be reduced to a safe minimum level or the electrode line connection can be restored.",
2607        attrs: &[],
2608    },
2609    ClassDef {
2610        ns: "https://cim4.eu/ns/nc#",
2611        local: "DCNeutralBusSwitch",
2612        qualified: "nc:DCNeutralBusSwitch",
2613        super_class: Some(148),
2614        concrete: true,
2615        origins: &["ER", "SSI"],
2616        comment: "Neutral bus switch (IEC 60633) is a DC commutation switch connected in series with the neutral bus on a bipolar DC scheme, designed to commutate current out of the pole conductor or neutral bus and into the electrode line or dedicated metallic return conductor or earth in response to a fault in a converter or neutral bus.",
2617        attrs: &[],
2618    },
2619    ClassDef {
2620        ns: "https://cim.ucaiug.io/ns#",
2621        local: "DCNode",
2622        qualified: "nc:DCNode",
2623        super_class: Some(318),
2624        concrete: true,
2625        origins: &["ER"],
2626        comment: "DC nodes are points where terminals of DC conducting equipment are connected together with zero impedance.",
2627        attrs: &[
2628            AttrDef { id: "DCNode.CommonResponsibilityPoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CommonResponsibilityPoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "CommonResponsibilityPoints anchored to this DCNode, representing one or more responsibility or agreement contexts that apply at the same DC grid location." },
2629        ],
2630    },
2631    ClassDef {
2632        ns: "https://cim4.eu/ns/nc#",
2633        local: "DCPole",
2634        qualified: "nc:DCPole",
2635        super_class: Some(440),
2636        concrete: true,
2637        origins: &["ER", "PS", "SIS", "SSI"],
2638        comment: "The direct current (DC) system pole (IEC 60633) is part of a DC system consisting of all the equipment in the DC substations and the interconnecting transmission lines, if any, which during normal operation exhibit a common direct voltage polarity with respect to earth. It includes active power, reactive power and participation factor to be able to schedule top down (using DCTieCorridor and participation factor to provide schedule on the DCPole) and bottom up (aggregation of DCPole to DCTieCorridor). Only one approach can be used at a time.",
2639        attrs: &[
2640            AttrDef { id: "DCPole.AsymmetricMonopolarDCSystem", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "MonopolarDCSystem", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Asymmetric monopolar DC system that has this DC pole." },
2641            AttrDef { id: "DCPole.CrossZonalDCPole", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CrossZonalDCPole", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Cross-zonal direct current pole representations associated with the direct current pole." },
2642            AttrDef { id: "DCPole.DCBiPole", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCBiPole", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "DC system bipole that has two independently operatable DC system poles." },
2643            AttrDef { id: "DCPole.DCConverterUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCConverterUnit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The DC converter unit that relates to this DC pole." },
2644            AttrDef { id: "DCPole.DCLine", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCLine", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The DC line that is related to this DC pole." },
2645            AttrDef { id: "DCPole.DCTieCorridor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCTieCorridor", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The DCTieCorridor that has this DC pole." },
2646            AttrDef { id: "DCPole.DirectCurrentPoleController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DirectCurrentPoleController", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "DC pole controller that controls this DC pole." },
2647            AttrDef { id: "DCPole.PowerSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PS"], comment: "Power schedule which has DC poles." },
2648            AttrDef { id: "DCPole.PowerShiftKeySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerShiftKeySchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The Power Shift Key schedule for a DCPole." },
2649            AttrDef { id: "DCPole.maxEconomicP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Maximum high economic active power limit, that should not exceed the maximum operating active power limit." },
2650            AttrDef { id: "DCPole.minEconomicP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Low economic active power limit that shall be greater than or equal to the minimum operating active power limit." },
2651            AttrDef { id: "DCPole.normalParticipationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Normal participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). In the case of priority strategy, the item with the lowest number gets allocated energy first." },
2652            AttrDef { id: "DCPole.p", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Active power flow for the pole. The attribute is a positive value. The direction is given by the DCTieCorridor association with BiddingZoneBorder." },
2653            AttrDef { id: "DCPole.participationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). In the case of priority strategy, the item with the lowest number gets allocated energy first." },
2654            AttrDef { id: "DCPole.q", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Reactive power flow for the pole. The attribute is a positive value. The direction is given by the DCTieCorridor association with BiddingZoneBorder." },
2655        ],
2656    },
2657    ClassDef {
2658        ns: "https://cim4.eu/ns/nc#",
2659        local: "DCPulseWidthModulationControlFunction",
2660        qualified: "nc:DCPulseWidthModulationControlFunction",
2661        super_class: Some(109),
2662        concrete: true,
2663        origins: &["ER", "SIS", "SSI"],
2664        comment: "Direct current pulse width modulation control function is a function block that calculates operating point of the controlled equipment to achieve the target pulse width modulation.",
2665        attrs: &[
2666            AttrDef { id: "DCPulseWidthModulationControlFunction.DCPulseWidthModulationControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCPulseWidthModulationControlFunctionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule of the control function." },
2667            AttrDef { id: "DCPulseWidthModulationControlFunction.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Target value for the pulse width factor that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
2668        ],
2669    },
2670    ClassDef {
2671        ns: "https://cim4.eu/ns/nc#",
2672        local: "DCPulseWidthModulationControlFunctionSchedule",
2673        qualified: "nc:DCPulseWidthModulationControlFunctionSchedule",
2674        super_class: Some(57),
2675        concrete: true,
2676        origins: &["SIS"],
2677        comment: "The schedule for DCPulseWidthModulationControlFunction.",
2678        attrs: &[
2679            AttrDef { id: "DCPulseWidthModulationControlFunctionSchedule.DCPulseWidthModulationControlFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCPulseWidthModulationControlFunction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The control function that has this schedule." },
2680            AttrDef { id: "DCPulseWidthModulationControlFunctionSchedule.DCPulseWidthModulationControlFunctionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCPulseWidthModulationControlFunctionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point of the schedule." },
2681        ],
2682    },
2683    ClassDef {
2684        ns: "https://cim4.eu/ns/nc#",
2685        local: "DCPulseWidthModulationControlFunctionTimePoint",
2686        qualified: "nc:DCPulseWidthModulationControlFunctionTimePoint",
2687        super_class: None,
2688        concrete: true,
2689        origins: &["SIS"],
2690        comment: "Direct current pulse width modulation control function value for a given point in time.",
2691        attrs: &[
2692            AttrDef { id: "DCPulseWidthModulationControlFunctionTimePoint.DCPulseWidthModulationControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCPulseWidthModulationControlFunctionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule that has this time point." },
2693            AttrDef { id: "DCPulseWidthModulationControlFunctionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
2694            AttrDef { id: "DCPulseWidthModulationControlFunctionTimePoint.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Target value for the pulse width factor that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
2695        ],
2696    },
2697    ClassDef {
2698        ns: "https://cim.ucaiug.io/ns#",
2699        local: "DCSeriesDevice",
2700        qualified: "nc:DCSeriesDevice",
2701        super_class: Some(149),
2702        concrete: true,
2703        origins: &["ER", "SSI"],
2704        comment: "A series device within the DC system, typically a reactor used for filtering or smoothing. Needed for transient and short circuit studies.",
2705        attrs: &[],
2706    },
2707    ClassDef {
2708        ns: "https://cim.ucaiug.io/ns#",
2709        local: "DCShunt",
2710        qualified: "nc:DCShunt",
2711        super_class: Some(149),
2712        concrete: true,
2713        origins: &["ER", "SSI"],
2714        comment: "A shunt device within the DC system, typically used for filtering. Needed for transient and short circuit studies.",
2715        attrs: &[],
2716    },
2717    ClassDef {
2718        ns: "https://cim4.eu/ns/nc#",
2719        local: "DCSmoothingReactor",
2720        qualified: "nc:DCSmoothingReactor",
2721        super_class: Some(179),
2722        concrete: true,
2723        origins: &["ER", "SSI"],
2724        comment: "Reactor (IEC 60633) connected in series with a converter unit or converter units on the DC side for the primary purpose of smoothing the direct current and reducing current transients.",
2725        attrs: &[],
2726    },
2727    ClassDef {
2728        ns: "https://cim4.eu/ns/nc#",
2729        local: "DCSmoothingReactorArrester",
2730        qualified: "nc:DCSmoothingReactorArrester",
2731        super_class: Some(179),
2732        concrete: true,
2733        origins: &["ER", "SSI"],
2734        comment: "Arrester (IEC 60633) connected between the terminals of a smoothing reactor.",
2735        attrs: &[],
2736    },
2737    ClassDef {
2738        ns: "https://cim4.eu/ns/nc#",
2739        local: "DCSubstation",
2740        qualified: "nc:DCSubstation",
2741        super_class: Some(157),
2742        concrete: true,
2743        origins: &["ER"],
2744        comment: "DC substation or DC converter station (IEC 60633) is part of an DC system which consists of one or more converter units installed in a single location together with buildings, reactors, filters, reactive power supply, control, monitoring, protective, measuring and auxiliary equipment. A DC substation forming part of an DC transmission system may be referred to as an DC transmission substation.",
2745        attrs: &[
2746            AttrDef { id: "DCSubstation.DCConverterUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCConverterUnit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "DC converter unit that belongs to this DC substation." },
2747            AttrDef { id: "DCSubstation.DCSubstationBipole", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCSubstationBipole", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "DC substation bipole which is part of the DC substation." },
2748            AttrDef { id: "DCSubstation.DCSubstationPole", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCSubstationPole", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "DC substation pole which is part of the DC substation." },
2749            AttrDef { id: "DCSubstation.Substation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Substation", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Substation that contains this DC susbstation." },
2750            AttrDef { id: "DCSubstation.isTapping", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER"], comment: "DC tapping substation (IEC 60633) is a DC substation, mainly used for inversion, with a rating which is a small fraction of that of the rectifier(s) in the system." },
2751        ],
2752    },
2753    ClassDef {
2754        ns: "https://cim4.eu/ns/nc#",
2755        local: "DCSubstationBipole",
2756        qualified: "nc:DCSubstationBipole",
2757        super_class: Some(157),
2758        concrete: true,
2759        origins: &["ER"],
2760        comment: "Part of a bipolar DC system (IEC 60633) contained within a DC substation.",
2761        attrs: &[
2762            AttrDef { id: "DCSubstationBipole.DCSubstation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCSubstation", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "DC substation that contains this DC substation bipole part." },
2763            AttrDef { id: "DCSubstationBipole.DirectCurrentSubstationBipoleController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DirectCurrentSubstationBipoleController", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "DC substation bipole controller controlling this DC substation bipole." },
2764        ],
2765    },
2766    ClassDef {
2767        ns: "https://cim4.eu/ns/nc#",
2768        local: "DCSubstationPole",
2769        qualified: "nc:DCSubstationPole",
2770        super_class: Some(157),
2771        concrete: true,
2772        origins: &["ER"],
2773        comment: "Part of an DC system pole (IEC 60633) which is contained within a DC substation.",
2774        attrs: &[
2775            AttrDef { id: "DCSubstationPole.DCSubstation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCSubstation", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "DC substation that contains this DC substation pole part." },
2776            AttrDef { id: "DCSubstationPole.DirectCurrentSubstationPoleController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DirectCurrentSubstationPoleController", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "DC substation pole controller controlling this DC substation pole." },
2777        ],
2778    },
2779    ClassDef {
2780        ns: "https://cim.ucaiug.io/ns#",
2781        local: "DCSwitch",
2782        qualified: "nc:DCSwitch",
2783        super_class: Some(149),
2784        concrete: true,
2785        origins: &["ER", "SSI"],
2786        comment: "A switch within the DC system.",
2787        attrs: &[
2788            AttrDef { id: "DCSwitch.locked", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "If true, the switch is locked. The resulting switch state is a combination of locked and DCSwitch.open attributes as follows: locked=true and DCSwitch.open=true. The resulting state is open and locked; locked=false and DCSwitch.open=true. The resulting state is open; locked=false and DCSwitch.open=false. The resulting state is closed." },
2789            AttrDef { id: "DCSwitch.normalOpen", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER"], comment: "The attribute is used in cases when no Measurement for the status value is present. If the DCSwitch has a status measurement the Discrete.normalValue is expected to match with the DCSwitch.normalOpen." },
2790            AttrDef { id: "DCSwitch.open", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "The attribute tells if the switch is considered open when used as input to topology processing." },
2791        ],
2792    },
2793    ClassDef {
2794        ns: "https://cim4.eu/ns/nc#",
2795        local: "DCSystem",
2796        qualified: "nc:DCSystem",
2797        super_class: Some(440),
2798        concrete: false,
2799        origins: &["ER"],
2800        comment: "Electrical power system which transfers energy in the form of direct current between two or more AC buses (defined in IEC 60633).",
2801        attrs: &[
2802            AttrDef { id: "DCSystem.directionKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "DCSystemDirectionKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["ER"], comment: "Direction kind of the DC system." },
2803            AttrDef { id: "DCSystem.transmissionKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "DCSystemTransmissionKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["ER"], comment: "Transmission kind of the DC system." },
2804        ],
2805    },
2806    ClassDef {
2807        ns: "https://cim.ucaiug.io/ns#",
2808        local: "DCTerminal",
2809        qualified: "nc:DCTerminal",
2810        super_class: Some(142),
2811        concrete: true,
2812        origins: &["ER", "RA"],
2813        comment: "An electrical connection point to generic DC conducting equipment.",
2814        attrs: &[
2815            AttrDef { id: "DCTerminal.ACDCConverter", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ACDCConverter", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The ACDCConverter that has this external DCTerminal." },
2816            AttrDef { id: "DCTerminal.PinDCTerminal", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PinDCTerminal", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER", "RA"], comment: "The pin DC terminal for this DC terminal." },
2817            AttrDef { id: "DCTerminal.polarity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "DCTerminalPolarityKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["ER"], comment: "Represents the normal network polarity condition." },
2818        ],
2819    },
2820    ClassDef {
2821        ns: "https://cim4.eu/ns/nc#",
2822        local: "DCTieCorridor",
2823        qualified: "nc:DCTieCorridor",
2824        super_class: Some(564),
2825        concrete: true,
2826        origins: &["ER", "AE", "PS", "SSI"],
2827        comment: "A collection of one or more direct current poles that connect two different control areas. DCTieCorridor is linked to its own SchedulingArea. The active and reactive power is given by the SchedulingArea. The flow direction is provided by the link with the directional bidding zone.",
2828        attrs: &[
2829            AttrDef { id: "DCTieCorridor.AssessedElement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElement", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AE"], comment: "The assessed element indicating that the DC tie corridor is assessed, i.e. monitored." },
2830            AttrDef { id: "DCTieCorridor.DCPole", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCPole", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The DCPole which is part of the DC corridor." },
2831            AttrDef { id: "DCTieCorridor.DCTieCorridorDirectionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCTieCorridorDirectionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PS"], comment: "The bidding zone border that has this time point." },
2832            AttrDef { id: "DCTieCorridor.DirectCurrentMasterController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DirectCurrentMasterController", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Direct current master controller for this DCTieCorridor." },
2833            AttrDef { id: "DCTieCorridor.MustRunSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "MustRunSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PS"], comment: "Must run schedule which has DC tie corridors." },
2834            AttrDef { id: "DCTieCorridor.SchedulingArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchedulingArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The scheduling area that has this DC tie corridor." },
2835            AttrDef { id: "DCTieCorridor.SourceBiddingZone", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BiddingZoneBorder", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SSI"], comment: "The source bidding zone border that is related to the DC tie corridor." },
2836            AttrDef { id: "DCTieCorridor.maxRegulatingReserve", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Maximum regulating reserve." },
2837            AttrDef { id: "DCTieCorridor.minRegulatingReserve", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Minimum regulating reserve." },
2838            AttrDef { id: "DCTieCorridor.rampingKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "RampingPrincipleKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["ER"], comment: "Ramping principle is used to define a transition from one scheduled value to next one." },
2839        ],
2840    },
2841    ClassDef {
2842        ns: "https://cim4.eu/ns/nc#",
2843        local: "DCTieCorridorDirectionTimePoint",
2844        qualified: "nc:DCTieCorridorDirectionTimePoint",
2845        super_class: None,
2846        concrete: true,
2847        origins: &["PS"],
2848        comment: "Time series represent irregular values at given points in time.",
2849        attrs: &[
2850            AttrDef { id: "DCTieCorridorDirectionTimePoint.BiddingZoneBorder", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BiddingZoneBorder", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PS"], comment: "The bidding zone border that has this time point." },
2851            AttrDef { id: "DCTieCorridorDirectionTimePoint.DCTieCorridor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCTieCorridor", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PS"], comment: "The DC tie corridor that has DC tie corridor direction time point." },
2852            AttrDef { id: "DCTieCorridorDirectionTimePoint.PowerSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PS"], comment: "The power schedule that has this DC tie corridor time point." },
2853            AttrDef { id: "DCTieCorridorDirectionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["PS"], comment: "The time the data is valid for." },
2854        ],
2855    },
2856    ClassDef {
2857        ns: "https://cim4.eu/ns/nc#",
2858        local: "DCValve",
2859        qualified: "nc:DCValve",
2860        super_class: Some(149),
2861        concrete: false,
2862        origins: &["ER", "SSI"],
2863        comment: "A DC Valve is a solid-state switching module designed to control the flow of electrical power between two main terminals. The internal semiconductor device determines the valve's behavior and level of control.",
2864        attrs: &[
2865            AttrDef { id: "DCValve.valveU0", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Represents the threshold or on-state voltage across the valve during conduction. The value is used in conduction loss calculations for converter valves. Approximate valve conduction losses may be calculated using: P_loss ˜ U0 &#215; I where: U0 = valve forward voltage (valveU0) I = valve current Converter-level losses may be approximated from the combined contribution of associated valves, for example: P_converter_loss ˜ N &#215; U0 &#215; I where: N = number of conducting valves U0 = valve forward voltage I = valve current." },
2866        ],
2867    },
2868    ClassDef {
2869        ns: "https://cim4.eu/ns/nc#",
2870        local: "DCVoltageControlFunction",
2871        qualified: "nc:DCVoltageControlFunction",
2872        super_class: Some(109),
2873        concrete: true,
2874        origins: &["ER", "SIS", "SSI"],
2875        comment: "DC voltage control function is a function block that calculate the operating point of the controlled equipment to achieve the target voltage.",
2876        attrs: &[
2877            AttrDef { id: "DCVoltageControlFunction.DCVoltageControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCVoltageControlFunctionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule of the control function." },
2878            AttrDef { id: "DCVoltageControlFunction.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Target value for the voltage that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
2879        ],
2880    },
2881    ClassDef {
2882        ns: "https://cim4.eu/ns/nc#",
2883        local: "DCVoltageControlFunctionSchedule",
2884        qualified: "nc:DCVoltageControlFunctionSchedule",
2885        super_class: Some(57),
2886        concrete: true,
2887        origins: &["SIS"],
2888        comment: "The schedule for DCVoltageControlFunction.",
2889        attrs: &[
2890            AttrDef { id: "DCVoltageControlFunctionSchedule.DCVoltageControlFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCVoltageControlFunction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The control function that has this schedule." },
2891            AttrDef { id: "DCVoltageControlFunctionSchedule.DCVoltageControlFunctionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCVoltageControlFunctionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point of the schedule." },
2892        ],
2893    },
2894    ClassDef {
2895        ns: "https://cim4.eu/ns/nc#",
2896        local: "DCVoltageControlFunctionTimePoint",
2897        qualified: "nc:DCVoltageControlFunctionTimePoint",
2898        super_class: None,
2899        concrete: true,
2900        origins: &["SIS"],
2901        comment: "DC voltage control function value for a given point in time.",
2902        attrs: &[
2903            AttrDef { id: "DCVoltageControlFunctionTimePoint.DCVoltageControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCVoltageControlFunctionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule that has this time point." },
2904            AttrDef { id: "DCVoltageControlFunctionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
2905            AttrDef { id: "DCVoltageControlFunctionTimePoint.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Target value for the voltage that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
2906        ],
2907    },
2908    ClassDef {
2909        ns: "https://cim4.eu/ns/nc#",
2910        local: "DCVoltageSource",
2911        qualified: "nc:DCVoltageSource",
2912        super_class: Some(149),
2913        concrete: true,
2914        origins: &["ER", "SSI"],
2915        comment: "DC conducting equipment capable of establishing, maintaining, or controlling a DC voltage difference between connected DC terminals.",
2916        attrs: &[
2917            AttrDef { id: "DCVoltageSource.internalInductance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Inductance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Equivalent internal inductance of the DC voltage source." },
2918            AttrDef { id: "DCVoltageSource.internalResistance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Equivalent internal resistance of the DC voltage source." },
2919            AttrDef { id: "DCVoltageSource.voltageSetpoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Target or regulated DC voltage maintained by the source." },
2920        ],
2921    },
2922    ClassDef {
2923        ns: "http://www.w3.org/ns/dcat#",
2924        local: "Dataset",
2925        qualified: "nc:Dataset",
2926        super_class: None,
2927        concrete: true,
2928        origins: &["DM"],
2929        comment: "A collection of data, published or curated by a single source, and available for access or download in one or more representations.",
2930        attrs: &[
2931            AttrDef { id: "alternativeVersionOf", ns: "https://cim4.eu/ns/dcatcim#", kind: AttrKind::Association, range: "Dataset", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DM"], comment: "This resource is an alternative version of a non-versioned or abstract resource. This property is intended for relating a versioned resource to a non-versioned or abstract resource at the same time express that multiple versions exist. dcatcim:alternativeVersionOf is a specialisation of dcat:isVersionOf with the restriction that the resource shall have a preferred version (dcatcim:preferredVersion) so that the preferred dataset can be used when there is no need to access all alternative versions." },
2932            AttrDef { id: "applicationSoftware", ns: "https://cim4.eu/ns/Metadata-European#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["DM"], comment: "Identifies the application software which generated this instance file. The application software term is defined in ISO/IEC/IEEE 24765:2017. The application software can be identified either: - as a string which contains information on the software name and version, e.g. <tool_name>-<major_version>.<minor_version>.<patch>, or - as a reference to a software identification tag as defined by ISO/IEC 19770-2:2015 and ISO/IEC/IEEE 24765:2017." },
2933            AttrDef { id: "hasAlternativeVersion", ns: "https://cim4.eu/ns/dcatcim#", kind: AttrKind::Association, range: "Dataset", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DM"], comment: "This resource has a more specific, versioned alternative resource. This property is intended for relating a non-versioned or abstract resource to several versioned alternative resources, e.g. snapshots. dcatcim:hasAlternativeVersion is a specialisation of dcat:hasVersion with the restriction that the resource shall have a preferred version (dcatcim:preferredVersion) so that the preferred dataset can be used when there is no need to access all alternative versions." },
2934            AttrDef { id: "hasPreferredVersion", ns: "https://cim4.eu/ns/dcatcim#", kind: AttrKind::Association, range: "Dataset", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DM"], comment: "The resource that has a preferred version." },
2935            AttrDef { id: "hasVersion", ns: "http://www.w3.org/ns/dcat#", kind: AttrKind::Association, range: "Dataset", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DM"], comment: "This resource is a version of a non-versioned or abstract resource. This property is intended for relating a versioned resource to a non-versioned or abstract resource. The notion of version used by this property is limited to versions resulting from revisions occurring to a resource as part of its life-cycle. Therefore, its semantics is more specific than its super-property dcterms:isVersionOf, which makes use of a broader notion of version, including editions and adaptations." },
2936            AttrDef { id: "inSeries", ns: "http://www.w3.org/ns/dcat#", kind: AttrKind::Association, range: "Dataset", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DM"], comment: "A dataset series of which the dataset is part." },
2937            AttrDef { id: "isVersionOf", ns: "http://www.w3.org/ns/dcat#", kind: AttrKind::Association, range: "Dataset", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DM"], comment: "This resource has a more specific, versioned resource. This property is intended for relating a non-versioned or abstract resource to several versioned resources, e.g., snapshots. The notion of version used by this property is limited to versions resulting from revisions occurring to a resource as part of its life-cycle. Therefore, its semantics is more specific than its super-property dcterms:hasVersion, which makes use of a broader notion of version, including editions and adaptations." },
2938            AttrDef { id: "keyword", ns: "http://www.w3.org/ns/dcat#", kind: AttrKind::Literal, range: "String", is_list: true, used: true, xsd: "string", value_ns: "", origins: &["DM"], comment: "A keyword or tag describing a resource. [CIM context: The intended content type of the model, usually the profile keyword. Used to identify what profiles and content is expected in the document, e.g., Equipment, Boundary, SSH, AE, etc. The same keyword is used for different versions of same profile. It can be also used to identify different content based on the same profile. For instance, as the equipment profile can be used for both boundary data and equipment not related to boundary, the keyword is different to indicate that boundary data is exchanged. In order to avoid ambiguity the property is not exchanged in cases where the document contains multiple profiles referenced by dcterms:conformsTo.]." },
2939            AttrDef { id: "nextVersion", ns: "http://www.w3.org/ns/dcat#", kind: AttrKind::Association, range: "Dataset", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DM"], comment: "The next version for the resource." },
2940            AttrDef { id: "preferredVersion", ns: "https://cim4.eu/ns/dcatcim#", kind: AttrKind::Association, range: "Dataset", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DM"], comment: "The preferred version of a resource in a lineage of alternative versions. This property is used to specify a specific version to be the preference in a chain of alternatives, consisting of snapshots of a resource." },
2941            AttrDef { id: "previousVersion", ns: "http://www.w3.org/ns/dcat#", kind: AttrKind::Association, range: "Dataset", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DM"], comment: "The previous version of a resource in a lineage. This property is meant to be used to specify a version chain, consisting of snapshots of a resource. The notion of version used by this property is limited to versions resulting from revisions occurring to a resource as part of its life-cycle. One of the typical cases here is representing the history of the versions of a dataset that have been released over time." },
2942            AttrDef { id: "processType", ns: "https://cim4.eu/ns/Metadata-European#", kind: AttrKind::Literal, range: "URI", is_list: false, used: true, xsd: "anyURI", value_ns: "", origins: &["DM"], comment: "The exact business nature. Reference to Business Process configurations." },
2943            AttrDef { id: "seriesMember", ns: "http://www.w3.org/ns/dcat#", kind: AttrKind::Association, range: "Dataset", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DM"], comment: "A dataset that is member of this series." },
2944            AttrDef { id: "temporalResolution", ns: "http://www.w3.org/ns/dcat#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DM"], comment: "Minimum time period resolvable in a dataset. [CIM context: Describes the Market Time Unit (MTU), e.g. hourly, 15 min., etc.]" },
2945            AttrDef { id: "usedSettings", ns: "https://cim4.eu/ns/Metadata-European#", kind: AttrKind::Literal, range: "URI", is_list: true, used: true, xsd: "anyURI", value_ns: "", origins: &["DM"], comment: "Reference to a set of parameters describing used settings (e.g. power flow settings, process settings, etc.) applied to the model prior its serialisation." },
2946            AttrDef { id: "version", ns: "http://www.w3.org/ns/dcat#", kind: AttrKind::Association, range: "Version", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DM"], comment: "The version indicator (name or identifier) of a resource." },
2947        ],
2948    },
2949    ClassDef {
2950        ns: "https://cim4.eu/ns/nc#",
2951        local: "Designation",
2952        qualified: "nc:Designation",
2953        super_class: Some(319),
2954        concrete: true,
2955        origins: &["OR"],
2956        comment: "A designation is a string assigned to an IdentifiedObject to support recognition, presentation, search, and interoperability with external systems. A designation may be a human-readable label (e.g., display name, alias) or a system-issued code (e.g., EIC, IEC 61850 name, RDS reference designation). Designations can be typed and scoped by a designation authority. Note: Inter-object relationships in exchanged models shall reference the target object using its IdentifiedObject.mRID (or equivalent resolvable identifier), not by designation strings. A designation value may be unique within a stated scope (e.g., globally, within an authority, or within an exchange context), but such uniqueness does not change the requirement to reference objects by mRID in relationships. During transition and integration, multiple designations may be carried to support legacy identifiers, vendor/system naming, and user-facing labels.",
2957        attrs: &[
2958            AttrDef { id: "Designation.DesignationAuthority", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DesignationAuthority", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OR"], comment: "The authority responsible for issuing, assigning, or governing the designation." },
2959            AttrDef { id: "Designation.DesignationType", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DesignationType", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OR"], comment: "Reference to a non-standard type specification that further classifies or constrains this designation." },
2960            AttrDef { id: "Designation.IdentifiedObject", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "IdentifiedObject", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OR"], comment: "The IdentifiedObject that is referred to in the Designation." },
2961            AttrDef { id: "Designation.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "DesignationKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["OR"], comment: "Classification indicating the general type or intended usage of the designation. Note: The classification allows systems and profiles to interpret designation values consistently. Additional constraints or specialisations may be defined through DesignationType." },
2962            AttrDef { id: "Designation.value", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["OR"], comment: "The textual value of the designation assigned to an IdentifiedObject. Note: The value may represent a name, label, code, or identifier used to refer to the object in a particular context. Designations may be used for display, engineering documentation, system integration, or external identification. Object relationships in exchanged models shall reference objects using IdentifiedObject.mRID, not designation values." },
2963        ],
2964    },
2965    ClassDef {
2966        ns: "https://cim4.eu/ns/nc#",
2967        local: "DesignationAuthority",
2968        qualified: "nc:DesignationAuthority",
2969        super_class: Some(319),
2970        concrete: true,
2971        origins: &["OR"],
2972        comment: "An organisation, system, or community responsible for defining, issuing, or managing designations or designation types within a particular designation scheme or namespace. Note: A designation authority may define: - designation schemes or namespaces - designation type specifications - rules for generating or validating designation values Examples include standards organisations, market operators, manufacturers, utilities, or enterprise systems. The designation authority may also provide a service or registry through which designation values or type definitions can be resolved or validated. Example: ENTSO-E Designation authority responsible for issuing Energy Identification Codes (EIC). GS1 Designation authority managing GS1 identifiers used for asset and product identification in Digital Product Passport and supply-chain contexts. Equipment manufacturer A vendor may act as designation authority for identifiers assigned to devices or assets within its monitoring or asset management systems.",
2973        attrs: &[
2974            AttrDef { id: "DesignationAuthority.Designation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Designation", is_list: true, used: false, xsd: "", value_ns: "", origins: &["OR"], comment: "Designations issued, assigned, or managed by this designation authority." },
2975            AttrDef { id: "DesignationAuthority.DesignationType", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DesignationType", is_list: true, used: false, xsd: "", value_ns: "", origins: &["OR"], comment: "The Designation type that is publishes or governs by the given Designation Authrority." },
2976            AttrDef { id: "DesignationAuthority.authorityRef", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "URI", is_list: false, used: true, xsd: "anyURI", value_ns: "", origins: &["OR"], comment: "URI reference identifying the designation authority. Note: The URI may refer to an organisation identifier, registry entry, or other authoritative source describing the authority. Example: 'https://www.gs1.org', 'https://www.entsoe.eu/data/energy-identification-codes-eic/'" },
2977            AttrDef { id: "DesignationAuthority.description", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["OR"], comment: "Textual description of the designation authority. Note: Provides additional information about the role, scope, or responsibilities of the authority managing the designation scheme." },
2978            AttrDef { id: "DesignationAuthority.lookupServiceRef", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "URI", is_list: false, used: true, xsd: "anyURI", value_ns: "", origins: &["OR"], comment: "URI reference to a service or endpoint that can be used to resolve, validate, or obtain additional information about designations issued by this authority. Note: The lookup service may provide information about designation values, identifier registries, or related metadata. Example: 'https://id.gs1.org/'" },
2979            AttrDef { id: "DesignationAuthority.name", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["OR"], comment: "Human-readable name of the designation authority. Note: Identifies the organisation, system, or community responsible for defining, issuing, or managing the designation scheme or designation types. Example: 'ENTSO-E', 'GS1', 'Statnett Asset Registry'" },
2980        ],
2981    },
2982    ClassDef {
2983        ns: "https://cim4.eu/ns/nc#",
2984        local: "DesignationType",
2985        qualified: "nc:DesignationType",
2986        super_class: Some(319),
2987        concrete: true,
2988        origins: &["OR"],
2989        comment: "A specification that defines an additional, non-standard designation type used to classify and constrain Designation values beyond the standardised DesignationKind enumeration. A DesignationType may be published by a designation authority and may provide validation and usage rules (e.g., maximum length, pattern, and intended uniqueness scope). Note: DesignationKind provides standardised categories that can be referenced directly in profiles (e.g., a diagram profile may require DesignationKind.local or DesignationKind.label). DesignationType is used only when the designation required is not covered by the standardised DesignationKind list, or when a community needs to define additional constraints or sub-typing within a kind. DesignationType is optional and should not be required for basic interoperability; consumers should be able to interpret Designation.kind without resolving external reference data. If both are present, Designation.kind carries the standard category, while Designation.DesignationType carries the additional or more specific classification.",
2990        attrs: &[
2991            AttrDef { id: "DesignationType.Designation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Designation", is_list: true, used: false, xsd: "", value_ns: "", origins: &["OR"], comment: "Designations that are classified by this designation type." },
2992            AttrDef { id: "DesignationType.DesignationAuthority", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DesignationAuthority", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OR"], comment: "The authority that publishes or governs this type specification." },
2993            AttrDef { id: "DesignationType.description", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["OR"], comment: "Textual description of the designation type. Note: Explains the intended usage, scope, or rules associated with designations of this type." },
2994            AttrDef { id: "DesignationType.languageTag", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Language", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OR"], comment: "Language tag identifying the language used for the name and description. Note: Language tags should follow BCP 47 (e.g., en, nb, en-GB)." },
2995            AttrDef { id: "DesignationType.maxLength", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["OR"], comment: "Maximum allowed length of designation values of this type, expressed as number of characters." },
2996            AttrDef { id: "DesignationType.name", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["OR"], comment: "Human-readable name of the designation type. Note: Provides a short label describing the purpose or usage of the designation type. Example: 'DiagramLabel', 'AssetIdentifier', 'SCADAName'" },
2997            AttrDef { id: "DesignationType.regularExpression", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["OR"], comment: "Regular expression that a designation value shall conform to when this type is used." },
2998            AttrDef { id: "DesignationType.typeRef", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "URI", is_list: false, used: true, xsd: "anyURI", value_ns: "", origins: &["OR"], comment: "URI reference to an external definition or specification describing the designation type. Note: The referenced resource may provide additional documentation, constraints, or governance information for the designation type. Example: https://energy.referencedata.eu/DesignationType/DiagramLabel" },
2999            AttrDef { id: "DesignationType.uniquenessScope", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "UniquenessScopeKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["OR"], comment: "Intended scope within which designation value of this type are unique." },
3000        ],
3001    },
3002    ClassDef {
3003        ns: "https://cim4.eu/ns/nc#",
3004        local: "DifferenceModel",
3005        qualified: "nc:DifferenceModel",
3006        super_class: Some(487),
3007        concrete: true,
3008        origins: &["PSP"],
3009        comment: "A set of statements describing the changes in the network model. The statement is defined in the difference model.",
3010        attrs: &[
3011            AttrDef { id: "DifferenceModel.PowerSystemProject", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSystemProject", is_list: false, used: false, xsd: "", value_ns: "", origins: &["PSP"], comment: "The power system project that is described by this difference model." },
3012        ],
3013    },
3014    ClassDef {
3015        ns: "https://cim4.eu/ns/dcatcim#",
3016        local: "DifferenceSet",
3017        qualified: "nc:DifferenceSet",
3018        super_class: Some(196),
3019        concrete: true,
3020        origins: &["DM"],
3021        comment: "A dataset that is represented by statement that describe the difference previous version by using forwardDifference Statement for item that is added and reverseDifference Statement for items that are removed. Items that are updated is described in both the forwardDifference and reversalDifference statements.",
3022        attrs: &[
3023            AttrDef { id: "forwardDifference", ns: "https://cim4.eu/ns/dcatcim#", kind: AttrKind::Association, range: "Statements", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DM"], comment: "Statement that describes facts that has been added from previous version of the dataset." },
3024            AttrDef { id: "reverseDifference", ns: "https://cim4.eu/ns/dcatcim#", kind: AttrKind::Association, range: "Statements", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DM"], comment: "Statement that describes facts that has been removed from previous version of the dataset." },
3025        ],
3026    },
3027    ClassDef {
3028        ns: "https://cim4.eu/ns/nc#",
3029        local: "DiodeValve",
3030        qualified: "nc:DiodeValve",
3031        super_class: Some(191),
3032        concrete: true,
3033        origins: &["ER", "SSI"],
3034        comment: "The diode is uncontrolled valve. It is always in a 'ready' state and conducts automatically when the voltage at the anode is higher than the cathode. It cannot be turned off or on by an external signal.",
3035        attrs: &[],
3036    },
3037    ClassDef {
3038        ns: "https://cim4.eu/ns/nc#",
3039        local: "DirectCurrentBipoleController",
3040        qualified: "nc:DirectCurrentBipoleController",
3041        super_class: Some(205),
3042        concrete: true,
3043        origins: &["ER"],
3044        comment: "DC system bipole control that is the control system of a bipole in accordance with IEC 60633.",
3045        attrs: &[
3046            AttrDef { id: "DirectCurrentBipoleController.DirectCurrentMasterController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DirectCurrentMasterController", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Direct current master controller which has direct current bipole controllers." },
3047            AttrDef { id: "DirectCurrentBipoleController.DirectCurrentPoleController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DirectCurrentPoleController", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "DC pole controller that is controlled by a DC bipole controller." },
3048        ],
3049    },
3050    ClassDef {
3051        ns: "https://cim4.eu/ns/nc#",
3052        local: "DirectCurrentCircuit",
3053        qualified: "nc:DirectCurrentCircuit",
3054        super_class: Some(77),
3055        concrete: true,
3056        origins: &["ER"],
3057        comment: "A direct current circuit is a circuit consists of direct current equipment.",
3058        attrs: &[],
3059    },
3060    ClassDef {
3061        ns: "https://cim4.eu/ns/nc#",
3062        local: "DirectCurrentEquipmentController",
3063        qualified: "nc:DirectCurrentEquipmentController",
3064        super_class: Some(243),
3065        concrete: true,
3066        origins: &["SSI", "ER"],
3067        comment: "Direct current equipment controller used to control different parts of the hierarchical structure of the DC control system defined by IEC 60633.",
3068        attrs: &[
3069            AttrDef { id: "DirectCurrentEquipmentController.mode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "DCControlModeKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["SSI"], comment: "Mode of the dc controller." },
3070        ],
3071    },
3072    ClassDef {
3073        ns: "https://cim4.eu/ns/nc#",
3074        local: "DirectCurrentMasterController",
3075        qualified: "nc:DirectCurrentMasterController",
3076        super_class: Some(205),
3077        concrete: true,
3078        origins: &["ER"],
3079        comment: "Direct current system control is a control system which governs the operation of an entire DC system consisting of more than one DC substation and performs those functions of controlling, monitoring and protection which require information from more than one substation. This can also be a multiterminal control which is a DC system control for more that two DC substations or a DC master control, which is a general concept for control coordination of a DC system. The DC master control may be implemented at the bipole and/or pole level as defined in IEC 60633. The DC system control/multiterminal control/master control is part of the hierarchical structure of an HVDC control system that has an integrated AC/DC system control as the highest level of control which governs the integrated operation of AC and DC systems of a power system. This control system is under the responsibility of the system operator.",
3080        attrs: &[
3081            AttrDef { id: "DirectCurrentMasterController.DCTieCorridor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCTieCorridor", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "DCTieCorridor controlled by this direct current master controller." },
3082            AttrDef { id: "DirectCurrentMasterController.DirectCurrentBipoleController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DirectCurrentBipoleController", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Direct current bipole controller which belongs to a direct current master controller." },
3083            AttrDef { id: "DirectCurrentMasterController.DirectCurrentPoleController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DirectCurrentPoleController", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "DC pole controller that is controlled by this DC master controller." },
3084            AttrDef { id: "DirectCurrentMasterController.DirectCurrentSubstationController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DirectCurrentSubstationController", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "DC substation controller controlled by a multiterminal control." },
3085        ],
3086    },
3087    ClassDef {
3088        ns: "https://cim4.eu/ns/nc#",
3089        local: "DirectCurrentPoleController",
3090        qualified: "nc:DirectCurrentPoleController",
3091        super_class: Some(205),
3092        concrete: true,
3093        origins: &["ER"],
3094        comment: "DC system pole control, which is the control system of a pole in accordance with IEC 60633.",
3095        attrs: &[
3096            AttrDef { id: "DirectCurrentPoleController.ACDCConverterController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ACDCConverterController", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "ACDC converter controller that is controlled by a DC pole controller." },
3097            AttrDef { id: "DirectCurrentPoleController.DCPole", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCPole", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "DC pole that is controlled by a DC pole controller." },
3098            AttrDef { id: "DirectCurrentPoleController.DirectCurrentBipoleController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DirectCurrentBipoleController", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "DC bipole controller that controls this DC pole controller." },
3099            AttrDef { id: "DirectCurrentPoleController.DirectCurrentMasterController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DirectCurrentMasterController", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "DC master controller that has a DC pole controller." },
3100        ],
3101    },
3102    ClassDef {
3103        ns: "https://cim4.eu/ns/nc#",
3104        local: "DirectCurrentSubstationBipoleController",
3105        qualified: "nc:DirectCurrentSubstationBipoleController",
3106        super_class: Some(209),
3107        concrete: true,
3108        origins: &["ER"],
3109        comment: "Control system of a substation bipole (IEC 60633).",
3110        attrs: &[
3111            AttrDef { id: "DirectCurrentSubstationBipoleController.DCSubstationBipole", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCSubstationBipole", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "DC substation bipole that is controlled by a DC substation bipole controller." },
3112        ],
3113    },
3114    ClassDef {
3115        ns: "https://cim4.eu/ns/nc#",
3116        local: "DirectCurrentSubstationController",
3117        qualified: "nc:DirectCurrentSubstationController",
3118        super_class: Some(205),
3119        concrete: false,
3120        origins: &["ER"],
3121        comment: "Control system used for the controlling, monitoring and protection within a DC substation (IEC 60633). A DC substation control may be implemented at the bipole and/or pole level and may be referred to as local control.",
3122        attrs: &[
3123            AttrDef { id: "DirectCurrentSubstationController.MultiterminalControl", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DirectCurrentMasterController", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Multiterminal control that controls more than two DC substation controllers." },
3124        ],
3125    },
3126    ClassDef {
3127        ns: "https://cim4.eu/ns/nc#",
3128        local: "DirectCurrentSubstationPoleController",
3129        qualified: "nc:DirectCurrentSubstationPoleController",
3130        super_class: Some(209),
3131        concrete: true,
3132        origins: &["ER"],
3133        comment: "Control system of a substation pole (IEC 60633).",
3134        attrs: &[
3135            AttrDef { id: "DirectCurrentSubstationPoleController.DCSubstationPole", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCSubstationPole", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "DC substation pole that is controlled by a DC substation pole controller." },
3136        ],
3137    },
3138    ClassDef {
3139        ns: "https://cim4.eu/ns/nc#",
3140        local: "DirectCurrentSystemOperator",
3141        qualified: "nc:DirectCurrentSystemOperator",
3142        super_class: Some(546),
3143        concrete: true,
3144        origins: &["ER"],
3145        comment: "System operator of the direct current pole. There are typically one or two system operators that are operating either the control area at one side or the control areas at both sides of the direct current pole. In some cases it is operated by an operator from the connected control areas.",
3146        attrs: &[],
3147    },
3148    ClassDef {
3149        ns: "https://cim.ucaiug.io/ns#",
3150        local: "DisconnectingCircuitBreaker",
3151        qualified: "nc:DisconnectingCircuitBreaker",
3152        super_class: Some(73),
3153        concrete: true,
3154        origins: &["SSI"],
3155        comment: "A circuit breaking device including disconnecting function, eliminating the need for separate disconnectors.",
3156        attrs: &[],
3157    },
3158    ClassDef {
3159        ns: "https://cim.ucaiug.io/ns#",
3160        local: "Disconnector",
3161        qualified: "nc:Disconnector",
3162        super_class: Some(534),
3163        concrete: true,
3164        origins: &["SSI"],
3165        comment: "A manually operated or motor operated mechanical switching device used for changing the connections in a circuit, or for isolating a circuit or equipment from a source of power. It is required to open or close circuits when negligible current is broken or made.",
3166        attrs: &[],
3167    },
3168    ClassDef {
3169        ns: "https://cim4.eu/ns/nc#",
3170        local: "DistributionSystemOperator",
3171        qualified: "nc:DistributionSystemOperator",
3172        super_class: Some(546),
3173        concrete: true,
3174        origins: &["ER"],
3175        comment: "A system operator that is responsible for operating of energy distribution network from transmission level down to low voltage levels including the connection to household.",
3176        attrs: &[],
3177    },
3178    ClassDef {
3179        ns: "https://cim.ucaiug.io/ns#",
3180        local: "Document",
3181        qualified: "nc:Document",
3182        super_class: Some(318),
3183        concrete: false,
3184        origins: &["GD"],
3185        comment: "Parent class for different groupings of information collected and managed as a part of a business process. It will frequently contain references to other objects, such as assets, people and power system resources.",
3186        attrs: &[],
3187    },
3188    ClassDef {
3189        ns: "https://cim4.eu/ns/nc#",
3190        local: "DurationOverloadLimitCurve",
3191        qualified: "nc:DurationOverloadLimitCurve",
3192        super_class: Some(342),
3193        concrete: true,
3194        origins: &["ER"],
3195        comment: "A curve or functional relationship between - the overload duration independent variable (X-axis), and - temporary overloading (TATL) limiting dependent (Y-axis) variables.",
3196        attrs: &[
3197            AttrDef { id: "DurationOverloadLimitCurve.OperationalLimitType", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OperationalLimitType", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The operational limit type that has this temporary duration overload limit curve." },
3198        ],
3199    },
3200    ClassDef {
3201        ns: "https://cim.ucaiug.io/ns#",
3202        local: "EarthFaultCompensator",
3203        qualified: "nc:EarthFaultCompensator",
3204        super_class: Some(90),
3205        concrete: false,
3206        origins: &["SSI"],
3207        comment: "A conducting equipment used to represent a connection to ground which is typically used to compensate earth faults. An earth fault compensator device modelled with a single terminal implies a second terminal solidly connected to ground. If two terminals are modelled, the ground is not assumed and normal connection rules apply.",
3208        attrs: &[],
3209    },
3210    ClassDef {
3211        ns: "https://cim4.eu/ns/nc#",
3212        local: "EdgeControlArea",
3213        qualified: "nc:EdgeControlArea",
3214        super_class: Some(529),
3215        concrete: true,
3216        origins: &["ER"],
3217        comment: "An EdgeControlArea representing the local, site-level (edge) operational domain that coordinates one or more Installations and their connections. It is typically operated by an edge operator (e.g., a person/company operating a campus, mall, microgrid, or prosumer cluster) and supports local monitoring, control, scheduling, and limits—both islanded and grid-connected.",
3218        attrs: &[],
3219    },
3220    ClassDef {
3221        ns: "https://cim4.eu/ns/nc#",
3222        local: "EdgeSchedulingArea",
3223        qualified: "nc:EdgeSchedulingArea",
3224        super_class: Some(530),
3225        concrete: true,
3226        origins: &["ER"],
3227        comment: "An EdgeSchedulingArea is a electrical area that is part of a SubSchedulingArea with one or more Installations connected. It serves as the smallest energy level scheduling, forecasting and aggregated measurement used for coordinating energy production, consumption, and storage across its constituent connections. An EdgeSchedulingArea may represent physical locations with multiple grid connection, such as a shopping mall, university campus, industrial facility, or private microgrid that are normally connected to the grid.",
3228        attrs: &[
3229            AttrDef { id: "EdgeSchedulingArea.Installation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Installation", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The installation that is connected to the edge scheduliung area." },
3230        ],
3231    },
3232    ClassDef {
3233        ns: "https://cim4.eu/ns/nc#",
3234        local: "ElectricalChargingUnit",
3235        qualified: "nc:ElectricalChargingUnit",
3236        super_class: Some(420),
3237        concrete: true,
3238        origins: &["ER", "SSI"],
3239        comment: "A unit that supplies electrical power for charging electrical non-stationary entities, e.g. electrical vehicle, trucks, buses, ferries, boats and airplanes. The characteristic is that the energy consumption is highly schedule dependent.",
3240        attrs: &[
3241            AttrDef { id: "ElectricalChargingUnit.MobileElectricalUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "MobileElectricalUnit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Mobile electrical unit that is part of the electrical charging unit." },
3242        ],
3243    },
3244    ClassDef {
3245        ns: "https://cim4.eu/ns/nc#",
3246        local: "EnablingTimePoint",
3247        qualified: "nc:EnablingTimePoint",
3248        super_class: None,
3249        concrete: true,
3250        origins: &["SIS"],
3251        comment: "Enabling instruction value at a given point in time.",
3252        attrs: &[
3253            AttrDef { id: "EnablingTimePoint.GenericEnablingSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GenericEnablingSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The enabling schedule which belongs to the enabling timepoint." },
3254            AttrDef { id: "EnablingTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
3255            AttrDef { id: "EnablingTimePoint.enabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SIS"], comment: "It identifies if the element is enabled. True means enabled, False means not enabled." },
3256        ],
3257    },
3258    ClassDef {
3259        ns: "https://cim4.eu/ns/nc#",
3260        local: "EnergyAlignmentCoordinator",
3261        qualified: "nc:EnergyAlignmentCoordinator",
3262        super_class: Some(544),
3263        concrete: true,
3264        origins: &["ER"],
3265        comment: "A post that is responsible for alignment of forecast and schedule energy to a given energy coordination region.",
3266        attrs: &[
3267            AttrDef { id: "EnergyAlignmentCoordinator.EnergyCoordinationRegion", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyCoordinationRegion", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The energy coordination region that has this energy alignment coordinator." },
3268        ],
3269    },
3270    ClassDef {
3271        ns: "https://cim4.eu/ns/nc#",
3272        local: "EnergyBlockComponent",
3273        qualified: "nc:EnergyBlockComponent",
3274        super_class: Some(225),
3275        concrete: true,
3276        origins: &["ER"],
3277        comment: "Energy block component where the energy group is distributed according to the energy block order of each energy component in an energy group.",
3278        attrs: &[
3279            AttrDef { id: "EnergyBlockComponent.EnergyBlockOrder", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyBlockOrder", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The energy block order for this energy block component." },
3280        ],
3281    },
3282    ClassDef {
3283        ns: "https://cim4.eu/ns/nc#",
3284        local: "EnergyBlockOrder",
3285        qualified: "nc:EnergyBlockOrder",
3286        super_class: Some(318),
3287        concrete: true,
3288        origins: &["ER", "SIS", "SSI"],
3289        comment: "The energy block order is a block (an amount) of energy that forms the sequence of orders that are going to be distributed to an energy block component.",
3290        attrs: &[
3291            AttrDef { id: "EnergyBlockOrder.EnergyBlockComponent", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyBlockComponent", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The energy block component that has this energy block order." },
3292            AttrDef { id: "EnergyBlockOrder.GenericSequenceSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GenericSequenceSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Generic sequence schedule associated with an energy block order." },
3293            AttrDef { id: "EnergyBlockOrder.PowerShiftKeySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerShiftKeySchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The Power Shift Key schedule for an energy block order." },
3294            AttrDef { id: "EnergyBlockOrder.normalParticipationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Normal participation factor." },
3295            AttrDef { id: "EnergyBlockOrder.normalSequence", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["ER"], comment: "Normal sequence represents the local order of the power block order. The sequence order for a given block dispatch instruction. The sequence number need to be unique for a given block dispatch instruction, e.g. two order in the same instruction cannot have the same sequence." },
3296            AttrDef { id: "EnergyBlockOrder.p", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The maximum active power that can be applied as part of this block order." },
3297            AttrDef { id: "EnergyBlockOrder.participationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Participation factor." },
3298            AttrDef { id: "EnergyBlockOrder.powerDuration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Duration for the active power." },
3299            AttrDef { id: "EnergyBlockOrder.sequence", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["SSI"], comment: "Sequence needs to be ordered by the scheduling area. It has to be unique by the scheduling area." },
3300        ],
3301    },
3302    ClassDef {
3303        ns: "https://cim4.eu/ns/nc#",
3304        local: "EnergyComponent",
3305        qualified: "nc:EnergyComponent",
3306        super_class: Some(318),
3307        concrete: false,
3308        origins: &["ER"],
3309        comment: "The energy component for a producer or a consumer that has the same energy characteristic, e.g. fuel type and technology.",
3310        attrs: &[
3311            AttrDef { id: "EnergyComponent.EnergyConsumer", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyConsumer", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The energy consumer that relates to this energy component." },
3312            AttrDef { id: "EnergyComponent.EnergyResourceGroupCapacity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyResourceGroupCapacity", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The Energy Resource Group Capacity that has this energy component." },
3313            AttrDef { id: "EnergyComponent.GeneratingUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GeneratingUnit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The generating unit that is part of this energy component." },
3314            AttrDef { id: "EnergyComponent.HydroPump", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "HydroPump", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The hydro pump that relates to this energy component." },
3315            AttrDef { id: "EnergyComponent.PowerElectronicsUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerElectronicsUnit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The power electronics unit that relates to this energy component." },
3316        ],
3317    },
3318    ClassDef {
3319        ns: "https://cim.ucaiug.io/ns#",
3320        local: "EnergyConnection",
3321        qualified: "nc:EnergyConnection",
3322        super_class: Some(90),
3323        concrete: false,
3324        origins: &["ER", "PS", "SHS", "SIS", "SSI"],
3325        comment: "A connection of energy generation or consumption on the power system model.",
3326        attrs: &[
3327            AttrDef { id: "EnergyConnection.EnergyConnectionRegularSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyConnectionRegularSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "EnergyConnectionRegularSchedule which belongs to an energy connection." },
3328            AttrDef { id: "EnergyConnection.EnergyConnectionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyConnectionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "Energy connection schedule associated with an energy connection." },
3329            AttrDef { id: "EnergyConnection.Installation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Installation", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The installation that the energy connection is connected to." },
3330            AttrDef { id: "EnergyConnection.PowerSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PS"], comment: "The power schedule for this energy connection." },
3331        ],
3332    },
3333    ClassDef {
3334        ns: "https://cim4.eu/ns/nc#",
3335        local: "EnergyConnectionRegularSchedule",
3336        qualified: "nc:EnergyConnectionRegularSchedule",
3337        super_class: Some(59),
3338        concrete: true,
3339        origins: &["SHS"],
3340        comment: "Regular schedule for energy connection.",
3341        attrs: &[
3342            AttrDef { id: "EnergyConnectionRegularSchedule.EnergyConnection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyConnection", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "EnergyConnection which has EnergyConnectionRegularSchedule." },
3343            AttrDef { id: "EnergyConnectionRegularSchedule.p", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Active power injection. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for a steady state solution." },
3344            AttrDef { id: "EnergyConnectionRegularSchedule.q", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Reactive power injection. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for a steady state solution." },
3345        ],
3346    },
3347    ClassDef {
3348        ns: "https://cim4.eu/ns/nc#",
3349        local: "EnergyConnectionSchedule",
3350        qualified: "nc:EnergyConnectionSchedule",
3351        super_class: Some(57),
3352        concrete: true,
3353        origins: &["SHS"],
3354        comment: "Schedule for energy connection.",
3355        attrs: &[
3356            AttrDef { id: "EnergyConnectionSchedule.EnergyConnection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyConnection", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Energy connection which has energy connection schedules." },
3357            AttrDef { id: "EnergyConnectionSchedule.EnergyConnectionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyConnectionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The time point that relates to this energy connection schedule." },
3358        ],
3359    },
3360    ClassDef {
3361        ns: "https://cim4.eu/ns/nc#",
3362        local: "EnergyConnectionTimePoint",
3363        qualified: "nc:EnergyConnectionTimePoint",
3364        super_class: None,
3365        concrete: true,
3366        origins: &["SHS"],
3367        comment: "Energy connection values for a given point in time.",
3368        attrs: &[
3369            AttrDef { id: "EnergyConnectionTimePoint.EnergyConnectionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyConnectionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "The energy connection schedule that has this time point." },
3370            AttrDef { id: "EnergyConnectionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS"], comment: "The time the data is valid for." },
3371            AttrDef { id: "EnergyConnectionTimePoint.p", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Active power injection. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for a steady state solution." },
3372            AttrDef { id: "EnergyConnectionTimePoint.q", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Reactive power injection. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for a steady state solution." },
3373        ],
3374    },
3375    ClassDef {
3376        ns: "https://cim.ucaiug.io/ns#",
3377        local: "EnergyConsumer",
3378        qualified: "nc:EnergyConsumer",
3379        super_class: Some(226),
3380        concrete: true,
3381        origins: &["ER", "RA", "SIS", "SSI"],
3382        comment: "Generic user of energy - a point of consumption on the power system model. EnergyConsumer.pfixed, .qfixed, .pfixedPct and .qfixedPct have meaning only if there is no LoadResponseCharacteristic associated with EnergyConsumer or if LoadResponseCharacteristic.exponentModel is set to False.",
3383        attrs: &[
3384            AttrDef { id: "EnergyConsumer.EnergyComponent", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyComponent", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The energy component that has this energy consumer." },
3385            AttrDef { id: "EnergyConsumer.LoadAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "LoadAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The action appled to an EnergyConsumer." },
3386            AttrDef { id: "EnergyConsumer.PowerShiftKeySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerShiftKeySchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The Power Shift Key schedule for an Energy Consumer." },
3387            AttrDef { id: "EnergyConsumer.maxEconomicP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Maximum high economic active power limit, that should not exceed the maximum operating active power limit." },
3388            AttrDef { id: "EnergyConsumer.minEconomicP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Low economic active power limit that shall be greater than or equal to the minimum operating active power limit." },
3389            AttrDef { id: "EnergyConsumer.normalParticipationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). In the case of priority strategy, the item with the lowest number gets allocated energy first." },
3390            AttrDef { id: "EnergyConsumer.participationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). In the case of priority strategy, the item with the lowest number gets allocated energy first." },
3391        ],
3392    },
3393    ClassDef {
3394        ns: "https://cim4.eu/ns/nc#",
3395        local: "EnergyCoordinationRegion",
3396        qualified: "nc:EnergyCoordinationRegion",
3397        super_class: Some(459),
3398        concrete: true,
3399        origins: &["ER"],
3400        comment: "A region that has a common organisation or a service that is responsible for alignment of forecast and scheduling of energy.",
3401        attrs: &[
3402            AttrDef { id: "EnergyCoordinationRegion.EnergyAlignmentCoordinator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyAlignmentCoordinator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The energy alignment coordinator that operates this energy coordination region." },
3403            AttrDef { id: "EnergyCoordinationRegion.SchedulingArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchedulingArea", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The scheduling area that is part of this energy coordination region." },
3404        ],
3405    },
3406    ClassDef {
3407        ns: "https://cim4.eu/ns/nc#",
3408        local: "EnergyExchangePoint",
3409        qualified: "nc:EnergyExchangePoint",
3410        super_class: Some(87),
3411        concrete: true,
3412        origins: &["ER"],
3413        comment: "An EnergyExchangePoint is a CommonResponsibilityPoint that identifies the point at which two or more adjacent grid providers establish shared responsibility for the measurement, accounting, and reconciliation of exchanged energy. Note: The EnergyExchangePoint represents the inter-operator interface used for energy measurement and energy accounting (including settlement-relevant quantities where applicable). It is the reference point at which the participating grid providers define and apply their agreed responsibilities for metering data, data quality, validation, and exchange processes. An EnergyExchangePoint may also be used as the reference for operational coordination requirements related to the exchange (for example observability/telemetry requirements, agreed transfer capability constraints, or coordination of switching and outage conditions), without changing its primary purpose as the responsibility point for energy measurement and accounting.",
3414        attrs: &[
3415            AttrDef { id: "EnergyExchangePoint.SchedulingAreaExchangePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchedulingAreaExchangePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The scheduling area exchange point that is part of the scheduling area." },
3416        ],
3417    },
3418    ClassDef {
3419        ns: "https://cim4.eu/ns/nc#",
3420        local: "EnergyResourceGroupCapacity",
3421        qualified: "nc:EnergyResourceGroupCapacity",
3422        super_class: Some(440),
3423        concrete: true,
3424        origins: &["ER", "PS", "SIS", "SSI"],
3425        comment: "An aggregation of energy resources having common energy characteristics for which installed, available, or effective capacity is represented. Note: EnergyResourceGroupCapacity groups energy resources for capacity modelling, forecasting, scenario analysis and aggregation. The group may be characterised by an energy kind, energy source, technology, location, scenario, weather condition or other modelling context. The aggregated capacity may be represented by static values or by time-series values describing forecast, scheduled, actual or hindcast conditions. An EnergyComponent represents the part of an aggregated value associated with a particular underlying unit or resource. The aggregated value of the EnergyResourceGroupCapacity may therefore be distributed among its associated EnergyComponents, for example in proportion to the capability of the corresponding units or according to an ordered block-based allocation. Weather or other environmental information may be referenced where it is relevant to the capacity or availability of the grouped resources/",
3426        attrs: &[
3427            AttrDef { id: "EnergyResourceGroupCapacity.ClimateZone", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ClimateZone", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The climate zone for the energy group." },
3428            AttrDef { id: "EnergyResourceGroupCapacity.EnergyComponent", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyComponent", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The energy component that is part of this energy group." },
3429            AttrDef { id: "EnergyResourceGroupCapacity.EnergyResourceGroupCapacityRegularSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyResourceGroupCapacityRegularSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The regular schedule for this energy resource group capacity." },
3430            AttrDef { id: "EnergyResourceGroupCapacity.EnergyResourceGroupCapacitySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyResourceGroupCapacitySchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "" },
3431            AttrDef { id: "EnergyResourceGroupCapacity.EnergyResourceType", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyResourceType", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The energy resource type represented by the aggregated capacity group." },
3432            AttrDef { id: "EnergyResourceGroupCapacity.PowerSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PS"], comment: "Power schedule which is associated with an energy group." },
3433            AttrDef { id: "EnergyResourceGroupCapacity.PowerShiftKeySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerShiftKeySchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The Power Shift Key schedule for an energy group capacity." },
3434            AttrDef { id: "EnergyResourceGroupCapacity.SchedulingArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchedulingArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The scheduling area that has this energy group." },
3435            AttrDef { id: "EnergyResourceGroupCapacity.availabilityFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The ratio (in percent) between the effective available capacity and the installed capacity over a defined time interval. For weather-dependent resources, the value reflects climate-driven availability as derived from meteorological or hydrological conditions." },
3436            AttrDef { id: "EnergyResourceGroupCapacity.availableCapacityP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The weather or condition-dependent active power capacity that is realistically available for operation at a given time. This value reflects reductions due to climatic, hydrological, or operational constraints." },
3437            AttrDef { id: "EnergyResourceGroupCapacity.capacityAllocationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The relative weighting used to allocate an aggregate capacity requirement to this energy resource group on a time-series basis. Note: The values provide context-specific top-down capacity allocation weightings and may override normalCapacityAllocationFactor. Each value applies to the corresponding time interval represented by the time-series context. The factors are relative weights and are not required to represent percentages or to sum to 1. The allocation algorithm may normalize or otherwise adjust the applicable factors according to availability, existing capacity and other modelling constraints." },
3438            AttrDef { id: "EnergyResourceGroupCapacity.installedCapacityP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The nominal installed active power capacity of the energy type, independent of weather or operating conditions. This is the maximum technical power rating under standard design assumptions and optimum operation condition." },
3439            AttrDef { id: "EnergyResourceGroupCapacity.normalAavailabilityFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The normal ratio (in percent) between the effective available capacity and the installed capacity over a defined time interval. For weather-dependent resources, the value reflects climate-driven availability as derived from meteorological or hydrological conditions." },
3440            AttrDef { id: "EnergyResourceGroupCapacity.normalAvailableCapacityP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The weather or condition-dependent active power capacity that is realistically available for operation at a given time. This value reflects normal reduction due to climatic, hydrological, or operational constraints." },
3441            AttrDef { id: "EnergyResourceGroupCapacity.normalCapacityAllocationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The normal relative weighting used to allocate an aggregate capacity requirement to this energy resource group. Note: The value provides the default weighting for top-down capacity allocation when a more specific `capacityAllocationFactor` is not provided. The factor is relative to the factors of other applicable energy resource groups and is not required to represent a percentage or to sum to 1 across the groups. The allocation algorithm may normalize the applicable factors and take account of availability, existing capacity and other modelling constraints." },
3442            AttrDef { id: "EnergyResourceGroupCapacity.normalInstalledCapacityP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The nominal installed active power capacity of the energy type, independent of weather or normal operating conditions. This is the maximum technical power rating under standard design assumptions and optimum operation condition." },
3443            AttrDef { id: "EnergyResourceGroupCapacity.normalParticipationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Normal participation factor for the power group in relation to scheduling area. Must be a positive value." },
3444            AttrDef { id: "EnergyResourceGroupCapacity.p", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The effective active power capacity for the resource at the specified time, after considering all applied deratings, outages, operational limits, or weather influences. This value represents the usable capacity that can be delivered or consumed, effective capacity." },
3445            AttrDef { id: "EnergyResourceGroupCapacity.participationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Participation factor for the power group in relation to scheduling area. Must be a positive value." },
3446            AttrDef { id: "EnergyResourceGroupCapacity.powerDuration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Duration for the active power." },
3447            AttrDef { id: "EnergyResourceGroupCapacity.scenarioCode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "URI", is_list: false, used: true, xsd: "anyURI", value_ns: "", origins: &["ER"], comment: "Code identifying the study, scenario, or modelling configuration from which the capacity or availability values are derived. Examples include TYNDP scenario identifiers, national estimates, or dataset versions." },
3448            AttrDef { id: "EnergyResourceGroupCapacity.scenarioRef", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "URI", is_list: false, used: true, xsd: "anyURI", value_ns: "", origins: &["ER"], comment: "Reference to the study, scenario, or modelling configuration from which the capacity or availability values are derived. Examples include TYNDP scenario identifiers, national estimates, or dataset versions." },
3449            AttrDef { id: "EnergyResourceGroupCapacity.weatherDatasetCode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "URI", is_list: false, used: true, xsd: "anyURI", value_ns: "", origins: &["ER"], comment: "Code identifying the external weather or climate dataset used to determine availability or effective capacity for weather-dependent resources. Examples include datasets from the Pan-European Climate Database (PECD) or similar climate data services." },
3450            AttrDef { id: "EnergyResourceGroupCapacity.weatherDatasetRef", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "URI", is_list: false, used: true, xsd: "anyURI", value_ns: "", origins: &["ER"], comment: "Reference to the external weather or climate dataset used to determine availability or effective capacity for weather-dependent resources. Examples include datasets from the Pan-European Climate Database (PECD) or similar climate data services." },
3451        ],
3452    },
3453    ClassDef {
3454        ns: "https://cim4.eu/ns/nc#",
3455        local: "EnergyResourceGroupCapacityRegularSchedule",
3456        qualified: "nc:EnergyResourceGroupCapacityRegularSchedule",
3457        super_class: Some(59),
3458        concrete: true,
3459        origins: &["SIS"],
3460        comment: "Regular schedule for EnergyResourceGroupCapacity.",
3461        attrs: &[
3462            AttrDef { id: "EnergyResourceGroupCapacityRegularSchedule.EnergyResourceGroupCapacity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyResourceGroupCapacity", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The energy resource group capacity that has a regular schedule." },
3463            AttrDef { id: "EnergyResourceGroupCapacityRegularSchedule.availabilityFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The ratio (in percent) between the effective available capacity and the installed capacity over a defined time interval. For weather-dependent resources, the value reflects climate-driven availability as derived from meteorological or hydrological conditions." },
3464            AttrDef { id: "EnergyResourceGroupCapacityRegularSchedule.availableCapacityP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The weather or condition-dependent active power capacity that is realistically available for operation at a given time. This value reflects reductions due to climatic, hydrological, or operational constraints." },
3465            AttrDef { id: "EnergyResourceGroupCapacityRegularSchedule.capacityAllocationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: true, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The relative weighting used to allocate an aggregate capacity requirement to this energy resource group on a time-series basis. Note: The values provide context-specific top-down capacity allocation weightings and may override normalCapacityAllocationFactor. Each value applies to the corresponding time interval represented by the time-series context. The factors are relative weights and are not required to represent percentages or to sum to 1. The allocation algorithm may normalize or otherwise adjust the applicable factors according to availability, existing capacity and other modelling constraints." },
3466            AttrDef { id: "EnergyResourceGroupCapacityRegularSchedule.installedCapacityP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The nominal installed active power capacity of the energy type, independent of weather or operating conditions. This is the maximum technical power rating under standard design assumptions and optimum operation condition." },
3467            AttrDef { id: "EnergyResourceGroupCapacityRegularSchedule.p", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The effective active power capacity for the resource at the specified time, after considering all applied deratings, outages, operational limits, or weather influences. This value represents the usable capacity that can be delivered or consumed, effective capacity." },
3468            AttrDef { id: "EnergyResourceGroupCapacityRegularSchedule.participationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Participation factor for the power group in relation to scheduling area. Must be a positive value." },
3469        ],
3470    },
3471    ClassDef {
3472        ns: "https://cim4.eu/ns/nc#",
3473        local: "EnergyResourceGroupCapacitySchedule",
3474        qualified: "nc:EnergyResourceGroupCapacitySchedule",
3475        super_class: Some(57),
3476        concrete: true,
3477        origins: &["SIS"],
3478        comment: "The irregular schedule for the energy resource capacity group.",
3479        attrs: &[
3480            AttrDef { id: "EnergyResourceGroupCapacitySchedule.EnergyResourceGroupCapacity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyResourceGroupCapacity", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "" },
3481            AttrDef { id: "EnergyResourceGroupCapacitySchedule.EnergyResourceGroupCapacityTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyResourceGroupCapacityTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point for this energy resource capacity Schedule." },
3482        ],
3483    },
3484    ClassDef {
3485        ns: "https://cim4.eu/ns/nc#",
3486        local: "EnergyResourceGroupCapacityTimePoint",
3487        qualified: "nc:EnergyResourceGroupCapacityTimePoint",
3488        super_class: None,
3489        concrete: true,
3490        origins: &["SIS"],
3491        comment: "Energy resource group capacity value at a given point in time.",
3492        attrs: &[
3493            AttrDef { id: "EnergyResourceGroupCapacityTimePoint.EnergyResourceGroupCapacitySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyResourceGroupCapacitySchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The energy resource capacity schedule that has this time point." },
3494            AttrDef { id: "EnergyResourceGroupCapacityTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
3495            AttrDef { id: "EnergyResourceGroupCapacityTimePoint.availabilityFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The ratio (in percent) between the effective available capacity and the installed capacity over a defined time interval. For weather-dependent resources, the value reflects climate-driven availability as derived from meteorological or hydrological conditions." },
3496            AttrDef { id: "EnergyResourceGroupCapacityTimePoint.availableCapacityP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The weather or condition-dependent active power capacity that is realistically available for operation at a given time. This value reflects reductions due to climatic, hydrological, or operational constraints." },
3497            AttrDef { id: "EnergyResourceGroupCapacityTimePoint.capacityAllocationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The relative weighting used to allocate an aggregate capacity requirement to this energy resource group on a time-series basis. Note: The values provide context-specific top-down capacity allocation weightings and may override normalCapacityAllocationFactor. Each value applies to the corresponding time interval represented by the time-series context. The factors are relative weights and are not required to represent percentages or to sum to 1. The allocation algorithm may normalize or otherwise adjust the applicable factors according to availability, existing capacity and other modelling constraints." },
3498            AttrDef { id: "EnergyResourceGroupCapacityTimePoint.installedCapacityP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The nominal installed active power capacity of the energy type, independent of weather or operating conditions. This is the maximum technical power rating under standard design assumptions and optimum operation condition." },
3499            AttrDef { id: "EnergyResourceGroupCapacityTimePoint.p", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The effective active power capacity for the resource at the specified time, after considering all applied deratings, outages, operational limits, or weather influences. This value represents the usable capacity that can be delivered or consumed, effective capacity." },
3500            AttrDef { id: "EnergyResourceGroupCapacityTimePoint.participationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Participation factor for the power group in relation to scheduling area. Must be a positive value." },
3501        ],
3502    },
3503    ClassDef {
3504        ns: "https://cim4.eu/ns/nc#",
3505        local: "EnergyResourceType",
3506        qualified: "nc:EnergyResourceType",
3507        super_class: Some(318),
3508        concrete: true,
3509        origins: &["ER"],
3510        comment: "A reference classification of an energy resource based on its energy kind, primary energy source and conversion technology. Note: An energy resource type provides a common classification for forecasting, capacity aggregation, scheduling and reporting. Codes and references may identify entries in external controlled vocabularies, such as the European Energy Certificate System (EECS) energy source and technology classifications. Technical and environmental attributes represent reference or default characteristics used for modelling and reporting and do not represent measurements of an individual resource. Example: (1) Name = 'Solar-Photovoltaic-Thin Film', kind = solar, technologyCode = T010102 (2) Name = 'Renewable-Solid-Wood-Unspecified', kind = biomass, energySourceCode = F01010300.",
3511        attrs: &[
3512            AttrDef { id: "EnergyResourceType.EnergyResourceGroupCapacity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyResourceGroupCapacity", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The capacity groups classified by this energy resource type." },
3513            AttrDef { id: "EnergyResourceType.ScheduleResource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ScheduleResource", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The schedule resources whose primary energy resource type is this energy resource type." },
3514            AttrDef { id: "EnergyResourceType.co2EmissionFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Emission", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The reference carbon dioxide emission factor of the energy resource type. Note: The value represents a default factor used for modelling or reporting rather than measured emissions from an individual resource." },
3515            AttrDef { id: "EnergyResourceType.electricalEfficiency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The reference ratio of electrical energy output to energy input for the energy resource type. Note: The value represents a default or reference efficiency used for modelling and reporting. It is not necessarily the measured efficiency of an individual resource. Example: An energy resource type representing a combined-cycle gas turbine may have a reference electrical efficiency of 60 %." },
3516            AttrDef { id: "EnergyResourceType.energySourceCode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["ER"], comment: "Code identifying the primary energy source. Note: The code is assigned by a controlled vocabulary. The identified energy source need not be a combustible fuel; it may represent solar radiation, wind, hydro, ambient heat, biomass or another primary energy source. Example: F01010300 identifies Renewable-Solid-Wood-Unspecified in the European Energy Certificate System (EECS) energy source classification." },
3517            AttrDef { id: "EnergyResourceType.energySourceRef", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "URI", is_list: false, used: true, xsd: "anyURI", value_ns: "", origins: &["ER"], comment: "URI or URN identifying the same primary energy source classification as energySourceCode. Note:URI or URN identifying the same primary energy source as energySourceCode. The URI may be resolvable (HTTP) or non-resolvable (URN). CIM does not mandate any identification scheme. Example: https://www.aib-net.org/eecs/F01010300 to point to Renewable-Solid-Wood-Unspecified." },
3518            AttrDef { id: "EnergyResourceType.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "EnergyKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["ER"], comment: "The general kind of energy resource. Note: The value provides a broad functional classification suitable for aggregation and forecasting. More detailed classifications of the energy input and technology are provided by fuelCode, fuelRef, technologyCode and technologyRef." },
3519            AttrDef { id: "EnergyResourceType.technologyCode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["ER"], comment: "Code identifying the production, conversion, storage or consumption technology. Note: The code is assigned by an external controlled vocabulary. For electricity production, the code may identify a technology defined by the European Energy Certificate System (EECS) technology classification. Example: T010102 identifies Solar-Photovoltaic-Thin Film in the European Energy Certificate System (EECS) technology classification." },
3520            AttrDef { id: "EnergyResourceType.technologyRef", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "URI", is_list: false, used: true, xsd: "anyURI", value_ns: "", origins: &["ER"], comment: "URI or URN identifying the same technology classification as technologyCode. Note: URI or URN identifying the same technology as technologyCode. The URI may be resolvable (HTTP) or non-resolvable (URN). CIM does not mandate any identification scheme. Example: https://www.aib-net.org/eecs/T010102 to point to Solar-Photovoltaic-Thin Film." },
3521        ],
3522    },
3523    ClassDef {
3524        ns: "https://cim.ucaiug.io/ns#",
3525        local: "EnergySource",
3526        qualified: "nc:EnergySource",
3527        super_class: Some(226),
3528        concrete: true,
3529        origins: &["SSI", "RA", "SIS"],
3530        comment: "A generic equivalent for an energy supplier on a transmission or distribution voltage level.",
3531        attrs: &[
3532            AttrDef { id: "EnergySource.EnergySourceAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergySourceModification", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The energy source action applied to an EnergySource." },
3533            AttrDef { id: "EnergySource.PowerShiftKeySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerShiftKeySchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The power shift key schedule for an energy source." },
3534        ],
3535    },
3536    ClassDef {
3537        ns: "https://cim4.eu/ns/nc#",
3538        local: "EnergySourceModification",
3539        qualified: "nc:EnergySourceModification",
3540        super_class: Some(507),
3541        concrete: true,
3542        origins: &["RA", "SSI"],
3543        comment: "Energy source action.",
3544        attrs: &[
3545            AttrDef { id: "EnergySourceModification.EnergySource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergySource", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The EnergySource which is associated with an EnergySourceAction." },
3546        ],
3547    },
3548    ClassDef {
3549        ns: "https://cim4.eu/ns/nc#",
3550        local: "EnergyStoragePlant",
3551        qualified: "nc:EnergyStoragePlant",
3552        super_class: Some(428),
3553        concrete: false,
3554        origins: &["ER"],
3555        comment: "A power plant that coordinates one or more energy storage facilities and associated equipment for receiving, storing and subsequently delivering energy to the power system.",
3556        attrs: &[
3557            AttrDef { id: "EnergyStoragePlant.maxCapacity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The maximum amount of energy that may be stored by the energy storage plant within its defined operating limits." },
3558            AttrDef { id: "EnergyStoragePlant.minCapacity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The minimum amount of stored energy within the normal operating range of the energy storage plant." },
3559            AttrDef { id: "EnergyStoragePlant.nominalCapacity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The reference amount of stored energy that the energy storage plant is intended to operate with under normal conditions." },
3560        ],
3561    },
3562    ClassDef {
3563        ns: "https://cim.ucaiug.io/ns#",
3564        local: "Equipment",
3565        qualified: "nc:Equipment",
3566        super_class: Some(440),
3567        concrete: false,
3568        origins: &["AS", "CO", "ER", "GD", "RA", "SHS", "SIS", "SSI"],
3569        comment: "The parts of a power system that are physical devices, electronic or mechanical.",
3570        attrs: &[
3571            AttrDef { id: "Equipment.AggregatedEquipment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Equipment", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "An aggregated representation of the detailed equipment." },
3572            AttrDef { id: "Equipment.AvailabilityEquipment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilityEquipment", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "Availability equipment describe the availabilty that affect this equipment." },
3573            AttrDef { id: "Equipment.Circuit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Circuit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The circuit that containts its member equipment." },
3574            AttrDef { id: "Equipment.ContingencyEquipment", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "ContingencyEquipment", is_list: true, used: false, xsd: "", value_ns: "", origins: &["CO"], comment: "The contingency equipments in which this equipment participates." },
3575            AttrDef { id: "Equipment.DetailedEquipment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Equipment", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "A detailed representation of the aggregated equipment." },
3576            AttrDef { id: "Equipment.Faults", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "Fault", is_list: false, used: false, xsd: "", value_ns: "", origins: &["GD"], comment: "All faults on this equipment." },
3577            AttrDef { id: "Equipment.InServiceAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "InServiceAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "Action that is applied to an equipment." },
3578            AttrDef { id: "Equipment.InServiceRegularSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "InServiceRegularSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "InServiceRegularSchedule which belongs to an equipment." },
3579            AttrDef { id: "Equipment.InServiceSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "InServiceSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "In service schedule associated with an equipment." },
3580            AttrDef { id: "Equipment.Interruption", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Interruption", is_list: false, used: false, xsd: "", value_ns: "", origins: &["GD"], comment: "The interruption that belongs to the interrupted delivery equipment." },
3581            AttrDef { id: "Equipment.Outages", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "Outage", is_list: false, used: false, xsd: "", value_ns: "", origins: &["GD"], comment: "All outages in which this equipment is involved." },
3582            AttrDef { id: "Equipment.PTCTriggeredEquipment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PTCTriggeredEquipment", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The equipment that can trigger the power transfer corridor." },
3583            AttrDef { id: "Equipment.PinEquipment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PinEquipment", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The pin that uses this input." },
3584            AttrDef { id: "Equipment.PinEquipmentTripping", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PinEquipmentTripping", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "Pin equipment that is used as gate input." },
3585            AttrDef { id: "Equipment.UnplannedOutage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "UnplannedOutage", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GD"], comment: "The outage this tripped breaker is involved with." },
3586            AttrDef { id: "Equipment.inService", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "Specifies the availability of the equipment. True means the equipment is available for topology processing, which determines if the equipment is energized or not. False means that the equipment is treated by network applications as if it is not in the model." },
3587            AttrDef { id: "Equipment.networkAnalysisEnabled", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "The equipment is enabled to participate in network analysis. If unspecified, the value is assumed to be true." },
3588        ],
3589    },
3590    ClassDef {
3591        ns: "https://cim.ucaiug.io/ns#",
3592        local: "EquipmentContainer",
3593        qualified: "nc:EquipmentContainer",
3594        super_class: Some(95),
3595        concrete: false,
3596        origins: &["AS", "ER"],
3597        comment: "A modelling construct to provide a root class for containing equipment.",
3598        attrs: &[
3599            AttrDef { id: "EquipmentContainer.AvailabilityContainer", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilityContainer", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "Availability container describe the availabiltiy that affect this equipment container." },
3600        ],
3601    },
3602    ClassDef {
3603        ns: "https://cim4.eu/ns/nc#",
3604        local: "EquipmentController",
3605        qualified: "nc:EquipmentController",
3606        super_class: Some(39),
3607        concrete: false,
3608        origins: &["ER", "RA", "SSI"],
3609        comment: "Equipment controller is an automation function that can control one or multiple equipment function to achieve all the targets inside the given tolerance.",
3610        attrs: &[
3611            AttrDef { id: "EquipmentController.EquipmentControllerAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquipmentControllerAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "Equipment controller action for this equipment controller." },
3612            AttrDef { id: "EquipmentController.RegulatingCondEq", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RegulatingCondEq", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "All regulating conducting equipment that belongs to this equipment controller." },
3613            AttrDef { id: "EquipmentController.SystemControl", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SystemControl", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "System control which controls this equipment controller." },
3614        ],
3615    },
3616    ClassDef {
3617        ns: "https://cim4.eu/ns/nc#",
3618        local: "EquipmentControllerAction",
3619        qualified: "nc:EquipmentControllerAction",
3620        super_class: Some(507),
3621        concrete: true,
3622        origins: &["RA", "SSI"],
3623        comment: "Action for setting the equipment controller action.",
3624        attrs: &[
3625            AttrDef { id: "EquipmentControllerAction.EquipmentController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquipmentController", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "Equipment controller that has associated equipment controller actions." },
3626        ],
3627    },
3628    ClassDef {
3629        ns: "https://cim4.eu/ns/nc#",
3630        local: "EquivalentACDCConverter",
3631        qualified: "nc:EquivalentACDCConverter",
3632        super_class: Some(0),
3633        concrete: true,
3634        origins: &["ER", "SSI"],
3635        comment: "An equivalent representation of an AC/DC converter used to model the electrical interaction between an AC network and a DC system, without explicitly modelling internal converter station equipment or DC connectivity. The EquivalentACDCConverter abstracts the behaviour of a DC converter by representing its active and reactive power exchange, control characteristics, and connectivity at the AC and/or DC interface. It is used where a detailed converter model is not exchanged or required. The converter has one AC Terminal and two DC Terminal objects.",
3636        attrs: &[
3637            AttrDef { id: "EquivalentACDCConverter.CapabilityCurve", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VsCapabilityCurve", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The capability curve for the equivalent AC and DC converter." },
3638            AttrDef { id: "EquivalentACDCConverter.type", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "ACDCConverterKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["ER"], comment: "The type of the converter." },
3639        ],
3640    },
3641    ClassDef {
3642        ns: "https://cim.ucaiug.io/ns#",
3643        local: "EquivalentBranch",
3644        qualified: "nc:EquivalentBranch",
3645        super_class: Some(247),
3646        concrete: true,
3647        origins: &["SSI"],
3648        comment: "The class represents equivalent branches. In cases where a transformer phase shift is modelled and the EquivalentBranch is spanning the same nodes, the impedance quantities for the EquivalentBranch shall consider the needed phase shift.",
3649        attrs: &[],
3650    },
3651    ClassDef {
3652        ns: "https://cim.ucaiug.io/ns#",
3653        local: "EquivalentEquipment",
3654        qualified: "nc:EquivalentEquipment",
3655        super_class: Some(90),
3656        concrete: false,
3657        origins: &["SSI"],
3658        comment: "The class represents equivalent objects that are the result of a network reduction. The class is the base for equivalent objects of different types.",
3659        attrs: &[],
3660    },
3661    ClassDef {
3662        ns: "https://cim4.eu/ns/nc#",
3663        local: "EquivalentGeneratingUnit",
3664        qualified: "nc:EquivalentGeneratingUnit",
3665        super_class: Some(289),
3666        concrete: true,
3667        origins: &["ER", "SSI"],
3668        comment: "An indivisible set of installations which can generate electrical energy such that the frequency of the generated voltage, the generator speed and the frequency of network voltage are in a constant ratio and thus in synchronism. This is often referred as synchronous power-generating module.",
3669        attrs: &[
3670            AttrDef { id: "EquivalentGeneratingUnit.EquivalentPowerPlant", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquivalentPowerPlant", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Equivalent power plant that has this equivalent generating unit." },
3671            AttrDef { id: "EquivalentGeneratingUnit.ExternalNetworkInjection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ExternalNetworkInjection", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "External network injection part of the equivalent generating unit." },
3672        ],
3673    },
3674    ClassDef {
3675        ns: "https://cim.ucaiug.io/ns#",
3676        local: "EquivalentInjection",
3677        qualified: "nc:EquivalentInjection",
3678        super_class: Some(247),
3679        concrete: true,
3680        origins: &["ER", "PS", "RA", "SHS", "SIS", "SSI"],
3681        comment: "This class represents equivalent injections (generation or load). Voltage regulation is allowed only at the point of connection.",
3682        attrs: &[
3683            AttrDef { id: "EquivalentInjection.EquivalentInjectionAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquivalentInjectionAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The action that is applied to an EquivalentInjection." },
3684            AttrDef { id: "EquivalentInjection.EquivalentInjectionRegularSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquivalentInjectionRegularSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "EquivalentInjectionRegularSchedule which belongs to an equivalent injection." },
3685            AttrDef { id: "EquivalentInjection.EquivalentInjectionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquivalentInjectionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "Equivalent injection schedule associated with an equivalent injection." },
3686            AttrDef { id: "EquivalentInjection.InjectionController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "InjectionController", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Injection controller which controls the equivalent injection." },
3687            AttrDef { id: "EquivalentInjection.PowerSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PS"], comment: "Power schedule which has equivalent injection." },
3688            AttrDef { id: "EquivalentInjection.PowerShiftKeySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerShiftKeySchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Power shift key schedule associated with an equivalent injection." },
3689            AttrDef { id: "EquivalentInjection.ReactiveCapabilityCurve2", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ReactiveCapabilityCurve", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The reactive capability curve used by this equivalent injection." },
3690        ],
3691    },
3692    ClassDef {
3693        ns: "https://cim4.eu/ns/nc#",
3694        local: "EquivalentInjectionAction",
3695        qualified: "nc:EquivalentInjectionAction",
3696        super_class: Some(507),
3697        concrete: true,
3698        origins: &["RA", "SSI"],
3699        comment: "Equivalent injection action.",
3700        attrs: &[
3701            AttrDef { id: "EquivalentInjectionAction.EquivalentInjection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquivalentInjection", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The EquivalentInjection that is associated with an action." },
3702        ],
3703    },
3704    ClassDef {
3705        ns: "https://cim4.eu/ns/nc#",
3706        local: "EquivalentInjectionRegularSchedule",
3707        qualified: "nc:EquivalentInjectionRegularSchedule",
3708        super_class: Some(59),
3709        concrete: true,
3710        origins: &["SHS"],
3711        comment: "Regular schedule for equivalent injection.",
3712        attrs: &[
3713            AttrDef { id: "EquivalentInjectionRegularSchedule.EquivalentInjection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquivalentInjection", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "EquivalentInjection which has EquivalentInjectionRegularSchedule." },
3714            AttrDef { id: "EquivalentInjectionRegularSchedule.p", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Equivalent active power injection. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for steady state solutions." },
3715            AttrDef { id: "EquivalentInjectionRegularSchedule.q", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Equivalent reactive power injection. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for steady state solutions." },
3716            AttrDef { id: "EquivalentInjectionRegularSchedule.regulationStatus", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SHS"], comment: "Specifies the regulation status of the EquivalentInjection. True is regulating. False is not regulating." },
3717            AttrDef { id: "EquivalentInjectionRegularSchedule.regulationTarget", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "The target voltage for voltage regulation. The attribute shall be a positive value." },
3718        ],
3719    },
3720    ClassDef {
3721        ns: "https://cim4.eu/ns/nc#",
3722        local: "EquivalentInjectionSchedule",
3723        qualified: "nc:EquivalentInjectionSchedule",
3724        super_class: Some(57),
3725        concrete: true,
3726        origins: &["SHS"],
3727        comment: "Regular schedule for equivalent injection.",
3728        attrs: &[
3729            AttrDef { id: "EquivalentInjectionSchedule.EquivalentInjection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquivalentInjection", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Equivalent injection which has equivalent injection schedules." },
3730            AttrDef { id: "EquivalentInjectionSchedule.EquivalentInjectionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquivalentInjectionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The time point that relates to this equivalent injection schedule." },
3731        ],
3732    },
3733    ClassDef {
3734        ns: "https://cim4.eu/ns/nc#",
3735        local: "EquivalentInjectionTimePoint",
3736        qualified: "nc:EquivalentInjectionTimePoint",
3737        super_class: None,
3738        concrete: true,
3739        origins: &["SHS"],
3740        comment: "Equivalent injection values for a given point in time.",
3741        attrs: &[
3742            AttrDef { id: "EquivalentInjectionTimePoint.EquivalentInjectionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquivalentInjectionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "The EquivalentInjection schedule that has this time point." },
3743            AttrDef { id: "EquivalentInjectionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS"], comment: "The time the data is valid for." },
3744            AttrDef { id: "EquivalentInjectionTimePoint.p", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Equivalent active power injection. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for steady state solutions." },
3745            AttrDef { id: "EquivalentInjectionTimePoint.q", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Equivalent reactive power injection. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for steady state solutions." },
3746            AttrDef { id: "EquivalentInjectionTimePoint.regulationStatus", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SHS"], comment: "Specifies the regulation status of the EquivalentInjection. True is regulating. False is not regulating." },
3747            AttrDef { id: "EquivalentInjectionTimePoint.regulationTarget", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "The target voltage for voltage regulation. The attribute shall be a positive value." },
3748        ],
3749    },
3750    ClassDef {
3751        ns: "https://cim4.eu/ns/nc#",
3752        local: "EquivalentPowerElectronicsUnit",
3753        qualified: "nc:EquivalentPowerElectronicsUnit",
3754        super_class: Some(420),
3755        concrete: true,
3756        origins: &["ER", "SSI"],
3757        comment: "An equivalent unit or ensemble of units generating electricity, which is either non-synchronously connected to the network or connected through power electronics, and that also has a single connection point to a transmission system, distribution system including closed distribution system or an equivalent representation of a HVDC system. This is often referred as power park module.",
3758        attrs: &[
3759            AttrDef { id: "EquivalentPowerElectronicsUnit.EquivalentPowerPlant", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquivalentPowerPlant", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Equivalent power plan that has this equivalent power electronics unit." },
3760        ],
3761    },
3762    ClassDef {
3763        ns: "https://cim4.eu/ns/nc#",
3764        local: "EquivalentPowerPlant",
3765        qualified: "nc:EquivalentPowerPlant",
3766        super_class: Some(428),
3767        concrete: true,
3768        origins: &["ER"],
3769        comment: "Collection of equivalent equipment for purposes of generation.",
3770        attrs: &[
3771            AttrDef { id: "EquivalentPowerPlant.EquivalentGeneratingUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquivalentGeneratingUnit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Equivalent generating unit thatis part of the equivalent power plant." },
3772            AttrDef { id: "EquivalentPowerPlant.EquivalentPowerElectronicsUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquivalentPowerElectronicsUnit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Equivalent power electronics that is part of the equivalent power plant." },
3773        ],
3774    },
3775    ClassDef {
3776        ns: "https://cim.ucaiug.io/ns#",
3777        local: "EquivalentShunt",
3778        qualified: "nc:EquivalentShunt",
3779        super_class: Some(247),
3780        concrete: true,
3781        origins: &["SSI"],
3782        comment: "The class represents equivalent shunts.",
3783        attrs: &[],
3784    },
3785    ClassDef {
3786        ns: "https://cim4.eu/ns/nc#",
3787        local: "EventSchedule",
3788        qualified: "nc:EventSchedule",
3789        super_class: Some(57),
3790        concrete: true,
3791        origins: &["AS", "RAS"],
3792        comment: "Time series represent irregular event described by event points in time.",
3793        attrs: &[
3794            AttrDef { id: "EventSchedule.ActualAvailabilitySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilitySchedule", is_list: false, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "Actual availability schedule that has this irregular interval schedule." },
3795            AttrDef { id: "EventSchedule.EventTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EventTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS", "RAS"], comment: "Value for the point in time." },
3796            AttrDef { id: "EventSchedule.PlannedAvailabilitySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilitySchedule", is_list: false, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "Planned availability schedule that has this irregular interval schedule." },
3797            AttrDef { id: "EventSchedule.RemedialActionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "Remedial action schedule is the event that is validity for the given time series." },
3798        ],
3799    },
3800    ClassDef {
3801        ns: "https://cim4.eu/ns/nc#",
3802        local: "EventTimePoint",
3803        qualified: "nc:EventTimePoint",
3804        super_class: None,
3805        concrete: true,
3806        origins: &["AS", "RAS"],
3807        comment: "Event valid for a given point in time.",
3808        attrs: &[
3809            AttrDef { id: "EventTimePoint.EventSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EventSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS", "RAS"], comment: "Time series the time point values belongs to." },
3810            AttrDef { id: "EventTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["AS", "RAS"], comment: "The time the data is valid for." },
3811            AttrDef { id: "EventTimePoint.isActive", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["AS", "RAS"], comment: "True, if the event is occurring (Active) at this time point. Otherwise false." },
3812        ],
3813    },
3814    ClassDef {
3815        ns: "https://cim4.eu/ns/nc#",
3816        local: "ExceptionalContingency",
3817        qualified: "nc:ExceptionalContingency",
3818        super_class: Some(97),
3819        concrete: true,
3820        origins: &["CO", "SSI"],
3821        comment: "Exceptional contingency means the simultaneous occurrence of multiple contingencies with a common cause.",
3822        attrs: &[
3823            AttrDef { id: "ExceptionalContingency.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "ContingencyConditionKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["CO"], comment: "Defines the kind of relevance and criteria of application of the exceptional contingency." },
3824        ],
3825    },
3826    ClassDef {
3827        ns: "https://cim4.eu/ns/nc#",
3828        local: "ExceptionalPowerTransferCorridor",
3829        qualified: "nc:ExceptionalPowerTransferCorridor",
3830        super_class: Some(442),
3831        concrete: true,
3832        origins: &["ER"],
3833        comment: "Potential power transfer corridor that can be triggered by equipment which changes its in service status or it is operating in an island.",
3834        attrs: &[
3835            AttrDef { id: "ExceptionalPowerTransferCorridor.PTCTriggeredEquipment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PTCTriggeredEquipment", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The equipment that triggers this exceptional power transfer corridor." },
3836        ],
3837    },
3838    ClassDef {
3839        ns: "https://cim.ucaiug.io/ns#",
3840        local: "ExternalNetworkInjection",
3841        qualified: "nc:ExternalNetworkInjection",
3842        super_class: Some(460),
3843        concrete: true,
3844        origins: &["ER", "RA", "SHS", "SIS", "SSI"],
3845        comment: "This class represents the external network and it is used for IEC 60909 calculations.",
3846        attrs: &[
3847            AttrDef { id: "ExternalNetworkInjection.EquivalentGeneratingUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquivalentGeneratingUnit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Equivalent generating unit that has this external network injection." },
3848            AttrDef { id: "ExternalNetworkInjection.ExternalNetowrkInjectionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ExternalNetworkInjectionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "External Network Injection schedule associated with an External Network Injection." },
3849            AttrDef { id: "ExternalNetworkInjection.ExternalNetworkInjectionAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ExternalNetworkInjectionAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The action that is applied to an ExternalNetworkInjection." },
3850            AttrDef { id: "ExternalNetworkInjection.ExternalNetworkinjectionRegularSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ExternalNetworkInjectionRegularSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "ExternalNetworkinjectionRegularSchedule which belongs to a external network injection." },
3851            AttrDef { id: "ExternalNetworkInjection.PowerShiftKeySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerShiftKeySchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The power shift key schedule for an external network injection." },
3852        ],
3853    },
3854    ClassDef {
3855        ns: "https://cim4.eu/ns/nc#",
3856        local: "ExternalNetworkInjectionAction",
3857        qualified: "nc:ExternalNetworkInjectionAction",
3858        super_class: Some(507),
3859        concrete: true,
3860        origins: &["RA", "SSI"],
3861        comment: "External network injection action.",
3862        attrs: &[
3863            AttrDef { id: "ExternalNetworkInjectionAction.ExternalNetworkInjection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ExternalNetworkInjection", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The ExternalNetworkInjection that is associated with an action." },
3864        ],
3865    },
3866    ClassDef {
3867        ns: "https://cim4.eu/ns/nc#",
3868        local: "ExternalNetworkInjectionRegularSchedule",
3869        qualified: "nc:ExternalNetworkInjectionRegularSchedule",
3870        super_class: Some(59),
3871        concrete: true,
3872        origins: &["SHS"],
3873        comment: "Regular schedule for external network injection.",
3874        attrs: &[
3875            AttrDef { id: "ExternalNetworkInjectionRegularSchedule.ExternalNetworkinjection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ExternalNetworkInjection", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "External network injection which has ExternalNetworkinjectionRegularSchedule" },
3876            AttrDef { id: "ExternalNetworkInjectionRegularSchedule.p", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Active power injection. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for steady state solutions." },
3877            AttrDef { id: "ExternalNetworkInjectionRegularSchedule.q", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Reactive power injection. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for steady state solutions." },
3878            AttrDef { id: "ExternalNetworkInjectionRegularSchedule.referencePriority", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["SHS"], comment: "Priority of unit for use as powerflow voltage phase angle reference bus selection. 0 = don t care (default) 1 = highest priority. 2 is less than 1 and so on." },
3879        ],
3880    },
3881    ClassDef {
3882        ns: "https://cim4.eu/ns/nc#",
3883        local: "ExternalNetworkInjectionSchedule",
3884        qualified: "nc:ExternalNetworkInjectionSchedule",
3885        super_class: Some(57),
3886        concrete: true,
3887        origins: &["SHS"],
3888        comment: "Schedule for external network injection.",
3889        attrs: &[
3890            AttrDef { id: "ExternalNetworkInjectionSchedule.ExternalNetworkInjection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ExternalNetworkInjection", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "External Network Injection which has External Network Injection schedules." },
3891            AttrDef { id: "ExternalNetworkInjectionSchedule.ExternalNetworkinjectionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ExternalNetworkInjectionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The time point that relates to this external network injection schedule." },
3892        ],
3893    },
3894    ClassDef {
3895        ns: "https://cim4.eu/ns/nc#",
3896        local: "ExternalNetworkInjectionTimePoint",
3897        qualified: "nc:ExternalNetworkInjectionTimePoint",
3898        super_class: None,
3899        concrete: true,
3900        origins: &["SHS"],
3901        comment: "External network injection values for a given point in time.",
3902        attrs: &[
3903            AttrDef { id: "ExternalNetworkInjectionTimePoint.ExternalNetworkInjectionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ExternalNetworkInjectionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "The external network injection schedule that has this time point." },
3904            AttrDef { id: "ExternalNetworkInjectionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS"], comment: "The time the data is valid for." },
3905            AttrDef { id: "ExternalNetworkInjectionTimePoint.p", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Active power injection. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for steady state solutions." },
3906            AttrDef { id: "ExternalNetworkInjectionTimePoint.q", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Reactive power injection. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for steady state solutions." },
3907            AttrDef { id: "ExternalNetworkInjectionTimePoint.referencePriority", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["SHS"], comment: "Priority of unit for use as powerflow voltage phase angle reference bus selection. 0 = don t care (default) 1 = highest priority. 2 is less than 1 and so on." },
3908        ],
3909    },
3910    ClassDef {
3911        ns: "https://cim4.eu/ns/nc#",
3912        local: "FACTSEquipment",
3913        qualified: "nc:FACTSEquipment",
3914        super_class: Some(460),
3915        concrete: false,
3916        origins: &["ER", "SSI"],
3917        comment: "Flexible Alternating Current Transmission System regulating equipment.",
3918        attrs: &[
3919            AttrDef { id: "FACTSEquipment.LossCurve", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "LossCurve", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The loss curve for the FACTS equipment." },
3920            AttrDef { id: "FACTSEquipment.maxC", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Capacitive reactance at maximum reactive power. Shall always be positive." },
3921            AttrDef { id: "FACTSEquipment.maxL", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Inductive rating at maximum inductive reactive power. Shall always be negative." },
3922            AttrDef { id: "FACTSEquipment.minC", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Capacitive reactance at minimum reactive power. Shall always be positive." },
3923            AttrDef { id: "FACTSEquipment.minL", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Inductive rating at minimum inductive reactive power. Shall always be negative." },
3924            AttrDef { id: "FACTSEquipment.q", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Reactive power injection. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for a steady state solution." },
3925            AttrDef { id: "FACTSEquipment.ratedC", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Capacitive reactance at maximum reactive power. Shall always be positive." },
3926            AttrDef { id: "FACTSEquipment.ratedI", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Rated current of the FACTS equipment." },
3927            AttrDef { id: "FACTSEquipment.ratedL", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Inductive rating at maximum inductive reactive power. Shall always be negative." },
3928            AttrDef { id: "FACTSEquipment.ratedU", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Rated voltage of the FACTS equipment." },
3929            AttrDef { id: "FACTSEquipment.slope", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "VoltagePerReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The characteristics slope which defines how the reactive power output changes in proportion to the difference between the regulated bus voltage and the voltage setpoint. The attribute shall be a positive value or zero." },
3930        ],
3931    },
3932    ClassDef {
3933        ns: "https://cim.ucaiug.io/ns#",
3934        local: "Fault",
3935        qualified: "nc:Fault",
3936        super_class: Some(318),
3937        concrete: true,
3938        origins: &["GD"],
3939        comment: "Abnormal condition causing current flow through conducting equipment, such as caused by equipment failure or short circuits from objects not typically modelled (for example, a tree falling on a line).",
3940        attrs: &[
3941            AttrDef { id: "Fault.BaseVoltage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BaseVoltage", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GD"], comment: "The base voltage of this fault." },
3942            AttrDef { id: "Fault.FaultCause", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FaultCause", is_list: true, used: false, xsd: "", value_ns: "", origins: &["GD"], comment: "The fault and cause combination to be simulated for this fault." },
3943            AttrDef { id: "Fault.FaultOutage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FaultOutage", is_list: true, used: false, xsd: "", value_ns: "", origins: &["GD"], comment: "The combination of a fault and an outage to be simulated for this fault." },
3944            AttrDef { id: "Fault.FaultyEquipment", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "Equipment", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GD"], comment: "Equipment carrying this fault." },
3945            AttrDef { id: "Fault.GridDisturbance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridDisturbance", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GD"], comment: "A grid disturbance to contain all faults." },
3946            AttrDef { id: "Fault.Location", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "Location", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GD"], comment: "Location of this fault." },
3947            AttrDef { id: "Fault.SystemOperator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SystemOperator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GD"], comment: "The system operator in whose control area this fault occurred." },
3948            AttrDef { id: "Fault.category", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "FaultCategoryKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["GD"], comment: "The fault category." },
3949            AttrDef { id: "Fault.duration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GD"], comment: "The duration of the fault." },
3950            AttrDef { id: "Fault.faultKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "FaultKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["GD"], comment: "One fault can consist of several fault types. If a fault consists of several fault types, the most significant fault type is used. In case of developing faults, that is in faults changing from one type to another, the final type is given." },
3951            AttrDef { id: "Fault.isDirectlyEarthed", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["GD"], comment: "Whether the power system is directly earthed (true) or compensated (false). Usually optional for faults on units with reactive compensation with voltages lower than 100 kV." },
3952            AttrDef { id: "Fault.isIntermittent", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["GD"], comment: "The kind of occurrence of the fault. It is either intermittent (true) or non-intermittent (false). An intermittent fault is a recurring fault in the same unit and in the same place and for the same reason which repeats itself before it becomes necessary to carry out any repairs or eliminate the cause [8]. A non-intermittent fault occurs only once. Note 1: a fault which repeats itself after an inspection, which did not result in the fault being pinpointed or repaired, is not considered an intermittent fault. A fault like this is considered as the beginning of a grid disturbance every time the fault occurs. Note 2: one example of an intermittent fault is galloping lines. Note 3: when deciding whether a fault is intermittent or not, one should consider more of the cause, location and consequence of the fault and not on the time between the faults. An intermittent fault is counted as one fault. However, all individual caused outages are connected to this fault. Note 4: there is no standard for the required timespan between intermittent faults. Some system operators use 2 hours." },
3953            AttrDef { id: "Fault.isPermanent", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["GD"], comment: "Whether the fault is a permanent (true) or a temporary (false) fault. A permanent fault is a fault that will remain unless it is removed by some intervention. Note 1 to entry: The “intervention” may be modification or maintenance. Note 2: a permanent fault requires repair or adjustment before the unit is ready for operation. For example, the resetting of computers is considered as repair work and a switch in the wrong position is considered as a permanent fault. Signal acknowledgement is not considered as repair work. Note 3: the duration of the disconnection is irrelevant when determining if a fault is permanent or not. A temporary fault is a fault where the unit or component is undamaged and is restored to service by switching operations without repair but possibly with on-site inspection. Note 1: a temporary fault does not require measures other than the reconnection of circuit breakers, replacement of fuses or signal acknowledgement. Note 2: the duration of the disconnection is irrelevant when determining if a fault is temporary or not. If, for example, a fault results in long-term disconnection and (on-site) inspection cannot pinpoint its source, the fault is considered to be temporary as no repairs are carried out." },
3954            AttrDef { id: "Fault.kind", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Enum, range: "PhaseConnectedFaultKind", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["GD"], comment: "The kind of phase fault." },
3955            AttrDef { id: "Fault.occurredDateTime", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["GD"], comment: "The date and time at which the fault occurred." },
3956            AttrDef { id: "Fault.phases", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Enum, range: "PhaseCode", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["GD"], comment: "The phases participating in the fault. The fault connections into these phases are further specified by the type of fault." },
3957            AttrDef { id: "Fault.repairTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GD"], comment: "Time from when repair commences, including necessary troubleshooting, until the unit’s function(s) has (have) been resumed and the unit is ready for operation. Note 1: repair time is registered only for permanent faults and does not include administrative delays (voluntary waiting time). However, any preparations necessary to carry out repairs, for example the collection or ordering of spare parts, waiting for spare parts or transport, are included in the repair time. Note 2: the repair time is zero if a fault is left unrepaired deliberately. Note 3: this definition differs from the IEC 192-07-19 definition by also including the preparation time necessary to carry out the repairs mentioned in note 1." },
3958            AttrDef { id: "Fault.sequenceNumber", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["GD"], comment: "A chronological serial number indicating the order of the faults related to the grid disturbance. Primary faults have fault ID “1”, and secondary/latent faults have fault ID “2” or more." },
3959        ],
3960    },
3961    ClassDef {
3962        ns: "https://cim4.eu/ns/nc#",
3963        local: "FaultCause",
3964        qualified: "nc:FaultCause",
3965        super_class: None,
3966        concrete: true,
3967        origins: &["GD"],
3968        comment: "Fault cause.",
3969        attrs: &[
3970            AttrDef { id: "FaultCause.Fault", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Fault", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GD"], comment: "The fault defined for this fault and cause combination." },
3971            AttrDef { id: "FaultCause.FaultCauseType", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FaultCauseType", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GD"], comment: "The fault and cause combination to be simulated for this cause." },
3972            AttrDef { id: "FaultCause.certaintyLevel", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "CertaintyLevelKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["GD"], comment: "The degree of certainty of which the cause of a fault is determined by a user. Note 1: the used certainty levels are low, medium and high. High certainty level is used when the cause of a fault is 100 % certain or when the cause is the most probable cause and potentially determined by an expert. Medium certainty level is used when the cause of the fault is very probable but there is not enough evidence to fully support the claim. Low certainty level is used when there is some idea of what the cause could be with the help of, for example, the fault details or expert knowledge. Note 2: the fault cause ‘unknown’ is used if no other fault cause can be chosen by any degree of certainty." },
3973            AttrDef { id: "FaultCause.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GD"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
3974        ],
3975    },
3976    ClassDef {
3977        ns: "https://cim.ucaiug.io/ns#",
3978        local: "FaultCauseType",
3979        qualified: "nc:FaultCauseType",
3980        super_class: Some(318),
3981        concrete: true,
3982        origins: &["GD"],
3983        comment: "Type of cause of the fault.",
3984        attrs: &[
3985            AttrDef { id: "FaultCauseType.FaultCause", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FaultCause", is_list: true, used: false, xsd: "", value_ns: "", origins: &["GD"], comment: "The fault cause defined for this fault and cause combination." },
3986        ],
3987    },
3988    ClassDef {
3989        ns: "https://cim.ucaiug.io/ns#",
3990        local: "FaultIndicator",
3991        qualified: "nc:FaultIndicator",
3992        super_class: Some(40),
3993        concrete: true,
3994        origins: &["SSI"],
3995        comment: "A FaultIndicator is typically only an indicator (which may or may not be remotely monitored), and not a piece of equipment that actually initiates a protection event. It is used for FLISR (Fault Location, Isolation and Restoration) purposes, assisting with the dispatch of crews to 'most likely' part of the network (i.e. assists with determining circuit section where the fault most likely happened).",
3996        attrs: &[],
3997    },
3998    ClassDef {
3999        ns: "https://cim4.eu/ns/nc#",
4000        local: "FaultOutage",
4001        qualified: "nc:FaultOutage",
4002        super_class: None,
4003        concrete: true,
4004        origins: &["GD"],
4005        comment: "Association class for relating one fault and one outage.",
4006        attrs: &[
4007            AttrDef { id: "FaultOutage.Fault", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Fault", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GD"], comment: "The fault defined for this combination of a fault and an outage." },
4008            AttrDef { id: "FaultOutage.Outage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Outage", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GD"], comment: "The outage defined for this combination of a fault and an outage." },
4009            AttrDef { id: "FaultOutage.isMainFault", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["GD"], comment: "If true the fault outage is the main fault." },
4010            AttrDef { id: "FaultOutage.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GD"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
4011        ],
4012    },
4013    ClassDef {
4014        ns: "https://cim4.eu/ns/nc#",
4015        local: "FlexibleEnergyUnit",
4016        qualified: "nc:FlexibleEnergyUnit",
4017        super_class: Some(420),
4018        concrete: true,
4019        origins: &["ER", "SSI"],
4020        comment: "Flexible consumer or embedded producer of energy. The unit cannot be a net producer.",
4021        attrs: &[
4022            AttrDef { id: "FlexibleEnergyUnit.buffer", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The active power, that has the flexibility to operate as production and/or consumption. The buffer is bound. Example are heat pump, cooling system, embedded batteries including electric vehicle. Load sign convention is used, i.e. positive sign means flow out from a node." },
4023            AttrDef { id: "FlexibleEnergyUnit.timeShift", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The active power, that can be shifted from one pricing interval (market time unit) to another. It is expected to be a limited on the length of the shift. Example from household could be washing machine or dishwasher. Example from industry is the possible to shut down a machine for the relevant period. Load sign convention is used, i.e. positive sign means flow out from a node." },
4024            AttrDef { id: "FlexibleEnergyUnit.unconstrained", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The active power, that has the flexibility to operate as production without any bound by a buffer. Example are alternative heating (wood, gas, diesel etc) or power generators. Load sign convention is used, i.e. positive sign means flow out from a node." },
4025            AttrDef { id: "FlexibleEnergyUnit.uncontrollable", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The active power, that forms the base consumption for the unit. This is measured and expected consumption. Load sign convention is used, i.e. positive sign means flow out from a node." },
4026        ],
4027    },
4028    ClassDef {
4029        ns: "https://cim.ucaiug.io/ns#",
4030        local: "FossilFuel",
4031        qualified: "nc:FossilFuel",
4032        super_class: None,
4033        concrete: true,
4034        origins: &["ER"],
4035        comment: "The fossil fuel consumed by the non-nuclear thermal generating unit. For example, coal, oil, gas, etc. These are the specific fuels that the generating unit can consume.",
4036        attrs: &[
4037            AttrDef { id: "FossilFuel.FuelStorage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FuelStorage", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Fuel storage that store fossil fuels." },
4038        ],
4039    },
4040    ClassDef {
4041        ns: "https://cim4.eu/ns/nc#",
4042        local: "FrequencyControlFunction",
4043        qualified: "nc:FrequencyControlFunction",
4044        super_class: Some(109),
4045        concrete: true,
4046        origins: &["ER", "SIS", "SSI"],
4047        comment: "Frequency control function is a function block that calculate the operating point of the controlled equipment to achieve the target frequency.",
4048        attrs: &[
4049            AttrDef { id: "FrequencyControlFunction.FrequencyControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FrequencyControlFunctionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule of the control function." },
4050            AttrDef { id: "FrequencyControlFunction.frequencyBias", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Frequency bias that the control function is using to achieve by adjusting the operational setting to the controlled equipment." },
4051            AttrDef { id: "FrequencyControlFunction.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Target value for the frequency that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
4052        ],
4053    },
4054    ClassDef {
4055        ns: "https://cim4.eu/ns/nc#",
4056        local: "FrequencyControlFunctionSchedule",
4057        qualified: "nc:FrequencyControlFunctionSchedule",
4058        super_class: Some(57),
4059        concrete: true,
4060        origins: &["SIS"],
4061        comment: "The schedule for FrequencyControlFunction.",
4062        attrs: &[
4063            AttrDef { id: "FrequencyControlFunctionSchedule.FrequencyControlFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FrequencyControlFunction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The control function that has this schedule." },
4064            AttrDef { id: "FrequencyControlFunctionSchedule.FrequencyControlFunctionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FrequencyControlFunctionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point of the schedule." },
4065        ],
4066    },
4067    ClassDef {
4068        ns: "https://cim4.eu/ns/nc#",
4069        local: "FrequencyControlFunctionTimePoint",
4070        qualified: "nc:FrequencyControlFunctionTimePoint",
4071        super_class: None,
4072        concrete: true,
4073        origins: &["SIS"],
4074        comment: "Frequency control function value for a given point in time.",
4075        attrs: &[
4076            AttrDef { id: "FrequencyControlFunctionTimePoint.FrequencyControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FrequencyControlFunctionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule that has this time point." },
4077            AttrDef { id: "FrequencyControlFunctionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
4078            AttrDef { id: "FrequencyControlFunctionTimePoint.frequencyBias", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Frequency bias that the control function is using to achieve by adjusting the operational setting to the controlled equipment." },
4079            AttrDef { id: "FrequencyControlFunctionTimePoint.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Target value for the frequency that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
4080        ],
4081    },
4082    ClassDef {
4083        ns: "https://cim4.eu/ns/nc#",
4084        local: "FrequencyMonitoringTerminal",
4085        qualified: "nc:FrequencyMonitoringTerminal",
4086        super_class: None,
4087        concrete: true,
4088        origins: &["ER"],
4089        comment: "Frequency monitoring terminal provides location in the model where the frequency is monitored for the purpose of power frequency control.",
4090        attrs: &[
4091            AttrDef { id: "FrequencyMonitoringTerminal.PowerFrequencyController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerFrequencyController", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Power frequency controller that has this frequency monitoring terminal." },
4092            AttrDef { id: "FrequencyMonitoringTerminal.Terminal", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Terminal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The terminal for this frequency monitoring terminal." },
4093            AttrDef { id: "FrequencyMonitoringTerminal.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["ER"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
4094            AttrDef { id: "FrequencyMonitoringTerminal.priority", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["ER"], comment: "Value 0 means ignore priority. 1 means the highest priority, 2 is the second highest priority." },
4095        ],
4096    },
4097    ClassDef {
4098        ns: "https://cim4.eu/ns/nc#",
4099        local: "FuelStorage",
4100        qualified: "nc:FuelStorage",
4101        super_class: Some(440),
4102        concrete: true,
4103        origins: &["ER", "SHS", "SIS", "SSI"],
4104        comment: "Fuel storage. e.g. pile of coal that can be shared between multiple thermal generating units.",
4105        attrs: &[
4106            AttrDef { id: "FuelStorage.FossilFuel", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FossilFuel", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Fossil fuel stored in a fuel storage." },
4107            AttrDef { id: "FuelStorage.FuelStorageRegularSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FuelStorageRegularSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The regular schedule for this fuel storage." },
4108            AttrDef { id: "FuelStorage.FuelStorageSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FuelStorageSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS", "SIS"], comment: "The fuel storage schedule for this fuel storage." },
4109            AttrDef { id: "FuelStorage.energyStorage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Amount of energy available in the storage." },
4110            AttrDef { id: "FuelStorage.normalEnergyStorage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Normal amount of energy available in the storage." },
4111        ],
4112    },
4113    ClassDef {
4114        ns: "https://cim4.eu/ns/nc#",
4115        local: "FuelStorageRegularSchedule",
4116        qualified: "nc:FuelStorageRegularSchedule",
4117        super_class: Some(59),
4118        concrete: true,
4119        origins: &["SHS"],
4120        comment: "Regular schedule for fuel storage.",
4121        attrs: &[
4122            AttrDef { id: "FuelStorageRegularSchedule.FuelStorage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FuelStorage", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "the fule storage that has a regular schedule." },
4123            AttrDef { id: "FuelStorageRegularSchedule.energyStorage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Amount of energy available in the storage." },
4124        ],
4125    },
4126    ClassDef {
4127        ns: "https://cim4.eu/ns/nc#",
4128        local: "FuelStorageSchedule",
4129        qualified: "nc:FuelStorageSchedule",
4130        super_class: Some(57),
4131        concrete: true,
4132        origins: &["SHS", "SIS"],
4133        comment: "Fuel storage schedule for elements.",
4134        attrs: &[
4135            AttrDef { id: "FuelStorageSchedule.FuelStorage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FuelStorage", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS", "SIS"], comment: "Fuel storgae of this fuel storage schedule." },
4136            AttrDef { id: "FuelStorageSchedule.FuelStorageTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FuelStorageTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS", "SIS"], comment: "The time point that relates to this fuel storage schedule." },
4137        ],
4138    },
4139    ClassDef {
4140        ns: "https://cim4.eu/ns/nc#",
4141        local: "FuelStorageTimePoint",
4142        qualified: "nc:FuelStorageTimePoint",
4143        super_class: None,
4144        concrete: true,
4145        origins: &["SHS", "SIS"],
4146        comment: "Fuel storage values for a given point in time.",
4147        attrs: &[
4148            AttrDef { id: "FuelStorageTimePoint.FuelStorageSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FuelStorageSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS", "SIS"], comment: "The fuel storage schedule that has this time point." },
4149            AttrDef { id: "FuelStorageTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS", "SIS"], comment: "The time the data is valid for." },
4150            AttrDef { id: "FuelStorageTimePoint.energyStorage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS", "SIS"], comment: "Amount of energy available in the storage." },
4151        ],
4152    },
4153    ClassDef {
4154        ns: "https://cim4.eu/ns/nc#",
4155        local: "FunctionBlock",
4156        qualified: "nc:FunctionBlock",
4157        super_class: Some(318),
4158        concrete: false,
4159        origins: &["ER", "SIS", "SSI"],
4160        comment: "Function block is a function described as a set of elementary blocks. The blocks describe the function between input variables and output variables.",
4161        attrs: &[
4162            AttrDef { id: "FunctionBlock.AutomationBlockGroup", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AutomationBlockGroup", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Automation block group which has function blocks." },
4163            AttrDef { id: "FunctionBlock.AutomationFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AutomationFunction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Automation function describe automation that this function block is part of." },
4164            AttrDef { id: "FunctionBlock.FunctionOutputVariable", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FunctionOutputVariable", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Function output variable describe the output or codomain to the function block." },
4165            AttrDef { id: "FunctionBlock.GenericEnablingSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GenericEnablingSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Enabling schedule associated to a function block." },
4166            AttrDef { id: "FunctionBlock.Input", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FunctionInputVariable", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Function input variable describe the input or domain to the function block." },
4167            AttrDef { id: "FunctionBlock.enabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "True, if the function block is enabled (active). Otherwise false." },
4168            AttrDef { id: "FunctionBlock.normalEnabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER"], comment: "True, if the function block is normally enabled (active). Otherwise false." },
4169        ],
4170    },
4171    ClassDef {
4172        ns: "https://cim4.eu/ns/nc#",
4173        local: "FunctionInputVariable",
4174        qualified: "nc:FunctionInputVariable",
4175        super_class: Some(318),
4176        concrete: false,
4177        origins: &["ER", "RA"],
4178        comment: "Functional input variable defines the domain of the function.",
4179        attrs: &[
4180            AttrDef { id: "FunctionInputVariable.Function", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FunctionBlock", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Function block describe the function that function input variable provides the domain for." },
4181        ],
4182    },
4183    ClassDef {
4184        ns: "https://cim4.eu/ns/nc#",
4185        local: "FunctionOutputVariable",
4186        qualified: "nc:FunctionOutputVariable",
4187        super_class: Some(318),
4188        concrete: true,
4189        origins: &["ER"],
4190        comment: "Functional output variable defines the codomain of the function.",
4191        attrs: &[
4192            AttrDef { id: "FunctionOutputVariable.FunctionBlock", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FunctionBlock", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Function block describe the function that function output variable provides the codomain for." },
4193            AttrDef { id: "FunctionOutputVariable.PropertyReference", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PropertyReference", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Property reference refers to a given class and property that is populated by the function output variable." },
4194        ],
4195    },
4196    ClassDef {
4197        ns: "https://cim.ucaiug.io/ns#",
4198        local: "Fuse",
4199        qualified: "nc:Fuse",
4200        super_class: Some(534),
4201        concrete: true,
4202        origins: &["SSI"],
4203        comment: "An overcurrent protective device with a circuit opening fusible part that is heated and severed by the passage of overcurrent through it. A fuse is considered a switching device because it breaks current.",
4204        attrs: &[],
4205    },
4206    ClassDef {
4207        ns: "https://cim4.eu/ns/nc#",
4208        local: "Gate",
4209        qualified: "nc:Gate",
4210        super_class: Some(318),
4211        concrete: true,
4212        origins: &["RA"],
4213        comment: "Logical gate that supports a logical operation based on the input.",
4214        attrs: &[
4215            AttrDef { id: "Gate.GateInputPin", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GateInputPin", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "This is the input to the gate." },
4216            AttrDef { id: "Gate.PinGate", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PinGate", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The pin for this gate output." },
4217            AttrDef { id: "Gate.RemedialActionScheme", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionScheme", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The remedial action scheme which has an armed gate." },
4218            AttrDef { id: "Gate.StageTrigger", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "StageTrigger", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The stage trigger associated with the gate trigger." },
4219            AttrDef { id: "Gate.StageTriggerArmed", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "StageTrigger", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The stage trigger associated with the armed gate." },
4220            AttrDef { id: "Gate.StageTriggerCom", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "StageTrigger", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The stage trigger associated with the communication gate." },
4221            AttrDef { id: "Gate.TriggerCondition", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TriggerCondition", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The trigger condition that has a gate trigger." },
4222            AttrDef { id: "Gate.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "GateLogicKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["RA"], comment: "The logical operation of the gate." },
4223        ],
4224    },
4225    ClassDef {
4226        ns: "https://cim4.eu/ns/nc#",
4227        local: "GateInputPin",
4228        qualified: "nc:GateInputPin",
4229        super_class: Some(283),
4230        concrete: true,
4231        origins: &["ER", "RA", "SIS", "SSI"],
4232        comment: "Input pin for a logical gate. The condition described in the input pin gives a logical true or false. The result from measurement and calculation are converted to a true or false.",
4233        attrs: &[
4234            AttrDef { id: "GateInputPin.Gate", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Gate", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The Gate that has this input." },
4235            AttrDef { id: "GateInputPin.GenericEnablingSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GenericEnablingSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Enabling schedule associated to a gate input pin." },
4236            AttrDef { id: "GateInputPin.absoluteValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER", "RA"], comment: "Indicates if the absolute value is used for comparison. If true, use the absolute value. If false, use the complex value (vector)." },
4237            AttrDef { id: "GateInputPin.duration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER", "RA"], comment: "The time duration for which the condition is satisfied before acting. Default is 0 seconds." },
4238            AttrDef { id: "GateInputPin.enabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "True, if the gate input pin is enabled (active). Otherwise false." },
4239            AttrDef { id: "GateInputPin.isValuePreFault", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["RA"], comment: "Indicates if the gate input pin value is referring to the value prior to a fault (e.g. simulated by a contingency or due to a SIPS activation in a N-x-y case). If it is true, it means that the value is referring to pre-fault. If it is false or not populated, then it is post-fault." },
4240            AttrDef { id: "GateInputPin.logicKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "LogicalOperatorsKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["ER", "RA"], comment: "The logical operator kind used for comparison." },
4241            AttrDef { id: "GateInputPin.negate", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER", "RA"], comment: "Invert/negate the result of the comparison." },
4242            AttrDef { id: "GateInputPin.normalEnabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER", "RA"], comment: "True, if the gate input pin is normally enabled (active). Otherwise false." },
4243            AttrDef { id: "GateInputPin.thresholdPercentage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER", "RA"], comment: "The threshold percentage that should be used for compare with the percentage change between input value and threshold value. The allowed value range is [0,100]." },
4244            AttrDef { id: "GateInputPin.thresholdValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER", "RA"], comment: "The threshold value that should be used for compare with the input value." },
4245        ],
4246    },
4247    ClassDef {
4248        ns: "https://cim4.eu/ns/nc#",
4249        local: "GateTurnOffThyristorValve",
4250        qualified: "nc:GateTurnOffThyristorValve",
4251        super_class: Some(191),
4252        concrete: true,
4253        origins: &["ER", "SSI"],
4254        comment: "The Gate Turn-Off Thyristor (GTO) is an advanced version of a standard thyristor. While a standard thyristor can only be turned on by a gate signal, the GTO can be turned both on and off through its gate. Key advantage is that GTOs can handle massive power levels (higher voltages and currents) than most standard IGBTs. Historically used in heavy industrial motor drives and bulk power transmission, though they are increasingly being replaced by IGBTs.",
4255        attrs: &[],
4256    },
4257    ClassDef {
4258        ns: "https://cim.ucaiug.io/ns#",
4259        local: "GeneratingUnit",
4260        qualified: "nc:GeneratingUnit",
4261        super_class: Some(241),
4262        concrete: true,
4263        origins: &["ER", "PS", "SHS", "SIS", "SSI"],
4264        comment: "A single or set of synchronous machines for converting mechanical power into alternating-current power. For example, individual machines within a set may be defined for scheduling purposes while a single control signal is derived for the set. In this case there would be a GeneratingUnit for each member of the set and an additional GeneratingUnit corresponding to the set.",
4265        attrs: &[
4266            AttrDef { id: "GeneratingUnit.AreaReserveResource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AreaReserveResource", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Area reserve resources representing the balancing reserve products provided by the generating unit." },
4267            AttrDef { id: "GeneratingUnit.EnergyComponent", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyComponent", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The energy component that has this generating unit." },
4268            AttrDef { id: "GeneratingUnit.GeneratingUnitSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GeneratingUnitSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "Generating unit schedule associated with a generating unit." },
4269            AttrDef { id: "GeneratingUnit.MustRunSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "MustRunSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PS"], comment: "Must run schedule which has generating units." },
4270            AttrDef { id: "GeneratingUnit.PowerSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PS"], comment: "Power schedule which has generating unit." },
4271            AttrDef { id: "GeneratingUnit.PowerShiftKeySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerShiftKeySchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The Power Shift Key schedule for a Generating Unit." },
4272            AttrDef { id: "GeneratingUnit.ScheduleResource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ScheduleResource", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The schedule resource that has this generating unit." },
4273            AttrDef { id: "GeneratingUnit.UnitCostSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "UnitCostSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Unit cost schedule associated with a generating unit." },
4274            AttrDef { id: "GeneratingUnit.coolDownTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Time it takes from a unit shutdown until it is considered cold." },
4275            AttrDef { id: "GeneratingUnit.costCurrency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "Currency", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["ER", "SSI"], comment: "Currency the cost is given in." },
4276            AttrDef { id: "GeneratingUnit.isRamping", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "Identifies if the generating unit is ramping up or down. If true, the generating unit is ramping and constraints should be ignored." },
4277            AttrDef { id: "GeneratingUnit.lowerRampRate", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "ActivePowerChangeRate", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The normal maximum rate the generating unit active power output can be lowered by control actions." },
4278            AttrDef { id: "GeneratingUnit.maxEconomicP", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Maximum high economic active power limit, that should not exceed the maximum operating active power limit." },
4279            AttrDef { id: "GeneratingUnit.maxRampDownCountPerDay", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["ER"], comment: "Number of times the unit can do ramp down within a calendar day. One ramp down consists of a decrease of a power plant production level from a stable schedule to another regardless of how much time the power plant stays in such stable operating stage." },
4280            AttrDef { id: "GeneratingUnit.maxStartupLoad", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Maximum consumption by the generating unit as part of the startup process." },
4281            AttrDef { id: "GeneratingUnit.minEconomicP", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Low economic active power limit that shall be greater than or equal to the minimum operating active power limit." },
4282            AttrDef { id: "GeneratingUnit.minimumOffTime", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Minimum time interval between unit shutdown and startup." },
4283            AttrDef { id: "GeneratingUnit.minimumUpTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The time that a generating unit has to stay running after it has been switched on by the Remedial Action Optimizer." },
4284            AttrDef { id: "GeneratingUnit.mustRun", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "Identifies if the generating unit is ramping up or down. If true, the generating unit is ramping and constraints should be ignored." },
4285            AttrDef { id: "GeneratingUnit.mustRunP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Minimum active power injection that is needed to meet must-run requirement. This value can be higher or equal to minimum operational limit. Load sign convention is used, i.e. positive sign means flow out from a node." },
4286            AttrDef { id: "GeneratingUnit.mustRunQ", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Minimum reactive power injection that is needed to meet must-run requirement. This value can be higher or equal to minimum operational limit. Load sign convention is used, i.e. positive sign means flow out from a node." },
4287            AttrDef { id: "GeneratingUnit.normalMustRunP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Normal minimum active power injection that is needed to meet must-run requirement. This value can be higher or equal to minimum operational limit. Load sign convention is used, i.e. positive sign means flow out from a node." },
4288            AttrDef { id: "GeneratingUnit.normalMustRunQ", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Normal minimum reactive power injection that is needed to meet must-run requirement. This value can be higher or equal to minimum operational limit. Load sign convention is used, i.e. positive sign means flow out from a node." },
4289            AttrDef { id: "GeneratingUnit.normalParticipationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). In the case of priority strategy, the item with the lowest number gets allocated energy first." },
4290            AttrDef { id: "GeneratingUnit.normalShutdownCost", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The normal shutdown cost incurred for each shutdown of the GeneratingUnit." },
4291            AttrDef { id: "GeneratingUnit.normalStartupCost", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The normal initial startup cost incurred for each start of the GeneratingUnit." },
4292            AttrDef { id: "GeneratingUnit.normalWarmStartupCost", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The normal warm startup cost incurred for each start of the GeneratingUnit." },
4293            AttrDef { id: "GeneratingUnit.participationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). In the case of priority strategy, the item with the lowest number gets allocated energy first." },
4294            AttrDef { id: "GeneratingUnit.raiseRampRate", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "ActivePowerChangeRate", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The normal maximum rate the generating unit active power output can be raised by control actions." },
4295            AttrDef { id: "GeneratingUnit.rampLockTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Time between end or start of ramping. If a unit has just stopped the ramping, it will need to wait this time until a new ramping can start." },
4296            AttrDef { id: "GeneratingUnit.runningLeadTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Time it takes to change the schedule when the unit is operating due to technical configuration of a supporting system, e.g. gas pipeline." },
4297            AttrDef { id: "GeneratingUnit.shutdownCost", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SSI"], comment: "The shutdown cost incurred for each shutdown of the GeneratingUnit." },
4298            AttrDef { id: "GeneratingUnit.shutdownTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Time it takes to shutdown the unit." },
4299            AttrDef { id: "GeneratingUnit.startupCost", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "Money", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The initial startup cost incurred for each start of the GeneratingUnit." },
4300            AttrDef { id: "GeneratingUnit.startupRampRate", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePowerChangeRate", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The startup ramp rate of the generating unit which describes the speed of change of active power from zero to the minimum active power. When the ramp is not provided, the optimisation process shall consider the change as an instant change of active power from zero to minimum active power." },
4301            AttrDef { id: "GeneratingUnit.warmStartupCost", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SSI"], comment: "The warm startup cost incurred for each start of the GeneratingUnit." },
4302            AttrDef { id: "GeneratingUnit.warmStartupTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Time it takes to startup the unit when it is warm." },
4303        ],
4304    },
4305    ClassDef {
4306        ns: "https://cim4.eu/ns/nc#",
4307        local: "GeneratingUnitSchedule",
4308        qualified: "nc:GeneratingUnitSchedule",
4309        super_class: Some(57),
4310        concrete: true,
4311        origins: &["SHS"],
4312        comment: "Schedule for generating unit.",
4313        attrs: &[
4314            AttrDef { id: "GeneratingUnitSchedule.GeneratingUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GeneratingUnit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Generating unit which has generating unit schedules." },
4315            AttrDef { id: "GeneratingUnitSchedule.GeneratingUnitTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GeneratingUnitTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The time point that relates to this generating unit schedule." },
4316        ],
4317    },
4318    ClassDef {
4319        ns: "https://cim4.eu/ns/nc#",
4320        local: "GeneratingUnitTimePoint",
4321        qualified: "nc:GeneratingUnitTimePoint",
4322        super_class: None,
4323        concrete: true,
4324        origins: &["SHS"],
4325        comment: "Generating unit values for a given point in time.",
4326        attrs: &[
4327            AttrDef { id: "GeneratingUnitTimePoint.GeneratingUnitSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GeneratingUnitSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "The generating unit schedule that has this time point." },
4328            AttrDef { id: "GeneratingUnitTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS"], comment: "The time the data is valid for." },
4329            AttrDef { id: "GeneratingUnitTimePoint.normalPF", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Generating unit economic participation factor. The sum of the participation factors across generating units does not have to sum to one. It is used for representing distributed slack participation factor. The attribute shall be a positive value or zero." },
4330        ],
4331    },
4332    ClassDef {
4333        ns: "https://cim4.eu/ns/nc#",
4334        local: "GenericAvailableSchedule",
4335        qualified: "nc:GenericAvailableSchedule",
4336        super_class: Some(57),
4337        concrete: true,
4338        origins: &["SIS"],
4339        comment: "The schedule for the availability of elements.",
4340        attrs: &[
4341            AttrDef { id: "GenericAvailableSchedule.AvailabilityTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilityTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The availability timepoint for an available schedule." },
4342            AttrDef { id: "GenericAvailableSchedule.RemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialAction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Remedial action which has available schedules." },
4343        ],
4344    },
4345    ClassDef {
4346        ns: "https://cim4.eu/ns/nc#",
4347        local: "GenericEnablingSchedule",
4348        qualified: "nc:GenericEnablingSchedule",
4349        super_class: Some(57),
4350        concrete: true,
4351        origins: &["SIS"],
4352        comment: "The schedule for the enabling of elements.",
4353        attrs: &[
4354            AttrDef { id: "GenericEnablingSchedule.AssessedElementWithContingency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElementWithContingency", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Assessed element with contingency that has enabling schedules." },
4355            AttrDef { id: "GenericEnablingSchedule.AssessedElementWithRemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElementWithRemedialAction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Assessed element with remedial action that has enabling schedules." },
4356            AttrDef { id: "GenericEnablingSchedule.AutomationFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AutomationFunction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Automation function which has enabling schedules." },
4357            AttrDef { id: "GenericEnablingSchedule.ContingencyWithRemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ContingencyWithRemedialAction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Contingency with remedial action which has enabling schedules." },
4358            AttrDef { id: "GenericEnablingSchedule.CrossBorderRelevance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CrossBorderRelevance", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Cross border relevant that has enabling schedules." },
4359            AttrDef { id: "GenericEnablingSchedule.EnablingTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnablingTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The enabling timepoint for a assessed element with enabling schedule." },
4360            AttrDef { id: "GenericEnablingSchedule.FunctionBlock", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FunctionBlock", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Function block which has enabling schedules." },
4361            AttrDef { id: "GenericEnablingSchedule.GateInputPin", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GateInputPin", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Gate input pin that has a schedule." },
4362            AttrDef { id: "GenericEnablingSchedule.PowerTransferCorridor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerTransferCorridor", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Power transfer corridor which has generic enabling schedules." },
4363            AttrDef { id: "GenericEnablingSchedule.RemedialActionDependency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionDependency", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Remedial action dependency which has enabling schedules." },
4364        ],
4365    },
4366    ClassDef {
4367        ns: "https://cim4.eu/ns/nc#",
4368        local: "GenericSequenceSchedule",
4369        qualified: "nc:GenericSequenceSchedule",
4370        super_class: Some(57),
4371        concrete: true,
4372        origins: &["SIS"],
4373        comment: "Schedule for sequence.",
4374        attrs: &[
4375            AttrDef { id: "GenericSequenceSchedule.EnergyBlockOrder", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyBlockOrder", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Energy block order which has generic sequence schedules." },
4376            AttrDef { id: "GenericSequenceSchedule.SequenceTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SequenceTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The sequence timepoint for a sequence schedule." },
4377        ],
4378    },
4379    ClassDef {
4380        ns: "https://cim4.eu/ns/nc#",
4381        local: "GenericValueSchedule",
4382        qualified: "nc:GenericValueSchedule",
4383        super_class: Some(57),
4384        concrete: true,
4385        origins: &["SIS", "RAS"],
4386        comment: "Time series represent irregular generic value at given points in time. The type of value is given by the reference association.",
4387        attrs: &[
4388            AttrDef { id: "GenericValueSchedule.GenericValueTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GenericValueTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RAS", "SIS"], comment: "Value for the point in time." },
4389            AttrDef { id: "GenericValueSchedule.RangeConstraint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RangeConstraint", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Range constraint for the generic value schedule." },
4390            AttrDef { id: "GenericValueSchedule.RemedialActionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "Remedial action schedule which has generic value schedules." },
4391        ],
4392    },
4393    ClassDef {
4394        ns: "https://cim4.eu/ns/nc#",
4395        local: "GenericValueTimePoint",
4396        qualified: "nc:GenericValueTimePoint",
4397        super_class: None,
4398        concrete: true,
4399        origins: &["RAS", "SIS"],
4400        comment: "Generic value for a given point in time.",
4401        attrs: &[
4402            AttrDef { id: "GenericValueTimePoint.GenericValueSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GenericValueSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS", "SIS"], comment: "Time series the time point values belongs to." },
4403            AttrDef { id: "GenericValueTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["RAS", "SIS"], comment: "The time the data is valid for." },
4404            AttrDef { id: "GenericValueTimePoint.value", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["RAS", "SIS"], comment: "The value at the time. The meaning of the value is defined by the derived type of the associated schedule. The value can be integer, float or boolean. In case of boolean 1.0 equals true and 0.0 equals false. In case of integer the 0 should be included as a decimal, e.g. 2.0." },
4405        ],
4406    },
4407    ClassDef {
4408        ns: "https://cim4.eu/ns/nc#",
4409        local: "GeothermalGeneratingUnit",
4410        qualified: "nc:GeothermalGeneratingUnit",
4411        super_class: Some(289),
4412        concrete: true,
4413        origins: &["ER", "SSI"],
4414        comment: "Generating unit that is generating electrical power from geothermal energy.",
4415        attrs: &[
4416            AttrDef { id: "GeothermalGeneratingUnit.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "GeothermalUnitKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["ER"], comment: "Kind of geothermal generating unit." },
4417        ],
4418    },
4419    ClassDef {
4420        ns: "https://cim4.eu/ns/nc#",
4421        local: "GridConnectionPoint",
4422        qualified: "nc:GridConnectionPoint",
4423        super_class: Some(87),
4424        concrete: true,
4425        origins: &["ER"],
4426        comment: "A GridConnectionPoint is a CommonResponsibilityPoint that identifies the point at which a grid operator and a connecting entity establish the shared responsibility for connection to the grid and where the connection agreement between the parties is applied. Note: The GridConnectionPoint represents the contractual and operational interface between a grid provider (for example a TSO, DSO, or CDSO) and a connecting entity such as a generating facility, industrial installation, distribution network, or other grid user. Conditions defined by applicable grid connection codes or agreements—such as voltage and frequency operating ranges, fault ride-through capability, power quality limits, protection coordination, and observability requirements—may be specified with reference to the GridConnectionPoint. The GridConnectionPoint is typically associated with the electrical reference location represented by a PointOfCommonCoupling and therefore serves as the point where compliance with connection requirements and operational responsibilities between the connected parties is evaluated.",
4427        attrs: &[],
4428    },
4429    ClassDef {
4430        ns: "https://cim4.eu/ns/nc#",
4431        local: "GridDisturbance",
4432        qualified: "nc:GridDisturbance",
4433        super_class: Some(318),
4434        concrete: true,
4435        origins: &["GD"],
4436        comment: "Automatic, unintended, or manual undeferrable switching of breakers as a result of faults in the power grid.",
4437        attrs: &[
4438            AttrDef { id: "GridDisturbance.Fault", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Fault", is_list: true, used: false, xsd: "", value_ns: "", origins: &["GD"], comment: "Faults that are related to one grid disturbance." },
4439        ],
4440    },
4441    ClassDef {
4442        ns: "https://cim4.eu/ns/nc#",
4443        local: "GridPowerCapacity",
4444        qualified: "nc:GridPowerCapacity",
4445        super_class: Some(440),
4446        concrete: true,
4447        origins: &["ER", "SIS", "SSI"],
4448        comment: "Grid power capacity defines the active power capacity that can be imported, exported, generated, consumed, or transferred within a defined power system area, or a combination of multiple areas (e.g. a bidding zone), considering relevant grid constraints required for secure and reliable operation. Note: Grid power capacity represents a power system or network-constrained capacity, not the technical installed capacity of individual resources or groups of resources. It may describe limits on generation, consumption, import, export, or power transfer resulting from operational security limits, network constraints, capacity allocation, forecasted grid availability, planned outages, remedial actions, or market-relevant transmission limitations.",
4449        attrs: &[
4450            AttrDef { id: "GridPowerCapacity.BiddingZone", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BiddingZone", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Bidding zone which has a grid power capacity." },
4451            AttrDef { id: "GridPowerCapacity.GridPowerCapacityRegularSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridPowerCapacityRegularSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The regular schedule for this grid power capacity." },
4452            AttrDef { id: "GridPowerCapacity.GridPowerCapacitySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridPowerCapacitySchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Grid Power Capacity schedule which contains information on the referred bidding zone." },
4453            AttrDef { id: "GridPowerCapacity.SchedulingArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchedulingArea", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Scheduling area that has grid power capacity." },
4454            AttrDef { id: "GridPowerCapacity.maxInterchange", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Maximum total active power (AC and DC) that the net position for the bidding zone can have to maintain operational security. Positive sign means flow into the bidding zone." },
4455            AttrDef { id: "GridPowerCapacity.minImportP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Minimum imported active power requirement." },
4456            AttrDef { id: "GridPowerCapacity.minInterchange", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Minimum total active power (AC and DC) that the net position for the bidding zone can have to maintain operational security. Negative sign means flow out of the bidding zone." },
4457            AttrDef { id: "GridPowerCapacity.netACInterchange", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The netted aggregation of all AC external schedules of an area. Positive sign means flow into the area (Import)." },
4458            AttrDef { id: "GridPowerCapacity.netACInterchangeTolerance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The area AC Net Position tolerance." },
4459            AttrDef { id: "GridPowerCapacity.netDCInterchange", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The netted aggregation of all DC external schedules of an area. Positive sign means flow into the area." },
4460            AttrDef { id: "GridPowerCapacity.regulatingDownAllocation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The balancing capacity allocated for regulating down, by decreasing the production, increasing the direct current export, decreasing direct current import or increasing the consumption of energy in the bidding zone. This must be a positive number." },
4461            AttrDef { id: "GridPowerCapacity.regulatingUpAllocation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The balancing capacity allocated for regulating up, by increasing the production, decreasing the direct current export, increasing direct current import or reducing the consumption of energy in the bidding zone. This must be a positive number." },
4462        ],
4463    },
4464    ClassDef {
4465        ns: "https://cim4.eu/ns/nc#",
4466        local: "GridPowerCapacityRegularSchedule",
4467        qualified: "nc:GridPowerCapacityRegularSchedule",
4468        super_class: Some(59),
4469        concrete: true,
4470        origins: &["SIS"],
4471        comment: "Regular schedule for GridPowerCapacity.",
4472        attrs: &[
4473            AttrDef { id: "GridPowerCapacityRegularSchedule.GridPowerCapacity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridPowerCapacity", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The grid power capacity that has a regular schedule." },
4474            AttrDef { id: "GridPowerCapacityRegularSchedule.maxInterchange", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Maximum total active power (AC and DC) that the net position for the bidding zone can have to maintain operational security. Positive sign means flow into the bidding zone." },
4475            AttrDef { id: "GridPowerCapacityRegularSchedule.minImportP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Minimum imported active power requirement." },
4476            AttrDef { id: "GridPowerCapacityRegularSchedule.minInterchange", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Minimum total active power (AC and DC) that the net position for the bidding zone can have to maintain operational security. Negative sign means flow out of the bidding zone." },
4477            AttrDef { id: "GridPowerCapacityRegularSchedule.netACInterchange", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The netted aggregation of all AC external schedules of an area. Positive sign means flow into the area (Import)." },
4478            AttrDef { id: "GridPowerCapacityRegularSchedule.netACInterchangeTolerance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The area AC Net Position tolerance." },
4479            AttrDef { id: "GridPowerCapacityRegularSchedule.netDCInterchange", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The netted aggregation of all DC external schedules of an area. Positive sign means flow into the area." },
4480            AttrDef { id: "GridPowerCapacityRegularSchedule.regulatingDownAllocation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The balancing capacity allocated for regulating down, by decreasing the production, increasing the direct current export, decreasing direct current import or increasing the consumption of energy in the bidding zone. This must be a positive number." },
4481            AttrDef { id: "GridPowerCapacityRegularSchedule.regulatingUpAllocation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The balancing capacity allocated for regulating up, by increasing the production, decreasing the direct current export, increasing direct current import or reducing the consumption of energy in the bidding zone. This must be a positive number." },
4482        ],
4483    },
4484    ClassDef {
4485        ns: "https://cim4.eu/ns/nc#",
4486        local: "GridPowerCapacitySchedule",
4487        qualified: "nc:GridPowerCapacitySchedule",
4488        super_class: Some(57),
4489        concrete: true,
4490        origins: &["SIS"],
4491        comment: "The irregular schedule for the capacity.",
4492        attrs: &[
4493            AttrDef { id: "GridPowerCapacitySchedule.GridPowerCapacity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridPowerCapacity", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Grid Power Capacity which is referred by the capacity schedule." },
4494            AttrDef { id: "GridPowerCapacitySchedule.GridPowerCapacityTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridPowerCapacityTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The capacity timepoint for a capacity schedule." },
4495        ],
4496    },
4497    ClassDef {
4498        ns: "https://cim4.eu/ns/nc#",
4499        local: "GridPowerCapacityTimePoint",
4500        qualified: "nc:GridPowerCapacityTimePoint",
4501        super_class: None,
4502        concrete: true,
4503        origins: &["SIS"],
4504        comment: "Capacity instruction value at a given point in time.",
4505        attrs: &[
4506            AttrDef { id: "GridPowerCapacityTimePoint.GridPowerCapacitySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridPowerCapacitySchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The capacity schedule which belongs to the capacity timepoint." },
4507            AttrDef { id: "GridPowerCapacityTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
4508            AttrDef { id: "GridPowerCapacityTimePoint.maxInterchange", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Maximum total active power (AC and DC) that the net position for the bidding zone can have to maintain operational security. Positive sign means flow into the bidding zone." },
4509            AttrDef { id: "GridPowerCapacityTimePoint.minImportP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Minimum imported active power requirement." },
4510            AttrDef { id: "GridPowerCapacityTimePoint.minInterchange", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Minimum total active power (AC and DC) that the net position for the bidding zone can have to maintain operational security. Negative sign means flow out of the bidding zone." },
4511            AttrDef { id: "GridPowerCapacityTimePoint.netACInterchange", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The netted aggregation of all AC external schedules of an area. Positive sign means flow into the area (Import)." },
4512            AttrDef { id: "GridPowerCapacityTimePoint.netACInterchangeTolerance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The area AC Net Position tolerance." },
4513            AttrDef { id: "GridPowerCapacityTimePoint.netDCInterchange", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The netted aggregation of all DC external schedules of an area. Positive sign means flow into the area." },
4514            AttrDef { id: "GridPowerCapacityTimePoint.regulatingDownAllocation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The balancing capacity allocated for regulating down, by decreasing the production, increasing the direct current export, decreasing direct current import or increasing the consumption of energy in the bidding zone. This must be a positive number." },
4515            AttrDef { id: "GridPowerCapacityTimePoint.regulatingUpAllocation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The balancing capacity allocated for regulating up, by increasing the production, decreasing the direct current export, increasing direct current import or reducing the consumption of energy in the bidding zone. This must be a positive number." },
4516        ],
4517    },
4518    ClassDef {
4519        ns: "https://cim4.eu/ns/nc#",
4520        local: "GridStateAlteration",
4521        qualified: "nc:GridStateAlteration",
4522        super_class: Some(318),
4523        concrete: false,
4524        origins: &["AS", "RA", "RAS", "SIS", "SM", "SSI"],
4525        comment: "Grid state alteration is a change of values describing state (operating point) of one element in the grid model compared to the base case.",
4526        attrs: &[
4527            AttrDef { id: "GridStateAlteration.AvailabilityEnabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilityEnabled", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "Availability enabled describes the enabling or disabling of this grid state alteration." },
4528            AttrDef { id: "GridStateAlteration.ControllableQuantity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ControllableQuantity", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SM"], comment: "The controllable quantity associated with this grid state alteration." },
4529            AttrDef { id: "GridStateAlteration.GridStateAlterationCollection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridStateAlterationCollection", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The collection that has a GridStateAlteration." },
4530            AttrDef { id: "GridStateAlteration.GridStateAlterationRemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridStateAlterationRemedialAction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The grid state alteration remedial action associated with a given grid state alteration." },
4531            AttrDef { id: "GridStateAlteration.GridStateAlterationSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridStateAlterationSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Grid state alteration schedule associated with a grid state alteration." },
4532            AttrDef { id: "GridStateAlteration.GridStateIntensitySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridStateIntensitySchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RAS"], comment: "The intensity associated with a given GridStateAlterationSchedule." },
4533            AttrDef { id: "GridStateAlteration.PropertyReference", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PropertyReference", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The property reference for this grid state alteration." },
4534            AttrDef { id: "GridStateAlteration.RangeConstraint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RangeConstraint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The range constraint associated with a given GridStateAlteration." },
4535            AttrDef { id: "GridStateAlteration.enabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "The status of the GridStateAlteration set by an operation or by a signal resulting from a control action." },
4536            AttrDef { id: "GridStateAlteration.maximumPerDay", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["RA"], comment: "Maximum number of alterations per day." },
4537            AttrDef { id: "GridStateAlteration.minimumActivation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "Minimum time duration between activating the same grid state alteration." },
4538            AttrDef { id: "GridStateAlteration.normalEnabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["RA"], comment: "It identifies if the element is normally enabled. True means normally enabled, False means not normally enabled." },
4539            AttrDef { id: "GridStateAlteration.participationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). In the case of priority strategy, the item with the lowest number gets allocated energy first. e.g. If 0 this grid alteration does not participate. The sum of all participation factors for all grid state alterations associated with same remedial action shall be equal to 100%." },
4540            AttrDef { id: "GridStateAlteration.timePerStage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "Time to implement a stage of a grid state alteration. If a grid state alteration consists of multiple stages (e.g. A step on a power transformer), this duration comes in addition to the timeToImplement and need to be multiplied by the number of stages. A stage can also be defined as MW in the case of regulating production." },
4541        ],
4542    },
4543    ClassDef {
4544        ns: "https://cim4.eu/ns/nc#",
4545        local: "GridStateAlterationCollection",
4546        qualified: "nc:GridStateAlterationCollection",
4547        super_class: Some(318),
4548        concrete: true,
4549        origins: &["RA", "AS"],
4550        comment: "A collection of grid state alterations.",
4551        attrs: &[
4552            AttrDef { id: "GridStateAlterationCollection.AvailabilitySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilitySchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "Availability schedule that require the a collection of grid state alteration to provide a valid power flow solution. For instance, a set of switching plans." },
4553            AttrDef { id: "GridStateAlterationCollection.GridStateAlteration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridStateAlteration", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The GridStateAlteration that belongs to the collection." },
4554            AttrDef { id: "GridStateAlterationCollection.StageAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Stage", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The stage action related to this GridStateAlterationCollection." },
4555        ],
4556    },
4557    ClassDef {
4558        ns: "https://cim4.eu/ns/nc#",
4559        local: "GridStateAlterationRemedialAction",
4560        qualified: "nc:GridStateAlterationRemedialAction",
4561        super_class: Some(466),
4562        concrete: true,
4563        origins: &["RA", "SSI"],
4564        comment: "Grid state alteration remedial action describes one or many grid state alterations applied to a grid model state or a particular scenario in order to resolve one or more identified constraints.",
4565        attrs: &[
4566            AttrDef { id: "GridStateAlterationRemedialAction.GridStateAlteration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridStateAlteration", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The grid state alteration which is part of the grid state alteration remedial action." },
4567            AttrDef { id: "GridStateAlterationRemedialAction.isActivationRestricted", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["RA"], comment: "If true, all GridStateAlterations associated with the GridStateAlterationRemedialAction need to be available in order to activate the RA. If false, it means that even if one or more GridStateAlterations is/are not available then the rest of the GridStateAlterationRemedialAction can be activated. Being available means it is not in a contingency or out or service. A switch that has an action of opening is still available if it is open. GridStateAlteration.normalEnabled or GridStateAlteration.enabled equal to false does not make the GridStateAlterationRemedialAction not available even if GridStateAlteration as part of the remedial action cannot be used in a GridStateAlterationRemedialAction." },
4568        ],
4569    },
4570    ClassDef {
4571        ns: "https://cim4.eu/ns/nc#",
4572        local: "GridStateAlterationSchedule",
4573        qualified: "nc:GridStateAlterationSchedule",
4574        super_class: Some(57),
4575        concrete: true,
4576        origins: &["SIS"],
4577        comment: "Schedule for a grid state alteration.",
4578        attrs: &[
4579            AttrDef { id: "GridStateAlterationSchedule.GridStateAlteration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridStateAlteration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Grid state alteration which has grid state alteration schedules." },
4580            AttrDef { id: "GridStateAlterationSchedule.GridStateAlterationTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridStateAlterationTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Grid state alteration time point that relates to this grid state alteration schedule." },
4581        ],
4582    },
4583    ClassDef {
4584        ns: "https://cim4.eu/ns/nc#",
4585        local: "GridStateAlterationTimePoint",
4586        qualified: "nc:GridStateAlterationTimePoint",
4587        super_class: None,
4588        concrete: true,
4589        origins: &["SIS"],
4590        comment: "Grid state alteration at a given point in time.",
4591        attrs: &[
4592            AttrDef { id: "GridStateAlterationTimePoint.GridStateAlterationSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridStateAlterationSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Grid state alteration schedule that has time point." },
4593            AttrDef { id: "GridStateAlterationTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
4594            AttrDef { id: "GridStateAlterationTimePoint.enabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SIS"], comment: "The status of the GridStateAlteration set by an operation or by a signal resulting from a control action." },
4595            AttrDef { id: "GridStateAlterationTimePoint.participationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). In the case of priority strategy, the item with the lowest number gets allocated energy first. e.g. If 0 this grid alteration does not participate. The sum of all participation factors for all grid state alterations associated with same remedial action shall be equal to 100%." },
4596        ],
4597    },
4598    ClassDef {
4599        ns: "https://cim4.eu/ns/nc#",
4600        local: "GridStateIntensitySchedule",
4601        qualified: "nc:GridStateIntensitySchedule",
4602        super_class: Some(295),
4603        concrete: true,
4604        origins: &["RAS", "SIS"],
4605        comment: "Defines the intensity applied for a given grid state alteration. It is primarily used in exchanges related to the remedial action schedule. The value provided by the schedule replaces the value of the attribute to which the schedule refers to.",
4606        attrs: &[
4607            AttrDef { id: "GridStateIntensitySchedule.GridStateAlteration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridStateAlteration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "The grid state alteration which has intensity." },
4608            AttrDef { id: "GridStateIntensitySchedule.valueKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "ValueOffsetKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["RAS", "SIS"], comment: "The kind of value1 and value2 of the associated IrregularIntervalSchedule." },
4609        ],
4610    },
4611    ClassDef {
4612        ns: "https://cim.ucaiug.io/ns#",
4613        local: "Ground",
4614        qualified: "nc:Ground",
4615        super_class: Some(90),
4616        concrete: true,
4617        origins: &["SSI"],
4618        comment: "A point where the system is grounded used for connecting conducting equipment to ground. The power system model can have any number of grounds.",
4619        attrs: &[],
4620    },
4621    ClassDef {
4622        ns: "https://cim.ucaiug.io/ns#",
4623        local: "GroundDisconnector",
4624        qualified: "nc:GroundDisconnector",
4625        super_class: Some(534),
4626        concrete: true,
4627        origins: &["SSI"],
4628        comment: "A manually operated or motor operated mechanical switching device used for isolating a circuit or equipment from ground.",
4629        attrs: &[],
4630    },
4631    ClassDef {
4632        ns: "https://cim.ucaiug.io/ns#",
4633        local: "GroundingImpedance",
4634        qualified: "nc:GroundingImpedance",
4635        super_class: Some(217),
4636        concrete: true,
4637        origins: &["SSI"],
4638        comment: "A fixed impedance device used for grounding.",
4639        attrs: &[],
4640    },
4641    ClassDef {
4642        ns: "https://cim4.eu/ns/nc#",
4643        local: "HourPattern",
4644        qualified: "nc:HourPattern",
4645        super_class: Some(318),
4646        concrete: true,
4647        origins: &["SHS", "SIS"],
4648        comment: "Pattern of hourly period in a day with the same kind of intensity.",
4649        attrs: &[
4650            AttrDef { id: "HourPattern.BaseRegularIntervalSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BaseRegularIntervalSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS", "SIS"], comment: "Base regulat interval schedule which belongs to an hour pattern." },
4651            AttrDef { id: "HourPattern.HourPeriod", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "HourPeriod", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS", "SIS"], comment: "Hour period which belongs to an hour pattern." },
4652            AttrDef { id: "HourPattern.energyDemandKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "EnergyScenarioKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["SHS", "SIS"], comment: "Type of energy demand that the pattern is valid for." },
4653            AttrDef { id: "HourPattern.peakKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "PeakKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["SHS", "SIS"], comment: "Type of peak or intensity that the pattern is valid for." },
4654        ],
4655    },
4656    ClassDef {
4657        ns: "https://cim4.eu/ns/nc#",
4658        local: "HourPeriod",
4659        qualified: "nc:HourPeriod",
4660        super_class: None,
4661        concrete: true,
4662        origins: &["SHS", "SIS"],
4663        comment: "Period of hours in a day.",
4664        attrs: &[
4665            AttrDef { id: "HourPeriod.HourPattern", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "HourPattern", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS", "SIS"], comment: "HourPattern which has some hour periods." },
4666            AttrDef { id: "HourPeriod.endTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Time", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS", "SIS"], comment: "Time the period end and not including, e.g. 13:00 which means it does not include the time of 13:00 but 12:59." },
4667            AttrDef { id: "HourPeriod.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["SHS", "SIS"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
4668            AttrDef { id: "HourPeriod.startTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Time", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS", "SIS"], comment: "Time the period start and including, e.g. 12:00 which means it include the time of 12:00." },
4669        ],
4670    },
4671    ClassDef {
4672        ns: "https://cim.ucaiug.io/ns#",
4673        local: "HydroGeneratingUnit",
4674        qualified: "nc:HydroGeneratingUnit",
4675        super_class: Some(289),
4676        concrete: true,
4677        origins: &["SSI"],
4678        comment: "A generating unit whose prime mover is a hydraulic turbine (e.g., Francis, Pelton, Kaplan).",
4679        attrs: &[],
4680    },
4681    ClassDef {
4682        ns: "https://cim.ucaiug.io/ns#",
4683        local: "HydroPowerPlant",
4684        qualified: "nc:HydroPowerPlant",
4685        super_class: None,
4686        concrete: true,
4687        origins: &["ER"],
4688        comment: "A hydro power station which can generate or pump. When generating, the generator turbines receive water from an upper reservoir. When pumping, the pumps receive their water from a lower reservoir.",
4689        attrs: &[
4690            AttrDef { id: "HydroPowerPlant.Reservoir", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "Reservoir", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Generators discharge water to or pumps are supplied water from a downstream reservoir." },
4691            AttrDef { id: "HydroPowerPlant.numberOfPenstocks", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["ER"], comment: "Number of penstocks hydraulically serving the hydro generating units and hydro pumps of the hydro power plant. When the value is one, the hydro generating units and hydro pumps are assumed to share a common penstock unless a detailed hydraulic network model specifies otherwise." },
4692            AttrDef { id: "HydroPowerPlant.simultaneousPumpAndGeneration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER"], comment: "Indicates whether at least one hydro pump and at least one hydro generating unit of the hydro power plant may operate simultaneously." },
4693        ],
4694    },
4695    ClassDef {
4696        ns: "https://cim.ucaiug.io/ns#",
4697        local: "HydroPump",
4698        qualified: "nc:HydroPump",
4699        super_class: Some(241),
4700        concrete: true,
4701        origins: &["ER", "PS", "SIS", "SSI"],
4702        comment: "A synchronous motor-driven pump, typically associated with a pumped storage plant.",
4703        attrs: &[
4704            AttrDef { id: "HydroPump.AreaReserveResource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AreaReserveResource", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Area reserve resources representing the balancing reserve products provided by the hydro pump." },
4705            AttrDef { id: "HydroPump.EnergyComponent", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyComponent", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The energy component that has this hydro pump." },
4706            AttrDef { id: "HydroPump.PowerSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PS"], comment: "Power schedule which has hydro pump." },
4707            AttrDef { id: "HydroPump.PowerShiftKeySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerShiftKeySchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The Power Shift Key schedule for a Hydro Pump." },
4708            AttrDef { id: "HydroPump.ScheduleResource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ScheduleResource", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The schedule resource that has this hydro pump." },
4709            AttrDef { id: "HydroPump.maxEconomicP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Maximum high economic active power limit, that should not exceed the maximum operating active power limit." },
4710            AttrDef { id: "HydroPump.maxOperatingP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "This is the maximum operating active power limit the dispatcher can enter for this unit." },
4711            AttrDef { id: "HydroPump.minEconomicP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Low economic active power limit that shall be greater than or equal to the minimum operating active power limit." },
4712            AttrDef { id: "HydroPump.minOperatingP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "This is the minimum operating active power limit the dispatcher can enter for this unit." },
4713            AttrDef { id: "HydroPump.normalParticipationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). In the case of priority strategy, the item with the lowest number gets allocated energy first." },
4714            AttrDef { id: "HydroPump.participationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). In the case of priority strategy, the item with the lowest number gets allocated energy first." },
4715        ],
4716    },
4717    ClassDef {
4718        ns: "https://cim.ucaiug.io/ns#",
4719        local: "IdentifiedObject",
4720        qualified: "nc:IdentifiedObject",
4721        super_class: None,
4722        concrete: false,
4723        origins: &["AE", "AS", "CO", "ER", "GD", "IAM", "MA", "OR", "PS", "RA", "RAS", "SHS", "SIS", "SM"],
4724        comment: "This is a root class to provide common identification for all classes needing identification and naming attributes.",
4725        attrs: &[
4726            AttrDef { id: "IdentifiedObject.Designation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Designation", is_list: true, used: false, xsd: "", value_ns: "", origins: &["OR"], comment: "Links an IdentifiedObject to one or more designations that can be used to refer to it." },
4727            AttrDef { id: "IdentifiedObject.description", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["AE", "AS", "CO", "ER", "GD", "IAM", "MA", "PS", "RA", "RAS", "SHS", "SIS", "SM"], comment: "The description is a free human readable text describing or naming the object. It may be non unique and may not correlate to a naming hierarchy." },
4728            AttrDef { id: "IdentifiedObject.energyIdentCodeEic", ns: "https://cim.ucaiug.io/ns/eu#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["ER"], comment: "The attribute is used for an exchange of the EIC code (Energy identification Code). The length of the string is 16 characters as defined by the EIC code. For details on EIC scheme please refer to ENTSO-E web site." },
4729            AttrDef { id: "IdentifiedObject.mRID", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["AE", "AS", "CO", "ER", "GD", "IAM", "MA", "PS", "RA", "RAS", "SHS", "SIS", "SM"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
4730            AttrDef { id: "IdentifiedObject.name", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["AE", "AS", "CO", "ER", "GD", "IAM", "MA", "PS", "RA", "RAS", "SHS", "SIS", "SM"], comment: "The name is any free human readable and possibly non unique text naming the object." },
4731        ],
4732    },
4733    ClassDef {
4734        ns: "https://cim4.eu/ns/nc#",
4735        local: "Identity",
4736        qualified: "nc:Identity",
4737        super_class: None,
4738        concrete: true,
4739        origins: &["OR"],
4740        comment: "The Identity class represents the persistent identity of an object. It provides a globally unique and stable identifier used to support lifecycle management, change tracking, cross-system referencing, and model comparison. Note: The identifier represents the enduring identity of the object and should remain stable throughout the object’s lifecycle. In distributed systems this identifier is typically represented using a UUID to ensure global uniqueness. The Identity class is intended to provide the stable identifier for an object, whereas classes such as IdentifiedObject and Designation provide human-readable names, labels, or external identifiers that may vary depending on context or system usage.",
4741        attrs: &[
4742            AttrDef { id: "Identity.identifier", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "URI", is_list: false, used: true, xsd: "anyURI", value_ns: "", origins: &["OR"], comment: "Globally unique identifier representing the persistent identity of the object. Note: The identifier is used to support lifecycle management, cross-system referencing, and comparison of objects across model exchanges and business processes. The identifier is expressed as a URI to allow compatibility with different identifier schemes. Profiles commonly restrict the identifier to a UUID to ensure global uniqueness and stable identity across distributed systems. Example: 'urn:uuid:550e8400-e29b-41d4-a716-446655440000'" },
4743        ],
4744    },
4745    ClassDef {
4746        ns: "https://cim4.eu/ns/nc#",
4747        local: "ImpactAssessmentMatrix",
4748        qualified: "nc:ImpactAssessmentMatrix",
4749        super_class: Some(318),
4750        concrete: false,
4751        origins: &["IAM"],
4752        comment: "The result of an impact assessment analysis for each remedial action or remedial action schedule onto the grid and operation of each system operator.",
4753        attrs: &[
4754            AttrDef { id: "ImpactAssessmentMatrix.OutcomeValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutcomeValue", is_list: true, used: false, xsd: "", value_ns: "", origins: &["IAM"], comment: "One of the values of the impact assessment matrix." },
4755        ],
4756    },
4757    ClassDef {
4758        ns: "https://cim4.eu/ns/nc#",
4759        local: "ImpedanceControlFunction",
4760        qualified: "nc:ImpedanceControlFunction",
4761        super_class: Some(109),
4762        concrete: true,
4763        origins: &["ER", "SIS", "SSI"],
4764        comment: "Impedance control function is a function block that calculates the operating point of the controlled equipment to achieve the target impedance.",
4765        attrs: &[
4766            AttrDef { id: "ImpedanceControlFunction.ImpedanceControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ImpedanceControlFunctionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule of the control function." },
4767            AttrDef { id: "ImpedanceControlFunction.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Impedance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Target value for the impedance that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
4768        ],
4769    },
4770    ClassDef {
4771        ns: "https://cim4.eu/ns/nc#",
4772        local: "ImpedanceControlFunctionSchedule",
4773        qualified: "nc:ImpedanceControlFunctionSchedule",
4774        super_class: Some(57),
4775        concrete: true,
4776        origins: &["SIS"],
4777        comment: "The schedule for ImpedanceControlFunction.",
4778        attrs: &[
4779            AttrDef { id: "ImpedanceControlFunctionSchedule.ImpedanceControlFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ImpedanceControlFunction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The control function that has this schedule." },
4780            AttrDef { id: "ImpedanceControlFunctionSchedule.ImpedanceControlFunctionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ImpedanceControlFunctionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point of the schedule." },
4781        ],
4782    },
4783    ClassDef {
4784        ns: "https://cim4.eu/ns/nc#",
4785        local: "ImpedanceControlFunctionTimePoint",
4786        qualified: "nc:ImpedanceControlFunctionTimePoint",
4787        super_class: None,
4788        concrete: true,
4789        origins: &["SIS"],
4790        comment: "Impedance control function value for a given point in time.",
4791        attrs: &[
4792            AttrDef { id: "ImpedanceControlFunctionTimePoint.ImpedanceControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ImpedanceControlFunctionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule that has this time point." },
4793            AttrDef { id: "ImpedanceControlFunctionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
4794            AttrDef { id: "ImpedanceControlFunctionTimePoint.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Impedance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Target value for the impedance that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
4795        ],
4796    },
4797    ClassDef {
4798        ns: "https://cim4.eu/ns/nc#",
4799        local: "InServiceAction",
4800        qualified: "nc:InServiceAction",
4801        super_class: Some(304),
4802        concrete: true,
4803        origins: &["RA", "SSI"],
4804        comment: "In service action represents a change of the status of the equipment in the grid model compared to the base case.",
4805        attrs: &[
4806            AttrDef { id: "InServiceAction.Equipment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Equipment", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "Equipment that has a in service action associated." },
4807        ],
4808    },
4809    ClassDef {
4810        ns: "https://cim4.eu/ns/nc#",
4811        local: "InServiceRegularSchedule",
4812        qualified: "nc:InServiceRegularSchedule",
4813        super_class: Some(59),
4814        concrete: true,
4815        origins: &["SHS"],
4816        comment: "Regular schedule for elements having in service.",
4817        attrs: &[
4818            AttrDef { id: "InServiceRegularSchedule.Equipment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Equipment", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Equipment which has InServiceRegularSchedule." },
4819            AttrDef { id: "InServiceRegularSchedule.inService", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SHS"], comment: "Specifies the availability of the equipment. True means the equipment is available for topology processing, which determines if the equipment is energized or not. False means that the equipment is treated by network applications as if it is not in the model." },
4820        ],
4821    },
4822    ClassDef {
4823        ns: "https://cim4.eu/ns/nc#",
4824        local: "InServiceSchedule",
4825        qualified: "nc:InServiceSchedule",
4826        super_class: Some(57),
4827        concrete: true,
4828        origins: &["SHS"],
4829        comment: "Schedule for elements having in service.",
4830        attrs: &[
4831            AttrDef { id: "InServiceSchedule.Equipment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Equipment", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Equipment which has equipment schedules." },
4832            AttrDef { id: "InServiceSchedule.InServiceTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "InServiceTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The time point that relates to this in service schedule." },
4833        ],
4834    },
4835    ClassDef {
4836        ns: "https://cim4.eu/ns/nc#",
4837        local: "InServiceTimePoint",
4838        qualified: "nc:InServiceTimePoint",
4839        super_class: None,
4840        concrete: true,
4841        origins: &["SHS"],
4842        comment: "In service values for a given point in time.",
4843        attrs: &[
4844            AttrDef { id: "InServiceTimePoint.InServiceSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "InServiceSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "The in service schedule that has this time point." },
4845            AttrDef { id: "InServiceTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS"], comment: "The time the data is valid for." },
4846            AttrDef { id: "InServiceTimePoint.inService", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SHS"], comment: "Specifies the availability of the equipment. True means the equipment is available for topology processing, which determines if the equipment is energized or not. False means that the equipment is treated by network applications as if it is not in the model." },
4847        ],
4848    },
4849    ClassDef {
4850        ns: "https://cim4.eu/ns/nc#",
4851        local: "IndustryUnit",
4852        qualified: "nc:IndustryUnit",
4853        super_class: Some(289),
4854        concrete: true,
4855        origins: &["ER", "SSI"],
4856        comment: "An industrial energy conversion facility that primarily consumes electrical energy for mechanical processes, typically involving large rotating machines (e.g., motors, compressors, pumps, or mills). The IndustryUnit may represent one or more concrete machine installations or an equivalent aggregated model of an industrial process.",
4857        attrs: &[],
4858    },
4859    ClassDef {
4860        ns: "https://cim4.eu/ns/nc#",
4861        local: "InfeedLimit",
4862        qualified: "nc:InfeedLimit",
4863        super_class: Some(370),
4864        concrete: true,
4865        origins: &["ER", "SIS", "SSI"],
4866        comment: "Infeed limit set constraints fed in to the network by two or more terminals.",
4867        attrs: &[
4868            AttrDef { id: "InfeedLimit.InfeedLimitSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "InfeedLimitSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Infeed limit schedule associated with an infeed limit." },
4869            AttrDef { id: "InfeedLimit.InfeedTerminal", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "InfeedTerminal", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Infeed terminal that has infeed constraints." },
4870            AttrDef { id: "InfeedLimit.normalValueA", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The normal current limit. The attribute shall be a positive value or zero." },
4871            AttrDef { id: "InfeedLimit.normalValueW", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The normal value of active power limit. The attribute shall be a positive value or zero." },
4872            AttrDef { id: "InfeedLimit.valueA", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Value of current limit. The attribute shall be a positive value or zero." },
4873            AttrDef { id: "InfeedLimit.valueW", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Value of active power limit. The attribute shall be a positive value or zero." },
4874        ],
4875    },
4876    ClassDef {
4877        ns: "https://cim4.eu/ns/nc#",
4878        local: "InfeedLimitSchedule",
4879        qualified: "nc:InfeedLimitSchedule",
4880        super_class: Some(57),
4881        concrete: true,
4882        origins: &["SIS"],
4883        comment: "The schedule for an infeed limit.",
4884        attrs: &[
4885            AttrDef { id: "InfeedLimitSchedule.InfeedLimit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "InfeedLimit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Infeed limit which has infeed limit schedule." },
4886            AttrDef { id: "InfeedLimitSchedule.InfeedLimitTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "InfeedLimitTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Infeed limit time point that relates to this infeed limit schedule." },
4887        ],
4888    },
4889    ClassDef {
4890        ns: "https://cim4.eu/ns/nc#",
4891        local: "InfeedLimitTimePoint",
4892        qualified: "nc:InfeedLimitTimePoint",
4893        super_class: None,
4894        concrete: true,
4895        origins: &["SIS"],
4896        comment: "Infeed limit at a given point in time.",
4897        attrs: &[
4898            AttrDef { id: "InfeedLimitTimePoint.InfeedLimitSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "InfeedLimitSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Infeed limit schedule that has time point." },
4899            AttrDef { id: "InfeedLimitTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
4900            AttrDef { id: "InfeedLimitTimePoint.valueA", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Value of current limit. The attribute shall be a positive value or zero." },
4901            AttrDef { id: "InfeedLimitTimePoint.valueW", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Value of active power limit. The attribute shall be a positive value or zero." },
4902        ],
4903    },
4904    ClassDef {
4905        ns: "https://cim4.eu/ns/nc#",
4906        local: "InfeedTerminal",
4907        qualified: "nc:InfeedTerminal",
4908        super_class: None,
4909        concrete: true,
4910        origins: &["ER"],
4911        comment: "Infeed terminal defines the terminals that are linked to an infeed limit.",
4912        attrs: &[
4913            AttrDef { id: "InfeedTerminal.ACDCTerminal", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ACDCTerminal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "ACDCTerminal which is connected to an infeed terminal." },
4914            AttrDef { id: "InfeedTerminal.InfeedConstraint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "InfeedLimit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Infeed constraint which belongs to an infeed terminal." },
4915            AttrDef { id: "InfeedTerminal.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["ER"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
4916        ],
4917    },
4918    ClassDef {
4919        ns: "https://cim4.eu/ns/nc#",
4920        local: "InfluenceArea",
4921        qualified: "nc:InfluenceArea",
4922        super_class: Some(361),
4923        concrete: false,
4924        origins: &["MA"],
4925        comment: "Influence area is a monitoring area that is defined by calculating the equipment that is affected by the influence factors.",
4926        attrs: &[
4927            AttrDef { id: "InfluenceArea.filteringInfluenceFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["MA"], comment: "Power flow filtering influence factor of a network element not normalised. This is referred as power flow influence threshold in CSA methodology. The allowed value range is [0,100]." },
4928            AttrDef { id: "InfluenceArea.identificationInfluenceFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["MA"], comment: "Power flow identification influence factor of a network element that is normalised in order to take into account potential impacts induced by differences in Permanently Admissible Transmission Loading (PATL) values. This is referred as identification influence threshold in CSA methodology. The allowed value range is [0,100]." },
4929            AttrDef { id: "InfluenceArea.voltageInfluenceFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["MA"], comment: "Voltage influence factor of a network element as defined in the CSA methodology. The allowed value range is [0,100]." },
4930        ],
4931    },
4932    ClassDef {
4933        ns: "https://cim4.eu/ns/nc#",
4934        local: "InjectionController",
4935        qualified: "nc:InjectionController",
4936        super_class: Some(243),
4937        concrete: true,
4938        origins: &["ER", "SSI"],
4939        comment: "Injection controller is controlling the equipment which represents an injection or an external network.",
4940        attrs: &[
4941            AttrDef { id: "InjectionController.EquivalentInjection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquivalentInjection", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Equivalent injection controlled by the injection controller." },
4942            AttrDef { id: "InjectionController.mode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "InjectionControlModeKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["SSI"], comment: "Mode of the injection controller." },
4943        ],
4944    },
4945    ClassDef {
4946        ns: "https://cim4.eu/ns/nc#",
4947        local: "Installation",
4948        qualified: "nc:Installation",
4949        super_class: Some(241),
4950        concrete: true,
4951        origins: &["ER"],
4952        comment: "An Installation represents a functionally integrated system at a premises or facility that is connected to an energy infrastructure, but is not itself an energy device (e.g., generator, load, or storage). It serves as a system-level abstraction of the internal infrastructure—such as intake cable, switchboards, internal cabling, distribution panels, protection devices, and auxiliary equipment —that enables and constraints the connection to one or more energy connections (electrical, thermal, gas, etc.). Installations are typically owned and operated by the site holder, not the utility, and exist within buildings, industrial sites, or campus.",
4953        attrs: &[
4954            AttrDef { id: "Installation.EdgeSchedulingArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EdgeSchedulingArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The edge scheduling area for this installation." },
4955            AttrDef { id: "Installation.EnergyConnection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyConnection", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The energy connection that is connected to the installation." },
4956        ],
4957    },
4958    ClassDef {
4959        ns: "https://cim4.eu/ns/nc#",
4960        local: "InsulatedGateBipolarTransistorValve",
4961        qualified: "nc:InsulatedGateBipolarTransistorValve",
4962        super_class: Some(191),
4963        concrete: true,
4964        origins: &["ER", "SSI"],
4965        comment: "Insulated Gate Bipolar Transistor (IGBT) is a fully controlled valve. Unlike thyristors, an IGBT valve can be turned on and off at any time by the gate signal. This allows for 'Voltage Source Converters' (VSC) that provide more precise control over the electrical grid.",
4966        attrs: &[
4967            AttrDef { id: "InsulatedGateBipolarTransistorValve.VsConverter", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VsConverter", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The VsConverter that has InsulatedGateBipolarTransistorValve." },
4968        ],
4969    },
4970    ClassDef {
4971        ns: "https://cim4.eu/ns/nc#",
4972        local: "Interruption",
4973        qualified: "nc:Interruption",
4974        super_class: Some(318),
4975        concrete: true,
4976        origins: &["GD"],
4977        comment: "Disappearance of the supply voltage at a delivery point.",
4978        attrs: &[
4979            AttrDef { id: "Interruption.InterruptedDeliveryEquipment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Equipment", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GD"], comment: "The delivery point (equipment) that is affected by the interruption. It is an equipment, power transformer or busbar in the grid where electricity is exchanged." },
4980            AttrDef { id: "Interruption.Outage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Outage", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GD"], comment: "One outage may have multiple interruptions." },
4981            AttrDef { id: "Interruption.duration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GD"], comment: "The duration of the interruption." },
4982            AttrDef { id: "Interruption.energyNotDelivered", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["GD"], comment: "The estimated energy which would have been delivered through the delivery point if no interruption and no transmission restrictions had occurred." },
4983            AttrDef { id: "Interruption.energyNotSupplied", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["GD"], comment: "The estimated energy which would have been supplied to end-users if no interruption and no transmission restrictions had occurred." },
4984            AttrDef { id: "Interruption.interruptedPower", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["GD"], comment: "The estimated power that was delivered through the delivery point when the interruption occurred." },
4985            AttrDef { id: "Interruption.startDateTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["GD"], comment: "The date and time at which the interruption occurred." },
4986        ],
4987    },
4988    ClassDef {
4989        ns: "https://cim4.eu/ns/nc#",
4990        local: "IntertemporalPropertyRange",
4991        qualified: "nc:IntertemporalPropertyRange",
4992        super_class: Some(451),
4993        concrete: true,
4994        origins: &["RA", "SSI"],
4995        comment: "It represents the intertemporal range, which means that this is the maximum change of an attribute value between two time stamps or per time unit (e.g. hour). Both up and down directions are defined by the direction attribute, i.e. There are different schedules per direction. The class is not instantiated for PropertyReference which refers to Boolean type attributes. For instance the following example illustrates the approach: - A tap changer related grid state alteration having two intertemporal range schedules. - For a particular point in time, the value from up schedule is 6 and the value from down schedule is 3. - Then, the GridStateIntensity for the same point in time cannot be more than plus 6 taps from the current, or more than minus 3 taps from the current.",
4996        attrs: &[],
4997    },
4998    ClassDef {
4999        ns: "https://cim.ucaiug.io/ns#",
5000        local: "Jumper",
5001        qualified: "nc:Jumper",
5002        super_class: Some(534),
5003        concrete: true,
5004        origins: &["SSI"],
5005        comment: "A short section of conductor with negligible impedance which can be manually removed and replaced if the circuit is de-energized. Note that zero-impedance branches can potentially be modelled by other equipment types.",
5006        attrs: &[],
5007    },
5008    ClassDef {
5009        ns: "https://cim.ucaiug.io/ns#",
5010        local: "Junction",
5011        qualified: "nc:Junction",
5012        super_class: Some(96),
5013        concrete: true,
5014        origins: &["SSI"],
5015        comment: "A point where one or more conducting equipments are connected with zero resistance.",
5016        attrs: &[],
5017    },
5018    ClassDef {
5019        ns: "https://cim.ucaiug.io/ns#",
5020        local: "Language",
5021        qualified: "nc:Language",
5022        super_class: None,
5023        concrete: false,
5024        origins: &["OR"],
5025        comment: "Represents textual values that identifier a language based on a structured format that includes language codes, optional region codes, and script subtags. This ensures consistency in multilingual data processing, localization, metadata tagging, and content negotiation. Example: Valid examples: 'en', 'fr', 'es-ES', 'zh-Hans', 'nb-NO'. Not valid examples: 'english', 'Fran&#231;ais', 'norwegian', 'zh-hant-cn' (invalid format).",
5026        attrs: &[],
5027    },
5028    ClassDef {
5029        ns: "https://cim4.eu/ns/nc#",
5030        local: "LimitDependencyCurve",
5031        qualified: "nc:LimitDependencyCurve",
5032        super_class: Some(136),
5033        concrete: false,
5034        origins: &["ER"],
5035        comment: "A curve or functional relationship between an independent variable (X-axis) and limiting dependent (Y-axis) variables.",
5036        attrs: &[],
5037    },
5038    ClassDef {
5039        ns: "https://cim.ucaiug.io/ns#",
5040        local: "Line",
5041        qualified: "nc:Line",
5042        super_class: Some(242),
5043        concrete: true,
5044        origins: &["ER", "AE"],
5045        comment: "Contains equipment beyond a substation belonging to a power transmission line.",
5046        attrs: &[
5047            AttrDef { id: "Line.ACTieCorridor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ACTieCorridor", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "ACTieCorridor that the line is part of." },
5048            AttrDef { id: "Line.AssessedElement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElement", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AE"], comment: "The assessed element indicating that the line is assessed, i.e. monitored." },
5049            AttrDef { id: "Line.CrossZonalLine", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CrossZonalLine", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The cross-zonal line representation associated with the AC line." },
5050            AttrDef { id: "Line.SchedulingArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchedulingArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The scheduling area that has this line." },
5051        ],
5052    },
5053    ClassDef {
5054        ns: "https://cim4.eu/ns/nc#",
5055        local: "LineCircuit",
5056        qualified: "nc:LineCircuit",
5057        super_class: Some(77),
5058        concrete: true,
5059        origins: &["ER"],
5060        comment: "A line circuit is a circuit that has at least one ACLineSegment and may or may not include related switching and/or auxiliary equipment.",
5061        attrs: &[],
5062    },
5063    ClassDef {
5064        ns: "https://cim.ucaiug.io/ns#",
5065        local: "LinearShuntCompensator",
5066        qualified: "nc:LinearShuntCompensator",
5067        super_class: Some(508),
5068        concrete: true,
5069        origins: &["SSI"],
5070        comment: "A linear shunt compensator has banks or sections with equal admittance values.",
5071        attrs: &[],
5072    },
5073    ClassDef {
5074        ns: "https://cim4.eu/ns/nc#",
5075        local: "ListBasedImpactAssessmentMatrix",
5076        qualified: "nc:ListBasedImpactAssessmentMatrix",
5077        super_class: Some(320),
5078        concrete: true,
5079        origins: &["IAM"],
5080        comment: "List-Based is the impact matrix determined by agreement of the system operators involved. System operators jointly decide which Remedial Action (eventually scaled by the intensity of the remedial action) is impacting.",
5081        attrs: &[],
5082    },
5083    ClassDef {
5084        ns: "https://cim4.eu/ns/nc#",
5085        local: "LoadAction",
5086        qualified: "nc:LoadAction",
5087        super_class: Some(507),
5088        concrete: true,
5089        origins: &["RA", "SSI"],
5090        comment: "Load action.",
5091        attrs: &[
5092            AttrDef { id: "LoadAction.EnergyConsumer", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyConsumer", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The EnergyConsumer that is associated with a load action." },
5093        ],
5094    },
5095    ClassDef {
5096        ns: "https://cim.ucaiug.io/ns#",
5097        local: "LoadBreakSwitch",
5098        qualified: "nc:LoadBreakSwitch",
5099        super_class: Some(448),
5100        concrete: true,
5101        origins: &["SSI"],
5102        comment: "A mechanical switching device capable of making, carrying, and breaking currents under normal operating conditions.",
5103        attrs: &[],
5104    },
5105    ClassDef {
5106        ns: "https://cim4.eu/ns/nc#",
5107        local: "LoadFrequencyControlArea",
5108        qualified: "nc:LoadFrequencyControlArea",
5109        super_class: Some(440),
5110        concrete: true,
5111        origins: &["ER", "SSI"],
5112        comment: "A part of a synchronous area or an entire synchronous area, physically demarcated by points of measurement at interconnectors to other load frequency control (LFC) areas, operated by one or more TSOs fulfilling the obligations of load-frequency control.",
5113        attrs: &[
5114            AttrDef { id: "LoadFrequencyControlArea.FrequencyControlOperator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "LoadFrequencyControlOperator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The frequency control operator that operates this frequency control area." },
5115            AttrDef { id: "LoadFrequencyControlArea.LoadFrequencyControlBlock", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "LoadFrequencyControlBlock", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The load frequency control block that has this load frequency control area." },
5116            AttrDef { id: "LoadFrequencyControlArea.SchedulingArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchedulingArea", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The scheduling area that is part of this load frequency control area." },
5117            AttrDef { id: "LoadFrequencyControlArea.TieCorridor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TieCorridor", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "TieCorridor controlled by the LoadFrequencyControlArea." },
5118            AttrDef { id: "LoadFrequencyControlArea.aFRRActivated", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The real-time or in simulation active power delivered as automatic Frequency Restoration Reserves (aFRR), automatically activated by the automatic generation control (AGC) system to restore frequency and area control error (ACE). Represents the actual MW change at that instant." },
5119            AttrDef { id: "LoadFrequencyControlArea.aFRRAvailable", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The actual available active power capacity that can deliver automatic Frequency Restoration Reserves (aFRR) at a given moment, considering online resources, Automatic Generation Control (AGC) participation, and technical limits. Reflects the true operational flexibility available to respond automatically to frequency deviations." },
5120            AttrDef { id: "LoadFrequencyControlArea.aFRRContracted", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The contracted active power capacity for automatic Frequency Restoration Reserves (aFRR). Represents the portion of aFRR provision secured through procurement arrangements (market-based or bilateral), available to the Automatic Generation Control (AGC) process for activation." },
5121            AttrDef { id: "LoadFrequencyControlArea.deficientGenerationLimit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Percentage of average dispatch target plus average regulation used to calculate Deficient Generation Limit. The value shall be a positive value between 0 and 100." },
5122            AttrDef { id: "LoadFrequencyControlArea.fcrAvailable", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The actual available active power capacity at a given time that can deliver Frequency Containment Reserves (FCR), considering unit status, technical constraints, and system conditions. This is the calculated reserves in real-time or operation planning." },
5123            AttrDef { id: "LoadFrequencyControlArea.fcrContracted", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The contracted active power capacity for Frequency Containment Reserves (FCR). Represents the portion of FCR provision secured through contracts, tenders, or other procurement mechanisms, available for activation when needed." },
5124            AttrDef { id: "LoadFrequencyControlArea.frequencyBiasFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Frequency bias in MW/Hz." },
5125            AttrDef { id: "LoadFrequencyControlArea.frrDelay", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "FRR delay expressed in seconds. Must be a positive multiple of AGC's cycle duration." },
5126            AttrDef { id: "LoadFrequencyControlArea.frrMaxRamp", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePowerChangeRate", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Maximum authorized ramp for both FRR dispatching and ramp to zero." },
5127            AttrDef { id: "LoadFrequencyControlArea.frrThreshold", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Authorized threshold for both FRR dispatching and ramp to zero." },
5128            AttrDef { id: "LoadFrequencyControlArea.includeFrequencyBias", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER"], comment: "True means the frequency bias that is taken into consideration in the frequency bias computation." },
5129            AttrDef { id: "LoadFrequencyControlArea.mFRRActivated", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The real-time or in simulation active power delivered as Frequency Restoration Reserves (mFRR), manually activated by the system operator or a central dispatch system to restore system frequency and area control error (ACE)." },
5130            AttrDef { id: "LoadFrequencyControlArea.mFRRContracted", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The contracted active power capacity for manual Frequency Restoration Reserves (mFRR). Represents the portion of Frequency Restoration Reserves (FRR) provision secured by the system operator through procurement mechanisms (market/bilateral) and made available for manual activation when needed." },
5131        ],
5132    },
5133    ClassDef {
5134        ns: "https://cim4.eu/ns/nc#",
5135        local: "LoadFrequencyControlBlock",
5136        qualified: "nc:LoadFrequencyControlBlock",
5137        super_class: Some(440),
5138        concrete: true,
5139        origins: &["ER"],
5140        comment: "A part of a synchronous area or an entire synchronous area, physically demarcated by points of measurement at interconnectors to other load frequency control (LFC) blocks, consisting of one or more LFC areas, operated by one or more TSOs fulfilling the obligations of load-frequency control.",
5141        attrs: &[
5142            AttrDef { id: "LoadFrequencyControlBlock.LoadFrequencyControlArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "LoadFrequencyControlArea", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The load frequency control area that is part of this load frequency control block." },
5143            AttrDef { id: "LoadFrequencyControlBlock.SynchronousArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SynchronousArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The synchronous area that has this load frequency control block." },
5144            AttrDef { id: "LoadFrequencyControlBlock.fcrProvision", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The required active power capacity reserved for Frequency Containment Reserves (FCR) in accordance with dimensioning rules. Represents the LFC Block obligation, independent of contracting arrangements." },
5145            AttrDef { id: "LoadFrequencyControlBlock.frrProvision", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The required active power capacity reserved for Frequency Restoration Reserves (FRR) as determined by dimensioning rules. Represents the obligation of an LFC Block to ensure sufficient FRR capacity for system frequency restoration." },
5146        ],
5147    },
5148    ClassDef {
5149        ns: "https://cim4.eu/ns/nc#",
5150        local: "LoadFrequencyControlOperator",
5151        qualified: "nc:LoadFrequencyControlOperator",
5152        super_class: Some(545),
5153        concrete: true,
5154        origins: &["ER"],
5155        comment: "A post that is responsible for operational security by operating the load frequency control (LFC) mechanism.",
5156        attrs: &[
5157            AttrDef { id: "LoadFrequencyControlOperator.FrequencyControlArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "LoadFrequencyControlArea", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The frequency control area that has this frequency control operator." },
5158        ],
5159    },
5160    ClassDef {
5161        ns: "https://cim.ucaiug.io/ns#",
5162        local: "Location",
5163        qualified: "nc:Location",
5164        super_class: Some(318),
5165        concrete: true,
5166        origins: &["GD"],
5167        comment: "The place, scene, or point of something where someone or something has been, is, and/or will be at a given moment in time. It can be defined with one or more position points (coordinates) in a given coordinate system.",
5168        attrs: &[
5169            AttrDef { id: "Location.CoordinateSystem", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "CoordinateSystem", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GD"], comment: "Coordinate system used to describe position points of this location." },
5170            AttrDef { id: "Location.Fault", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "Fault", is_list: true, used: false, xsd: "", value_ns: "", origins: &["GD"], comment: "All faults at this location." },
5171            AttrDef { id: "Location.PositionPoints", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "PositionPoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["GD"], comment: "Sequence of position points describing this location, expressed in coordinate system 'Location.CoordinateSystem'." },
5172        ],
5173    },
5174    ClassDef {
5175        ns: "https://cim4.eu/ns/nc#",
5176        local: "LossCurve",
5177        qualified: "nc:LossCurve",
5178        super_class: Some(136),
5179        concrete: true,
5180        origins: &["ER"],
5181        comment: "Represents the losses in the equipment due to operation position.",
5182        attrs: &[
5183            AttrDef { id: "LossCurve.FACTSEquipment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FACTSEquipment", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The FACTS equipment which has a loss curve." },
5184        ],
5185    },
5186    ClassDef {
5187        ns: "https://cim.ucaiug.io/ns#",
5188        local: "Measurement",
5189        qualified: "nc:Measurement",
5190        super_class: None,
5191        concrete: false,
5192        origins: &["RA"],
5193        comment: "A Measurement represents any measured, calculated or non-measured non-calculated quantity. Any piece of equipment may contain Measurements, e.g. a substation may have temperature measurements and door open indications, a transformer may have oil temperature and tank pressure measurements, a bay may contain a number of power flow measurements and a Breaker may contain a switch status measurement. The PSR - Measurement association is intended to capture this use of Measurement and is included in the naming hierarchy based on EquipmentContainer. The naming hierarchy typically has Measurements as leaves, e.g. Substation-VoltageLevel-Bay-Switch-Measurement. Some Measurements represent quantities related to a particular sensor location in the network, e.g. a voltage transformer (VT) or potential transformer (PT) at a busbar or a current transformer (CT) at the bar between a breaker and an isolator. The sensing position is not captured in the PSR - Measurement association. Instead it is captured by the Measurement - Terminal association that is used to define the sensing location in the network topology. The location is defined by the connection of the Terminal to ConductingEquipment. If both a Terminal and PSR are associated, and the PSR is of type ConductingEquipment, the associated Terminal should belong to that ConductingEquipment instance. When the sensor location is needed both Measurement-PSR and Measurement-Terminal are used. The Measurement-Terminal association is never used alone.",
5194        attrs: &[
5195            AttrDef { id: "Measurement.MeasurementCalculatorInput", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "MeasurementCalculatorInput", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The calculator input used for this measurement." },
5196            AttrDef { id: "Measurement.PinMeasurement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PinMeasurement", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The pin that uses this input." },
5197        ],
5198    },
5199    ClassDef {
5200        ns: "https://cim4.eu/ns/nc#",
5201        local: "MeasurementCalculator",
5202        qualified: "nc:MeasurementCalculator",
5203        super_class: Some(318),
5204        concrete: true,
5205        origins: &["RA"],
5206        comment: "Result of a calculation of one or more measurement.",
5207        attrs: &[
5208            AttrDef { id: "MeasurementCalculator.MeasurementCalculatorInput", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "MeasurementCalculatorInput", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The input used for the calculator." },
5209            AttrDef { id: "MeasurementCalculator.PinMeasurement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PinMeasurement", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The pin that uses this input." },
5210            AttrDef { id: "MeasurementCalculator.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "CalculationKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["RA"], comment: "Calculation operation executed on the operands." },
5211        ],
5212    },
5213    ClassDef {
5214        ns: "https://cim4.eu/ns/nc#",
5215        local: "MeasurementCalculatorInput",
5216        qualified: "nc:MeasurementCalculatorInput",
5217        super_class: Some(318),
5218        concrete: true,
5219        origins: &["RA"],
5220        comment: "Input to measurement calculation. It supports Analog, Discrete and Accumulator measurements.",
5221        attrs: &[
5222            AttrDef { id: "MeasurementCalculatorInput.Measurement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Measurement", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "Measurement used as input to a calculation." },
5223            AttrDef { id: "MeasurementCalculatorInput.MeasurementCalculator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "MeasurementCalculator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The measurement calculator using this calculator input." },
5224            AttrDef { id: "MeasurementCalculatorInput.absoluteValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["RA"], comment: "Indicates if the absolute value is used for comparison. If true, use the absolute value. If false, use the complex value (vector)." },
5225            AttrDef { id: "MeasurementCalculatorInput.order", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["RA"], comment: "Positive number that defines the order of the operand in the calculation. 0 means default in which case the order is not relevant." },
5226        ],
5227    },
5228    ClassDef {
5229        ns: "https://cim4.eu/ns/nc#",
5230        local: "MobileElectricalUnit",
5231        qualified: "nc:MobileElectricalUnit",
5232        super_class: Some(62),
5233        concrete: true,
5234        origins: &["ER", "SSI"],
5235        comment: "A MobileElectricalUnit represents a persistent power system resource that can act as a source or sink of electrical energy within the grid. It is designed to interface with the grid through defined connection points for charging or discharging, while the physical energy storage asset associated with it (e.g., an electric vehicle or battery trailer) may be mobile. The MobileElectricalUnit abstracts the system-side functionality of mobile energy storage, independent of specific assets or charging events. It typically stores electrical energy in batteries or equivalent storage media and supports flexible, temporary, or location-variable integration into the power system. Examples include, but are not limited to: Electric vehicles (EVs) Electrically powered ferries Trailer-based battery storage units Mobile battery systems for backup or temporary grid support This concept supports consistent modeling of mobile energy systems in grid studies by treating the grid-facing connection as a stable power system element, while the associated physical unit is managed as an asset.",
5236        attrs: &[
5237            AttrDef { id: "MobileElectricalUnit.ElectricalChargingUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ElectricalChargingUnit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Electrical charging unit that has a mobile electrical unit." },
5238        ],
5239    },
5240    ClassDef {
5241        ns: "https://cim4.eu/ns/nc#",
5242        local: "ModularMultilevelConverter",
5243        qualified: "nc:ModularMultilevelConverter",
5244        super_class: Some(590),
5245        concrete: true,
5246        origins: &["ER", "SSI"],
5247        comment: "Specialized voltage source converter based on modular multilevel converter (MMC) topology using cascaded converter submodules for voltage synthesis and power conversion.",
5248        attrs: &[
5249            AttrDef { id: "ModularMultilevelConverter.ModularMultilevelConverterValve", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ModularMultilevelConverterValve", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The ModularMultilevelConverterValve of this ModularMultilevelConverter." },
5250        ],
5251    },
5252    ClassDef {
5253        ns: "https://cim4.eu/ns/nc#",
5254        local: "ModularMultilevelConverterValve",
5255        qualified: "nc:ModularMultilevelConverterValve",
5256        super_class: Some(336),
5257        concrete: true,
5258        origins: &["ER", "SSI"],
5259        comment: "Represents a specialized DC valve used in a Modular Multilevel Converter (MMC) topology in DC systems. Unlike a conventional DCValve, which only identifies the semiconductor technology (thyristor, IGBT, etc.), DCValveMMC models the MMC submodule valve configuration used inside a Voltage Source Converter (VSC). An MMC valve is composed of many cascaded submodules arranged in converter arms. The valve configuration determines: switching topology, fault blocking capability, losses, control behavior, and voltage generation capability.",
5260        attrs: &[
5261            AttrDef { id: "ModularMultilevelConverterValve.ModularMultilevelConverter", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ModularMultilevelConverter", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The ModularMultilevelConverter the has ModularMultilevelConverterValve." },
5262            AttrDef { id: "ModularMultilevelConverterValve.armInductance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Inductance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Represents the inductive component connected in series with the MMC valve arm, typically used to: limit circulating currents, reduce fault currents, smooth arm current transitions, support converter stability. Often physically implemented as an arm reactor." },
5263            AttrDef { id: "ModularMultilevelConverterValve.armResistance", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Represents the effective series resistance of the MMC valve arm, including contributions from: arm reactor winding resistance, conductor resistance, semiconductor conduction losses, internal connection losses. The resistance affects: converter losses, damping characteristics, circulating current behavior, transient performance." },
5264            AttrDef { id: "ModularMultilevelConverterValve.configurationKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "ModularMultilevelConverterValveKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["ER"], comment: "Defines the MMC submodule valve topology/configuration used by the valve. It identifies how the semiconductor switches are arranged within the MMC submodule." },
5265            AttrDef { id: "ModularMultilevelConverterValve.numberOfSubmodules", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["ER"], comment: "Defines the total number of modular submodule cells connected in series within the MMC valve or converter arm. The number of submodules determines: achievable valve voltage, waveform resolution, converter voltage levels, and energy storage distribution. Typical MMC implementations contain tens to hundreds of submodules per valve arm." },
5266        ],
5267    },
5268    ClassDef {
5269        ns: "https://cim4.eu/ns/nc#",
5270        local: "ModularStaticSynchronousSeriesCompensator",
5271        qualified: "nc:ModularStaticSynchronousSeriesCompensator",
5272        super_class: Some(266),
5273        concrete: true,
5274        origins: &["ER", "SSI"],
5275        comment: "Modular static synchronous series compensator (MSSSC) is a type of flexible AC transmission system regulating equipment which consists of solid-state voltage source inverter connected in series with a transmission line. This is similar to static synchronous series compensator (SSSC), but without injection transformer. This enables the MSSSC to be truly modular with the ability to simply install a number of equipment in series to provide a desired maximum level of impedance. MSSSC can be dispersed into multiple location in a circuit working collectively under the same controller scheme.",
5276        attrs: &[],
5277    },
5278    ClassDef {
5279        ns: "https://cim4.eu/ns/nc#",
5280        local: "MonitoringArea",
5281        qualified: "nc:MonitoringArea",
5282        super_class: Some(440),
5283        concrete: true,
5284        origins: &["MA", "ER"],
5285        comment: "A coherent part of the interconnected electrical power system, that includes the system operators' responsibility area and the surrounding parts of other system operators' responsibility area, that need to be monitored for security assessment.",
5286        attrs: &[
5287            AttrDef { id: "MonitoringArea.AreaBorderTerminal", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AreaBorderTerminal", is_list: true, used: false, xsd: "", value_ns: "", origins: &["MA"], comment: "The AreaBorderTerminal which defines the MonitoringArea." },
5288            AttrDef { id: "MonitoringArea.PowerFrequencyController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerFrequencyController", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Power frequency controller that applied to this monitoring area." },
5289            AttrDef { id: "MonitoringArea.Region", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Region", is_list: false, used: true, xsd: "", value_ns: "", origins: &["MA"], comment: "Region that has monitoring areas." },
5290            AttrDef { id: "MonitoringArea.SynchronousArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SynchronousArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["MA"], comment: "The synchronous area that has this monitoring area." },
5291            AttrDef { id: "MonitoringArea.SystemOperator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SystemOperator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["MA"], comment: "The system operator that operates this monitoring area." },
5292        ],
5293    },
5294    ClassDef {
5295        ns: "https://cim4.eu/ns/nc#",
5296        local: "MonopolarDCSystem",
5297        qualified: "nc:MonopolarDCSystem",
5298        super_class: Some(187),
5299        concrete: true,
5300        origins: &["ER"],
5301        comment: "Monopolar DC system (IEC 60633) is a DC system with only one pole.",
5302        attrs: &[
5303            AttrDef { id: "MonopolarDCSystem.DCPole", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCPole", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "DC pole part of the asymmetric DC system." },
5304            AttrDef { id: "MonopolarDCSystem.isSymmetrical", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER"], comment: "if true, the monopolar DC system is symmetrical monopolar DC system (IEC 60633). It is a DC system with only one symmetrical monopole. A symmetrical monopole is part of an DC system consisting of all the equipment in the DC substations and the interconnecting transmission lines, if any, which during normal operation exhibits equal and opposite direct voltage polarities with respect to earth but without series connection of converters in each converter station. The term 'symmetrical monopole' is used even though there are two polarities with DC voltages, because with only one converter it is not possible to provide the redundancy which is normally associated with the term 'bipole'." },
5305        ],
5306    },
5307    ClassDef {
5308        ns: "https://cim4.eu/ns/nc#",
5309        local: "MustRunSchedule",
5310        qualified: "nc:MustRunSchedule",
5311        super_class: Some(57),
5312        concrete: true,
5313        origins: &["PS"],
5314        comment: "Time series represent irregular must-run instruction values at given points in time. This could be instruction to a reliability must-run (RMR) generation facility that is necessary to run to meet certain operating conditions in order to maintain the security of power systems in a competitive environment.",
5315        attrs: &[
5316            AttrDef { id: "MustRunSchedule.DCTieCorridor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCTieCorridor", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PS"], comment: "Hydro pump which belongs to the power schedule." },
5317            AttrDef { id: "MustRunSchedule.GeneratingUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GeneratingUnit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PS"], comment: "Generating unit which belongs to the must run schedule." },
5318            AttrDef { id: "MustRunSchedule.MustRunTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "MustRunTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PS"], comment: "Value for the point in time." },
5319        ],
5320    },
5321    ClassDef {
5322        ns: "https://cim4.eu/ns/nc#",
5323        local: "MustRunTimePoint",
5324        qualified: "nc:MustRunTimePoint",
5325        super_class: None,
5326        concrete: true,
5327        origins: &["PS"],
5328        comment: "Must-run instruction value at a given point in time.",
5329        attrs: &[
5330            AttrDef { id: "MustRunTimePoint.MustRunSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "MustRunSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PS"], comment: "Time series the time point values belongs to." },
5331            AttrDef { id: "MustRunTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["PS"], comment: "The time the data is valid for." },
5332            AttrDef { id: "MustRunTimePoint.mustRun", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["PS"], comment: "True, if the must-run instruction is active this time point. Otherwise false." },
5333            AttrDef { id: "MustRunTimePoint.mustRunP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["PS"], comment: "Minimum active power injection that is needed to meet must-run requirement. This value can be higher or equal to minimum operational limit. Load sign convention is used, i.e. positive sign means flow out from a node." },
5334            AttrDef { id: "MustRunTimePoint.mustRunQ", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["PS"], comment: "Minimum reactive power injection that is needed to meet must-run requirement. This value can be higher or equal to minimum operational limit. Load sign convention is used, i.e. positive sign means flow out from a node." },
5335        ],
5336    },
5337    ClassDef {
5338        ns: "https://cim.ucaiug.io/ns#",
5339        local: "NonConformLoad",
5340        qualified: "nc:NonConformLoad",
5341        super_class: Some(230),
5342        concrete: true,
5343        origins: &["SSI"],
5344        comment: "NonConformLoad represents loads that do not follow a daily load change pattern and whose changes are not correlated with the daily load change pattern.",
5345        attrs: &[],
5346    },
5347    ClassDef {
5348        ns: "https://cim.ucaiug.io/ns#",
5349        local: "NonlinearShuntCompensator",
5350        qualified: "nc:NonlinearShuntCompensator",
5351        super_class: Some(508),
5352        concrete: true,
5353        origins: &["SSI"],
5354        comment: "A non linear shunt compensator has bank or section admittance values that differ. The attributes g, b, g0 and b0 of the associated NonlinearShuntCompensatorPoint describe the total conductance and admittance of a NonlinearShuntCompensatorPoint at a section number specified by NonlinearShuntCompensatorPoint.sectionNumber.",
5355        attrs: &[],
5356    },
5357    ClassDef {
5358        ns: "https://cim.ucaiug.io/ns#",
5359        local: "NuclearGeneratingUnit",
5360        qualified: "nc:NuclearGeneratingUnit",
5361        super_class: Some(289),
5362        concrete: true,
5363        origins: &["ER", "SSI"],
5364        comment: "A nuclear generating unit.",
5365        attrs: &[
5366            AttrDef { id: "NuclearGeneratingUnit.reactorKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "NuclearReactorKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["ER"], comment: "Kind of nuclear reactor." },
5367        ],
5368    },
5369    ClassDef {
5370        ns: "https://cim4.eu/ns/nc#",
5371        local: "ObservabilityArea",
5372        qualified: "nc:ObservabilityArea",
5373        super_class: Some(361),
5374        concrete: true,
5375        origins: &["MA"],
5376        comment: "A monitoring area that is given by a real time measurement.",
5377        attrs: &[],
5378    },
5379    ClassDef {
5380        ns: "https://cim4.eu/ns/nc#",
5381        local: "ObservableQuantity",
5382        qualified: "nc:ObservableQuantity",
5383        super_class: None,
5384        concrete: true,
5385        origins: &["SM"],
5386        comment: "Observable quantity is an electrical quantity on an assessed element or an assessed element with contingency.",
5387        attrs: &[
5388            AttrDef { id: "ObservableQuantity.AssessedElement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElement", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SM"], comment: "The assessed element with contingency associated with this observable quantity." },
5389            AttrDef { id: "ObservableQuantity.Contingency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Contingency", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SM"], comment: "The contingency associated with this observable quantity." },
5390            AttrDef { id: "ObservableQuantity.SensitivityFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SensitivityFactor", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SM"], comment: "The sensitivity factor associated with an observable quantity." },
5391            AttrDef { id: "ObservableQuantity.observableQuantityKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "ObservableQuantityKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["SM"], comment: "Kind of observable quantity." },
5392        ],
5393    },
5394    ClassDef {
5395        ns: "https://cim.ucaiug.io/ns#",
5396        local: "OperationalLimit",
5397        qualified: "nc:OperationalLimit",
5398        super_class: Some(318),
5399        concrete: false,
5400        origins: &["AE", "AS", "ER", "RA", "SAR"],
5401        comment: "A value and normal value associated with a specific kind of limit. The sub class value and normalValue attributes vary inversely to the associated OperationalLimitType.acceptableDuration (acceptableDuration for short). If a particular piece of equipment has multiple operational limits of the same kind (apparent power, current, etc.), the limit with the greatest acceptableDuration shall have the smallest limit value and the limit with the smallest acceptableDuration shall have the largest limit value. Note: A large current can only be allowed to flow through a piece of equipment for a short duration without causing damage, but a lesser current can be allowed to flow for a longer duration.",
5402        attrs: &[
5403            AttrDef { id: "OperationalLimit.AssessedElement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElement", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AE"], comment: "The assessed element indicating which operational limit is assessed." },
5404            AttrDef { id: "OperationalLimit.AvailabilityExceptionalLimit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilityExceptionalLimit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "Availability exceptional limit that constrain this operational limit." },
5405            AttrDef { id: "OperationalLimit.OperationalLimitSet", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "OperationalLimitSet", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AE", "ER"], comment: "The limit set to which the limit values belong." },
5406            AttrDef { id: "OperationalLimit.OperationalLimitType", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "OperationalLimitType", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The limit type associated with this limit." },
5407            AttrDef { id: "OperationalLimit.PinOperationallLimit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PinOperationalLimit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The operational limit pin pin that uses this operational limit." },
5408            AttrDef { id: "OperationalLimit.PowerFlowResult", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerFlowResult", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SAR"], comment: "The limit violation associated with an operational limit." },
5409        ],
5410    },
5411    ClassDef {
5412        ns: "https://cim.ucaiug.io/ns#",
5413        local: "OperationalLimitSet",
5414        qualified: "nc:OperationalLimitSet",
5415        super_class: Some(318),
5416        concrete: true,
5417        origins: &["AE", "ER"],
5418        comment: "A set of limits associated with equipment. Sets of limits might apply to a specific temperature, or season for example. A set of limits may contain different severities of limit levels that would apply to the same equipment. The set may contain limits of different types such as apparent power and current limits or high and low voltage limits that are logically applied together as a set.",
5419        attrs: &[
5420            AttrDef { id: "OperationalLimitSet.OperationalLimitValue", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "OperationalLimit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AE", "ER"], comment: "Values of equipment limits." },
5421            AttrDef { id: "OperationalLimitSet.PowerTransferCorridor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerTransferCorridor", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The power transfer corridor that has this operational limit set." },
5422            AttrDef { id: "OperationalLimitSet.Terminal", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "ACDCTerminal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The terminal where the operational limit set apply." },
5423        ],
5424    },
5425    ClassDef {
5426        ns: "https://cim.ucaiug.io/ns#",
5427        local: "OperationalLimitType",
5428        qualified: "nc:OperationalLimitType",
5429        super_class: Some(318),
5430        concrete: true,
5431        origins: &["ER"],
5432        comment: "The operational meaning of a category of limits.",
5433        attrs: &[
5434            AttrDef { id: "OperationalLimitType.OperationalLimit", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "OperationalLimit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The operational limits associated with this type of limit." },
5435            AttrDef { id: "OperationalLimitType.PermanentAmbientTemperatureDependencyCurve", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AmbientTemperatureDependencyCurve", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The permanent ambient temperature dependency curve for this operational limit type." },
5436            AttrDef { id: "OperationalLimitType.PermanentSolarRadiationCurve", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SolarRadiationDependencyCurve", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The permanent solar radiation curve for this operational limit type." },
5437            AttrDef { id: "OperationalLimitType.RecoveryOverloadLimitCurve", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RecoveryOverloadLimitCurve", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "This is the curve which provides the recovery time information for this limit type." },
5438            AttrDef { id: "OperationalLimitType.TemporaryBaseOverloadLimitCurve", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BaseOverloadLimitCurve", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The temporary base overload limit curve for this operational limit type." },
5439            AttrDef { id: "OperationalLimitType.TemporaryDurationOverloadLimitCurve", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DurationOverloadLimitCurve", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The temporary duration overload limit curve for this operational limit type." },
5440            AttrDef { id: "OperationalLimitType.direction", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Enum, range: "OperationalLimitDirectionKind", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["ER"], comment: "The direction of the limit." },
5441            AttrDef { id: "OperationalLimitType.isMinimum", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER"], comment: "Defines if the operational limit type is minimum. If true, the value is a minimum value of the same kind. This applies to stability and PATL. If false, the limit has the normal behaviour. OperationalLimitType.direction attribute shall be absoluteValue." },
5442        ],
5443    },
5444    ClassDef {
5445        ns: "https://cim4.eu/ns/nc#",
5446        local: "OrdinaryContingency",
5447        qualified: "nc:OrdinaryContingency",
5448        super_class: Some(97),
5449        concrete: true,
5450        origins: &["CO", "SSI"],
5451        comment: "Ordinary contingency means the occurrence of a contingency of a single branch or injection.",
5452        attrs: &[],
5453    },
5454    ClassDef {
5455        ns: "https://cim4.eu/ns/nc#",
5456        local: "OrdinaryPowerTransferCorridor",
5457        qualified: "nc:OrdinaryPowerTransferCorridor",
5458        super_class: Some(442),
5459        concrete: true,
5460        origins: &["ER"],
5461        comment: "Power transfer corridor defined for normal operating network.",
5462        attrs: &[],
5463    },
5464    ClassDef {
5465        ns: "https://cim.ucaiug.io/ns#",
5466        local: "Organisation",
5467        qualified: "nc:Organisation",
5468        super_class: Some(318),
5469        concrete: true,
5470        origins: &["ER"],
5471        comment: "Organisation that might have roles as utility, contractor, supplier, manufacturer, customer, etc.",
5472        attrs: &[
5473            AttrDef { id: "Organisation.Roles", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "OrganisationRole", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "All roles of this organisation." },
5474        ],
5475    },
5476    ClassDef {
5477        ns: "https://cim.ucaiug.io/ns#",
5478        local: "OrganisationRole",
5479        qualified: "nc:OrganisationRole",
5480        super_class: Some(318),
5481        concrete: false,
5482        origins: &["ER"],
5483        comment: "Identifies a way in which an organisation may participate in the utility enterprise (e.g., customer, manufacturer, etc).",
5484        attrs: &[
5485            AttrDef { id: "OrganisationRole.Organisation", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "Organisation", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Organisation having this role." },
5486            AttrDef { id: "OrganisationRole.globalLocationNumber", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["ER"], comment: "The Global Location Number (GLN) is part of the GS1 systems of standards. GLN is a 13-digit number structured that include GS1 Company Prefix, Location Reference (N1-N12) and Check Digit (N13). GS1 is a neutral, not-for-profit, international organisation that develops and maintains standards for supply and demand chains across multiple sectors." },
5487        ],
5488    },
5489    ClassDef {
5490        ns: "https://cim4.eu/ns/nc#",
5491        local: "OutOfRangeContingency",
5492        qualified: "nc:OutOfRangeContingency",
5493        super_class: Some(97),
5494        concrete: true,
5495        origins: &["CO", "SSI"],
5496        comment: "Out of range means the simultaneous occurrence of multiple contingencies without a common cause, or a loss of power generating modules with a total loss of generation capacity exceeding the reference incident.",
5497        attrs: &[],
5498    },
5499    ClassDef {
5500        ns: "https://cim.ucaiug.io/ns#",
5501        local: "Outage",
5502        qualified: "nc:Outage",
5503        super_class: Some(215),
5504        concrete: false,
5505        origins: &["GD"],
5506        comment: "Document describing details of an active or planned outage in a part of the electrical network. A non-planned outage may be created upon: - a breaker trip, - a fault indicator status change, - a meter event indicating customer outage, - a reception of one or more customer trouble calls, or - an operator command, reflecting information obtained from the field crew. Outage restoration may be performed using a switching plan which complements the outage information with detailed switching activities, including the relationship to the crew and work. A planned outage may be created upon: - a request for service, maintenance or construction work in the field, or - an operator-defined outage for what-if/contingency network analysis.",
5507        attrs: &[
5508            AttrDef { id: "Outage.Equipments", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "Equipment", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GD"], comment: "All equipments associated with this outage." },
5509            AttrDef { id: "Outage.FaultOutage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FaultOutage", is_list: true, used: false, xsd: "", value_ns: "", origins: &["GD"], comment: "The combination of a fault and an outage to be simulated for this outage." },
5510            AttrDef { id: "Outage.Interruption", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Interruption", is_list: true, used: false, xsd: "", value_ns: "", origins: &["GD"], comment: "Multiple interruptions may be connected with an outage." },
5511        ],
5512    },
5513    ClassDef {
5514        ns: "https://cim4.eu/ns/nc#",
5515        local: "OutageAvailability",
5516        qualified: "nc:OutageAvailability",
5517        super_class: None,
5518        concrete: true,
5519        origins: &["AS"],
5520        comment: "Relationship between an OutageRequest and an AvailabilitySchedule, indicating that the outage request is one of the inputs or constraints used to establish that availability schedule. Multiple outage requests may contribute to a single availability schedule, and a single outage request may be reflected in multiple availability schedules issued by the system operator.",
5521        attrs: &[
5522            AttrDef { id: "OutageAvailability.AvailabilitySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilitySchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The availability schedule derived in part from this outage request." },
5523            AttrDef { id: "OutageAvailability.OutageRequest", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageRequest", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The outage request that contributes to or influences the resulting availability schedule." },
5524            AttrDef { id: "OutageAvailability.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["AS"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
5525        ],
5526    },
5527    ClassDef {
5528        ns: "https://cim4.eu/ns/nc#",
5529        local: "OutageCoordinationRegion",
5530        qualified: "nc:OutageCoordinationRegion",
5531        super_class: Some(459),
5532        concrete: true,
5533        origins: &["ER"],
5534        comment: "A region that has a common organisation or service responsible for outage planning and coordination and its impact on grid operation.",
5535        attrs: &[
5536            AttrDef { id: "OutageCoordinationRegion.ControlArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ControlArea", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The control area that is part of this outage coordination region." },
5537            AttrDef { id: "OutageCoordinationRegion.OutageCoordinator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageCoordinator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The outage coordinator responsible for this outage coordination region." },
5538            AttrDef { id: "OutageCoordinationRegion.OutagePlanningAgent", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutagePlanningAgent", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Agent responsible for planning availability in this outage coordination region." },
5539            AttrDef { id: "OutageCoordinationRegion.SecurityCoordinator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SecurityCoordinator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The security coordinator that is responsible for this outage coordination region." },
5540        ],
5541    },
5542    ClassDef {
5543        ns: "https://cim4.eu/ns/nc#",
5544        local: "OutageCoordinator",
5545        qualified: "nc:OutageCoordinator",
5546        super_class: Some(544),
5547        concrete: true,
5548        origins: &["ER", "AS"],
5549        comment: "A post that coordinates the planned availability status of relevant power system equipment to meet the need by the asset owner or operator and the security of the power system.",
5550        attrs: &[
5551            AttrDef { id: "OutageCoordinator.AvailablityPlan", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailablityPlan", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "The AvailabilityPlans for which this Outage Coordinator is responsible for approval." },
5552            AttrDef { id: "OutageCoordinator.AvailablityPlanResponse", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailablityPlanResponse", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "The AvailabilityPlan responses provided by this Outage Coordinator." },
5553            AttrDef { id: "OutageCoordinator.OutageCoordinationRegion", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageCoordinationRegion", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The outage coordination region that has this outage coordinator." },
5554            AttrDef { id: "OutageCoordinator.OutageRequest", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageRequest", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "Responses issued by the coordinator as part of the outage coordination process." },
5555            AttrDef { id: "OutageCoordinator.OutageResponse", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageResponse", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "Responses issued by the coordinator as part of the outage coordination process." },
5556        ],
5557    },
5558    ClassDef {
5559        ns: "https://cim4.eu/ns/nc#",
5560        local: "OutageDependency",
5561        qualified: "nc:OutageDependency",
5562        super_class: Some(393),
5563        concrete: true,
5564        origins: &["AS"],
5565        comment: "A peer temporal dependency that defines temporal or operational constraints between two outage requests. Note: The dependency constrains the start or end of the dependent outage relative to the start or end of the dependee outage. Lag constraints are evaluated using the latest applicable transition of the dependee. This supports sequencing and coordination of related outages without implying a hierarchical relationship between the outage requests. Example: - startToStartLag = 1H, startToStartLagKind = minimum: the dependent outage may start no earlier than one hour after the dependee outage starts. - finishToStartLag = 20M, finishToStartLagKind = exact: the dependent outage starts exactly 20 minutes after the dependee outage ends, for example to allow a defined switching or restoration sequence between the outages. - finishToFinishLag = 30M, finishToFinishLagKind = maximum: the dependent outage shall end no later than 30 minutes after the dependee outage ends.",
5566        attrs: &[
5567            AttrDef { id: "OutageDependency.DependeeOutageRequest", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageRequest", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The outage request upon which the dependent outage request depends." },
5568            AttrDef { id: "OutageDependency.DependentOutageRequest", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageRequest", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The outage request whose timing or execution is constrained by the dependee outage request." },
5569        ],
5570    },
5571    ClassDef {
5572        ns: "https://cim4.eu/ns/nc#",
5573        local: "OutagePlanningAgent",
5574        qualified: "nc:OutagePlanningAgent",
5575        super_class: Some(545),
5576        concrete: true,
5577        origins: &["ER", "AS"],
5578        comment: "An entity with the task of planning the availability status of a relevant power generating module, a relevant demand facility or a relevant grid element.",
5579        attrs: &[
5580            AttrDef { id: "OutagePlanningAgent.OutageCoordinationRegion", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageCoordinationRegion", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Outage coordination region that this agent has outage planning responsible." },
5581            AttrDef { id: "OutagePlanningAgent.OutageRequest", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageRequest", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "Outage requests initiated by this planning agent." },
5582            AttrDef { id: "OutagePlanningAgent.OutageResponse", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageResponse", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "Responses issued by this planning agent to outage requests submitted by other actors." },
5583        ],
5584    },
5585    ClassDef {
5586        ns: "https://cim4.eu/ns/nc#",
5587        local: "OutageRequest",
5588        qualified: "nc:OutageRequest",
5589        super_class: Some(318),
5590        concrete: true,
5591        origins: &["AS"],
5592        comment: "Represents the initial business intent to take one or more resources out of service during a specified period, as submitted by an Outage Planning Agent.",
5593        attrs: &[
5594            AttrDef { id: "OutageRequest.DependencyAsDependee", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageDependency", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "The outage dependency in which this outage request is the dependee." },
5595            AttrDef { id: "OutageRequest.DependencyAsDependent", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageDependency", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "The outage dependency in which this outage request is the dependent." },
5596            AttrDef { id: "OutageRequest.OutageAvailability", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageAvailability", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "All availability relationships in which this outage request is used as an input to determine system availability." },
5597            AttrDef { id: "OutageRequest.OutageRequestApprover", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageCoordinator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The coordinator responsible for approving the final version of the outage request." },
5598            AttrDef { id: "OutageRequest.OutageRequestResource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageRequestResource", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "Outage request resource entries referencing the resource." },
5599            AttrDef { id: "OutageRequest.OutageRequestVersion", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageRequestVersion", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "All version instances associated with this OutageRequest." },
5600            AttrDef { id: "OutageRequest.RequestedBy", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutagePlanningAgent", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The agent responsible for creating and submitting the outage request." },
5601            AttrDef { id: "OutageRequest.causeDescription", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["AS"], comment: "A cause description for a cause kind. In case of CauseKind equals other, description or a reference of the cause of the (un)availability schedule." },
5602            AttrDef { id: "OutageRequest.causeKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "AvailabilityScheduleCauseKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["AS"], comment: "Kind of cause for the availability schedule." },
5603            AttrDef { id: "OutageRequest.daytimeReinstatement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["AS"], comment: "True, when no work is planned for the weekend or public holidays and the equipment can be reinstated." },
5604            AttrDef { id: "OutageRequest.daytimeReinstatementDuration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The time required to take the out-of-service equipment back into service during daytime. This includes the start-up time for generating units." },
5605            AttrDef { id: "OutageRequest.earlyStart", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["AS"], comment: "Earliest possible start time/date of the work." },
5606            AttrDef { id: "OutageRequest.eveningReinstatement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["AS"], comment: "True, when no work is planned for the weekend or public holidays and the equipment can be reinstated." },
5607            AttrDef { id: "OutageRequest.eveningReinstatementDuration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The time required to take the out-of-service equipment back into service after office hours. This includes the start-up time for generating units." },
5608            AttrDef { id: "OutageRequest.expectedWorkDuration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The expected planned work duration." },
5609            AttrDef { id: "OutageRequest.lateStart", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["AS"], comment: "The latest time/date the work can start." },
5610            AttrDef { id: "OutageRequest.maxReinstatementDuration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The maximum time required to take the out-of-service equipment back into service after office hours. This includes the start-up time for generating units." },
5611            AttrDef { id: "OutageRequest.maxWorkDuration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The maximum work duration taken into account risk mitigation with less resources available. If like that assessment is done on this duration to avoid re-planning on a later stage." },
5612            AttrDef { id: "OutageRequest.minWorkDuration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The minimum work duration that can be achieved when extra resources are allocated." },
5613            AttrDef { id: "OutageRequest.priority", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["AS"], comment: "0 means ignore priority. 1 means the highest priority, 2 is the second highest priority." },
5614            AttrDef { id: "OutageRequest.requestedStart", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["AS"], comment: "Requested start time/date." },
5615            AttrDef { id: "OutageRequest.weekendReinstatement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["AS"], comment: "True, when no work is planned for the weekend or public holidays and the equipment can be reinstated." },
5616            AttrDef { id: "OutageRequest.weekendReinstatementDuration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The time required to take the out-of-service equipment back into service in the weekend or during bank holidays. This includes the start-up time for generating units." },
5617            AttrDef { id: "OutageRequest.workDayEndTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Time", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The time in a normal work day that equipment can be reinstated." },
5618            AttrDef { id: "OutageRequest.workDayStartTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Time", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The time in a normal work day that equipment would be taken out of service in case of reinstatement later in the working day." },
5619        ],
5620    },
5621    ClassDef {
5622        ns: "https://cim4.eu/ns/nc#",
5623        local: "OutageRequestResource",
5624        qualified: "nc:OutageRequestResource",
5625        super_class: None,
5626        concrete: true,
5627        origins: &["AS"],
5628        comment: "Associates an OutageRequest with a PowerSystemResource affected by the requested outage.",
5629        attrs: &[
5630            AttrDef { id: "OutageRequestResource.OutageRequest", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageRequest", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The outage request that includes this specific affected resource." },
5631            AttrDef { id: "OutageRequestResource.PowerSystemResource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSystemResource", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The specific power system resource that is affected by the outage request." },
5632            AttrDef { id: "OutageRequestResource.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "AvailabilityFunctionKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["AS"], comment: "The requested operational availability function of the associated PowerSystemResource. This value is used as input when determining the resulting AvailabilitySchedule." },
5633            AttrDef { id: "OutageRequestResource.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["AS"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
5634        ],
5635    },
5636    ClassDef {
5637        ns: "https://cim4.eu/ns/nc#",
5638        local: "OutageResponse",
5639        qualified: "nc:OutageResponse",
5640        super_class: None,
5641        concrete: true,
5642        origins: &["AS"],
5643        comment: "Represents the formal response provided by an affected agent or the outage coordinator to a specific OutageRequestVersion.",
5644        attrs: &[
5645            AttrDef { id: "OutageResponse.AffectedAgent", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutagePlanningAgent", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The agent that issued the response." },
5646            AttrDef { id: "OutageResponse.AffectedCoordinator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageCoordinator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The system operator acting as outage coordinator who issued the response." },
5647            AttrDef { id: "OutageResponse.OutageRequestVersion", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageRequestVersion", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS"], comment: "The version of the outage request to which this response applies." },
5648            AttrDef { id: "OutageResponse.comment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["AS"], comment: "Free-text explanation, justification or additional information provided with the response to the outage request version." },
5649            AttrDef { id: "OutageResponse.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["AS"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
5650            AttrDef { id: "OutageResponse.status", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "RequestResponseKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["AS"], comment: "Outcome of the response to the outage request version, indicating the decision or position of the responding party." },
5651        ],
5652    },
5653    ClassDef {
5654        ns: "https://cim4.eu/ns/nc#",
5655        local: "OutcomeValue",
5656        qualified: "nc:OutcomeValue",
5657        super_class: None,
5658        concrete: false,
5659        origins: &["IAM"],
5660        comment: "Outcome of an impact assessment matrix.",
5661        attrs: &[
5662            AttrDef { id: "OutcomeValue.ImpactAssessmentMatrix", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ImpactAssessmentMatrix", is_list: false, used: true, xsd: "", value_ns: "", origins: &["IAM"], comment: "the impact assessment matrix which has this value." },
5663            AttrDef { id: "OutcomeValue.ImpactedSystemOperator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SystemOperator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["IAM"], comment: "The impacted system operator that has an outcome value." },
5664            AttrDef { id: "OutcomeValue.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["IAM"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
5665            AttrDef { id: "OutcomeValue.outcome", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "OutcomeImpactAssessmentKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["IAM"], comment: "Outcome value." },
5666        ],
5667    },
5668    ClassDef {
5669        ns: "https://cim4.eu/ns/nc#",
5670        local: "OverlappingZone",
5671        qualified: "nc:OverlappingZone",
5672        super_class: Some(318),
5673        concrete: true,
5674        origins: &["ER", "AE"],
5675        comment: "A collection of all the overlapping cross border assessed elements which have the same sets of impacted and impacting regions.",
5676        attrs: &[
5677            AttrDef { id: "OverlappingZone.ImpactedRegion", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Region", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The region that is impacted by this overlapping zone." },
5678            AttrDef { id: "OverlappingZone.OverlappingAssessedElement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElement", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AE"], comment: "The overlapping assessed element on which the physical flows are significantly impacted by electricity exchanges in two or more regions or by remedial actions from two or more regions." },
5679        ],
5680    },
5681    ClassDef {
5682        ns: "https://cim4.eu/ns/nc#",
5683        local: "OwnerRemedialActionAssessment",
5684        qualified: "nc:OwnerRemedialActionAssessment",
5685        super_class: None,
5686        concrete: true,
5687        origins: &["IAM"],
5688        comment: "Owner remedial action assessment of the impact of their remedial action on neighboring system operators.",
5689        attrs: &[
5690            AttrDef { id: "OwnerRemedialActionAssessment.ImpactedSystemOperator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SystemOperator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["IAM"], comment: "System operator that is evaluated to be impacted by the remedial action done by the remedial action owner." },
5691            AttrDef { id: "OwnerRemedialActionAssessment.RemedialActionImpact", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionImpact", is_list: false, used: true, xsd: "", value_ns: "", origins: &["IAM"], comment: "Remedial action impact which is evaluated by the owner of the remedial action." },
5692            AttrDef { id: "OwnerRemedialActionAssessment.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["IAM"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
5693        ],
5694    },
5695    ClassDef {
5696        ns: "https://cim4.eu/ns/nc#",
5697        local: "PTCActivePowerSupport",
5698        qualified: "nc:PTCActivePowerSupport",
5699        super_class: None,
5700        concrete: true,
5701        origins: &["RA", "SSI"],
5702        comment: "Defines the active power capability (support) of the scheme in relation to a PowerTransferCorridor.",
5703        attrs: &[
5704            AttrDef { id: "PTCActivePowerSupport.PowerTransferCorridor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerTransferCorridor", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The PowerTransferCorridor that has a specific active power support." },
5705            AttrDef { id: "PTCActivePowerSupport.RemedialActionScheme", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionScheme", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The RemedialActionScheme which has active power support from the PowerTransferCorridor." },
5706            AttrDef { id: "PTCActivePowerSupport.maximum", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["RA"], comment: "Maximum support that a System Integrity Protection Scheme (SIPS) can provide to a Power Transfer Corridor (PTC). This is normally limited by the maximum power system disconnect allowed." },
5707            AttrDef { id: "PTCActivePowerSupport.normal", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["RA"], comment: "Normal support that a System Integrity Protection Scheme (SIPS) is expected to provide when enabled to a Power Transfer Corridor (PTC)." },
5708            AttrDef { id: "PTCActivePowerSupport.value", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The support that a System Integrity Protection Scheme (SIPS) gives to a Power Transfer Corridor (PTC)." },
5709        ],
5710    },
5711    ClassDef {
5712        ns: "https://cim4.eu/ns/nc#",
5713        local: "PTCTriggeredEquipment",
5714        qualified: "nc:PTCTriggeredEquipment",
5715        super_class: Some(318),
5716        concrete: true,
5717        origins: &["ER"],
5718        comment: "Power Transfer Corridor triggered equipment connects the equipment that will create the exceptional power transfer corridor when taking out of service. e.g. A system with three lines gets an exceptional power transfer corridor when one of the lines is taken out of service.",
5719        attrs: &[
5720            AttrDef { id: "PTCTriggeredEquipment.Equipment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Equipment", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The equipment which is part of power transfer corridor triggering." },
5721            AttrDef { id: "PTCTriggeredEquipment.ExceptionalPowerTransferCorridor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ExceptionalPowerTransferCorridor", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The power transfer corridor which is triggered by this equipment." },
5722        ],
5723    },
5724    ClassDef {
5725        ns: "https://cim4.eu/ns/nc#",
5726        local: "ParticipationFactorTimePoint",
5727        qualified: "nc:ParticipationFactorTimePoint",
5728        super_class: None,
5729        concrete: true,
5730        origins: &["SIS"],
5731        comment: "Participation factor for a given point in time.",
5732        attrs: &[
5733            AttrDef { id: "ParticipationFactorTimePoint.PowerShiftKeySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerShiftKeySchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The Power Shift Key schedule which belongs to the participation factor timepoint." },
5734            AttrDef { id: "ParticipationFactorTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
5735            AttrDef { id: "ParticipationFactorTimePoint.participationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). In the case of priority strategy, the item with the lowest number gets allocated energy first." },
5736        ],
5737    },
5738    ClassDef {
5739        ns: "https://cim4.eu/ns/nc#",
5740        local: "PeerTemporalDependency",
5741        qualified: "nc:PeerTemporalDependency",
5742        super_class: None,
5743        concrete: false,
5744        origins: &["AS", "ER", "SIS"],
5745        comment: "An abstract directed dependency between two peer instances of the same domain class that defines temporal and operational constraints governing their relative execution or operation. Note: Temporal lag constraints relate the next applicable transition of the dependent to the latest applicable transition of the dependee. A dependee transition remains applicable while the dependee remains in the state resulting from that transition. If the dependee subsequently changes state before the corresponding transition of the dependent occurs, the previous transition is superseded and the constraint is evaluated from the next applicable transition. Once the corresponding transition of the dependent has occurred, the lag constraint is satisfied for that operating cycle. Each lag is qualified by its corresponding ReferenceValueKind, which specifies whether the lag represents an exact, minimum, or maximum temporal constraint.",
5746        attrs: &[
5747            AttrDef { id: "PeerTemporalDependency.constraintKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "DependencyConstraintKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["AS", "ER", "SIS"], comment: "The kind of temporal or operational constraint defined between the dependee and the dependent. Note: Certain dependency constraint kinds may require or prohibit the use of temporal constraint attributes, depending on the semantics of the specialization." },
5748            AttrDef { id: "PeerTemporalDependency.finishToFinishLag", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS", "ER", "SIS"], comment: "The duration constraining the next finish or deactivation of the dependent relative to the latest applicable finish or deactivation of the dependee." },
5749            AttrDef { id: "PeerTemporalDependency.finishToFinishLagKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "ReferenceValueKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["AS", "ER", "SIS"], comment: "Specifies whether finishToFinishLag is an exact, minimum, or maximum temporal constraint. Note: This attribute shall be specified when finishToFinishLag is provided. Example: finishToFinishLag = 2D1H30M is interpreted together with finishToFinishLagKind: - exact: the dependent finishes exactly 2 days, 1 hour and 30 minutes after the latest applicable finish of the dependee. - minimum: the dependent may finish no earlier than 2 days, 1 hour and 30 minutes after the latest applicable finish of the dependee. - maximum: the dependent shall finish no later than 2 days, 1 hour and 30 minutes after the latest applicable finish of the dependee. In all cases, the dependee finish remains applicable only while the dependee remains in the state resulting from that finish. If the dependee subsequently changes state before the dependent finishes, the applicability of the previous finish is re-evaluated." },
5750            AttrDef { id: "PeerTemporalDependency.finishToStartLag", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS", "ER", "SIS"], comment: "The duration constraining the next start or activation of the dependent relative to the latest applicable finish or deactivation of the dependee." },
5751            AttrDef { id: "PeerTemporalDependency.finishToStartLagKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "ReferenceValueKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["AS", "ER", "SIS"], comment: "Specifies whether finishToStartLag is an exact, minimum, or maximum temporal constraint. Note: This attribute shall be specified when finishToStartLag is provided. Example: finishToStartLag = 20M is interpreted together with finishToStartLagKind: - exact: the dependent starts exactly 20 minutes after the latest applicable finish of the dependee. - minimum: the dependent may start no earlier than 20 minutes after the latest applicable finish of the dependee. - maximum: the dependent shall start no later than 20 minutes after the latest applicable finish of the dependee. In all cases, the dependee finish remains applicable only while the dependee remains in the state resulting from that finish. If the dependee subsequently changes state before the dependent starts, the constraint is evaluated from the next applicable finish of the dependee." },
5752            AttrDef { id: "PeerTemporalDependency.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["AS", "ER", "SIS"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
5753            AttrDef { id: "PeerTemporalDependency.overlap", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS", "ER", "SIS"], comment: "The duration constraining the period for which the dependee and dependent are simultaneously active or effective." },
5754            AttrDef { id: "PeerTemporalDependency.overlapKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "ReferenceValueKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["AS", "ER", "SIS"], comment: "Specifies whether overlap is an exact, minimum, or maximum duration of simultaneous activity or effectiveness. Note: This attribute shall be specified when overlap is provided. Example: overlap = 1H28M45S is interpreted together with overlapKind: - exact: the dependee and dependent are simultaneously active or effective for exactly 1 hour, 28 minutes, and 45 seconds. - minimum: the dependee and dependent shall be simultaneously active or effective for at least 1 hour, 28 minutes, and 45 seconds. - maximum: the dependee and dependent shall be simultaneously active or effective for no more than 1 hour, 28 minutes, and 45 seconds. Unlike the lag attributes, overlap constrains the duration of a simultaneous state rather than the temporal separation between two state transitions." },
5755            AttrDef { id: "PeerTemporalDependency.startToStartLag", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["AS", "ER", "SIS"], comment: "The duration constraining the next start or activation of the dependent relative to the latest applicable start or activation of the dependee." },
5756            AttrDef { id: "PeerTemporalDependency.startToStartLagKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "ReferenceValueKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["AS", "ER", "SIS"], comment: "Specifies whether startToStartLag is an exact, minimum, or maximum temporal constraint. Note: This attribute shall be specified when startToStartLag is provided. Example: startToStartLag = 2H is interpreted together with startToStartLagKind: - exact: the dependent starts exactly 2 hours after the latest applicable start of the dependee. - minimum: the dependent may start no earlier than 2 hours after the latest applicable start of the dependee. - maximum: the dependent shall start no later than 2 hours after the latest applicable start of the dependee. In all cases, the dependee start remains applicable only while the dependee remains in the state resulting from that start. If the dependee subsequently changes state before the dependent starts, the constraint is evaluated from the next applicable start of the dependee." },
5757        ],
5758    },
5759    ClassDef {
5760        ns: "https://cim.ucaiug.io/ns#",
5761        local: "PetersenCoil",
5762        qualified: "nc:PetersenCoil",
5763        super_class: Some(217),
5764        concrete: true,
5765        origins: &["SSI"],
5766        comment: "A variable impedance device normally used to offset line charging during single line faults in an ungrounded section of network.",
5767        attrs: &[],
5768    },
5769    ClassDef {
5770        ns: "https://cim4.eu/ns/nc#",
5771        local: "PhaseControlFunction",
5772        qualified: "nc:PhaseControlFunction",
5773        super_class: Some(109),
5774        concrete: true,
5775        origins: &["ER", "SIS", "SSI"],
5776        comment: "Phase control function is a function block that calculate the operating point of the controlled equipment to achieve the target voltage.",
5777        attrs: &[
5778            AttrDef { id: "PhaseControlFunction.PhaseControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PhaseControlFunctionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule of the control function." },
5779            AttrDef { id: "PhaseControlFunction.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Target value for the phase that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
5780        ],
5781    },
5782    ClassDef {
5783        ns: "https://cim4.eu/ns/nc#",
5784        local: "PhaseControlFunctionSchedule",
5785        qualified: "nc:PhaseControlFunctionSchedule",
5786        super_class: Some(57),
5787        concrete: true,
5788        origins: &["SIS"],
5789        comment: "The schedule for PhaseControlFunction.",
5790        attrs: &[
5791            AttrDef { id: "PhaseControlFunctionSchedule.PhaseControlFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PhaseControlFunction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The control function that has this schedule." },
5792            AttrDef { id: "PhaseControlFunctionSchedule.PhaseControlFunctionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PhaseControlFunctionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point of the schedule." },
5793        ],
5794    },
5795    ClassDef {
5796        ns: "https://cim4.eu/ns/nc#",
5797        local: "PhaseControlFunctionTimePoint",
5798        qualified: "nc:PhaseControlFunctionTimePoint",
5799        super_class: None,
5800        concrete: true,
5801        origins: &["SIS"],
5802        comment: "Phase control function value for a given point in time.",
5803        attrs: &[
5804            AttrDef { id: "PhaseControlFunctionTimePoint.PhaseControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PhaseControlFunctionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule that has this time point." },
5805            AttrDef { id: "PhaseControlFunctionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
5806            AttrDef { id: "PhaseControlFunctionTimePoint.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Target value for the phase that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
5807        ],
5808    },
5809    ClassDef {
5810        ns: "https://cim.ucaiug.io/ns#",
5811        local: "PhotoVoltaicUnit",
5812        qualified: "nc:PhotoVoltaicUnit",
5813        super_class: Some(420),
5814        concrete: true,
5815        origins: &["SSI"],
5816        comment: "A photovoltaic device or an aggregation of such devices.",
5817        attrs: &[],
5818    },
5819    ClassDef {
5820        ns: "https://cim4.eu/ns/nc#",
5821        local: "PinContingency",
5822        qualified: "nc:PinContingency",
5823        super_class: Some(287),
5824        concrete: true,
5825        origins: &["RA", "SSI"],
5826        comment: "Input pin associated with a Contingency. It is used for comparison.",
5827        attrs: &[
5828            AttrDef { id: "PinContingency.Contingency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Contingency", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The Contingency that is used in the input pin." },
5829        ],
5830    },
5831    ClassDef {
5832        ns: "https://cim4.eu/ns/nc#",
5833        local: "PinDCTerminal",
5834        qualified: "nc:PinDCTerminal",
5835        super_class: Some(287),
5836        concrete: true,
5837        origins: &["ER", "RA", "SSI"],
5838        comment: "Input pin associated with a DCTerminal. It is used for comparison.",
5839        attrs: &[
5840            AttrDef { id: "PinDCTerminal.DCTerminal", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCTerminal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER", "RA"], comment: "The DC terminal that has this pin DC terminal." },
5841            AttrDef { id: "PinDCTerminal.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "PinDCTerminalKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["ER", "RA"], comment: "The kind of quantity which is used as an input value." },
5842        ],
5843    },
5844    ClassDef {
5845        ns: "https://cim4.eu/ns/nc#",
5846        local: "PinEquipment",
5847        qualified: "nc:PinEquipment",
5848        super_class: Some(287),
5849        concrete: true,
5850        origins: &["RA", "SSI"],
5851        comment: "Input pin associated with an Equipment. It is used for the comparison.",
5852        attrs: &[
5853            AttrDef { id: "PinEquipment.Equipment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Equipment", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The Equipment that is used in the input pin." },
5854            AttrDef { id: "PinEquipment.PropertyReference", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PropertyReference", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The property reference for this pin equipment." },
5855        ],
5856    },
5857    ClassDef {
5858        ns: "https://cim4.eu/ns/nc#",
5859        local: "PinEquipmentTripping",
5860        qualified: "nc:PinEquipmentTripping",
5861        super_class: Some(287),
5862        concrete: true,
5863        origins: &["RA", "SSI"],
5864        comment: "Input pin associated with an Equipment. It is used to determine if the equipment is tripped between two consecutive stages, i.e. the equipment is in service at pre-fault stage and it is out of service at post-fault stage.",
5865        attrs: &[
5866            AttrDef { id: "PinEquipmentTripping.Equipment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Equipment", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "Equipment that is tripped." },
5867        ],
5868    },
5869    ClassDef {
5870        ns: "https://cim4.eu/ns/nc#",
5871        local: "PinGate",
5872        qualified: "nc:PinGate",
5873        super_class: Some(287),
5874        concrete: true,
5875        origins: &["RA", "SSI"],
5876        comment: "An output from one gate represents an input to another gate.",
5877        attrs: &[
5878            AttrDef { id: "PinGate.GateOutput", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Gate", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The output of the gate." },
5879        ],
5880    },
5881    ClassDef {
5882        ns: "https://cim4.eu/ns/nc#",
5883        local: "PinMeasurement",
5884        qualified: "nc:PinMeasurement",
5885        super_class: Some(287),
5886        concrete: true,
5887        origins: &["RA", "SSI"],
5888        comment: "Input pin associated with a Measurement. It is used for comparison.",
5889        attrs: &[
5890            AttrDef { id: "PinMeasurement.Measurement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Measurement", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The Measurement that is used in the input pin." },
5891            AttrDef { id: "PinMeasurement.MeasurementCalculator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "MeasurementCalculator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The result of the calculation used as input to a gate." },
5892        ],
5893    },
5894    ClassDef {
5895        ns: "https://cim4.eu/ns/nc#",
5896        local: "PinOperationalLimit",
5897        qualified: "nc:PinOperationalLimit",
5898        super_class: Some(287),
5899        concrete: true,
5900        origins: &["RA", "SSI"],
5901        comment: "Input pin associated with the limits of a Terminal. It is used for comparison.",
5902        attrs: &[
5903            AttrDef { id: "PinOperationalLimit.OperationalLimit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OperationalLimit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The operational limit that is used in the input pin." },
5904        ],
5905    },
5906    ClassDef {
5907        ns: "https://cim4.eu/ns/nc#",
5908        local: "PinPowerTransferCorridor",
5909        qualified: "nc:PinPowerTransferCorridor",
5910        super_class: Some(287),
5911        concrete: true,
5912        origins: &["RA", "SSI"],
5913        comment: "Input pin associated with a PowerTransferCorridor. It is used for comparison.",
5914        attrs: &[
5915            AttrDef { id: "PinPowerTransferCorridor.PowerTransferCorridor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerTransferCorridor", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The PowerTransferCorridor that is used in the input pin." },
5916            AttrDef { id: "PinPowerTransferCorridor.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "PinPowerTransferCorridorKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["RA"], comment: "The kind of quantity which is used as an input value." },
5917        ],
5918    },
5919    ClassDef {
5920        ns: "https://cim4.eu/ns/nc#",
5921        local: "PinTerminal",
5922        qualified: "nc:PinTerminal",
5923        super_class: Some(287),
5924        concrete: true,
5925        origins: &["ER", "RA", "SSI"],
5926        comment: "Input pin associated with a Terminal. It is used for comparison.",
5927        attrs: &[
5928            AttrDef { id: "PinTerminal.Terminal", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Terminal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER", "RA"], comment: "The Terminal that is used in the input pin." },
5929            AttrDef { id: "PinTerminal.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "PinTerminalKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["ER", "RA"], comment: "The kind of quantity which is used as an input value." },
5930        ],
5931    },
5932    ClassDef {
5933        ns: "https://cim4.eu/ns/nc#",
5934        local: "PointOfCommonCoupling",
5935        qualified: "nc:PointOfCommonCoupling",
5936        super_class: Some(87),
5937        concrete: true,
5938        origins: &["ER"],
5939        comment: "A PointOfCommonCoupling (PCC) is a CommonResponsibilityPoint that identifies the electrical location in a power system where voltage and current are considered common for the purpose of analysing, controlling, and coordinating the interaction between connected parts of the system. The PCC serves as the reference location at which electrical characteristics and operational conditions—such as voltage quality, harmonic distortion, fault levels, power flow behaviour, and grid-code compliance—are defined, evaluated, or enforced. Note: Operational requirements associated with the PCC are typically achieved through coordinated control of equipment located on both sides of the point. These controls operate with a common reference objective for the electrical conditions at the PCC. A PCC may simultaneously serve multiple governance roles. In the CIM model, the same physical location in the network may therefore be represented by multiple specialised CommonResponsibilityPoint instances, such as: - GridConnectionPoint - EnergyExchangePoint - BoundaryPoint Each of these represents a different responsibility or agreement applied to the same electrical reference location.",
5940        attrs: &[
5941            AttrDef { id: "PointOfCommonCoupling.DCConverterUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCConverterUnit", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The DCConverterUnit whose electrical interaction with the network is referenced at this PointOfCommonCoupling." },
5942        ],
5943    },
5944    ClassDef {
5945        ns: "https://cim.ucaiug.io/ns#",
5946        local: "PositionPoint",
5947        qualified: "nc:PositionPoint",
5948        super_class: None,
5949        concrete: true,
5950        origins: &["GD"],
5951        comment: "Set of spatial coordinates that determine a point, defined in the coordinate system specified in 'Location.CoordinateSystem'. Use a single position point instance to describe a point-oriented location. Use a sequence of position points to describe a line-oriented object (physical location of non-point oriented objects like cables or lines), or area of an object (like a substation or a geographical zone - in this case, have first and last position point with the same values).",
5952        attrs: &[
5953            AttrDef { id: "PositionPoint.Location", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "Location", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GD"], comment: "Location described by this position point." },
5954            AttrDef { id: "PositionPoint.xPosition", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GD"], comment: "X axis position." },
5955            AttrDef { id: "PositionPoint.yPosition", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GD"], comment: "Y axis position." },
5956            AttrDef { id: "PositionPoint.zPosition", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GD"], comment: "(if applicable) Z axis position." },
5957        ],
5958    },
5959    ClassDef {
5960        ns: "https://cim.ucaiug.io/ns#",
5961        local: "PostLineSensor",
5962        qualified: "nc:PostLineSensor",
5963        super_class: Some(504),
5964        concrete: true,
5965        origins: &["SSI"],
5966        comment: "A sensor used mainly in overhead distribution networks as the source of both current and voltage measurements.",
5967        attrs: &[],
5968    },
5969    ClassDef {
5970        ns: "https://cim.ucaiug.io/ns#",
5971        local: "PotentialTransformer",
5972        qualified: "nc:PotentialTransformer",
5973        super_class: Some(504),
5974        concrete: true,
5975        origins: &["SSI"],
5976        comment: "Instrument transformer (also known as Voltage Transformer) used to measure electrical qualities of the circuit that is being protected and/or monitored. Typically used as voltage transducer for the purpose of metering, protection, or sometimes auxiliary substation supply. A typical secondary voltage rating would be 120V.",
5977        attrs: &[],
5978    },
5979    ClassDef {
5980        ns: "https://cim4.eu/ns/nc#",
5981        local: "PowerBidDependency",
5982        qualified: "nc:PowerBidDependency",
5983        super_class: Some(393),
5984        concrete: true,
5985        origins: &["SIS"],
5986        comment: "A peer temporal dependency that defines temporal or operational constraints between two power bid schedules. Note: The dependency constrains activation or deactivation of the dependent power bid schedule relative to activation or deactivation of the dependee power bid schedule. Lag constraints are evaluated from the latest applicable activation or deactivation of the dependee. A subsequent state change of the dependee supersedes the previous reference transition if the corresponding transition of the dependent has not yet occurred. Example: - startToStartLag = 15M, startToStartLagKind = exact: the dependent bid is activated exactly 15 minutes after activation of the dependee bid, provided the dependee has not subsequently changed state. - finishToStartLag = 30M, finishToStartLagKind = minimum: the dependent bid may be activated no earlier than 30 minutes after deactivation of the dependee bid. - finishToFinishLag = 15M, finishToFinishLagKind = maximum: the dependent bid shall be deactivated no later than 15 minutes after deactivation of the dependee bid.",
5987        attrs: &[
5988            AttrDef { id: "PowerBidDependency.DependeePowerBidSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerBidSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The power bid schedule upon which the dependent power bid schedule depends." },
5989            AttrDef { id: "PowerBidDependency.DependentPowerBidSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerBidSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The power bid schedule whose activation, deactivation, or execution is constrained by the dependee power bid schedule." },
5990        ],
5991    },
5992    ClassDef {
5993        ns: "https://cim4.eu/ns/nc#",
5994        local: "PowerBidSchedule",
5995        qualified: "nc:PowerBidSchedule",
5996        super_class: Some(57),
5997        concrete: true,
5998        origins: &["SIS", "RAS"],
5999        comment: "Power bid or offer related to a redispatch or countertrading measures. In the case of market place for economic efficiency of the bids and offers, this is equivalent to BidTimeSeries class in 62325 package.",
6000        attrs: &[
6001            AttrDef { id: "PowerBidSchedule.DependencyAsDependee", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerBidDependency", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The power bid dependency in which this power bid schedule is the dependee." },
6002            AttrDef { id: "PowerBidSchedule.DependencyAsDependent", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerBidDependency", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The power bid dependency in which this power bid schedule is the dependent." },
6003            AttrDef { id: "PowerBidSchedule.PowerBidScheduleTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerBidScheduleTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Power bid schedule time points which belong to a power bid schedule." },
6004            AttrDef { id: "PowerBidSchedule.PowerRemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerRemedialAction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Power remedial action for which the bid is given." },
6005            AttrDef { id: "PowerBidSchedule.PowerSchedulelAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerScheduleAction", is_list: false, used: false, xsd: "", value_ns: "", origins: &["RAS"], comment: "The power schedule action pointed by the power bid schedule." },
6006            AttrDef { id: "PowerBidSchedule.PowerShiftKeyDistribution", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerShiftKeyDistribution", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Distribution of the power bid amongst the power shift keys." },
6007            AttrDef { id: "PowerBidSchedule.ScheduleResource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ScheduleResource", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Schedule resource which has several power bid schedules." },
6008            AttrDef { id: "PowerBidSchedule.activationCost", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Cost to activate the bid." },
6009            AttrDef { id: "PowerBidSchedule.currency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "Currency", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["SIS"], comment: "Currency of the bid." },
6010            AttrDef { id: "PowerBidSchedule.direction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "MarketRegulationDirectionKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["SIS"], comment: "Define the direction of the energy adjustment." },
6011            AttrDef { id: "PowerBidSchedule.isFixed", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SIS"], comment: "Indicates if the power bid schedule is fixed, meaning that all the different power bid schedule values need to be taken without changes. e.g. It is a take-it-or-leave-it bid offer." },
6012            AttrDef { id: "PowerBidSchedule.isOffer", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SIS"], comment: "Indicates if the power bid is an offer or not. True, means that the bid is an offer. False, means that the bid is not an offer." },
6013            AttrDef { id: "PowerBidSchedule.leadTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Time it takes for the bid to be called upon until it is active." },
6014            AttrDef { id: "PowerBidSchedule.maxRampDownP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Maximum decrease of the active power change from one time point to the next." },
6015            AttrDef { id: "PowerBidSchedule.maxRampUpP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Maximum increase of the active power change from one time point to the next." },
6016            AttrDef { id: "PowerBidSchedule.maximumUptime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Maximum duration the action needs to be remain active after startup." },
6017            AttrDef { id: "PowerBidSchedule.minimumOffTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Minimum time interval between activation of the bid involving startup and shutdown. This value overrides any value on the unit." },
6018            AttrDef { id: "PowerBidSchedule.minimumUptime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Minimum duration the action needs to be remain active after startup." },
6019            AttrDef { id: "PowerBidSchedule.priority", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["SIS"], comment: "The numeric local priority given to a bid. Lower numeric values will have higher priority." },
6020            AttrDef { id: "PowerBidSchedule.shutdownCost", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Total shutdown cost incurred for all the units involved in the bid. This overrides any cost on the specific unit." },
6021            AttrDef { id: "PowerBidSchedule.totalMaximumEnergy", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Maximum total energy that can be activated by the bid." },
6022            AttrDef { id: "PowerBidSchedule.totalMinimumEnergy", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Minimum total energy that has to be activated by the bid." },
6023        ],
6024    },
6025    ClassDef {
6026        ns: "https://cim4.eu/ns/nc#",
6027        local: "PowerBidScheduleTimePoint",
6028        qualified: "nc:PowerBidScheduleTimePoint",
6029        super_class: None,
6030        concrete: true,
6031        origins: &["SIS"],
6032        comment: "Time series represent irregular values at given points in time.",
6033        attrs: &[
6034            AttrDef { id: "PowerBidScheduleTimePoint.PowerBidSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerBidSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Power bid schedule that has many power bid schedule time points." },
6035            AttrDef { id: "PowerBidScheduleTimePoint.activationCost", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Cost to activate the bid in the given time point." },
6036            AttrDef { id: "PowerBidScheduleTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
6037            AttrDef { id: "PowerBidScheduleTimePoint.minimumActivationP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Minimum active power given in the time point." },
6038            AttrDef { id: "PowerBidScheduleTimePoint.p", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Active power injection. Load sign convention is used, i.e. positive sign means flow out from a node." },
6039            AttrDef { id: "PowerBidScheduleTimePoint.price", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Price given in the time point." },
6040            AttrDef { id: "PowerBidScheduleTimePoint.reservePrice", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Price for reserving the step increment active power." },
6041            AttrDef { id: "PowerBidScheduleTimePoint.shutdownCost", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Total shutdown cost incurred for all the units involved in the bid given in the time point. This overrides any cost on the specific unit." },
6042            AttrDef { id: "PowerBidScheduleTimePoint.stepIncrementP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The minimum increment that can be applied for an increase in an activation request." },
6043        ],
6044    },
6045    ClassDef {
6046        ns: "https://cim4.eu/ns/nc#",
6047        local: "PowerElectricalChemicalUnit",
6048        qualified: "nc:PowerElectricalChemicalUnit",
6049        super_class: Some(420),
6050        concrete: true,
6051        origins: &["ER", "SSI"],
6052        comment: "A unit capable of either generating electrical energy from chemical reactions or using electrical energy to cause chemical reactions.",
6053        attrs: &[
6054            AttrDef { id: "PowerElectricalChemicalUnit.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "PowerElectricalChemicalUnitKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["ER"], comment: "Kind of power electrical chemical unit." },
6055        ],
6056    },
6057    ClassDef {
6058        ns: "https://cim.ucaiug.io/ns#",
6059        local: "PowerElectronicsConnection",
6060        qualified: "nc:PowerElectronicsConnection",
6061        super_class: Some(460),
6062        concrete: true,
6063        origins: &["SSI", "RA"],
6064        comment: "A connection to the AC network for energy production or consumption that uses power electronics rather than rotating machines.",
6065        attrs: &[
6066            AttrDef { id: "PowerElectronicsConnection.PowerElectronicsConnectionAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerElectronicsConnectionAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The action that is applied to a PowerElectronicsConnection." },
6067        ],
6068    },
6069    ClassDef {
6070        ns: "https://cim4.eu/ns/nc#",
6071        local: "PowerElectronicsConnectionAction",
6072        qualified: "nc:PowerElectronicsConnectionAction",
6073        super_class: Some(507),
6074        concrete: true,
6075        origins: &["RA", "SSI"],
6076        comment: "Power electronics setpoint action.",
6077        attrs: &[
6078            AttrDef { id: "PowerElectronicsConnectionAction.PowerElectronicsConnection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerElectronicsConnection", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The PowerElectronicsConnection that is applied to an action." },
6079        ],
6080    },
6081    ClassDef {
6082        ns: "https://cim4.eu/ns/nc#",
6083        local: "PowerElectronicsConnectionController",
6084        qualified: "nc:PowerElectronicsConnectionController",
6085        super_class: Some(243),
6086        concrete: true,
6087        origins: &["ER"],
6088        comment: "Power electronics connection controller is controlling the equipment to optimize the power electronics connection.",
6089        attrs: &[
6090            AttrDef { id: "PowerElectronicsConnectionController.PowerElectronicsUnitController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerElectronicsUnitController", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Power electronics unit controller that has this power electronics connection controller." },
6091        ],
6092    },
6093    ClassDef {
6094        ns: "https://cim4.eu/ns/nc#",
6095        local: "PowerElectronicsMarineUnit",
6096        qualified: "nc:PowerElectronicsMarineUnit",
6097        super_class: Some(420),
6098        concrete: true,
6099        origins: &["ER", "SSI"],
6100        comment: "A unit that capture energy from marine sources, e.g. waves, for generating electrical power.",
6101        attrs: &[
6102            AttrDef { id: "PowerElectronicsMarineUnit.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "MarineUnitKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["ER"], comment: "Kind of marine unit." },
6103        ],
6104    },
6105    ClassDef {
6106        ns: "https://cim.ucaiug.io/ns#",
6107        local: "PowerElectronicsUnit",
6108        qualified: "nc:PowerElectronicsUnit",
6109        super_class: Some(241),
6110        concrete: true,
6111        origins: &["ER", "PS", "SIS", "SSI"],
6112        comment: "A generating unit or battery or aggregation that connects to the AC network using power electronics rather than rotating machines.",
6113        attrs: &[
6114            AttrDef { id: "PowerElectronicsUnit.AreaReserveResource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AreaReserveResource", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Area reserve resources representing the balancing reserve products provided by the power electronics unit." },
6115            AttrDef { id: "PowerElectronicsUnit.EnergyComponent", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyComponent", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The energy component that has this power electronics unit." },
6116            AttrDef { id: "PowerElectronicsUnit.PowerElectronicsUnitController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerElectronicsUnitController", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Power electronics unit controller for this power electronics unit." },
6117            AttrDef { id: "PowerElectronicsUnit.PowerSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PS"], comment: "Power schedule which has power electronics unit." },
6118            AttrDef { id: "PowerElectronicsUnit.PowerShiftKeySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerShiftKeySchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The Power Shift Key schedule for a Power Electronics Unit." },
6119            AttrDef { id: "PowerElectronicsUnit.ScheduleResource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ScheduleResource", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The schedule resource that has this power electronics unit." },
6120            AttrDef { id: "PowerElectronicsUnit.maxEconomicP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Maximum high economic active power limit, that should not exceed the maximum operating active power limit." },
6121            AttrDef { id: "PowerElectronicsUnit.minEconomicP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Low economic active power limit that shall be greater than or equal to the minimum operating active power limit." },
6122            AttrDef { id: "PowerElectronicsUnit.normalParticipationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). In the case of priority strategy, the item with the lowest number gets allocated energy first." },
6123            AttrDef { id: "PowerElectronicsUnit.p", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Active power injection. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for a steady state solution." },
6124            AttrDef { id: "PowerElectronicsUnit.participationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). In the case of priority strategy, the item with the lowest number gets allocated energy first." },
6125        ],
6126    },
6127    ClassDef {
6128        ns: "https://cim4.eu/ns/nc#",
6129        local: "PowerElectronicsUnitController",
6130        qualified: "nc:PowerElectronicsUnitController",
6131        super_class: Some(243),
6132        concrete: true,
6133        origins: &["ER"],
6134        comment: "Power electronics unit controller is controlling the equipment to optimize the power electronics unit.",
6135        attrs: &[
6136            AttrDef { id: "PowerElectronicsUnitController.PowerElectronicsConnectionController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerElectronicsConnectionController", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Power electronics connection controller for the power electronics unit controller." },
6137            AttrDef { id: "PowerElectronicsUnitController.PowerElectronicsUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerElectronicsUnit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Power electronics unit that has this power electronics unit controller." },
6138        ],
6139    },
6140    ClassDef {
6141        ns: "https://cim.ucaiug.io/ns#",
6142        local: "PowerElectronicsWindUnit",
6143        qualified: "nc:PowerElectronicsWindUnit",
6144        super_class: Some(420),
6145        concrete: true,
6146        origins: &["SSI"],
6147        comment: "A wind generating unit that connects to the AC network with power electronics rather than rotating machines or an aggregation of such units.",
6148        attrs: &[],
6149    },
6150    ClassDef {
6151        ns: "https://cim4.eu/ns/nc#",
6152        local: "PowerFactorControlFunction",
6153        qualified: "nc:PowerFactorControlFunction",
6154        super_class: Some(109),
6155        concrete: true,
6156        origins: &["ER", "SIS", "SSI"],
6157        comment: "Power factor control function is a function block that calculates the operating point of the controlled equipment to achieve the target power factor.",
6158        attrs: &[
6159            AttrDef { id: "PowerFactorControlFunction.PowerFactorControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerFactorControlFunctionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule of the control function." },
6160            AttrDef { id: "PowerFactorControlFunction.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Target power-factor value that the control function aims to achieve by adjusting the operating setpoint of the controlled equipment. A positive value represents capacitive operation, while a negative value represents inductive operation." },
6161        ],
6162    },
6163    ClassDef {
6164        ns: "https://cim4.eu/ns/nc#",
6165        local: "PowerFactorControlFunctionSchedule",
6166        qualified: "nc:PowerFactorControlFunctionSchedule",
6167        super_class: Some(57),
6168        concrete: true,
6169        origins: &["SIS"],
6170        comment: "the schedule for PowerFactorControlFunction.",
6171        attrs: &[
6172            AttrDef { id: "PowerFactorControlFunctionSchedule.PowerFactorControlFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerFactorControlFunction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The control function that has this schedule." },
6173            AttrDef { id: "PowerFactorControlFunctionSchedule.PowerFactorControlFunctionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerFactorControlFunctionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point of the schedule." },
6174        ],
6175    },
6176    ClassDef {
6177        ns: "https://cim4.eu/ns/nc#",
6178        local: "PowerFactorControlFunctionTimePoint",
6179        qualified: "nc:PowerFactorControlFunctionTimePoint",
6180        super_class: None,
6181        concrete: true,
6182        origins: &["SIS"],
6183        comment: "Power factor control function value for a given point in time.",
6184        attrs: &[
6185            AttrDef { id: "PowerFactorControlFunctionTimePoint.PowerFactorControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerFactorControlFunctionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule that has this time point." },
6186            AttrDef { id: "PowerFactorControlFunctionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
6187            AttrDef { id: "PowerFactorControlFunctionTimePoint.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Target value for the power factor that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
6188        ],
6189    },
6190    ClassDef {
6191        ns: "https://cim4.eu/ns/nc#",
6192        local: "PowerFlowResult",
6193        qualified: "nc:PowerFlowResult",
6194        super_class: None,
6195        concrete: false,
6196        origins: &["SAR"],
6197        comment: "Power flow result including any operational limit violation.",
6198        attrs: &[
6199            AttrDef { id: "PowerFlowResult.ACDCTerminal", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ACDCTerminal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SAR"], comment: "ACDC terminal where the powerflow result is located." },
6200            AttrDef { id: "PowerFlowResult.OperationalLimit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OperationalLimit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SAR"], comment: "The operational limit that has this limit violation." },
6201            AttrDef { id: "PowerFlowResult.PowerTransferCorridor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerTransferCorridor", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SAR"], comment: "Power transfer corridor that has this power flow result." },
6202            AttrDef { id: "PowerFlowResult.RemedialActionApplied", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionApplied", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SAR"], comment: "Remedial action that is applied when the power flow result is calculated." },
6203            AttrDef { id: "PowerFlowResult.ReportedByRegion", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Region", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SAR"], comment: "The region which reports this limit violation." },
6204            AttrDef { id: "PowerFlowResult.TopologicalNode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TopologicalNode", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SAR"], comment: "TopologicalNode that has this power flow result." },
6205            AttrDef { id: "PowerFlowResult.absoluteValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SAR"], comment: "Absolute value from a power flow calculation on a given terminal related to a given operational limit. For instance, if the operational limit is 1000 A and the current flow is 1100 A the absoluteValue is reported as 1100 A." },
6206            AttrDef { id: "PowerFlowResult.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SAR"], comment: "The date and time of the scenario time that was studied and at which the limit violation occurred." },
6207            AttrDef { id: "PowerFlowResult.isViolation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SAR"], comment: "True if the power flow result is violating the associated operational limit. False if it is not violating the associated operational limits." },
6208            AttrDef { id: "PowerFlowResult.value", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SAR"], comment: "The value of the limit violation in percent related to the value of the operational limit that is violated. For instance, if the operational limit is 1000 A and the current flow is 1100 A the value is reported as 110 %." },
6209            AttrDef { id: "PowerFlowResult.valueA", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SAR"], comment: "Current from a power flow calculation on a given terminal. The value shall be a positive value or zero." },
6210            AttrDef { id: "PowerFlowResult.valueAngle", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SAR"], comment: "Voltage angle value from a power flow calculation on a given terminal." },
6211            AttrDef { id: "PowerFlowResult.valueV", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SAR"], comment: "Voltage value from a power flow calculation on a given terminal. The attribute shall be a positive value." },
6212            AttrDef { id: "PowerFlowResult.valueVA", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ApparentPower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SAR"], comment: "Apparent power value from a power flow calculation on a given terminal." },
6213            AttrDef { id: "PowerFlowResult.valueVAR", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SAR"], comment: "Reactive power value from a power flow calculation on a given terminal. Load sign convention is used, i.e. positive sign means flow out from a TopologicalNode (bus) into the conducting equipment." },
6214            AttrDef { id: "PowerFlowResult.valueW", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SAR"], comment: "Active power value from a power flow calculation on a given terminal. Load sign convention is used, i.e. positive sign means flow out from a TopologicalNode (bus) into the conducting equipment." },
6215        ],
6216    },
6217    ClassDef {
6218        ns: "https://cim4.eu/ns/nc#",
6219        local: "PowerFrequencyController",
6220        qualified: "nc:PowerFrequencyController",
6221        super_class: Some(543),
6222        concrete: true,
6223        origins: &["ER"],
6224        comment: "Power frequency controller is controlling the active power balance as typically done by the secondary control. If an unbalance between the scheduled active power values of each generation unit and the loads plus losses occurs, primary control will adapt (increase/decrease) the active power production of each unit (depending on the power shift key strategy), leading to an over- or under-frequency situation. The secondary frequency controller will then control the frequency back to its nominal value, re- establishing a cost-efficient generation delivered by each unit.",
6225        attrs: &[
6226            AttrDef { id: "PowerFrequencyController.ControlArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ControlArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Control area which has a power frequency controller." },
6227            AttrDef { id: "PowerFrequencyController.FrequencyMonitoringTerminal", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FrequencyMonitoringTerminal", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Frequency monitoring terminal for this power frequency controller." },
6228            AttrDef { id: "PowerFrequencyController.MonitoringArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "MonitoringArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Monitoring area that has this power frequency controller." },
6229            AttrDef { id: "PowerFrequencyController.PowerShiftKeyStrategy", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerShiftKeyStrategy", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Power shift key strategy for this power frequency controller." },
6230            AttrDef { id: "PowerFrequencyController.mode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "PowerFrequencyControlKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["ER"], comment: "Mode of the power frequency controller." },
6231        ],
6232    },
6233    ClassDef {
6234        ns: "https://cim4.eu/ns/nc#",
6235        local: "PowerPlant",
6236        qualified: "nc:PowerPlant",
6237        super_class: Some(440),
6238        concrete: false,
6239        origins: &["ER"],
6240        comment: "A functional aggregation of one or more generating units and associated equipment that is coordinated to produce, consume or exchange active power with the power system.",
6241        attrs: &[
6242            AttrDef { id: "PowerPlant.deadbandMaxP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The upper active-power boundaries of the range around zero in which continuous power-plant operation is not supported." },
6243            AttrDef { id: "PowerPlant.deadbandMinP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The lower active-power boundaries of the range around zero in which continuous power-plant operation is not supported." },
6244            AttrDef { id: "PowerPlant.maxOperatingP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The maximum net active power at which the power plant is designed to operate." },
6245            AttrDef { id: "PowerPlant.minOperatingP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The minimum signed net active power at which the power plant is designed to operate." },
6246            AttrDef { id: "PowerPlant.nominalP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The reference active power capacity of the power plant." },
6247        ],
6248    },
6249    ClassDef {
6250        ns: "https://cim4.eu/ns/nc#",
6251        local: "PowerPlantController",
6252        qualified: "nc:PowerPlantController",
6253        super_class: Some(243),
6254        concrete: true,
6255        origins: &["ER"],
6256        comment: "Power plant controller is controlling the equipment of a power plant.",
6257        attrs: &[],
6258    },
6259    ClassDef {
6260        ns: "https://cim4.eu/ns/nc#",
6261        local: "PowerRemedialAction",
6262        qualified: "nc:PowerRemedialAction",
6263        super_class: Some(466),
6264        concrete: false,
6265        origins: &["PS", "RA", "SIS", "SSI"],
6266        comment: "Energy remedial action describes actions to rearrange power schedules.",
6267        attrs: &[
6268            AttrDef { id: "PowerRemedialAction.BiddingZone", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BiddingZone", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The Bidding Zone where the power remedial action is done." },
6269            AttrDef { id: "PowerRemedialAction.BiddingZoneBorder", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BiddingZoneBorder", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "Bidding zone border where the power remedial action is done." },
6270            AttrDef { id: "PowerRemedialAction.PowerBidSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerBidSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Power bid schedule addressing the power remedial action." },
6271            AttrDef { id: "PowerRemedialAction.PowerRemedialActionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerRemedialActionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Power remedial action schedule which has a power remedial action." },
6272            AttrDef { id: "PowerRemedialAction.PowerSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PS"], comment: "Power schedule which contains the power remedial action." },
6273            AttrDef { id: "PowerRemedialAction.PowerShiftKeyStrategy", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerShiftKeyStrategy", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "Power Shift Key Strategy which applies to this power remedial action." },
6274            AttrDef { id: "PowerRemedialAction.maxRegulatingDown", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Maximum net amount of active power that the remedial action can regulate down." },
6275            AttrDef { id: "PowerRemedialAction.maxRegulatingUp", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Maximum net amount of active power that the remedial action can regulate up." },
6276        ],
6277    },
6278    ClassDef {
6279        ns: "https://cim4.eu/ns/nc#",
6280        local: "PowerRemedialActionSchedule",
6281        qualified: "nc:PowerRemedialActionSchedule",
6282        super_class: Some(57),
6283        concrete: true,
6284        origins: &["SIS"],
6285        comment: "The schedule for a power remedial action.",
6286        attrs: &[
6287            AttrDef { id: "PowerRemedialActionSchedule.PowerRemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerRemedialAction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Power remedial action for the power remedial action schedule." },
6288            AttrDef { id: "PowerRemedialActionSchedule.PowerRemedialActionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerRemedialActionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point that relates to this power remedial action schedule." },
6289        ],
6290    },
6291    ClassDef {
6292        ns: "https://cim4.eu/ns/nc#",
6293        local: "PowerRemedialActionTimePoint",
6294        qualified: "nc:PowerRemedialActionTimePoint",
6295        super_class: None,
6296        concrete: true,
6297        origins: &["SIS"],
6298        comment: "Regulating values at a given point in time.",
6299        attrs: &[
6300            AttrDef { id: "PowerRemedialActionTimePoint.PowerRemedialActionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerRemedialActionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The power remedial action schedule that has this time point." },
6301            AttrDef { id: "PowerRemedialActionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
6302            AttrDef { id: "PowerRemedialActionTimePoint.maxRegulatingDown", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Maximum net amount of active power that the remedial action can regulate down." },
6303            AttrDef { id: "PowerRemedialActionTimePoint.maxRegulatingUp", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Maximum net amount of active power that the remedial action can regulate up." },
6304        ],
6305    },
6306    ClassDef {
6307        ns: "https://cim4.eu/ns/nc#",
6308        local: "PowerSchedule",
6309        qualified: "nc:PowerSchedule",
6310        super_class: Some(57),
6311        concrete: true,
6312        origins: &["PS", "RAS"],
6313        comment: "Time series represent irregular power, active and reactive, values at given points in time.",
6314        attrs: &[
6315            AttrDef { id: "PowerSchedule.AreaReserveResource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AreaReserveResource", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PS"], comment: "Area disptachable unit which belongs to the power schedule." },
6316            AttrDef { id: "PowerSchedule.BiddingZone", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BiddingZone", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PS"], comment: "Bidding zone which has power schedules." },
6317            AttrDef { id: "PowerSchedule.BiddingZoneBorder", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BiddingZoneBorder", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PS"], comment: "Bidding zone border which belongs to the power schedule." },
6318            AttrDef { id: "PowerSchedule.DCPole", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCPole", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PS"], comment: "DC pole which belongs to the power schedule." },
6319            AttrDef { id: "PowerSchedule.DCTieCorridorTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCTieCorridorDirectionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PS"], comment: "The DC tie corridor time point for the power schedule." },
6320            AttrDef { id: "PowerSchedule.EnergyConnection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyConnection", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PS"], comment: "The energy connection that has a power schedule." },
6321            AttrDef { id: "PowerSchedule.EnergyGroup", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyResourceGroupCapacity", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PS"], comment: "Energy group which belongs to a power schedule." },
6322            AttrDef { id: "PowerSchedule.EquivalentInjection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquivalentInjection", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PS"], comment: "Equivalent injection which belongs to the power schedule." },
6323            AttrDef { id: "PowerSchedule.GeneratingUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GeneratingUnit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PS"], comment: "Generating unit which belongs to the power schedule." },
6324            AttrDef { id: "PowerSchedule.HydroPump", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "HydroPump", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PS"], comment: "Hydro pump which belongs to the power schedule." },
6325            AttrDef { id: "PowerSchedule.PowerElectronicsUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerElectronicsUnit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PS"], comment: "Power electronics unit which belongs to the power schedule." },
6326            AttrDef { id: "PowerSchedule.PowerRemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerRemedialAction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PS"], comment: "Power remedial action which belongs to the Remedial Action Schedule." },
6327            AttrDef { id: "PowerSchedule.PowerScheduleAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerScheduleAction", is_list: false, used: false, xsd: "", value_ns: "", origins: &["RAS"], comment: "Power schedule action which belongs to the power schedule." },
6328            AttrDef { id: "PowerSchedule.PowerTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PS", "RAS"], comment: "Value for the point in time." },
6329            AttrDef { id: "PowerSchedule.SchedulingArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchedulingArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PS"], comment: "Scheduling area which has power schedules." },
6330            AttrDef { id: "PowerSchedule.currency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "Currency", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["PS", "RAS"], comment: "Currency the energy price is given in." },
6331            AttrDef { id: "PowerSchedule.direction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "RelativeDirectionKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["PS"], comment: "Kind of direction." },
6332            AttrDef { id: "PowerSchedule.powerScheduleKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "PowerScheduleKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["PS"], comment: "Kind of power schedule." },
6333        ],
6334    },
6335    ClassDef {
6336        ns: "https://cim4.eu/ns/nc#",
6337        local: "PowerScheduleAction",
6338        qualified: "nc:PowerScheduleAction",
6339        super_class: Some(318),
6340        concrete: false,
6341        origins: &["RAS"],
6342        comment: "Power schedule action is an action to rearrange power schedules.",
6343        attrs: &[
6344            AttrDef { id: "PowerScheduleAction.PowerBidSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerBidSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "The power bid schedule which contains the power schedule action." },
6345            AttrDef { id: "PowerScheduleAction.PowerSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "Power schedule which contains the power schedule action." },
6346            AttrDef { id: "PowerScheduleAction.RemedialActionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "Remedial action schedule which power schedule actions." },
6347            AttrDef { id: "PowerScheduleAction.currency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "Currency", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["RAS"], comment: "Currency the energy price is given in." },
6348            AttrDef { id: "PowerScheduleAction.energyPrice", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "Energy price for the power schedule action." },
6349        ],
6350    },
6351    ClassDef {
6352        ns: "https://cim4.eu/ns/nc#",
6353        local: "PowerShiftKeyDistribution",
6354        qualified: "nc:PowerShiftKeyDistribution",
6355        super_class: Some(318),
6356        concrete: true,
6357        origins: &["SIS"],
6358        comment: "Distribution of the bid action on the power shift keys.",
6359        attrs: &[
6360            AttrDef { id: "PowerShiftKeyDistribution.PowerBidSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerBidSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Power bid schedule for the given distribution." },
6361            AttrDef { id: "PowerShiftKeyDistribution.PowerShiftKeySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerShiftKeySchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Power Shift Key schedule in power shift key distribution." },
6362            AttrDef { id: "PowerShiftKeyDistribution.PowerShiftKeyStrategy", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerShiftKeyStrategy", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Power Shift Key Strategy which has a Power Shift Key Distribution." },
6363        ],
6364    },
6365    ClassDef {
6366        ns: "https://cim4.eu/ns/nc#",
6367        local: "PowerShiftKeySchedule",
6368        qualified: "nc:PowerShiftKeySchedule",
6369        super_class: Some(57),
6370        concrete: true,
6371        origins: &["SIS"],
6372        comment: "The schedule for Power Shift Keys.",
6373        attrs: &[
6374            AttrDef { id: "PowerShiftKeySchedule.DCEquivalentInjection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCEquivalentInjection", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "DC equivalent injection that has this power shift key schedule." },
6375            AttrDef { id: "PowerShiftKeySchedule.DCPole", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCPole", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "A DC Pole which has a Power Shift Key Schedule." },
6376            AttrDef { id: "PowerShiftKeySchedule.EnergyBlockOrder", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyBlockOrder", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "An energy block order which has a Power Shift Key Schedule." },
6377            AttrDef { id: "PowerShiftKeySchedule.EnergyConsumer", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyConsumer", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The EnergyConsumer that has a Power Shift Key schedule." },
6378            AttrDef { id: "PowerShiftKeySchedule.EnergyResourceGroupCapacity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyResourceGroupCapacity", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The energy group capacity which has a Power Shift Key Schedule." },
6379            AttrDef { id: "PowerShiftKeySchedule.EnergySource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergySource", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The energy source which has a power shift key schedule. The renewable resources should be modelled as PowerElectronicsUnit." },
6380            AttrDef { id: "PowerShiftKeySchedule.EquivalentInjection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquivalentInjection", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Equivalent injection which is part of a powoer shift key schedule." },
6381            AttrDef { id: "PowerShiftKeySchedule.ExternalNetworkInjection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ExternalNetworkInjection", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The energy source which has a power shift key schedule." },
6382            AttrDef { id: "PowerShiftKeySchedule.GeneratingUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GeneratingUnit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The Generating Unit which has a Power Shift Key Schedule." },
6383            AttrDef { id: "PowerShiftKeySchedule.HydroPump", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "HydroPump", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The Hydro Pump which has a Power Shift Key schedule." },
6384            AttrDef { id: "PowerShiftKeySchedule.ParticipationFactorTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ParticipationFactorTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The participation factor timepoint for a Power Shift Key schedule." },
6385            AttrDef { id: "PowerShiftKeySchedule.PowerElectronicsUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerElectronicsUnit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The Power Electronics Unit which has a Power Shift Key schedule." },
6386            AttrDef { id: "PowerShiftKeySchedule.PowerShiftKeyDistribution", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerShiftKeyDistribution", is_list: false, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Power Shift Key distribution for the Power Shift Key schedule." },
6387            AttrDef { id: "PowerShiftKeySchedule.ScheduleResource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ScheduleResource", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The Schedule Resource which has a Power Shift Key schedule." },
6388            AttrDef { id: "PowerShiftKeySchedule.SchedulingArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchedulingArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "" },
6389        ],
6390    },
6391    ClassDef {
6392        ns: "https://cim4.eu/ns/nc#",
6393        local: "PowerShiftKeyStrategy",
6394        qualified: "nc:PowerShiftKeyStrategy",
6395        super_class: Some(318),
6396        concrete: true,
6397        origins: &["ER", "RA", "SIS", "SSI"],
6398        comment: "Strategy of the power shift key.",
6399        attrs: &[
6400            AttrDef { id: "PowerShiftKeyStrategy.PowerFrequencyController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerFrequencyController", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Power frequency controller that has power shift key strategy." },
6401            AttrDef { id: "PowerShiftKeyStrategy.PowerRemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerRemedialAction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "Power remedial acion which has power shift key strategy." },
6402            AttrDef { id: "PowerShiftKeyStrategy.PowerShiftKeyDistribution", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerShiftKeyDistribution", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Power Shift Key Distribution associated to this power shift key strategy." },
6403            AttrDef { id: "PowerShiftKeyStrategy.SchedulingArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchedulingArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Scheduling area associated with power shift key strategy." },
6404            AttrDef { id: "PowerShiftKeyStrategy.dispatchableUnitOnly", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER"], comment: "If true, only dispatchable units are included in the power shift key strategy. A unit is considered dispatchable if it is associated with an area dispatchable unit that is linked to the same scheduling area as the power shift key strategy. Exceptions are done for units that are included in explicit or distributed strategies." },
6405            AttrDef { id: "PowerShiftKeyStrategy.enabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "If true, the assessed element is enabled, otherwise it is disabled." },
6406            AttrDef { id: "PowerShiftKeyStrategy.method", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "ShiftMethodKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["ER"], comment: "Shift method used for the power shift strategy." },
6407            AttrDef { id: "PowerShiftKeyStrategy.normalEnabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER"], comment: "If true, the assessed element shall be considered under normal operating conditions." },
6408            AttrDef { id: "PowerShiftKeyStrategy.normalParticipationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Normal participation factor describing the entities part of the power shift strategy. Must be a positive value." },
6409            AttrDef { id: "PowerShiftKeyStrategy.participationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Participation factor describing the entities part of the power shift strategy. Must be a positive value." },
6410            AttrDef { id: "PowerShiftKeyStrategy.powerBlockKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "PowerBlockKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["ER"], comment: "Power block kind creates block (one or more) of power shift key strategy to address increase and/or decrease of power for a given scheduling area." },
6411            AttrDef { id: "PowerShiftKeyStrategy.powerShiftKey", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "PowerShiftKeyKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["ER"], comment: "Power shift keys strategy gives instruction on how the value (Active power) is going to be distributed inside the relevant bidding zone." },
6412        ],
6413    },
6414    ClassDef {
6415        ns: "https://cim4.eu/ns/nc#",
6416        local: "PowerSystemProject",
6417        qualified: "nc:PowerSystemProject",
6418        super_class: Some(487),
6419        concrete: true,
6420        origins: &["PSP"],
6421        comment: "Knowledge data for the power system project that describe the status and the planned implementation of the changes into the as-built model.",
6422        attrs: &[
6423            AttrDef { id: "PowerSystemProject.AlternativeProject", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSystemProject", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PSP"], comment: "Alternative project. Only one of the projects will be commissioned." },
6424            AttrDef { id: "PowerSystemProject.AvailabilitySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilitySchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PSP"], comment: "The availability schedule associated with this power system project." },
6425            AttrDef { id: "PowerSystemProject.DependentOnProject", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSystemProject", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PSP"], comment: "Grouping of projects that are depending on each other. A project can only be linked to one dependent project." },
6426            AttrDef { id: "PowerSystemProject.DifferenceModel", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DifferenceModel", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PSP"], comment: "The difference model describing this power system project." },
6427            AttrDef { id: "PowerSystemProject.PriorityProject", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSystemProject", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PSP"], comment: "The project that has an alternative project." },
6428            AttrDef { id: "PowerSystemProject.Project", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSystemProject", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PSP"], comment: "The project that has a dependent on project." },
6429            AttrDef { id: "PowerSystemProject.ProjectGroup", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSystemProjectGroup", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PSP"], comment: "Power system project group to which this project belongs." },
6430            AttrDef { id: "PowerSystemProject.ShadowProject", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSystemProject", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PSP"], comment: "A shadowing project that includes the same change set, but different timeline." },
6431            AttrDef { id: "PowerSystemProject.SilhouetteProject", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSystemProject", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PSP"], comment: "The project that has a shadow project." },
6432            AttrDef { id: "PowerSystemProject.cancelled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["PSP"], comment: "From this date the project is in cancelled state. No further development will be done to the project or associated change set in this state." },
6433            AttrDef { id: "PowerSystemProject.commissioned", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["PSP"], comment: "From this date the project is in commissioned state. Any conducting equipment in the change set can be energized from this day. No further changes will be done to the change set." },
6434            AttrDef { id: "PowerSystemProject.committed", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["PSP"], comment: "From this date the project is in committed state. The change set will from this day be part of the as-build model." },
6435            AttrDef { id: "PowerSystemProject.inBuild", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["PSP"], comment: "From this day the project is in build state. Alternative project have been evaluated. Any procurement has started and the change set is being updated to an as-build model." },
6436            AttrDef { id: "PowerSystemProject.inPlan", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["PSP"], comment: "From this date the project is in planning state. Study or procurement strategy has triggered the start of a project involving changes to one or more models. Alternative projects and change sets are evaluated." },
6437            AttrDef { id: "PowerSystemProject.officialExpectedCommissioning", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["PSP"], comment: "Published official commissioning date." },
6438            AttrDef { id: "PowerSystemProject.priority", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["PSP"], comment: "Priority between competing project. Use 0 for do not care. Use 1 for highest priority. Use 2 as priority is less than 1 and so on." },
6439        ],
6440    },
6441    ClassDef {
6442        ns: "https://cim4.eu/ns/nc#",
6443        local: "PowerSystemProjectGroup",
6444        qualified: "nc:PowerSystemProjectGroup",
6445        super_class: None,
6446        concrete: true,
6447        origins: &["PSP"],
6448        comment: "A container with project that are grouped together. Primarily used for navigation and to highlight the phases that an overall project can go though.",
6449        attrs: &[
6450            AttrDef { id: "PowerSystemProjectGroup.Project", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSystemProject", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PSP"], comment: "The project included in the power system project group." },
6451            AttrDef { id: "PowerSystemProjectGroup.description", ns: "http://purl.org/dc/terms/", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["PSP"], comment: "A free-text account of the resource. Description may include but is not limited to: an abstract, a table of contents, a graphical representation, or a free-text account of the resource." },
6452            AttrDef { id: "PowerSystemProjectGroup.identifier", ns: "http://purl.org/dc/terms/", kind: AttrKind::Association, range: "StringIRI", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PSP"], comment: "A unique identifier of the resource being described or cataloged. The identifier might be used as part of the IRI of the resource, but still having it represented explicitly is useful. The identifier is a text string which is assigned to the resource to provide an unambiguous reference within a particular context." },
6453            AttrDef { id: "PowerSystemProjectGroup.title", ns: "http://purl.org/dc/terms/", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["PSP"], comment: "A name given to the resource." },
6454        ],
6455    },
6456    ClassDef {
6457        ns: "https://cim.ucaiug.io/ns#",
6458        local: "PowerSystemResource",
6459        qualified: "nc:PowerSystemResource",
6460        super_class: Some(318),
6461        concrete: false,
6462        origins: &["AS", "ER", "MA", "RA", "SIS"],
6463        comment: "A power system resource (PSR) can be an item of equipment such as a switch, an equipment container containing many individual items of equipment such as a substation, or an organisational entity such as sub-control area. Power system resources can have measurements associated.",
6464        attrs: &[
6465            AttrDef { id: "PowerSystemResource.OutageRequestResource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageRequestResource", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "Outage request resource entries referencing the resource." },
6466        ],
6467    },
6468    ClassDef {
6469        ns: "https://cim4.eu/ns/nc#",
6470        local: "PowerTimePoint",
6471        qualified: "nc:PowerTimePoint",
6472        super_class: None,
6473        concrete: true,
6474        origins: &["PS", "RAS"],
6475        comment: "Time series represent irregular values at given points in time.",
6476        attrs: &[
6477            AttrDef { id: "PowerTimePoint.PowerSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PS", "RAS"], comment: "Time series the time point values belongs to." },
6478            AttrDef { id: "PowerTimePoint.activatedP", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["PS", "RAS"], comment: "Active power activated as part of redispatch. Negative number means that the value is scheduling down. Positive number means that the value is scheduling up." },
6479            AttrDef { id: "PowerTimePoint.activatedPrice", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PS", "RAS"], comment: "Price for the activated active power per unit e.g. per MW." },
6480            AttrDef { id: "PowerTimePoint.activatedQ", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["PS"], comment: "Reactive power activated as part of redispatch. Negative number means that the value is scheduling down. Positive number means that the value is scheduling up." },
6481            AttrDef { id: "PowerTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["PS", "RAS"], comment: "The time the data is valid for." },
6482            AttrDef { id: "PowerTimePoint.meritOrder", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["PS"], comment: "Ranking the energy blocks. Ranking can be based on historical values or other sources. It is required if power schedule is kind merit order." },
6483            AttrDef { id: "PowerTimePoint.p", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["PS", "RAS"], comment: "Active power injection. Load sign convention is used, i.e. positive sign means flow out from a node or area." },
6484            AttrDef { id: "PowerTimePoint.price", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PS", "RAS"], comment: "Price for the scheduled active power per unit of active power. e.g. per MW." },
6485            AttrDef { id: "PowerTimePoint.q", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["PS", "RAS"], comment: "Reactive power injection. Load sign convention is used, i.e. positive sign means flow out from a node or area." },
6486        ],
6487    },
6488    ClassDef {
6489        ns: "https://cim4.eu/ns/nc#",
6490        local: "PowerTransferCorridor",
6491        qualified: "nc:PowerTransferCorridor",
6492        super_class: Some(440),
6493        concrete: true,
6494        origins: &["SSI", "AE", "ER", "RA", "SAR", "SIS"],
6495        comment: "A power transfer corridor is defined as a set of circuits (transmission lines or transformers) separating two portions of the power system, or a subset of circuits exposed to a substantial portion of the transmission exchange between two parts of the system.",
6496        attrs: &[
6497            AttrDef { id: "PowerTransferCorridor.AssessedElement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElement", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AE"], comment: "The assessed element indicating that the power transfer corridor is assessed, i.e. monitored." },
6498            AttrDef { id: "PowerTransferCorridor.CircuitShare", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CircuitShare", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The circuit share for this power transfer corridor." },
6499            AttrDef { id: "PowerTransferCorridor.GenericEnablingSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GenericEnablingSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Generic enabling schedule associated with a power transfer corridor." },
6500            AttrDef { id: "PowerTransferCorridor.OperationalLimitSet", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OperationalLimitSet", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The operational limit set relevant for this power transfer corridor." },
6501            AttrDef { id: "PowerTransferCorridor.PTCActivePowerSupport", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PTCActivePowerSupport", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The active power capability associated with this PowerTransferCorridor." },
6502            AttrDef { id: "PowerTransferCorridor.PinPowerTransferCorridor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PinPowerTransferCorridor", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The pin that uses this input." },
6503            AttrDef { id: "PowerTransferCorridor.PowerFlowResult", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerFlowResult", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SAR"], comment: "Power result associated with the power transfer corridor." },
6504            AttrDef { id: "PowerTransferCorridor.enabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "It enables/disables the monitoring/assessment of a power transfer corridor. True means that the monitoring of the power transfer corridor is assessed. False means the power transfer corridor is not assessed." },
6505            AttrDef { id: "PowerTransferCorridor.normalEnabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER"], comment: "It is the normal enable/disable the monitoring/assessment of a power transfer corridor. True means that the monitoring of the power transfer corridor is assessed. False means the power transfer corridor is not assessed." },
6506        ],
6507    },
6508    ClassDef {
6509        ns: "https://cim.ucaiug.io/ns#",
6510        local: "PowerTransformer",
6511        qualified: "nc:PowerTransformer",
6512        super_class: Some(90),
6513        concrete: true,
6514        origins: &["SSI", "ER"],
6515        comment: "An electrical device consisting of two or more coupled windings, with or without a magnetic core, for introducing mutual coupling between electric circuits. Transformers can be used to control voltage and phase shift (active power flow). A power transformer may be composed of separate transformer tanks that need not be identical. A power transformer can be modelled with or without tanks and is intended for use in both balanced and unbalanced representations. A power transformer typically has two terminals, but may have one (grounding), three or more terminals. The inherited association ConductingEquipment.BaseVoltage should not be used. The association from TransformerEnd to BaseVoltage should be used instead.",
6516        attrs: &[
6517            AttrDef { id: "PowerTransformer.CrossZonalPowerTransformer", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CrossZonalPowerTransformer", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Cross-zonal power transformer representations associated with the power transformer." },
6518        ],
6519    },
6520    ClassDef {
6521        ns: "https://cim4.eu/ns/nc#",
6522        local: "PowerTransformerCircuit",
6523        qualified: "nc:PowerTransformerCircuit",
6524        super_class: Some(77),
6525        concrete: true,
6526        origins: &["ER"],
6527        comment: "A power transformer circuit is a circuit that has at least one PowerTransformer and may or may not include related switching and/or auxiliary equipment.",
6528        attrs: &[],
6529    },
6530    ClassDef {
6531        ns: "http://iec.ch/TC57/1999/rdf-schema-extensions-19990926#",
6532        local: "PropertyReference",
6533        qualified: "nc:PropertyReference",
6534        super_class: None,
6535        concrete: false,
6536        origins: &["ER", "RA"],
6537        comment: "The reference to a class and one of its properties.",
6538        attrs: &[
6539            AttrDef { id: "PropertyReference.FunctionOutputVariable", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FunctionOutputVariable", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Function output variable is the function output this property reference is used in." },
6540            AttrDef { id: "PropertyReference.GridStateAlteration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridStateAlteration", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The grid state alteration for this property reference." },
6541            AttrDef { id: "PropertyReference.PinEquipment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PinEquipment", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The pin equipment that has this property reference." },
6542            AttrDef { id: "PropertyReference.StaticPropertyRange", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "StaticPropertyRange", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "Static property range that has this property reference." },
6543        ],
6544    },
6545    ClassDef {
6546        ns: "https://cim4.eu/ns/nc#",
6547        local: "ProportionalEnergyComponent",
6548        qualified: "nc:ProportionalEnergyComponent",
6549        super_class: Some(225),
6550        concrete: true,
6551        origins: &["ER"],
6552        comment: "Serves for grouping components within an energy group, with proportional energy allocation to all components.",
6553        attrs: &[
6554            AttrDef { id: "ProportionalEnergyComponent.normalParticipationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Normal participation factor." },
6555            AttrDef { id: "ProportionalEnergyComponent.powerDuration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Duration for the active power." },
6556        ],
6557    },
6558    ClassDef {
6559        ns: "https://cim4.eu/ns/nc#",
6560        local: "ProposingRemedialActionScheduleShare",
6561        qualified: "nc:ProposingRemedialActionScheduleShare",
6562        super_class: None,
6563        concrete: true,
6564        origins: &["RAS"],
6565        comment: "Proposing entity (System Operator) with a proper cost share for a given remedial action schedule.",
6566        attrs: &[
6567            AttrDef { id: "ProposingRemedialActionScheduleShare.ProposingEntity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SystemOperator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "Proposing entity making the proposing remedial action schedule share." },
6568            AttrDef { id: "ProposingRemedialActionScheduleShare.RemedialActionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "Remedial action schedule proposed by the proposing entity." },
6569            AttrDef { id: "ProposingRemedialActionScheduleShare.costSharingFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "Sharing factor of the cost of the remedial action as a fraction of the total cost, i.e. system operator's cost = cost x (costSharingFactor / sum of all costSharingFactor)." },
6570            AttrDef { id: "ProposingRemedialActionScheduleShare.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["RAS"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
6571        ],
6572    },
6573    ClassDef {
6574        ns: "https://cim.ucaiug.io/ns#",
6575        local: "ProtectedSwitch",
6576        qualified: "nc:ProtectedSwitch",
6577        super_class: Some(534),
6578        concrete: false,
6579        origins: &["SSI"],
6580        comment: "A ProtectedSwitch is a switching device that can be operated by ProtectionEquipment.",
6581        attrs: &[],
6582    },
6583    ClassDef {
6584        ns: "https://cim4.eu/ns/nc#",
6585        local: "QualitativeRemedialActionImpact",
6586        qualified: "nc:QualitativeRemedialActionImpact",
6587        super_class: Some(473),
6588        concrete: true,
6589        origins: &["IAM"],
6590        comment: "Defines the qualitative impact for a remedial action. Relevant remedial action is assumed to have impact when the impact quantity is applied.",
6591        attrs: &[],
6592    },
6593    ClassDef {
6594        ns: "https://cim4.eu/ns/nc#",
6595        local: "QuantitativeRemedialActionImpact",
6596        qualified: "nc:QuantitativeRemedialActionImpact",
6597        super_class: Some(473),
6598        concrete: true,
6599        origins: &["IAM"],
6600        comment: "Defines the quantitative impact for a remedial action. The value if the impact quantity is derived through offline calculation that has coursed an impact of an element that is monitored by the assessed system operator higher than the relevant threshold for the conducting equipment.",
6601        attrs: &[
6602            AttrDef { id: "QuantitativeRemedialActionImpact.SensitivityArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SensitivityArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["IAM"], comment: "Sensitivity area which should be monitored to evaluate the threshold given by the remedial action impact on relevant equipment." },
6603        ],
6604    },
6605    ClassDef {
6606        ns: "https://cim4.eu/ns/nc#",
6607        local: "RangeConstraint",
6608        qualified: "nc:RangeConstraint",
6609        super_class: Some(318),
6610        concrete: false,
6611        origins: &["RA", "SIS", "SSI"],
6612        comment: "Defines the rage constraint.",
6613        attrs: &[
6614            AttrDef { id: "RangeConstraint.GenericValueSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GenericValueSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Generic value schedule which has a range constraint." },
6615            AttrDef { id: "RangeConstraint.GridStateAlteration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridStateAlteration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The grid state alteration which has static range." },
6616            AttrDef { id: "RangeConstraint.direction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "RelativeDirectionKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["RA"], comment: "Defines the direction of the attribute value referenced by the PropertyReference." },
6617            AttrDef { id: "RangeConstraint.normalValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["RA"], comment: "The normal (initial) value. The meaning of the value is defined by the attribute referenced by the PropertyReference. The attribute value can be integer, float or boolean. In case of boolean 1.0 equals true and 0.0 equals false. In case of integer the 0 should be included as a decimal, e.g. 2.0. If the valueKind equals incremental or incrementalPercentage, then the attribute value shall be positive (greater than zero). If the valueKind equals absolute, it does not constraint attribute value to be positive. If the valueKind equals incrementalPercentage, then the attribute value “100.0” shall represent 100%. The attribute value shall be positive float (0.0 value is not allowed) and can exceed 100.0." },
6618            AttrDef { id: "RangeConstraint.value", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The value at the time. The meaning of the value is defined by the attribute referenced by the PropertyReference. The attribute value can be integer, float or boolean. In case of boolean 1.0 equals true and 0.0 equals false. In case of integer the 0 should be included as a decimal, e.g. 2.0. If the valueKind equals incremental or incrementalPercentage, then the attribute value shall be positive (greater than zero). If the valueKind equals absolute, it does not constraint attribute value to be positive. If the valueKind equals incrementalPercentage, then the attribute value “100.0” shall represent 100%. The attribute value shall be positive float (0.0 value is not allowed) and can exceed 100.0." },
6619            AttrDef { id: "RangeConstraint.valueKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "ValueOffsetKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["RA"], comment: "Kind of value offset for the range that applies to the attribute referenced by the PropertyReference." },
6620        ],
6621    },
6622    ClassDef {
6623        ns: "https://cim.ucaiug.io/ns#",
6624        local: "ReactiveCapabilityCurve",
6625        qualified: "nc:ReactiveCapabilityCurve",
6626        super_class: Some(136),
6627        concrete: true,
6628        origins: &["ER"],
6629        comment: "Reactive power rating envelope versus the synchronous machine's active power, in both the generating and motoring modes. For each active power value there is a corresponding high and low reactive power limit value. Typically there will be a separate curve for each coolant condition, such as hydrogen pressure. The Y1 axis values represent reactive minimum and the Y2 axis values represent reactive maximum.",
6630        attrs: &[
6631            AttrDef { id: "ReactiveCapabilityCurve.EquivalentInjection2", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquivalentInjection", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The equivalent injection using this reactive capability curve." },
6632            AttrDef { id: "ReactiveCapabilityCurve.SynchronousMachine2", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SynchronousMachine", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Synchronous machine using this curve." },
6633            AttrDef { id: "ReactiveCapabilityCurve.coolantTemperature", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The machine's coolant temperature (e.g., ambient air or stator circulating water)." },
6634            AttrDef { id: "ReactiveCapabilityCurve.hydrogenPressure", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "Pressure", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The hydrogen coolant pressure." },
6635            AttrDef { id: "ReactiveCapabilityCurve.operatingMode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "SynchronousMachineOperatingMode", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["ER"], comment: "The operating mode of synchronous machine for which the reactive capability curve is valid for. In case the attribute is not provided it is assumed that the reactive capability curve covers all possible operating modes of the synchronous machine." },
6636            AttrDef { id: "ReactiveCapabilityCurve.referenceVoltage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The reference voltage for which the capability curve is valid." },
6637        ],
6638    },
6639    ClassDef {
6640        ns: "https://cim4.eu/ns/nc#",
6641        local: "ReactivePowerControlFunction",
6642        qualified: "nc:ReactivePowerControlFunction",
6643        super_class: Some(109),
6644        concrete: true,
6645        origins: &["ER", "SIS", "SSI"],
6646        comment: "Reactive power control function is a function block that calculate the operating point of the controlled equipment to achieve the target reactive power.",
6647        attrs: &[
6648            AttrDef { id: "ReactivePowerControlFunction.ReactivePowerControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ReactivePowerControlFunctionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule of the control function." },
6649            AttrDef { id: "ReactivePowerControlFunction.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Target value for the reactive power that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
6650        ],
6651    },
6652    ClassDef {
6653        ns: "https://cim4.eu/ns/nc#",
6654        local: "ReactivePowerControlFunctionSchedule",
6655        qualified: "nc:ReactivePowerControlFunctionSchedule",
6656        super_class: Some(57),
6657        concrete: true,
6658        origins: &["SIS"],
6659        comment: "The schedule for ReactivePowerControlFunction.",
6660        attrs: &[
6661            AttrDef { id: "ReactivePowerControlFunctionSchedule.ReactivePowerControlFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ReactivePowerControlFunction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The control function that has this schedule." },
6662            AttrDef { id: "ReactivePowerControlFunctionSchedule.ReactivePowerControlFunctionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ReactivePowerControlFunctionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point of the schedule." },
6663        ],
6664    },
6665    ClassDef {
6666        ns: "https://cim4.eu/ns/nc#",
6667        local: "ReactivePowerControlFunctionTimePoint",
6668        qualified: "nc:ReactivePowerControlFunctionTimePoint",
6669        super_class: None,
6670        concrete: true,
6671        origins: &["SIS"],
6672        comment: "Reactive power control function value for a given point in time.",
6673        attrs: &[
6674            AttrDef { id: "ReactivePowerControlFunctionTimePoint.ReactivePowerControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ReactivePowerControlFunctionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule that has this time point." },
6675            AttrDef { id: "ReactivePowerControlFunctionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
6676            AttrDef { id: "ReactivePowerControlFunctionTimePoint.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Target value for the reactive power that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
6677        ],
6678    },
6679    ClassDef {
6680        ns: "https://cim4.eu/ns/nc#",
6681        local: "RecoveryOverloadLimitCurve",
6682        qualified: "nc:RecoveryOverloadLimitCurve",
6683        super_class: Some(342),
6684        concrete: true,
6685        origins: &["ER"],
6686        comment: "The relation between the recovery time and an overload limit.",
6687        attrs: &[
6688            AttrDef { id: "RecoveryOverloadLimitCurve.OperationalLimitType", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OperationalLimitType", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The operational limit type which has recovery time characteristic." },
6689        ],
6690    },
6691    ClassDef {
6692        ns: "https://cim4.eu/ns/nc#",
6693        local: "RedispatchRemedialAction",
6694        qualified: "nc:RedispatchRemedialAction",
6695        super_class: Some(430),
6696        concrete: true,
6697        origins: &["RA", "SSI"],
6698        comment: "Redispatch remedial action is a remedial action that through rearranging power schedules is eliminating breaches of constraints.",
6699        attrs: &[],
6700    },
6701    ClassDef {
6702        ns: "https://cim4.eu/ns/nc#",
6703        local: "RedispatchScheduleAction",
6704        qualified: "nc:RedispatchScheduleAction",
6705        super_class: Some(434),
6706        concrete: true,
6707        origins: &["RAS"],
6708        comment: "Redispatch schedule action is an action to rearrange power schedules for a scheduled resource to obtain a feasible and secure operational state of the power electricity system.",
6709        attrs: &[],
6710    },
6711    ClassDef {
6712        ns: "https://cim4.eu/ns/nc#",
6713        local: "Region",
6714        qualified: "nc:Region",
6715        super_class: Some(440),
6716        concrete: false,
6717        origins: &["AE", "ER", "MA", "RA", "RAS", "SAR"],
6718        comment: "A region where the system operator belongs to.",
6719        attrs: &[
6720            AttrDef { id: "Region.LimitViolation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerFlowResult", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SAR"], comment: "The limit violation reported by a region." },
6721            AttrDef { id: "Region.MonitoringArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "MonitoringArea", is_list: true, used: false, xsd: "", value_ns: "", origins: &["MA"], comment: "Monitoring area which belongs to a region." },
6722            AttrDef { id: "Region.NativeAssessedElement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElement", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AE"], comment: "The native assessed element for a native region." },
6723            AttrDef { id: "Region.OverlappingZone", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OverlappingZone", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The overlapping zone which is impacted by this region." },
6724            AttrDef { id: "Region.RemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The remedial action which is considered in the region." },
6725            AttrDef { id: "Region.RemedialActionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RAS"], comment: "The remedial action schedule relevant for this region." },
6726            AttrDef { id: "Region.ScannedAssessedElement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElement", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AE"], comment: "These are the scanned assessed elements for a region." },
6727            AttrDef { id: "Region.SecuredAssessedElement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElement", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AE"], comment: "The assessed element secured for this region." },
6728        ],
6729    },
6730    ClassDef {
6731        ns: "https://cim.ucaiug.io/ns#",
6732        local: "RegulatingCondEq",
6733        qualified: "nc:RegulatingCondEq",
6734        super_class: Some(226),
6735        concrete: false,
6736        origins: &["ER", "SSI"],
6737        comment: "A type of conducting equipment that can regulate a quantity (i.e. voltage or flow) at a specific point in the network.",
6738        attrs: &[
6739            AttrDef { id: "RegulatingCondEq.EquipmentController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquipmentController", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The equipment controller for this regulating conducting equipment." },
6740            AttrDef { id: "RegulatingCondEq.controlEnabled", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "Specifies the regulation status of the equipment. True is regulating, false is not regulating." },
6741        ],
6742    },
6743    ClassDef {
6744        ns: "https://cim.ucaiug.io/ns#",
6745        local: "RegulatingControl",
6746        qualified: "nc:RegulatingControl",
6747        super_class: None,
6748        concrete: false,
6749        origins: &["RA", "SHS"],
6750        comment: "Specifies a set of equipment that works together to control a power system quantity such as voltage or flow. Remote bus voltage control is possible by specifying the controlled terminal located at some place remote from the controlling equipment. The specified terminal shall be associated with the connectivity node of the controlled point. The most specific subtype of RegulatingControl shall be used in case such equipment participate in the control, e.g. TapChangerControl for tap changers. For flow control, load sign convention is used, i.e. positive sign means flow out from a TopologicalNode (bus) into the conducting equipment. The attribute minAllowedTargetValue and maxAllowedTargetValue are required in the following cases: - For a power generating module operated in power factor control mode to specify maximum and minimum power factor values; - Whenever it is necessary to have an off center target voltage for the tap changer regulator. For instance, due to long cables to off shore wind farms and the need to have a simpler setup at the off shore transformer platform, the voltage is controlled from the land at the connection point for the off shore wind farm. Since there usually is a voltage rise along the cable, there is typical and overvoltage of up 3-4 kV compared to the on shore station. Thus in normal operation the tap changer on the on shore station is operated with a target set point, which is in the lower parts of the dead band. The attributes minAllowedTargetValue and maxAllowedTargetValue are not related to the attribute targetDeadband and thus they are not treated as an alternative of the targetDeadband. They are needed due to limitations in the local substation controller. The attribute targetDeadband is used to prevent the power flow from move the tap position in circles (hunting) that is to be used regardless of the attributes minAllowedTargetValue and maxAllowedTargetValue.",
6751        attrs: &[
6752            AttrDef { id: "RegulatingControl.RegulatingControlAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RegulatingControlAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The action that is applied to a regulating control." },
6753            AttrDef { id: "RegulatingControl.RegulatingControlRegularSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RegulatingControlRegularSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "RegulatingControlRegularSchedule which belongs to a regulating control." },
6754            AttrDef { id: "RegulatingControl.RegulatingControlSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RegulatingControlSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "Regulating control schedule associated with a regulating control." },
6755        ],
6756    },
6757    ClassDef {
6758        ns: "https://cim4.eu/ns/nc#",
6759        local: "RegulatingControlAction",
6760        qualified: "nc:RegulatingControlAction",
6761        super_class: Some(304),
6762        concrete: true,
6763        origins: &["RA", "SSI"],
6764        comment: "Control action means the set point change of a regulating control power system resource in the grid model compared to the base case.",
6765        attrs: &[
6766            AttrDef { id: "RegulatingControlAction.RegulatingControl", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RegulatingControl", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The regulating control which has an action." },
6767        ],
6768    },
6769    ClassDef {
6770        ns: "https://cim4.eu/ns/nc#",
6771        local: "RegulatingControlRegularSchedule",
6772        qualified: "nc:RegulatingControlRegularSchedule",
6773        super_class: Some(59),
6774        concrete: true,
6775        origins: &["SHS"],
6776        comment: "Regular schedule for regulating control.",
6777        attrs: &[
6778            AttrDef { id: "RegulatingControlRegularSchedule.RegulatingControl", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RegulatingControl", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Regulating control which has RegulatingControlRegularSchedule." },
6779            AttrDef { id: "RegulatingControlRegularSchedule.maxAllowedTargetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Maximum allowed target value (RegulatingControl.targetValue)." },
6780            AttrDef { id: "RegulatingControlRegularSchedule.minAllowedTargetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Minimum allowed target value (RegulatingControl.targetValue)." },
6781            AttrDef { id: "RegulatingControlRegularSchedule.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "The target value specified for case input. This value can be used for the target value without the use of schedules. The value has the units appropriate to the mode attribute." },
6782            AttrDef { id: "RegulatingControlRegularSchedule.targetValueUnitMultiplier", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "UnitMultiplier", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["SHS"], comment: "Specify the multiplier for used for the targetValue." },
6783        ],
6784    },
6785    ClassDef {
6786        ns: "https://cim4.eu/ns/nc#",
6787        local: "RegulatingControlSchedule",
6788        qualified: "nc:RegulatingControlSchedule",
6789        super_class: Some(57),
6790        concrete: true,
6791        origins: &["SHS"],
6792        comment: "Schedule for regulating control.",
6793        attrs: &[
6794            AttrDef { id: "RegulatingControlSchedule.RegulatingControl", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RegulatingControl", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Regulating control which has regulating control schedules." },
6795            AttrDef { id: "RegulatingControlSchedule.RegulatingControlTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RegulatingControlTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The time point that relates to this regulating control schedule." },
6796        ],
6797    },
6798    ClassDef {
6799        ns: "https://cim4.eu/ns/nc#",
6800        local: "RegulatingControlTimePoint",
6801        qualified: "nc:RegulatingControlTimePoint",
6802        super_class: None,
6803        concrete: true,
6804        origins: &["SHS"],
6805        comment: "Regulating control values for a given point in time.",
6806        attrs: &[
6807            AttrDef { id: "RegulatingControlTimePoint.RegulatingControlSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RegulatingControlSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "The regulating control schedule that has this time point." },
6808            AttrDef { id: "RegulatingControlTimePoint.TapChangerControlSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TapChangerControlSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "The tap changer control schedule that has this time point." },
6809            AttrDef { id: "RegulatingControlTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS"], comment: "The time the data is valid for." },
6810            AttrDef { id: "RegulatingControlTimePoint.maxAllowedTargetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Maximum allowed target value (RegulatingControl.targetValue)." },
6811            AttrDef { id: "RegulatingControlTimePoint.minAllowedTargetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Minimum allowed target value (RegulatingControl.targetValue)." },
6812            AttrDef { id: "RegulatingControlTimePoint.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "The target value specified for case input. This value can be used for the target value without the use of schedules. The value has the units appropriate to the mode attribute." },
6813            AttrDef { id: "RegulatingControlTimePoint.targetValueUnitMultiplier", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "UnitMultiplier", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["SHS"], comment: "Specify the multiplier for used for the targetValue." },
6814        ],
6815    },
6816    ClassDef {
6817        ns: "https://cim4.eu/ns/nc#",
6818        local: "RemedialAction",
6819        qualified: "nc:RemedialAction",
6820        super_class: Some(318),
6821        concrete: false,
6822        origins: &["AE", "IAM", "RA", "RAS", "SAR", "SIS", "SM", "SSI"],
6823        comment: "Remedial action describes one or more actions that can be performed on a given power system model situation to eliminate one or more identified breaches of constraints. The remedial action can be costly, and have a cost characteristic, or non costly.",
6824        attrs: &[
6825            AttrDef { id: "RemedialAction.AppointedToRegion", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Region", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The region in which the remedial action is appointed." },
6826            AttrDef { id: "RemedialAction.AssessedElementWithRemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElementWithRemedialAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AE"], comment: "The assessed element and remedial action combination to be simulated for this remedial action." },
6827            AttrDef { id: "RemedialAction.ContingencyWithRemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ContingencyWithRemedialAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The contingency and remedial action combination." },
6828            AttrDef { id: "RemedialAction.ControllableQuantity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ControllableQuantity", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SM"], comment: "The controllable quantity for a remedial action." },
6829            AttrDef { id: "RemedialAction.DependentRemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionDependency", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "Remedial action dependent on a remedial action." },
6830            AttrDef { id: "RemedialAction.GenericAvailableSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GenericAvailableSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Available schedule associated to a remedial action." },
6831            AttrDef { id: "RemedialAction.RemedialActionApplied", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionApplied", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SAR"], comment: "The relationship of the applied remedial action and power flow result." },
6832            AttrDef { id: "RemedialAction.RemedialActionImpact", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionImpact", is_list: true, used: false, xsd: "", value_ns: "", origins: &["IAM"], comment: "This is the impact for a given remedial action." },
6833            AttrDef { id: "RemedialAction.RemedialActionOutcomeValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionOutcomeValue", is_list: true, used: false, xsd: "", value_ns: "", origins: &["IAM"], comment: "The remedial action outcome value associated with a remedial action." },
6834            AttrDef { id: "RemedialAction.RemedialActionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RAS"], comment: "The remedial action schedule associated with a remedial action, i.e. the assigning a schedule to a remedial action." },
6835            AttrDef { id: "RemedialAction.RemedialActionSystemOperator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SystemOperator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "System operator operating remedial actions." },
6836            AttrDef { id: "RemedialAction.available", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "Identifies if the remedial action can be used in further processes. True means available, False means unavailable. For instance, remedial action optimisation and coordination." },
6837            AttrDef { id: "RemedialAction.impactThresholdMargin", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["RA"], comment: "Impact threshold margin for the use of the remedial action. Meaning that the remedial action should not be used if it cannot resolve violation with more than the given impact threshold margin. The allowed value range is [0,100]." },
6838            AttrDef { id: "RemedialAction.isCrossBorderRelevant", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["RA"], comment: "Indicates if the remedial action is cross border relevant. True, means that the remedial action is cross border relevant." },
6839            AttrDef { id: "RemedialAction.isManual", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["RA"], comment: "Indicates if the remedial action is manually executed which involves one or many actions performed by human. A SIPS remedial action cannot be manual. True, means that the remedial action is manual. False, means that the remedial action is automatically executed without human communication." },
6840            AttrDef { id: "RemedialAction.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "RemedialActionKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["RA"], comment: "The kind of the remedial action. If curative remedial action, it is required to have an association with ContingencyWithRemedialAction. If preventive remedial action, RemedialAction class shall not have association with ContingencyWithRemedialAction." },
6841            AttrDef { id: "RemedialAction.normalAvailable", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["RA"], comment: "Identifies if the remedial action can be used in further processes under normal condition. True means available, False means unavailable. For instance, remedial action optimisation and coordination." },
6842            AttrDef { id: "RemedialAction.penaltyFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["RA"], comment: "Defines the relative penalty for a given remedial action. This is a positive number greater than zero and default is one, meaning the remedial action does not have negative nor positive effect on the quality of the solution. A remedial action that provide changes in the transmission loss can have negative (Between zero and one) or positive effect (Bigger than one) given by 1 / (1 - Incremental Transmission Loss). In a similar way remedial action using generating units or compensation units can have negative or positive effect. Typical value would be between 0.8 and 1.1." },
6843            AttrDef { id: "RemedialAction.timeToImplement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "Time to implement a remedial action." },
6844        ],
6845    },
6846    ClassDef {
6847        ns: "https://cim4.eu/ns/nc#",
6848        local: "RemedialActionApplied",
6849        qualified: "nc:RemedialActionApplied",
6850        super_class: None,
6851        concrete: true,
6852        origins: &["SAR"],
6853        comment: "Remedial Action or Remedial Action Stage that has been applied to the power flow case which has the associated power flow result.",
6854        attrs: &[
6855            AttrDef { id: "RemedialActionApplied.PowerFlowResult", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerFlowResult", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SAR"], comment: "Power flow result that is obtained when the remedial action is applied." },
6856            AttrDef { id: "RemedialActionApplied.RemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialAction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SAR"], comment: "Remedial action that is applied." },
6857            AttrDef { id: "RemedialActionApplied.StageForRemedialActionScheme", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Stage", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SAR"], comment: "The stage of the remedial action scheme that is applied." },
6858            AttrDef { id: "RemedialActionApplied.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["SAR"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
6859        ],
6860    },
6861    ClassDef {
6862        ns: "https://cim4.eu/ns/nc#",
6863        local: "RemedialActionCost",
6864        qualified: "nc:RemedialActionCost",
6865        super_class: None,
6866        concrete: true,
6867        origins: &["RAS"],
6868        comment: "Remedial action cost is the total cost itemised cost by category and type for the remedial action.",
6869        attrs: &[
6870            AttrDef { id: "RemedialActionCost.RemedialActionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "Remedial action schedule for which this remedial action cost relates to." },
6871            AttrDef { id: "RemedialActionCost.costAllocationTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["RAS"], comment: "Cost allocation time is the time the cost shall be allocated." },
6872            AttrDef { id: "RemedialActionCost.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "CostSettledKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["RAS"], comment: "Remedial action cost category related to the confirmation of the cost in regards to changes." },
6873            AttrDef { id: "RemedialActionCost.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["RAS"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
6874            AttrDef { id: "RemedialActionCost.operationalCost", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "Operational cost is the total cost directly related to operate the unit according to the remedial action, e.g. fuel cost." },
6875            AttrDef { id: "RemedialActionCost.opportunityCost", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "Opportunity cost is the total cost of potential earning that is missed due to performing the remedial action." },
6876            AttrDef { id: "RemedialActionCost.otherCost", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "Other cost is the total cost that cannot be directly allocated to any of the other items." },
6877            AttrDef { id: "RemedialActionCost.processingFee", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "Processing fee is the total cost for processing the remedial action." },
6878            AttrDef { id: "RemedialActionCost.savedFuelCost", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "Saved fuel cost is the total saving due to not consuming the expected fuel as part of the remedial action." },
6879            AttrDef { id: "RemedialActionCost.shutdownCost", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "Shutdown cost is the total cost for shutting down a unit as part of the remedial action." },
6880            AttrDef { id: "RemedialActionCost.startupCost", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "Start-up cost is the total cost for activating the remedial action, e.g. if a generator needs to be started before it can perform the remedial action." },
6881        ],
6882    },
6883    ClassDef {
6884        ns: "https://cim4.eu/ns/nc#",
6885        local: "RemedialActionDependency",
6886        qualified: "nc:RemedialActionDependency",
6887        super_class: None,
6888        concrete: true,
6889        origins: &["RA", "SIS", "SSI"],
6890        comment: "Remedial action dependency is making two remedial actions depending on each other. Multiple dependency is done by multiple instances of this class. The dependency can arrive by having one of the following examples. The dependent remedial action is controlled by different system operator (Modeling Authority) (e.g. SIPS that goes across control area). The dependent remedial action is representing two or more remedial action that represent the same grid state alteration but with different modeling resolution (e.g. detail direct current model versus a simplified model). The remedial action can be combined with other remedial action without the need to create multiple remedial action with the same grid alteration for enabling dependency.",
6891        attrs: &[
6892            AttrDef { id: "RemedialActionDependency.DependingRemedialActionGroup", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionGroup", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "Remedial action group which the remedial action is depending on." },
6893            AttrDef { id: "RemedialActionDependency.GenericEnablingSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GenericEnablingSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Enabling schedule associated to a remedial action dependency." },
6894            AttrDef { id: "RemedialActionDependency.RemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialAction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "Remedial action which has dependent remedial actions." },
6895            AttrDef { id: "RemedialActionDependency.enabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "If true, the remedial action dependency is enabled, otherwise it is disabled." },
6896            AttrDef { id: "RemedialActionDependency.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "RemedialActionDependencyKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["RA"], comment: "Type of dependency between two remedial actions." },
6897            AttrDef { id: "RemedialActionDependency.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["RA"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
6898            AttrDef { id: "RemedialActionDependency.normalEnabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["RA"], comment: "If true, the remedial action dependency within a group shall be considered under normal operating conditions." },
6899        ],
6900    },
6901    ClassDef {
6902        ns: "https://cim4.eu/ns/nc#",
6903        local: "RemedialActionGroup",
6904        qualified: "nc:RemedialActionGroup",
6905        super_class: Some(318),
6906        concrete: true,
6907        origins: &["RA", "IAM", "SIS", "SSI"],
6908        comment: "Grouping of remedial actions that can be operated together.",
6909        attrs: &[
6910            AttrDef { id: "RemedialActionGroup.RemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionDependency", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "Remedial action dependecy on a remedial action group." },
6911            AttrDef { id: "RemedialActionGroup.RemedialActionGroupSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionGroupSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Remedial action group schedule associated with a remedial action group." },
6912            AttrDef { id: "RemedialActionGroup.RemedialActionImpact", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionImpact", is_list: true, used: false, xsd: "", value_ns: "", origins: &["IAM"], comment: "This is the impact for a given remedial action group." },
6913            AttrDef { id: "RemedialActionGroup.RemedialActionOutcomeValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionOutcomeValue", is_list: true, used: false, xsd: "", value_ns: "", origins: &["IAM"], comment: "The remedial action outcome value associated with a remedial action group." },
6914            AttrDef { id: "RemedialActionGroup.maxRegulatingDown", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Maximum net amount of active power that the group of remedial actions can regulate down." },
6915            AttrDef { id: "RemedialActionGroup.maxRegulatingUp", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Maximum net amount of active power that the group of remedial actions can regulate up." },
6916        ],
6917    },
6918    ClassDef {
6919        ns: "https://cim4.eu/ns/nc#",
6920        local: "RemedialActionGroupSchedule",
6921        qualified: "nc:RemedialActionGroupSchedule",
6922        super_class: Some(57),
6923        concrete: true,
6924        origins: &["SIS"],
6925        comment: "The schedule for a remedial action group.",
6926        attrs: &[
6927            AttrDef { id: "RemedialActionGroupSchedule.RemedialActionGroup", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionGroup", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Remedial action group which has remedial action group schedules." },
6928            AttrDef { id: "RemedialActionGroupSchedule.RemedialActionGroupTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionGroupTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Remedial action group time point that relates to this remedial action group schedule." },
6929        ],
6930    },
6931    ClassDef {
6932        ns: "https://cim4.eu/ns/nc#",
6933        local: "RemedialActionGroupTimePoint",
6934        qualified: "nc:RemedialActionGroupTimePoint",
6935        super_class: None,
6936        concrete: true,
6937        origins: &["SIS"],
6938        comment: "Remedial action group at a given point in time.",
6939        attrs: &[
6940            AttrDef { id: "RemedialActionGroupTimePoint.RemedialActionGroupSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionGroupSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Remedial action group schedule that has time point." },
6941            AttrDef { id: "RemedialActionGroupTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
6942            AttrDef { id: "RemedialActionGroupTimePoint.maxRegulatingDown", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Maximum net amount of active power that the group of remedial actions can regulate down." },
6943            AttrDef { id: "RemedialActionGroupTimePoint.maxRegulatingUp", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Maximum net amount of active power that the group of remedial actions can regulate up." },
6944        ],
6945    },
6946    ClassDef {
6947        ns: "https://cim4.eu/ns/nc#",
6948        local: "RemedialActionImpact",
6949        qualified: "nc:RemedialActionImpact",
6950        super_class: None,
6951        concrete: false,
6952        origins: &["IAM"],
6953        comment: "Remedial action impact assessment based on a given agreement with a specific system operator.",
6954        attrs: &[
6955            AttrDef { id: "RemedialActionImpact.AssessingSystemOperator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SystemOperator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["IAM"], comment: "The impacted System Operator that assigns a remedial action impact." },
6956            AttrDef { id: "RemedialActionImpact.OwnerRemedialActionAssessment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OwnerRemedialActionAssessment", is_list: true, used: false, xsd: "", value_ns: "", origins: &["IAM"], comment: "The owner's assessment to the impacted system operator." },
6957            AttrDef { id: "RemedialActionImpact.RemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialAction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["IAM"], comment: "The remedial action that has an impact." },
6958            AttrDef { id: "RemedialActionImpact.RemedialActionGroup", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionGroup", is_list: false, used: true, xsd: "", value_ns: "", origins: &["IAM"], comment: "The remedial action group that has an impact." },
6959            AttrDef { id: "RemedialActionImpact.impactQuantity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["IAM"], comment: "Delta, positive or negative, quantity that when it is applied to the remedial action, it will cause impact on a conducting equipment monitored by the assessed system operator. Example of relevant remedial action changes are redispatching, countertrading, change of set point on HVDC systems or change of taps on phase-shifting transformers." },
6960            AttrDef { id: "RemedialActionImpact.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "ImpactAgreementKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["IAM"], comment: "The impact agreement kind." },
6961            AttrDef { id: "RemedialActionImpact.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["IAM"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
6962        ],
6963    },
6964    ClassDef {
6965        ns: "https://cim4.eu/ns/nc#",
6966        local: "RemedialActionOutcomeValue",
6967        qualified: "nc:RemedialActionOutcomeValue",
6968        super_class: Some(387),
6969        concrete: true,
6970        origins: &["IAM"],
6971        comment: "Outcome of an impact assessment matrix for a remedial action.",
6972        attrs: &[
6973            AttrDef { id: "RemedialActionOutcomeValue.RemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialAction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["IAM"], comment: "The remedial action that has a remedial action outcome value." },
6974            AttrDef { id: "RemedialActionOutcomeValue.RemedialActionGroup", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionGroup", is_list: false, used: true, xsd: "", value_ns: "", origins: &["IAM"], comment: "The remedial action group that has a remedial action group outcome value." },
6975            AttrDef { id: "RemedialActionOutcomeValue.impactQuantity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["IAM"], comment: "Delta, positive or negative, quantity that when it is applied to the remedial action, it will cause impact on a conducting equipment monitored by the assessed system operator. Example of relevant remedial action changes are redispatching, countertrading, change of set point on HVDC systems or change of taps on phase-shifting transformers." },
6976        ],
6977    },
6978    ClassDef {
6979        ns: "https://cim4.eu/ns/nc#",
6980        local: "RemedialActionSchedule",
6981        qualified: "nc:RemedialActionSchedule",
6982        super_class: Some(318),
6983        concrete: true,
6984        origins: &["RAS", "IAM"],
6985        comment: "A schedule for a determined remedial action.",
6986        attrs: &[
6987            AttrDef { id: "RemedialActionSchedule.AssignedRegion", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Region", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "The assigned region for this remedial action schedule." },
6988            AttrDef { id: "RemedialActionSchedule.Contingency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Contingency", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "The contingency for a curative remedial action schedule." },
6989            AttrDef { id: "RemedialActionSchedule.EventSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EventSchedule", is_list: false, used: false, xsd: "", value_ns: "", origins: &["RAS"], comment: "Event schedule that describes the validity of the remedial action schedule." },
6990            AttrDef { id: "RemedialActionSchedule.GenericValueSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GenericValueSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RAS"], comment: "Generic value schedule which belongs to a remedial action schedule." },
6991            AttrDef { id: "RemedialActionSchedule.PowerScheduleAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerScheduleAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RAS"], comment: "Power schedule action which belongs to a remedial action schedule." },
6992            AttrDef { id: "RemedialActionSchedule.ProposedDependency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionScheduleDependency", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RAS"], comment: "Dependency for the proposed remedial action schedule." },
6993            AttrDef { id: "RemedialActionSchedule.ProposingEntity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SecurityCoordinator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "The security coordinator that is proposing this remedial action schedule." },
6994            AttrDef { id: "RemedialActionSchedule.ProposingRemedialActionScheduleShare", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ProposingRemedialActionScheduleShare", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RAS"], comment: "The entity with its associated share that are making the proposal of the remedial action schedule" },
6995            AttrDef { id: "RemedialActionSchedule.RemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialAction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "The remedial action that has a remedial action schedule associated." },
6996            AttrDef { id: "RemedialActionSchedule.RemedialActionCost", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionCost", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RAS"], comment: "Remedial action cost related to this remedial schedule." },
6997            AttrDef { id: "RemedialActionSchedule.RemedialActionScheduleOutcomeValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionScheduleOutcomeValue", is_list: true, used: false, xsd: "", value_ns: "", origins: &["IAM"], comment: "The remedial action schedule outcome value associated with a remedial action schedule." },
6998            AttrDef { id: "RemedialActionSchedule.RemedialActionScheduleResponse", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionScheduleResponse", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RAS"], comment: "The remedial action schedule response related to a remedial action schedule." },
6999            AttrDef { id: "RemedialActionSchedule.ReplacedDependency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionScheduleDependency", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RAS"], comment: "Replaced dependency for this remedial action schedule." },
7000            AttrDef { id: "RemedialActionSchedule.statusKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "RemedialActionScheduleStatusKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["RAS"], comment: "Indicates the status kind for the remedial action schedule." },
7001            AttrDef { id: "RemedialActionSchedule.statusReason", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["RAS"], comment: "Description of reasoning for the status. For instance, in case of rejected remedial action, the reason for this rejection is described here." },
7002            AttrDef { id: "RemedialActionSchedule.totalCostCurrency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "Currency", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["RAS"], comment: "The currency of the total cost." },
7003        ],
7004    },
7005    ClassDef {
7006        ns: "https://cim4.eu/ns/nc#",
7007        local: "RemedialActionScheduleDependency",
7008        qualified: "nc:RemedialActionScheduleDependency",
7009        super_class: None,
7010        concrete: true,
7011        origins: &["RAS"],
7012        comment: "Remedial action schedule dependency is making two remedial action schedules depending on each other.",
7013        attrs: &[
7014            AttrDef { id: "RemedialActionScheduleDependency.ProposedRemedialActionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "Proposed remedial action schedule that has dependency." },
7015            AttrDef { id: "RemedialActionScheduleDependency.RemedialActionScheduleGroup", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionScheduleGroup", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "Remedial action schedule group which has remedial action schedule dependency." },
7016            AttrDef { id: "RemedialActionScheduleDependency.ReplacedRemedialActionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "Remedial action schedule that is replaced by dependent remedial action schedule." },
7017            AttrDef { id: "RemedialActionScheduleDependency.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "RemedialActionScheduleDependencyKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["RAS"], comment: "Type of dependency between two remedial action schedules." },
7018            AttrDef { id: "RemedialActionScheduleDependency.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["RAS"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
7019        ],
7020    },
7021    ClassDef {
7022        ns: "https://cim4.eu/ns/nc#",
7023        local: "RemedialActionScheduleGroup",
7024        qualified: "nc:RemedialActionScheduleGroup",
7025        super_class: Some(318),
7026        concrete: true,
7027        origins: &["RAS"],
7028        comment: "Remedial action schedule group collects two or more remedial action schedules together. The remedial action schedule group needs to be set up for the same remedial action or proposing alternative remedial action by including a reference to another remedial action.",
7029        attrs: &[
7030            AttrDef { id: "RemedialActionScheduleGroup.GroupDependency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionScheduleDependency", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RAS"], comment: "Group dependency for this remedial action schedule group." },
7031        ],
7032    },
7033    ClassDef {
7034        ns: "https://cim4.eu/ns/nc#",
7035        local: "RemedialActionScheduleOutcomeValue",
7036        qualified: "nc:RemedialActionScheduleOutcomeValue",
7037        super_class: Some(387),
7038        concrete: true,
7039        origins: &["IAM"],
7040        comment: "Outcome of an impact assessment matrix for a remedial action schedule.",
7041        attrs: &[
7042            AttrDef { id: "RemedialActionScheduleOutcomeValue.RemedialActionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["IAM"], comment: "The remedial action schedule that has a remedial action schedule outcome value." },
7043        ],
7044    },
7045    ClassDef {
7046        ns: "https://cim4.eu/ns/nc#",
7047        local: "RemedialActionScheduleResponse",
7048        qualified: "nc:RemedialActionScheduleResponse",
7049        super_class: None,
7050        concrete: true,
7051        origins: &["RAS"],
7052        comment: "The response on the remedial action schedule by a given system operator.",
7053        attrs: &[
7054            AttrDef { id: "RemedialActionScheduleResponse.RemedialActionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "A remedial action schedule for which a remedial action schedule response is reported." },
7055            AttrDef { id: "RemedialActionScheduleResponse.RespondingEntity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SystemOperator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "An entity for which a remedial action schedule response is reported." },
7056            AttrDef { id: "RemedialActionScheduleResponse.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "RemedialActionScheduleResponseKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["RAS"], comment: "The kind of the remedial action response." },
7057            AttrDef { id: "RemedialActionScheduleResponse.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["RAS"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
7058            AttrDef { id: "RemedialActionScheduleResponse.rejectionReason", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["RAS"], comment: "An additional type of rejection reason. It is used only when rejectionReasonKind equals RejectionReasonKind.other." },
7059            AttrDef { id: "RemedialActionScheduleResponse.rejectionReasonKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "RejectionReasonKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["RAS"], comment: "The kind of the remedial action rejection reason." },
7060        ],
7061    },
7062    ClassDef {
7063        ns: "https://cim4.eu/ns/nc#",
7064        local: "RemedialActionScheme",
7065        qualified: "nc:RemedialActionScheme",
7066        super_class: Some(440),
7067        concrete: true,
7068        origins: &["RA", "AS", "SIS", "SSI"],
7069        comment: "Remedial Action Scheme (RAS), Special Protection Schemes (SPS), System Protection Schemes (SPS) or System Integrity Protection Schemes (SIPS). A Remedial Action Scheme consists of one or more stages that can trigger and execute a protection action.",
7070        attrs: &[
7071            AttrDef { id: "RemedialActionScheme.AvailabilityRemedialActionScheme", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailabilityRemedialActionScheme", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "Availability remedial action scheme describe the availabiltiy that affect this remedial action scheme." },
7072            AttrDef { id: "RemedialActionScheme.GateArmed", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Gate", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "Gate that through a gate logic and input pin defines arming of a Remedial Action Scheme." },
7073            AttrDef { id: "RemedialActionScheme.PTCActivePowerSupport", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PTCActivePowerSupport", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The active power support of the PowerTransferCorridor related to this RemedialActionScheme." },
7074            AttrDef { id: "RemedialActionScheme.RemedialActionSchemeSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionSchemeSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Remedial action scheme schedule that has this armed remedial action." },
7075            AttrDef { id: "RemedialActionScheme.SchemeRemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchemeRemedialAction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "Scheme remedial action that belongs to the remedial action scheme." },
7076            AttrDef { id: "RemedialActionScheme.Stage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Stage", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The stage for this remedial action scheme." },
7077            AttrDef { id: "RemedialActionScheme.TriggerCondition", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TriggerCondition", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The triggering condition of this Remedial Action Scheme." },
7078            AttrDef { id: "RemedialActionScheme.armed", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "Defines the arming status of the remedial action scheme. It is set by operation or by signal." },
7079            AttrDef { id: "RemedialActionScheme.inService", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "Indicates if the remedial action scheme and related assets are active and can participate in system operation. If true, the scheme is active. If false, the scheme is treated as if it is not in the model." },
7080            AttrDef { id: "RemedialActionScheme.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "RemedialActionSchemeKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["RA"], comment: "Kind of Remedial Action Scheme." },
7081            AttrDef { id: "RemedialActionScheme.normalArmed", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["RA"], comment: "Defines the normal arming status of the remedial action scheme." },
7082            AttrDef { id: "RemedialActionScheme.normallyInService", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["RA"], comment: "Indicates if the remedial action scheme and related assets are normally active and can participate in system operation under normal operating conditions. If true, the scheme is normally active. If false, the scheme is treated as if it is not in the model." },
7083        ],
7084    },
7085    ClassDef {
7086        ns: "https://cim4.eu/ns/nc#",
7087        local: "RemedialActionSchemeSchedule",
7088        qualified: "nc:RemedialActionSchemeSchedule",
7089        super_class: Some(57),
7090        concrete: true,
7091        origins: &["RAS", "SIS"],
7092        comment: "The schedule for a remedial action scheme.",
7093        attrs: &[
7094            AttrDef { id: "RemedialActionSchemeSchedule.ArmedRemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionScheme", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Armed remedial action for a remedial action scheme." },
7095            AttrDef { id: "RemedialActionSchemeSchedule.RemedialActionSchemeTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionSchemeTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Remedial action scheme time point that relates to this remedial action scheme schedule." },
7096            AttrDef { id: "RemedialActionSchemeSchedule.SchemeRemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchemeRemedialAction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RAS"], comment: "Remedial action scheme which has remedial action scheme schedules." },
7097        ],
7098    },
7099    ClassDef {
7100        ns: "https://cim4.eu/ns/nc#",
7101        local: "RemedialActionSchemeTimePoint",
7102        qualified: "nc:RemedialActionSchemeTimePoint",
7103        super_class: None,
7104        concrete: true,
7105        origins: &["SIS"],
7106        comment: "Remedial action scheme at a given point in time.",
7107        attrs: &[
7108            AttrDef { id: "RemedialActionSchemeTimePoint.RemedialActionSchemeSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionSchemeSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Remedial action scheme schedule that has time point." },
7109            AttrDef { id: "RemedialActionSchemeTimePoint.armed", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SIS"], comment: "Defines the arming status of the remedial action scheme. It is set by operation or by signal." },
7110            AttrDef { id: "RemedialActionSchemeTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
7111            AttrDef { id: "RemedialActionSchemeTimePoint.inService", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SIS"], comment: "Specifies the availability of the Remedial Action Scheme (RAS). If true, the RAS is available for contingency processing. If false, the RAS is treated by contingency processing as if it is not in the model." },
7112        ],
7113    },
7114    ClassDef {
7115        ns: "https://cim.ucaiug.io/ns#",
7116        local: "Reservoir",
7117        qualified: "nc:Reservoir",
7118        super_class: Some(440),
7119        concrete: true,
7120        origins: &["ER", "SHS", "SIS", "SSI"],
7121        comment: "A water storage facility within a hydro system, including: ponds, lakes, lagoons, and rivers. The storage is usually behind some type of dam.",
7122        attrs: &[
7123            AttrDef { id: "Reservoir.HydroPowerPlants", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "HydroPowerPlant", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Generators discharge water to or pumps are supplied water from a downstream reservoir." },
7124            AttrDef { id: "Reservoir.ReservoirRegularSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ReservoirRegularSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The reservoir regular schedule for this reservoir." },
7125            AttrDef { id: "Reservoir.ReservoirSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ReservoirSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS", "SIS"], comment: "The reservoir schedule for this reservoir." },
7126            AttrDef { id: "Reservoir.energyStorage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Amount of energy available in the storage." },
7127            AttrDef { id: "Reservoir.normalEnergyStorage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Normal amount of energy available in the storage." },
7128        ],
7129    },
7130    ClassDef {
7131        ns: "https://cim4.eu/ns/nc#",
7132        local: "ReservoirRegularSchedule",
7133        qualified: "nc:ReservoirRegularSchedule",
7134        super_class: Some(59),
7135        concrete: true,
7136        origins: &["SHS"],
7137        comment: "Regular schedule for reservoir.",
7138        attrs: &[
7139            AttrDef { id: "ReservoirRegularSchedule.Reservoir", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Reservoir", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "The reservoir that has this regular schedule." },
7140            AttrDef { id: "ReservoirRegularSchedule.energyStorage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Amount of energy available in the storage." },
7141        ],
7142    },
7143    ClassDef {
7144        ns: "https://cim4.eu/ns/nc#",
7145        local: "ReservoirSchedule",
7146        qualified: "nc:ReservoirSchedule",
7147        super_class: Some(57),
7148        concrete: true,
7149        origins: &["SHS", "SIS"],
7150        comment: "Reservoir schedule for elements.",
7151        attrs: &[
7152            AttrDef { id: "ReservoirSchedule.Reservoir", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Reservoir", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS", "SIS"], comment: "The reservoir that has a schedule." },
7153            AttrDef { id: "ReservoirSchedule.ReservoirTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ReservoirTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS", "SIS"], comment: "The time point that relates to this reservoir schedule." },
7154        ],
7155    },
7156    ClassDef {
7157        ns: "https://cim4.eu/ns/nc#",
7158        local: "ReservoirTimePoint",
7159        qualified: "nc:ReservoirTimePoint",
7160        super_class: None,
7161        concrete: true,
7162        origins: &["SHS", "SIS"],
7163        comment: "Reservoir values for a given point in time.",
7164        attrs: &[
7165            AttrDef { id: "ReservoirTimePoint.ReservoirSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ReservoirSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS", "SIS"], comment: "The reservoir schedule that has this time point." },
7166            AttrDef { id: "ReservoirTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS", "SIS"], comment: "The time the data is valid for." },
7167            AttrDef { id: "ReservoirTimePoint.energyStorage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS", "SIS"], comment: "Amount of energy available in the storage." },
7168        ],
7169    },
7170    ClassDef {
7171        ns: "http://www.w3.org/ns/dcat#",
7172        local: "Resource",
7173        qualified: "nc:Resource",
7174        super_class: None,
7175        concrete: false,
7176        origins: &["PSP"],
7177        comment: "Resource published or curated by a single agent.",
7178        attrs: &[
7179            AttrDef { id: "Resource.accessRights", ns: "http://purl.org/dc/terms/", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["PSP"], comment: "Information about who access the resource or an indication of its security status. Access Rights may include information regarding access or restrictions based on privacy, security, or other policies." },
7180            AttrDef { id: "Resource.conformsTo", ns: "http://purl.org/dc/terms/", kind: AttrKind::Association, range: "StringIRI", is_list: true, used: true, xsd: "", value_ns: "", origins: &["PSP"], comment: "An established standard to which the described resource conforms." },
7181            AttrDef { id: "Resource.creator", ns: "http://purl.org/dc/terms/", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["PSP"], comment: "An entity responsible for making the resource. Recommended practice is to identify the creator with a URI. If this is not possible or feasible, a literal value that identifies the creator may be provided." },
7182            AttrDef { id: "Resource.description", ns: "http://purl.org/dc/terms/", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["PSP"], comment: "A free-text account of the resource. Description may include but is not limited to: an abstract, a table of contents, a graphical representation, or a free-text account of the resource." },
7183            AttrDef { id: "Resource.hasVersion", ns: "http://www.w3.org/ns/dcat#", kind: AttrKind::Association, range: "IRI", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PSP"], comment: "This resource has a more specific, versioned resource." },
7184            AttrDef { id: "Resource.identifier", ns: "http://purl.org/dc/terms/", kind: AttrKind::Association, range: "StringIRI", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PSP"], comment: "A unique identifier of the resource being described or cataloged. The identifier might be used as part of the IRI of the resource, but still having it represented explicitly is useful. The identifier is a text string which is assigned to the resource to provide an unambiguous reference within a particular context." },
7185            AttrDef { id: "Resource.isVersionOf", ns: "http://www.w3.org/ns/dcat#", kind: AttrKind::Association, range: "IRI", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PSP"], comment: "A related resource of which the described resource is a version, edition, or adaptation. Changes in version imply substantive changes in content rather than differences in format. This property is intended to be used with non-literal values. This property is an inverse property of hasVersion." },
7186            AttrDef { id: "Resource.issued", ns: "http://purl.org/dc/terms/", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["PSP"], comment: "Date of formal issuance of the resource. Recommended practice is to describe the date, date/time, or period of time as recommended for the property Date, of which this is a subproperty." },
7187            AttrDef { id: "Resource.keyword", ns: "http://www.w3.org/ns/dcat#", kind: AttrKind::Association, range: "StringFixedLanguage", is_list: false, used: true, xsd: "", value_ns: "", origins: &["PSP"], comment: "A keyword or tag describing a resource." },
7188            AttrDef { id: "Resource.license", ns: "http://purl.org/dc/terms/", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["PSP"], comment: "A legal document under which the resource is made available. Recommended practice is to identify the license document with a URI. If this is not possible or feasible, a literal value that identifies the license may be provided." },
7189            AttrDef { id: "Resource.modified", ns: "http://purl.org/dc/terms/", kind: AttrKind::Literal, range: "Date", is_list: false, used: true, xsd: "date", value_ns: "", origins: &["PSP"], comment: "Most recent date on which the item was changed, updated or modified. Recommended practice is to describe the date, date/time, or period of time as recommended for the property Date, of which this is a subproperty." },
7190            AttrDef { id: "Resource.publisher", ns: "http://purl.org/dc/terms/", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["PSP"], comment: "An entity responsible for making the resource available." },
7191            AttrDef { id: "Resource.rights", ns: "http://purl.org/dc/terms/", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["PSP"], comment: "A statement that concerns all rights not addressed with dct:license or dct:accessRights, such as copyright statements." },
7192            AttrDef { id: "Resource.rightsHolder", ns: "http://purl.org/dc/terms/", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["PSP"], comment: "Information about rights held in and over the resource. Typically, rights information includes a statement about various property rights associated with the resource, including intellectual property rights. Recommended practice is to refer to a rights statement with a URI. If this is not possible or feasible, a literal value (name, label, or short text) may be provided." },
7193            AttrDef { id: "Resource.title", ns: "http://purl.org/dc/terms/", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["PSP"], comment: "A name given to the resource." },
7194            AttrDef { id: "Resource.version", ns: "http://www.w3.org/ns/dcat#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["PSP"], comment: "The version indicator (name or identifier) of a resource." },
7195            AttrDef { id: "Resource.versionNotes", ns: "http://www.w3.org/ns/adms#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["PSP"], comment: "A description of changes between this version and the previous version of the resource." },
7196        ],
7197    },
7198    ClassDef {
7199        ns: "https://cim.ucaiug.io/ns#",
7200        local: "RotatingMachine",
7201        qualified: "nc:RotatingMachine",
7202        super_class: Some(460),
7203        concrete: false,
7204        origins: &["RA", "SSI"],
7205        comment: "A rotating machine which may be used as a generator or motor.",
7206        attrs: &[
7207            AttrDef { id: "RotatingMachine.RotatingMachineAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RotatingMachineAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The action applied to a rotating machine." },
7208        ],
7209    },
7210    ClassDef {
7211        ns: "https://cim4.eu/ns/nc#",
7212        local: "RotatingMachineAction",
7213        qualified: "nc:RotatingMachineAction",
7214        super_class: Some(507),
7215        concrete: true,
7216        origins: &["RA", "SSI"],
7217        comment: "Rotating machine action.",
7218        attrs: &[
7219            AttrDef { id: "RotatingMachineAction.RotatingMachine", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RotatingMachine", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The rotating machine that has an action." },
7220        ],
7221    },
7222    ClassDef {
7223        ns: "https://cim4.eu/ns/nc#",
7224        local: "RotatingMachineController",
7225        qualified: "nc:RotatingMachineController",
7226        super_class: Some(243),
7227        concrete: true,
7228        origins: &["ER", "SSI"],
7229        comment: "Rotating machine controller is controlling the equipment which may be used as a generator or motor.",
7230        attrs: &[
7231            AttrDef { id: "RotatingMachineController.mode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "RotatingMachineControlModeKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["SSI"], comment: "Mode of the rotating machine controller." },
7232        ],
7233    },
7234    ClassDef {
7235        ns: "https://cim4.eu/ns/nc#",
7236        local: "SSSCController",
7237        qualified: "nc:SSSCController",
7238        super_class: Some(243),
7239        concrete: true,
7240        origins: &["ER", "SSI"],
7241        comment: "The controller of a Static synchronous series compensator (SSSC).",
7242        attrs: &[
7243            AttrDef { id: "SSSCController.CurrentDroopOverride", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CurrentDroopOverride", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The current droop override for this SSSC controller. It is not used when the SSSC controller is in mode currentDroop." },
7244            AttrDef { id: "SSSCController.SSSCSimulationSettings", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SSSCSimulationSettings", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The simulation setings that apply for this controller." },
7245            AttrDef { id: "SSSCController.maxInjectionU", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Maximum voltage that the device can inject." },
7246            AttrDef { id: "SSSCController.maxLimitI", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Maximum operating current limit applied for the controller and used by any of the available control functions." },
7247            AttrDef { id: "SSSCController.minInjectionU", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Minimum voltage that the device can inject." },
7248            AttrDef { id: "SSSCController.minLimitI", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Minimum operating current limit applied for the controller and used by any of the available control functions." },
7249            AttrDef { id: "SSSCController.mode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "SSSCControlModeKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["SSI"], comment: "Mode of the Static Synchronous Series compensator controller." },
7250        ],
7251    },
7252    ClassDef {
7253        ns: "https://cim4.eu/ns/nc#",
7254        local: "SSSCSimulationSettings",
7255        qualified: "nc:SSSCSimulationSettings",
7256        super_class: None,
7257        concrete: true,
7258        origins: &["ER"],
7259        comment: "SSSC control simulation settings used by the algorithm for power flow calculations.",
7260        attrs: &[
7261            AttrDef { id: "SSSCSimulationSettings.SSSCController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SSSCController", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The controller that uses these simulation settings." },
7262            AttrDef { id: "SSSCSimulationSettings.deltaX", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Reactance delta for the solution algorithm. The solution “outer-loop” algorithm is based on a secant method which needs two initial points. The second point is calculated from the first one by either adding or subtracting this “delta”. The “seed” is assumed to be 0 ohms." },
7263            AttrDef { id: "SSSCSimulationSettings.isEstimateDLDVSensitive", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER"], comment: "Defines if the estimate is considering the dI/dV sensitivity (true) instead of the secant algorithm (false)." },
7264            AttrDef { id: "SSSCSimulationSettings.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["ER"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
7265            AttrDef { id: "SSSCSimulationSettings.maxCorrectionX", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Maximum value of the reactance correction applied between Iterations of the power flow calculation algorithm for the purpose of achieving control target value." },
7266            AttrDef { id: "SSSCSimulationSettings.maxIterations", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["ER"], comment: "Maximum number of iterations before claiming an open line condition. The algorithm uses it to assess if a line is really open by making sure low-currents are observed on various consecutive iterations." },
7267            AttrDef { id: "SSSCSimulationSettings.maxMismatch", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Maximum mismatch tolerance of voltage target value. If mismatch is lower, convergence is claimed. It is only used for voltageInjection and currentDroop control modes." },
7268        ],
7269    },
7270    ClassDef {
7271        ns: "https://cim4.eu/ns/nc#",
7272        local: "ScheduleResource",
7273        qualified: "nc:ScheduleResource",
7274        super_class: Some(440),
7275        concrete: true,
7276        origins: &["ER", "SIS", "SSI"],
7277        comment: "A schedule resource is a market-based method for handling participation of small units, particularly located on the lower voltage level that is controlled by a Distributed System Operator (DSO). It is a collection of units that can operate in the market by providing bids, offers and a resulting committed operational schedule for the collection.",
7278        attrs: &[
7279            AttrDef { id: "ScheduleResource.AreaReserveResource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AreaReserveResource", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Area reserve resources representing the balancing reserve products provided through the schedule resource." },
7280            AttrDef { id: "ScheduleResource.GeneratingUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GeneratingUnit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The generating unit that relates to this schedule resource." },
7281            AttrDef { id: "ScheduleResource.HydroPump", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "HydroPump", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The hydro pump that relates to this schedule resource." },
7282            AttrDef { id: "ScheduleResource.PowerBidSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerBidSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Power bid schedule which belongs to a schedule resource." },
7283            AttrDef { id: "ScheduleResource.PowerElectronicsUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerElectronicsUnit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The power electronics unit that relates to this schedule resource." },
7284            AttrDef { id: "ScheduleResource.PowerShiftKeySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerShiftKeySchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The Power Shift Key schedule for a schedule resource." },
7285            AttrDef { id: "ScheduleResource.PrimaryEnergyResourceType", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyResourceType", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The primary energy resource type represented by the schedule resource. Note: Where a schedule resource represents multiple energy resource types, the detailed resource model should be used to determine the individual contributions." },
7286            AttrDef { id: "ScheduleResource.ResourceOf", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ScheduleResource", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The schedule resource that has this subschedule resource." },
7287            AttrDef { id: "ScheduleResource.ScheduleResourceController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ScheduleResourceController", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Schedule resource controller for this schedule resource." },
7288            AttrDef { id: "ScheduleResource.SchedulingArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchedulingArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The scheduling area that has this schedule resource." },
7289            AttrDef { id: "ScheduleResource.SubScheduleResource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ScheduleResource", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The subschedule resource that relates to the schedule resource." },
7290            AttrDef { id: "ScheduleResource.normalParticipationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). In the case of priority strategy, the item with the lowest number gets allocated energy first." },
7291            AttrDef { id: "ScheduleResource.p", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Active power injection. Load sign convention is used, i.e. positive sign means flow out from a node." },
7292            AttrDef { id: "ScheduleResource.participationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). In the case of priority strategy, the item with the lowest number gets allocated energy first." },
7293        ],
7294    },
7295    ClassDef {
7296        ns: "https://cim4.eu/ns/nc#",
7297        local: "ScheduleResourceController",
7298        qualified: "nc:ScheduleResourceController",
7299        super_class: Some(243),
7300        concrete: true,
7301        origins: &["ER"],
7302        comment: "Schedule resource controller is controlling the equipment to optimize the schedule resource.",
7303        attrs: &[
7304            AttrDef { id: "ScheduleResourceController.ScheduleResource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ScheduleResource", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Schedule resource that has a schedule resource controller." },
7305        ],
7306    },
7307    ClassDef {
7308        ns: "https://cim4.eu/ns/nc#",
7309        local: "SchedulingArea",
7310        qualified: "nc:SchedulingArea",
7311        super_class: Some(440),
7312        concrete: true,
7313        origins: &["ER", "PS", "SIS", "SSI"],
7314        comment: "An area where production and/or consumption of energy can be forecasted, scheduled and measured. The area is operated by only one system operator, typically a Transmission System Operator (TSO). The area can consist of a sub area, which has the same definition as the main area, but it can be operated by another system operator (typically Distributed System Operator (DSO) or a Closed Distributed System Operator (CDSO)). This includes microgrid concept. A substation is the smallest grouping that can be included in the area. The area size should be considered in terms of the possibility of accumulated reading (settlement metering) and the capability of operating as an island.",
7315        attrs: &[
7316            AttrDef { id: "SchedulingArea.AreaReserveResource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AreaReserveResource", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Area reserve resources made available within the scheduling area for the provision of balancing reserve products." },
7317            AttrDef { id: "SchedulingArea.BiddingZone", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BiddingZone", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The bidding zone related to this scheduling area." },
7318            AttrDef { id: "SchedulingArea.ControlArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ControlArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The control area for this scheduling area." },
7319            AttrDef { id: "SchedulingArea.DCTieCorridor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCTieCorridor", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The DC tie corridor that is part of this scheduling area." },
7320            AttrDef { id: "SchedulingArea.EnergyCoordinationRegion", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyCoordinationRegion", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The energy coordination region that has this scheduling area." },
7321            AttrDef { id: "SchedulingArea.EnergyResourceGroupCapacity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyResourceGroupCapacity", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The Energy Resource Group Capacity belonging to a given energy scheduling area." },
7322            AttrDef { id: "SchedulingArea.GridPowerCapacity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridPowerCapacity", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Grid Power capacity of this shaduling area." },
7323            AttrDef { id: "SchedulingArea.HasPart", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchedulingArea", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The scheduling area has these scheduling area parts." },
7324            AttrDef { id: "SchedulingArea.Line", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Line", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The line that is part of this scheduling area." },
7325            AttrDef { id: "SchedulingArea.LoadFrequencyControlArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "LoadFrequencyControlArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The load frequency control area which has this scheduling area." },
7326            AttrDef { id: "SchedulingArea.PartOf", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchedulingArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The scheduling area is part of this scheduling area." },
7327            AttrDef { id: "SchedulingArea.PowerSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["PS"], comment: "Power schedule which belongs to the scheduling area." },
7328            AttrDef { id: "SchedulingArea.PowerShiftKeySchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerShiftKeySchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "" },
7329            AttrDef { id: "SchedulingArea.PowerShiftKeyStrategy", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerShiftKeyStrategy", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Power Shift Key Strategy which has a scheduling area." },
7330            AttrDef { id: "SchedulingArea.ScheduleResource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ScheduleResource", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The schedule resource that belongs to this scheduled area." },
7331            AttrDef { id: "SchedulingArea.SchedulingAreaExchangePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchedulingAreaExchangePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The scheduling area exchange point for this scheduling area." },
7332            AttrDef { id: "SchedulingArea.Substation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Substation", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The substation that is part of this scheduling area." },
7333            AttrDef { id: "SchedulingArea.SynchronousArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SynchronousArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The synchronous are that has this scheduling area." },
7334            AttrDef { id: "SchedulingArea.SystemOperator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SystemOperator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The system operator for this scheduling area." },
7335            AttrDef { id: "SchedulingArea.isIslandingEnabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER"], comment: "Identifies if the area can operate in island operation. If true, the area is enabled (capable) of operating as an electrical island. If false, the area does not have the capability or it is not enabled to operate as an electrical island." },
7336            AttrDef { id: "SchedulingArea.isMeteringGridArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER"], comment: "Identifies if the area is settlement metered for all import and export to the area. If true, the area is metered area. If false, it is not." },
7337            AttrDef { id: "SchedulingArea.normalParticipationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Normal participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). In the case of priority strategy, the item with the lowest number gets allocated energy first." },
7338            AttrDef { id: "SchedulingArea.p", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Netted active power representing production, consumption and import/export for the scheduling area. Load sign convention is used, i.e. positive value indicates flow into the area." },
7339            AttrDef { id: "SchedulingArea.participationFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). In the case of priority strategy, the item with the lowest number gets allocated energy first." },
7340            AttrDef { id: "SchedulingArea.q", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Netted reactive power representing production, consumption and import/export for the scheduling area. Load sign convention is used, i.e. positive value indicates flow into the area." },
7341            AttrDef { id: "SchedulingArea.type", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["ER"], comment: "Type of scheduling area." },
7342        ],
7343    },
7344    ClassDef {
7345        ns: "https://cim4.eu/ns/nc#",
7346        local: "SchedulingAreaExchangePoint",
7347        qualified: "nc:SchedulingAreaExchangePoint",
7348        super_class: None,
7349        concrete: true,
7350        origins: &["ER"],
7351        comment: "Combination of scheduling area and one or more energy exchange point to define the relevant exchange point for a given scheduling area.",
7352        attrs: &[
7353            AttrDef { id: "SchedulingAreaExchangePoint.EnergyExchangePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EnergyExchangePoint", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The energy exchange point associated with the scheduling area." },
7354            AttrDef { id: "SchedulingAreaExchangePoint.SchedulingArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchedulingArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The scheduling area that has a scheduling area exchange point." },
7355            AttrDef { id: "SchedulingAreaExchangePoint.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["ER"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
7356        ],
7357    },
7358    ClassDef {
7359        ns: "https://cim4.eu/ns/nc#",
7360        local: "SchemeRemedialAction",
7361        qualified: "nc:SchemeRemedialAction",
7362        super_class: Some(466),
7363        concrete: true,
7364        origins: &["RA", "RAS", "SSI"],
7365        comment: "Scheme remedial action is remedial action that involves a scheme that can include conditional logic and stages of grid alteration. The primary remedial action is the arming of these schemes, that will then perform curative remedial action when the condition is met. System Integrity Protection Scheme (SIPS) and Special Protection Scheme (SPS) are example of this.",
7366        attrs: &[
7367            AttrDef { id: "SchemeRemedialAction.RemedialActionScheme", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionScheme", is_list: false, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "Remedial action scheme for this scheme remedial action." },
7368            AttrDef { id: "SchemeRemedialAction.RemedialActionSchemeSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionSchemeSchedule", is_list: false, used: false, xsd: "", value_ns: "", origins: &["RAS"], comment: "Remedial action scheme schedule associated with a remedial action scheme." },
7369        ],
7370    },
7371    ClassDef {
7372        ns: "https://cim.ucaiug.io/ns#",
7373        local: "Season",
7374        qualified: "nc:Season",
7375        super_class: Some(318),
7376        concrete: true,
7377        origins: &["SHS", "SIS"],
7378        comment: "A specified time period of the year.",
7379        attrs: &[
7380            AttrDef { id: "Season.BaseRegularIntervalSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BaseRegularIntervalSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS", "SIS"], comment: "Base regular interval schedule which has seasons." },
7381            AttrDef { id: "Season.endDate", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "MonthDay", is_list: false, used: true, xsd: "gMonthDay", value_ns: "", origins: &["SHS", "SIS"], comment: "Date season ends." },
7382            AttrDef { id: "Season.startDate", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "MonthDay", is_list: false, used: true, xsd: "gMonthDay", value_ns: "", origins: &["SHS", "SIS"], comment: "Date season starts." },
7383        ],
7384    },
7385    ClassDef {
7386        ns: "https://cim4.eu/ns/nc#",
7387        local: "SecondarySubstation",
7388        qualified: "nc:SecondarySubstation",
7389        super_class: Some(531),
7390        concrete: true,
7391        origins: &["ER"],
7392        comment: "A SecondarySubstation is a substation that is either supplied by or serves a primary substation. It is responsible for transforming, distributing, or aggregating power to and from installations such as homes, industrial facilities, or prosumer sites. A secondary substation supports bidirectional power flows, enabling both consumption and injection of energy within the distribution network. It typically includes transformers, switchgear, protection, and measurement equipment, and may be equipped for remote monitoring or autonomous control",
7393        attrs: &[
7394            AttrDef { id: "SecondarySubstation.PrimarySubstation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Substation", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The primary substation that serves the secondary substation." },
7395            AttrDef { id: "SecondarySubstation.SubSchedulingArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SubSchedulingArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The subscheduling area that has the secondary substation connected." },
7396        ],
7397    },
7398    ClassDef {
7399        ns: "https://cim4.eu/ns/nc#",
7400        local: "SecurityCoordinator",
7401        qualified: "nc:SecurityCoordinator",
7402        super_class: Some(544),
7403        concrete: true,
7404        origins: &["ER", "RAS"],
7405        comment: "A post that coordinates the relevant remedial actions and their optimisation to ensure efficient use to achieve required operational security of the power system.",
7406        attrs: &[
7407            AttrDef { id: "SecurityCoordinator.CapacityCalculationRegion", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CapacityCalculationRegion", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The capacity calculation region operated by this security coordinator." },
7408            AttrDef { id: "SecurityCoordinator.OutageCoordinationRegion", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutageCoordinationRegion", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The outage coordination region that has this security coordinator." },
7409            AttrDef { id: "SecurityCoordinator.RemedialActionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RAS"], comment: "Remedial action schedule for this security coordinator." },
7410        ],
7411    },
7412    ClassDef {
7413        ns: "https://cim4.eu/ns/nc#",
7414        local: "SensitivityArea",
7415        qualified: "nc:SensitivityArea",
7416        super_class: Some(333),
7417        concrete: true,
7418        origins: &["MA", "IAM"],
7419        comment: "A monitoring area that defines the required observability area given by the sensitivity factors.",
7420        attrs: &[
7421            AttrDef { id: "SensitivityArea.QuantitativeRemedialActionImpact", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "QuantitativeRemedialActionImpact", is_list: true, used: false, xsd: "", value_ns: "", origins: &["IAM"], comment: "Quantitative remedial action impact when the remedial action is influencing equipment included in the sensitivity area." },
7422        ],
7423    },
7424    ClassDef {
7425        ns: "https://cim4.eu/ns/nc#",
7426        local: "SensitivityFactor",
7427        qualified: "nc:SensitivityFactor",
7428        super_class: None,
7429        concrete: true,
7430        origins: &["SM"],
7431        comment: "The sensitivity factor which represents the sensitivity between observable and controllable elements.",
7432        attrs: &[
7433            AttrDef { id: "SensitivityFactor.ControllableQuantity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ControllableQuantity", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SM"], comment: "The controllable quantity for this sensitivity factor." },
7434            AttrDef { id: "SensitivityFactor.ObservableQuantity", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ObservableQuantity", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SM"], comment: "The observable quantity for this sensitivity factor." },
7435            AttrDef { id: "SensitivityFactor.SensitivityMatrix", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SensitivityMatrix", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SM"], comment: "The sensitivity matrix which contains this sensitivity factor." },
7436            AttrDef { id: "SensitivityFactor.value", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SM"], comment: "The value of the sensitivity factor." },
7437        ],
7438    },
7439    ClassDef {
7440        ns: "https://cim4.eu/ns/nc#",
7441        local: "SensitivityMatrix",
7442        qualified: "nc:SensitivityMatrix",
7443        super_class: Some(318),
7444        concrete: true,
7445        origins: &["SM"],
7446        comment: "The sensitivity matrix which represents the sensitivity factors between observable and controllable elements.",
7447        attrs: &[
7448            AttrDef { id: "SensitivityMatrix.SensitivityFactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SensitivityFactor", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SM"], comment: "The sensitivity factor which belongs to this sensitivity matrix." },
7449            AttrDef { id: "SensitivityMatrix.kind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "SensitivityMatrixKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["SM"], comment: "The kind of sensitivity matrix." },
7450        ],
7451    },
7452    ClassDef {
7453        ns: "https://cim.ucaiug.io/ns#",
7454        local: "Sensor",
7455        qualified: "nc:Sensor",
7456        super_class: Some(40),
7457        concrete: false,
7458        origins: &["SSI"],
7459        comment: "This class describe devices that transform a measured quantity into signals that can be presented at displays, used in control or be recorded.",
7460        attrs: &[],
7461    },
7462    ClassDef {
7463        ns: "https://cim4.eu/ns/nc#",
7464        local: "SequenceTimePoint",
7465        qualified: "nc:SequenceTimePoint",
7466        super_class: None,
7467        concrete: true,
7468        origins: &["SIS"],
7469        comment: "Sequence at a given point in time.",
7470        attrs: &[
7471            AttrDef { id: "SequenceTimePoint.GenericSequenceSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GenericSequenceSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The sequence schedule which belongs to the sequence timepoint." },
7472            AttrDef { id: "SequenceTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
7473            AttrDef { id: "SequenceTimePoint.sequence", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["SIS"], comment: "Sequence needs to be ordered by the scheduling area. It has to be unique by the scheduling area." },
7474        ],
7475    },
7476    ClassDef {
7477        ns: "https://cim.ucaiug.io/ns#",
7478        local: "SeriesCompensator",
7479        qualified: "nc:SeriesCompensator",
7480        super_class: Some(90),
7481        concrete: true,
7482        origins: &["SSI"],
7483        comment: "A Series Compensator is a series capacitor or reactor or an AC transmission line without charging susceptance. It is a two terminal device.",
7484        attrs: &[],
7485    },
7486    ClassDef {
7487        ns: "https://cim4.eu/ns/nc#",
7488        local: "SetPointAction",
7489        qualified: "nc:SetPointAction",
7490        super_class: Some(304),
7491        concrete: false,
7492        origins: &["RA", "SSI"],
7493        comment: "Setpoint action.",
7494        attrs: &[],
7495    },
7496    ClassDef {
7497        ns: "https://cim.ucaiug.io/ns#",
7498        local: "ShuntCompensator",
7499        qualified: "nc:ShuntCompensator",
7500        super_class: Some(460),
7501        concrete: false,
7502        origins: &["RA", "SHS", "SSI"],
7503        comment: "A shunt capacitor or reactor or switchable bank of shunt capacitors or reactors. A section of a shunt compensator is an individual capacitor or reactor. A negative value for bPerSection indicates that the compensator is a reactor. ShuntCompensator is a single terminal device. Ground is implied.",
7504        attrs: &[
7505            AttrDef { id: "ShuntCompensator.ShuntCompensatorAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ShuntCompensatorModification", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The action that is applied to a ShuntCompensator." },
7506            AttrDef { id: "ShuntCompensator.ShuntCompensatorSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ShuntCompensatorSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "Shunt compensator schedule associated with a shunt compensator." },
7507        ],
7508    },
7509    ClassDef {
7510        ns: "https://cim4.eu/ns/nc#",
7511        local: "ShuntCompensatorModification",
7512        qualified: "nc:ShuntCompensatorModification",
7513        super_class: Some(507),
7514        concrete: true,
7515        origins: &["RA", "SSI"],
7516        comment: "Shunt compensator action.",
7517        attrs: &[
7518            AttrDef { id: "ShuntCompensatorModification.ShuntCompensator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ShuntCompensator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The ShuntCompensator that is associated with an action." },
7519        ],
7520    },
7521    ClassDef {
7522        ns: "https://cim4.eu/ns/nc#",
7523        local: "ShuntCompensatorSchedule",
7524        qualified: "nc:ShuntCompensatorSchedule",
7525        super_class: Some(57),
7526        concrete: true,
7527        origins: &["SHS"],
7528        comment: "Schedule for shunt compensator.",
7529        attrs: &[
7530            AttrDef { id: "ShuntCompensatorSchedule.ShuntCompensator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ShuntCompensator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Shunt compensator which has shunt compensator schedules." },
7531            AttrDef { id: "ShuntCompensatorSchedule.ShuntCompensatorTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ShuntCompensatorTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The time point that relates to this shunt compensator schedule." },
7532        ],
7533    },
7534    ClassDef {
7535        ns: "https://cim4.eu/ns/nc#",
7536        local: "ShuntCompensatorTimePoint",
7537        qualified: "nc:ShuntCompensatorTimePoint",
7538        super_class: None,
7539        concrete: true,
7540        origins: &["SHS"],
7541        comment: "Shunt compensator values for a given point in time.",
7542        attrs: &[
7543            AttrDef { id: "ShuntCompensatorTimePoint.ShuntCompensatorSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ShuntCompensatorSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "The shunt compensator schedule that has this time point." },
7544            AttrDef { id: "ShuntCompensatorTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS"], comment: "The time the data is valid for." },
7545            AttrDef { id: "ShuntCompensatorTimePoint.sections", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Shunt compensator sections in use. Starting value for steady state solution. The attribute shall be a positive value or zero. Non integer values are allowed to support continuous variables. The reasons for continuous value are to support study cases where no discrete shunt compensators has yet been designed, a solutions where a narrow voltage band force the sections to oscillate or accommodate for a continuous solution as input. For LinearShuntConpensator the value shall be between zero and ShuntCompensator.maximumSections. At value zero the shunt compensator conductance and admittance is zero. Linear interpolation of conductance and admittance between the previous and next integer section is applied in case of non-integer values. For NonlinearShuntCompensator-s shall only be set to one of the NonlinearShuntCompenstorPoint.sectionNumber. There is no interpolation between NonlinearShuntCompenstorPoint-s." },
7546        ],
7547    },
7548    ClassDef {
7549        ns: "https://cim.ucaiug.io/ns#",
7550        local: "SimulationEvents",
7551        qualified: "nc:SimulationEvents",
7552        super_class: None,
7553        concrete: false,
7554        origins: &["CO"],
7555        comment: "A configuration or a set of events executed during a simulation.",
7556        attrs: &[
7557            AttrDef { id: "SimulationEvents.Contingency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Contingency", is_list: false, used: false, xsd: "", value_ns: "", origins: &["CO"], comment: "Contingency part of this simulation event." },
7558        ],
7559    },
7560    ClassDef {
7561        ns: "https://cim.ucaiug.io/ns#",
7562        local: "SolarGeneratingUnit",
7563        qualified: "nc:SolarGeneratingUnit",
7564        super_class: Some(289),
7565        concrete: true,
7566        origins: &["SSI"],
7567        comment: "A solar thermal generating unit, connected to the grid by means of a rotating machine. This class does not represent photovoltaic (PV) generation.",
7568        attrs: &[],
7569    },
7570    ClassDef {
7571        ns: "https://cim4.eu/ns/nc#",
7572        local: "SolarRadiationDependencyCurve",
7573        qualified: "nc:SolarRadiationDependencyCurve",
7574        super_class: Some(342),
7575        concrete: true,
7576        origins: &["ER"],
7577        comment: "A curve or functional relationship between - the solar radiation independent variable (X-axis), and - relative dependent (Y-axis) variables.",
7578        attrs: &[
7579            AttrDef { id: "SolarRadiationDependencyCurve.OperationalLimitType", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OperationalLimitType", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The operational limit type that has this permanent solar radiation curve." },
7580        ],
7581    },
7582    ClassDef {
7583        ns: "https://cim4.eu/ns/nc#",
7584        local: "Stage",
7585        qualified: "nc:Stage",
7586        super_class: Some(318),
7587        concrete: true,
7588        origins: &["RA", "SAR"],
7589        comment: "Stage of a remedial action scheme.",
7590        attrs: &[
7591            AttrDef { id: "Stage.GridStateAlterationCollection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GridStateAlterationCollection", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The GridStateAlterationCollection which belongs to the Stage." },
7592            AttrDef { id: "Stage.RemedialActionApplied", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionApplied", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SAR"], comment: "The applied relationship between remedial action and a power flow result." },
7593            AttrDef { id: "Stage.RemedialActionScheme", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionScheme", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The remedial action scheme that has a stage." },
7594            AttrDef { id: "Stage.StageTrigger", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "StageTrigger", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The state trigger that is part of this stage." },
7595            AttrDef { id: "Stage.priority", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["RA"], comment: "The priority of the stage. 0 = do not care (default) 1 = highest priority. 2 is less than 1 and so on. A stage with higher priority needs be activated before a lower stage can be activated." },
7596        ],
7597    },
7598    ClassDef {
7599        ns: "https://cim4.eu/ns/nc#",
7600        local: "StageTrigger",
7601        qualified: "nc:StageTrigger",
7602        super_class: Some(440),
7603        concrete: true,
7604        origins: &["RA", "SIS", "SSI"],
7605        comment: "Stage that is triggered either by TriggerCondition or by gate condition within a stage.",
7606        attrs: &[
7607            AttrDef { id: "StageTrigger.GateArmed", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Gate", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The gate that is the input pin which defines arming of the StageTrigger." },
7608            AttrDef { id: "StageTrigger.GateComCondition", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Gate", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The gate that is the input pin which defines a communication condition." },
7609            AttrDef { id: "StageTrigger.GateTrigger", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Gate", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The gate that is the input pin which triggers the protective reactions." },
7610            AttrDef { id: "StageTrigger.Stage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Stage", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The stage that has this stage trigger." },
7611            AttrDef { id: "StageTrigger.StageTriggerSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "StageTriggerSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Stage trigger schedule associated with a stage trigger." },
7612            AttrDef { id: "StageTrigger.armed", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "The status of the class set by operation or by signal. Optional field that will override other status fields." },
7613            AttrDef { id: "StageTrigger.inService", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSI"], comment: "Indicates if the stage trigger is in service." },
7614            AttrDef { id: "StageTrigger.normalArmed", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["RA"], comment: "The default/normal value used when other active signal/values are missing." },
7615            AttrDef { id: "StageTrigger.priority", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["RA"], comment: "Priority of trigger. 0 = don t care (default) 1 = highest priority. 2 is less than 1 and so on. A trigger with the highest priority will trigger first." },
7616        ],
7617    },
7618    ClassDef {
7619        ns: "https://cim4.eu/ns/nc#",
7620        local: "StageTriggerSchedule",
7621        qualified: "nc:StageTriggerSchedule",
7622        super_class: Some(57),
7623        concrete: true,
7624        origins: &["SIS"],
7625        comment: "Schedule for a stage trigger.",
7626        attrs: &[
7627            AttrDef { id: "StageTriggerSchedule.StageTrigger", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "StageTrigger", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Stage trigger which has stage trigger schedules." },
7628            AttrDef { id: "StageTriggerSchedule.StageTriggerTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "StageTriggerTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Stage trigger time point that relates to this remedial action scheme schedule." },
7629        ],
7630    },
7631    ClassDef {
7632        ns: "https://cim4.eu/ns/nc#",
7633        local: "StageTriggerTimePoint",
7634        qualified: "nc:StageTriggerTimePoint",
7635        super_class: None,
7636        concrete: true,
7637        origins: &["SIS"],
7638        comment: "Stage trigger values at a given point in time.",
7639        attrs: &[
7640            AttrDef { id: "StageTriggerTimePoint.StageTriggerSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "StageTriggerSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Stage trigger schedule that has time point." },
7641            AttrDef { id: "StageTriggerTimePoint.armed", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SIS"], comment: "Defines the arming status of the remedial action scheme. It is set by operation or by signal." },
7642            AttrDef { id: "StageTriggerTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
7643            AttrDef { id: "StageTriggerTimePoint.inService", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SIS"], comment: "Specifies the availability of the Remedial Action Scheme (RAS). If true, the RAS is available for contingency processing. If false, the RAS is treated by contingency processing as if it is not in the model." },
7644        ],
7645    },
7646    ClassDef {
7647        ns: "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
7648        local: "Statement",
7649        qualified: "nc:Statement",
7650        super_class: None,
7651        concrete: false,
7652        origins: &["DM"],
7653        comment: "rdf:Statement is an instance of rdfs:Class. It is intended to represent the class of RDF statements. An RDF statement is the statement made by a token of an RDF triple. The subject of an RDF statement is the instance of rdfs:Resource identified by the subject of the triple. The predicate of an RDF statement is the instance of rdf:Property identified by the predicate of the triple. The object of an RDF statement is the instance of rdfs:Resource identified by the object of the triple. rdf:Statement is in the domain of the properties rdf:predicate, rdf:subject and rdf:object. Different individual rdf:Statement instances may have the same values for their rdf:predicate, rdf:subject and rdf:object properties.",
7654        attrs: &[
7655            AttrDef { id: "object", ns: "http://www.w3.org/1999/02/22-rdf-syntax-ns#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["DM"], comment: "rdf:object is an instance of rdf:Property that is used to state the object of a statement." },
7656            AttrDef { id: "predicate", ns: "http://www.w3.org/1999/02/22-rdf-syntax-ns#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["DM"], comment: "rdf:predicate is an instance of rdf:Property that is used to state the predicate of a statement." },
7657            AttrDef { id: "subject", ns: "http://www.w3.org/1999/02/22-rdf-syntax-ns#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["DM"], comment: "rdf:subject is an instance of rdf:Property that is used to state the subject of a statement." },
7658        ],
7659    },
7660    ClassDef {
7661        ns: "https://cim4.eu/ns/dcatcim#",
7662        local: "Statements",
7663        qualified: "nc:Statements",
7664        super_class: None,
7665        concrete: true,
7666        origins: &["DM"],
7667        comment: "One or more facts in the form of an RDF triples that forms a cohesive description of change to a dataset.",
7668        attrs: &[
7669            AttrDef { id: "statement", ns: "https://cim4.eu/ns/dcatcim#", kind: AttrKind::Association, range: "Statement", is_list: true, used: true, xsd: "", value_ns: "", origins: &["DM"], comment: "A name given to the resource." },
7670        ],
7671    },
7672    ClassDef {
7673        ns: "https://cim4.eu/ns/nc#",
7674        local: "StaticPropertyRange",
7675        qualified: "nc:StaticPropertyRange",
7676        super_class: Some(451),
7677        concrete: true,
7678        origins: &["RA", "SSI"],
7679        comment: "Defines the static range, which means that this is the minimum and/or maximum of an attribute value. The value provided by the schedule replaces the value of the attribute to which the schedule refers to. In case that the PropertyReference refers to Boolean type attributes, RangeConstraint.direction shall be none or upAndDown and the RangeConstraint.valueKind shall be absolute. If the direction is none then optimization of the attribute referenced by the PropertyReference is not possible if the current status is already as the value in the range. Otherwise if the direction is upAndDown, the optimization can change from true to false or vice versa independently of the initial value in the operational scenario. For instance for a tap changer related grid state alteration for a particular point in time, if the range of TapChanger.step is to be restricted, the value of the schedule will represent that new TapChanger.step range.",
7680        attrs: &[
7681            AttrDef { id: "StaticPropertyRange.PropertyReference", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PropertyReference", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "Property reference for this static property range." },
7682        ],
7683    },
7684    ClassDef {
7685        ns: "https://cim4.eu/ns/nc#",
7686        local: "StaticSynchronousCompensator",
7687        qualified: "nc:StaticSynchronousCompensator",
7688        super_class: Some(266),
7689        concrete: true,
7690        origins: &["ER", "SSI"],
7691        comment: "Static synchronous compensator (STATCOM), also known as a static synchronous condenser (STATCON), is a type of flexible AC transmission system regulating equipment used on alternating current electricity transmission networks. It is based on a power electronics voltage-source converter and can act as either a source or sink of reactive AC power to an electricity network. If connected to a source of power it can also provide active AC power.",
7692        attrs: &[],
7693    },
7694    ClassDef {
7695        ns: "https://cim4.eu/ns/nc#",
7696        local: "StaticSynchronousSeriesCompensator",
7697        qualified: "nc:StaticSynchronousSeriesCompensator",
7698        super_class: Some(266),
7699        concrete: true,
7700        origins: &["ER", "SSI"],
7701        comment: "Static synchronous series compensator (SSSC) is a type of flexible AC transmission system which consists of a solid-state voltage source inverter coupled with a transformer that is connected in series with a transmission line. This device can inject an almost sinusoidal voltage in series with the line. This injected voltage could be considered as an inductive or capacitive reactance, which is connected in series with the transmission line. This feature can provide controllable voltage compensation. In addition, SSSC is able to reverse the power flow by injecting a sufficiently large series reactive compensating voltage. Moreover it can inject a voltage proportional to the difference between the line current and the pre-configured current threshold. It shall have two Terminal-s associated with it.",
7702        attrs: &[],
7703    },
7704    ClassDef {
7705        ns: "https://cim4.eu/ns/nc#",
7706        local: "StaticVarCompensator",
7707        qualified: "nc:StaticVarCompensator",
7708        super_class: Some(266),
7709        concrete: true,
7710        origins: &["ER", "RA", "SHS", "SSI"],
7711        comment: "A facility for providing variable and controllable shunt reactive power. The SVC typically consists of a stepdown transformer, filter, thyristor-controlled reactor, and thyristor-switched capacitor arms. The SVC may operate in fixed MVar output mode or in voltage control mode. When in voltage control mode, the output of the SVC will be proportional to the deviation of voltage at the controlled bus from the voltage setpoint. The SVC characteristic slope defines the proportion. If the voltage at the controlled bus is equal to the voltage setpoint, the SVC MVar output is zero.",
7712        attrs: &[
7713            AttrDef { id: "StaticVarCompensator.StaticVarCompensatorAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "StaticVarCompensatorAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The action which is applied to a StaticVarCompensator." },
7714            AttrDef { id: "StaticVarCompensator.StaticVarCompensatorSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "StaticVarCompensatorSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "Static var compensator schedule associated with a static var compensator." },
7715        ],
7716    },
7717    ClassDef {
7718        ns: "https://cim4.eu/ns/nc#",
7719        local: "StaticVarCompensatorAction",
7720        qualified: "nc:StaticVarCompensatorAction",
7721        super_class: Some(507),
7722        concrete: true,
7723        origins: &["RA", "SSI"],
7724        comment: "Static Var compensator action.",
7725        attrs: &[
7726            AttrDef { id: "StaticVarCompensatorAction.StaticVarCompensator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "StaticVarCompensator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The StaticVarCompensator which is associated with an action." },
7727        ],
7728    },
7729    ClassDef {
7730        ns: "https://cim4.eu/ns/nc#",
7731        local: "StaticVarCompensatorSchedule",
7732        qualified: "nc:StaticVarCompensatorSchedule",
7733        super_class: Some(57),
7734        concrete: true,
7735        origins: &["SHS"],
7736        comment: "Schedule for static var compensator.",
7737        attrs: &[
7738            AttrDef { id: "StaticVarCompensatorSchedule.StaticVarCompensator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "StaticVarCompensator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Static var compensator which has static var compensator schedules." },
7739            AttrDef { id: "StaticVarCompensatorSchedule.StaticVarCompensatorTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "StaticVarCompensatorTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The time point that relates to this static var compensator schedule." },
7740        ],
7741    },
7742    ClassDef {
7743        ns: "https://cim4.eu/ns/nc#",
7744        local: "StaticVarCompensatorTimePoint",
7745        qualified: "nc:StaticVarCompensatorTimePoint",
7746        super_class: None,
7747        concrete: true,
7748        origins: &["SHS"],
7749        comment: "Static var compensator values for a given point in time.",
7750        attrs: &[
7751            AttrDef { id: "StaticVarCompensatorTimePoint.StaticVarCompensatorSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "StaticVarCompensatorSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "The StaticVarCompensator schedule that has this time point." },
7752            AttrDef { id: "StaticVarCompensatorTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS"], comment: "The time the data is valid for." },
7753            AttrDef { id: "StaticVarCompensatorTimePoint.q", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Reactive power injection. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for a steady state solution." },
7754        ],
7755    },
7756    ClassDef {
7757        ns: "https://cim.ucaiug.io/ns#",
7758        local: "StationSupply",
7759        qualified: "nc:StationSupply",
7760        super_class: Some(230),
7761        concrete: true,
7762        origins: &["SSI"],
7763        comment: "Station supply with load derived from the station output.",
7764        attrs: &[],
7765    },
7766    ClassDef {
7767        ns: "https://cim4.eu/ns/nc#",
7768        local: "SubControlArea",
7769        qualified: "nc:SubControlArea",
7770        super_class: Some(105),
7771        concrete: true,
7772        origins: &["ER"],
7773        comment: "A SubControlArea representing the operational control domain within a higher-level control area. It is typically operated by a Distribution System Operator (DSO) and covers the monitoring, control, scheduling, and application of operational limits for distribution system resources and exchanges at its boundary.",
7774        attrs: &[],
7775    },
7776    ClassDef {
7777        ns: "https://cim4.eu/ns/nc#",
7778        local: "SubSchedulingArea",
7779        qualified: "nc:SubSchedulingArea",
7780        super_class: Some(495),
7781        concrete: true,
7782        origins: &["ER"],
7783        comment: "An area that is a part of another scheduling area. Typically part of a Transmission System Operator (TSO) scheduling area operated by a Distributed System Operator (DSO) or a Close Distributed System Operator (CDSO). This includes microgrid concept. A sub scheduling area can contain other sub areas. A sub scheduling area leaf will form the smallest entity of any given energy area.",
7784        attrs: &[
7785            AttrDef { id: "SubSchedulingArea.SecondarySubstation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SecondarySubstation", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The secondary substation that is connected to this subscheduling area." },
7786        ],
7787    },
7788    ClassDef {
7789        ns: "https://cim.ucaiug.io/ns#",
7790        local: "Substation",
7791        qualified: "nc:Substation",
7792        super_class: Some(242),
7793        concrete: true,
7794        origins: &["ER", "RA"],
7795        comment: "A collection of equipment for purposes other than generation or utilization, through which electric energy in bulk is passed for the purposes of switching or modifying its characteristics.",
7796        attrs: &[
7797            AttrDef { id: "Substation.DCConverterUnit", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Association, range: "DCConverterUnit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The DC converter unit belonging of the substation." },
7798            AttrDef { id: "Substation.DCSubstation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "DCSubstation", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "DC substation that is part of AC and DC substation." },
7799            AttrDef { id: "Substation.SchedulingArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchedulingArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The scheduling area that has this substation." },
7800            AttrDef { id: "Substation.SecondarySubstation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SecondarySubstation", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The secondary substation for this primary substation." },
7801        ],
7802    },
7803    ClassDef {
7804        ns: "https://cim4.eu/ns/nc#",
7805        local: "SubstationController",
7806        qualified: "nc:SubstationController",
7807        super_class: Some(243),
7808        concrete: true,
7809        origins: &["ER", "SSI"],
7810        comment: "Substation controller is controlling the equipment to optimize the use of the controlling equipment within a substation.",
7811        attrs: &[
7812            AttrDef { id: "SubstationController.mode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "SubstationControllerModeKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["SSI"], comment: "Mode of the substation controller." },
7813        ],
7814    },
7815    ClassDef {
7816        ns: "https://cim.ucaiug.io/ns#",
7817        local: "SurgeArrester",
7818        qualified: "nc:SurgeArrester",
7819        super_class: Some(40),
7820        concrete: true,
7821        origins: &["SSI"],
7822        comment: "Shunt device, installed on the network, usually in the proximity of electrical equipment in order to protect the said equipment against transient voltage transients caused by lightning or switching activity.",
7823        attrs: &[],
7824    },
7825    ClassDef {
7826        ns: "https://cim.ucaiug.io/ns#",
7827        local: "Switch",
7828        qualified: "nc:Switch",
7829        super_class: Some(90),
7830        concrete: true,
7831        origins: &["SSI", "RA", "SHS"],
7832        comment: "A generic device designed to close, or open, or both, one or more electric circuits. All switches are two terminal devices including grounding switches. The ACDCTerminal.connected at the two sides of the switch shall not be considered for assessing switch connectivity, i.e. only Switch.open, .normalOpen and .locked are relevant.",
7833        attrs: &[
7834            AttrDef { id: "Switch.SwitchRegularSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SwitchRegularSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "SwitchRegularSchedule which belongs to a switch." },
7835            AttrDef { id: "Switch.SwitchSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SwitchSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "Switch schedule associated with a switch." },
7836            AttrDef { id: "Switch.TopologyAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TopologyAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The action assigned to a switch." },
7837        ],
7838    },
7839    ClassDef {
7840        ns: "https://cim4.eu/ns/nc#",
7841        local: "SwitchRegularSchedule",
7842        qualified: "nc:SwitchRegularSchedule",
7843        super_class: Some(59),
7844        concrete: true,
7845        origins: &["SHS"],
7846        comment: "Regular schedule for switch.",
7847        attrs: &[
7848            AttrDef { id: "SwitchRegularSchedule.Switch", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Switch", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Switch which has SwitchRegularSchedule." },
7849            AttrDef { id: "SwitchRegularSchedule.locked", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SHS"], comment: "If true, the switch is locked. The resulting switch state is a combination of locked and Switch.open attributes as follows: locked=true and Switch.open=true. The resulting state is open and locked; locked=false and Switch.open=true. The resulting state is open; locked=false and Switch.open=false. The resulting state is closed." },
7850            AttrDef { id: "SwitchRegularSchedule.open", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SHS"], comment: "The attribute tells if the switch is considered open when used as input to topology processing." },
7851        ],
7852    },
7853    ClassDef {
7854        ns: "https://cim4.eu/ns/nc#",
7855        local: "SwitchSchedule",
7856        qualified: "nc:SwitchSchedule",
7857        super_class: Some(57),
7858        concrete: true,
7859        origins: &["SHS"],
7860        comment: "Schedule for switch.",
7861        attrs: &[
7862            AttrDef { id: "SwitchSchedule.Switch", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Switch", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Switch which has switch schedules." },
7863            AttrDef { id: "SwitchSchedule.SwitchTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SwitchTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The time point that relates to this switch schedule." },
7864        ],
7865    },
7866    ClassDef {
7867        ns: "https://cim4.eu/ns/nc#",
7868        local: "SwitchTimePoint",
7869        qualified: "nc:SwitchTimePoint",
7870        super_class: None,
7871        concrete: true,
7872        origins: &["SHS"],
7873        comment: "Switch values for a given point in time.",
7874        attrs: &[
7875            AttrDef { id: "SwitchTimePoint.SwitchSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SwitchSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "The switch schedule that has this time point." },
7876            AttrDef { id: "SwitchTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS"], comment: "The time the data is valid for." },
7877            AttrDef { id: "SwitchTimePoint.locked", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SHS"], comment: "If true, the switch is locked. The resulting switch state is a combination of locked and Switch.open attributes as follows: locked=true and Switch.open=true. The resulting state is open and locked; locked=false and Switch.open=true. The resulting state is open; locked=false and Switch.open=false. The resulting state is closed." },
7878            AttrDef { id: "SwitchTimePoint.open", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SHS"], comment: "The attribute tells if the switch is considered open when used as input to topology processing." },
7879        ],
7880    },
7881    ClassDef {
7882        ns: "https://cim4.eu/ns/nc#",
7883        local: "SynchronousArea",
7884        qualified: "nc:SynchronousArea",
7885        super_class: Some(440),
7886        concrete: true,
7887        origins: &["ER", "MA"],
7888        comment: "A synchronous area is an electrical area covered by interconnect with a common system frequency in a steady-state.",
7889        attrs: &[
7890            AttrDef { id: "SynchronousArea.LoadFrequencyControlBlock", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "LoadFrequencyControlBlock", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The load frequency control block that is part of this synchronous area." },
7891            AttrDef { id: "SynchronousArea.MonitoringArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "MonitoringArea", is_list: true, used: false, xsd: "", value_ns: "", origins: &["MA"], comment: "The monitoring area that is part of this synchronous area." },
7892            AttrDef { id: "SynchronousArea.SchedulingArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchedulingArea", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The scheduling area that is part of this synchronous area." },
7893            AttrDef { id: "SynchronousArea.nominalFrequency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The nominal frequency for the Synchronous Area, e.g. 50 Hz for Europe." },
7894        ],
7895    },
7896    ClassDef {
7897        ns: "https://cim.ucaiug.io/ns#",
7898        local: "SynchronousMachine",
7899        qualified: "nc:SynchronousMachine",
7900        super_class: Some(488),
7901        concrete: true,
7902        origins: &["SSI", "ER", "SHS"],
7903        comment: "An electromechanical device that operates with shaft rotating synchronously with the network. It is a single machine operating either as a generator or synchronous condenser or pump.",
7904        attrs: &[
7905            AttrDef { id: "SynchronousMachine.ReactiveCapabilityCurve2", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ReactiveCapabilityCurve", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Reactive capability curve for this synchronous machine." },
7906            AttrDef { id: "SynchronousMachine.SynchronousMachineRegularSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SynchronousMachineRegularSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "SynchronousMachineRegularSchedule which belongs to a synchronous machine." },
7907            AttrDef { id: "SynchronousMachine.SynchronousMachineSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SynchronousMachineSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "Synchronous machine schedule associated with a synchronous machine." },
7908        ],
7909    },
7910    ClassDef {
7911        ns: "https://cim4.eu/ns/nc#",
7912        local: "SynchronousMachineRegularSchedule",
7913        qualified: "nc:SynchronousMachineRegularSchedule",
7914        super_class: Some(59),
7915        concrete: true,
7916        origins: &["SHS"],
7917        comment: "Regular schedule for synchronous machine.",
7918        attrs: &[
7919            AttrDef { id: "SynchronousMachineRegularSchedule.SynchronousMachine", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SynchronousMachine", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "SynchronousMachine which has SynchronousMachineRegularSchedule." },
7920            AttrDef { id: "SynchronousMachineRegularSchedule.operatingMode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "SynchronousMachineOperatingMode", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["SHS"], comment: "Current mode of operation." },
7921            AttrDef { id: "SynchronousMachineRegularSchedule.referencePriority", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["SHS"], comment: "Priority of unit for use as powerflow voltage phase angle reference bus selection. 0 = don t care (default) 1 = highest priority. 2 is less than 1 and so on." },
7922        ],
7923    },
7924    ClassDef {
7925        ns: "https://cim4.eu/ns/nc#",
7926        local: "SynchronousMachineSchedule",
7927        qualified: "nc:SynchronousMachineSchedule",
7928        super_class: Some(57),
7929        concrete: true,
7930        origins: &["SHS"],
7931        comment: "Schedule for synchronous machine.",
7932        attrs: &[
7933            AttrDef { id: "SynchronousMachineSchedule.SynchronousMachine", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SynchronousMachine", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Synchronous machine which has synchronous machine schedules." },
7934            AttrDef { id: "SynchronousMachineSchedule.SynchronousMachineTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SynchronousMachineTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The time point that relates to this synchronous machine schedule." },
7935        ],
7936    },
7937    ClassDef {
7938        ns: "https://cim4.eu/ns/nc#",
7939        local: "SynchronousMachineTimePoint",
7940        qualified: "nc:SynchronousMachineTimePoint",
7941        super_class: None,
7942        concrete: true,
7943        origins: &["SHS"],
7944        comment: "Synchronous machine values for a given point in time.",
7945        attrs: &[
7946            AttrDef { id: "SynchronousMachineTimePoint.SynchronousMachineSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SynchronousMachineSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "The synchronous machine schedule that has this time point." },
7947            AttrDef { id: "SynchronousMachineTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS"], comment: "The time the data is valid for." },
7948            AttrDef { id: "SynchronousMachineTimePoint.operatingMode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "SynchronousMachineOperatingMode", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["SHS"], comment: "Current mode of operation." },
7949            AttrDef { id: "SynchronousMachineTimePoint.referencePriority", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["SHS"], comment: "Priority of unit for use as powerflow voltage phase angle reference bus selection. 0 = don t care (default) 1 = highest priority. 2 is less than 1 and so on." },
7950        ],
7951    },
7952    ClassDef {
7953        ns: "https://cim4.eu/ns/nc#",
7954        local: "SystemControl",
7955        qualified: "nc:SystemControl",
7956        super_class: Some(39),
7957        concrete: false,
7958        origins: &["ER"],
7959        comment: "System control is the management and regulation of various parameters within the electrical grid to ensure its stable and reliable operation. The primary goal of system control is to maintain the balance between electricity generation and consumption, while also managing factors such as voltage, frequency, and power quality. This involves the use of control devices, automation, and monitoring systems to respond to changes in the grid and maintain its overall stability. This serves as Integrated AC and DC control system (IEC 60633) which governs the integrated operation of AC and DC systems of a power system.",
7960        attrs: &[
7961            AttrDef { id: "SystemControl.EquipmentController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquipmentController", is_list: true, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Equipment controller controlles by this system control" },
7962        ],
7963    },
7964    ClassDef {
7965        ns: "https://cim4.eu/ns/nc#",
7966        local: "SystemOperationCoordinator",
7967        qualified: "nc:SystemOperationCoordinator",
7968        super_class: Some(545),
7969        concrete: false,
7970        origins: &["ER"],
7971        comment: "A post that coordinates relevant information and impact in regards to operating the power system.",
7972        attrs: &[],
7973    },
7974    ClassDef {
7975        ns: "https://cim4.eu/ns/nc#",
7976        local: "SystemOperationOrganisationPost",
7977        qualified: "nc:SystemOperationOrganisationPost",
7978        super_class: Some(376),
7979        concrete: false,
7980        origins: &["ER"],
7981        comment: "A responsibility-bearing ecosystem post for system operation, held by an agent acting on behalf of an organisation, with accountability for coordinating and executing operational functions necessary to maintain the secure and reliable operation of the power system within a defined scope (e.g., network area, control area, voltage level, or set of resources). Note: This post is defined from the power system ecosystem viewpoint and may be reassigned over time. It covers operational accountability (planning, monitoring, switching/dispatch coordination, and operational communication) for the applicable scope, rather than ownership of the resources themselves.",
7982        attrs: &[],
7983    },
7984    ClassDef {
7985        ns: "https://cim4.eu/ns/nc#",
7986        local: "SystemOperator",
7987        qualified: "nc:SystemOperator",
7988        super_class: Some(545),
7989        concrete: false,
7990        origins: &["AE", "AS", "CO", "ER", "GD", "IAM", "MA", "RA", "RAS"],
7991        comment: "A power system operation post responsible for performing and coordinating the real-time and planning functions required to maintain the secure, reliable, and efficient operation of the power system within a defined operational scope. Note: SystemOperator represents the execution of power system operational responsibilities in practice. While the operational post exists independently at the ecosystem level, SystemOperator identifies the specific agent fulfilling that responsibility at a given time. The operational scope may correspond to a control area, network, voltage domain, or other defined boundary.",
7992        attrs: &[
7993            AttrDef { id: "SystemOperator.AssessedElement", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AssessedElement", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AE"], comment: "All relevant network elements on which operational security violations need to be managed in a coordinated way." },
7994            AttrDef { id: "SystemOperator.AvailablityPlan", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AvailablityPlan", is_list: true, used: false, xsd: "", value_ns: "", origins: &["AS"], comment: "The AvailabilityPlans established or maintained by this System Operator." },
7995            AttrDef { id: "SystemOperator.Contingency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Contingency", is_list: true, used: false, xsd: "", value_ns: "", origins: &["CO"], comment: "Contingency for the equipment that is operated by the system operator." },
7996            AttrDef { id: "SystemOperator.ControlArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ControlArea", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The control area that is related to this system operator." },
7997            AttrDef { id: "SystemOperator.Fault", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Fault", is_list: true, used: false, xsd: "", value_ns: "", origins: &["GD"], comment: "The faults that have occurred in this System Operator's control area." },
7998            AttrDef { id: "SystemOperator.MonitoringArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "MonitoringArea", is_list: true, used: false, xsd: "", value_ns: "", origins: &["MA"], comment: "The monitoring area that is operated by this system operator." },
7999            AttrDef { id: "SystemOperator.OutcomeValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OutcomeValue", is_list: true, used: false, xsd: "", value_ns: "", origins: &["IAM"], comment: "Impact assessment outcome value for this impacted system operator." },
8000            AttrDef { id: "SystemOperator.OwnerRemedialActionAssessment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "OwnerRemedialActionAssessment", is_list: true, used: false, xsd: "", value_ns: "", origins: &["IAM"], comment: "Owner's assessment of the remedial action." },
8001            AttrDef { id: "SystemOperator.ProposingRemedialActionScheduleShare", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ProposingRemedialActionScheduleShare", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RAS"], comment: "Proposing remedial action schedule share which is made by the proposing entity." },
8002            AttrDef { id: "SystemOperator.RemedialAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "Remedial action defined by this system operator." },
8003            AttrDef { id: "SystemOperator.RemedialActionImpact", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionImpact", is_list: true, used: false, xsd: "", value_ns: "", origins: &["IAM"], comment: "The remedial action impact for a given assessing System Operator." },
8004            AttrDef { id: "SystemOperator.RemedialActionScheduleResponse", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionScheduleResponse", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RAS"], comment: "Remedial action schedule response related to a system operator." },
8005            AttrDef { id: "SystemOperator.SchedulingArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "SchedulingArea", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The scheduling area that is operated by this system operator." },
8006        ],
8007    },
8008    ClassDef {
8009        ns: "https://cim4.eu/ns/nc#",
8010        local: "TCSCCompensationPoint",
8011        qualified: "nc:TCSCCompensationPoint",
8012        super_class: None,
8013        concrete: true,
8014        origins: &["ER"],
8015        comment: "Compensation point of a TCSC compensator.",
8016        attrs: &[
8017            AttrDef { id: "TCSCCompensationPoint.ThyristorControlledSeriesCompensator", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ThyristorControlledSeriesCompensator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "TCSC that has different compensation points." },
8018            AttrDef { id: "TCSCCompensationPoint.compensationZ", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Impedance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The compensation impedance for this compensation point." },
8019            AttrDef { id: "TCSCCompensationPoint.mRID", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["ER"], comment: "Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements." },
8020            AttrDef { id: "TCSCCompensationPoint.section", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["ER"], comment: "The number of the section." },
8021        ],
8022    },
8023    ClassDef {
8024        ns: "https://cim4.eu/ns/nc#",
8025        local: "TCSCController",
8026        qualified: "nc:TCSCController",
8027        super_class: Some(243),
8028        concrete: true,
8029        origins: &["ER", "SSI"],
8030        comment: "TCSC controller is controlling the equipment to optimize the performance of the TCSC.",
8031        attrs: &[
8032            AttrDef { id: "TCSCController.mode", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "TCSCControlModeKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["SSI"], comment: "Mode of the TCSC controller." },
8033        ],
8034    },
8035    ClassDef {
8036        ns: "https://cim.ucaiug.io/ns#",
8037        local: "TapChanger",
8038        qualified: "nc:TapChanger",
8039        super_class: None,
8040        concrete: false,
8041        origins: &["ER", "RA", "SHS"],
8042        comment: "Mechanism for changing transformer winding tap positions.",
8043        attrs: &[
8044            AttrDef { id: "TapChanger.TapChangerController", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TapChangerController", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The tap changer controller that controls this TapChanger." },
8045            AttrDef { id: "TapChanger.TapPositionAction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TapPositionAction", is_list: true, used: false, xsd: "", value_ns: "", origins: &["RA"], comment: "The action that is applied to a tap changer." },
8046            AttrDef { id: "TapChanger.TapRegularSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TapRegularSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "TapRegularSchedule which belongs to a tap change." },
8047            AttrDef { id: "TapChanger.TapSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TapSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "Tap schedule associated with a tap changer." },
8048        ],
8049    },
8050    ClassDef {
8051        ns: "https://cim.ucaiug.io/ns#",
8052        local: "TapChangerControl",
8053        qualified: "nc:TapChangerControl",
8054        super_class: None,
8055        concrete: false,
8056        origins: &["SHS"],
8057        comment: "Describes behaviour specific to tap changers, e.g. how the voltage at the end of a line varies with the load level and compensation of the voltage drop by tap adjustment.",
8058        attrs: &[
8059            AttrDef { id: "TapChangerControl.TapChangerControlRegularSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TapChangerControlRegularSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "TapChangerControlRegularSchedule which belongs to a tap changer control." },
8060            AttrDef { id: "TapChangerControl.TapChangerControlSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TapChangerControlSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "TapChangerControlSchedule which belongs to a tap changer control." },
8061        ],
8062    },
8063    ClassDef {
8064        ns: "https://cim4.eu/ns/nc#",
8065        local: "TapChangerControlRegularSchedule",
8066        qualified: "nc:TapChangerControlRegularSchedule",
8067        super_class: Some(463),
8068        concrete: true,
8069        origins: &["SHS"],
8070        comment: "Regular schedule for tap changer control.",
8071        attrs: &[
8072            AttrDef { id: "TapChangerControlRegularSchedule.TapChangerControl", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TapChangerControl", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Tap changer control which has TapChangerControlRegularSchedule." },
8073        ],
8074    },
8075    ClassDef {
8076        ns: "https://cim4.eu/ns/nc#",
8077        local: "TapChangerControlSchedule",
8078        qualified: "nc:TapChangerControlSchedule",
8079        super_class: Some(57),
8080        concrete: true,
8081        origins: &["SHS"],
8082        comment: "Schedule for tap changer control.",
8083        attrs: &[
8084            AttrDef { id: "TapChangerControlSchedule.RegulatingControlTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RegulatingControlTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The time point that relates to this stap changer control schedule." },
8085            AttrDef { id: "TapChangerControlSchedule.TapChangerControl", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TapChangerControl", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Tap changer control which has TapChangerControlSchedule." },
8086        ],
8087    },
8088    ClassDef {
8089        ns: "https://cim4.eu/ns/nc#",
8090        local: "TapChangerController",
8091        qualified: "nc:TapChangerController",
8092        super_class: Some(243),
8093        concrete: true,
8094        origins: &["ER"],
8095        comment: "Tap changer controller is an equipment controller that controls a tap changer, e.g. how the voltage at the end of a line varies with the load level and compensation of the voltage drop by tap adjustment.",
8096        attrs: &[
8097            AttrDef { id: "TapChangerController.TapChanger", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TapChanger", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "All tap changers controlled by this controller." },
8098        ],
8099    },
8100    ClassDef {
8101        ns: "https://cim4.eu/ns/nc#",
8102        local: "TapPositionAction",
8103        qualified: "nc:TapPositionAction",
8104        super_class: Some(304),
8105        concrete: true,
8106        origins: &["RA", "SSI"],
8107        comment: "Tap position action represents a change of a tap changer position in the grid model compared to the base case.",
8108        attrs: &[
8109            AttrDef { id: "TapPositionAction.TapChanger", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TapChanger", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The tap changer that has a tap position action associated." },
8110        ],
8111    },
8112    ClassDef {
8113        ns: "https://cim4.eu/ns/nc#",
8114        local: "TapRegularSchedule",
8115        qualified: "nc:TapRegularSchedule",
8116        super_class: Some(59),
8117        concrete: true,
8118        origins: &["SHS"],
8119        comment: "Regular schedule for tap.",
8120        attrs: &[
8121            AttrDef { id: "TapRegularSchedule.TapChanger", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TapChanger", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Tap changer which has TapRegularSchedule." },
8122            AttrDef { id: "TapRegularSchedule.controlEnabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SHS"], comment: "Specifies the regulation status of the equipment. True is regulating, false is not regulating." },
8123            AttrDef { id: "TapRegularSchedule.step", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Tap changer position. Starting step for a steady state solution. Non integer values are allowed to support continuous tap variables. The reasons for continuous value are to support study cases where no discrete tap changer has yet been designed, a solution where a narrow voltage band forces the tap step to oscillate or to accommodate for a continuous solution as input. The attribute shall be equal to or greater than lowStep and equal to or less than highStep." },
8124        ],
8125    },
8126    ClassDef {
8127        ns: "https://cim4.eu/ns/nc#",
8128        local: "TapSchedule",
8129        qualified: "nc:TapSchedule",
8130        super_class: Some(57),
8131        concrete: true,
8132        origins: &["SHS"],
8133        comment: "Schedule for tap.",
8134        attrs: &[
8135            AttrDef { id: "TapSchedule.TapChanger", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TapChanger", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Tap changer which has tap schedules." },
8136            AttrDef { id: "TapSchedule.TapScheduleTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TapScheduleTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The time point that relates to this tap schedule." },
8137        ],
8138    },
8139    ClassDef {
8140        ns: "https://cim4.eu/ns/nc#",
8141        local: "TapScheduleTimePoint",
8142        qualified: "nc:TapScheduleTimePoint",
8143        super_class: None,
8144        concrete: true,
8145        origins: &["SHS"],
8146        comment: "Tap schedule values for a given point in time.",
8147        attrs: &[
8148            AttrDef { id: "TapScheduleTimePoint.TapSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TapSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "The tap schedule that has this time point." },
8149            AttrDef { id: "TapScheduleTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS"], comment: "The time the data is valid for." },
8150            AttrDef { id: "TapScheduleTimePoint.controlEnabled", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SHS"], comment: "Specifies the regulation status of the equipment. True is regulating, false is not regulating." },
8151            AttrDef { id: "TapScheduleTimePoint.step", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Tap changer position. Starting step for a steady state solution. Non integer values are allowed to support continuous tap variables. The reasons for continuous value are to support study cases where no discrete tap changer has yet been designed, a solution where a narrow voltage band forces the tap step to oscillate or to accommodate for a continuous solution as input. The attribute shall be equal to or greater than lowStep and equal to or less than highStep." },
8152        ],
8153    },
8154    ClassDef {
8155        ns: "https://cim.ucaiug.io/ns#",
8156        local: "Terminal",
8157        qualified: "nc:Terminal",
8158        super_class: Some(4),
8159        concrete: false,
8160        origins: &["ER", "MA", "RA"],
8161        comment: "An AC electrical connection point to a piece of conducting equipment. Terminals are connected at physical connection points called connectivity nodes.",
8162        attrs: &[
8163            AttrDef { id: "Terminal.AreaBorderTerminal", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AreaBorderTerminal", is_list: true, used: false, xsd: "", value_ns: "", origins: &["MA"], comment: "The AreaBorderTerminal that has this Terminal." },
8164            AttrDef { id: "Terminal.Circuit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Circuit", is_list: false, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Circuit that is identified by the given Terminal." },
8165            AttrDef { id: "Terminal.FrequencyMonitoringTerminal", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "FrequencyMonitoringTerminal", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Frequency monitoring terminal that has a terminal." },
8166            AttrDef { id: "Terminal.PinTerminal", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PinTerminal", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER", "RA"], comment: "The pin that uses this input." },
8167            AttrDef { id: "Terminal.VoltageAngleLimit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VoltageAngleLimit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The voltage angle limit which has this reference angle terminal." },
8168        ],
8169    },
8170    ClassDef {
8171        ns: "https://cim.ucaiug.io/ns#",
8172        local: "ThermalGeneratingUnit",
8173        qualified: "nc:ThermalGeneratingUnit",
8174        super_class: Some(289),
8175        concrete: true,
8176        origins: &["ER", "SSI"],
8177        comment: "A generating unit whose prime mover could be a steam turbine, combustion turbine, or diesel engine.",
8178        attrs: &[
8179            AttrDef { id: "ThermalGeneratingUnit.CompressedAirEnergyStoragePlant", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CompressedAirEnergyStoragePlant", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The compressed air energy storage plant of which this thermal generating unit is a member." },
8180            AttrDef { id: "ThermalGeneratingUnit.DependencyAsDependee", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ThermalGeneratingUnitDependency", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The combined-cycle unit dependency in which this thermal generating unit is the dependee." },
8181            AttrDef { id: "ThermalGeneratingUnit.DependencyAsDependent", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ThermalGeneratingUnitDependency", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The combined-cycle unit dependency in which this thermal generating unit is the dependent." },
8182            AttrDef { id: "ThermalGeneratingUnit.ThermalPowerPlant", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ThermalPowerPlant", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The thermal power plant that coordinates this thermal generating unit." },
8183        ],
8184    },
8185    ClassDef {
8186        ns: "https://cim4.eu/ns/nc#",
8187        local: "ThermalGeneratingUnitDependency",
8188        qualified: "nc:ThermalGeneratingUnitDependency",
8189        super_class: Some(393),
8190        concrete: true,
8191        origins: &["ER"],
8192        comment: "A peer temporal dependency that defines temporal or operational constraints between two thermal generating units participating in combined operation. Note: The dependency may define required operating relationships, start-up or shutdown sequencing, loading conditions, temporal constraints, or overlap between the generating units. A lag is evaluated relative to the latest applicable state transition of the dependee generating unit. If the dependee changes state again before the corresponding transition of the dependent generating unit occurs, the previous reference transition is superseded. Consequently, a previous start of the dependee cannot satisfy a start-to-start constraint after the dependee has subsequently stopped and started again. Once the dependent has performed the corresponding transition, that lag constraint is satisfied for that operating cycle. Example: - startToStartLag = 30M, startToStartLagKind = minimum: a dependent steam generating unit may start no earlier than 30 minutes after the dependee gas generating unit starts. If the gas generating unit stops during this period and subsequently starts again, the 30M duration is evaluated from the new start. - finishToStartLag = 2H, finishToStartLagKind = exact: the dependent generating unit starts exactly two hours after the dependee generating unit stops, provided that the dependee has not subsequently changed state. - finishToFinishLag = 20M, finishToFinishLagKind = maximum: the dependent generating unit shall stop no later than 20 minutes after the dependee generating unit stops.",
8193        attrs: &[
8194            AttrDef { id: "ThermalGeneratingUnitDependency.DependeeGeneratingUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ThermalGeneratingUnit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The thermal generating unit upon which operation of the dependent generating unit depends." },
8195            AttrDef { id: "ThermalGeneratingUnitDependency.DependentGeneratingUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ThermalGeneratingUnit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The thermal generating unit whose timing or operation is constrained by the dependee generating unit." },
8196        ],
8197    },
8198    ClassDef {
8199        ns: "https://cim4.eu/ns/nc#",
8200        local: "ThermalPowerPlant",
8201        qualified: "nc:ThermalPowerPlant",
8202        super_class: Some(428),
8203        concrete: true,
8204        origins: &["ER"],
8205        comment: "A power plant that coordinates one or more thermal generating units for producing electrical energy through a thermal energy conversion process.",
8206        attrs: &[
8207            AttrDef { id: "ThermalPowerPlant.ThermalGeneratingUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "ThermalGeneratingUnit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The thermal generating unit that is coordinated as part of this thermal power plant." },
8208        ],
8209    },
8210    ClassDef {
8211        ns: "https://cim4.eu/ns/nc#",
8212        local: "ThyristorControlledSeriesCompensator",
8213        qualified: "nc:ThyristorControlledSeriesCompensator",
8214        super_class: Some(266),
8215        concrete: true,
8216        origins: &["ER", "SSI"],
8217        comment: "Thyristor-controlled series capacitors (TCSC) is a type of flexible AC transmission system regulating equipment that is configured with controlled reactors in parallel with sections of a capacitor bank. This combination allows smooth control of the fundamental frequency capacitive reactance over a wide range. The thyristor valve contains a string of series connected high power thyristors. TCSC can control power flows in order to achieve eliminating of line overloads, reducing loop flows and minimising system losses.",
8218        attrs: &[
8219            AttrDef { id: "ThyristorControlledSeriesCompensator.TCSCCompensationPoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TCSCCompensationPoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Compensation point for this TCSC." },
8220            AttrDef { id: "ThyristorControlledSeriesCompensator.compensationZ", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Impedance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The actual compensation impedance provided by the compensator. The attribute value shall be positive if compensation is in the capacitive range. The attribute value shall be negative if compensation is in the inductive rating." },
8221            AttrDef { id: "ThyristorControlledSeriesCompensator.currentSection", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["SSI"], comment: "The current section on which the TCSC is operating." },
8222            AttrDef { id: "ThyristorControlledSeriesCompensator.flexibleCapacitiveZ", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Impedance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Flexible impedance that can be controlled by the compensator when operating in the capacitive range. Shall always be positive." },
8223            AttrDef { id: "ThyristorControlledSeriesCompensator.flexibleInductiveZ", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Impedance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Flexible impedance that can be controlled by the compensator when operating in the inductive range. Shall always be negative." },
8224            AttrDef { id: "ThyristorControlledSeriesCompensator.minI", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Minimum current below which the device bypassed." },
8225            AttrDef { id: "ThyristorControlledSeriesCompensator.reconnectionI", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The current for which the TCSC returns back to operation after bypass." },
8226        ],
8227    },
8228    ClassDef {
8229        ns: "https://cim4.eu/ns/nc#",
8230        local: "ThyristorValve",
8231        qualified: "nc:ThyristorValve",
8232        super_class: Some(191),
8233        concrete: true,
8234        origins: &["ER", "SSI"],
8235        comment: "Thyristor is a semi-controlled valve. A thyristor valve can 'block' voltage in both directions until a pulse is sent to its gate. Once it starts conducting, it stays on until the current naturally drops to zero.",
8236        attrs: &[
8237            AttrDef { id: "ThyristorValve.CsConverter", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "CsConverter", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The CsConverter that has ThyristorValve." },
8238        ],
8239    },
8240    ClassDef {
8241        ns: "https://cim4.eu/ns/nc#",
8242        local: "TieCorridor",
8243        qualified: "nc:TieCorridor",
8244        super_class: Some(440),
8245        concrete: true,
8246        origins: &["ER"],
8247        comment: "A collection of one or more tie-lines or direct current poles that connect two different control areas.",
8248        attrs: &[
8249            AttrDef { id: "TieCorridor.AreaReserveResource", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "AreaReserveResource", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Area reserve resources provided through the tie corridor for cross-area balancing support." },
8250            AttrDef { id: "TieCorridor.BiddingZoneBorder", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "BiddingZoneBorder", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Bidding zone border in which the tie corridor is included.." },
8251            AttrDef { id: "TieCorridor.LoadFrequencyControlArea", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "LoadFrequencyControlArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "LoadFrequencyControlArea controlling the TieCorridor." },
8252            AttrDef { id: "TieCorridor.TieFlow", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TieFlow", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Tie flow which belongs to the tie corridor." },
8253            AttrDef { id: "TieCorridor.delayRegulatingReserve", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "A positive number that is a multiple of Automatic Generation Control (AGC) run cycles that describes the delay in adapting imbalance of the tie corridor." },
8254            AttrDef { id: "TieCorridor.maxRegulatingReserveRamp", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Maximum authorized ramp for regulating reserve." },
8255            AttrDef { id: "TieCorridor.thresholdRegulatingReserve", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Regulating reserve threshold." },
8256        ],
8257    },
8258    ClassDef {
8259        ns: "https://cim.ucaiug.io/ns#",
8260        local: "TieFlow",
8261        qualified: "nc:TieFlow",
8262        super_class: Some(318),
8263        concrete: true,
8264        origins: &["ER"],
8265        comment: "Defines the structure (in terms of location and direction) of the net interchange constraint for a control area. This constraint may be used by either AGC or power flow.",
8266        attrs: &[
8267            AttrDef { id: "TieFlow.TieCorridor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "TieCorridor", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Tie corridor which has the tie flow." },
8268        ],
8269    },
8270    ClassDef {
8271        ns: "https://cim.ucaiug.io/ns#",
8272        local: "TopologicalNode",
8273        qualified: "nc:TopologicalNode",
8274        super_class: None,
8275        concrete: false,
8276        origins: &["SAR"],
8277        comment: "For a detailed substation model a topological node is a set of connectivity nodes that, in the current network state, are connected together through any type of closed switches, including jumpers. Topological nodes change as the current network state changes (i.e., switches, breakers, etc. change state). For a planning model, switch statuses are not used to form topological nodes. Instead they are manually created or deleted in a model builder tool. Topological nodes maintained this way are also called 'busses'.",
8278        attrs: &[
8279            AttrDef { id: "TopologicalNode.PowerFlowResult", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "PowerFlowResult", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SAR"], comment: "Power result associated with the TopologicalNode." },
8280        ],
8281    },
8282    ClassDef {
8283        ns: "https://cim4.eu/ns/nc#",
8284        local: "TopologyAction",
8285        qualified: "nc:TopologyAction",
8286        super_class: Some(304),
8287        concrete: true,
8288        origins: &["RA", "SSI"],
8289        comment: "Topology action means the connection or disconnection of a switch in the grid model compared to the base case.",
8290        attrs: &[
8291            AttrDef { id: "TopologyAction.Switch", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Switch", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The switch that has a topology action associated." },
8292        ],
8293    },
8294    ClassDef {
8295        ns: "https://cim4.eu/ns/nc#",
8296        local: "TransmissionSystemOperator",
8297        qualified: "nc:TransmissionSystemOperator",
8298        super_class: Some(546),
8299        concrete: true,
8300        origins: &["ER"],
8301        comment: "A system operator role that is responsible for operating of an energy transmission network.",
8302        attrs: &[],
8303    },
8304    ClassDef {
8305        ns: "https://cim4.eu/ns/nc#",
8306        local: "TriggerCondition",
8307        qualified: "nc:TriggerCondition",
8308        super_class: Some(318),
8309        concrete: true,
8310        origins: &["RA"],
8311        comment: "The condition that triggers a remedial action scheme.",
8312        attrs: &[
8313            AttrDef { id: "TriggerCondition.GateTrigger", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Gate", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The gate that is the condition for the trigger." },
8314            AttrDef { id: "TriggerCondition.RemedialActionScheme", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "RemedialActionScheme", is_list: false, used: true, xsd: "", value_ns: "", origins: &["RA"], comment: "The remedial action scheme that has the trigger condition." },
8315        ],
8316    },
8317    ClassDef {
8318        ns: "https://cim4.eu/ns/nc#",
8319        local: "UnifiedPowerFlowController",
8320        qualified: "nc:UnifiedPowerFlowController",
8321        super_class: Some(243),
8322        concrete: true,
8323        origins: &["ER"],
8324        comment: "Unified power flow controller (UPFC) is providing fast-acting reactive power compensation on high-voltage electricity transmission networks.",
8325        attrs: &[],
8326    },
8327    ClassDef {
8328        ns: "https://cim4.eu/ns/nc#",
8329        local: "UnitCostSchedule",
8330        qualified: "nc:UnitCostSchedule",
8331        super_class: Some(57),
8332        concrete: true,
8333        origins: &["SIS"],
8334        comment: "The schedule for a unit cost.",
8335        attrs: &[
8336            AttrDef { id: "UnitCostSchedule.GeneratingUnit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "GeneratingUnit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "GeneratingUnit which has unit cost schedules." },
8337            AttrDef { id: "UnitCostSchedule.UnitCostTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "UnitCostTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The unit cost time point that relates to this unit cost schedule." },
8338            AttrDef { id: "UnitCostSchedule.currency", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "Currency", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["SIS"], comment: "Currency the energy price is given in." },
8339        ],
8340    },
8341    ClassDef {
8342        ns: "https://cim4.eu/ns/nc#",
8343        local: "UnitCostTimePoint",
8344        qualified: "nc:UnitCostTimePoint",
8345        super_class: None,
8346        concrete: true,
8347        origins: &["SIS"],
8348        comment: "Unit cost at a given point in time.",
8349        attrs: &[
8350            AttrDef { id: "UnitCostTimePoint.UnitCostSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "UnitCostSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The unit cost schedule that has time point." },
8351            AttrDef { id: "UnitCostTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
8352            AttrDef { id: "UnitCostTimePoint.shutdownCost", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The shutdown cost incurred for each shutdown of the GeneratingUnit." },
8353            AttrDef { id: "UnitCostTimePoint.startupCost", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The initial startup cost incurred for each start of the GeneratingUnit." },
8354            AttrDef { id: "UnitCostTimePoint.warmStartupCost", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Decimal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The warm startup cost incurred for each start of the GeneratingUnit." },
8355        ],
8356    },
8357    ClassDef {
8358        ns: "https://cim.ucaiug.io/ns#",
8359        local: "UnplannedOutage",
8360        qualified: "nc:UnplannedOutage",
8361        super_class: Some(378),
8362        concrete: true,
8363        origins: &["GD"],
8364        comment: "Document describing the consequence of an unplanned outage in a part of the electrical network. For the purposes of this model, an unplanned outage refers to a state where energy is not delivered; such as, customers out of service, a street light is not served, etc. A unplanned outage may be created upon: - impacts the SAIDI calculation - a breaker trip, - a fault indicator status change, - a meter event indicating customer outage, - a reception of one or more customer trouble calls, or - an operator command, reflecting information obtained from the field crew. Outage restoration may be performed using a switching plan which complements the outage information with detailed switching activities, including the relationship to the crew and work.",
8365        attrs: &[
8366            AttrDef { id: "UnplannedOutage.TrippedEquipment", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Equipment", is_list: true, used: false, xsd: "", value_ns: "", origins: &["GD"], comment: "The equipment that tripped during the outage." },
8367            AttrDef { id: "UnplannedOutage.autoReclosingKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "AutoReclosingKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["GD"], comment: "The type of autoreclosing that occurred with the trip. If high-speed automatic reclosing is successful at one end of a line, but the line needs to be reclosed manually at the other end, choose manual reclosing. In this document, high-speed automatic reclosing refers to automatic reclosing after less than 2 seconds." },
8368            AttrDef { id: "UnplannedOutage.duration", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Duration", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GD"], comment: "The duration of the unplanned outage." },
8369            AttrDef { id: "UnplannedOutage.reportedStartTime", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["GD"], comment: "The earliest start time of the Outage - as reported by some system or individual" },
8370            AttrDef { id: "UnplannedOutage.startDateTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["GD"], comment: "The date and time at which the unplanned outage occurred." },
8371            AttrDef { id: "UnplannedOutage.systemUnitKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "SystemUnitKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["GD"], comment: "The type of system unit of the component affected by the outage. A system unit is defined as: A group of components which are delimited by one or more circuit breakers. Note 1: the system unit concept has been defined to simplify the calculation of availability. While a system unit is always delimited by circuit breakers, an individual component may not always be. A system unit may therefore contain more than one component. Note 2: the circuit breakers are not included in the system unit. Note 3: a tripped element is synonymous to a tripped system unit. Note 4: the type of a system unit is determined by its dominant component. The available system unit types are power transformer, overhead line, cable, reactor, busbar, series capacitor, shunt capacitor and SVC. Note 5: when a system unit is no longer transporting or supplying electrical energy, the system unit is affected by an outage. The system unit is unavailable after the outage has occurred." },
8372            AttrDef { id: "UnplannedOutage.tripKind", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "TripKind", is_list: false, used: true, xsd: "", value_ns: "https://cim4.eu/ns/nc#", origins: &["GD"], comment: "Whether the type of the trip due to the outage was automatic, automatic with successful automatic reclosing or manual. In case of a fault in the reclosing automatics resulting in lack of reclosing, automatic should be chosen as an alternative." },
8373        ],
8374    },
8375    ClassDef {
8376        ns: "https://cim4.eu/ns/nc#",
8377        local: "VoltageAngleControlFunction",
8378        qualified: "nc:VoltageAngleControlFunction",
8379        super_class: Some(109),
8380        concrete: true,
8381        origins: &["ER", "SIS", "SSI"],
8382        comment: "Voltage angle control function is a function block that calculates operating point of the controlled equipment to achieve the target voltage angle.",
8383        attrs: &[
8384            AttrDef { id: "VoltageAngleControlFunction.VoltageAngleControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VoltageAngleControlFunctionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule of the control function." },
8385            AttrDef { id: "VoltageAngleControlFunction.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Target value for the voltage angle that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
8386        ],
8387    },
8388    ClassDef {
8389        ns: "https://cim4.eu/ns/nc#",
8390        local: "VoltageAngleControlFunctionSchedule",
8391        qualified: "nc:VoltageAngleControlFunctionSchedule",
8392        super_class: Some(57),
8393        concrete: true,
8394        origins: &["SIS"],
8395        comment: "The schedule for VoltageAngleControlFunction.",
8396        attrs: &[
8397            AttrDef { id: "VoltageAngleControlFunctionSchedule.VoltageAngleControlFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VoltageAngleControlFunction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The control function that has this schedule." },
8398            AttrDef { id: "VoltageAngleControlFunctionSchedule.VoltageAngleControlFunctionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VoltageAngleControlFunctionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point of the schedule." },
8399        ],
8400    },
8401    ClassDef {
8402        ns: "https://cim4.eu/ns/nc#",
8403        local: "VoltageAngleControlFunctionTimePoint",
8404        qualified: "nc:VoltageAngleControlFunctionTimePoint",
8405        super_class: None,
8406        concrete: true,
8407        origins: &["SIS"],
8408        comment: "Voltage angle control function value for a given point in time.",
8409        attrs: &[
8410            AttrDef { id: "VoltageAngleControlFunctionTimePoint.VoltageAngleControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VoltageAngleControlFunctionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule that has this time point." },
8411            AttrDef { id: "VoltageAngleControlFunctionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
8412            AttrDef { id: "VoltageAngleControlFunctionTimePoint.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Target value for the voltage angle that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
8413        ],
8414    },
8415    ClassDef {
8416        ns: "https://cim4.eu/ns/nc#",
8417        local: "VoltageAngleLimit",
8418        qualified: "nc:VoltageAngleLimit",
8419        super_class: Some(370),
8420        concrete: true,
8421        origins: &["ER", "SIS", "SSI"],
8422        comment: "Voltage angle limit between two terminals. The association end OperationalLimitSet.Terminal defines one end and the host of the limit. The association end VoltageAngleLimit.AngleReferenceTerminal defines the reference terminal.",
8423        attrs: &[
8424            AttrDef { id: "VoltageAngleLimit.AngleReferenceTerminal", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "Terminal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The angle reference terminal for the voltage angle limit." },
8425            AttrDef { id: "VoltageAngleLimit.VoltageAngleSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VoltageAngleSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "Voltage angle schedule associated with a voltage angle limit." },
8426            AttrDef { id: "VoltageAngleLimit.isFlowToRefTerminal", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["ER"], comment: "True if the flow is from the operating limit terminal to the angle reference terminal. False means that the flow is the other direction. When it is not given, the limit is the same for both directions." },
8427            AttrDef { id: "VoltageAngleLimit.normalValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The difference in angle degrees between referenced by the association end OperationalLimitSet.Terminal and the Terminal referenced by the association end VoltageAngleLimit.AngleReferenceTerminal. The value shall be positive (greater than zero)." },
8428            AttrDef { id: "VoltageAngleLimit.value", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "The difference in angle degrees between referenced by the association end OperationalLimitSet.Terminal and the Terminal referenced by the association end VoltageAngleLimit.AngleReferenceTerminal. The value shall be positive (greater than zero)." },
8429        ],
8430    },
8431    ClassDef {
8432        ns: "https://cim4.eu/ns/nc#",
8433        local: "VoltageAngleSchedule",
8434        qualified: "nc:VoltageAngleSchedule",
8435        super_class: Some(57),
8436        concrete: true,
8437        origins: &["SIS"],
8438        comment: "The schedule for a voltage angle.",
8439        attrs: &[
8440            AttrDef { id: "VoltageAngleSchedule.VoltageAngleLimit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VoltageAngleLimit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "Voltage angle limit which has voltage angle schedule." },
8441            AttrDef { id: "VoltageAngleSchedule.VoltageAngletimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VoltageAngleTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The voltage angle time point that relates to this voltage angle schedule." },
8442        ],
8443    },
8444    ClassDef {
8445        ns: "https://cim4.eu/ns/nc#",
8446        local: "VoltageAngleTimePoint",
8447        qualified: "nc:VoltageAngleTimePoint",
8448        super_class: None,
8449        concrete: true,
8450        origins: &["SIS"],
8451        comment: "Voltage angle at a given point in time.",
8452        attrs: &[
8453            AttrDef { id: "VoltageAngleTimePoint.VoltageAngleSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VoltageAngleSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The voltage angle schedule that has time point." },
8454            AttrDef { id: "VoltageAngleTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
8455            AttrDef { id: "VoltageAngleTimePoint.value", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "The difference in angle degrees between referenced by the association end OperationalLimitSet.Terminal and the Terminal referenced by the association end VoltageAngleLimit.AngleReferenceTerminal. The value shall be positive (greater than zero)." },
8456        ],
8457    },
8458    ClassDef {
8459        ns: "https://cim4.eu/ns/nc#",
8460        local: "VoltageControlFunction",
8461        qualified: "nc:VoltageControlFunction",
8462        super_class: Some(109),
8463        concrete: true,
8464        origins: &["ER", "SIS", "SSI"],
8465        comment: "Voltage control function is a function block that calculate the operating point of the controlled equipment to achieve the target voltage.",
8466        attrs: &[
8467            AttrDef { id: "VoltageControlFunction.VoltageControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VoltageControlFunctionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule of the control function." },
8468            AttrDef { id: "VoltageControlFunction.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Target value for the voltage that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
8469        ],
8470    },
8471    ClassDef {
8472        ns: "https://cim4.eu/ns/nc#",
8473        local: "VoltageControlFunctionSchedule",
8474        qualified: "nc:VoltageControlFunctionSchedule",
8475        super_class: Some(57),
8476        concrete: true,
8477        origins: &["SIS"],
8478        comment: "The schedule for VoltageControlFunction.",
8479        attrs: &[
8480            AttrDef { id: "VoltageControlFunctionSchedule.VoltageControlFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VoltageControlFunction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The control function that has this schedule." },
8481            AttrDef { id: "VoltageControlFunctionSchedule.VoltageControlFunctionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VoltageControlFunctionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point of the schedule." },
8482        ],
8483    },
8484    ClassDef {
8485        ns: "https://cim4.eu/ns/nc#",
8486        local: "VoltageControlFunctionTimePoint",
8487        qualified: "nc:VoltageControlFunctionTimePoint",
8488        super_class: None,
8489        concrete: true,
8490        origins: &["SIS"],
8491        comment: "Voltage control function value for a given point in time.",
8492        attrs: &[
8493            AttrDef { id: "VoltageControlFunctionTimePoint.VoltageControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VoltageControlFunctionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule that has this time point." },
8494            AttrDef { id: "VoltageControlFunctionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
8495            AttrDef { id: "VoltageControlFunctionTimePoint.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Target value for the voltage that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
8496        ],
8497    },
8498    ClassDef {
8499        ns: "https://cim4.eu/ns/nc#",
8500        local: "VoltageInjectionControlFunction",
8501        qualified: "nc:VoltageInjectionControlFunction",
8502        super_class: Some(109),
8503        concrete: true,
8504        origins: &["ER", "SIS", "SSI"],
8505        comment: "Voltage injection control function is a function block that calculates the operating point of the controlled equipment to achieve the target voltage injection.",
8506        attrs: &[
8507            AttrDef { id: "VoltageInjectionControlFunction.VoltageInjectionControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VoltageInjectionControlFunctionSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule of the control function." },
8508            AttrDef { id: "VoltageInjectionControlFunction.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSI"], comment: "Target value for the voltage that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
8509        ],
8510    },
8511    ClassDef {
8512        ns: "https://cim4.eu/ns/nc#",
8513        local: "VoltageInjectionControlFunctionSchedule",
8514        qualified: "nc:VoltageInjectionControlFunctionSchedule",
8515        super_class: Some(57),
8516        concrete: true,
8517        origins: &["SIS"],
8518        comment: "The schedule for VoltageInjectionControlFunction.",
8519        attrs: &[
8520            AttrDef { id: "VoltageInjectionControlFunctionSchedule.VoltageInjectionControlFunction", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VoltageInjectionControlFunction", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The control function that has this schedule." },
8521            AttrDef { id: "VoltageInjectionControlFunctionSchedule.VoltageInjectionControlFunctionTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VoltageInjectionControlFunctionTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SIS"], comment: "The time point of the schedule." },
8522        ],
8523    },
8524    ClassDef {
8525        ns: "https://cim4.eu/ns/nc#",
8526        local: "VoltageInjectionControlFunctionTimePoint",
8527        qualified: "nc:VoltageInjectionControlFunctionTimePoint",
8528        super_class: None,
8529        concrete: true,
8530        origins: &["SIS"],
8531        comment: "Voltage injection control function value for a given point in time.",
8532        attrs: &[
8533            AttrDef { id: "VoltageInjectionControlFunctionTimePoint.VoltageInjectionControlFunctionSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VoltageInjectionControlFunctionSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SIS"], comment: "The schedule that has this time point." },
8534            AttrDef { id: "VoltageInjectionControlFunctionTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SIS"], comment: "The time the data is valid for." },
8535            AttrDef { id: "VoltageInjectionControlFunctionTimePoint.targetValue", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SIS"], comment: "Target value for the voltage that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment." },
8536        ],
8537    },
8538    ClassDef {
8539        ns: "https://cim.ucaiug.io/ns#",
8540        local: "VoltageLimit",
8541        qualified: "nc:VoltageLimit",
8542        super_class: None,
8543        concrete: false,
8544        origins: &["SHS"],
8545        comment: "Operational limit applied to voltage. The use of operational VoltageLimit is preferred instead of limits defined at VoltageLevel. The operational VoltageLimits are used, if present.",
8546        attrs: &[
8547            AttrDef { id: "VoltageLimit.VoltageLimitSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VoltageLimitSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "Voltage limit schedule associated with a voltage limit." },
8548        ],
8549    },
8550    ClassDef {
8551        ns: "https://cim4.eu/ns/nc#",
8552        local: "VoltageLimitSchedule",
8553        qualified: "nc:VoltageLimitSchedule",
8554        super_class: Some(57),
8555        concrete: true,
8556        origins: &["SHS"],
8557        comment: "Schedule for voltage limit.",
8558        attrs: &[
8559            AttrDef { id: "VoltageLimitSchedule.VoltageLimit", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VoltageLimit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Voltage limit which has voltage limit schedules." },
8560            AttrDef { id: "VoltageLimitSchedule.VoltageLimitTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VoltageLimitTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The time point that relates to this voltage limit schedule." },
8561        ],
8562    },
8563    ClassDef {
8564        ns: "https://cim4.eu/ns/nc#",
8565        local: "VoltageLimitTimePoint",
8566        qualified: "nc:VoltageLimitTimePoint",
8567        super_class: None,
8568        concrete: true,
8569        origins: &["SHS"],
8570        comment: "Voltage limit values for a given point in time.",
8571        attrs: &[
8572            AttrDef { id: "VoltageLimitTimePoint.VoltageLimitSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VoltageLimitSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "The voltage limit schedule that has this time point." },
8573            AttrDef { id: "VoltageLimitTimePoint.atTime", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["SHS"], comment: "The time the data is valid for." },
8574            AttrDef { id: "VoltageLimitTimePoint.value", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Limit on voltage. High or low limit nature of the limit depends upon the properties of the operational limit type. The attribute shall be a positive value or zero." },
8575        ],
8576    },
8577    ClassDef {
8578        ns: "https://cim.ucaiug.io/ns#",
8579        local: "VsCapabilityCurve",
8580        qualified: "nc:VsCapabilityCurve",
8581        super_class: Some(136),
8582        concrete: true,
8583        origins: &["ER"],
8584        comment: "The P-Q capability curve for a voltage source converter, with P on X-axis and Qmin and Qmax on Y1-axis and Y2-axis.",
8585        attrs: &[
8586            AttrDef { id: "VsCapabilityCurve.EquivalentACDCConverter", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "EquivalentACDCConverter", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "The equivalent AC and DC converter that has a capability curve." },
8587            AttrDef { id: "VsCapabilityCurve.VsConverter", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VsConverter", is_list: false, used: true, xsd: "", value_ns: "", origins: &["ER"], comment: "Converter with this capability curve." },
8588            AttrDef { id: "VsCapabilityCurve.referenceVoltage", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The reference voltage for which the capability curve is valid." },
8589        ],
8590    },
8591    ClassDef {
8592        ns: "https://cim.ucaiug.io/ns#",
8593        local: "VsConverter",
8594        qualified: "nc:VsConverter",
8595        super_class: Some(0),
8596        concrete: true,
8597        origins: &["SSI", "ER", "SHS"],
8598        comment: "DC side of the voltage source converter (VSC).",
8599        attrs: &[
8600            AttrDef { id: "VsConverter.CapabilityCurve2", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VsCapabilityCurve", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "Capability curve of this converter." },
8601            AttrDef { id: "VsConverter.InsulatedGateBipolarTransistorValve", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "InsulatedGateBipolarTransistorValve", is_list: true, used: false, xsd: "", value_ns: "", origins: &["ER"], comment: "The InsulatedGateBipolarTransistorValve of the VSConverter." },
8602            AttrDef { id: "VsConverter.VsConverterRegularSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VsConverterRegularSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "VsConverterRegularSchedule which belongs to a VSConverter." },
8603            AttrDef { id: "VsConverter.VsConverterSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VsConverterSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "Vs converter schedule associated with a Vs converter." },
8604            AttrDef { id: "VsConverter.maxModulationIndex", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "The maximum quotient between the AC converter voltage (Uc) and DC voltage (Ud). A factor typically less than 1. It is converter’s configuration data used in power flow." },
8605            AttrDef { id: "VsConverter.qShare", ns: "https://cim.ucaiug.io/ns#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["ER"], comment: "Reactive power sharing factor among parallel converters on Uac control. The attribute shall be a positive value or zero." },
8606        ],
8607    },
8608    ClassDef {
8609        ns: "https://cim4.eu/ns/nc#",
8610        local: "VsConverterRegularSchedule",
8611        qualified: "nc:VsConverterRegularSchedule",
8612        super_class: Some(3),
8613        concrete: true,
8614        origins: &["SHS"],
8615        comment: "Regular schedule for VS converter.",
8616        attrs: &[
8617            AttrDef { id: "VsConverterRegularSchedule.VsConverter", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VsConverter", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "VsConverter which has VsConverterRegularSchedule." },
8618            AttrDef { id: "VsConverterRegularSchedule.droop", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Droop constant. The pu value is obtained as D [kV/MW] x Sb / Ubdc. The attribute shall be a positive value." },
8619            AttrDef { id: "VsConverterRegularSchedule.droopCompensation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Compensation constant. Used to compensate for voltage drop when controlling voltage at a distant bus. The attribute shall be a positive value." },
8620            AttrDef { id: "VsConverterRegularSchedule.pPccControl", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "VsPpccControlKind", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["SHS"], comment: "Kind of control of real power and/or DC voltage." },
8621            AttrDef { id: "VsConverterRegularSchedule.qPccControl", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "VsQpccControlKind", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["SHS"], comment: "Kind of reactive power control." },
8622            AttrDef { id: "VsConverterRegularSchedule.qShare", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Reactive power sharing factor among parallel converters on Uac control. The attribute shall be a positive value or zero." },
8623            AttrDef { id: "VsConverterRegularSchedule.targetPWMfactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Magnitude of pulse-modulation factor. The attribute shall be a positive value." },
8624            AttrDef { id: "VsConverterRegularSchedule.targetPhasePcc", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Phase target at AC side, at point of common coupling. The attribute shall be a positive value." },
8625            AttrDef { id: "VsConverterRegularSchedule.targetPowerFactorPcc", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Power factor target at the AC side, at point of common coupling. The attribute shall be a positive value." },
8626            AttrDef { id: "VsConverterRegularSchedule.targetQpcc", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Reactive power injection target in AC grid, at point of common coupling. Load sign convention is used, i.e. positive sign means flow out from a node." },
8627            AttrDef { id: "VsConverterRegularSchedule.targetUpcc", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Voltage target in AC grid, at point of common coupling. The attribute shall be a positive value." },
8628        ],
8629    },
8630    ClassDef {
8631        ns: "https://cim4.eu/ns/nc#",
8632        local: "VsConverterSchedule",
8633        qualified: "nc:VsConverterSchedule",
8634        super_class: Some(57),
8635        concrete: true,
8636        origins: &["SHS"],
8637        comment: "Schedule for VS converter.",
8638        attrs: &[
8639            AttrDef { id: "VsConverterSchedule.VsConverter", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VsConverter", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "Vs converter which has Vs converter schedules." },
8640            AttrDef { id: "VsConverterSchedule.VsConverterTimePoint", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VsConverterTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SHS"], comment: "The time point that relates to this VS converter schedule." },
8641        ],
8642    },
8643    ClassDef {
8644        ns: "https://cim4.eu/ns/nc#",
8645        local: "VsConverterTimePoint",
8646        qualified: "nc:VsConverterTimePoint",
8647        super_class: Some(5),
8648        concrete: true,
8649        origins: &["SHS"],
8650        comment: "VS converter values for a given point in time.",
8651        attrs: &[
8652            AttrDef { id: "VsConverterTimePoint.VsConverterSchedule", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Association, range: "VsConverterSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SHS"], comment: "The VS converter schedule that has this time point." },
8653            AttrDef { id: "VsConverterTimePoint.droop", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Droop constant. The pu value is obtained as D [kV/MW] x Sb / Ubdc. The attribute shall be a positive value." },
8654            AttrDef { id: "VsConverterTimePoint.droopCompensation", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Compensation constant. Used to compensate for voltage drop when controlling voltage at a distant bus. The attribute shall be a positive value." },
8655            AttrDef { id: "VsConverterTimePoint.pPccControl", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "VsPpccControlKind", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["SHS"], comment: "Kind of control of real power and/or DC voltage." },
8656            AttrDef { id: "VsConverterTimePoint.qPccControl", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Enum, range: "VsQpccControlKind", is_list: false, used: true, xsd: "", value_ns: "https://cim.ucaiug.io/ns#", origins: &["SHS"], comment: "Kind of reactive power control." },
8657            AttrDef { id: "VsConverterTimePoint.qShare", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Reactive power sharing factor among parallel converters on Uac control. The attribute shall be a positive value or zero." },
8658            AttrDef { id: "VsConverterTimePoint.targetPWMfactor", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Magnitude of pulse-modulation factor. The attribute shall be a positive value." },
8659            AttrDef { id: "VsConverterTimePoint.targetPhasePcc", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Phase target at AC side, at point of common coupling. The attribute shall be a positive value." },
8660            AttrDef { id: "VsConverterTimePoint.targetPowerFactorPcc", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Power factor target at the AC side, at point of common coupling. The attribute shall be a positive value." },
8661            AttrDef { id: "VsConverterTimePoint.targetQpcc", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Reactive power injection target in AC grid, at point of common coupling. Load sign convention is used, i.e. positive sign means flow out from a node." },
8662            AttrDef { id: "VsConverterTimePoint.targetUpcc", ns: "https://cim4.eu/ns/nc#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SHS"], comment: "Voltage target in AC grid, at point of common coupling. The attribute shall be a positive value." },
8663        ],
8664    },
8665    ClassDef {
8666        ns: "https://cim.ucaiug.io/ns#",
8667        local: "WaveTrap",
8668        qualified: "nc:WaveTrap",
8669        super_class: Some(40),
8670        concrete: true,
8671        origins: &["SSI"],
8672        comment: "Line traps are devices that impede high frequency power line carrier signals yet present a negligible impedance at the main power frequency.",
8673        attrs: &[],
8674    },
8675    ClassDef {
8676        ns: "https://cim.ucaiug.io/ns#",
8677        local: "WindGeneratingUnit",
8678        qualified: "nc:WindGeneratingUnit",
8679        super_class: Some(289),
8680        concrete: true,
8681        origins: &["SSI"],
8682        comment: "A wind driven generating unit, connected to the grid by means of a rotating machine. May be used to represent a single turbine or an aggregation.",
8683        attrs: &[],
8684    },
8685];
8686
8687/// Profile code → profile URI, sorted by code.
8688pub static PROFILES: &[(&str, &str)] = &[
8689    ("AE", "https://ap-voc.cim4.eu/AssessedElement/2.4"),
8690    ("AS", "https://ap-voc.cim4.eu/AvailabilitySchedule/2.4"),
8691    ("CO", "https://ap-voc.cim4.eu/Contingency/2.3"),
8692    ("DM", "https://ap-voc.cim4.eu/DatasetMetadata/3.0"),
8693    ("ER", "https://ap-voc.cim4.eu/EquipmentReliability/2.5"),
8694    ("GD", "https://ap-voc.cim4.eu/GridDisturbance/1.1"),
8695    ("IAM", "https://ap-voc.cim4.eu/ImpactAssessmentMatrix/2.4"),
8696    ("MA", "https://ap-voc.cim4.eu/MonitoringArea/2.3"),
8697    ("OR", "https://ap-voc.cim4.eu/ObjectRegistry/3.0"),
8698    ("PS", "https://ap-voc.cim4.eu/PowerSchedule/2.5"),
8699    ("PSP", "https://ap-voc.cim4.eu/PowerSystemProject/2.3"),
8700    ("RA", "https://ap-voc.cim4.eu/RemedialAction/2.5"),
8701    ("RAS", "https://ap-voc.cim4.eu/RemedialActionSchedule/2.4"),
8702    ("SAR", "https://ap-voc.cim4.eu/SecurityAnalysisResult/2.5"),
8703    ("SHS", "https://ap-voc.cim4.eu/SteadyStateHypothesisSchedule/1.1"),
8704    ("SIS", "https://ap-voc.cim4.eu/StateInstructionSchedule/2.5"),
8705    ("SM", "https://ap-voc.cim4.eu/SensitivityMatrix/2.3"),
8706    ("SSI", "https://ap-voc.cim4.eu/SteadyStateInstruction/2.5"),
8707];
8708
8709/// XML prefix → namespace IRI, sorted by prefix.
8710pub static NAMESPACES: &[(&str, &str)] = &[
8711    ("cim", "https://cim.ucaiug.io/ns#"),
8712    ("cims", "http://iec.ch/TC57/1999/rdf-schema-extensions-19990926#"),
8713    ("dcat", "http://www.w3.org/ns/dcat#"),
8714    ("dcatcim", "https://cim4.eu/ns/dcatcim#"),
8715    ("nc", "https://cim4.eu/ns/nc#"),
8716    ("rdf", "http://www.w3.org/1999/02/22-rdf-syntax-ns#"),
8717];
8718
8719/// Every enumeration of the `nc` family, sorted by name.
8720pub static ENUMS: &[EnumDef] = &[
8721    EnumDef {
8722        ns: "https://cim4.eu/ns/nc#",
8723        local: "ACDCConverterControlStrategyKind",
8724        comment: "Kinds of converter control strategy.",
8725        values: &[
8726            EnumValueDef { id: "ACDCConverterControlStrategyKind.gridFollowing", comment: "Converter control strategy in which the converter synchronizes to an externally established AC voltage and frequency reference, typically using phase-locked synchronization and controlled current injection." },
8727            EnumValueDef { id: "ACDCConverterControlStrategyKind.gridForming", comment: "Converter control strategy in which the converter establishes or contributes to the AC voltage magnitude and frequency reference, operating as a controllable AC voltage source." },
8728        ],
8729    },
8730    EnumDef {
8731        ns: "https://cim4.eu/ns/nc#",
8732        local: "ACDCConverterKind",
8733        comment: "Kinds of AC and DC converter.",
8734        values: &[
8735            EnumValueDef { id: "ACDCConverterKind.currentSourceConverter", comment: "Current source converter (CSC)." },
8736            EnumValueDef { id: "ACDCConverterKind.modularMultilevelConverter", comment: "Modular Multilevel Converter (MMC)." },
8737            EnumValueDef { id: "ACDCConverterKind.voltageSourceConverter", comment: "Voltage source converter (VSC)." },
8738        ],
8739    },
8740    EnumDef {
8741        ns: "https://cim.ucaiug.io/ns#",
8742        local: "AsynchronousMachineKind",
8743        comment: "Kind of Asynchronous Machine.",
8744        values: &[
8745            EnumValueDef { id: "AsynchronousMachineKind.generator", comment: "The Asynchronous Machine is a generator." },
8746            EnumValueDef { id: "AsynchronousMachineKind.motor", comment: "The Asynchronous Machine is a motor." },
8747        ],
8748    },
8749    EnumDef {
8750        ns: "https://cim4.eu/ns/nc#",
8751        local: "AutoReclosingKind",
8752        comment: "The type of autoreclosing that occurred with the trip. If high-speed automatic reclosing is successful at one end of a line, but the line needs to be reclosed manually at the other end, choose manual reclosing. In this document, high-speed automatic reclosing refers to automatic reclosing after less than 2 seconds.",
8753        values: &[
8754            EnumValueDef { id: "AutoReclosingKind.automaticallyAfter2SecondsOrMore", comment: "If the automatic reclosing was successful in 2 seconds or more. Also known as 'successful high-speed reclosing'." },
8755            EnumValueDef { id: "AutoReclosingKind.automaticallyAfterLessThan2Seconds", comment: "If the automatic reclosing was successful in 2 seconds or less. Also known as 'successful high-speed reclosing'." },
8756            EnumValueDef { id: "AutoReclosingKind.manuallyAfterInspection", comment: "If the reclosing was done manually after inspection of the component." },
8757            EnumValueDef { id: "AutoReclosingKind.manuallyAfterRepair", comment: "If the reclosing was done manually after repair." },
8758            EnumValueDef { id: "AutoReclosingKind.manuallyAfterRestructuringOfOperations", comment: "If the reclosing was done manually after restructuring of operations." },
8759            EnumValueDef { id: "AutoReclosingKind.manuallyWithoutEitherInspectionRepairOrRestructuringOfOperations", comment: "If the reclosing was done manually without any inspections, repairs or restructurings of operations." },
8760            EnumValueDef { id: "AutoReclosingKind.other", comment: "If the type of auto-reclosing is not unknown but does not fit the other categories, report it as other." },
8761            EnumValueDef { id: "AutoReclosingKind.unknown", comment: "If the type of auto-reclosing is unknown." },
8762        ],
8763    },
8764    EnumDef {
8765        ns: "https://cim4.eu/ns/nc#",
8766        local: "AvailabilityFunctionKind",
8767        comment: "Kind of availability that is affecting the function.",
8768        values: &[
8769            EnumValueDef { id: "AvailabilityFunctionKind.inService", comment: "Function is in service." },
8770            EnumValueDef { id: "AvailabilityFunctionKind.outOfService", comment: "Function is out-of-service." },
8771            EnumValueDef { id: "AvailabilityFunctionKind.underTesting", comment: "Function is under testing and need to expect unscheduled availability." },
8772        ],
8773    },
8774    EnumDef {
8775        ns: "https://cim4.eu/ns/nc#",
8776        local: "AvailabilityScheduleCauseKind",
8777        comment: "The kinds of cause of the (un)availability schedule.",
8778        values: &[
8779            EnumValueDef { id: "AvailabilityScheduleCauseKind.commissioning", comment: "The cause is due to a commissioning." },
8780            EnumValueDef { id: "AvailabilityScheduleCauseKind.decommissioning", comment: "The cause is due to a decommissioning." },
8781            EnumValueDef { id: "AvailabilityScheduleCauseKind.environmentalCondition", comment: "The cause is due to an environmental condition. This can lead to exceptional margin and limits." },
8782            EnumValueDef { id: "AvailabilityScheduleCauseKind.functionalControl", comment: "The cause is due to a functional control (in & out)." },
8783            EnumValueDef { id: "AvailabilityScheduleCauseKind.maintenance", comment: "The cause is due to a maintenance." },
8784            EnumValueDef { id: "AvailabilityScheduleCauseKind.other", comment: "The cause is of other kind." },
8785            EnumValueDef { id: "AvailabilityScheduleCauseKind.refurbishment", comment: "The cause is due to a refurbishment, either upgrade or downgrade." },
8786            EnumValueDef { id: "AvailabilityScheduleCauseKind.worksInProximity", comment: "The cause is due to a works in proximity." },
8787        ],
8788    },
8789    EnumDef {
8790        ns: "https://cim4.eu/ns/nc#",
8791        local: "BalancingReserveKind",
8792        comment: "Classification of the balancing reserve product represented by an AreaReserveResource. The kind identifies the reserve service for which the associated resource has been qualified and made available.",
8793        values: &[
8794            EnumValueDef { id: "BalancingReserveKind.aFRR", comment: "Automatic Frequency Restoration Reserve (aFRR). Automatically activated balancing reserve used to restore system frequency and scheduled interchanges under automatic generation control (AGC)." },
8795            EnumValueDef { id: "BalancingReserveKind.fcr", comment: "Frequency Containment Reserve (FCR). Automatically activated reserve that provides immediate frequency containment following small frequency deviations or disturbances." },
8796            EnumValueDef { id: "BalancingReserveKind.mFRR", comment: "Manual Frequency Restoration Reserve (mFRR). Manually activated balancing reserve used to restore system balance following activation by the system operator." },
8797        ],
8798    },
8799    EnumDef {
8800        ns: "https://cim4.eu/ns/nc#",
8801        local: "BaseTimeSeriesKind",
8802        comment: "Kind of time series.",
8803        values: &[
8804            EnumValueDef { id: "BaseTimeSeriesKind.actual", comment: "Time series is actual data. The values represent measured or calculated values that represent the actual behaviour." },
8805            EnumValueDef { id: "BaseTimeSeriesKind.schedule", comment: "Time series is schedule data. The values represent the result of a committed and plan forecast data that has been through a quality control and could incur penalty when not followed." },
8806            EnumValueDef { id: "BaseTimeSeriesKind.forecast", comment: "Time series is forecast data. The values represent the result of scientific predictions based on historical time stamped data." },
8807            EnumValueDef { id: "BaseTimeSeriesKind.hindcast", comment: "Time series is hindcast data. The value represent probable past (historic) condition given by calculation done using actual values. For instance, determine the among of wind based on the energy produced by wind. However, hindcast is typical the result of a simulated forecasts for historical periods." },
8808        ],
8809    },
8810    EnumDef {
8811        ns: "https://cim.ucaiug.io/ns#",
8812        local: "BatteryStateKind",
8813        comment: "The state of the battery unit.",
8814        values: &[
8815            EnumValueDef { id: "BatteryStateKind.charging", comment: "Stored energy is increasing." },
8816            EnumValueDef { id: "BatteryStateKind.discharging", comment: "Stored energy is decreasing." },
8817            EnumValueDef { id: "BatteryStateKind.empty", comment: "Unable to discharge, and not charging." },
8818            EnumValueDef { id: "BatteryStateKind.full", comment: "Unable to charge, and not discharging." },
8819            EnumValueDef { id: "BatteryStateKind.waiting", comment: "Neither charging nor discharging, but able to do so." },
8820        ],
8821    },
8822    EnumDef {
8823        ns: "https://cim4.eu/ns/nc#",
8824        local: "CalculationKind",
8825        comment: "Kind of calculation operation that can be done to Measurement.",
8826        values: &[
8827            EnumValueDef { id: "CalculationKind.division", comment: "Division operation on the input values (operands)." },
8828            EnumValueDef { id: "CalculationKind.multiplication", comment: "Multiplication operation on the input values (operands)." },
8829            EnumValueDef { id: "CalculationKind.squareRoot", comment: "Square root operator - only one input value (operands)." },
8830            EnumValueDef { id: "CalculationKind.summation", comment: "Summation operation on the input values (operands)." },
8831        ],
8832    },
8833    EnumDef {
8834        ns: "https://cim4.eu/ns/nc#",
8835        local: "CertaintyLevelKind",
8836        comment: "High certainty level is used when the cause of a fault is 100 % certain or when the cause is the most probable cause and potentially determined by an expert.",
8837        values: &[
8838            EnumValueDef { id: "CertaintyLevelKind.high", comment: "The certainty level is high." },
8839            EnumValueDef { id: "CertaintyLevelKind.low", comment: "The certainty level is low." },
8840            EnumValueDef { id: "CertaintyLevelKind.medium", comment: "The certainty level is medium." },
8841            EnumValueDef { id: "CertaintyLevelKind.none", comment: "The certainty level is none." },
8842        ],
8843    },
8844    EnumDef {
8845        ns: "https://cim4.eu/ns/nc#",
8846        local: "ClimateZoneClassificationKind",
8847        comment: "The kind of classification scheme used to define a climate zone. Note: The classification kind identifies the methodology or controlled classification system according to which the climate zone is defined. It does not identify the climate category, code or identifier assigned to the zone within that classification. The category, code or identifier defined by the selected classification scheme is provided separately.",
8848        values: &[
8849            EnumValueDef { id: "ClimateZoneClassificationKind.koppenGeiger", comment: "The K&#246;ppen-Geiger climate classification. Note: The K&#246;ppen-Geiger classification categorises climates principally from long-term temperature and precipitation conditions and their seasonal distribution. Climate categories are represented by codes such as Cfb, Dfb or ET." },
8850            EnumValueDef { id: "ClimateZoneClassificationKind.national", comment: "A climate classification established or adopted by a national authority. Note: National classifications may be established for building regulation, infrastructure design, agriculture, environmental assessment, energy planning or another nationally defined purpose. The responsible authority and classification version should be identifiable when relevant." },
8851            EnumValueDef { id: "ClimateZoneClassificationKind.other", comment: "A climate classification scheme other than those explicitly represented by ClimateZoneClassificationKind. Note: The classification scheme should be identified using ClimateZone.otherClassification. The issuing organisation and applicable version should be identifiable when relevant." },
8852            EnumValueDef { id: "ClimateZoneClassificationKind.pecd", comment: "The climate-zone classification defined by the Pan-European Climate Database (PECD) for climate and energy-system studies. Note: PECD climate zones support the spatial aggregation of climate variables and renewable-energy data used in European power-system studies. The applicable PECD version should be identified separately when relevant." },
8853            EnumValueDef { id: "ClimateZoneClassificationKind.regional", comment: "A climate classification established or adopted for a geographical region. Note: A regional classification may be established by a sub-national, multi-national or other regional authority or organisation and may cover an area that does not correspond to national boundaries." },
8854        ],
8855    },
8856    EnumDef {
8857        ns: "https://cim4.eu/ns/nc#",
8858        local: "CombinedCycleConfigurationKind",
8859        comment: "The configuration of thermal generating units and shaft arrangements used by a combined cycle plant.",
8860        values: &[
8861            EnumValueDef { id: "CombinedCycleConfigurationKind.hybrid", comment: "" },
8862            EnumValueDef { id: "CombinedCycleConfigurationKind.multiBlock", comment: "" },
8863            EnumValueDef { id: "CombinedCycleConfigurationKind.multiShaft", comment: "" },
8864            EnumValueDef { id: "CombinedCycleConfigurationKind.other", comment: "" },
8865            EnumValueDef { id: "CombinedCycleConfigurationKind.singleShaft", comment: "" },
8866        ],
8867    },
8868    EnumDef {
8869        ns: "https://cim4.eu/ns/nc#",
8870        local: "CompensatorControlModeKind",
8871        comment: "Kind of compensator controller mode.",
8872        values: &[
8873            EnumValueDef { id: "CompensatorControlModeKind.reactivePower", comment: "Reactive power control." },
8874            EnumValueDef { id: "CompensatorControlModeKind.voltage", comment: "Voltage control." },
8875        ],
8876    },
8877    EnumDef {
8878        ns: "https://cim4.eu/ns/nc#",
8879        local: "ContingencyConditionKind",
8880        comment: "Kinds of occurrence criteria of application.",
8881        values: &[
8882            EnumValueDef { id: "ContingencyConditionKind.design", comment: "Permanent occurrence factor which is design condition." },
8883            EnumValueDef { id: "ContingencyConditionKind.environmental", comment: "Temporary occurrence factor which is weather or environmental condition (e.g. storm)." },
8884            EnumValueDef { id: "ContingencyConditionKind.geographicalLocation", comment: "Permanent occurrence factor which is specific geographical location." },
8885            EnumValueDef { id: "ContingencyConditionKind.malfunction", comment: "Temporary occurrence factor which is life time or generic malfunction affecting the risk of failure condition." },
8886            EnumValueDef { id: "ContingencyConditionKind.operational", comment: "Temporary occurrence factor which is operational condition." },
8887        ],
8888    },
8889    EnumDef {
8890        ns: "https://cim.ucaiug.io/ns#",
8891        local: "ContingencyEquipmentStatusKind",
8892        comment: "Indicates the state which the contingency equipment is to be in when the contingency is applied.",
8893        values: &[
8894            EnumValueDef { id: "ContingencyEquipmentStatusKind.inService", comment: "The equipment is to be put into service." },
8895            EnumValueDef { id: "ContingencyEquipmentStatusKind.outOfService", comment: "The equipment is to be taken out of service." },
8896        ],
8897    },
8898    EnumDef {
8899        ns: "https://cim4.eu/ns/nc#",
8900        local: "CostSettledKind",
8901        comment: "Kind describing how settled the cost is in regards to changes.",
8902        values: &[
8903            EnumValueDef { id: "CostSettledKind.final", comment: "Final cost. For instance, the cost is not expected to be changed on a later stage." },
8904            EnumValueDef { id: "CostSettledKind.indicative", comment: "Indicative cost." },
8905            EnumValueDef { id: "CostSettledKind.provisional", comment: "Provisional cost." },
8906        ],
8907    },
8908    EnumDef {
8909        ns: "https://cim4.eu/ns/nc#",
8910        local: "CriticalElementKind",
8911        comment: "The kind of critical element.",
8912        values: &[
8913            EnumValueDef { id: "CriticalElementKind.critical", comment: "Network element is considered to be critical according to the methodology." },
8914            EnumValueDef { id: "CriticalElementKind.criticalAndMonitored", comment: "Network element is considered to be Critical Network Element monitored under Contingency (CNEC)." },
8915            EnumValueDef { id: "CriticalElementKind.monitored", comment: "Network element is considered to be monitored under contingency." },
8916            EnumValueDef { id: "CriticalElementKind.validation", comment: "Network element should be assessed according to the methodology." },
8917        ],
8918    },
8919    EnumDef {
8920        ns: "https://cim.ucaiug.io/ns#",
8921        local: "CsOperatingModeKind",
8922        comment: "Operating mode for HVDC line operating as Current Source Converter.",
8923        values: &[
8924            EnumValueDef { id: "CsOperatingModeKind.inverter", comment: "Operating as inverter, which is the power receiving end." },
8925            EnumValueDef { id: "CsOperatingModeKind.rectifier", comment: "Operating as rectifier, which is the power sending end." },
8926        ],
8927    },
8928    EnumDef {
8929        ns: "https://cim.ucaiug.io/ns#",
8930        local: "CsPpccControlKind",
8931        comment: "Active power control modes for HVDC line operating as Current Source Converter.",
8932        values: &[
8933            EnumValueDef { id: "CsPpccControlKind.activePower", comment: "Control is active power control at AC side, at point of common coupling. Target is provided by ACDCConverter.targetPpcc." },
8934            EnumValueDef { id: "CsPpccControlKind.dcCurrent", comment: "Control is DC current with target value provided by CsConverter.targetIdc." },
8935            EnumValueDef { id: "CsPpccControlKind.dcVoltage", comment: "Control is DC voltage with target value provided by ACDCConverter.targetUdc." },
8936        ],
8937    },
8938    EnumDef {
8939        ns: "https://cim.ucaiug.io/ns#",
8940        local: "Currency",
8941        comment: "Monetary currencies. ISO 4217 standard including 3-character currency code.",
8942        values: &[
8943            EnumValueDef { id: "Currency.AED", comment: "United Arab Emirates dirham." },
8944            EnumValueDef { id: "Currency.AFN", comment: "Afghan afghani." },
8945            EnumValueDef { id: "Currency.ALL", comment: "Albanian lek." },
8946            EnumValueDef { id: "Currency.AMD", comment: "Armenian dram." },
8947            EnumValueDef { id: "Currency.ANG", comment: "Netherlands Antillean guilder." },
8948            EnumValueDef { id: "Currency.AOA", comment: "Angolan kwanza." },
8949            EnumValueDef { id: "Currency.ARS", comment: "Argentine peso." },
8950            EnumValueDef { id: "Currency.AUD", comment: "Australian dollar." },
8951            EnumValueDef { id: "Currency.AWG", comment: "Aruban florin." },
8952            EnumValueDef { id: "Currency.AZN", comment: "Azerbaijani manat." },
8953            EnumValueDef { id: "Currency.BAM", comment: "Bosnia and Herzegovina convertible mark." },
8954            EnumValueDef { id: "Currency.BBD", comment: "Barbados dollar." },
8955            EnumValueDef { id: "Currency.BDT", comment: "Bangladeshi taka." },
8956            EnumValueDef { id: "Currency.BGN", comment: "Bulgarian lev." },
8957            EnumValueDef { id: "Currency.BHD", comment: "Bahraini dinar." },
8958            EnumValueDef { id: "Currency.BIF", comment: "Burundian franc." },
8959            EnumValueDef { id: "Currency.BMD", comment: "Bermudian dollar (customarily known as Bermuda dollar)." },
8960            EnumValueDef { id: "Currency.BND", comment: "Brunei dollar." },
8961            EnumValueDef { id: "Currency.BOB", comment: "Boliviano." },
8962            EnumValueDef { id: "Currency.BOV", comment: "Bolivian Mvdol (funds code)." },
8963            EnumValueDef { id: "Currency.BRL", comment: "Brazilian real." },
8964            EnumValueDef { id: "Currency.BSD", comment: "Bahamian dollar." },
8965            EnumValueDef { id: "Currency.BTN", comment: "Bhutanese ngultrum." },
8966            EnumValueDef { id: "Currency.BWP", comment: "Botswana pula." },
8967            EnumValueDef { id: "Currency.BYR", comment: "Belarusian ruble." },
8968            EnumValueDef { id: "Currency.BZD", comment: "Belize dollar." },
8969            EnumValueDef { id: "Currency.CAD", comment: "Canadian dollar." },
8970            EnumValueDef { id: "Currency.CDF", comment: "Congolese franc." },
8971            EnumValueDef { id: "Currency.CHF", comment: "Swiss franc." },
8972            EnumValueDef { id: "Currency.CLF", comment: "Unidad de Fomento (funds code), Chile." },
8973            EnumValueDef { id: "Currency.CLP", comment: "Chilean peso." },
8974            EnumValueDef { id: "Currency.CNY", comment: "Chinese yuan." },
8975            EnumValueDef { id: "Currency.COP", comment: "Colombian peso." },
8976            EnumValueDef { id: "Currency.COU", comment: "Unidad de Valor Real." },
8977            EnumValueDef { id: "Currency.CRC", comment: "Costa Rican colon." },
8978            EnumValueDef { id: "Currency.CUC", comment: "Cuban convertible peso." },
8979            EnumValueDef { id: "Currency.CUP", comment: "Cuban peso." },
8980            EnumValueDef { id: "Currency.CVE", comment: "Cape Verde escudo." },
8981            EnumValueDef { id: "Currency.CZK", comment: "Czech koruna." },
8982            EnumValueDef { id: "Currency.DJF", comment: "Djiboutian franc." },
8983            EnumValueDef { id: "Currency.DKK", comment: "Danish krone." },
8984            EnumValueDef { id: "Currency.DOP", comment: "Dominican peso." },
8985            EnumValueDef { id: "Currency.DZD", comment: "Algerian dinar." },
8986            EnumValueDef { id: "Currency.EEK", comment: "Estonian kroon." },
8987            EnumValueDef { id: "Currency.EGP", comment: "Egyptian pound." },
8988            EnumValueDef { id: "Currency.ERN", comment: "Eritrean nakfa." },
8989            EnumValueDef { id: "Currency.ETB", comment: "Ethiopian birr." },
8990            EnumValueDef { id: "Currency.EUR", comment: "Euro." },
8991            EnumValueDef { id: "Currency.FJD", comment: "Fiji dollar." },
8992            EnumValueDef { id: "Currency.FKP", comment: "Falkland Islands pound." },
8993            EnumValueDef { id: "Currency.GBP", comment: "Pound sterling." },
8994            EnumValueDef { id: "Currency.GEL", comment: "Georgian lari." },
8995            EnumValueDef { id: "Currency.GHS", comment: "Ghanaian cedi." },
8996            EnumValueDef { id: "Currency.GIP", comment: "Gibraltar pound." },
8997            EnumValueDef { id: "Currency.GMD", comment: "Gambian dalasi." },
8998            EnumValueDef { id: "Currency.GNF", comment: "Guinean franc." },
8999            EnumValueDef { id: "Currency.GTQ", comment: "Guatemalan quetzal." },
9000            EnumValueDef { id: "Currency.GYD", comment: "Guyanese dollar." },
9001            EnumValueDef { id: "Currency.HKD", comment: "Hong Kong dollar." },
9002            EnumValueDef { id: "Currency.HNL", comment: "Honduran lempira." },
9003            EnumValueDef { id: "Currency.HRK", comment: "Croatian kuna." },
9004            EnumValueDef { id: "Currency.HTG", comment: "Haitian gourde." },
9005            EnumValueDef { id: "Currency.HUF", comment: "Hungarian forint." },
9006            EnumValueDef { id: "Currency.IDR", comment: "Indonesian rupiah." },
9007            EnumValueDef { id: "Currency.ILS", comment: "Israeli new sheqel." },
9008            EnumValueDef { id: "Currency.INR", comment: "Indian rupee." },
9009            EnumValueDef { id: "Currency.IQD", comment: "Iraqi dinar." },
9010            EnumValueDef { id: "Currency.IRR", comment: "Iranian rial." },
9011            EnumValueDef { id: "Currency.ISK", comment: "Icelandic króna." },
9012            EnumValueDef { id: "Currency.JMD", comment: "Jamaican dollar." },
9013            EnumValueDef { id: "Currency.JOD", comment: "Jordanian dinar." },
9014            EnumValueDef { id: "Currency.JPY", comment: "Japanese yen." },
9015            EnumValueDef { id: "Currency.KES", comment: "Kenyan shilling." },
9016            EnumValueDef { id: "Currency.KGS", comment: "Kyrgyzstani som." },
9017            EnumValueDef { id: "Currency.KHR", comment: "Cambodian riel." },
9018            EnumValueDef { id: "Currency.KMF", comment: "Comoro franc." },
9019            EnumValueDef { id: "Currency.KPW", comment: "North Korean won." },
9020            EnumValueDef { id: "Currency.KRW", comment: "South Korean won." },
9021            EnumValueDef { id: "Currency.KWD", comment: "Kuwaiti dinar." },
9022            EnumValueDef { id: "Currency.KYD", comment: "Cayman Islands dollar." },
9023            EnumValueDef { id: "Currency.KZT", comment: "Kazakhstani tenge." },
9024            EnumValueDef { id: "Currency.LAK", comment: "Lao kip." },
9025            EnumValueDef { id: "Currency.LBP", comment: "Lebanese pound." },
9026            EnumValueDef { id: "Currency.LKR", comment: "Sri Lanka rupee." },
9027            EnumValueDef { id: "Currency.LRD", comment: "Liberian dollar." },
9028            EnumValueDef { id: "Currency.LSL", comment: "Lesotho loti." },
9029            EnumValueDef { id: "Currency.LTL", comment: "Lithuanian litas." },
9030            EnumValueDef { id: "Currency.LVL", comment: "Latvian lats." },
9031            EnumValueDef { id: "Currency.LYD", comment: "Libyan dinar." },
9032            EnumValueDef { id: "Currency.MAD", comment: "Moroccan dirham." },
9033            EnumValueDef { id: "Currency.MDL", comment: "Moldovan leu." },
9034            EnumValueDef { id: "Currency.MGA", comment: "Malagasy ariary." },
9035            EnumValueDef { id: "Currency.MKD", comment: "Macedonian denar." },
9036            EnumValueDef { id: "Currency.MMK", comment: "Myanma kyat." },
9037            EnumValueDef { id: "Currency.MNT", comment: "Mongolian tugrik." },
9038            EnumValueDef { id: "Currency.MOP", comment: "Macanese pataca." },
9039            EnumValueDef { id: "Currency.MRO", comment: "Mauritanian ouguiya." },
9040            EnumValueDef { id: "Currency.MUR", comment: "Mauritian rupee." },
9041            EnumValueDef { id: "Currency.MVR", comment: "Maldivian rufiyaa." },
9042            EnumValueDef { id: "Currency.MWK", comment: "Malawian kwacha." },
9043            EnumValueDef { id: "Currency.MXN", comment: "Mexican peso." },
9044            EnumValueDef { id: "Currency.MYR", comment: "Malaysian ringgit." },
9045            EnumValueDef { id: "Currency.MZN", comment: "Mozambican metical." },
9046            EnumValueDef { id: "Currency.NAD", comment: "Namibian dollar." },
9047            EnumValueDef { id: "Currency.NGN", comment: "Nigerian naira." },
9048            EnumValueDef { id: "Currency.NIO", comment: "Cordoba oro." },
9049            EnumValueDef { id: "Currency.NOK", comment: "Norwegian krone." },
9050            EnumValueDef { id: "Currency.NPR", comment: "Nepalese rupee." },
9051            EnumValueDef { id: "Currency.NZD", comment: "New Zealand dollar." },
9052            EnumValueDef { id: "Currency.OMR", comment: "Omani rial." },
9053            EnumValueDef { id: "Currency.PAB", comment: "Panamanian balboa." },
9054            EnumValueDef { id: "Currency.PEN", comment: "Peruvian nuevo sol." },
9055            EnumValueDef { id: "Currency.PGK", comment: "Papua New Guinean kina." },
9056            EnumValueDef { id: "Currency.PHP", comment: "Philippine peso." },
9057            EnumValueDef { id: "Currency.PKR", comment: "Pakistani rupee." },
9058            EnumValueDef { id: "Currency.PLN", comment: "Polish zloty." },
9059            EnumValueDef { id: "Currency.PYG", comment: "Paraguayan guaraní." },
9060            EnumValueDef { id: "Currency.QAR", comment: "Qatari rial." },
9061            EnumValueDef { id: "Currency.RON", comment: "Romanian new leu." },
9062            EnumValueDef { id: "Currency.RSD", comment: "Serbian dinar." },
9063            EnumValueDef { id: "Currency.RUB", comment: "Russian rouble." },
9064            EnumValueDef { id: "Currency.RWF", comment: "Rwandan franc." },
9065            EnumValueDef { id: "Currency.SAR", comment: "Saudi riyal." },
9066            EnumValueDef { id: "Currency.SBD", comment: "Solomon Islands dollar." },
9067            EnumValueDef { id: "Currency.SCR", comment: "Seychelles rupee." },
9068            EnumValueDef { id: "Currency.SDG", comment: "Sudanese pound." },
9069            EnumValueDef { id: "Currency.SEK", comment: "Swedish krona/kronor." },
9070            EnumValueDef { id: "Currency.SGD", comment: "Singapore dollar." },
9071            EnumValueDef { id: "Currency.SHP", comment: "Saint Helena pound." },
9072            EnumValueDef { id: "Currency.SLL", comment: "Sierra Leonean leone." },
9073            EnumValueDef { id: "Currency.SOS", comment: "Somali shilling." },
9074            EnumValueDef { id: "Currency.SRD", comment: "Surinamese dollar." },
9075            EnumValueDef { id: "Currency.STD", comment: "São Tomé and Príncipe dobra." },
9076            EnumValueDef { id: "Currency.SYP", comment: "Syrian pound." },
9077            EnumValueDef { id: "Currency.SZL", comment: "Lilangeni." },
9078            EnumValueDef { id: "Currency.THB", comment: "Thai baht." },
9079            EnumValueDef { id: "Currency.TJS", comment: "Tajikistani somoni." },
9080            EnumValueDef { id: "Currency.TMT", comment: "Turkmenistani manat." },
9081            EnumValueDef { id: "Currency.TND", comment: "Tunisian dinar." },
9082            EnumValueDef { id: "Currency.TOP", comment: "Tongan pa'anga." },
9083            EnumValueDef { id: "Currency.TRY", comment: "Turkish lira." },
9084            EnumValueDef { id: "Currency.TTD", comment: "Trinidad and Tobago dollar." },
9085            EnumValueDef { id: "Currency.TWD", comment: "New Taiwan dollar." },
9086            EnumValueDef { id: "Currency.TZS", comment: "Tanzanian shilling." },
9087            EnumValueDef { id: "Currency.UAH", comment: "Ukrainian hryvnia." },
9088            EnumValueDef { id: "Currency.UGX", comment: "Ugandan shilling." },
9089            EnumValueDef { id: "Currency.USD", comment: "United States dollar." },
9090            EnumValueDef { id: "Currency.UYU", comment: "Uruguayan peso." },
9091            EnumValueDef { id: "Currency.UZS", comment: "Uzbekistan som." },
9092            EnumValueDef { id: "Currency.VEF", comment: "Venezuelan bolívar fuerte." },
9093            EnumValueDef { id: "Currency.VND", comment: "Vietnamese Dong." },
9094            EnumValueDef { id: "Currency.VUV", comment: "Vanuatu vatu." },
9095            EnumValueDef { id: "Currency.WST", comment: "Samoan tala." },
9096            EnumValueDef { id: "Currency.XAF", comment: "CFA franc BEAC." },
9097            EnumValueDef { id: "Currency.XCD", comment: "East Caribbean dollar." },
9098            EnumValueDef { id: "Currency.XOF", comment: "CFA Franc BCEAO." },
9099            EnumValueDef { id: "Currency.XPF", comment: "CFP franc." },
9100            EnumValueDef { id: "Currency.YER", comment: "Yemeni rial." },
9101            EnumValueDef { id: "Currency.ZAR", comment: "South African rand." },
9102            EnumValueDef { id: "Currency.ZMK", comment: "Zambian kwacha." },
9103            EnumValueDef { id: "Currency.ZWL", comment: "Zimbabwe dollar." },
9104        ],
9105    },
9106    EnumDef {
9107        ns: "https://cim.ucaiug.io/ns#",
9108        local: "CurveStyle",
9109        comment: "Style or shape of curve.",
9110        values: &[
9111            EnumValueDef { id: "CurveStyle.constantYValue", comment: "The Y-axis values are assumed constant until the next curve point and prior to the first curve point." },
9112            EnumValueDef { id: "CurveStyle.straightLineYValues", comment: "The Y-axis values are assumed to be a straight line between values. Also known as linear interpolation." },
9113        ],
9114    },
9115    EnumDef {
9116        ns: "https://cim4.eu/ns/nc#",
9117        local: "DCControlModeKind",
9118        comment: "Kind of DC control mode.",
9119        values: &[
9120            EnumValueDef { id: "DCControlModeKind.acEmulation", comment: "An AC emulation control aims to reproduce the behaviour of an AC line by means of a function of the difference between angles in both converter stations in DC links embedded within a single synchronous AC grid. For changes in the phase angle on either station, the response of this control is to ‘emulate the behaviour of an AC line’ in both steady and transient states. The AC emulation control needs measurement signals for the angles at both ends of the DC system (at the AC points of common coupling of the DC system). In practice, the angle difference is measured by built-in devices in the converters and the synchronization of angle measurements on both stations is done by means of GPS. ACEmulationControlFunction is used by this control. The control can only be applied by a controller that have access to the two AC points of common coupling of the DC system. Therefore it cannot be applied for a ACDCConverterController." },
9121            EnumValueDef { id: "DCControlModeKind.acVoltage", comment: "AC voltage control mode (IEC 60633) is a control of the AC voltage of the AC network connected to a DC substation." },
9122            EnumValueDef { id: "DCControlModeKind.activePower", comment: "Control is active power control at AC side, at point of common coupling. According to IEC 60633 the active power control mode is control of the active power flow exchanged between a DC substation and the connected AC network." },
9123            EnumValueDef { id: "DCControlModeKind.damping", comment: "Damping control mode (IEC 60633) is supplementary control mode providing the damping of power oscillations in one or more connected AC networks." },
9124            EnumValueDef { id: "DCControlModeKind.dcCurrent", comment: "Control is DC current in a DC system (IEC 60633)." },
9125            EnumValueDef { id: "DCControlModeKind.dcVoltage", comment: "Control is DC voltage in a DC substation (IEC 60633)." },
9126            EnumValueDef { id: "DCControlModeKind.frequency", comment: "Frequency control mode (IEC 60633) is a control of the frequency of the connected AC network by varying the active power exchanged between a DC substation and the connected AC network." },
9127            EnumValueDef { id: "DCControlModeKind.islanded", comment: "Islanded network operation mode (IEC 60633) is a control mode in which the DC substation is connected to an islanded AC network." },
9128            EnumValueDef { id: "DCControlModeKind.pPccAndUdcDroop", comment: "Control is active power at point of common coupling and local DC voltage, with the droop." },
9129            EnumValueDef { id: "DCControlModeKind.pPccAndUdcDroopPilot", comment: "Control is active power at point of common coupling and the pilot DC voltage, with the droop. The mode is used for Multi Terminal High Voltage DC (MTDC) systems where multiple DC Substations are connected to the DC transmission lines. The pilot voltage is then used to coordinate the control the DC voltage across the DC substations." },
9130            EnumValueDef { id: "DCControlModeKind.pPccAndUdcDroopWithCompensation", comment: "Control is active power at point of common coupling and compensated DC voltage, with the droop. Compensation factor is the resistance, as an approximation of the DC voltage of a common (real or virtual) node in the DC network." },
9131            EnumValueDef { id: "DCControlModeKind.phasePcc", comment: "Control is phase at point of common coupling." },
9132            EnumValueDef { id: "DCControlModeKind.powerFactorPcc", comment: "Control is power factor at point of common coupling." },
9133            EnumValueDef { id: "DCControlModeKind.pulseWidthModulation", comment: "No explicit control. Pulse-modulation factor is directly set in magnitude and phase." },
9134            EnumValueDef { id: "DCControlModeKind.reactivePower", comment: "Control is reactive power control at AC side, at point of common coupling. According to IEC 60633 reactive power control mode is a control of the reactive power exchanged between a converter unit, or DC substation and the connected AC network." },
9135            EnumValueDef { id: "DCControlModeKind.sstiDamping", comment: "Sub-synchronous torsional interaction (SSTI) damping control mode (IEC 60633) is a supplementary control mode providing the damping of critical frequencies of an (electrical) nearby generator." },
9136        ],
9137    },
9138    EnumDef {
9139        ns: "https://cim4.eu/ns/nc#",
9140        local: "DCSystemDirectionKind",
9141        comment: "Direction kinds of the DC system.",
9142        values: &[
9143            EnumValueDef { id: "DCSystemDirectionKind.bidirectional", comment: "Bidirectional DC system used for the transfer of energy in either direction. According to IEC 60633 a multiterminal DC system is bidirectional if one or more substations are bidirectional." },
9144            EnumValueDef { id: "DCSystemDirectionKind.unidirectional", comment: "Unidirectional DC system used for the transfer of energy in only one direction. According to IEC 60633, most DC systems are inherently bidirectional. However, some systems may be optimized to transmit power in only one preferred direction. Such systems may still be considered as 'bidirectional'." },
9145        ],
9146    },
9147    EnumDef {
9148        ns: "https://cim4.eu/ns/nc#",
9149        local: "DCSystemTransmissionKind",
9150        comment: "DC system transmission kind.",
9151        values: &[
9152            EnumValueDef { id: "DCSystemTransmissionKind.backToBack", comment: "DC back-to-back system (IEC 60633) is a DC system which transfers energy between AC buses at the same location." },
9153            EnumValueDef { id: "DCSystemTransmissionKind.multiTerminal", comment: "Multiterminal DC transmission system (IEC 60633) consisting of more than two separated DC substations and the interconnecting DC transmission lines." },
9154            EnumValueDef { id: "DCSystemTransmissionKind.twoTerminal", comment: "Two-terminal DC transmission system (IEC 60633), consisting of two DC substations and the connecting DC transmission line(s)." },
9155        ],
9156    },
9157    EnumDef {
9158        ns: "https://cim4.eu/ns/nc#",
9159        local: "DCTerminalPolarityKind",
9160        comment: "Polarity for DC terminal.",
9161        values: &[
9162            EnumValueDef { id: "DCTerminalPolarityKind.negative", comment: "Negative terminal." },
9163            EnumValueDef { id: "DCTerminalPolarityKind.neutral", comment: "Neutral terminal." },
9164            EnumValueDef { id: "DCTerminalPolarityKind.positive", comment: "Positive terminal." },
9165        ],
9166    },
9167    EnumDef {
9168        ns: "https://cim4.eu/ns/nc#",
9169        local: "DayOfWeekKind",
9170        comment: "The kind of day to be included in a regular schedule.",
9171        values: &[
9172            EnumValueDef { id: "DayOfWeekKind.all", comment: "All days of the week." },
9173            EnumValueDef { id: "DayOfWeekKind.bridgeDay", comment: "A day that is a gap between two distinguished days e.g holiday and weekend that leads to an abnormal scheduling behavior. e.g. if Ascension day falls on a Thursday, then Friday would be a bridge day due to the schedule will not have a normal Friday consumption and production." },
9174            EnumValueDef { id: "DayOfWeekKind.friday", comment: "Friday as the day of the week." },
9175            EnumValueDef { id: "DayOfWeekKind.monday", comment: "Monday as the day of the week." },
9176            EnumValueDef { id: "DayOfWeekKind.publicHoliday", comment: "Public holiday is an officially designated day when most workplaces and schools are closed." },
9177            EnumValueDef { id: "DayOfWeekKind.saturday", comment: "Saturday as the day of the week." },
9178            EnumValueDef { id: "DayOfWeekKind.sunday", comment: "Sunday as the day of the week." },
9179            EnumValueDef { id: "DayOfWeekKind.thursday", comment: "Thursday as the day of the week." },
9180            EnumValueDef { id: "DayOfWeekKind.tuesday", comment: "Tuesday as the day of the week." },
9181            EnumValueDef { id: "DayOfWeekKind.wednesday", comment: "Wednesday as the day of the week." },
9182            EnumValueDef { id: "DayOfWeekKind.weekday", comment: "Day of the week other than Sunday or Saturday." },
9183            EnumValueDef { id: "DayOfWeekKind.weekend", comment: "Day of the week which is Sunday or Saturday." },
9184        ],
9185    },
9186    EnumDef {
9187        ns: "https://cim4.eu/ns/nc#",
9188        local: "DependencyConstraintKind",
9189        comment: "The kind of dependency constraint defined between the dependee and dependent peer objects. Note: The dependee is the peer object upon which another peer object depends. The dependent is the peer object whose temporal or operational behaviour is constrained by the dependee. Although dependee is not a commonly used English term, it is used here to distinguish this relationship from a parent-child hierarchy, as both objects are peer instances of the same class.",
9190        values: &[
9191            EnumValueDef { id: "DependencyConstraintKind.exclusive", comment: "The dependee and dependent shall not both be active or effective at the same time." },
9192            EnumValueDef { id: "DependencyConstraintKind.inclusive", comment: "The dependent shall only be active or effective while the dependee is active or effective." },
9193            EnumValueDef { id: "DependencyConstraintKind.restrictive", comment: "The dependee constrains the dependent without requiring the dependent to become active or effective. Note: A restrictive dependency defines temporal or operational constraints on the behaviour of the dependent while leaving its activation or operation optional." },
9194        ],
9195    },
9196    EnumDef {
9197        ns: "https://cim4.eu/ns/nc#",
9198        local: "DesignationKind",
9199        comment: "A standardised classification of designation values used to refer to an IdentifiedObject in different contexts. DesignationKind values are intended to be stable and directly usable in profiles and implementation guidance without requiring external reference data.",
9200        values: &[
9201            EnumValueDef { id: "DesignationKind.alias", comment: "An alternative designation used by a system, project, or user community that differs from the default or preferred designation." },
9202            EnumValueDef { id: "DesignationKind.device", comment: "A designation used to identify a device, component, or object instance within a vendor system, device platform, or operational system. Such designations are typically assigned by manufacturers, device firmware, automation systems, metering systems, or enterprise applications (e.g., ERP, asset management, monitoring platforms) and are used for configuration, monitoring, or asset tracking. Note: Device designations are often defined within the scope of a particular vendor, system, or installation and are therefore typically unique only within that system context. Example: 'IED_BAY3_01', 'Meter_102394', 'SAP_EQ_000457812'" },
9203            EnumValueDef { id: "DesignationKind.eic", comment: "An Energy Identification Code designation, typically used in European energy market and interoperability contexts. Example: '10YNO-0--------C'" },
9204            EnumValueDef { id: "DesignationKind.iec61850", comment: "A designation used in IEC 61850 contexts (e.g., IED name, logical node naming, object references, or related 61850 naming forms as specified by the profile). Example: 'LD0/XCBR1.Pos.stVal'" },
9205            EnumValueDef { id: "DesignationKind.label", comment: "A short designation primarily intended for local display, compact user interfaces, and single-line diagrams. A label is generally preferred to be short and readable rather than globally unique. Example: 'T1', 'Bay3'" },
9206            EnumValueDef { id: "DesignationKind.local", comment: "A designation used within a local naming scope (site, system, organisation, or sub-hierarchy) where meaning is derived from the local context. The name shall be unique inside the container, e.g. substation." },
9207            EnumValueDef { id: "DesignationKind.path", comment: "A hierarchical designation constructed from a sequence of name segments representing containment, structure, or functional decomposition. Example: 'SubstationA/Bay3/Breakder1'" },
9208            EnumValueDef { id: "DesignationKind.rds", comment: "A designation following the Reference Designation System (RDS) defined in IEC 81346, used to uniquely identify systems, functions, and equipment within engineering documentation and technical installations. RDS designations express the position or role of an object within a structured engineering hierarchy and are widely used in electrical engineering documentation, drawings, and plant documentation. Note: The Reference Designation System (RDS) provides a structured identification scheme where each segment represents an aspect of an object such as function ('='), product ('-'), or location ('+'). Example: '=N01+SA1-Q01'" },
9209            EnumValueDef { id: "DesignationKind.urn", comment: "A designation expressed as a Uniform Resource Name (URN), a persistent identifier defined using a registered namespace according to IETF RFC 8141. URN namespaces provide globally unique identifiers without requiring a resolvable URL and are commonly defined by standards bodies, industry communities, or organisations. Note: URN identifiers use the general structure: 'urn:<namespace>:<identifier>' where <namespace> identifies a registered namespace and <identifier> is the value assigned within that namespace. Example: Object Identifier (OID) 'urn:oid:1.3.6.1.4.1.4555', UUID namespace 'urn:uuid:550e8400-e29b-41d4-a716-446655440000', EIC namespace 'urn:eic:10YNO-0--------C'" },
9210            EnumValueDef { id: "DesignationKind.uuid", comment: "A designation expressed as a Universally Unique Identifier (UUID) as defined in IETF RFC 4122 (and its successor RFC 9562). UUIDs are 128-bit identifiers designed to be globally unique without requiring a central registration authority. UUID designations are commonly used in software systems and data exchanges to provide stable identifiers across distributed systems. Note: A UUID is typically represented as a 36-character string consisting of hexadecimal digits grouped in five sections separated by hyphens. Example: '550e8400-e29b-41d4-a716-446655440000'" },
9211        ],
9212    },
9213    EnumDef {
9214        ns: "https://cim4.eu/ns/nc#",
9215        local: "ElementCombinationConstraintKind",
9216        comment: "Kind of constraint for an element combination.",
9217        values: &[
9218            EnumValueDef { id: "ElementCombinationConstraintKind.considered", comment: "Element combination can be considered." },
9219            EnumValueDef { id: "ElementCombinationConstraintKind.excluded", comment: "Element combination is excluded." },
9220            EnumValueDef { id: "ElementCombinationConstraintKind.included", comment: "Element combination is included." },
9221        ],
9222    },
9223    EnumDef {
9224        ns: "https://cim4.eu/ns/nc#",
9225        local: "EnergyKind",
9226        comment: "A broad classification of an energy resource according to its energy source, storage function, or consumption behaviour. Note: EnergyKind provides a high-level grouping suitable for scenario modelling, forecasting, capacity aggregation and reporting. It is intended to classify generation, storage and consumption using a common set of categories without representing detailed fuel, energy-source or technology classifications. More detailed classifications may be provided separately, for example by an `EnergyResourceType` using externally defined energy-source or technology codes. The classification may represent the origin of energy, such as hydro, solar or wind; an energy storage behaviour, such as battery or buffer; or the flexibility characteristics of consumption, such as time-shiftable or unconstrained consumption.",
9227        values: &[
9228            EnumValueDef { id: "EnergyKind.battery", comment: "Energy storage based on batteries, capable of charging from and discharging to the electrical system." },
9229            EnumValueDef { id: "EnergyKind.biomass", comment: "Generation based mainly on biomass fuels of biogenic origin, including solid, liquid and gaseous forms." },
9230            EnumValueDef { id: "EnergyKind.buffer", comment: "Consumption associated with storage-like buffers where energy can be shifted in time while broadly preserving total energy use." },
9231            EnumValueDef { id: "EnergyKind.chemicalElectrical", comment: "Conversion from chemical energy carriers to electrical energy, such as fuel cells or combustion of hydrogen-rich fuels." },
9232            EnumValueDef { id: "EnergyKind.consumptionTimeShift", comment: "Demand that can be shifted in time without significantly changing total energy over a defined period." },
9233            EnumValueDef { id: "EnergyKind.consumptionUnconstrained", comment: "Modelled demand assuming no explicit network or market constraints, used as an unconstrained reference load." },
9234            EnumValueDef { id: "EnergyKind.consumptionUncontrollable", comment: "Demand that is not directly controlled and is primarily driven by weather, behaviour or unmanaged processes." },
9235            EnumValueDef { id: "EnergyKind.electricalChemical", comment: "Conversion from electrical energy into chemical energy carriers, such as electrolysis or power-to-gas." },
9236            EnumValueDef { id: "EnergyKind.fossil", comment: "Generation based mainly on fossil fuels such as coal, oil, gas or other non-renewable combustible fuels." },
9237            EnumValueDef { id: "EnergyKind.geothermal", comment: "Generation based on geothermal heat from underground reservoirs." },
9238            EnumValueDef { id: "EnergyKind.hydroPump", comment: "Pumped-storage hydropower operation where electrical energy is used to pump water to an elevated reservoir." },
9239            EnumValueDef { id: "EnergyKind.hydroReservoir", comment: "Hydropower based on reservoirs with significant storage, enabling dispatchable generation." },
9240            EnumValueDef { id: "EnergyKind.hydroRunOfRiver", comment: "Hydropower using natural river flow with little or no storage, where generation mainly follows river discharge." },
9241            EnumValueDef { id: "EnergyKind.marine", comment: "Generation based on marine energy sources such as tidal or wave power." },
9242            EnumValueDef { id: "EnergyKind.nuclear", comment: "Generation based on nuclear fission reactors of any type." },
9243            EnumValueDef { id: "EnergyKind.other", comment: "Other." },
9244            EnumValueDef { id: "EnergyKind.solar", comment: "Generation or heat production based on solar energy, including photovoltaic and solar thermal technologies." },
9245            EnumValueDef { id: "EnergyKind.waste", comment: "Generation based on energy recovery from renewable or non-renewable waste streams." },
9246            EnumValueDef { id: "EnergyKind.wind", comment: "Generation based on wind energy using wind turbines on land or offshore." },
9247        ],
9248    },
9249    EnumDef {
9250        ns: "https://cim4.eu/ns/nc#",
9251        local: "EnergyScenarioKind",
9252        comment: "Kind of energy scenario.",
9253        values: &[
9254            EnumValueDef { id: "EnergyScenarioKind.consumption", comment: "Scenario focus on consumption of energy." },
9255            EnumValueDef { id: "EnergyScenarioKind.export", comment: "Scenario focus on export of energy." },
9256            EnumValueDef { id: "EnergyScenarioKind.import", comment: "Scenario focus on import of energy." },
9257            EnumValueDef { id: "EnergyScenarioKind.production", comment: "Scenario focus on production of energy." },
9258            EnumValueDef { id: "EnergyScenarioKind.storage", comment: "Scenario focus on storage of energy." },
9259        ],
9260    },
9261    EnumDef {
9262        ns: "https://cim4.eu/ns/nc#",
9263        local: "FaultCategoryKind",
9264        comment: "Available kinds of fault categories.",
9265        values: &[
9266            EnumValueDef { id: "FaultCategoryKind.operational", comment: "A fault due to a temporary human error. Note 1: incorrect operation is considered a fault in a component, or in other words, the incorrect operation is attributed to the unit which has been operated incorrectly." },
9267            EnumValueDef { id: "FaultCategoryKind.system", comment: "A fault due to off-nominal parameters, exceeding of regulated norms and standards, or exceeding protection limits. Note 1: Typical examples of system fault causes are high/low frequency, power oscillations, overload, overvoltage, undervoltage or high harmonic content in voltage or current. Common causes for system faults are significant changes in load or generation and switching of lines or transformers with following change of load flow." },
9268            EnumValueDef { id: "FaultCategoryKind.technical", comment: "A fault due to a technical error." },
9269        ],
9270    },
9271    EnumDef {
9272        ns: "https://cim4.eu/ns/nc#",
9273        local: "FaultKind",
9274        comment: "One fault can consist of several fault types. If a fault consists of several fault types, the most significant fault type is used. In case of developing faults, that is in faults changing from one type to another, the final type is given.",
9275        values: &[
9276            EnumValueDef { id: "FaultKind.functional", comment: "The components main function failed to occur." },
9277            EnumValueDef { id: "FaultKind.lineOpen", comment: "The fault is when the conductor path is broken between two terminals. Additional coexisting faults may be required if the broken conductor also causes connections to grounds or other lines or phases." },
9278            EnumValueDef { id: "FaultKind.lineToGround", comment: "The fault connects the indicated phases to ground. The line to line fault impedance is not used and assumed infinite. The full ground impedance is connected between each phase specified in the fault and ground, but not between the phases." },
9279            EnumValueDef { id: "FaultKind.lineToLine", comment: "The fault connects the specified phases together without a connection to ground. The ground impedance of this fault is ignored. The line to line impedance is connected between each of the phases specified in the fault. For example three times for a three phase fault, one time for a two phase fault. A single phase fault should not be specified." },
9280            EnumValueDef { id: "FaultKind.lineToLineToGround", comment: "The fault connects the indicated phases to ground and to each other. The line to line impedance is connected between each of the phases specified in the fault in a full mesh. For example three times for a three phase fault, one time for a two phase fault. A single phase fault should not be specified. The full ground impedance is connected between each phase specified in the fault and ground." },
9281            EnumValueDef { id: "FaultKind.other", comment: "For example, geomagnetic currents, SSR, capacitor bank imbalances, bad contact, overheating." },
9282            EnumValueDef { id: "FaultKind.undesiredFunction", comment: "If the component's main function occurred correctly but had an undesired result, that is, the fault. Is only stated if the component is a circuit breaker, disconnector or control system." },
9283        ],
9284    },
9285    EnumDef {
9286        ns: "https://cim4.eu/ns/nc#",
9287        local: "GateLogicKind",
9288        comment: "Define the different logical operations.",
9289        values: &[
9290            EnumValueDef { id: "GateLogicKind.and", comment: "A logical AND operation. True when all inputs are true." },
9291            EnumValueDef { id: "GateLogicKind.nand", comment: "A logical NAND operation. False when all inputs are true." },
9292            EnumValueDef { id: "GateLogicKind.nor", comment: "A logical NOR operation. False when one or more inputs are true." },
9293            EnumValueDef { id: "GateLogicKind.not", comment: "A logical NOT operation. Only one input and true input will give false out and false in will give true out. An inverter." },
9294            EnumValueDef { id: "GateLogicKind.or", comment: "A logical OR operation. True when one or more inputs are true." },
9295            EnumValueDef { id: "GateLogicKind.xnor", comment: "A logical XNOR operation. The function is the inverse of the exclusive OR (XOR) gate. All input false or true will give true. Otherwise false." },
9296            EnumValueDef { id: "GateLogicKind.xor", comment: "A logical XOR operation. All input false or true will give false. Otherwise true." },
9297        ],
9298    },
9299    EnumDef {
9300        ns: "https://cim4.eu/ns/nc#",
9301        local: "GeothermalUnitKind",
9302        comment: "Kind of geothermal.",
9303        values: &[
9304            EnumValueDef { id: "GeothermalUnitKind.binaryCycle", comment: "The moderately hot geothermal water is passed by a secondary fluid with a much lower boiling point than water." },
9305            EnumValueDef { id: "GeothermalUnitKind.drySteam", comment: "Uses geothermal steam of 150 degree Celsius or greater to turn turbines." },
9306            EnumValueDef { id: "GeothermalUnitKind.flashSteam", comment: "Pull deep, high-pressure hot water into lower-pressure tanks and use the resulting flashed steam to drive turbines." },
9307            EnumValueDef { id: "GeothermalUnitKind.other", comment: "Other type of geothermal generating unit." },
9308        ],
9309    },
9310    EnumDef {
9311        ns: "https://cim4.eu/ns/nc#",
9312        local: "ImpactAgreementKind",
9313        comment: "The impact agreement for the remedial action.",
9314        values: &[
9315            EnumValueDef { id: "ImpactAgreementKind.always", comment: "An agreement is reached that the remedial action is always impacting whichever the intensity." },
9316            EnumValueDef { id: "ImpactAgreementKind.never", comment: "An agreement is reached that a remedial action is never impacting." },
9317            EnumValueDef { id: "ImpactAgreementKind.noAgreement", comment: "No agreement is reached on the qualitative impact of a remedial action." },
9318        ],
9319    },
9320    EnumDef {
9321        ns: "https://cim4.eu/ns/nc#",
9322        local: "InjectionControlModeKind",
9323        comment: "Kind of injection controller mode.",
9324        values: &[
9325            EnumValueDef { id: "InjectionControlModeKind.activePower", comment: "Active power is specified." },
9326            EnumValueDef { id: "InjectionControlModeKind.powerFactor", comment: "Power factor is specified." },
9327            EnumValueDef { id: "InjectionControlModeKind.reactivePower", comment: "Reactive power control." },
9328            EnumValueDef { id: "InjectionControlModeKind.voltage", comment: "Voltage control." },
9329        ],
9330    },
9331    EnumDef {
9332        ns: "https://cim4.eu/ns/nc#",
9333        local: "LogicalOperatorsKind",
9334        comment: "Kinds of logical operators for comparison.",
9335        values: &[
9336            EnumValueDef { id: "LogicalOperatorsKind.equals", comment: "Equals (like) comparison operation." },
9337            EnumValueDef { id: "LogicalOperatorsKind.greaterThan", comment: "Greater than comparison operation." },
9338            EnumValueDef { id: "LogicalOperatorsKind.greaterThanOrEquals", comment: "Greater than or equals comparison operation." },
9339            EnumValueDef { id: "LogicalOperatorsKind.lessThan", comment: "Less than comparison operation." },
9340            EnumValueDef { id: "LogicalOperatorsKind.lessThanOrEquals", comment: "Less than or equals comparison operation." },
9341            EnumValueDef { id: "LogicalOperatorsKind.notEqual", comment: "Not equal (unlike) comparison operation." },
9342        ],
9343    },
9344    EnumDef {
9345        ns: "https://cim4.eu/ns/nc#",
9346        local: "MarineUnitKind",
9347        comment: "Kind of marine energy capture.",
9348        values: &[
9349            EnumValueDef { id: "MarineUnitKind.currents", comment: "Capture energy from ocean current which are caused by forces like breaking waves, wind, coriolis effect etc." },
9350            EnumValueDef { id: "MarineUnitKind.other", comment: "Other way of capture energy from marine elements." },
9351            EnumValueDef { id: "MarineUnitKind.pressure", comment: "Capture energy from pressure." },
9352            EnumValueDef { id: "MarineUnitKind.tidal", comment: "Capture energy from tidal power, which captures the energy of the current caused by the gravitational pull of the Sun and Moon." },
9353            EnumValueDef { id: "MarineUnitKind.wave", comment: "Capture energy from wind waves." },
9354        ],
9355    },
9356    EnumDef {
9357        ns: "https://cim4.eu/ns/nc#",
9358        local: "MarketRegulationDirectionKind",
9359        comment: "Identifies the direction of activation or reserve provision for a market regulation product or instrument (e.g., aFRR, mFRR, FCR). It expresses how the service affects the system balance — by increasing or decreasing net generation or consumption.",
9360        values: &[
9361            EnumValueDef { id: "MarketRegulationDirectionKind.down", comment: "Regulation activation that decreases the system’s net power injection — achieved either by decreasing generation or increasing consumption. Used for down-regulation bids or activations." },
9362            EnumValueDef { id: "MarketRegulationDirectionKind.stable", comment: "No activation or neutral position; used for capacity or reserve states that maintain stability without a directional effect (e.g., system in balanced or standby mode)." },
9363            EnumValueDef { id: "MarketRegulationDirectionKind.up", comment: "Regulation activation that increases the system’s net power injection — achieved either by increasing generation or decreasing consumption. Used for up-regulation bids or activations." },
9364            EnumValueDef { id: "MarketRegulationDirectionKind.upAndDown", comment: "Product or capacity symmetrical for both up- and down-regulation; the same magnitude applies in both directions. Common for bidirectional balancing services (e.g., symmetrical aFRR capacity)." },
9365        ],
9366    },
9367    EnumDef {
9368        ns: "https://cim4.eu/ns/nc#",
9369        local: "ModularMultilevelConverterValveKind",
9370        comment: "Defines the possible MMC valve submodule configurations.",
9371        values: &[
9372            EnumValueDef { id: "ModularMultilevelConverterValveKind.fullBridge", comment: "MMC valve based on a full-bridge submodule topology capable of bipolar voltage generation and DC fault blocking." },
9373            EnumValueDef { id: "ModularMultilevelConverterValveKind.halfBridge", comment: "MMC valve based on a half-bridge submodule topology typically used for efficient voltage source converter operation." },
9374        ],
9375    },
9376    EnumDef {
9377        ns: "https://cim4.eu/ns/nc#",
9378        local: "NuclearReactorKind",
9379        comment: "Kind of nuclear reactor.",
9380        values: &[
9381            EnumValueDef { id: "NuclearReactorKind.breeder", comment: "Reactor whose heat source is a nuclear reactor that generates more fissile material than it consumes." },
9382            EnumValueDef { id: "NuclearReactorKind.graphite", comment: "Reactor whose heat source is a graphite-moderated reactor that is a nuclear reactor that uses carbon as a neutron moderator, which allows natural uranium to be used as nuclear fuel." },
9383            EnumValueDef { id: "NuclearReactorKind.heavyWater", comment: "Reactor whose heat source is a pressurized heavy-water reactor (PHWR) that uses heavy water (deuterium oxide D2O) as its coolant and neutron moderator." },
9384            EnumValueDef { id: "NuclearReactorKind.lightWater", comment: "Reactor whose heat source is a light-water reactor (LWR) that is a type of thermal-neutron reactor that uses normal water, as both its coolant and neutron moderator - furthermore a solid form of fissile elements is used as fuel." },
9385            EnumValueDef { id: "NuclearReactorKind.liquidMetal", comment: "Reactor whose liquid metal cooled nuclear reactor, liquid metal fast reactor or LMFR is an advanced type of nuclear reactor where the primary coolant is a liquid metal." },
9386            EnumValueDef { id: "NuclearReactorKind.other", comment: "Other type of nuclear reactors." },
9387        ],
9388    },
9389    EnumDef {
9390        ns: "https://cim4.eu/ns/nc#",
9391        local: "ObservableQuantityKind",
9392        comment: "Kind of observable quantity.",
9393        values: &[
9394            EnumValueDef { id: "ObservableQuantityKind.activePower", comment: "The observable quantity is the active power." },
9395            EnumValueDef { id: "ObservableQuantityKind.reactivePower", comment: "The observable quantity is the reactive power." },
9396            EnumValueDef { id: "ObservableQuantityKind.voltageAngle", comment: "The observable quantity is the angle of terminal voltage." },
9397            EnumValueDef { id: "ObservableQuantityKind.voltageMagnitude", comment: "The observable quantity is the magnitude of terminal voltage." },
9398        ],
9399    },
9400    EnumDef {
9401        ns: "https://cim.ucaiug.io/ns#",
9402        local: "OperationalLimitDirectionKind",
9403        comment: "The direction attribute describes the side of a limit that is a violation.",
9404        values: &[
9405            EnumValueDef { id: "OperationalLimitDirectionKind.absoluteValue", comment: "An absoluteValue limit means that a monitored absolute value above the limit value is a violation." },
9406            EnumValueDef { id: "OperationalLimitDirectionKind.high", comment: "High means that a monitored value above the limit value is a violation. If applied to a terminal flow, the positive direction is into the terminal." },
9407            EnumValueDef { id: "OperationalLimitDirectionKind.low", comment: "Low means a monitored value below the limit is a violation. If applied to a terminal flow, the positive direction is into the terminal." },
9408        ],
9409    },
9410    EnumDef {
9411        ns: "https://cim4.eu/ns/nc#",
9412        local: "OutcomeImpactAssessmentKind",
9413        comment: "Outcome impact assessments kinds.",
9414        values: &[
9415            EnumValueDef { id: "OutcomeImpactAssessmentKind.false", comment: "False." },
9416            EnumValueDef { id: "OutcomeImpactAssessmentKind.true", comment: "True." },
9417            EnumValueDef { id: "OutcomeImpactAssessmentKind.undecided", comment: "Undecided. Used only for list-based impact assessment matrix." },
9418        ],
9419    },
9420    EnumDef {
9421        ns: "https://cim4.eu/ns/nc#",
9422        local: "PeakKind",
9423        comment: "Kind of time period with similar intensity.",
9424        values: &[
9425            EnumValueDef { id: "PeakKind.offPeak", comment: "Off-peak refer to periods of lower demand for a particular service or commodity." },
9426            EnumValueDef { id: "PeakKind.onPeak", comment: "Off-peak refer to periods of higher demand for a particular service or commodity." },
9427        ],
9428    },
9429    EnumDef {
9430        ns: "https://cim.ucaiug.io/ns#",
9431        local: "PhaseCode",
9432        comment: "An unordered enumeration of phase identifiers. Allows designation of phases for both transmission and distribution equipment, circuits and loads. The enumeration, by itself, does not describe how the phases are connected together or connected to ground. Ground is not explicitly denoted as a phase. Residential and small commercial loads are often served from single-phase, or split-phase, secondary circuits. For the example of s12N, phases 1 and 2 refer to hot wires that are 180 degrees out of phase, while N refers to the neutral wire. Through single-phase transformer connections, these secondary circuits may be served from one or two of the primary phases A, B, and C. For three-phase loads, use the A, B, C phase codes instead of s12N. The integer values are from IEC 61968-9 to support revenue metering applications.",
9433        values: &[
9434            EnumValueDef { id: "PhaseCode.A", comment: "Phase A." },
9435            EnumValueDef { id: "PhaseCode.AB", comment: "Phases A and B." },
9436            EnumValueDef { id: "PhaseCode.ABC", comment: "Phases A, B, and C." },
9437            EnumValueDef { id: "PhaseCode.ABCN", comment: "Phases A, B, C, and N." },
9438            EnumValueDef { id: "PhaseCode.ABN", comment: "Phases A, B, and neutral." },
9439            EnumValueDef { id: "PhaseCode.AC", comment: "Phases A and C." },
9440            EnumValueDef { id: "PhaseCode.ACN", comment: "Phases A, C and neutral." },
9441            EnumValueDef { id: "PhaseCode.AN", comment: "Phases A and neutral." },
9442            EnumValueDef { id: "PhaseCode.B", comment: "Phase B." },
9443            EnumValueDef { id: "PhaseCode.BC", comment: "Phases B and C." },
9444            EnumValueDef { id: "PhaseCode.BCN", comment: "Phases B, C, and neutral." },
9445            EnumValueDef { id: "PhaseCode.BN", comment: "Phases B and neutral." },
9446            EnumValueDef { id: "PhaseCode.C", comment: "Phase C." },
9447            EnumValueDef { id: "PhaseCode.CN", comment: "Phases C and neutral." },
9448            EnumValueDef { id: "PhaseCode.N", comment: "Neutral phase." },
9449            EnumValueDef { id: "PhaseCode.X", comment: "Unknown non-neutral phase." },
9450            EnumValueDef { id: "PhaseCode.XN", comment: "Unknown non-neutral phase plus neutral." },
9451            EnumValueDef { id: "PhaseCode.XY", comment: "Two unknown non-neutral phases." },
9452            EnumValueDef { id: "PhaseCode.XYN", comment: "Two unknown non-neutral phases plus neutral." },
9453            EnumValueDef { id: "PhaseCode.none", comment: "No phases specified." },
9454            EnumValueDef { id: "PhaseCode.s1", comment: "Secondary phase 1." },
9455            EnumValueDef { id: "PhaseCode.s12", comment: "Secondary phase 1 and 2." },
9456            EnumValueDef { id: "PhaseCode.s12N", comment: "Secondary phases 1, 2, and neutral." },
9457            EnumValueDef { id: "PhaseCode.s1N", comment: "Secondary phase 1 and neutral." },
9458            EnumValueDef { id: "PhaseCode.s2", comment: "Secondary phase 2." },
9459            EnumValueDef { id: "PhaseCode.s2N", comment: "Secondary phase 2 and neutral." },
9460        ],
9461    },
9462    EnumDef {
9463        ns: "https://cim.ucaiug.io/ns#",
9464        local: "PhaseConnectedFaultKind",
9465        comment: "The type of fault connection among phases.",
9466        values: &[
9467            EnumValueDef { id: "PhaseConnectedFaultKind.lineOpen", comment: "The fault is when the conductor path is broken between two terminals. Additional coexisting faults may be required if the broken conductor also causes connections to grounds or other lines or phases." },
9468            EnumValueDef { id: "PhaseConnectedFaultKind.lineToGround", comment: "The fault connects the indicated phases to ground. The line to line fault impedance is not used and assumed infinite. The full ground impedance is connected between each phase specified in the fault and ground, but not between the phases." },
9469            EnumValueDef { id: "PhaseConnectedFaultKind.lineToLine", comment: "The fault connects the specified phases together without a connection to ground. The ground impedance of this fault is ignored. The line to line impedance is connected between each of the phases specified in the fault. For example three times for a three phase fault, one time for a two phase fault. A single phase fault should not be specified." },
9470            EnumValueDef { id: "PhaseConnectedFaultKind.lineToLineToGround", comment: "The fault connects the indicated phases to ground and to each other. The line to line impedance is connected between each of the phases specified in the fault in a full mesh. For example three times for a three phase fault, one time for a two phase fault. A single phase fault should not be specified. The full ground impedance is connected between each phase specified in the fault and ground." },
9471        ],
9472    },
9473    EnumDef {
9474        ns: "https://cim4.eu/ns/nc#",
9475        local: "PinDCTerminalKind",
9476        comment: "The kind of quantities that can serve as an input value for the DCTerminal pin.",
9477        values: &[
9478            EnumValueDef { id: "PinDCTerminalKind.current", comment: "Direct current in the DCTerminal." },
9479            EnumValueDef { id: "PinDCTerminalKind.voltage", comment: "Direct current voltage in the DCTerminal." },
9480        ],
9481    },
9482    EnumDef {
9483        ns: "https://cim4.eu/ns/nc#",
9484        local: "PinPowerTransferCorridorKind",
9485        comment: "The kind of quantities that can serve as an input value for the PowerTransferCorridor pin.",
9486        values: &[
9487            EnumValueDef { id: "PinPowerTransferCorridorKind.activePower", comment: "Active power in the branch group." },
9488            EnumValueDef { id: "PinPowerTransferCorridorKind.reactivePower", comment: "Reactive power in the branch group." },
9489        ],
9490    },
9491    EnumDef {
9492        ns: "https://cim4.eu/ns/nc#",
9493        local: "PinTerminalKind",
9494        comment: "The kind of quantities that can serve as an input value for the pin.",
9495        values: &[
9496            EnumValueDef { id: "PinTerminalKind.activePower", comment: "Active power on the Terminal." },
9497            EnumValueDef { id: "PinTerminalKind.apparentPower", comment: "Apparent power on the Terminal." },
9498            EnumValueDef { id: "PinTerminalKind.current", comment: "Current on the Terminal." },
9499            EnumValueDef { id: "PinTerminalKind.frequency", comment: "Frequency on the Terminal." },
9500            EnumValueDef { id: "PinTerminalKind.reactivePower", comment: "Reactive power on the Terminal." },
9501            EnumValueDef { id: "PinTerminalKind.voltageAngle", comment: "Voltage angle on the Terminal." },
9502            EnumValueDef { id: "PinTerminalKind.voltageMagnitude", comment: "Voltage magnitude on the Terminal." },
9503        ],
9504    },
9505    EnumDef {
9506        ns: "https://cim4.eu/ns/nc#",
9507        local: "PowerBlockKind",
9508        comment: "Power block kind describes the increase and/or decrease of power.",
9509        values: &[
9510            EnumValueDef { id: "PowerBlockKind.powerDecrease", comment: "Decrease in the power. The block represents action for decreased power." },
9511            EnumValueDef { id: "PowerBlockKind.powerIncrease", comment: "Increase in the power. The block represents action for increased power." },
9512            EnumValueDef { id: "PowerBlockKind.powerIncreaseAndDecrease", comment: "Increase and decrease in the power. The block represents action for increased and decreased power." },
9513        ],
9514    },
9515    EnumDef {
9516        ns: "https://cim4.eu/ns/nc#",
9517        local: "PowerElectricalChemicalUnitKind",
9518        comment: "Kind of power electrical chemical unit.",
9519        values: &[
9520            EnumValueDef { id: "PowerElectricalChemicalUnitKind.electrolyticCell", comment: "An electrolytic cell is an electrochemical cell that drives a non-spontaneous redox reaction through the application of electrical energy. Example are the decomposition of water into hydrogen and oxygen." },
9521            EnumValueDef { id: "PowerElectricalChemicalUnitKind.fuelCell", comment: "A fuel cell is an electrochemical cell that converts the chemical energy from a fuel into electricity through an electrochemical reaction of hydrogen fuel with oxygen or another oxidizing agent." },
9522            EnumValueDef { id: "PowerElectricalChemicalUnitKind.other", comment: "Other type of cell used in chemical reactions." },
9523        ],
9524    },
9525    EnumDef {
9526        ns: "https://cim4.eu/ns/nc#",
9527        local: "PowerFrequencyControlKind",
9528        comment: "Kinds of power frequency control modes.",
9529        values: &[
9530            EnumValueDef { id: "PowerFrequencyControlKind.activePower", comment: "Active power control mode." },
9531            EnumValueDef { id: "PowerFrequencyControlKind.activePowerAndFrequency", comment: "Active power and frequency control mode." },
9532            EnumValueDef { id: "PowerFrequencyControlKind.frequency", comment: "Frequency control mode." },
9533        ],
9534    },
9535    EnumDef {
9536        ns: "https://cim4.eu/ns/nc#",
9537        local: "PowerScheduleKind",
9538        comment: "Kind of power schedule.",
9539        values: &[
9540            EnumValueDef { id: "PowerScheduleKind.meritOrder", comment: "Power schedule is a merit order that includes ranking of the power block. Power block provides the maximum power allocation possible." },
9541            EnumValueDef { id: "PowerScheduleKind.mustRun", comment: "Power schedule is a must run schedule that identifies the unit that must run for a given time point." },
9542            EnumValueDef { id: "PowerScheduleKind.power", comment: "Power schedule that has no additional meaning than allocating power to unit for a given time point." },
9543            EnumValueDef { id: "PowerScheduleKind.price", comment: "Power schedule includes prices for a given a power per time point." },
9544        ],
9545    },
9546    EnumDef {
9547        ns: "https://cim4.eu/ns/nc#",
9548        local: "PowerShiftKeyKind",
9549        comment: "Kind of generating and load shift keys strategy.",
9550        values: &[
9551            EnumValueDef { id: "PowerShiftKeyKind.consumptionsFlat", comment: "Flat adjustment, equal amount of power, on all active consumption units (Energy Consumers and Power Electronics like FlexibleEnergyUnit). e.g. 100 MW decrease adjustment on 4 loads, it means that each of them get reduced 25 MW, as long as no other constraints are violated." },
9552            EnumValueDef { id: "PowerShiftKeyKind.consumptionsP", comment: "The distribution is based on the consumptions active power in the given case." },
9553            EnumValueDef { id: "PowerShiftKeyKind.explicitDistribution", comment: "The distribution is explicitly done according to the power shift key distribution in the power bid Schedule." },
9554            EnumValueDef { id: "PowerShiftKeyKind.explicitInstruction", comment: "The distribution is done according to the individual participation factor on the unit." },
9555            EnumValueDef { id: "PowerShiftKeyKind.generatorsAndConsumptionsP", comment: "The distribution is based on the generator and consumption active power in the given case." },
9556            EnumValueDef { id: "PowerShiftKeyKind.generatorsFlat", comment: "Flat adjustment, equal amount of power, on all active generators. e.g. 100 MW increase adjustment on 4 generators, it means that each of them get increased 25 MW, as long as no other constraints are violated." },
9557            EnumValueDef { id: "PowerShiftKeyKind.generatorsP", comment: "The distribution is based on the generators active power in the given case." },
9558            EnumValueDef { id: "PowerShiftKeyKind.generatorsPmax", comment: "The distribution is relative to the maximum p of the generator." },
9559            EnumValueDef { id: "PowerShiftKeyKind.generatorsPmin", comment: "The distribution is relative to the minimum p of the generator." },
9560            EnumValueDef { id: "PowerShiftKeyKind.generatorsRemainingCapacity", comment: "The distribution is based on the remaining capacity for generators in the given case." },
9561            EnumValueDef { id: "PowerShiftKeyKind.generatorsUsedCapacity", comment: "The distribution is based on the used capacity, the difference between the minimum operation and operating p (GeneratingUnit.minOperatingP)" },
9562            EnumValueDef { id: "PowerShiftKeyKind.nonConformLoadP", comment: "The distribution is based on the non conform load active power in the given case." },
9563            EnumValueDef { id: "PowerShiftKeyKind.storageFlat", comment: "Flat adjustment, equal amount of power, on all the batteries and any operating hydro pumps. e.g. 100 MW increase or decrease adjustment on 4 batteries, it means that each of them get increased or reduced 25 MW, as long as no other constraints are violated." },
9564            EnumValueDef { id: "PowerShiftKeyKind.storageP", comment: "The distribution is based on the batteries and any operating hydro pumps active power in the given case." },
9565        ],
9566    },
9567    EnumDef {
9568        ns: "https://cim4.eu/ns/nc#",
9569        local: "RampingPrincipleKind",
9570        comment: "Kind of ramping principle.",
9571        values: &[
9572            EnumValueDef { id: "RampingPrincipleKind.continuous", comment: "Continuous ramping principle is applied between two scheduled time point. For instance, from 10 MW to 70 MW over one hour the change is 1 MW/min." },
9573            EnumValueDef { id: "RampingPrincipleKind.fifteenMinutes", comment: "Fifteen minutes ramping principle. Ramping starts 15 minutes before the schedule time point and ends 15 minutes after. For instance, if the schedule time point is 19:30h it starts at 19:15h and ends at 19:45h." },
9574            EnumValueDef { id: "RampingPrincipleKind.fiveMinutes", comment: "Five minutes ramping principle. Ramping starts five minutes before the schedule time point and ends five minutes after. For instance, if the schedule time point is 19:30h it starts at 19:25h and ends at 19:35h." },
9575            EnumValueDef { id: "RampingPrincipleKind.maxContinuous", comment: "Maximum continuous ramping principle. The schedule is kept as long as possible and the maximum ramping rate is used to get from one point to another, symmetrically around the schedule time points. For example, there is 40 MW change in the schedule the maximum ramp rate is 20 MW/min the ramping starts 1 min before (e.g. 19:29h) and finishes 1 min after (e.g. 19:31h)." },
9576            EnumValueDef { id: "RampingPrincipleKind.tenMinutes", comment: "Ten minutes ramping principle. Ramping starts 10 minutes before the schedule time point and ends 10 minutes after. For instance, if the schedule time point is 19:30h it starts at 19:20h and ends at 19:40h." },
9577        ],
9578    },
9579    EnumDef {
9580        ns: "https://cim4.eu/ns/nc#",
9581        local: "RecordStatusKind",
9582        comment: "Enumeration indicating the lifecycle status of a business record.",
9583        values: &[
9584            EnumValueDef { id: "RecordStatusKind.approved", comment: "Indicates that the record version has been reviewed and formally accepted by the responsible entity." },
9585            EnumValueDef { id: "RecordStatusKind.cancelled", comment: "Indicates that the record version has been withdrawn and is no longer valid for coordination. A cancelled record is retained only for audit and traceability." },
9586            EnumValueDef { id: "RecordStatusKind.closed", comment: "Indicates that the record version has completed its lifecycle and no further action is required. The record remains available for reference but is not active in any process." },
9587            EnumValueDef { id: "RecordStatusKind.inProgress", comment: "Indicates that the record version is actively being processed, updated, or evaluated as part of any coordination workflow." },
9588            EnumValueDef { id: "RecordStatusKind.new", comment: "Indicates that the record version has been created but not yet submitted for review or coordination. It represents an initial draft state." },
9589            EnumValueDef { id: "RecordStatusKind.pending", comment: "Indicates that the record version has been submitted and is awaiting responses or decisions from assigned agents." },
9590            EnumValueDef { id: "RecordStatusKind.result", comment: "Indicates that the record version represents a final outcome or result of any coordination process, typically summarising the consolidated decision or approved plan." },
9591        ],
9592    },
9593    EnumDef {
9594        ns: "https://cim4.eu/ns/nc#",
9595        local: "ReferenceValueKind",
9596        comment: "Kind of reference value.",
9597        values: &[
9598            EnumValueDef { id: "ReferenceValueKind.exact", comment: "The referenced value is to be met exactly." },
9599            EnumValueDef { id: "ReferenceValueKind.maximum", comment: "The referenced value establishes a upper bound." },
9600            EnumValueDef { id: "ReferenceValueKind.minimum", comment: "The referenced value establishes a lower bound." },
9601        ],
9602    },
9603    EnumDef {
9604        ns: "https://cim4.eu/ns/nc#",
9605        local: "RejectionReasonKind",
9606        comment: "The kind of rejection reason.",
9607        values: &[
9608            EnumValueDef { id: "RejectionReasonKind.madeAlternative", comment: "The rejection is due to a proposal of an alternative remedial action." },
9609            EnumValueDef { id: "RejectionReasonKind.noTimeToImplement", comment: "The rejection is due to lack of time to realise the proposed remedial action." },
9610            EnumValueDef { id: "RejectionReasonKind.notAvailable", comment: "The rejection is due to unavailability of the object." },
9611            EnumValueDef { id: "RejectionReasonKind.other", comment: "The rejection is due to other more complex reason or the details are unknown." },
9612            EnumValueDef { id: "RejectionReasonKind.securityLimit", comment: "The rejection is due to security limit violation." },
9613        ],
9614    },
9615    EnumDef {
9616        ns: "https://cim4.eu/ns/nc#",
9617        local: "RelativeDirectionKind",
9618        comment: "Kind of direction for the changes.",
9619        values: &[
9620            EnumValueDef { id: "RelativeDirectionKind.down", comment: "Down signifies that the changes are decreasing from the current status." },
9621            EnumValueDef { id: "RelativeDirectionKind.none", comment: "There is no direction on the changes." },
9622            EnumValueDef { id: "RelativeDirectionKind.up", comment: "Up signifies that the changes are increasing from the current status." },
9623            EnumValueDef { id: "RelativeDirectionKind.upAndDown", comment: "Up and down signifies that both up and down values are equal." },
9624        ],
9625    },
9626    EnumDef {
9627        ns: "https://cim4.eu/ns/nc#",
9628        local: "RemedialActionDependencyKind",
9629        comment: "Kind of dependency between remedial actions.",
9630        values: &[
9631            EnumValueDef { id: "RemedialActionDependencyKind.balanced", comment: "This applies only to a set of power remedial actions (including HVDC which play role to balance power) and means that the remedial action needs to be balanced between the area (directly or indirectly to the bidding zone) that it is applied to." },
9632            EnumValueDef { id: "RemedialActionDependencyKind.exclusive", comment: "Remedial actions are exclusive depending on each other. e.g. Only one of the remedial actions can be selected at the same time." },
9633            EnumValueDef { id: "RemedialActionDependencyKind.inclusive", comment: "Remedial actions are inclusive depending on each other. e.g. Both remedial actions need to be picked if one of them is needed." },
9634            EnumValueDef { id: "RemedialActionDependencyKind.none", comment: "Remedial actions are not depending on each other. However, the two remedial actions should be evaluated together." },
9635            EnumValueDef { id: "RemedialActionDependencyKind.restrictive", comment: "Remedial actions are restrictive depending on each other. The need to include or to exclude might depend on the model. e.g. In the case of simplified DC model and detailed DC model. In the case where the simplified remedial action is used but not the remedial action for the detail model and opposite for the DC model." },
9636        ],
9637    },
9638    EnumDef {
9639        ns: "https://cim4.eu/ns/nc#",
9640        local: "RemedialActionKind",
9641        comment: "The different kinds for a remedial action.",
9642        values: &[
9643            EnumValueDef { id: "RemedialActionKind.curative", comment: "Curative remedial action means a remedial action that is the result of an operational planning process and is activated straight subsequent to the occurrence of the respective contingency for compliance with the (N-1) criterion, taking into account transitory admissible overloads and their accepted duration." },
9644            EnumValueDef { id: "RemedialActionKind.preventive", comment: "Preventive remedial action means a remedial action that is the result of an operational planning process and needs to be activated prior to the investigated timeframe for compliance with the (N-1) criterion." },
9645        ],
9646    },
9647    EnumDef {
9648        ns: "https://cim4.eu/ns/nc#",
9649        local: "RemedialActionScheduleDependencyKind",
9650        comment: "Kind of dependency between remedial action schedules.",
9651        values: &[
9652            EnumValueDef { id: "RemedialActionScheduleDependencyKind.exclusive", comment: "Remedial action schedules are exclusive depending on each other. e.g. Only one of the remedial action schedules can be selected at the same time." },
9653            EnumValueDef { id: "RemedialActionScheduleDependencyKind.inclusive", comment: "Remedial action schedules are inclusive depending on each other. e.g. Both remedial action schedules need to be picked if one of them is needed." },
9654            EnumValueDef { id: "RemedialActionScheduleDependencyKind.none", comment: "Remedial action schedules are not depending on each other. However, the two remedial action schedules should be evaluated together." },
9655        ],
9656    },
9657    EnumDef {
9658        ns: "https://cim4.eu/ns/nc#",
9659        local: "RemedialActionScheduleResponseKind",
9660        comment: "The kind of response for a remedial action schedule.",
9661        values: &[
9662            EnumValueDef { id: "RemedialActionScheduleResponseKind.accepted", comment: "The acceptance of remedial action schedule is concluded and accepted." },
9663            EnumValueDef { id: "RemedialActionScheduleResponseKind.refused", comment: "The acceptance of the remedial action schedule is concluded and refused." },
9664            EnumValueDef { id: "RemedialActionScheduleResponseKind.timeout", comment: "The acceptance of the remedial action schedule was not completed due to timeout." },
9665            EnumValueDef { id: "RemedialActionScheduleResponseKind.waiting", comment: "The acceptance of the remedial action schedule is waiting (in progress)." },
9666        ],
9667    },
9668    EnumDef {
9669        ns: "https://cim4.eu/ns/nc#",
9670        local: "RemedialActionScheduleStatusKind",
9671        comment: "Remedial action schedule status kinds.",
9672        values: &[
9673            EnumValueDef { id: "RemedialActionScheduleStatusKind.activated", comment: "Activated remedial action schedule." },
9674            EnumValueDef { id: "RemedialActionScheduleStatusKind.agreed", comment: "Agreed remedial action schedule." },
9675            EnumValueDef { id: "RemedialActionScheduleStatusKind.agreementValidated", comment: "The agreement is validated for the remedial action schedule." },
9676            EnumValueDef { id: "RemedialActionScheduleStatusKind.implemented", comment: "An ordered remedial action is implemented." },
9677            EnumValueDef { id: "RemedialActionScheduleStatusKind.notUsed", comment: "Not used remedial action schedule." },
9678            EnumValueDef { id: "RemedialActionScheduleStatusKind.ordered", comment: "Ordered remedial action schedule." },
9679            EnumValueDef { id: "RemedialActionScheduleStatusKind.previouslyAgreed", comment: "Previously agreed remedial action schedule." },
9680            EnumValueDef { id: "RemedialActionScheduleStatusKind.proposed", comment: "Proposed remedial action schedule." },
9681            EnumValueDef { id: "RemedialActionScheduleStatusKind.rejected", comment: "Rejected remedial action schedule." },
9682            EnumValueDef { id: "RemedialActionScheduleStatusKind.rejectionValidated", comment: "The rejection is validated for the remedial action schedule." },
9683        ],
9684    },
9685    EnumDef {
9686        ns: "https://cim4.eu/ns/nc#",
9687        local: "RemedialActionSchemeKind",
9688        comment: "Classification of Remedial Action Scheme.",
9689        values: &[
9690            EnumValueDef { id: "RemedialActionSchemeKind.rasp", comment: "Remedial Action Schema Plan (RASP). The triggering conditions are met through calculation or manual intervention." },
9691            EnumValueDef { id: "RemedialActionSchemeKind.sips", comment: "System Integrity Protection Scheme (SIPS). The triggering conditions are met through field measurements." },
9692        ],
9693    },
9694    EnumDef {
9695        ns: "https://cim4.eu/ns/nc#",
9696        local: "RequestResponseKind",
9697        comment: "Classification of the response to a request.",
9698        values: &[
9699            EnumValueDef { id: "RequestResponseKind.accepted", comment: "Indicates that the responding agent agrees and accept the request version as submitted." },
9700            EnumValueDef { id: "RequestResponseKind.acceptedWithConditions", comment: "Indicates that the responding agent can accept the request version only if specific conditions, modifications, or mitigations are met." },
9701            EnumValueDef { id: "RequestResponseKind.acknowledged", comment: "Indicates that the responding agent has received and reviewed the request version, but has not yet provided an approval or objection." },
9702            EnumValueDef { id: "RequestResponseKind.alternativeProposal", comment: "Indicates that the responding agent proposes alternative timing, duration, scope, or other adjustments to the request version." },
9703            EnumValueDef { id: "RequestResponseKind.noResponseTimeout", comment: "Indicates that the responding agent did not provide a response within the required timeframe, and the coordination process proceeded using a timeout rule." },
9704            EnumValueDef { id: "RequestResponseKind.refused", comment: "Indicates that the responding agent does not accept the request version due to operational, technical, or regulatory constraints." },
9705        ],
9706    },
9707    EnumDef {
9708        ns: "https://cim4.eu/ns/nc#",
9709        local: "RotatingMachineControlModeKind",
9710        comment: "Kind of rotating machine controller mode.",
9711        values: &[
9712            EnumValueDef { id: "RotatingMachineControlModeKind.activePower", comment: "Active power is specified." },
9713            EnumValueDef { id: "RotatingMachineControlModeKind.powerFactor", comment: "Power factor is specified." },
9714            EnumValueDef { id: "RotatingMachineControlModeKind.reactivePower", comment: "Reactive power control." },
9715            EnumValueDef { id: "RotatingMachineControlModeKind.voltage", comment: "Voltage control." },
9716        ],
9717    },
9718    EnumDef {
9719        ns: "https://cim4.eu/ns/nc#",
9720        local: "SSSCControlModeKind",
9721        comment: "Control modes of the Static Synchronous Series Compensator (SSSC).",
9722        values: &[
9723            EnumValueDef { id: "SSSCControlModeKind.currentDroop", comment: "The device injects a voltage proportional to the difference between the line current and the target value of the CurrentDroopControlFunction. There are capacitive and inductive operational regions." },
9724            EnumValueDef { id: "SSSCControlModeKind.effectiveReactance", comment: "The device injects a voltage proportional to the line current to achieve the specified target value defined by the ImpedanceControlFunction. The voltage will vary according to the line current level." },
9725            EnumValueDef { id: "SSSCControlModeKind.monitoring", comment: "The device bypasses and a voltage injection is close to zero. In monitoring mode current is monitored." },
9726            EnumValueDef { id: "SSSCControlModeKind.voltageInjection", comment: "The device injects a fixed voltage that is either inductive or capacitive according to the specified target value of the VoltageInjectionControlFunction. The effective reactance varies according to the flow of the line current." },
9727        ],
9728    },
9729    EnumDef {
9730        ns: "https://cim4.eu/ns/nc#",
9731        local: "SecuredExclusionReasonKind",
9732        comment: "The kind of secured exclusion reason.",
9733        values: &[
9734            EnumValueDef { id: "SecuredExclusionReasonKind.capacityCalculationRegion", comment: "The network element that is going to be assessed is excluded for being secured by the capacity calculation region." },
9735            EnumValueDef { id: "SecuredExclusionReasonKind.nonNativeCapacityCalculationRegion", comment: "The network element that is going to be assessed is excluded for being secured for the native capacity calculation region since it would be secured for a non native capacity calculation region." },
9736            EnumValueDef { id: "SecuredExclusionReasonKind.systemOperator", comment: "The network element that is going to be assessed is excluded for being secured by the system operator." },
9737        ],
9738    },
9739    EnumDef {
9740        ns: "https://cim4.eu/ns/nc#",
9741        local: "SensitivityMatrixKind",
9742        comment: "Kinds of sensitivity matrix.",
9743        values: &[
9744            EnumValueDef { id: "SensitivityMatrixKind.other", comment: "Other kind of sensitivity matrix." },
9745            EnumValueDef { id: "SensitivityMatrixKind.uniformLoad", comment: "Uniform load matrix." },
9746            EnumValueDef { id: "SensitivityMatrixKind.uniformNode", comment: "Uniform node matrix." },
9747            EnumValueDef { id: "SensitivityMatrixKind.zoneToSlack", comment: "Zone to slack kind of sensitivity matrix." },
9748        ],
9749    },
9750    EnumDef {
9751        ns: "https://cim4.eu/ns/nc#",
9752        local: "ShiftMethodKind",
9753        comment: "Kind of shift method. Describes the way a power schedule should be distributed amongst production and consumption. e.g. Type of generating and load shift key.",
9754        values: &[
9755            EnumValueDef { id: "ShiftMethodKind.priority", comment: "Power schedule shift (distribution) is done by a shared fraction prioritizing the unit e.g. A two unit with the participation factor 60 and 40 will distribute a 10 MW increased schedule by first filling the highest participation factor (priority) until max economy power or maximum power allowed by the unit before it starts filling the next on the list. e.g. The unit with 60 will be getting its maximum shared first. The same logic applies with reducing the schedule. e.g. The 60 participation factor unit will be reduced to its min economy factor or minimum power." },
9756            EnumValueDef { id: "ShiftMethodKind.shared", comment: "Power schedule shift (distribution) is done by a shared fraction e.g. A two unit with the participation factor 60 and 40 will distribute a 10 MW schedule by 6 and 4 MW." },
9757        ],
9758    },
9759    EnumDef {
9760        ns: "https://cim4.eu/ns/nc#",
9761        local: "SubstationControllerModeKind",
9762        comment: "Kind of substation controller mode.",
9763        values: &[
9764            EnumValueDef { id: "SubstationControllerModeKind.activePower", comment: "Active power control is the primary control of the substation.." },
9765            EnumValueDef { id: "SubstationControllerModeKind.reactivePower", comment: "Reactive power control is the primary control of the substation." },
9766            EnumValueDef { id: "SubstationControllerModeKind.voltage", comment: "Voltage control is the primary control of the substation." },
9767        ],
9768    },
9769    EnumDef {
9770        ns: "https://cim.ucaiug.io/ns#",
9771        local: "SynchronousMachineOperatingMode",
9772        comment: "Synchronous machine operating mode.",
9773        values: &[
9774            EnumValueDef { id: "SynchronousMachineOperatingMode.condenser", comment: "Operating as condenser." },
9775            EnumValueDef { id: "SynchronousMachineOperatingMode.generator", comment: "Operating as generator." },
9776            EnumValueDef { id: "SynchronousMachineOperatingMode.motor", comment: "Operating as motor." },
9777        ],
9778    },
9779    EnumDef {
9780        ns: "https://cim4.eu/ns/nc#",
9781        local: "SystemUnitKind",
9782        comment: "A system unit is defined as: A group of components which are delimited by one or more circuit breakers. Note 1: the system unit concept has been defined to simplify the calculation of availability. While a system unit is always delimited by circuit breakers, an individual component may not always be. A system unit may therefore contain more than one component. Note 2: the circuit breakers are not included in the system unit. Note 3: a tripped element is synonymous to a tripped system unit. Note 4: the type of a system unit is determined by its dominant component. The available system unit types are power transformer, overhead line, cable, reactor, busbar, series capacitor, shunt capacitor and SVC. Note 5: when a system unit is no longer transporting or supplying electrical energy, the system unit is affected by an outage. The system unit is unavailable after the outage has occurred.",
9783        values: &[
9784            EnumValueDef { id: "SystemUnitKind.busbar", comment: "If the main function of the system unit is busbar." },
9785            EnumValueDef { id: "SystemUnitKind.cable", comment: "If the main function of the system unit is cable." },
9786            EnumValueDef { id: "SystemUnitKind.dcCable", comment: "If the main function of the system unit is DCCable." },
9787            EnumValueDef { id: "SystemUnitKind.dcConverter", comment: "If the main function of the system unit is DCConverter." },
9788            EnumValueDef { id: "SystemUnitKind.facts", comment: "If the main function of the system unit is FACTS." },
9789            EnumValueDef { id: "SystemUnitKind.other", comment: "If it is of other kind." },
9790            EnumValueDef { id: "SystemUnitKind.overheadLine", comment: "If the main function of the system unit is overhead line." },
9791            EnumValueDef { id: "SystemUnitKind.powerTransformer", comment: "If the main function of the system unit is power transformer." },
9792            EnumValueDef { id: "SystemUnitKind.reactor", comment: "If the main function of the system unit is reactor." },
9793            EnumValueDef { id: "SystemUnitKind.seriesCapacitor", comment: "If the main function of the system unit is series capacitor." },
9794            EnumValueDef { id: "SystemUnitKind.shuntCapacitor", comment: "If the main function of the system unit is shunt capacitor." },
9795            EnumValueDef { id: "SystemUnitKind.svc", comment: "If the main function of the system unit is static var compensator (SVC)." },
9796        ],
9797    },
9798    EnumDef {
9799        ns: "https://cim4.eu/ns/nc#",
9800        local: "TCSCControlModeKind",
9801        comment: "Kind of TCSC control mode.",
9802        values: &[
9803            EnumValueDef { id: "TCSCControlModeKind.activePower", comment: "Control is active power." },
9804            EnumValueDef { id: "TCSCControlModeKind.current", comment: "Control is current." },
9805            EnumValueDef { id: "TCSCControlModeKind.impedance", comment: "Control is impedance." },
9806        ],
9807    },
9808    EnumDef {
9809        ns: "https://cim4.eu/ns/nc#",
9810        local: "TimeSeriesInterpolationKind",
9811        comment: "Kinds of interpolation of values between two time point.",
9812        values: &[
9813            EnumValueDef { id: "TimeSeriesInterpolationKind.previous", comment: "The value between two time points is set to previous value." },
9814            EnumValueDef { id: "TimeSeriesInterpolationKind.linear", comment: "Linear interpolation is applied for values between two time points." },
9815            EnumValueDef { id: "TimeSeriesInterpolationKind.next", comment: "The value between two time points is set to next value." },
9816            EnumValueDef { id: "TimeSeriesInterpolationKind.none", comment: "No interpolation is applied." },
9817            EnumValueDef { id: "TimeSeriesInterpolationKind.zero", comment: "The value between two time points is set to zero." },
9818        ],
9819    },
9820    EnumDef {
9821        ns: "https://cim4.eu/ns/nc#",
9822        local: "TripKind",
9823        comment: "Whether the type of the trip due to the outage was automatic, automatic with successful automatic reclosing or manual. In case of a fault in the reclosing automatics resulting in lack of reclosing, automatic should be chosen as an alternative.",
9824        values: &[
9825            EnumValueDef { id: "TripKind.automatic", comment: "The trip that resulted in the outage was automatic. In case of a fault in the reclosing automatics resulting in lack of reclosing, automatic should be chosen as an alternative." },
9826            EnumValueDef { id: "TripKind.automaticWithUnsuccessfulAutomaticReclosing", comment: "The trip that resulted in an outage was correctly initiated but the automatic reclosing was unsuccessful. In case of a fault in the reclosing automatics resulting in lack of reclosing, automatic should be chosen as an alternative." },
9827            EnumValueDef { id: "TripKind.manual", comment: "The trip that resulted in the outage was manually cleared." },
9828        ],
9829    },
9830    EnumDef {
9831        ns: "https://cim4.eu/ns/nc#",
9832        local: "UniquenessScopeKind",
9833        comment: "Specifies the intended scope within which a class attribute value is unique.",
9834        values: &[
9835            EnumValueDef { id: "UniquenessScopeKind.authority", comment: "Unique within the scope of the associated authority." },
9836            EnumValueDef { id: "UniquenessScopeKind.exchangeContext", comment: "Unique only within the scope of a single exchange package/context (file set, model exchange)." },
9837            EnumValueDef { id: "UniquenessScopeKind.global", comment: "Intended to be globally unique (across organisations and exchanges)." },
9838            EnumValueDef { id: "UniquenessScopeKind.unspecified", comment: "Uniqueness is not stated (do not assume uniqueness)." },
9839        ],
9840    },
9841    EnumDef {
9842        ns: "https://cim.ucaiug.io/ns#",
9843        local: "UnitMultiplier",
9844        comment: "The unit multipliers defined for the CIM. When applied to unit symbols, the unit symbol is treated as a derived unit. Regardless of the contents of the unit symbol text, the unit symbol shall be treated as if it were a single-character unit symbol. Unit symbols should not contain multipliers, and it should be left to the multiplier to define the multiple for an entire data type. For example, if a unit symbol is 'm2Pers' and the multiplier is 'k', then the value is k(m**2/s), and the multiplier applies to the entire final value, not to any individual part of the value. This can be conceptualized by substituting a derived unit symbol for the unit type. If one imagines that the symbol 'Þ' represents the derived unit 'm2Pers', then applying the multiplier 'k' can be conceptualized simply as 'kÞ'. For example, the SI unit for mass is 'kg' and not 'g'. If the unit symbol is defined as 'kg', then the multiplier is applied to 'kg' as a whole and does not replace the 'k' in front of the 'g'. In this case, the multiplier of 'm' would be used with the unit symbol of 'kg' to represent one gram. As a text string, this violates the instructions in IEC 80000-1. However, because the unit symbol in CIM is treated as a derived unit instead of as an SI unit, it makes more sense to conceptualize the 'kg' as if it were replaced by one of the proposed replacements for the SI mass symbol. If one imagines that the 'kg' were replaced by a symbol 'Þ', then it is easier to conceptualize the multiplier 'm' as creating the proper unit 'mÞ', and not the forbidden unit 'mkg'.",
9845        values: &[
9846            EnumValueDef { id: "UnitMultiplier.M", comment: "Mega 10**6." },
9847            EnumValueDef { id: "UnitMultiplier.none", comment: "No multiplier or equivalently multiply by 1." },
9848            EnumValueDef { id: "UnitMultiplier.k", comment: "Kilo 10**3." },
9849        ],
9850    },
9851    EnumDef {
9852        ns: "https://cim.ucaiug.io/ns#",
9853        local: "UnitSymbol",
9854        comment: "The derived units defined for usage in the CIM. In some cases, the derived unit is equal to an SI unit. Whenever possible, the standard derived symbol is used instead of the formula for the derived unit. For example, the unit symbol Farad is defined as 'F' instead of 'CPerV'. In cases where a standard symbol does not exist for a derived unit, the formula for the unit is used as the unit symbol. For example, density does not have a standard symbol and so it is represented as 'kgPerm3'. With the exception of the 'kg', which is an SI unit, the unit symbols do not contain multipliers and therefore represent the base derived unit to which a multiplier can be applied as a whole. Every unit symbol is treated as an unparseable text as if it were a single-letter symbol. The meaning of each unit symbol is defined by the accompanying descriptive text and not by the text contents of the unit symbol. To allow the widest possible range of serializations without requiring special character handling, several substitutions are made which deviate from the format described in IEC 80000-1. The division symbol '/' is replaced by the letters 'Per'. Exponents are written in plain text after the unit as 'm3' instead of being formatted as 'm' with a superscript of 3 or introducing a symbol as in 'm^3'. The degree symbol '°' is replaced with the letters 'deg'. Any clarification of the meaning for a substitution is included in the description for the unit symbol. Non-SI units are included in list of unit symbols to allow sources of data to be correctly labelled with their non-SI units (for example, a GPS sensor that is reporting numbers that represent feet instead of meters). This allows software to use the unit symbol information correctly convert and scale the raw data of those sources into SI-based units. The integer values are used for harmonization with IEC 61850.",
9855        values: &[
9856            EnumValueDef { id: "UnitSymbol.W", comment: "Real power in watts (J/s). Electrical power may have real and reactive components. The real portion of electrical power (I&#178;R or VIcos(phi)), is expressed in Watts. See also apparent power and reactive power." },
9857            EnumValueDef { id: "UnitSymbol.none", comment: "Dimension less quantity, e.g. count, per unit, etc." },
9858            EnumValueDef { id: "UnitSymbol.s", comment: "Time in seconds." },
9859            EnumValueDef { id: "UnitSymbol.A", comment: "Current in amperes." },
9860            EnumValueDef { id: "UnitSymbol.H", comment: "Electric inductance in henrys (Wb/A)." },
9861            EnumValueDef { id: "UnitSymbol.Hz", comment: "Frequency in hertz (1/s)." },
9862            EnumValueDef { id: "UnitSymbol.Pa", comment: "Pressure in pascals (N/m²). Note: the absolute or relative measurement of pressure is implied with this entry. See below for more explicit forms." },
9863            EnumValueDef { id: "UnitSymbol.V", comment: "Electric potential in volts (W/A)." },
9864            EnumValueDef { id: "UnitSymbol.VA", comment: "Apparent power in volt amperes. See also real power and reactive power." },
9865            EnumValueDef { id: "UnitSymbol.VAr", comment: "Reactive power in volt amperes reactive. The “reactive” or “imaginary” component of electrical power (VIsin(phi)). (See also real power and apparent power). Note: Different meter designs use different methods to arrive at their results. Some meters may compute reactive power as an arithmetic value, while others compute the value vectorially. The data consumer should determine the method in use and the suitability of the measurement for the intended purpose." },
9866            EnumValueDef { id: "UnitSymbol.VPerVAr", comment: "Power factor, PF, the ratio of the active power to the apparent power. Note: The sign convention used for power factor will differ between IEC meters and EEI (ANSI) meters. It is assumed that the data consumers understand the type of meter being used and agree on the sign convention in use at any given utility." },
9867            EnumValueDef { id: "UnitSymbol.WPerm2", comment: "Heat flux density, irradiance, watts per square metre." },
9868            EnumValueDef { id: "UnitSymbol.WPers", comment: "Ramp rate in watts per second." },
9869            EnumValueDef { id: "UnitSymbol.Wh", comment: "Real energy in watt hours." },
9870            EnumValueDef { id: "UnitSymbol.deg", comment: "Plane angle in degrees." },
9871            EnumValueDef { id: "UnitSymbol.degC", comment: "Relative temperature in degrees Celsius. In the SI unit system the symbol is °C. Electric charge is measured in coulomb that has the unit symbol C. To distinguish degree Celsius from coulomb the symbol used in the UML is degC. The reason for not using °C is that the special character ° is difficult to manage in software." },
9872            EnumValueDef { id: "UnitSymbol.kgPerJ", comment: "Weight per energy in kilograms per joule (kg/J). Note: multiplier “k” is included in this unit symbol for compatibility with IEC 61850-7-3." },
9873            EnumValueDef { id: "UnitSymbol.ohm", comment: "Electric resistance in ohms (V/A)." },
9874        ],
9875    },
9876    EnumDef {
9877        ns: "https://cim4.eu/ns/nc#",
9878        local: "ValueOffsetKind",
9879        comment: "The kind of the value offset.",
9880        values: &[
9881            EnumValueDef { id: "ValueOffsetKind.absolute", comment: "Value of the range constraint is replacing the attribute value referenced by the PropertyReference in a determined operational scenario." },
9882            EnumValueDef { id: "ValueOffsetKind.incremental", comment: "Value of the range constraint is incrementing the attribute value referenced by the PropertyReference in a determined operational scenario." },
9883            EnumValueDef { id: "ValueOffsetKind.incrementalPercentage", comment: "Value of the range constraint is incrementing in percentage the attribute value referenced by the PropertyReference in a determined operational scenario." },
9884        ],
9885    },
9886    EnumDef {
9887        ns: "https://cim.ucaiug.io/ns#",
9888        local: "VsPpccControlKind",
9889        comment: "Types applicable to the control of real power and/or DC voltage by voltage source converter.",
9890        values: &[
9891            EnumValueDef { id: "VsPpccControlKind.pPcc", comment: "Control is real power at point of common coupling. The target value is provided by ACDCConverter.targetPpcc." },
9892            EnumValueDef { id: "VsPpccControlKind.pPccAndUdcDroop", comment: "Control is active power at point of common coupling and local DC voltage, with the droop. Target values are provided by ACDCConverter.targetPpcc, ACDCConverter.targetUdc and VsConverter.droop." },
9893            EnumValueDef { id: "VsPpccControlKind.pPccAndUdcDroopPilot", comment: "Control is active power at point of common coupling and the pilot DC voltage, with the droop. The mode is used for Multi Terminal High Voltage DC (MTDC) systems where multiple HVDC Substations are connected to the HVDC transmission lines. The pilot voltage is then used to coordinate the control the DC voltage across the HVDC substations. Targets are provided by ACDCConverter.targetPpcc, ACDCConverter.targetUdc and VsConverter.droop." },
9894            EnumValueDef { id: "VsPpccControlKind.pPccAndUdcDroopWithCompensation", comment: "Control is active power at point of common coupling and compensated DC voltage, with the droop. Compensation factor is the resistance, as an approximation of the DC voltage of a common (real or virtual) node in the DC network. Targets are provided by ACDCConverter.targetPpcc, ACDCConverter.targetUdc, VsConverter.droop and VsConverter.droopCompensation." },
9895            EnumValueDef { id: "VsPpccControlKind.phasePcc", comment: "Control is phase at point of common coupling. Target is provided by VsConverter.targetPhasePcc." },
9896            EnumValueDef { id: "VsPpccControlKind.udc", comment: "Control is DC voltage with target value provided by ACDCConverter.targetUdc." },
9897        ],
9898    },
9899    EnumDef {
9900        ns: "https://cim.ucaiug.io/ns#",
9901        local: "VsQpccControlKind",
9902        comment: "Kind of reactive power control at point of common coupling for a voltage source converter.",
9903        values: &[
9904            EnumValueDef { id: "VsQpccControlKind.powerFactorPcc", comment: "Control is power factor at point of common coupling. Target is provided by VsConverter.targetPowerFactorPcc." },
9905            EnumValueDef { id: "VsQpccControlKind.pulseWidthModulation", comment: "No explicit control. Pulse-modulation factor is directly set in magnitude (VsConverter.targetPWMfactor) and phase (VsConverter.targetPhasePcc)." },
9906            EnumValueDef { id: "VsQpccControlKind.reactivePcc", comment: "Control is reactive power at point of common coupling. Target is provided by VsConverter.targetQpcc." },
9907            EnumValueDef { id: "VsQpccControlKind.voltagePcc", comment: "Control is voltage at point of common coupling. Target is provided by VsConverter.targetUpcc." },
9908        ],
9909    },
9910];
9911
9912/// The `nc` family's schema.
9913pub static SCHEMA: Schema = Schema { classes: CLASSES, profiles: PROFILES, namespaces: NAMESPACES, enums: ENUMS };