Skip to main content

cimmodel/generated/
cgmes_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 `cgmes` family. The index of a row is its class id.
7pub static CLASSES: &[ClassDef] = &[
8    ClassDef {
9        ns: "http://iec.ch/TC57/CIM100#",
10        local: "ACDCConverter",
11        qualified: "ACDCConverter",
12        super_class: Some(37),
13        concrete: false,
14        origins: &["EQ", "DY", "SSH", "SV"],
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.DCTerminals", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ACDCConverterDCTerminal", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "A DC converter have DC converter terminals. A converter has two DC converter terminals." },
18            AttrDef { id: "ACDCConverter.PccTerminal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Terminal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "Point of common coupling terminal for this converter DC side. It is typically the terminal on the power transformer (or switch) closest to the AC network." },
19            AttrDef { id: "ACDCConverter.baseS", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ApparentPower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Base apparent power of the converter pole. The attribute shall be a positive value." },
20            AttrDef { id: "ACDCConverter.idc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SV"], comment: "Converter DC current, also called Id. It is converter’s state variable, result from power flow." },
21            AttrDef { id: "ACDCConverter.idleLoss", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Active power loss in pole at no power transfer. It is converter’s configuration data used in power flow. The attribute shall be a positive value." },
22            AttrDef { id: "ACDCConverter.maxP", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Maximum active power limit. The value is overwritten by values of VsCapabilityCurve, if present." },
23            AttrDef { id: "ACDCConverter.maxUdc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], 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." },
24            AttrDef { id: "ACDCConverter.minP", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Minimum active power limit. The value is overwritten by values of VsCapabilityCurve, if present." },
25            AttrDef { id: "ACDCConverter.minUdc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], 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." },
26            AttrDef { id: "ACDCConverter.numberOfValves", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["EQ"], comment: "Number of valves in the converter. Used in loss calculations." },
27            AttrDef { id: "ACDCConverter.p", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], 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." },
28            AttrDef { id: "ACDCConverter.poleLossP", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SV"], comment: "The active power loss at a DC Pole = idleLoss + switchingLoss*|Idc| + resitiveLoss*Idc^2. For lossless operation Pdc=Pac. For rectifier operation with losses Pdc=Pac-lossP. For inverter operation with losses Pdc=Pac+lossP. It is converter’s state variable used in power flow. The attribute shall be a positive value." },
29            AttrDef { id: "ACDCConverter.q", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], 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." },
30            AttrDef { id: "ACDCConverter.ratedUdc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], 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." },
31            AttrDef { id: "ACDCConverter.resistiveLoss", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "It is converter’s configuration data used in power flow. Refer to poleLossP. The attribute shall be a positive value." },
32            AttrDef { id: "ACDCConverter.switchingLoss", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePowerPerCurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Switching losses, relative to the base apparent power 'baseS'. Refer to poleLossP. The attribute shall be a positive value." },
33            AttrDef { id: "ACDCConverter.targetPpcc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], 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." },
34            AttrDef { id: "ACDCConverter.targetUdc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "Target value for DC voltage magnitude. The attribute shall be a positive value." },
35            AttrDef { id: "ACDCConverter.uc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SV"], comment: "Line-to-line converter voltage, the voltage at the AC side of the valve. It is converter’s state variable, result from power flow. The attribute shall be a positive value." },
36            AttrDef { id: "ACDCConverter.udc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SV"], comment: "Converter voltage at the DC side, also called Ud. It is converter’s state variable, result from power flow. The attribute shall be a positive value." },
37            AttrDef { id: "ACDCConverter.valveU0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Valve threshold voltage, also called Uvalve. Forward voltage drop when the valve is conducting. Used in loss calculations, i.e. the switchLoss depend on numberOfValves * valveU0." },
38        ],
39    },
40    ClassDef {
41        ns: "http://iec.ch/TC57/CIM100#",
42        local: "ACDCConverterDCTerminal",
43        qualified: "ACDCConverterDCTerminal",
44        super_class: Some(56),
45        concrete: true,
46        origins: &["EQ", "SSH", "TP"],
47        comment: "A DC electrical connection point at the AC/DC converter. The AC/DC converter is electrically connected also to the AC side. The AC connection is inherited from the AC conducting equipment in the same way as any other AC equipment. The AC/DC converter DC terminal is separate from generic DC terminal to restrict the connection with the AC side to AC/DC converter and so that no other DC conducting equipment can be connected to the AC side.",
48        attrs: &[
49            AttrDef { id: "ACDCConverterDCTerminal.DCConductingEquipment", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ACDCConverter", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "A DC converter terminal belong to an DC converter." },
50            AttrDef { id: "ACDCConverterDCTerminal.polarity", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "DCPolarityKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["EQ"], comment: "Represents the normal network polarity condition. Depending on the converter configuration the value shall be set as follows: - For a monopole with two converter terminals use DCPolarityKind “positive” and “negative”. - For a bi-pole or symmetric monopole with three converter terminals use DCPolarityKind “positive”, “middle” and “negative”." },
51        ],
52    },
53    ClassDef {
54        ns: "http://iec.ch/TC57/CIM100#",
55        local: "ACDCTerminal",
56        qualified: "ACDCTerminal",
57        super_class: Some(213),
58        concrete: false,
59        origins: &["EQ", "DY", "EQBD", "OP", "SC", "SSH", "SV", "TP"],
60        comment: "An electrical connection point (AC or DC) to a piece of conducting equipment. Terminals are connected at physical connection points called connectivity nodes.",
61        attrs: &[
62            AttrDef { id: "ACDCTerminal.BusNameMarker", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "BusNameMarker", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The bus name marker used to name the bus (topological node)." },
63            AttrDef { id: "ACDCTerminal.Measurements", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Measurement", is_list: true, used: false, xsd: "", value_ns: "", origins: &["OP"], comment: "Measurements associated with this terminal defining where the measurement is placed in the network topology. It may be used, for instance, to capture the sensor position, such as a voltage transformer (PT) at a busbar or a current transformer (CT) at the bar between a breaker and an isolator." },
64            AttrDef { id: "ACDCTerminal.OperationalLimitSet", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "OperationalLimitSet", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The operational limit sets at the terminal." },
65            AttrDef { id: "ACDCTerminal.connected", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSH"], comment: "The connected status is related to a bus-branch model and the topological node to terminal relation. True implies the terminal is connected to the related topological node and false implies it is not. In a bus-branch model, the connected status is used to tell if equipment is disconnected without having to change the connectivity described by the topological node to terminal relation. A valid case is that conducting equipment can be connected in one end and open in the other. In particular for an AC line segment, where the reactive line charging can be significant, this is a relevant case." },
66            AttrDef { id: "ACDCTerminal.sequenceNumber", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["EQ"], comment: "The orientation of the terminal connections for a multiple terminal conducting equipment. The sequence numbering starts with 1 and additional terminals should follow in increasing order. The first terminal is the 'starting point' for a two terminal branch." },
67        ],
68    },
69    ClassDef {
70        ns: "http://iec.ch/TC57/CIM100#",
71        local: "ACLineSegment",
72        qualified: "ACLineSegment",
73        super_class: Some(38),
74        concrete: true,
75        origins: &["EQ", "SC"],
76        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.",
77        attrs: &[
78            AttrDef { id: "ACLineSegment.Clamp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Clamp", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The clamps connected to the line segment." },
79            AttrDef { id: "ACLineSegment.Cut", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Cut", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "Cuts applied to the line segment." },
80            AttrDef { id: "ACLineSegment.b0ch", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Susceptance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence shunt (charging) susceptance, uniformly distributed, of the entire line section." },
81            AttrDef { id: "ACLineSegment.bch", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Susceptance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Positive sequence shunt (charging) susceptance, uniformly distributed, of the entire line section. This value represents the full charging over the full length of the line." },
82            AttrDef { id: "ACLineSegment.g0ch", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Conductance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence shunt (charging) conductance, uniformly distributed, of the entire line section." },
83            AttrDef { id: "ACLineSegment.gch", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Conductance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Positive sequence shunt (charging) conductance, uniformly distributed, of the entire line section." },
84            AttrDef { id: "ACLineSegment.r", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Positive sequence series resistance of the entire line section." },
85            AttrDef { id: "ACLineSegment.r0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence series resistance of the entire line section." },
86            AttrDef { id: "ACLineSegment.shortCircuitEndTemperature", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Maximum permitted temperature at the end of SC for the calculation of minimum short-circuit currents. Used for short circuit data exchange according to IEC 60909." },
87            AttrDef { id: "ACLineSegment.x", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Positive sequence series reactance of the entire line section." },
88            AttrDef { id: "ACLineSegment.x0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence series reactance of the entire line section." },
89        ],
90    },
91    ClassDef {
92        ns: "http://iec.ch/TC57/CIM100#",
93        local: "Accumulator",
94        qualified: "Accumulator",
95        super_class: Some(233),
96        concrete: true,
97        origins: &["OP"],
98        comment: "Accumulator represents an accumulated (counted) Measurement, e.g. an energy value.",
99        attrs: &[
100            AttrDef { id: "Accumulator.AccumulatorValues", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "AccumulatorValue", is_list: true, used: false, xsd: "", value_ns: "", origins: &["OP"], comment: "The values connected to this measurement." },
101            AttrDef { id: "Accumulator.LimitSets", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "AccumulatorLimitSet", is_list: true, used: false, xsd: "", value_ns: "", origins: &["OP"], comment: "A measurement may have zero or more limit ranges defined for it." },
102        ],
103    },
104    ClassDef {
105        ns: "http://iec.ch/TC57/CIM100#",
106        local: "AccumulatorLimit",
107        qualified: "AccumulatorLimit",
108        super_class: Some(216),
109        concrete: true,
110        origins: &["OP"],
111        comment: "Limit values for Accumulator measurements.",
112        attrs: &[
113            AttrDef { id: "AccumulatorLimit.LimitSet", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "AccumulatorLimitSet", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OP"], comment: "The set of limits." },
114            AttrDef { id: "AccumulatorLimit.value", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["OP"], comment: "The value to supervise against. The value is positive." },
115        ],
116    },
117    ClassDef {
118        ns: "http://iec.ch/TC57/CIM100#",
119        local: "AccumulatorLimitSet",
120        qualified: "AccumulatorLimitSet",
121        super_class: Some(218),
122        concrete: true,
123        origins: &["OP"],
124        comment: "An AccumulatorLimitSet specifies a set of Limits that are associated with an Accumulator measurement.",
125        attrs: &[
126            AttrDef { id: "AccumulatorLimitSet.Limits", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "AccumulatorLimit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["OP"], comment: "The limit values used for supervision of Measurements." },
127            AttrDef { id: "AccumulatorLimitSet.Measurements", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Accumulator", is_list: true, used: true, xsd: "", value_ns: "", origins: &["OP"], comment: "The Measurements using the LimitSet." },
128        ],
129    },
130    ClassDef {
131        ns: "http://iec.ch/TC57/CIM100#",
132        local: "AccumulatorReset",
133        qualified: "AccumulatorReset",
134        super_class: Some(45),
135        concrete: true,
136        origins: &["OP"],
137        comment: "This command resets the counter value to zero.",
138        attrs: &[
139            AttrDef { id: "AccumulatorReset.AccumulatorValue", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "AccumulatorValue", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OP"], comment: "The accumulator value that is reset by the command." },
140        ],
141    },
142    ClassDef {
143        ns: "http://iec.ch/TC57/CIM100#",
144        local: "AccumulatorValue",
145        qualified: "AccumulatorValue",
146        super_class: Some(234),
147        concrete: true,
148        origins: &["OP"],
149        comment: "AccumulatorValue represents an accumulated (counted) MeasurementValue.",
150        attrs: &[
151            AttrDef { id: "AccumulatorValue.Accumulator", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Accumulator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OP"], comment: "Measurement to which this value is connected." },
152            AttrDef { id: "AccumulatorValue.AccumulatorReset", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "AccumulatorReset", is_list: false, used: false, xsd: "", value_ns: "", origins: &["OP"], comment: "The command that resets the accumulator value." },
153        ],
154    },
155    ClassDef {
156        ns: "http://iec.ch/TC57/CIM100#",
157        local: "ActivePowerLimit",
158        qualified: "ActivePowerLimit",
159        super_class: Some(248),
160        concrete: true,
161        origins: &["EQ", "SSH"],
162        comment: "Limit on active power flow.",
163        attrs: &[
164            AttrDef { id: "ActivePowerLimit.normalValue", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The normal value of active power limit. The attribute shall be a positive value or zero." },
165            AttrDef { id: "ActivePowerLimit.value", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "Value of active power limit. The attribute shall be a positive value or zero." },
166        ],
167    },
168    ClassDef {
169        ns: "http://iec.ch/TC57/CIM100#",
170        local: "Analog",
171        qualified: "Analog",
172        super_class: Some(233),
173        concrete: true,
174        origins: &["OP"],
175        comment: "Analog represents an analog Measurement.",
176        attrs: &[
177            AttrDef { id: "Analog.AnalogValues", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "AnalogValue", is_list: true, used: false, xsd: "", value_ns: "", origins: &["OP"], comment: "The values connected to this measurement." },
178            AttrDef { id: "Analog.LimitSets", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "AnalogLimitSet", is_list: true, used: false, xsd: "", value_ns: "", origins: &["OP"], comment: "A measurement may have zero or more limit ranges defined for it." },
179            AttrDef { id: "Analog.positiveFlowIn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["OP"], comment: "If true then this measurement is an active power, reactive power or current with the convention that a positive value measured at the Terminal means power is flowing into the related PowerSystemResource." },
180        ],
181    },
182    ClassDef {
183        ns: "http://iec.ch/TC57/CIM100#",
184        local: "AnalogControl",
185        qualified: "AnalogControl",
186        super_class: Some(45),
187        concrete: false,
188        origins: &["OP"],
189        comment: "An analog control used for supervisory control.",
190        attrs: &[
191            AttrDef { id: "AnalogControl.AnalogValue", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "AnalogValue", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OP"], comment: "The MeasurementValue that is controlled." },
192            AttrDef { id: "AnalogControl.maxValue", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["OP"], comment: "Normal value range maximum for any of the Control.value. Used for scaling, e.g. in bar graphs." },
193            AttrDef { id: "AnalogControl.minValue", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["OP"], comment: "Normal value range minimum for any of the Control.value. Used for scaling, e.g. in bar graphs." },
194        ],
195    },
196    ClassDef {
197        ns: "http://iec.ch/TC57/CIM100#",
198        local: "AnalogLimit",
199        qualified: "AnalogLimit",
200        super_class: Some(216),
201        concrete: true,
202        origins: &["OP"],
203        comment: "Limit values for Analog measurements.",
204        attrs: &[
205            AttrDef { id: "AnalogLimit.LimitSet", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "AnalogLimitSet", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OP"], comment: "The set of limits." },
206            AttrDef { id: "AnalogLimit.value", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["OP"], comment: "The value to supervise against." },
207        ],
208    },
209    ClassDef {
210        ns: "http://iec.ch/TC57/CIM100#",
211        local: "AnalogLimitSet",
212        qualified: "AnalogLimitSet",
213        super_class: Some(218),
214        concrete: true,
215        origins: &["OP"],
216        comment: "An AnalogLimitSet specifies a set of Limits that are associated with an Analog measurement.",
217        attrs: &[
218            AttrDef { id: "AnalogLimitSet.Limits", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "AnalogLimit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["OP"], comment: "The limit values used for supervision of Measurements." },
219            AttrDef { id: "AnalogLimitSet.Measurements", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Analog", is_list: true, used: true, xsd: "", value_ns: "", origins: &["OP"], comment: "The Measurements using the LimitSet." },
220        ],
221    },
222    ClassDef {
223        ns: "http://iec.ch/TC57/CIM100#",
224        local: "AnalogValue",
225        qualified: "AnalogValue",
226        super_class: Some(234),
227        concrete: true,
228        origins: &["OP"],
229        comment: "AnalogValue represents an analog MeasurementValue.",
230        attrs: &[
231            AttrDef { id: "AnalogValue.Analog", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Analog", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OP"], comment: "Measurement to which this value is connected." },
232            AttrDef { id: "AnalogValue.AnalogControl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "AnalogControl", is_list: false, used: false, xsd: "", value_ns: "", origins: &["OP"], comment: "The Control variable associated with the MeasurementValue." },
233        ],
234    },
235    ClassDef {
236        ns: "http://iec.ch/TC57/CIM100#",
237        local: "ApparentPowerLimit",
238        qualified: "ApparentPowerLimit",
239        super_class: Some(248),
240        concrete: true,
241        origins: &["EQ", "SSH"],
242        comment: "Apparent power limit.",
243        attrs: &[
244            AttrDef { id: "ApparentPowerLimit.normalValue", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ApparentPower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The normal apparent power limit. The attribute shall be a positive value or zero." },
245            AttrDef { id: "ApparentPowerLimit.value", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ApparentPower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "The apparent power limit. The attribute shall be a positive value or zero." },
246        ],
247    },
248    ClassDef {
249        ns: "http://iec.ch/TC57/CIM100#",
250        local: "AsynchronousMachine",
251        qualified: "AsynchronousMachine",
252        super_class: Some(320),
253        concrete: true,
254        origins: &["EQ", "DY", "SC", "SSH"],
255        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.",
256        attrs: &[
257            AttrDef { id: "AsynchronousMachine.AsynchronousMachineDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "AsynchronousMachineDynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Asynchronous machine dynamics model used to describe dynamic behaviour of this asynchronous machine." },
258            AttrDef { id: "AsynchronousMachine.asynchronousMachineType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "AsynchronousMachineKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["SSH"], comment: "Indicates the type of Asynchronous Machine (motor or generator)." },
259            AttrDef { id: "AsynchronousMachine.converterFedDrive", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SC"], comment: "Indicates whether the machine is a converter fed drive. Used for short circuit data exchange according to IEC 60909." },
260            AttrDef { id: "AsynchronousMachine.efficiency", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Efficiency of the asynchronous machine at nominal operation as a percentage. Indicator for converter drive motors. Used for short circuit data exchange according to IEC 60909." },
261            AttrDef { id: "AsynchronousMachine.iaIrRatio", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Ratio of locked-rotor current to the rated current of the motor (Ia/Ir). Used for short circuit data exchange according to IEC 60909." },
262            AttrDef { id: "AsynchronousMachine.nominalFrequency", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Nameplate data indicates if the machine is 50 Hz or 60 Hz." },
263            AttrDef { id: "AsynchronousMachine.nominalSpeed", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "RotationSpeed", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Nameplate data. Depends on the slip and number of pole pairs." },
264            AttrDef { id: "AsynchronousMachine.polePairNumber", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["SC"], comment: "Number of pole pairs of stator. Used for short circuit data exchange according to IEC 60909." },
265            AttrDef { id: "AsynchronousMachine.ratedMechanicalPower", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Rated mechanical power (Pr in IEC 60909-0). Used for short circuit data exchange according to IEC 60909." },
266            AttrDef { id: "AsynchronousMachine.reversible", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SC"], comment: "Indicates for converter drive motors if the power can be reversible. Used for short circuit data exchange according to IEC 60909." },
267            AttrDef { id: "AsynchronousMachine.rxLockedRotorRatio", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Locked rotor ratio (R/X). Used for short circuit data exchange according to IEC 60909." },
268        ],
269    },
270    ClassDef {
271        ns: "http://iec.ch/TC57/CIM100#",
272        local: "AsynchronousMachineDynamics",
273        qualified: "AsynchronousMachineDynamics",
274        super_class: Some(321),
275        concrete: false,
276        origins: &["DY"],
277        comment: "Asynchronous machine whose behaviour is described by reference to a standard model expressed in either time constant reactance form or equivalent circuit form or by definition of a user-defined model. Parameter details: Asynchronous machine parameters such as Xl, Xs, etc. are actually used as inductances in the model, but are commonly referred to as reactances since, at nominal frequency, the PU values are the same. However, some references use the symbol L instead of X.",
278        attrs: &[
279            AttrDef { id: "AsynchronousMachineDynamics.AsynchronousMachine", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "AsynchronousMachine", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Asynchronous machine to which this asynchronous machine dynamics model applies." },
280            AttrDef { id: "AsynchronousMachineDynamics.MechanicalLoadDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "MechanicalLoadDynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Mechanical load model associated with this asynchronous machine model." },
281            AttrDef { id: "AsynchronousMachineDynamics.TurbineGovernorDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TurbineGovernorDynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Turbine-governor model associated with this asynchronous machine model." },
282            AttrDef { id: "AsynchronousMachineDynamics.WindTurbineType1or2Dynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType1or2Dynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind generator type 1 or type 2 model associated with this asynchronous machine model." },
283        ],
284    },
285    ClassDef {
286        ns: "http://iec.ch/TC57/CIM100#",
287        local: "AsynchronousMachineEquivalentCircuit",
288        qualified: "AsynchronousMachineEquivalentCircuit",
289        super_class: Some(17),
290        concrete: true,
291        origins: &["DY"],
292        comment: "The electrical equations of all variations of the asynchronous model are based on the AsynchronousEquivalentCircuit diagram for the direct- and quadrature- axes, with two equivalent rotor windings in each axis. Equations for conversion between equivalent circuit and time constant reactance forms: Xs = Xm + Xl X' = Xl + Xm x Xlr1 / (Xm + Xlr1) X'' = Xl + Xm x Xlr1 x Xlr2 / (Xm x Xlr1 + Xm x Xlr2 + Xlr1 x Xlr2) T'o = (Xm + Xlr1) / (omega0 x Rr1) T''o = (Xm x Xlr1 + Xm x Xlr2 + Xlr1 x Xlr2) / (omega0 x Rr2 x (Xm + Xlr1) Same equations using CIM attributes from AsynchronousMachineTimeConstantReactance class on left of '=' and AsynchronousMachineEquivalentCircuit class on right (except as noted): xs = xm + RotatingMachineDynamics.statorLeakageReactance xp = RotatingMachineDynamics.statorLeakageReactance + xm x xlr1 / (xm + xlr1) xpp = RotatingMachineDynamics.statorLeakageReactance + xm x xlr1 x xlr2 / (xm x xlr1 + xm x xlr2 + xlr1 x xlr2) tpo = (xm + xlr1) / (2 x pi x nominal frequency x rr1) tppo = (xm x xlr1 + xm x xlr2 + xlr1 x xlr2) / (2 x pi x nominal frequency x rr2 x (xm + xlr1).",
293        attrs: &[
294            AttrDef { id: "AsynchronousMachineEquivalentCircuit.rr1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Damper 1 winding resistance." },
295            AttrDef { id: "AsynchronousMachineEquivalentCircuit.rr2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Damper 2 winding resistance." },
296            AttrDef { id: "AsynchronousMachineEquivalentCircuit.xlr1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Damper 1 winding leakage reactance." },
297            AttrDef { id: "AsynchronousMachineEquivalentCircuit.xlr2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Damper 2 winding leakage reactance." },
298            AttrDef { id: "AsynchronousMachineEquivalentCircuit.xm", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Magnetizing reactance." },
299        ],
300    },
301    ClassDef {
302        ns: "http://iec.ch/TC57/CIM100#",
303        local: "AsynchronousMachineTimeConstantReactance",
304        qualified: "AsynchronousMachineTimeConstantReactance",
305        super_class: Some(17),
306        concrete: true,
307        origins: &["DY"],
308        comment: "Parameter details: If X'' = X', a single cage (one equivalent rotor winding per axis) is modelled. The “p” in the attribute names is a substitution for a “prime” in the usual parameter notation, e.g. tpo refers to T'o. The parameters used for models expressed in time constant reactance form include: - RotatingMachine.ratedS (MVAbase); - RotatingMachineDynamics.damping (D); - RotatingMachineDynamics.inertia (H); - RotatingMachineDynamics.saturationFactor (S1); - RotatingMachineDynamics.saturationFactor120 (S12); - RotatingMachineDynamics.statorLeakageReactance (Xl); - RotatingMachineDynamics.statorResistance (Rs); - .xs (Xs); - .xp (X'); - .xpp (X''); - .tpo (T'o); - .tppo (T''o).",
309        attrs: &[
310            AttrDef { id: "AsynchronousMachineTimeConstantReactance.tpo", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Transient rotor time constant (T'o) (> AsynchronousMachineTimeConstantReactance.tppo). Typical value = 5." },
311            AttrDef { id: "AsynchronousMachineTimeConstantReactance.tppo", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Subtransient rotor time constant (T''o) (> 0). Typical value = 0,03." },
312            AttrDef { id: "AsynchronousMachineTimeConstantReactance.xp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Transient reactance (unsaturated) (X') (>= AsynchronousMachineTimeConstantReactance.xpp). Typical value = 0,5." },
313            AttrDef { id: "AsynchronousMachineTimeConstantReactance.xpp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Subtransient reactance (unsaturated) (X'') (> RotatingMachineDynamics.statorLeakageReactance). Typical value = 0,2." },
314            AttrDef { id: "AsynchronousMachineTimeConstantReactance.xs", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Synchronous reactance (Xs) (>= AsynchronousMachineTimeConstantReactance.xp). Typical value = 1,8." },
315        ],
316    },
317    ClassDef {
318        ns: "http://iec.ch/TC57/CIM100#",
319        local: "AsynchronousMachineUserDefined",
320        qualified: "AsynchronousMachineUserDefined",
321        super_class: Some(17),
322        concrete: true,
323        origins: &["DY"],
324        comment: "Asynchronous machine whose dynamic behaviour is described by a user-defined model.",
325        attrs: &[
326            AttrDef { id: "AsynchronousMachineUserDefined.ProprietaryParameterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ProprietaryParameterDynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Parameter of this proprietary user-defined model." },
327            AttrDef { id: "AsynchronousMachineUserDefined.proprietary", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Behaviour is based on a proprietary model as opposed to a detailed model. true = user-defined model is proprietary with behaviour mutually understood by sending and receiving applications and parameters passed as general attributes false = user-defined model is explicitly defined in terms of control blocks and their input and output signals." },
328        ],
329    },
330    ClassDef {
331        ns: "http://iec.ch/TC57/CIM100#",
332        local: "AuxiliaryEquipment",
333        qualified: "AuxiliaryEquipment",
334        super_class: Some(98),
335        concrete: false,
336        origins: &["EQ"],
337        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.",
338        attrs: &[
339            AttrDef { id: "AuxiliaryEquipment.Terminal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Terminal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The Terminal at the equipment where the AuxiliaryEquipment is attached." },
340        ],
341    },
342    ClassDef {
343        ns: "http://iec.ch/TC57/CIM100#",
344        local: "BaseVoltage",
345        qualified: "BaseVoltage",
346        super_class: Some(213),
347        concrete: true,
348        origins: &["EQ", "EQBD", "TP"],
349        comment: "Defines a system base voltage which is referenced.",
350        attrs: &[
351            AttrDef { id: "BaseVoltage.ConductingEquipment", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ConductingEquipment", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "All conducting equipment with this base voltage. Use only when there is no voltage level container used and only one base voltage applies. For example, not used for transformers." },
352            AttrDef { id: "BaseVoltage.TopologicalNode", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TopologicalNode", is_list: true, used: false, xsd: "", value_ns: "", origins: &["TP"], comment: "The topological nodes at the base voltage." },
353            AttrDef { id: "BaseVoltage.TransformerEnds", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TransformerEnd", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "Transformer ends at the base voltage. This is essential for PU calculation." },
354            AttrDef { id: "BaseVoltage.VoltageLevel", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "VoltageLevel", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ", "EQBD"], comment: "The voltage levels having this base voltage." },
355            AttrDef { id: "BaseVoltage.nominalVoltage", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ", "EQBD"], comment: "The power system resource's base voltage. Shall be a positive value and not zero." },
356        ],
357    },
358    ClassDef {
359        ns: "http://iec.ch/TC57/CIM100#",
360        local: "BasicIntervalSchedule",
361        qualified: "BasicIntervalSchedule",
362        super_class: Some(213),
363        concrete: false,
364        origins: &["EQ"],
365        comment: "Schedule of values at points in time.",
366        attrs: &[
367            AttrDef { id: "BasicIntervalSchedule.startTime", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["EQ"], comment: "The time for the first time point. The value can be a time of day, not a specific date." },
368            AttrDef { id: "BasicIntervalSchedule.value1Unit", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "UnitSymbol", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["EQ"], comment: "Value1 units of measure." },
369            AttrDef { id: "BasicIntervalSchedule.value2Unit", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "UnitSymbol", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["EQ"], comment: "Value2 units of measure." },
370        ],
371    },
372    ClassDef {
373        ns: "http://iec.ch/TC57/CIM100#",
374        local: "BatteryUnit",
375        qualified: "BatteryUnit",
376        super_class: Some(280),
377        concrete: true,
378        origins: &["EQ", "SSH"],
379        comment: "An electrochemical energy storage device.",
380        attrs: &[
381            AttrDef { id: "BatteryUnit.batteryState", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "BatteryStateKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["SSH"], comment: "The current state of the battery (charging, full, etc.)." },
382            AttrDef { id: "BatteryUnit.ratedE", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Full energy storage capacity of the battery. The attribute shall be a positive value." },
383            AttrDef { id: "BatteryUnit.storedE", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "RealEnergy", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "Amount of energy currently stored. The attribute shall be a positive value or zero and lower than BatteryUnit.ratedE." },
384        ],
385    },
386    ClassDef {
387        ns: "http://iec.ch/TC57/CIM100#",
388        local: "Bay",
389        qualified: "Bay",
390        super_class: Some(99),
391        concrete: true,
392        origins: &["EQ", "EQBD"],
393        comment: "A collection of power system resources (within a given substation) including conducting equipment, protection relays, measurements, and telemetry. A bay typically represents a physical grouping related to modularization of equipment.",
394        attrs: &[
395            AttrDef { id: "Bay.VoltageLevel", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "VoltageLevel", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ", "EQBD"], comment: "The voltage level containing this bay." },
396        ],
397    },
398    ClassDef {
399        ns: "http://iec.ch/TC57/CIM100-European#",
400        local: "BoundaryPoint",
401        qualified: "BoundaryPoint",
402        super_class: Some(282),
403        concrete: true,
404        origins: &["EQ", "EQBD"],
405        comment: "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.",
406        attrs: &[
407            AttrDef { id: "BoundaryPoint.ConnectivityNode", ns: "http://iec.ch/TC57/CIM100-European#", kind: AttrKind::Association, range: "ConnectivityNode", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ", "EQBD"], comment: "The connectivity node that is designated as a boundary point." },
408            AttrDef { id: "BoundaryPoint.fromEndIsoCode", ns: "http://iec.ch/TC57/CIM100-European#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["EQ", "EQBD"], comment: "The ISO code of the region which the 'From' side of the Boundary point belongs to or it is connected to. The ISO code is a two-character country code as defined by ISO 3166 (http://www.iso.org/iso/country_codes). The length of the string is 2 characters maximum." },
409            AttrDef { id: "BoundaryPoint.fromEndName", ns: "http://iec.ch/TC57/CIM100-European#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["EQ", "EQBD"], comment: "A human readable name with length of the string 64 characters maximum. It covers the following two cases: -if the Boundary point is placed on a tie-line, it is the name (IdentifiedObject.name) of the substation at which the 'From' side of the tie-line is connected to. -if the Boundary point is placed in a substation, it is the name (IdentifiedObject.name) of the element (e.g. PowerTransformer, ACLineSegment, Switch, etc.) at which the 'From' side of the Boundary point is connected to." },
410            AttrDef { id: "BoundaryPoint.fromEndNameTso", ns: "http://iec.ch/TC57/CIM100-European#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["EQ", "EQBD"], comment: "Identifies the name of the transmission system operator, distribution system operator or other entity at which the 'From' side of the interconnection is connected to. The length of the string is 64 characters maximum." },
411            AttrDef { id: "BoundaryPoint.isDirectCurrent", ns: "http://iec.ch/TC57/CIM100-European#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["EQ", "EQBD"], comment: "If true, this boundary point is a point of common coupling (PCC) of a direct current (DC) interconnection, otherwise the interconnection is AC (default)." },
412            AttrDef { id: "BoundaryPoint.isExcludedFromAreaInterchange", ns: "http://iec.ch/TC57/CIM100-European#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["EQ", "EQBD"], comment: "If true, this boundary point is on the interconnection that is excluded from control area interchange calculation and consequently has no related tie flows. Otherwise, the interconnection is included in control area interchange and a TieFlow is required at all sides of the boundary point (default)." },
413            AttrDef { id: "BoundaryPoint.toEndIsoCode", ns: "http://iec.ch/TC57/CIM100-European#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["EQ", "EQBD"], comment: "The ISO code of the region which the 'To' side of the Boundary point belongs to or is connected to. The ISO code is a two-character country code as defined by ISO 3166 (http://www.iso.org/iso/country_codes). The length of the string is 2 characters maximum." },
414            AttrDef { id: "BoundaryPoint.toEndName", ns: "http://iec.ch/TC57/CIM100-European#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["EQ", "EQBD"], comment: "A human readable name with length of the string 64 characters maximum. It covers the following two cases: -if the Boundary point is placed on a tie-line, it is the name (IdentifiedObject.name) of the substation at which the 'To' side of the tie-line is connected to. -if the Boundary point is placed in a substation, it is the name (IdentifiedObject.name) of the element (e.g. PowerTransformer, ACLineSegment, Switch, etc.) at which the 'To' side of the Boundary point is connected to." },
415            AttrDef { id: "BoundaryPoint.toEndNameTso", ns: "http://iec.ch/TC57/CIM100-European#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["EQ", "EQBD"], comment: "Identifies the name of the transmission system operator, distribution system operator or other entity at which the 'To' side of the interconnection is connected to. The length of the string is 64 characters maximum." },
416        ],
417    },
418    ClassDef {
419        ns: "http://iec.ch/TC57/CIM100#",
420        local: "Breaker",
421        qualified: "Breaker",
422        super_class: Some(288),
423        concrete: true,
424        origins: &["EQ", "SSH"],
425        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.",
426        attrs: &[],
427    },
428    ClassDef {
429        ns: "http://iec.ch/TC57/CIM100#",
430        local: "BusNameMarker",
431        qualified: "BusNameMarker",
432        super_class: Some(213),
433        concrete: true,
434        origins: &["EQ"],
435        comment: "Used to apply user standard names to TopologicalNodes. Associated with one or more terminals that are normally connected with the bus name. The associated terminals are normally connected by non-retained switches. For a ring bus station configuration, all BusbarSection terminals in the ring are typically associated. For a breaker and a half scheme, both BusbarSections would normally be associated. For a ring bus, all BusbarSections would normally be associated. For a 'straight' busbar configuration, normally only the main terminal at the BusbarSection would be associated.",
436        attrs: &[
437            AttrDef { id: "BusNameMarker.ReportingGroup", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ReportingGroup", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The reporting group to which this bus name marker belongs." },
438            AttrDef { id: "BusNameMarker.Terminal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ACDCTerminal", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The terminals associated with this bus name marker." },
439            AttrDef { id: "BusNameMarker.priority", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["EQ"], comment: "Priority of bus name marker for use as topology bus name. Use 0 for do not care. Use 1 for highest priority. Use 2 as priority is less than 1 and so on." },
440        ],
441    },
442    ClassDef {
443        ns: "http://iec.ch/TC57/CIM100#",
444        local: "BusbarSection",
445        qualified: "BusbarSection",
446        super_class: Some(44),
447        concrete: true,
448        origins: &["EQ", "SC"],
449        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.",
450        attrs: &[
451            AttrDef { id: "BusbarSection.ipMax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Maximum allowable peak short-circuit current of busbar (Ipmax in IEC 60909-0). Mechanical limit of the busbar in the substation itself. Used for short circuit data exchange according to IEC 60909." },
452        ],
453    },
454    ClassDef {
455        ns: "http://iec.ch/TC57/CIM100#",
456        local: "CAESPlant",
457        qualified: "CAESPlant",
458        super_class: Some(282),
459        concrete: true,
460        origins: &["EQ"],
461        comment: "Compressed air energy storage plant.",
462        attrs: &[
463            AttrDef { id: "CAESPlant.ThermalGeneratingUnit", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ThermalGeneratingUnit", is_list: false, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "A thermal generating unit may be a member of a compressed air energy storage plant." },
464        ],
465    },
466    ClassDef {
467        ns: "http://iec.ch/TC57/CIM100#",
468        local: "CSCDynamics",
469        qualified: "CSCDynamics",
470        super_class: Some(208),
471        concrete: false,
472        origins: &["DY"],
473        comment: "CSC function block whose behaviour is described by reference to a standard model or by definition of a user-defined model.",
474        attrs: &[
475            AttrDef { id: "CSCDynamics.CSConverter", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "CsConverter", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Current source converter to which current source converter dynamics model applies." },
476        ],
477    },
478    ClassDef {
479        ns: "http://iec.ch/TC57/CIM100#",
480        local: "CSCUserDefined",
481        qualified: "CSCUserDefined",
482        super_class: Some(31),
483        concrete: true,
484        origins: &["DY"],
485        comment: "Current source converter (CSC) function block whose dynamic behaviour is described by a user-defined model.",
486        attrs: &[
487            AttrDef { id: "CSCUserDefined.ProprietaryParameterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ProprietaryParameterDynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Parameter of this proprietary user-defined model." },
488            AttrDef { id: "CSCUserDefined.proprietary", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Behaviour is based on a proprietary model as opposed to a detailed model. true = user-defined model is proprietary with behaviour mutually understood by sending and receiving applications and parameters passed as general attributes false = user-defined model is explicitly defined in terms of control blocks and their input and output signals." },
489        ],
490    },
491    ClassDef {
492        ns: "http://iec.ch/TC57/CIM100#",
493        local: "Clamp",
494        qualified: "Clamp",
495        super_class: Some(37),
496        concrete: true,
497        origins: &["EQ"],
498        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.",
499        attrs: &[
500            AttrDef { id: "Clamp.ACLineSegment", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ACLineSegment", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The line segment to which the clamp is connected." },
501            AttrDef { id: "Clamp.lengthFromTerminal1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The length to the place where the clamp is located starting from side one of the line segment, i.e. the line segment terminal with sequence number equal to 1." },
502        ],
503    },
504    ClassDef {
505        ns: "http://iec.ch/TC57/CIM100#",
506        local: "CogenerationPlant",
507        qualified: "CogenerationPlant",
508        super_class: Some(282),
509        concrete: true,
510        origins: &["EQ"],
511        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.",
512        attrs: &[
513            AttrDef { id: "CogenerationPlant.ThermalGeneratingUnits", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ThermalGeneratingUnit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "A thermal generating unit may be a member of a cogeneration plant." },
514        ],
515    },
516    ClassDef {
517        ns: "http://iec.ch/TC57/CIM100#",
518        local: "CombinedCyclePlant",
519        qualified: "CombinedCyclePlant",
520        super_class: Some(282),
521        concrete: true,
522        origins: &["EQ"],
523        comment: "A set of combustion turbines and steam turbines where the exhaust heat from the combustion turbines is recovered to make steam for the steam turbines, resulting in greater overall plant efficiency.",
524        attrs: &[
525            AttrDef { id: "CombinedCyclePlant.ThermalGeneratingUnits", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ThermalGeneratingUnit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "A thermal generating unit may be a member of a combined cycle plant." },
526        ],
527    },
528    ClassDef {
529        ns: "http://iec.ch/TC57/CIM100#",
530        local: "Command",
531        qualified: "Command",
532        super_class: Some(45),
533        concrete: true,
534        origins: &["OP"],
535        comment: "A Command is a discrete control used for supervisory control.",
536        attrs: &[
537            AttrDef { id: "Command.DiscreteValue", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DiscreteValue", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OP"], comment: "The MeasurementValue that is controlled." },
538            AttrDef { id: "Command.ValueAliasSet", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ValueAliasSet", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OP"], comment: "The ValueAliasSet used for translation of a Control value to a name." },
539            AttrDef { id: "Command.normalValue", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["OP"], comment: "Normal value for Control.value e.g. used for percentage scaling." },
540            AttrDef { id: "Command.value", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["OP"], comment: "The value representing the actuator output." },
541        ],
542    },
543    ClassDef {
544        ns: "http://iec.ch/TC57/CIM100#",
545        local: "ConductingEquipment",
546        qualified: "ConductingEquipment",
547        super_class: Some(98),
548        concrete: false,
549        origins: &["EQ", "DY", "EQBD", "SC", "SSH", "SV"],
550        comment: "The parts of the AC power system that are designed to carry current or that are conductively connected through terminals.",
551        attrs: &[
552            AttrDef { id: "ConductingEquipment.BaseVoltage", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "BaseVoltage", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "Base voltage of this conducting equipment. Use only when there is no voltage level container used and only one base voltage applies. For example, not used for transformers." },
553            AttrDef { id: "ConductingEquipment.SvStatus", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SvStatus", is_list: false, used: false, xsd: "", value_ns: "", origins: &["SV"], comment: "The status state variable associated with this conducting equipment." },
554            AttrDef { id: "ConductingEquipment.Terminals", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Terminal", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ", "DY", "EQBD"], comment: "Conducting equipment have terminals that may be connected to other conducting equipment terminals via connectivity nodes or topological nodes." },
555        ],
556    },
557    ClassDef {
558        ns: "http://iec.ch/TC57/CIM100#",
559        local: "Conductor",
560        qualified: "Conductor",
561        super_class: Some(37),
562        concrete: false,
563        origins: &["EQ", "SC"],
564        comment: "Combination of conducting material with consistent electrical characteristics, building a single electrical system, used to carry current between points in the power system.",
565        attrs: &[
566            AttrDef { id: "Conductor.length", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Segment length for calculating line section capabilities." },
567        ],
568    },
569    ClassDef {
570        ns: "http://iec.ch/TC57/CIM100#",
571        local: "ConformLoad",
572        qualified: "ConformLoad",
573        super_class: Some(95),
574        concrete: true,
575        origins: &["EQ", "SSH"],
576        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.",
577        attrs: &[
578            AttrDef { id: "ConformLoad.LoadGroup", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ConformLoadGroup", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "Group of this ConformLoad." },
579        ],
580    },
581    ClassDef {
582        ns: "http://iec.ch/TC57/CIM100#",
583        local: "ConformLoadGroup",
584        qualified: "ConformLoadGroup",
585        super_class: Some(227),
586        concrete: true,
587        origins: &["EQ"],
588        comment: "A group of loads conforming to an allocation pattern.",
589        attrs: &[
590            AttrDef { id: "ConformLoadGroup.ConformLoadSchedules", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ConformLoadSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The ConformLoadSchedules in the ConformLoadGroup." },
591            AttrDef { id: "ConformLoadGroup.EnergyConsumers", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ConformLoad", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "Conform loads assigned to this ConformLoadGroup." },
592        ],
593    },
594    ClassDef {
595        ns: "http://iec.ch/TC57/CIM100#",
596        local: "ConformLoadSchedule",
597        qualified: "ConformLoadSchedule",
598        super_class: Some(325),
599        concrete: true,
600        origins: &["EQ"],
601        comment: "A curve of load versus time (X-axis) showing the active power values (Y1-axis) and reactive power (Y2-axis) for each unit of the period covered. This curve represents a typical pattern of load over the time period for a given day type and season.",
602        attrs: &[
603            AttrDef { id: "ConformLoadSchedule.ConformLoadGroup", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ConformLoadGroup", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The ConformLoadGroup where the ConformLoadSchedule belongs." },
604        ],
605    },
606    ClassDef {
607        ns: "http://iec.ch/TC57/CIM100#",
608        local: "ConnectivityNode",
609        qualified: "ConnectivityNode",
610        super_class: Some(213),
611        concrete: true,
612        origins: &["EQ", "EQBD", "TP"],
613        comment: "Connectivity nodes are points where terminals of AC conducting equipment are connected together with zero impedance.",
614        attrs: &[
615            AttrDef { id: "ConnectivityNode.BoundaryPoint", ns: "http://iec.ch/TC57/CIM100-European#", kind: AttrKind::Association, range: "BoundaryPoint", is_list: false, used: false, xsd: "", value_ns: "", origins: &["EQ", "EQBD"], comment: "The boundary point associated with the connectivity node." },
616            AttrDef { id: "ConnectivityNode.ConnectivityNodeContainer", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ConnectivityNodeContainer", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ", "EQBD"], comment: "Container of this connectivity node." },
617            AttrDef { id: "ConnectivityNode.Terminals", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Terminal", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ", "EQBD"], comment: "Terminals interconnected with zero impedance at a this connectivity node." },
618            AttrDef { id: "ConnectivityNode.TopologicalNode", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TopologicalNode", is_list: false, used: true, xsd: "", value_ns: "", origins: &["TP"], comment: "The topological node to which this connectivity node is assigned. May depend on the current state of switches in the network." },
619        ],
620    },
621    ClassDef {
622        ns: "http://iec.ch/TC57/CIM100#",
623        local: "ConnectivityNodeContainer",
624        qualified: "ConnectivityNodeContainer",
625        super_class: Some(282),
626        concrete: false,
627        origins: &["EQ", "EQBD", "TP"],
628        comment: "A base class for all objects that may contain connectivity nodes or topological nodes.",
629        attrs: &[
630            AttrDef { id: "ConnectivityNodeContainer.ConnectivityNodes", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ConnectivityNode", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ", "EQBD"], comment: "Connectivity nodes which belong to this connectivity node container." },
631            AttrDef { id: "ConnectivityNodeContainer.TopologicalNode", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TopologicalNode", is_list: true, used: false, xsd: "", value_ns: "", origins: &["TP"], comment: "The topological nodes which belong to this connectivity node container." },
632        ],
633    },
634    ClassDef {
635        ns: "http://iec.ch/TC57/CIM100#",
636        local: "Connector",
637        qualified: "Connector",
638        super_class: Some(37),
639        concrete: false,
640        origins: &["EQ", "EQBD", "SC"],
641        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.",
642        attrs: &[],
643    },
644    ClassDef {
645        ns: "http://iec.ch/TC57/CIM100#",
646        local: "Control",
647        qualified: "Control",
648        super_class: Some(212),
649        concrete: false,
650        origins: &["OP"],
651        comment: "Control is used for supervisory/device control. It represents control outputs that are used to change the state in a process, e.g. close or open breaker, a set point value or a raise lower command.",
652        attrs: &[
653            AttrDef { id: "Control.PowerSystemResource", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PowerSystemResource", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OP"], comment: "Regulating device governed by this control output." },
654            AttrDef { id: "Control.controlType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["OP"], comment: "Specifies the type of Control. For example, this specifies if the Control represents BreakerOpen, BreakerClose, GeneratorVoltageSetPoint, GeneratorRaise, GeneratorLower, etc." },
655            AttrDef { id: "Control.operationInProgress", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["OP"], comment: "Indicates that a client is currently sending control commands that has not completed." },
656            AttrDef { id: "Control.timeStamp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["OP"], comment: "The last time a control output was sent." },
657            AttrDef { id: "Control.unitMultiplier", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "UnitMultiplier", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["OP"], comment: "The unit multiplier of the controlled quantity." },
658            AttrDef { id: "Control.unitSymbol", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "UnitSymbol", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["OP"], comment: "The unit of measure of the controlled quantity." },
659        ],
660    },
661    ClassDef {
662        ns: "http://iec.ch/TC57/CIM100#",
663        local: "ControlArea",
664        qualified: "ControlArea",
665        super_class: Some(282),
666        concrete: true,
667        origins: &["EQ", "SSH"],
668        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.",
669        attrs: &[
670            AttrDef { id: "ControlArea.ControlAreaGeneratingUnit", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ControlAreaGeneratingUnit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The generating unit specifications for the control area." },
671            AttrDef { id: "ControlArea.EnergyArea", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "EnergyArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The energy area that is forecast from this control area specification." },
672            AttrDef { id: "ControlArea.TieFlow", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TieFlow", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The tie flows associated with the control area." },
673            AttrDef { id: "ControlArea.netInterchange", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "The specified positive net interchange into the control area, i.e. positive sign means flow into the area." },
674            AttrDef { id: "ControlArea.pTolerance", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "Active power net interchange tolerance. The attribute shall be a positive value or zero." },
675            AttrDef { id: "ControlArea.type", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "ControlAreaTypeKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["EQ"], comment: "The primary type of control area definition used to determine if this is used for automatic generation control, for planning interchange control, or other purposes. A control area specified with primary type of automatic generation control could still be forecast and used as an interchange area in power flow analysis." },
676        ],
677    },
678    ClassDef {
679        ns: "http://iec.ch/TC57/CIM100#",
680        local: "ControlAreaGeneratingUnit",
681        qualified: "ControlAreaGeneratingUnit",
682        super_class: Some(213),
683        concrete: true,
684        origins: &["EQ"],
685        comment: "A control area generating unit. This class is needed so that alternate control area definitions may include the same generating unit. It should be noted that only one instance within a control area should reference a specific generating unit.",
686        attrs: &[
687            AttrDef { id: "ControlAreaGeneratingUnit.ControlArea", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ControlArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The parent control area for the generating unit specifications." },
688            AttrDef { id: "ControlAreaGeneratingUnit.GeneratingUnit", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "GeneratingUnit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The generating unit specified for this control area. Note that a control area should include a GeneratingUnit only once." },
689        ],
690    },
691    ClassDef {
692        ns: "http://iec.ch/TC57/CIM100#",
693        local: "CoordinateSystem",
694        qualified: "CoordinateSystem",
695        super_class: Some(213),
696        concrete: true,
697        origins: &["GL"],
698        comment: "Coordinate reference system.",
699        attrs: &[
700            AttrDef { id: "CoordinateSystem.Locations", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Location", is_list: true, used: false, xsd: "", value_ns: "", origins: &["GL"], comment: "All locations described with position points in this coordinate system." },
701            AttrDef { id: "CoordinateSystem.crsUrn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], 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." },
702        ],
703    },
704    ClassDef {
705        ns: "http://iec.ch/TC57/CIM100#",
706        local: "CrossCompoundTurbineGovernorDynamics",
707        qualified: "CrossCompoundTurbineGovernorDynamics",
708        super_class: Some(91),
709        concrete: false,
710        origins: &["DY"],
711        comment: "Turbine-governor cross-compound function block whose behaviour is described by reference to a standard model or by definition of a user-defined model.",
712        attrs: &[
713            AttrDef { id: "CrossCompoundTurbineGovernorDynamics.HighPressureSynchronousMachineDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SynchronousMachineDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "High-pressure synchronous machine with which this cross-compound turbine governor is associated." },
714            AttrDef { id: "CrossCompoundTurbineGovernorDynamics.LowPressureSynchronousMachineDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SynchronousMachineDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Low-pressure synchronous machine with which this cross-compound turbine governor is associated." },
715        ],
716    },
717    ClassDef {
718        ns: "http://iec.ch/TC57/CIM100#",
719        local: "CsConverter",
720        qualified: "CsConverter",
721        super_class: Some(0),
722        concrete: true,
723        origins: &["EQ", "DY", "SSH", "SV"],
724        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.",
725        attrs: &[
726            AttrDef { id: "CsConverter.CSCDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "CSCDynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Current source converter dynamics model used to describe dynamic behaviour of this converter." },
727            AttrDef { id: "CsConverter.alpha", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SV"], comment: "Firing angle that determines the dc voltage at the converter dc terminal. Typical value between 10 degrees and 18 degrees for a rectifier. It is converter’s state variable, result from power flow. The attribute shall be a positive value." },
728            AttrDef { id: "CsConverter.gamma", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SV"], comment: "Extinction angle. It is used to limit the dc voltage at the inverter if needed. Typical value between 17 degrees and 20 degrees for an inverter. It is converter’s state variable, result from power flow. The attribute shall be a positive value." },
729            AttrDef { id: "CsConverter.maxAlpha", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Maximum firing angle. It is converter’s configuration data used in power flow. The attribute shall be a positive value." },
730            AttrDef { id: "CsConverter.maxGamma", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Maximum extinction angle. It is converter’s configuration data used in power flow. The attribute shall be a positive value." },
731            AttrDef { id: "CsConverter.maxIdc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The maximum direct current (Id) on the DC side at which the converter should operate. It is converter’s configuration data use in power flow. The attribute shall be a positive value." },
732            AttrDef { id: "CsConverter.minAlpha", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Minimum firing angle. It is converter’s configuration data used in power flow. The attribute shall be a positive value." },
733            AttrDef { id: "CsConverter.minGamma", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Minimum extinction angle. It is converter’s configuration data used in power flow. The attribute shall be a positive value." },
734            AttrDef { id: "CsConverter.minIdc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The minimum direct current (Id) 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." },
735            AttrDef { id: "CsConverter.operatingMode", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "CsOperatingModeKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["SSH"], 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." },
736            AttrDef { id: "CsConverter.pPccControl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "CsPpccControlKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["SSH"], comment: "Kind of active power control." },
737            AttrDef { id: "CsConverter.ratedIdc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Rated converter DC current, also called IdN. The attribute shall be a positive value. It is converter’s configuration data used in power flow." },
738            AttrDef { id: "CsConverter.targetAlpha", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], 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." },
739            AttrDef { id: "CsConverter.targetGamma", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], 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." },
740            AttrDef { id: "CsConverter.targetIdc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "DC current target value. It is converter’s control variable used in power flow. The attribute shall be a positive value." },
741        ],
742    },
743    ClassDef {
744        ns: "http://iec.ch/TC57/CIM100#",
745        local: "CurrentLimit",
746        qualified: "CurrentLimit",
747        super_class: Some(248),
748        concrete: true,
749        origins: &["EQ", "SSH"],
750        comment: "Operational limit on current.",
751        attrs: &[
752            AttrDef { id: "CurrentLimit.normalValue", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The normal value for limit on current flow. The attribute shall be a positive value or zero." },
753            AttrDef { id: "CurrentLimit.value", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "Limit on current flow. The attribute shall be a positive value or zero." },
754        ],
755    },
756    ClassDef {
757        ns: "http://iec.ch/TC57/CIM100#",
758        local: "CurrentTransformer",
759        qualified: "CurrentTransformer",
760        super_class: Some(326),
761        concrete: true,
762        origins: &["EQ"],
763        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.",
764        attrs: &[],
765    },
766    ClassDef {
767        ns: "http://iec.ch/TC57/CIM100#",
768        local: "Curve",
769        qualified: "Curve",
770        super_class: Some(213),
771        concrete: false,
772        origins: &["EQ"],
773        comment: "A multi-purpose curve or functional relationship between an independent variable (X-axis) and dependent (Y-axis) variables.",
774        attrs: &[
775            AttrDef { id: "Curve.CurveDatas", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "CurveData", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The point data values that define this curve." },
776            AttrDef { id: "Curve.curveStyle", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "CurveStyle", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["EQ"], comment: "The style or shape of the curve." },
777            AttrDef { id: "Curve.xUnit", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "UnitSymbol", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["EQ"], comment: "The X-axis units of measure." },
778            AttrDef { id: "Curve.y1Unit", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "UnitSymbol", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["EQ"], comment: "The Y1-axis units of measure." },
779            AttrDef { id: "Curve.y2Unit", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "UnitSymbol", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["EQ"], comment: "The Y2-axis units of measure." },
780        ],
781    },
782    ClassDef {
783        ns: "http://iec.ch/TC57/CIM100#",
784        local: "CurveData",
785        qualified: "CurveData",
786        super_class: None,
787        concrete: true,
788        origins: &["EQ"],
789        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.",
790        attrs: &[
791            AttrDef { id: "CurveData.Curve", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Curve", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The curve of this curve data point." },
792            AttrDef { id: "CurveData.xvalue", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The data value of the X-axis variable, depending on the X-axis units." },
793            AttrDef { id: "CurveData.y1value", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The data value of the first Y-axis variable, depending on the Y-axis units." },
794            AttrDef { id: "CurveData.y2value", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The data value of the second Y-axis variable (if present), depending on the Y-axis units." },
795        ],
796    },
797    ClassDef {
798        ns: "http://iec.ch/TC57/CIM100#",
799        local: "Cut",
800        qualified: "Cut",
801        super_class: Some(353),
802        concrete: true,
803        origins: &["EQ"],
804        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.",
805        attrs: &[
806            AttrDef { id: "Cut.ACLineSegment", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ACLineSegment", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The line segment to which the cut is applied." },
807            AttrDef { id: "Cut.lengthFromTerminal1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The length to the place where the cut is located starting from side one of the cut line segment, i.e. the line segment Terminal with sequenceNumber equal to 1." },
808        ],
809    },
810    ClassDef {
811        ns: "http://iec.ch/TC57/CIM100#",
812        local: "DCBaseTerminal",
813        qualified: "DCBaseTerminal",
814        super_class: Some(2),
815        concrete: false,
816        origins: &["EQ", "SSH", "TP"],
817        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.",
818        attrs: &[
819            AttrDef { id: "DCBaseTerminal.DCNode", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DCNode", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The DC connectivity node to which this DC base terminal connects with zero impedance." },
820            AttrDef { id: "DCBaseTerminal.DCTopologicalNode", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DCTopologicalNode", is_list: false, used: true, xsd: "", value_ns: "", origins: &["TP"], comment: "See association end Terminal.TopologicalNode." },
821        ],
822    },
823    ClassDef {
824        ns: "http://iec.ch/TC57/CIM100#",
825        local: "DCBreaker",
826        qualified: "DCBreaker",
827        super_class: Some(70),
828        concrete: true,
829        origins: &["EQ"],
830        comment: "A breaker within a DC system.",
831        attrs: &[],
832    },
833    ClassDef {
834        ns: "http://iec.ch/TC57/CIM100#",
835        local: "DCBusbar",
836        qualified: "DCBusbar",
837        super_class: Some(60),
838        concrete: true,
839        origins: &["EQ"],
840        comment: "A busbar within a DC system.",
841        attrs: &[],
842    },
843    ClassDef {
844        ns: "http://iec.ch/TC57/CIM100#",
845        local: "DCChopper",
846        qualified: "DCChopper",
847        super_class: Some(60),
848        concrete: true,
849        origins: &["EQ"],
850        comment: "Low resistance equipment used in the internal DC circuit to balance voltages. It has typically positive and negative pole terminals and a ground.",
851        attrs: &[],
852    },
853    ClassDef {
854        ns: "http://iec.ch/TC57/CIM100#",
855        local: "DCConductingEquipment",
856        qualified: "DCConductingEquipment",
857        super_class: Some(98),
858        concrete: false,
859        origins: &["EQ"],
860        comment: "The parts of the DC power system that are designed to carry current or that are conductively connected through DC terminals.",
861        attrs: &[
862            AttrDef { id: "DCConductingEquipment.DCTerminals", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DCTerminal", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "A DC conducting equipment has DC terminals." },
863            AttrDef { id: "DCConductingEquipment.ratedUdc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Rated DC device voltage. The attribute shall be a positive value. It is configuration data used in power flow." },
864        ],
865    },
866    ClassDef {
867        ns: "http://iec.ch/TC57/CIM100#",
868        local: "DCConverterUnit",
869        qualified: "DCConverterUnit",
870        super_class: Some(63),
871        concrete: true,
872        origins: &["EQ"],
873        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.",
874        attrs: &[
875            AttrDef { id: "DCConverterUnit.Substation", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Substation", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The containing substation of the DC converter unit." },
876            AttrDef { id: "DCConverterUnit.operationMode", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "DCConverterOperatingModeKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["EQ"], comment: "The operating mode of an HVDC bipole (bipolar, monopolar metallic return, etc)." },
877        ],
878    },
879    ClassDef {
880        ns: "http://iec.ch/TC57/CIM100#",
881        local: "DCDisconnector",
882        qualified: "DCDisconnector",
883        super_class: Some(70),
884        concrete: true,
885        origins: &["EQ"],
886        comment: "A disconnector within a DC system.",
887        attrs: &[],
888    },
889    ClassDef {
890        ns: "http://iec.ch/TC57/CIM100#",
891        local: "DCEquipmentContainer",
892        qualified: "DCEquipmentContainer",
893        super_class: Some(99),
894        concrete: false,
895        origins: &["EQ", "TP"],
896        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.",
897        attrs: &[
898            AttrDef { id: "DCEquipmentContainer.DCNodes", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DCNode", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The DC nodes contained in the DC equipment container." },
899            AttrDef { id: "DCEquipmentContainer.DCTopologicalNode", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DCTopologicalNode", is_list: true, used: false, xsd: "", value_ns: "", origins: &["TP"], comment: "The topological nodes which belong to this connectivity node container." },
900        ],
901    },
902    ClassDef {
903        ns: "http://iec.ch/TC57/CIM100#",
904        local: "DCGround",
905        qualified: "DCGround",
906        super_class: Some(60),
907        concrete: true,
908        origins: &["EQ"],
909        comment: "A ground within a DC system.",
910        attrs: &[
911            AttrDef { id: "DCGround.inductance", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Inductance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Inductance to ground." },
912            AttrDef { id: "DCGround.r", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Resistance to ground." },
913        ],
914    },
915    ClassDef {
916        ns: "http://iec.ch/TC57/CIM100#",
917        local: "DCLine",
918        qualified: "DCLine",
919        super_class: Some(63),
920        concrete: true,
921        origins: &["EQ"],
922        comment: "Overhead lines and/or cables connecting two or more HVDC substations.",
923        attrs: &[
924            AttrDef { id: "DCLine.Region", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SubGeographicalRegion", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The SubGeographicalRegion containing the DC line." },
925        ],
926    },
927    ClassDef {
928        ns: "http://iec.ch/TC57/CIM100#",
929        local: "DCLineSegment",
930        qualified: "DCLineSegment",
931        super_class: Some(60),
932        concrete: true,
933        origins: &["EQ"],
934        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.",
935        attrs: &[
936            AttrDef { id: "DCLineSegment.capacitance", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Capacitance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Capacitance of the DC line segment. Significant for cables only." },
937            AttrDef { id: "DCLineSegment.inductance", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Inductance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Inductance of the DC line segment. Negligible compared with DCSeriesDevice used for smoothing." },
938            AttrDef { id: "DCLineSegment.length", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Segment length for calculating line section capabilities." },
939            AttrDef { id: "DCLineSegment.resistance", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Resistance of the DC line segment." },
940        ],
941    },
942    ClassDef {
943        ns: "http://iec.ch/TC57/CIM100#",
944        local: "DCNode",
945        qualified: "DCNode",
946        super_class: Some(213),
947        concrete: true,
948        origins: &["EQ", "TP"],
949        comment: "DC nodes are points where terminals of DC conducting equipment are connected together with zero impedance.",
950        attrs: &[
951            AttrDef { id: "DCNode.DCEquipmentContainer", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DCEquipmentContainer", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The DC container for the DC nodes." },
952            AttrDef { id: "DCNode.DCTerminals", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DCBaseTerminal", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "DC base terminals interconnected with zero impedance at a this DC connectivity node." },
953            AttrDef { id: "DCNode.DCTopologicalNode", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DCTopologicalNode", is_list: false, used: true, xsd: "", value_ns: "", origins: &["TP"], comment: "The DC topological node to which this DC connectivity node is assigned. May depend on the current state of switches in the network." },
954        ],
955    },
956    ClassDef {
957        ns: "http://iec.ch/TC57/CIM100#",
958        local: "DCSeriesDevice",
959        qualified: "DCSeriesDevice",
960        super_class: Some(60),
961        concrete: true,
962        origins: &["EQ"],
963        comment: "A series device within the DC system, typically a reactor used for filtering or smoothing. Needed for transient and short circuit studies.",
964        attrs: &[
965            AttrDef { id: "DCSeriesDevice.inductance", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Inductance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Inductance of the device." },
966            AttrDef { id: "DCSeriesDevice.resistance", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Resistance of the DC device." },
967        ],
968    },
969    ClassDef {
970        ns: "http://iec.ch/TC57/CIM100#",
971        local: "DCShunt",
972        qualified: "DCShunt",
973        super_class: Some(60),
974        concrete: true,
975        origins: &["EQ"],
976        comment: "A shunt device within the DC system, typically used for filtering. Needed for transient and short circuit studies.",
977        attrs: &[
978            AttrDef { id: "DCShunt.capacitance", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Capacitance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Capacitance of the DC shunt." },
979            AttrDef { id: "DCShunt.resistance", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Resistance of the DC device." },
980        ],
981    },
982    ClassDef {
983        ns: "http://iec.ch/TC57/CIM100#",
984        local: "DCSwitch",
985        qualified: "DCSwitch",
986        super_class: Some(60),
987        concrete: true,
988        origins: &["EQ"],
989        comment: "A switch within the DC system.",
990        attrs: &[],
991    },
992    ClassDef {
993        ns: "http://iec.ch/TC57/CIM100#",
994        local: "DCTerminal",
995        qualified: "DCTerminal",
996        super_class: Some(56),
997        concrete: true,
998        origins: &["EQ", "SSH", "TP"],
999        comment: "An electrical connection point to generic DC conducting equipment.",
1000        attrs: &[
1001            AttrDef { id: "DCTerminal.DCConductingEquipment", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DCConductingEquipment", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "An DC terminal belong to a DC conducting equipment." },
1002        ],
1003    },
1004    ClassDef {
1005        ns: "http://iec.ch/TC57/CIM100#",
1006        local: "DCTopologicalIsland",
1007        qualified: "DCTopologicalIsland",
1008        super_class: Some(213),
1009        concrete: true,
1010        origins: &["SV"],
1011        comment: "An electrically connected subset of the network. DC topological islands can change as the current network state changes, e.g. due to: - disconnect switches or breakers changing state in a SCADA/EMS. - manual creation, change or deletion of topological nodes in a planning tool. Only energised TopologicalNode-s shall be part of the topological island.",
1012        attrs: &[
1013            AttrDef { id: "DCTopologicalIsland.DCTopologicalNodes", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DCTopologicalNode", is_list: true, used: true, xsd: "", value_ns: "", origins: &["SV"], comment: "The DC topological nodes in a DC topological island." },
1014        ],
1015    },
1016    ClassDef {
1017        ns: "http://iec.ch/TC57/CIM100#",
1018        local: "DCTopologicalNode",
1019        qualified: "DCTopologicalNode",
1020        super_class: Some(213),
1021        concrete: true,
1022        origins: &["TP", "SV"],
1023        comment: "DC bus.",
1024        attrs: &[
1025            AttrDef { id: "DCTopologicalNode.DCEquipmentContainer", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DCEquipmentContainer", is_list: false, used: true, xsd: "", value_ns: "", origins: &["TP"], comment: "The connectivity node container to which the topological node belongs." },
1026            AttrDef { id: "DCTopologicalNode.DCNodes", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DCNode", is_list: true, used: false, xsd: "", value_ns: "", origins: &["TP"], comment: "The DC connectivity nodes combined together to form this DC topological node. May depend on the current state of switches in the network." },
1027            AttrDef { id: "DCTopologicalNode.DCTerminals", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DCBaseTerminal", is_list: true, used: false, xsd: "", value_ns: "", origins: &["TP"], comment: "See association end TopologicalNode.Terminal." },
1028            AttrDef { id: "DCTopologicalNode.DCTopologicalIsland", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DCTopologicalIsland", is_list: false, used: false, xsd: "", value_ns: "", origins: &["SV"], comment: "A DC topological node belongs to a DC topological island." },
1029        ],
1030    },
1031    ClassDef {
1032        ns: "http://iec.ch/TC57/CIM100#",
1033        local: "DayType",
1034        qualified: "DayType",
1035        super_class: Some(213),
1036        concrete: true,
1037        origins: &["EQ"],
1038        comment: "Group of similar days. For example it could be used to represent weekdays, weekend, or holidays.",
1039        attrs: &[
1040            AttrDef { id: "DayType.SeasonDayTypeSchedules", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SeasonDayTypeSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "Schedules that use this DayType." },
1041        ],
1042    },
1043    ClassDef {
1044        ns: "http://iec.ch/TC57/CIM100#",
1045        local: "Diagram",
1046        qualified: "Diagram",
1047        super_class: Some(213),
1048        concrete: true,
1049        origins: &["DL"],
1050        comment: "The diagram being exchanged. The coordinate system is a standard Cartesian coordinate system and the orientation attribute defines the orientation. The initial view related attributes can be used to specify an initial view with the x,y coordinates of the diagonal points.",
1051        attrs: &[
1052            AttrDef { id: "Diagram.DiagramElements", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DiagramObject", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DL"], comment: "A diagram is made up of multiple diagram objects." },
1053            AttrDef { id: "Diagram.DiagramStyle", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DiagramStyle", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DL"], comment: "A Diagram may have a DiagramStyle." },
1054            AttrDef { id: "Diagram.orientation", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "OrientationKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DL"], comment: "Coordinate system orientation of the diagram. A positive orientation gives standard “right-hand” orientation, with negative orientation indicating a “left-hand” orientation. For 2D diagrams, a positive orientation will result in X values increasing from left to right and Y values increasing from bottom to top. A negative orientation gives the “left-hand” orientation (favoured by computer graphics displays) with X values increasing from left to right and Y values increasing from top to bottom." },
1055            AttrDef { id: "Diagram.x1InitialView", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DL"], comment: "X coordinate of the first corner of the initial view." },
1056            AttrDef { id: "Diagram.x2InitialView", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DL"], comment: "X coordinate of the second corner of the initial view." },
1057            AttrDef { id: "Diagram.y1InitialView", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DL"], comment: "Y coordinate of the first corner of the initial view." },
1058            AttrDef { id: "Diagram.y2InitialView", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DL"], comment: "Y coordinate of the second corner of the initial view." },
1059        ],
1060    },
1061    ClassDef {
1062        ns: "http://iec.ch/TC57/CIM100#",
1063        local: "DiagramObject",
1064        qualified: "DiagramObject",
1065        super_class: Some(213),
1066        concrete: true,
1067        origins: &["DL"],
1068        comment: "An object that defines one or more points in a given space. This object can be associated with anything that specializes IdentifiedObject. For single line diagrams such objects typically include such items as analog values, breakers, disconnectors, power transformers, and transmission lines.",
1069        attrs: &[
1070            AttrDef { id: "DiagramObject.Diagram", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Diagram", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DL"], comment: "A diagram object is part of a diagram." },
1071            AttrDef { id: "DiagramObject.DiagramObjectPoints", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DiagramObjectPoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DL"], comment: "A diagram object can have 0 or more points to reflect its layout position, routing (for polylines) or boundary (for polygons)." },
1072            AttrDef { id: "DiagramObject.DiagramObjectStyle", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DiagramObjectStyle", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DL"], comment: "A diagram object has a style associated that provides a reference for the style used in the originating system." },
1073            AttrDef { id: "DiagramObject.IdentifiedObject", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "IdentifiedObject", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DL"], comment: "The domain object to which this diagram object is associated." },
1074            AttrDef { id: "DiagramObject.VisibilityLayers", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "VisibilityLayer", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DL"], comment: "A diagram object can be part of multiple visibility layers." },
1075            AttrDef { id: "DiagramObject.drawingOrder", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["DL"], comment: "The drawing order of this element. The higher the number, the later the element is drawn in sequence. This is used to ensure that elements that overlap are rendered in the correct order." },
1076            AttrDef { id: "DiagramObject.isPolygon", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DL"], comment: "Defines whether or not the diagram objects points define the boundaries of a polygon or the routing of a polyline. If this value is true then a receiving application should consider the first and last points to be connected." },
1077            AttrDef { id: "DiagramObject.offsetX", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DL"], comment: "The offset in the X direction. This is used for defining the offset from centre for rendering an icon (the default is that a single point specifies the centre of the icon). The offset is in per-unit with 0 indicating there is no offset from the horizontal centre of the icon. -0.5 indicates it is offset by 50% to the left and 0.5 indicates an offset of 50% to the right." },
1078            AttrDef { id: "DiagramObject.offsetY", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DL"], comment: "The offset in the Y direction. This is used for defining the offset from centre for rendering an icon (the default is that a single point specifies the centre of the icon). The offset is in per-unit with 0 indicating there is no offset from the vertical centre of the icon. The offset direction is dependent on the orientation of the diagram, with -0.5 and 0.5 indicating an offset of +/- 50% on the vertical axis." },
1079            AttrDef { id: "DiagramObject.rotation", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DL"], comment: "Sets the angle of rotation of the diagram object. Zero degrees is pointing to the top of the diagram. Rotation is clockwise. DiagramObject.rotation=0 has the following meaning: The connection point of an element which has one terminal is pointing to the top side of the diagram. The connection point 'From side' of an element which has more than one terminal is pointing to the top side of the diagram. DiagramObject.rotation=90 has the following meaning: The connection point of an element which has one terminal is pointing to the right hand side of the diagram. The connection point 'From side' of an element which has more than one terminal is pointing to the right hand side of the diagram." },
1080        ],
1081    },
1082    ClassDef {
1083        ns: "http://iec.ch/TC57/CIM100#",
1084        local: "DiagramObjectGluePoint",
1085        qualified: "DiagramObjectGluePoint",
1086        super_class: None,
1087        concrete: true,
1088        origins: &["DL"],
1089        comment: "This is used for grouping diagram object points from different diagram objects that are considered to be glued together in a diagram even if they are not at the exact same coordinates.",
1090        attrs: &[
1091            AttrDef { id: "DiagramObjectGluePoint.DiagramObjectPoints", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DiagramObjectPoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DL"], comment: "A diagram object glue point is associated with 2 or more object points that are considered to be 'glued' together." },
1092        ],
1093    },
1094    ClassDef {
1095        ns: "http://iec.ch/TC57/CIM100#",
1096        local: "DiagramObjectPoint",
1097        qualified: "DiagramObjectPoint",
1098        super_class: None,
1099        concrete: true,
1100        origins: &["DL"],
1101        comment: "A point in a given space defined by 3 coordinates and associated to a diagram object. The coordinates may be positive or negative as the origin does not have to be in the corner of a diagram.",
1102        attrs: &[
1103            AttrDef { id: "DiagramObjectPoint.DiagramObject", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DiagramObject", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DL"], comment: "The diagram object with which the points are associated." },
1104            AttrDef { id: "DiagramObjectPoint.DiagramObjectGluePoint", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DiagramObjectGluePoint", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DL"], comment: "The 'glue' point to which this point is associated." },
1105            AttrDef { id: "DiagramObjectPoint.sequenceNumber", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["DL"], comment: "The sequence position of the point, used for defining the order of points for diagram objects acting as a polyline or polygon with more than one point. The attribute shall be a positive value." },
1106            AttrDef { id: "DiagramObjectPoint.xPosition", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DL"], comment: "The X coordinate of this point." },
1107            AttrDef { id: "DiagramObjectPoint.yPosition", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DL"], comment: "The Y coordinate of this point." },
1108            AttrDef { id: "DiagramObjectPoint.zPosition", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DL"], comment: "The Z coordinate of this point." },
1109        ],
1110    },
1111    ClassDef {
1112        ns: "http://iec.ch/TC57/CIM100#",
1113        local: "DiagramObjectStyle",
1114        qualified: "DiagramObjectStyle",
1115        super_class: Some(213),
1116        concrete: true,
1117        origins: &["DL"],
1118        comment: "A reference to a style used by the originating system for a diagram object. A diagram object style describes information such as line thickness, shape such as circle or rectangle etc, and colour.",
1119        attrs: &[
1120            AttrDef { id: "DiagramObjectStyle.StyledObjects", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DiagramObject", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DL"], comment: "A style can be assigned to multiple diagram objects." },
1121        ],
1122    },
1123    ClassDef {
1124        ns: "http://iec.ch/TC57/CIM100#",
1125        local: "DiagramStyle",
1126        qualified: "DiagramStyle",
1127        super_class: Some(213),
1128        concrete: true,
1129        origins: &["DL"],
1130        comment: "The diagram style refers to a style used by the originating system for a diagram. A diagram style describes information such as schematic, geographic, etc.",
1131        attrs: &[
1132            AttrDef { id: "DiagramStyle.Diagram", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Diagram", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DL"], comment: "A DiagramStyle can be used by many Diagrams." },
1133        ],
1134    },
1135    ClassDef {
1136        ns: "http://iec.ch/TC57/61970-552/DifferenceModel/1#",
1137        local: "DifferenceModel",
1138        qualified: "DifferenceModel",
1139        super_class: Some(240),
1140        concrete: true,
1141        origins: &["FH"],
1142        comment: "It represents the difference model header. The content is described by the Model class, the association role forwardDifferences and association role reverseDifferences. Both association roles may have one set of Statements.",
1143        attrs: &[
1144            AttrDef { id: "DifferenceModel.forwardDifferences", ns: "http://iec.ch/TC57/61970-552/DifferenceModel/1#", kind: AttrKind::Association, range: "Statements", is_list: true, used: true, xsd: "", value_ns: "", origins: &["FH"], comment: "A property of the difference model whose value is a collection of statements (i.e., resources of type rdf:Statement) representing the forward difference statements." },
1145            AttrDef { id: "DifferenceModel.preconditions", ns: "http://iec.ch/TC57/61970-552/DifferenceModel/1#", kind: AttrKind::Association, range: "Statements", is_list: true, used: true, xsd: "", value_ns: "", origins: &["FH"], comment: "A property of the difference model whose value is the collection of precondition statements." },
1146            AttrDef { id: "DifferenceModel.reverseDifferences", ns: "http://iec.ch/TC57/61970-552/DifferenceModel/1#", kind: AttrKind::Association, range: "Statements", is_list: true, used: true, xsd: "", value_ns: "", origins: &["FH"], comment: "A property of the difference model whose value is the collection of reverse difference statements." },
1147        ],
1148    },
1149    ClassDef {
1150        ns: "http://iec.ch/TC57/CIM100#",
1151        local: "DiscExcContIEEEDEC1A",
1152        qualified: "DiscExcContIEEEDEC1A",
1153        super_class: Some(87),
1154        concrete: true,
1155        origins: &["DY"],
1156        comment: "IEEE type DEC1A discontinuous excitation control model that boosts generator excitation to a level higher than that demanded by the voltage regulator and stabilizer immediately following a system fault. Reference: IEEE 421.5-2005, 12.2.",
1157        attrs: &[
1158            AttrDef { id: "DiscExcContIEEEDEC1A.esc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Speed change reference (ESC). Typical value = 0,0015." },
1159            AttrDef { id: "DiscExcContIEEEDEC1A.kan", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Discontinuous controller gain (KAN). Typical value = 400." },
1160            AttrDef { id: "DiscExcContIEEEDEC1A.ketl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Terminal voltage limiter gain (KETL). Typical value = 47." },
1161            AttrDef { id: "DiscExcContIEEEDEC1A.tan", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Discontinuous controller time constant (TAN) (>= 0). Typical value = 0,08." },
1162            AttrDef { id: "DiscExcContIEEEDEC1A.td", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (TD) (>= 0). Typical value = 0,03." },
1163            AttrDef { id: "DiscExcContIEEEDEC1A.tl1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (TL1) (>= 0). Typical value = 0,025." },
1164            AttrDef { id: "DiscExcContIEEEDEC1A.tl2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (TL2) (>= 0). Typical value = 1,25." },
1165            AttrDef { id: "DiscExcContIEEEDEC1A.tw5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "DEC washout time constant (TW5) (>= 0). Typical value = 5." },
1166            AttrDef { id: "DiscExcContIEEEDEC1A.val", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Regulator voltage reference (VAL). Typical value = 5,5." },
1167            AttrDef { id: "DiscExcContIEEEDEC1A.vanmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limiter for Van (VANMAX)." },
1168            AttrDef { id: "DiscExcContIEEEDEC1A.vomax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limiter (VOMAX) (> DiscExcContIEEEDEC1A.vomin). Typical value = 0,3." },
1169            AttrDef { id: "DiscExcContIEEEDEC1A.vomin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limiter (VOMIN) (< DiscExcContIEEEDEC1A.vomax). Typical value = 0,1." },
1170            AttrDef { id: "DiscExcContIEEEDEC1A.vsmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limiter (VSMAX)(> DiscExcContIEEEDEC1A.vsmin). Typical value = 0,2." },
1171            AttrDef { id: "DiscExcContIEEEDEC1A.vsmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limiter (VSMIN) (< DiscExcContIEEEDEC1A.vsmax). Typical value = -0,066." },
1172            AttrDef { id: "DiscExcContIEEEDEC1A.vtc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Terminal voltage level reference (VTC). Typical value = 0,95." },
1173            AttrDef { id: "DiscExcContIEEEDEC1A.vtlmt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage reference (VTLMT). Typical value = 1,1." },
1174            AttrDef { id: "DiscExcContIEEEDEC1A.vtm", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage limits (VTM). Typical value = 1,13." },
1175            AttrDef { id: "DiscExcContIEEEDEC1A.vtn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage limits (VTN). Typical value = 1,12." },
1176        ],
1177    },
1178    ClassDef {
1179        ns: "http://iec.ch/TC57/CIM100#",
1180        local: "DiscExcContIEEEDEC2A",
1181        qualified: "DiscExcContIEEEDEC2A",
1182        super_class: Some(87),
1183        concrete: true,
1184        origins: &["DY"],
1185        comment: "IEEE type DEC2A model for discontinuous excitation control. This system provides transient excitation boosting via an open-loop control as initiated by a trigger signal generated remotely. Reference: IEEE 421.5-2005 12.3.",
1186        attrs: &[
1187            AttrDef { id: "DiscExcContIEEEDEC2A.td1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Discontinuous controller time constant (TD1) (>= 0)." },
1188            AttrDef { id: "DiscExcContIEEEDEC2A.td2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Discontinuous controller washout time constant (TD2) (>= 0)." },
1189            AttrDef { id: "DiscExcContIEEEDEC2A.vdmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limiter (VDMAX) (> DiscExcContIEEEDEC2A.vdmin)." },
1190            AttrDef { id: "DiscExcContIEEEDEC2A.vdmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limiter (VDMIN) (< DiscExcContIEEEDEC2A.vdmax)." },
1191            AttrDef { id: "DiscExcContIEEEDEC2A.vk", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Discontinuous controller input reference (VK)." },
1192        ],
1193    },
1194    ClassDef {
1195        ns: "http://iec.ch/TC57/CIM100#",
1196        local: "DiscExcContIEEEDEC3A",
1197        qualified: "DiscExcContIEEEDEC3A",
1198        super_class: Some(87),
1199        concrete: true,
1200        origins: &["DY"],
1201        comment: "IEEE type DEC3A model. In some systems, the stabilizer output is disconnected from the regulator immediately following a severe fault to prevent the stabilizer from competing with action of voltage regulator during the first swing. Reference: IEEE 421.5-2005 12.4.",
1202        attrs: &[
1203            AttrDef { id: "DiscExcContIEEEDEC3A.tdr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reset time delay (TDR) (>= 0)." },
1204            AttrDef { id: "DiscExcContIEEEDEC3A.vtmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Terminal undervoltage comparison level (VTMIN)." },
1205        ],
1206    },
1207    ClassDef {
1208        ns: "http://iec.ch/TC57/CIM100#",
1209        local: "DisconnectingCircuitBreaker",
1210        qualified: "DisconnectingCircuitBreaker",
1211        super_class: Some(27),
1212        concrete: true,
1213        origins: &["EQ", "SSH"],
1214        comment: "A circuit breaking device including disconnecting function, eliminating the need for separate disconnectors.",
1215        attrs: &[],
1216    },
1217    ClassDef {
1218        ns: "http://iec.ch/TC57/CIM100#",
1219        local: "Disconnector",
1220        qualified: "Disconnector",
1221        super_class: Some(353),
1222        concrete: true,
1223        origins: &["EQ", "SSH"],
1224        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.",
1225        attrs: &[],
1226    },
1227    ClassDef {
1228        ns: "http://iec.ch/TC57/CIM100#",
1229        local: "DiscontinuousExcitationControlDynamics",
1230        qualified: "DiscontinuousExcitationControlDynamics",
1231        super_class: Some(91),
1232        concrete: false,
1233        origins: &["DY"],
1234        comment: "Discontinuous excitation control function block whose behaviour is described by reference to a standard model or by definition of a user-defined model.",
1235        attrs: &[
1236            AttrDef { id: "DiscontinuousExcitationControlDynamics.ExcitationSystemDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ExcitationSystemDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Excitation system model with which this discontinuous excitation control model is associated." },
1237            AttrDef { id: "DiscontinuousExcitationControlDynamics.RemoteInputSignal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RemoteInputSignal", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Remote input signal used by this discontinuous excitation control system model." },
1238        ],
1239    },
1240    ClassDef {
1241        ns: "http://iec.ch/TC57/CIM100#",
1242        local: "DiscontinuousExcitationControlUserDefined",
1243        qualified: "DiscontinuousExcitationControlUserDefined",
1244        super_class: Some(87),
1245        concrete: true,
1246        origins: &["DY"],
1247        comment: "Discontinuous excitation control function block whose dynamic behaviour is described by a user-defined model.",
1248        attrs: &[
1249            AttrDef { id: "DiscontinuousExcitationControlUserDefined.ProprietaryParameterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ProprietaryParameterDynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Parameter of this proprietary user-defined model." },
1250            AttrDef { id: "DiscontinuousExcitationControlUserDefined.proprietary", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Behaviour is based on a proprietary model as opposed to a detailed model. true = user-defined model is proprietary with behaviour mutually understood by sending and receiving applications and parameters passed as general attributes false = user-defined model is explicitly defined in terms of control blocks and their input and output signals." },
1251        ],
1252    },
1253    ClassDef {
1254        ns: "http://iec.ch/TC57/CIM100#",
1255        local: "Discrete",
1256        qualified: "Discrete",
1257        super_class: Some(233),
1258        concrete: true,
1259        origins: &["OP"],
1260        comment: "Discrete represents a discrete Measurement, i.e. a Measurement representing discrete values, e.g. a Breaker position.",
1261        attrs: &[
1262            AttrDef { id: "Discrete.DiscreteValues", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DiscreteValue", is_list: true, used: false, xsd: "", value_ns: "", origins: &["OP"], comment: "The values connected to this measurement." },
1263            AttrDef { id: "Discrete.ValueAliasSet", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ValueAliasSet", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OP"], comment: "The ValueAliasSet used for translation of a MeasurementValue.value to a name." },
1264        ],
1265    },
1266    ClassDef {
1267        ns: "http://iec.ch/TC57/CIM100#",
1268        local: "DiscreteValue",
1269        qualified: "DiscreteValue",
1270        super_class: Some(234),
1271        concrete: true,
1272        origins: &["OP"],
1273        comment: "DiscreteValue represents a discrete MeasurementValue.",
1274        attrs: &[
1275            AttrDef { id: "DiscreteValue.Command", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Command", is_list: false, used: false, xsd: "", value_ns: "", origins: &["OP"], comment: "The Control variable associated with the MeasurementValue." },
1276            AttrDef { id: "DiscreteValue.Discrete", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Discrete", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OP"], comment: "Measurement to which this value is connected." },
1277        ],
1278    },
1279    ClassDef {
1280        ns: "http://iec.ch/TC57/CIM100#",
1281        local: "DynamicsFunctionBlock",
1282        qualified: "DynamicsFunctionBlock",
1283        super_class: Some(213),
1284        concrete: false,
1285        origins: &["DY"],
1286        comment: "Abstract parent class for all Dynamics function blocks.",
1287        attrs: &[
1288            AttrDef { id: "DynamicsFunctionBlock.enabled", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Function block used indicator. true = use of function block is enabled false = use of function block is disabled." },
1289        ],
1290    },
1291    ClassDef {
1292        ns: "http://iec.ch/TC57/CIM100#",
1293        local: "EarthFaultCompensator",
1294        qualified: "EarthFaultCompensator",
1295        super_class: Some(37),
1296        concrete: false,
1297        origins: &["EQ", "SC"],
1298        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.",
1299        attrs: &[
1300            AttrDef { id: "EarthFaultCompensator.r", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Nominal resistance of device." },
1301        ],
1302    },
1303    ClassDef {
1304        ns: "http://iec.ch/TC57/CIM100#",
1305        local: "EnergyArea",
1306        qualified: "EnergyArea",
1307        super_class: Some(213),
1308        concrete: false,
1309        origins: &["EQ"],
1310        comment: "Describes an area having energy production or consumption. Specializations are intended to support the load allocation function as typically required in energy management systems or planning studies to allocate hypothesized load levels to individual load points for power flow analysis. Often the energy area can be linked to both measured and forecast load levels.",
1311        attrs: &[
1312            AttrDef { id: "EnergyArea.ControlArea", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ControlArea", is_list: false, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The control area specification that is used for the load forecast." },
1313        ],
1314    },
1315    ClassDef {
1316        ns: "http://iec.ch/TC57/CIM100#",
1317        local: "EnergyConnection",
1318        qualified: "EnergyConnection",
1319        super_class: Some(37),
1320        concrete: false,
1321        origins: &["EQ", "DY", "SC", "SSH"],
1322        comment: "A connection of energy generation or consumption on the power system model.",
1323        attrs: &[],
1324    },
1325    ClassDef {
1326        ns: "http://iec.ch/TC57/CIM100#",
1327        local: "EnergyConsumer",
1328        qualified: "EnergyConsumer",
1329        super_class: Some(94),
1330        concrete: true,
1331        origins: &["EQ", "DY", "SSH"],
1332        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.",
1333        attrs: &[
1334            AttrDef { id: "EnergyConsumer.LoadDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "LoadDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Load dynamics model used to describe dynamic behaviour of this energy consumer." },
1335            AttrDef { id: "EnergyConsumer.LoadResponse", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "LoadResponseCharacteristic", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The load response characteristic of this load. If missing, this load is assumed to be constant power." },
1336            AttrDef { id: "EnergyConsumer.p", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "Active power of the load. Load sign convention is used, i.e. positive sign means flow out from a node. For voltage dependent loads the value is at rated voltage. Starting value for a steady state solution." },
1337            AttrDef { id: "EnergyConsumer.pfixed", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Active power of the load that is a fixed quantity and does not vary as load group value varies. Load sign convention is used, i.e. positive sign means flow out from a node." },
1338            AttrDef { id: "EnergyConsumer.pfixedPct", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Fixed active power as a percentage of load group fixed active power. Used to represent the time-varying components. Load sign convention is used, i.e. positive sign means flow out from a node." },
1339            AttrDef { id: "EnergyConsumer.q", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "Reactive power of the load. Load sign convention is used, i.e. positive sign means flow out from a node. For voltage dependent loads the value is at rated voltage. Starting value for a steady state solution." },
1340            AttrDef { id: "EnergyConsumer.qfixed", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Reactive power of the load that is a fixed quantity and does not vary as load group value varies. Load sign convention is used, i.e. positive sign means flow out from a node." },
1341            AttrDef { id: "EnergyConsumer.qfixedPct", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Fixed reactive power as a percentage of load group fixed reactive power. Used to represent the time-varying components. Load sign convention is used, i.e. positive sign means flow out from a node." },
1342        ],
1343    },
1344    ClassDef {
1345        ns: "http://iec.ch/TC57/CIM100#",
1346        local: "EnergySchedulingType",
1347        qualified: "EnergySchedulingType",
1348        super_class: Some(213),
1349        concrete: true,
1350        origins: &["EQ", "EQBD"],
1351        comment: "Used to define the type of generation for scheduling purposes.",
1352        attrs: &[
1353            AttrDef { id: "EnergySchedulingType.EnergySource", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "EnergySource", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "Energy Source of a particular Energy Scheduling Type." },
1354        ],
1355    },
1356    ClassDef {
1357        ns: "http://iec.ch/TC57/CIM100#",
1358        local: "EnergySource",
1359        qualified: "EnergySource",
1360        super_class: Some(94),
1361        concrete: true,
1362        origins: &["EQ", "SC", "SSH"],
1363        comment: "A generic equivalent for an energy supplier on a transmission or distribution voltage level.",
1364        attrs: &[
1365            AttrDef { id: "EnergySource.EnergySchedulingType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "EnergySchedulingType", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "Energy Scheduling Type of an Energy Source." },
1366            AttrDef { id: "EnergySource.activePower", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "High voltage source active injection. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for steady state solutions." },
1367            AttrDef { id: "EnergySource.nominalVoltage", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Phase-to-phase nominal voltage." },
1368            AttrDef { id: "EnergySource.pMax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "This is the maximum active power that can be produced by the source. Load sign convention is used, i.e. positive sign means flow out from a TopologicalNode (bus) into the conducting equipment." },
1369            AttrDef { id: "EnergySource.pMin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "This is the minimum active power that can be produced by the source. Load sign convention is used, i.e. positive sign means flow out from a TopologicalNode (bus) into the conducting equipment." },
1370            AttrDef { id: "EnergySource.r", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Positive sequence Thevenin resistance." },
1371            AttrDef { id: "EnergySource.r0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence Thevenin resistance." },
1372            AttrDef { id: "EnergySource.reactivePower", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "High voltage source reactive injection. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for steady state solutions." },
1373            AttrDef { id: "EnergySource.rn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Negative sequence Thevenin resistance." },
1374            AttrDef { id: "EnergySource.voltageAngle", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleRadians", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "Phase angle of a-phase open circuit used when voltage characteristics need to be imposed at the node associated with the terminal of the energy source, such as when voltages and angles from the transmission level are used as input to the distribution network. The attribute shall be a positive value or zero." },
1375            AttrDef { id: "EnergySource.voltageMagnitude", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "Phase-to-phase open circuit voltage magnitude used when voltage characteristics need to be imposed at the node associated with the terminal of the energy source, such as when voltages and angles from the transmission level are used as input to the distribution network. The attribute shall be a positive value or zero." },
1376            AttrDef { id: "EnergySource.x", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Positive sequence Thevenin reactance." },
1377            AttrDef { id: "EnergySource.x0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence Thevenin reactance." },
1378            AttrDef { id: "EnergySource.xn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Negative sequence Thevenin reactance." },
1379        ],
1380    },
1381    ClassDef {
1382        ns: "http://iec.ch/TC57/CIM100#",
1383        local: "Equipment",
1384        qualified: "Equipment",
1385        super_class: Some(282),
1386        concrete: true,
1387        origins: &["EQ", "DY", "EQBD", "SC", "SSH"],
1388        comment: "The parts of a power system that are physical devices, electronic or mechanical.",
1389        attrs: &[
1390            AttrDef { id: "Equipment.EquipmentContainer", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "EquipmentContainer", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ", "EQBD"], comment: "Container of this equipment." },
1391            AttrDef { id: "Equipment.OperationalLimitSet", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "OperationalLimitSet", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The operational limit sets associated with this equipment." },
1392            AttrDef { id: "Equipment.aggregate", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["EQ"], comment: "The aggregate flag provides an alternative way of representing an aggregated (equivalent) element. It is applicable in cases when the dedicated classes for equivalent equipment do not have all of the attributes necessary to represent the required level of detail. In case the flag is set to “true” the single instance of equipment represents multiple pieces of equipment that have been modelled together as an aggregate equivalent obtained by a network reduction procedure. Examples would be power transformers or synchronous machines operating in parallel modelled as a single aggregate power transformer or aggregate synchronous machine. The attribute is not used for EquivalentBranch, EquivalentShunt and EquivalentInjection." },
1393            AttrDef { id: "Equipment.inService", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSH"], 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." },
1394            AttrDef { id: "Equipment.normallyInService", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["EQ"], comment: "Specifies the availability of the equipment under normal operating conditions. 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." },
1395        ],
1396    },
1397    ClassDef {
1398        ns: "http://iec.ch/TC57/CIM100#",
1399        local: "EquipmentContainer",
1400        qualified: "EquipmentContainer",
1401        super_class: Some(43),
1402        concrete: false,
1403        origins: &["EQ", "EQBD"],
1404        comment: "A modelling construct to provide a root class for containing equipment.",
1405        attrs: &[
1406            AttrDef { id: "EquipmentContainer.Equipments", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Equipment", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ", "EQBD"], comment: "Contained equipment." },
1407        ],
1408    },
1409    ClassDef {
1410        ns: "http://iec.ch/TC57/CIM100#",
1411        local: "EquivalentBranch",
1412        qualified: "EquivalentBranch",
1413        super_class: Some(101),
1414        concrete: true,
1415        origins: &["EQ", "SC"],
1416        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.",
1417        attrs: &[
1418            AttrDef { id: "EquivalentBranch.negativeR12", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Negative sequence series resistance from terminal sequence 1 to terminal sequence 2. Used for short circuit data exchange according to IEC 60909. EquivalentBranch is a result of network reduction prior to the data exchange." },
1419            AttrDef { id: "EquivalentBranch.negativeR21", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Negative sequence series resistance from terminal sequence 2 to terminal sequence 1. Used for short circuit data exchange according to IEC 60909. EquivalentBranch is a result of network reduction prior to the data exchange." },
1420            AttrDef { id: "EquivalentBranch.negativeX12", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Negative sequence series reactance from terminal sequence 1 to terminal sequence 2. Used for short circuit data exchange according to IEC 60909. Usage : EquivalentBranch is a result of network reduction prior to the data exchange." },
1421            AttrDef { id: "EquivalentBranch.negativeX21", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Negative sequence series reactance from terminal sequence 2 to terminal sequence 1. Used for short circuit data exchange according to IEC 60909. Usage: EquivalentBranch is a result of network reduction prior to the data exchange." },
1422            AttrDef { id: "EquivalentBranch.positiveR12", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Positive sequence series resistance from terminal sequence 1 to terminal sequence 2 . Used for short circuit data exchange according to IEC 60909. EquivalentBranch is a result of network reduction prior to the data exchange." },
1423            AttrDef { id: "EquivalentBranch.positiveR21", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Positive sequence series resistance from terminal sequence 2 to terminal sequence 1. Used for short circuit data exchange according to IEC 60909. EquivalentBranch is a result of network reduction prior to the data exchange." },
1424            AttrDef { id: "EquivalentBranch.positiveX12", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Positive sequence series reactance from terminal sequence 1 to terminal sequence 2. Used for short circuit data exchange according to IEC 60909. Usage : EquivalentBranch is a result of network reduction prior to the data exchange." },
1425            AttrDef { id: "EquivalentBranch.positiveX21", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Positive sequence series reactance from terminal sequence 2 to terminal sequence 1. Used for short circuit data exchange according to IEC 60909. Usage : EquivalentBranch is a result of network reduction prior to the data exchange." },
1426            AttrDef { id: "EquivalentBranch.r", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Positive sequence series resistance of the reduced branch." },
1427            AttrDef { id: "EquivalentBranch.r21", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Resistance from terminal sequence 2 to terminal sequence 1 .Used for steady state power flow. This attribute is optional and represent unbalanced network such as off-nominal phase shifter. If only EquivalentBranch.r is given, then EquivalentBranch.r21 is assumed equal to EquivalentBranch.r. Usage rule : EquivalentBranch is a result of network reduction prior to the data exchange." },
1428            AttrDef { id: "EquivalentBranch.x", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Positive sequence series reactance of the reduced branch." },
1429            AttrDef { id: "EquivalentBranch.x21", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Reactance from terminal sequence 2 to terminal sequence 1. Used for steady state power flow. This attribute is optional and represents an unbalanced network such as off-nominal phase shifter. If only EquivalentBranch.x is given, then EquivalentBranch.x21 is assumed equal to EquivalentBranch.x. Usage rule: EquivalentBranch is a result of network reduction prior to the data exchange." },
1430            AttrDef { id: "EquivalentBranch.zeroR12", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence series resistance from terminal sequence 1 to terminal sequence 2. Used for short circuit data exchange according to IEC 60909. EquivalentBranch is a result of network reduction prior to the data exchange." },
1431            AttrDef { id: "EquivalentBranch.zeroR21", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence series resistance from terminal sequence 2 to terminal sequence 1. Used for short circuit data exchange according to IEC 60909. Usage : EquivalentBranch is a result of network reduction prior to the data exchange." },
1432            AttrDef { id: "EquivalentBranch.zeroX12", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence series reactance from terminal sequence 1 to terminal sequence 2. Used for short circuit data exchange according to IEC 60909. Usage : EquivalentBranch is a result of network reduction prior to the data exchange." },
1433            AttrDef { id: "EquivalentBranch.zeroX21", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence series reactance from terminal sequence 2 to terminal sequence 1. Used for short circuit data exchange according to IEC 60909. Usage : EquivalentBranch is a result of network reduction prior to the data exchange." },
1434        ],
1435    },
1436    ClassDef {
1437        ns: "http://iec.ch/TC57/CIM100#",
1438        local: "EquivalentEquipment",
1439        qualified: "EquivalentEquipment",
1440        super_class: Some(37),
1441        concrete: false,
1442        origins: &["EQ", "SC", "SSH"],
1443        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.",
1444        attrs: &[
1445            AttrDef { id: "EquivalentEquipment.EquivalentNetwork", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "EquivalentNetwork", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The equivalent where the reduced model belongs." },
1446        ],
1447    },
1448    ClassDef {
1449        ns: "http://iec.ch/TC57/CIM100#",
1450        local: "EquivalentInjection",
1451        qualified: "EquivalentInjection",
1452        super_class: Some(101),
1453        concrete: true,
1454        origins: &["EQ", "SC", "SSH"],
1455        comment: "This class represents equivalent injections (generation or load). Voltage regulation is allowed only at the point of connection.",
1456        attrs: &[
1457            AttrDef { id: "EquivalentInjection.ReactiveCapabilityCurve", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ReactiveCapabilityCurve", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The reactive capability curve used by this equivalent injection." },
1458            AttrDef { id: "EquivalentInjection.maxP", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Maximum active power of the injection." },
1459            AttrDef { id: "EquivalentInjection.maxQ", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Maximum reactive power of the injection. Used for modelling of infeed for load flow exchange. Not used for short circuit modelling. If maxQ and minQ are not used ReactiveCapabilityCurve can be used." },
1460            AttrDef { id: "EquivalentInjection.minP", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Minimum active power of the injection." },
1461            AttrDef { id: "EquivalentInjection.minQ", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Minimum reactive power of the injection. Used for modelling of infeed for load flow exchange. Not used for short circuit modelling. If maxQ and minQ are not used ReactiveCapabilityCurve can be used." },
1462            AttrDef { id: "EquivalentInjection.p", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], 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." },
1463            AttrDef { id: "EquivalentInjection.q", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], 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." },
1464            AttrDef { id: "EquivalentInjection.r", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Positive sequence resistance. Used to represent Extended-Ward (IEC 60909). Usage : Extended-Ward is a result of network reduction prior to the data exchange." },
1465            AttrDef { id: "EquivalentInjection.r0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence resistance. Used to represent Extended-Ward (IEC 60909). Usage : Extended-Ward is a result of network reduction prior to the data exchange." },
1466            AttrDef { id: "EquivalentInjection.r2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Negative sequence resistance. Used to represent Extended-Ward (IEC 60909). Usage : Extended-Ward is a result of network reduction prior to the data exchange." },
1467            AttrDef { id: "EquivalentInjection.regulationCapability", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["EQ"], comment: "Specifies whether or not the EquivalentInjection has the capability to regulate the local voltage. If true the EquivalentInjection can regulate. If false the EquivalentInjection cannot regulate. ReactiveCapabilityCurve can only be associated with EquivalentInjection if the flag is true." },
1468            AttrDef { id: "EquivalentInjection.regulationStatus", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSH"], comment: "Specifies the regulation status of the EquivalentInjection. True is regulating. False is not regulating." },
1469            AttrDef { id: "EquivalentInjection.regulationTarget", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "The target voltage for voltage regulation. The attribute shall be a positive value." },
1470            AttrDef { id: "EquivalentInjection.x", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Positive sequence reactance. Used to represent Extended-Ward (IEC 60909). Usage : Extended-Ward is a result of network reduction prior to the data exchange." },
1471            AttrDef { id: "EquivalentInjection.x0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence reactance. Used to represent Extended-Ward (IEC 60909). Usage : Extended-Ward is a result of network reduction prior to the data exchange." },
1472            AttrDef { id: "EquivalentInjection.x2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Negative sequence reactance. Used to represent Extended-Ward (IEC 60909). Usage : Extended-Ward is a result of network reduction prior to the data exchange." },
1473        ],
1474    },
1475    ClassDef {
1476        ns: "http://iec.ch/TC57/CIM100#",
1477        local: "EquivalentNetwork",
1478        qualified: "EquivalentNetwork",
1479        super_class: Some(43),
1480        concrete: true,
1481        origins: &["EQ"],
1482        comment: "A class that groups electrical equivalents, including internal nodes, of a network that has been reduced. The ConnectivityNodes contained in the equivalent are intended to reflect internal nodes of the equivalent. The boundary Connectivity nodes where the equivalent connects outside itself are not contained by the equivalent.",
1483        attrs: &[
1484            AttrDef { id: "EquivalentNetwork.EquivalentEquipments", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "EquivalentEquipment", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The associated reduced equivalents." },
1485        ],
1486    },
1487    ClassDef {
1488        ns: "http://iec.ch/TC57/CIM100#",
1489        local: "EquivalentShunt",
1490        qualified: "EquivalentShunt",
1491        super_class: Some(101),
1492        concrete: true,
1493        origins: &["EQ"],
1494        comment: "The class represents equivalent shunts.",
1495        attrs: &[
1496            AttrDef { id: "EquivalentShunt.b", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Susceptance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Positive sequence shunt susceptance." },
1497            AttrDef { id: "EquivalentShunt.g", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Conductance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Positive sequence shunt conductance." },
1498        ],
1499    },
1500    ClassDef {
1501        ns: "http://iec.ch/TC57/CIM100#",
1502        local: "ExcAC1A",
1503        qualified: "ExcAC1A",
1504        super_class: Some(161),
1505        concrete: true,
1506        origins: &["DY"],
1507        comment: "Modified IEEE AC1A alternator-supplied rectifier excitation system with different rate feedback source.",
1508        attrs: &[
1509            AttrDef { id: "ExcAC1A.hvlvgates", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Indicates if both HV gate and LV gate are active (HVLVgates). true = gates are used false = gates are not used. Typical value = true." },
1510            AttrDef { id: "ExcAC1A.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (Ka) (> 0). Typical value = 400." },
1511            AttrDef { id: "ExcAC1A.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier loading factor proportional to commutating reactance (Kc) (>= 0). Typical value = 0,2." },
1512            AttrDef { id: "ExcAC1A.kd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Demagnetizing factor, a function of exciter alternator reactances (Kd) (>= 0). Typical value = 0,38." },
1513            AttrDef { id: "ExcAC1A.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (Ke). Typical value = 1." },
1514            AttrDef { id: "ExcAC1A.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gains (Kf) (>= 0). Typical value = 0,03." },
1515            AttrDef { id: "ExcAC1A.kf1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient to allow different usage of the model (Kf1) (>= 0). Typical value = 0." },
1516            AttrDef { id: "ExcAC1A.kf2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient to allow different usage of the model (Kf2) (>= 0). Typical value = 1." },
1517            AttrDef { id: "ExcAC1A.ks", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient to allow different usage of the model-speed coefficient (Ks) (>= 0). Typical value = 0." },
1518            AttrDef { id: "ExcAC1A.seve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, Ve1, back of commutating reactance (Se[Ve1]) (>= 0). Typical value = 0,1." },
1519            AttrDef { id: "ExcAC1A.seve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, Ve2, back of commutating reactance (Se[Ve2]) (>= 0). Typical value = 0,03." },
1520            AttrDef { id: "ExcAC1A.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Ta) (> 0). Typical value = 0,02." },
1521            AttrDef { id: "ExcAC1A.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tb) (>= 0). Typical value = 0." },
1522            AttrDef { id: "ExcAC1A.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tc) (>= 0). Typical value = 0." },
1523            AttrDef { id: "ExcAC1A.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (Te) (> 0). Typical value = 0,8." },
1524            AttrDef { id: "ExcAC1A.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (Tf) (> 0). Typical value = 1." },
1525            AttrDef { id: "ExcAC1A.vamax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (Vamax) (> 0). Typical value = 14,5." },
1526            AttrDef { id: "ExcAC1A.vamin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (Vamin) (< 0). Typical value = -14,5." },
1527            AttrDef { id: "ExcAC1A.ve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (Ve1) (> 0). Typical value = 4,18." },
1528            AttrDef { id: "ExcAC1A.ve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (Ve2) (> 0). Typical value = 3,14." },
1529            AttrDef { id: "ExcAC1A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator outputs (Vrmax) (> 0). Typical value = 6,03." },
1530            AttrDef { id: "ExcAC1A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator outputs (Vrmin) (< 0). Typical value = -5,43." },
1531        ],
1532    },
1533    ClassDef {
1534        ns: "http://iec.ch/TC57/CIM100#",
1535        local: "ExcAC2A",
1536        qualified: "ExcAC2A",
1537        super_class: Some(161),
1538        concrete: true,
1539        origins: &["DY"],
1540        comment: "Modified IEEE AC2A alternator-supplied rectifier excitation system with different field current limit.",
1541        attrs: &[
1542            AttrDef { id: "ExcAC2A.hvgate", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Indicates if HV gate is active (HVgate). true = gate is used false = gate is not used. Typical value = true." },
1543            AttrDef { id: "ExcAC2A.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (Ka) (> 0). Typical value = 400." },
1544            AttrDef { id: "ExcAC2A.kb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Second stage regulator gain (Kb) (> 0). Exciter field current controller gain. Typical value = 25." },
1545            AttrDef { id: "ExcAC2A.kb1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Second stage regulator gain (Kb1). It is exciter field current controller gain used as alternative to Kb to represent a variant of the ExcAC2A model. Typical value = 25." },
1546            AttrDef { id: "ExcAC2A.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier loading factor proportional to commutating reactance (Kc) (>= 0). Typical value = 0,28." },
1547            AttrDef { id: "ExcAC2A.kd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Demagnetizing factor, a function of exciter alternator reactances (Kd) (>= 0). Typical value = 0,35." },
1548            AttrDef { id: "ExcAC2A.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (Ke). Typical value = 1." },
1549            AttrDef { id: "ExcAC2A.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gains (Kf) (>= 0). Typical value = 0,03." },
1550            AttrDef { id: "ExcAC2A.kh", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter field current feedback gain (Kh) (>= 0). Typical value = 1." },
1551            AttrDef { id: "ExcAC2A.kl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter field current limiter gain (Kl). Typical value = 10." },
1552            AttrDef { id: "ExcAC2A.kl1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient to allow different usage of the model (Kl1). Typical value = 1." },
1553            AttrDef { id: "ExcAC2A.ks", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient to allow different usage of the model-speed coefficient (Ks) (>= 0). Typical value = 0." },
1554            AttrDef { id: "ExcAC2A.lvgate", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Indicates if LV gate is active (LVgate). true = gate is used false = gate is not used. Typical value = true." },
1555            AttrDef { id: "ExcAC2A.seve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, Ve1, back of commutating reactance (Se[Ve1]) (>= 0). Typical value = 0,037." },
1556            AttrDef { id: "ExcAC2A.seve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, Ve2, back of commutating reactance (Se[Ve2]) (>= 0). Typical value = 0,012." },
1557            AttrDef { id: "ExcAC2A.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Ta) (> 0). Typical value = 0,02." },
1558            AttrDef { id: "ExcAC2A.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tb) (>= 0). Typical value = 0." },
1559            AttrDef { id: "ExcAC2A.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tc) (>= 0). Typical value = 0." },
1560            AttrDef { id: "ExcAC2A.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (Te) (> 0). Typical value = 0,6." },
1561            AttrDef { id: "ExcAC2A.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (Tf) (> 0). Typical value = 1." },
1562            AttrDef { id: "ExcAC2A.vamax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (Vamax) (> 0). Typical value = 8." },
1563            AttrDef { id: "ExcAC2A.vamin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (Vamin) (< 0). Typical value = -8." },
1564            AttrDef { id: "ExcAC2A.ve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (Ve1) (> 0). Typical value = 4,4." },
1565            AttrDef { id: "ExcAC2A.ve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (Ve2) (> 0). Typical value = 3,3." },
1566            AttrDef { id: "ExcAC2A.vfemax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter field current limit reference (Vfemax) (>= 0). Typical value = 4,4." },
1567            AttrDef { id: "ExcAC2A.vlr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum exciter field current (Vlr) (> 0). Typical value = 4,4." },
1568            AttrDef { id: "ExcAC2A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator outputs (Vrmax) (> 0). Typical value = 105." },
1569            AttrDef { id: "ExcAC2A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator outputs (Vrmin) (< 0). Typical value = -95." },
1570        ],
1571    },
1572    ClassDef {
1573        ns: "http://iec.ch/TC57/CIM100#",
1574        local: "ExcAC3A",
1575        qualified: "ExcAC3A",
1576        super_class: Some(161),
1577        concrete: true,
1578        origins: &["DY"],
1579        comment: "Modified IEEE AC3A alternator-supplied rectifier excitation system with different field current limit.",
1580        attrs: &[
1581            AttrDef { id: "ExcAC3A.efdn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Value of Efd at which feedback gain changes (Efdn) (> 0). Typical value = 2,36." },
1582            AttrDef { id: "ExcAC3A.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (Ka) (> 0). Typical value = 45,62." },
1583            AttrDef { id: "ExcAC3A.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier loading factor proportional to commutating reactance (Kc) (>= 0). Typical value = 0,104." },
1584            AttrDef { id: "ExcAC3A.kd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Demagnetizing factor, a function of exciter alternator reactances (Kd) (>= 0). Typical value = 0,499." },
1585            AttrDef { id: "ExcAC3A.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (Ke). Typical value = 1." },
1586            AttrDef { id: "ExcAC3A.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gains (Kf) (>= 0). Typical value = 0,143." },
1587            AttrDef { id: "ExcAC3A.kf1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient to allow different usage of the model (Kf1). Typical value = 1." },
1588            AttrDef { id: "ExcAC3A.kf2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient to allow different usage of the model (Kf2). Typical value = 0." },
1589            AttrDef { id: "ExcAC3A.klv", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain used in the minimum field voltage limiter loop (Klv). Typical value = 0,194." },
1590            AttrDef { id: "ExcAC3A.kn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gain (Kn) (>= 0). Typical value =0,05." },
1591            AttrDef { id: "ExcAC3A.kr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Constant associated with regulator and alternator field power supply (Kr) (> 0). Typical value =3,77." },
1592            AttrDef { id: "ExcAC3A.ks", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient to allow different usage of the model-speed coefficient (Ks). Typical value = 0." },
1593            AttrDef { id: "ExcAC3A.seve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, Ve1, back of commutating reactance (Se[Ve1]) (>= 0). Typical value = 1,143." },
1594            AttrDef { id: "ExcAC3A.seve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, Ve2, back of commutating reactance (Se[Ve2]) (>= 0). Typical value = 0,1." },
1595            AttrDef { id: "ExcAC3A.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Ta) (> 0). Typical value = 0,013." },
1596            AttrDef { id: "ExcAC3A.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tb) (>= 0). Typical value = 0." },
1597            AttrDef { id: "ExcAC3A.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tc) (>= 0). Typical value = 0." },
1598            AttrDef { id: "ExcAC3A.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (Te) (> 0). Typical value = 1,17." },
1599            AttrDef { id: "ExcAC3A.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (Tf) (> 0). Typical value = 1." },
1600            AttrDef { id: "ExcAC3A.vamax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (Vamax) (> 0). Typical value = 1." },
1601            AttrDef { id: "ExcAC3A.vamin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (Vamin) (< 0). Typical value = -0,95." },
1602            AttrDef { id: "ExcAC3A.ve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (Ve1) (> 0). Typical value = 6.24." },
1603            AttrDef { id: "ExcAC3A.ve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (Ve2) (> 0). Typical value = 4,68." },
1604            AttrDef { id: "ExcAC3A.vemin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum exciter voltage output (Vemin) (<= 0). Typical value = 0." },
1605            AttrDef { id: "ExcAC3A.vfemax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter field current limit reference (Vfemax) (>= 0). Typical value = 16." },
1606            AttrDef { id: "ExcAC3A.vlv", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field voltage used in the minimum field voltage limiter loop (Vlv). Typical value = 0,79." },
1607        ],
1608    },
1609    ClassDef {
1610        ns: "http://iec.ch/TC57/CIM100#",
1611        local: "ExcAC4A",
1612        qualified: "ExcAC4A",
1613        super_class: Some(161),
1614        concrete: true,
1615        origins: &["DY"],
1616        comment: "Modified IEEE AC4A alternator-supplied rectifier excitation system with different minimum controller output.",
1617        attrs: &[
1618            AttrDef { id: "ExcAC4A.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (Ka) (> 0). Typical value = 200." },
1619            AttrDef { id: "ExcAC4A.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier loading factor proportional to commutating reactance (Kc) (>= 0). Typical value = 0." },
1620            AttrDef { id: "ExcAC4A.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Ta) (> 0). Typical value = 0,015." },
1621            AttrDef { id: "ExcAC4A.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tb) (>= 0). Typical value = 10." },
1622            AttrDef { id: "ExcAC4A.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tc) (>= 0). Typical value = 1." },
1623            AttrDef { id: "ExcAC4A.vimax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator input limit (Vimax) (> 0). Typical value = 10." },
1624            AttrDef { id: "ExcAC4A.vimin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator input limit (Vimin) (< 0). Typical value = -10." },
1625            AttrDef { id: "ExcAC4A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (Vrmax) (> 0). Typical value = 5,64." },
1626            AttrDef { id: "ExcAC4A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (Vrmin) (< 0). Typical value = -4,53." },
1627        ],
1628    },
1629    ClassDef {
1630        ns: "http://iec.ch/TC57/CIM100#",
1631        local: "ExcAC5A",
1632        qualified: "ExcAC5A",
1633        super_class: Some(161),
1634        concrete: true,
1635        origins: &["DY"],
1636        comment: "Modified IEEE AC5A alternator-supplied rectifier excitation system with different minimum controller output.",
1637        attrs: &[
1638            AttrDef { id: "ExcAC5A.a", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient to allow different usage of the model (a). Typical value = 1." },
1639            AttrDef { id: "ExcAC5A.efd1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter voltage at which exciter saturation is defined (Efd1) (> 0). Typical value = 5,6." },
1640            AttrDef { id: "ExcAC5A.efd2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter voltage at which exciter saturation is defined (Efd2) (> 0). Typical value = 4,2." },
1641            AttrDef { id: "ExcAC5A.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (Ka) (> 0). Typical value = 400." },
1642            AttrDef { id: "ExcAC5A.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (Ke). Typical value = 1." },
1643            AttrDef { id: "ExcAC5A.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gains (Kf) (>= 0). Typical value = 0,03." },
1644            AttrDef { id: "ExcAC5A.ks", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient to allow different usage of the model-speed coefficient (Ks). Typical value = 0." },
1645            AttrDef { id: "ExcAC5A.seefd1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, Efd1 (Se[Efd1]) (>= 0). Typical value = 0,86." },
1646            AttrDef { id: "ExcAC5A.seefd2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, Efd2 (Se[Efd2]) (>= 0). Typical value = 0,5." },
1647            AttrDef { id: "ExcAC5A.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Ta) (> 0). Typical value = 0,02." },
1648            AttrDef { id: "ExcAC5A.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tb) (>= 0). Typical value = 0." },
1649            AttrDef { id: "ExcAC5A.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tc) (>= 0). Typical value = 0." },
1650            AttrDef { id: "ExcAC5A.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (Te) (> 0). Typical value = 0,8." },
1651            AttrDef { id: "ExcAC5A.tf1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (Tf1) (> 0). Typical value = 1." },
1652            AttrDef { id: "ExcAC5A.tf2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (Tf2) (>= 0). Typical value = 0,8." },
1653            AttrDef { id: "ExcAC5A.tf3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (Tf3) (>= 0). Typical value = 0." },
1654            AttrDef { id: "ExcAC5A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (Vrmax) (> 0). Typical value = 7,3." },
1655            AttrDef { id: "ExcAC5A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (Vrmin) (< 0). Typical value =-7,3." },
1656        ],
1657    },
1658    ClassDef {
1659        ns: "http://iec.ch/TC57/CIM100#",
1660        local: "ExcAC6A",
1661        qualified: "ExcAC6A",
1662        super_class: Some(161),
1663        concrete: true,
1664        origins: &["DY"],
1665        comment: "Modified IEEE AC6A alternator-supplied rectifier excitation system with speed input.",
1666        attrs: &[
1667            AttrDef { id: "ExcAC6A.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (Ka) (> 0). Typical value = 536." },
1668            AttrDef { id: "ExcAC6A.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier loading factor proportional to commutating reactance (Kc) (>= 0). Typical value = 0,173." },
1669            AttrDef { id: "ExcAC6A.kd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Demagnetizing factor, a function of exciter alternator reactances (Kd) (>= 0). Typical value = 1,91." },
1670            AttrDef { id: "ExcAC6A.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (Ke). Typical value = 1,6." },
1671            AttrDef { id: "ExcAC6A.kh", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter field current limiter gain (Kh) (>= 0). Typical value = 92." },
1672            AttrDef { id: "ExcAC6A.ks", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient to allow different usage of the model-speed coefficient (Ks). Typical value = 0." },
1673            AttrDef { id: "ExcAC6A.seve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, Ve1, back of commutating reactance (Se[Ve1]) (>= 0). Typical value = 0,214." },
1674            AttrDef { id: "ExcAC6A.seve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, Ve2, back of commutating reactance (Se[Ve2]) (>= 0). Typical value = 0,044." },
1675            AttrDef { id: "ExcAC6A.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Ta) (>= 0). Typical value = 0,086." },
1676            AttrDef { id: "ExcAC6A.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tb) (>= 0). Typical value = 9." },
1677            AttrDef { id: "ExcAC6A.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tc) (>= 0). Typical value = 3." },
1678            AttrDef { id: "ExcAC6A.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (Te) (> 0). Typical value = 1." },
1679            AttrDef { id: "ExcAC6A.th", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter field current limiter time constant (Th) (> 0). Typical value = 0,08." },
1680            AttrDef { id: "ExcAC6A.tj", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter field current limiter time constant (Tj) (>= 0). Typical value = 0,02." },
1681            AttrDef { id: "ExcAC6A.tk", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tk) (>= 0). Typical value = 0,18." },
1682            AttrDef { id: "ExcAC6A.vamax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (Vamax) (> 0). Typical value = 75." },
1683            AttrDef { id: "ExcAC6A.vamin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (Vamin) (< 0). Typical value = -75." },
1684            AttrDef { id: "ExcAC6A.ve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (Ve1) (> 0). Typical value = 7,4." },
1685            AttrDef { id: "ExcAC6A.ve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (Ve2) (> 0). Typical value = 5,55." },
1686            AttrDef { id: "ExcAC6A.vfelim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter field current limit reference (Vfelim) (> 0). Typical value = 19." },
1687            AttrDef { id: "ExcAC6A.vhmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum field current limiter signal reference (Vhmax) (> 0). Typical value = 75." },
1688            AttrDef { id: "ExcAC6A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (Vrmax) (> 0). Typical value = 44." },
1689            AttrDef { id: "ExcAC6A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (Vrmin) (< 0). Typical value = -36." },
1690        ],
1691    },
1692    ClassDef {
1693        ns: "http://iec.ch/TC57/CIM100#",
1694        local: "ExcAC8B",
1695        qualified: "ExcAC8B",
1696        super_class: Some(161),
1697        concrete: true,
1698        origins: &["DY"],
1699        comment: "Modified IEEE AC8B alternator-supplied rectifier excitation system with speed input and input limiter.",
1700        attrs: &[
1701            AttrDef { id: "ExcAC8B.inlim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Input limiter indicator. true = input limiter Vimax and Vimin is considered false = input limiter Vimax and Vimin is not considered. Typical value = true." },
1702            AttrDef { id: "ExcAC8B.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (Ka) (> 0). Typical value = 1." },
1703            AttrDef { id: "ExcAC8B.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier loading factor proportional to commutating reactance (Kc) (>= 0). Typical value = 0,55." },
1704            AttrDef { id: "ExcAC8B.kd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Demagnetizing factor, a function of exciter alternator reactances (Kd) (>= 0). Typical value = 1,1." },
1705            AttrDef { id: "ExcAC8B.kdr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator derivative gain (Kdr) (>= 0). Typical value = 10." },
1706            AttrDef { id: "ExcAC8B.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (Ke). Typical value = 1." },
1707            AttrDef { id: "ExcAC8B.kir", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator integral gain (Kir) (>= 0). Typical value = 5." },
1708            AttrDef { id: "ExcAC8B.kpr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator proportional gain (Kpr) (> 0 if ExcAC8B.kir = 0). Typical value = 80." },
1709            AttrDef { id: "ExcAC8B.ks", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient to allow different usage of the model-speed coefficient (Ks). Typical value = 0." },
1710            AttrDef { id: "ExcAC8B.pidlim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "PID limiter indicator. true = input limiter Vpidmax and Vpidmin is considered false = input limiter Vpidmax and Vpidmin is not considered. Typical value = true." },
1711            AttrDef { id: "ExcAC8B.seve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, Ve1, back of commutating reactance (Se[Ve1]) (>= 0). Typical value = 0,3." },
1712            AttrDef { id: "ExcAC8B.seve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, Ve2, back of commutating reactance (Se[Ve2]) (>= 0). Typical value = 3." },
1713            AttrDef { id: "ExcAC8B.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Ta) (>= 0). Typical value = 0." },
1714            AttrDef { id: "ExcAC8B.tdr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag time constant (Tdr) (> 0 if ExcAC8B.kdr > 0). Typical value = 0,1." },
1715            AttrDef { id: "ExcAC8B.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (Te) (> 0). Typical value = 1,2." },
1716            AttrDef { id: "ExcAC8B.telim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Selector for the limiter on the block (1/sTe). See diagram for meaning of true and false. Typical value = false." },
1717            AttrDef { id: "ExcAC8B.ve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (Ve1) (> 0). Typical value = 6,5." },
1718            AttrDef { id: "ExcAC8B.ve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (Ve2) (> 0). Typical value = 9." },
1719            AttrDef { id: "ExcAC8B.vemin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum exciter voltage output (Vemin) (<= 0). Typical value = 0." },
1720            AttrDef { id: "ExcAC8B.vfemax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter field current limit reference (Vfemax). Typical value = 6." },
1721            AttrDef { id: "ExcAC8B.vimax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Input signal maximum (Vimax) (> ExcAC8B.vimin). Typical value = 35." },
1722            AttrDef { id: "ExcAC8B.vimin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Input signal minimum (Vimin) (< ExcAC8B.vimax). Typical value = -10." },
1723            AttrDef { id: "ExcAC8B.vpidmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PID maximum controller output (Vpidmax) (> ExcAC8B.vpidmin). Typical value = 35." },
1724            AttrDef { id: "ExcAC8B.vpidmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PID minimum controller output (Vpidmin) (< ExcAC8B.vpidmax). Typical value = -10." },
1725            AttrDef { id: "ExcAC8B.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (Vrmax) (> 0). Typical value = 35." },
1726            AttrDef { id: "ExcAC8B.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (Vrmin) (< 0). Typical value = 0." },
1727            AttrDef { id: "ExcAC8B.vtmult", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Multiply by generator's terminal voltage indicator. true =the limits Vrmax and Vrmin are multiplied by the generator’s terminal voltage to represent a thyristor power stage fed from the generator terminals false = limits are not multiplied by generator's terminal voltage. Typical value = false." },
1728        ],
1729    },
1730    ClassDef {
1731        ns: "http://iec.ch/TC57/CIM100#",
1732        local: "ExcANS",
1733        qualified: "ExcANS",
1734        super_class: Some(161),
1735        concrete: true,
1736        origins: &["DY"],
1737        comment: "Italian excitation system. It represents static field voltage or excitation current feedback excitation system.",
1738        attrs: &[
1739            AttrDef { id: "ExcANS.blint", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["DY"], comment: "Governor control flag (BLINT). 0 = lead-lag regulator 1 = proportional integral regulator. Typical value = 0." },
1740            AttrDef { id: "ExcANS.ifmn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum exciter current (IFMN). Typical value = -5,2." },
1741            AttrDef { id: "ExcANS.ifmx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum exciter current (IFMX). Typical value = 6,5." },
1742            AttrDef { id: "ExcANS.k2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter gain (K2). Typical value = 20." },
1743            AttrDef { id: "ExcANS.k3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "AVR gain (K3). Typical value = 1000." },
1744            AttrDef { id: "ExcANS.kce", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Ceiling factor (KCE). Typical value = 1." },
1745            AttrDef { id: "ExcANS.krvecc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["DY"], comment: "Feedback enabling (KRVECC). 0 = open loop control 1 = closed loop control. Typical value = 1." },
1746            AttrDef { id: "ExcANS.kvfif", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["DY"], comment: "Rate feedback signal flag (KVFIF). 0 = output voltage of the exciter 1 = exciter field current. Typical value = 0." },
1747            AttrDef { id: "ExcANS.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T1) (>= 0). Typical value = 20." },
1748            AttrDef { id: "ExcANS.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T2) (>= 0). Typical value = 0,05." },
1749            AttrDef { id: "ExcANS.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T3) (>= 0). Typical value = 1,6." },
1750            AttrDef { id: "ExcANS.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant (TB) (>= 0). Typical value = 0,04." },
1751            AttrDef { id: "ExcANS.vrmn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum AVR output (VRMN). Typical value = -5,2." },
1752            AttrDef { id: "ExcANS.vrmx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum AVR output (VRMX). Typical value = 6,5." },
1753        ],
1754    },
1755    ClassDef {
1756        ns: "http://iec.ch/TC57/CIM100#",
1757        local: "ExcAVR1",
1758        qualified: "ExcAVR1",
1759        super_class: Some(161),
1760        concrete: true,
1761        origins: &["DY"],
1762        comment: "Italian excitation system corresponding to IEEE (1968) type 1 model. It represents an exciter dynamo and electromechanical regulator.",
1763        attrs: &[
1764            AttrDef { id: "ExcAVR1.e1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field voltage value 1 (E1). Typical value = 4.18." },
1765            AttrDef { id: "ExcAVR1.e2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field voltage value 2 (E2). Typical value = 3,14." },
1766            AttrDef { id: "ExcAVR1.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "AVR gain (KA). Typical value = 500." },
1767            AttrDef { id: "ExcAVR1.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rate feedback gain (KF). Typical value = 0,12." },
1768            AttrDef { id: "ExcAVR1.se1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Saturation factor at E1 (S[E1]). Typical value = 0,1." },
1769            AttrDef { id: "ExcAVR1.se2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Saturation factor at E2 (S[E2]). Typical value = 0,03." },
1770            AttrDef { id: "ExcAVR1.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "AVR time constant (TA) (>= 0). Typical value = 0,2." },
1771            AttrDef { id: "ExcAVR1.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "AVR time constant (TB) (>= 0). Typical value = 0." },
1772            AttrDef { id: "ExcAVR1.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant (TE) (>= 0). Typical value = 1." },
1773            AttrDef { id: "ExcAVR1.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rate feedback time constant (TF) (>= 0). Typical value = 1." },
1774            AttrDef { id: "ExcAVR1.vrmn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum AVR output (VRMN). Typical value = -6." },
1775            AttrDef { id: "ExcAVR1.vrmx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum AVR output (VRMX). Typical value = 7." },
1776        ],
1777    },
1778    ClassDef {
1779        ns: "http://iec.ch/TC57/CIM100#",
1780        local: "ExcAVR2",
1781        qualified: "ExcAVR2",
1782        super_class: Some(161),
1783        concrete: true,
1784        origins: &["DY"],
1785        comment: "Italian excitation system corresponding to IEEE (1968) type 2 model. It represents an alternator and rotating diodes and electromechanic voltage regulators.",
1786        attrs: &[
1787            AttrDef { id: "ExcAVR2.e1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field voltage value 1 (E1). Typical value = 4,18." },
1788            AttrDef { id: "ExcAVR2.e2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field voltage value 2 (E2). Typical value = 3,14." },
1789            AttrDef { id: "ExcAVR2.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "AVR gain (KA). Typical value = 500." },
1790            AttrDef { id: "ExcAVR2.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rate feedback gain (KF). Typical value = 0,12." },
1791            AttrDef { id: "ExcAVR2.se1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Saturation factor at E1 (S[E1]). Typical value = 0.1." },
1792            AttrDef { id: "ExcAVR2.se2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Saturation factor at E2 (S[E2]). Typical value = 0,03." },
1793            AttrDef { id: "ExcAVR2.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "AVR time constant (TA) (>= 0). Typical value = 0,02." },
1794            AttrDef { id: "ExcAVR2.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "AVR time constant (TB) (>= 0). Typical value = 0." },
1795            AttrDef { id: "ExcAVR2.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant (TE) (>= 0). Typical value = 1." },
1796            AttrDef { id: "ExcAVR2.tf1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rate feedback time constant (TF1) (>= 0). Typical value = 1." },
1797            AttrDef { id: "ExcAVR2.tf2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rate feedback time constant (TF2) (>= 0). Typical value = 1." },
1798            AttrDef { id: "ExcAVR2.vrmn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum AVR output (VRMN). Typical value = -6." },
1799            AttrDef { id: "ExcAVR2.vrmx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum AVR output (VRMX). Typical value = 7." },
1800        ],
1801    },
1802    ClassDef {
1803        ns: "http://iec.ch/TC57/CIM100#",
1804        local: "ExcAVR3",
1805        qualified: "ExcAVR3",
1806        super_class: Some(161),
1807        concrete: true,
1808        origins: &["DY"],
1809        comment: "Italian excitation system. It represents an exciter dynamo and electric regulator.",
1810        attrs: &[
1811            AttrDef { id: "ExcAVR3.e1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field voltage value 1 (E1). Typical value = 4,18." },
1812            AttrDef { id: "ExcAVR3.e2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field voltage value 2 (E2). Typical value = 3,14." },
1813            AttrDef { id: "ExcAVR3.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "AVR gain (KA). Typical value = 100." },
1814            AttrDef { id: "ExcAVR3.se1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Saturation factor at E1 (S[E1]). Typical value = 0,1." },
1815            AttrDef { id: "ExcAVR3.se2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Saturation factor at E2 (S[E2]). Typical value = 0,03." },
1816            AttrDef { id: "ExcAVR3.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "AVR time constant (T1) (>= 0). Typical value = 20." },
1817            AttrDef { id: "ExcAVR3.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "AVR time constant (T2) (>= 0). Typical value = 1,6." },
1818            AttrDef { id: "ExcAVR3.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "AVR time constant (T3) (>= 0). Typical value = 0,66." },
1819            AttrDef { id: "ExcAVR3.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "AVR time constant (T4) (>= 0). Typical value = 0,07." },
1820            AttrDef { id: "ExcAVR3.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant (TE) (>= 0). Typical value = 1." },
1821            AttrDef { id: "ExcAVR3.vrmn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum AVR output (VRMN). Typical value = -7,5." },
1822            AttrDef { id: "ExcAVR3.vrmx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum AVR output (VRMX). Typical value = 7,5." },
1823        ],
1824    },
1825    ClassDef {
1826        ns: "http://iec.ch/TC57/CIM100#",
1827        local: "ExcAVR4",
1828        qualified: "ExcAVR4",
1829        super_class: Some(161),
1830        concrete: true,
1831        origins: &["DY"],
1832        comment: "Italian excitation system. It represents a static exciter and electric voltage regulator.",
1833        attrs: &[
1834            AttrDef { id: "ExcAVR4.imul", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "AVR output voltage dependency selector (IMUL). true = selector is connected false = selector is not connected. Typical value = true." },
1835            AttrDef { id: "ExcAVR4.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "AVR gain (KA). Typical value = 300." },
1836            AttrDef { id: "ExcAVR4.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter gain (KE). Typical value = 1." },
1837            AttrDef { id: "ExcAVR4.kif", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter internal reactance (KIF). Typical value = 0." },
1838            AttrDef { id: "ExcAVR4.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "AVR time constant (T1) (>= 0). Typical value = 4,8." },
1839            AttrDef { id: "ExcAVR4.t1if", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter current feedback time constant (T1IF) (>= 0). Typical value = 60." },
1840            AttrDef { id: "ExcAVR4.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "AVR time constant (T2) (>= 0). Typical value = 1,5." },
1841            AttrDef { id: "ExcAVR4.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "AVR time constant (T3) (>= 0). Typical value = 0." },
1842            AttrDef { id: "ExcAVR4.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "AVR time constant (T4) (>= 0). Typical value = 0." },
1843            AttrDef { id: "ExcAVR4.tif", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter current feedback time constant (TIF) (>= 0). Typical value = 0." },
1844            AttrDef { id: "ExcAVR4.vfmn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum exciter output (VFMN). Typical value = 0." },
1845            AttrDef { id: "ExcAVR4.vfmx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum exciter output (VFMX). Typical value = 5." },
1846            AttrDef { id: "ExcAVR4.vrmn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum AVR output (VRMN). Typical value = 0." },
1847            AttrDef { id: "ExcAVR4.vrmx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum AVR output (VRMX). Typical value = 5." },
1848        ],
1849    },
1850    ClassDef {
1851        ns: "http://iec.ch/TC57/CIM100#",
1852        local: "ExcAVR5",
1853        qualified: "ExcAVR5",
1854        super_class: Some(161),
1855        concrete: true,
1856        origins: &["DY"],
1857        comment: "Manual excitation control with field circuit resistance. This model can be used as a very simple representation of manual voltage control.",
1858        attrs: &[
1859            AttrDef { id: "ExcAVR5.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (Ka)." },
1860            AttrDef { id: "ExcAVR5.rex", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Effective output resistance (Rex). Rex represents the effective output resistance seen by the excitation system." },
1861            AttrDef { id: "ExcAVR5.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Ta) (>= 0)." },
1862        ],
1863    },
1864    ClassDef {
1865        ns: "http://iec.ch/TC57/CIM100#",
1866        local: "ExcAVR7",
1867        qualified: "ExcAVR7",
1868        super_class: Some(161),
1869        concrete: true,
1870        origins: &["DY"],
1871        comment: "IVO excitation system.",
1872        attrs: &[
1873            AttrDef { id: "ExcAVR7.a1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead coefficient (A1). Typical value = 0,5." },
1874            AttrDef { id: "ExcAVR7.a2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag coefficient (A2). Typical value = 0,5." },
1875            AttrDef { id: "ExcAVR7.a3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead coefficient (A3). Typical value = 0,5." },
1876            AttrDef { id: "ExcAVR7.a4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag coefficient (A4). Typical value = 0,5." },
1877            AttrDef { id: "ExcAVR7.a5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead coefficient (A5). Typical value = 0,5." },
1878            AttrDef { id: "ExcAVR7.a6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag coefficient (A6). Typical value = 0,5." },
1879            AttrDef { id: "ExcAVR7.k1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (K1). Typical value = 1." },
1880            AttrDef { id: "ExcAVR7.k3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (K3). Typical value = 3." },
1881            AttrDef { id: "ExcAVR7.k5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (K5). Typical value = 1." },
1882            AttrDef { id: "ExcAVR7.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead time constant (T1) (>= 0). Typical value = 0,05." },
1883            AttrDef { id: "ExcAVR7.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag time constant (T2) (>= 0). Typical value = 0,1." },
1884            AttrDef { id: "ExcAVR7.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead time constant (T3) (>= 0). Typical value = 0,1." },
1885            AttrDef { id: "ExcAVR7.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag time constant (T4) (>= 0). Typical value = 0,1." },
1886            AttrDef { id: "ExcAVR7.t5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead time constant (T5) (>= 0). Typical value = 0,1." },
1887            AttrDef { id: "ExcAVR7.t6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag time constant (T6) (>= 0). Typical value = 0,1." },
1888            AttrDef { id: "ExcAVR7.vmax1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead-lag maximum limit (Vmax1) (> ExcAVR7.vmin1). Typical value = 5." },
1889            AttrDef { id: "ExcAVR7.vmax3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead-lag maximum limit (Vmax3) (> ExcAVR7.vmin3). Typical value = 5." },
1890            AttrDef { id: "ExcAVR7.vmax5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead-lag maximum limit (Vmax5) (> ExcAVR7.vmin5). Typical value = 5." },
1891            AttrDef { id: "ExcAVR7.vmin1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead-lag minimum limit (Vmin1) (< ExcAVR7.vmax1). Typical value = -5." },
1892            AttrDef { id: "ExcAVR7.vmin3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead-lag minimum limit (Vmin3) (< ExcAVR7.vmax3). Typical value = -5." },
1893            AttrDef { id: "ExcAVR7.vmin5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead-lag minimum limit (Vmin5) (< ExcAVR7.vmax5). Typical value = -2." },
1894        ],
1895    },
1896    ClassDef {
1897        ns: "http://iec.ch/TC57/CIM100#",
1898        local: "ExcBBC",
1899        qualified: "ExcBBC",
1900        super_class: Some(161),
1901        concrete: true,
1902        origins: &["DY"],
1903        comment: "Transformer fed static excitation system (static with ABB regulator). This model represents a static excitation system in which a gated thyristor bridge fed by a transformer at the main generator terminals feeds the main generator directly.",
1904        attrs: &[
1905            AttrDef { id: "ExcBBC.efdmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum open circuit exciter voltage (Efdmax) (> ExcBBC.efdmin). Typical value = 5." },
1906            AttrDef { id: "ExcBBC.efdmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum open circuit exciter voltage (Efdmin) (< ExcBBC.efdmax). Typical value = -5." },
1907            AttrDef { id: "ExcBBC.k", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Steady state gain (K) (not = 0). Typical value = 300." },
1908            AttrDef { id: "ExcBBC.switch", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Supplementary signal routing selector (switch). true = Vs connected to 3rd summing point false = Vs connected to 1st summing point (see diagram). Typical value = false." },
1909            AttrDef { id: "ExcBBC.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Controller time constant (T1) (>= 0). Typical value = 6." },
1910            AttrDef { id: "ExcBBC.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Controller time constant (T2) (>= 0). Typical value = 1." },
1911            AttrDef { id: "ExcBBC.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T3) (>= 0). If = 0, block is bypassed. Typical value = 0,05." },
1912            AttrDef { id: "ExcBBC.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T4) (>= 0). If = 0, block is bypassed. Typical value = 0,01." },
1913            AttrDef { id: "ExcBBC.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum control element output (Vrmax) (> ExcBBC.vrmin). Typical value = 5." },
1914            AttrDef { id: "ExcBBC.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum control element output (Vrmin) (< ExcBBC.vrmax). Typical value = -5." },
1915            AttrDef { id: "ExcBBC.xe", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Effective excitation transformer reactance (Xe) (>= 0). Xe models the regulation of the transformer/rectifier unit. Typical value = 0,05." },
1916        ],
1917    },
1918    ClassDef {
1919        ns: "http://iec.ch/TC57/CIM100#",
1920        local: "ExcCZ",
1921        qualified: "ExcCZ",
1922        super_class: Some(161),
1923        concrete: true,
1924        origins: &["DY"],
1925        comment: "Czech proportion/integral exciter.",
1926        attrs: &[
1927            AttrDef { id: "ExcCZ.efdmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter output maximum limit (Efdmax) (> ExcCZ.efdmin)." },
1928            AttrDef { id: "ExcCZ.efdmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter output minimum limit (Efdmin) (< ExcCZ.efdmax)." },
1929            AttrDef { id: "ExcCZ.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Regulator gain (Ka)." },
1930            AttrDef { id: "ExcCZ.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (Ke)." },
1931            AttrDef { id: "ExcCZ.kp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Regulator proportional gain (Kp)." },
1932            AttrDef { id: "ExcCZ.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Regulator time constant (Ta) (>= 0)." },
1933            AttrDef { id: "ExcCZ.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Regulator integral time constant (Tc) (>= 0)." },
1934            AttrDef { id: "ExcCZ.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (Te) (>= 0)." },
1935            AttrDef { id: "ExcCZ.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator maximum limit (Vrmax) (> ExcCZ.vrmin)." },
1936            AttrDef { id: "ExcCZ.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator minimum limit (Vrmin) (< ExcCZ.vrmax)." },
1937        ],
1938    },
1939    ClassDef {
1940        ns: "http://iec.ch/TC57/CIM100#",
1941        local: "ExcDC1A",
1942        qualified: "ExcDC1A",
1943        super_class: Some(161),
1944        concrete: true,
1945        origins: &["DY"],
1946        comment: "Modified IEEE DC1A direct current commutator exciter with speed input and without underexcitation limiters (UEL) inputs.",
1947        attrs: &[
1948            AttrDef { id: "ExcDC1A.efd1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter voltage at which exciter saturation is defined (Efd1) (> 0). Typical value = 3,1." },
1949            AttrDef { id: "ExcDC1A.efd2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter voltage at which exciter saturation is defined (Efd2) (> 0). Typical value = 2,3." },
1950            AttrDef { id: "ExcDC1A.efdmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage exciter output limiter (Efdmax) (> ExcDC1A.efdmin). Typical value = 99." },
1951            AttrDef { id: "ExcDC1A.efdmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage exciter output limiter (Efdmin) (< ExcDC1A.edfmax). Typical value = -99." },
1952            AttrDef { id: "ExcDC1A.exclim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "(exclim). IEEE standard is ambiguous about lower limit on exciter output. true = a lower limit of zero is applied to integrator output false = a lower limit of zero is not applied to integrator output. Typical value = true." },
1953            AttrDef { id: "ExcDC1A.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (Ka) (> 0). Typical value = 46." },
1954            AttrDef { id: "ExcDC1A.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (Ke). Typical value = 0." },
1955            AttrDef { id: "ExcDC1A.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gain (Kf) (>= 0). Typical value = 0,1." },
1956            AttrDef { id: "ExcDC1A.ks", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient to allow different usage of the model-speed coefficient (Ks). Typical value = 0." },
1957            AttrDef { id: "ExcDC1A.seefd1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, Efd1 (Se[Eefd1]) (>= 0). Typical value = 0,33." },
1958            AttrDef { id: "ExcDC1A.seefd2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, Efd2 (Se[Eefd2]) (>= 0). Typical value = 0,1." },
1959            AttrDef { id: "ExcDC1A.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Ta) (> 0). Typical value = 0,06." },
1960            AttrDef { id: "ExcDC1A.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tb) (>= 0). Typical value = 0." },
1961            AttrDef { id: "ExcDC1A.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tc) (>= 0). Typical value = 0." },
1962            AttrDef { id: "ExcDC1A.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (Te) (> 0). Typical value = 0,46." },
1963            AttrDef { id: "ExcDC1A.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (Tf) (> 0). Typical value = 1." },
1964            AttrDef { id: "ExcDC1A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (Vrmax) (> ExcDC1A.vrmin). Typical value = 1." },
1965            AttrDef { id: "ExcDC1A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (Vrmin) (< 0 and < ExcDC1A.vrmax). Typical value = -0,9." },
1966        ],
1967    },
1968    ClassDef {
1969        ns: "http://iec.ch/TC57/CIM100#",
1970        local: "ExcDC2A",
1971        qualified: "ExcDC2A",
1972        super_class: Some(161),
1973        concrete: true,
1974        origins: &["DY"],
1975        comment: "Modified IEEE DC2A direct current commutator exciter with speed input, one more leg block in feedback loop and without underexcitation limiters (UEL) inputs. DC type 2 excitation system model with added speed multiplier, added lead-lag, and voltage-dependent limits.",
1976        attrs: &[
1977            AttrDef { id: "ExcDC2A.efd1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter voltage at which exciter saturation is defined (Efd1) (> 0). Typical value = 3,05." },
1978            AttrDef { id: "ExcDC2A.efd2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter voltage at which exciter saturation is defined (Efd2) (> 0). Typical value = 2,29." },
1979            AttrDef { id: "ExcDC2A.exclim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "(exclim). IEEE standard is ambiguous about lower limit on exciter output. true = a lower limit of zero is applied to integrator output false = a lower limit of zero is not applied to integrator output. Typical value = true." },
1980            AttrDef { id: "ExcDC2A.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (Ka) (> 0). Typical value = 300." },
1981            AttrDef { id: "ExcDC2A.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (Ke). If Ke is entered as zero, the model calculates an effective value of Ke such that the initial condition value of Vr is zero. The zero value of Ke is not changed. If Ke is entered as non-zero, its value is used directly, without change. Typical value = 1." },
1982            AttrDef { id: "ExcDC2A.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gain (Kf) (>= 0). Typical value = 0,1." },
1983            AttrDef { id: "ExcDC2A.ks", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient to allow different usage of the model-speed coefficient (Ks). Typical value = 0." },
1984            AttrDef { id: "ExcDC2A.seefd1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, Efd1 (Se[Efd1]) (>= 0). Typical value = 0,279." },
1985            AttrDef { id: "ExcDC2A.seefd2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, Efd2 (Se[Efd2]) (>= 0). Typical value = 0,117." },
1986            AttrDef { id: "ExcDC2A.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Ta) (> 0). Typical value = 0,01." },
1987            AttrDef { id: "ExcDC2A.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tb) (>= 0). Typical value = 0." },
1988            AttrDef { id: "ExcDC2A.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tc) (>= 0). Typical value = 0." },
1989            AttrDef { id: "ExcDC2A.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (Te) (> 0). Typical value = 1,33." },
1990            AttrDef { id: "ExcDC2A.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (Tf) (> 0). Typical value = 0,675." },
1991            AttrDef { id: "ExcDC2A.tf1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (Tf1) (>= 0). Typical value = 0." },
1992            AttrDef { id: "ExcDC2A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (Vrmax) (> ExcDC2A.vrmin). Typical value = 4,95." },
1993            AttrDef { id: "ExcDC2A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (Vrmin) (< 0 and < ExcDC2A.vrmax). Typical value = -4,9." },
1994            AttrDef { id: "ExcDC2A.vtlim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "(Vtlim). true = limiter at the block (Ka / [1 + sTa]) is dependent on Vt false = limiter at the block is not dependent on Vt. Typical value = true." },
1995        ],
1996    },
1997    ClassDef {
1998        ns: "http://iec.ch/TC57/CIM100#",
1999        local: "ExcDC3A",
2000        qualified: "ExcDC3A",
2001        super_class: Some(161),
2002        concrete: true,
2003        origins: &["DY"],
2004        comment: "Modified IEEE DC3A direct current commutator exciter with speed input, and deadband. DC old type 4.",
2005        attrs: &[
2006            AttrDef { id: "ExcDC3A.efd1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter voltage at which exciter saturation is defined (Efd1) (> 0). Typical value = 2,6." },
2007            AttrDef { id: "ExcDC3A.efd2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter voltage at which exciter saturation is defined (Efd2) (> 0). Typical value = 3,45." },
2008            AttrDef { id: "ExcDC3A.efdlim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "(Efdlim). true = exciter output limiter is active false = exciter output limiter not active. Typical value = true." },
2009            AttrDef { id: "ExcDC3A.efdmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage exciter output limiter (Efdmax) (> ExcDC3A.efdmin). Typical value = 99." },
2010            AttrDef { id: "ExcDC3A.efdmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage exciter output limiter (Efdmin) (< ExcDC3A.efdmax). Typical value = -99." },
2011            AttrDef { id: "ExcDC3A.exclim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "(exclim). IEEE standard is ambiguous about lower limit on exciter output. true = a lower limit of zero is applied to integrator output false = a lower limit of zero not applied to integrator output. Typical value = true." },
2012            AttrDef { id: "ExcDC3A.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (Ke). Typical value = 1." },
2013            AttrDef { id: "ExcDC3A.kr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Deadband (Kr). Typical value = 0." },
2014            AttrDef { id: "ExcDC3A.ks", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient to allow different usage of the model-speed coefficient (Ks). Typical value = 0." },
2015            AttrDef { id: "ExcDC3A.kv", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fast raise/lower contact setting (Kv) (> 0). Typical value = 0,05." },
2016            AttrDef { id: "ExcDC3A.seefd1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, Efd1 (Se[Efd1]) (>= 0). Typical value = 0,1." },
2017            AttrDef { id: "ExcDC3A.seefd2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, Efd2 (Se[Efd2]) (>= 0). Typical value = 0,35." },
2018            AttrDef { id: "ExcDC3A.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (Te) (> 0). Typical value = 1,83." },
2019            AttrDef { id: "ExcDC3A.trh", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rheostat travel time (Trh) (> 0). Typical value = 20." },
2020            AttrDef { id: "ExcDC3A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (Vrmax) (> 0). Typical value = 5." },
2021            AttrDef { id: "ExcDC3A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (Vrmin) (<= 0). Typical value = 0." },
2022        ],
2023    },
2024    ClassDef {
2025        ns: "http://iec.ch/TC57/CIM100#",
2026        local: "ExcDC3A1",
2027        qualified: "ExcDC3A1",
2028        super_class: Some(161),
2029        concrete: true,
2030        origins: &["DY"],
2031        comment: "Modified old IEEE type 3 excitation system.",
2032        attrs: &[
2033            AttrDef { id: "ExcDC3A1.exclim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "(exclim). true = lower limit of zero is applied to integrator output false = lower limit of zero not applied to integrator output. Typical value = true." },
2034            AttrDef { id: "ExcDC3A1.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (Ka) (> 0). Typical value = 300." },
2035            AttrDef { id: "ExcDC3A1.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (Ke). Typical value = 1." },
2036            AttrDef { id: "ExcDC3A1.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gain (Kf) (>= 0). Typical value = 0,1." },
2037            AttrDef { id: "ExcDC3A1.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Potential circuit gain coefficient (Ki) (>= 0). Typical value = 4,83." },
2038            AttrDef { id: "ExcDC3A1.kp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Potential circuit gain coefficient (Kp) (>= 0). Typical value = 4,37." },
2039            AttrDef { id: "ExcDC3A1.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Ta) (> 0). Typical value = 0,01." },
2040            AttrDef { id: "ExcDC3A1.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (Te) (> 0). Typical value = 1,83." },
2041            AttrDef { id: "ExcDC3A1.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (Tf) (>= 0). Typical value = 0,675." },
2042            AttrDef { id: "ExcDC3A1.vb1max", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Available exciter voltage limiter (Vb1max) (> 0). Typical value = 11,63." },
2043            AttrDef { id: "ExcDC3A1.vblim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Vb limiter indicator. true = exciter Vbmax limiter is active false = Vb1max is active. Typical value = true." },
2044            AttrDef { id: "ExcDC3A1.vbmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Available exciter voltage limiter (Vbmax) (> 0). Typical value = 11,63." },
2045            AttrDef { id: "ExcDC3A1.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (Vrmax) (> ExcDC3A1.vrmin). Typical value = 5." },
2046            AttrDef { id: "ExcDC3A1.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (Vrmin) (< 0 and < ExcDC3A1.vrmax). Typical value = 0." },
2047        ],
2048    },
2049    ClassDef {
2050        ns: "http://iec.ch/TC57/CIM100#",
2051        local: "ExcELIN1",
2052        qualified: "ExcELIN1",
2053        super_class: Some(161),
2054        concrete: true,
2055        origins: &["DY"],
2056        comment: "Static PI transformer fed excitation system ELIN (VATECH) - simplified model. This model represents an all-static excitation system. A PI voltage controller establishes a desired field current set point for a proportional current controller. The integrator of the PI controller has a follow-up input to match its signal to the present field current. A power system stabilizer with power input is included in the model.",
2057        attrs: &[
2058            AttrDef { id: "ExcELIN1.dpnf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Controller follow up deadband (Dpnf). Typical value = 0." },
2059            AttrDef { id: "ExcELIN1.efmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum open circuit excitation voltage (Efmax) (> ExcELIN1.efmin). Typical value = 5." },
2060            AttrDef { id: "ExcELIN1.efmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum open circuit excitation voltage (Efmin) (< ExcELIN1.efmax). Typical value = -5." },
2061            AttrDef { id: "ExcELIN1.ks1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer gain 1 (Ks1). Typical value = 0." },
2062            AttrDef { id: "ExcELIN1.ks2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer gain 2 (Ks2). Typical value = 0." },
2063            AttrDef { id: "ExcELIN1.smax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer limit output (smax). Typical value = 0,1." },
2064            AttrDef { id: "ExcELIN1.tfi", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Current transducer time constant (Tfi) (>= 0). Typical value = 0." },
2065            AttrDef { id: "ExcELIN1.tnu", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Controller reset time constant (Tnu) (>= 0). Typical value = 2." },
2066            AttrDef { id: "ExcELIN1.ts1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer phase lag time constant (Ts1) (>= 0). Typical value = 1." },
2067            AttrDef { id: "ExcELIN1.ts2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer filter time constant (Ts2) (>= 0). Typical value = 1." },
2068            AttrDef { id: "ExcELIN1.tsw", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer parameters (Tsw) (>= 0). Typical value = 3." },
2069            AttrDef { id: "ExcELIN1.vpi", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Current controller gain (Vpi). Typical value = 12,45." },
2070            AttrDef { id: "ExcELIN1.vpnf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Controller follow up gain (Vpnf). Typical value = 2." },
2071            AttrDef { id: "ExcELIN1.vpu", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage controller proportional gain (Vpu). Typical value = 34,5." },
2072            AttrDef { id: "ExcELIN1.xe", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation transformer effective reactance (Xe) (>= 0). Xe represents the regulation of the transformer/rectifier unit. Typical value = 0,06." },
2073        ],
2074    },
2075    ClassDef {
2076        ns: "http://iec.ch/TC57/CIM100#",
2077        local: "ExcELIN2",
2078        qualified: "ExcELIN2",
2079        super_class: Some(161),
2080        concrete: true,
2081        origins: &["DY"],
2082        comment: "Detailed excitation system ELIN (VATECH). This model represents an all-static excitation system. A PI voltage controller establishes a desired field current set point for a proportional current controller. The integrator of the PI controller has a follow-up input to match its signal to the present field current. Power system stabilizer models used in conjunction with this excitation system model: PssELIN2, PssIEEE2B, Pss2B.",
2083        attrs: &[
2084            AttrDef { id: "ExcELIN2.efdbas", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (Efdbas). Typical value = 0,1." },
2085            AttrDef { id: "ExcELIN2.iefmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limiter (Iefmax) (> ExcELIN2.iefmin). Typical value = 1." },
2086            AttrDef { id: "ExcELIN2.iefmax2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum open circuit excitation voltage (Iefmax2). Typical value = -5." },
2087            AttrDef { id: "ExcELIN2.iefmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limiter (Iefmin) (< ExcELIN2.iefmax). Typical value = 1." },
2088            AttrDef { id: "ExcELIN2.k1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator input gain (K1). Typical value = 0." },
2089            AttrDef { id: "ExcELIN2.k1ec", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator input limit (K1ec). Typical value = 2." },
2090            AttrDef { id: "ExcELIN2.k2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (K2). Typical value = 5." },
2091            AttrDef { id: "ExcELIN2.k3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (K3). Typical value = 0,1." },
2092            AttrDef { id: "ExcELIN2.k4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (K4). Typical value = 0." },
2093            AttrDef { id: "ExcELIN2.kd1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage controller derivative gain (Kd1). Typical value = 34,5." },
2094            AttrDef { id: "ExcELIN2.ke2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (Ke2). Typical value = 0,1." },
2095            AttrDef { id: "ExcELIN2.ketb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (Ketb). Typical value = 0,06." },
2096            AttrDef { id: "ExcELIN2.pid1max", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Controller follow up gain (PID1max). Typical value = 2." },
2097            AttrDef { id: "ExcELIN2.seve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, Ve1, back of commutating reactance (Se[Ve1]) (>= 0). Typical value = 0." },
2098            AttrDef { id: "ExcELIN2.seve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, Ve2, back of commutating reactance (Se[Ve2]) (>= 0). Typical value = 1." },
2099            AttrDef { id: "ExcELIN2.tb1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage controller derivative washout time constant (Tb1) (>= 0). Typical value = 12,45." },
2100            AttrDef { id: "ExcELIN2.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Te) (>= 0). Typical value = 0." },
2101            AttrDef { id: "ExcELIN2.te2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time Constant (Te2) (>= 0). Typical value = 1." },
2102            AttrDef { id: "ExcELIN2.ti1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Controller follow up deadband (Ti1). Typical value = 0." },
2103            AttrDef { id: "ExcELIN2.ti3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Ti3) (>= 0). Typical value = 3." },
2104            AttrDef { id: "ExcELIN2.ti4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Ti4) (>= 0). Typical value = 0." },
2105            AttrDef { id: "ExcELIN2.tr4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Tr4) (>= 0). Typical value = 1." },
2106            AttrDef { id: "ExcELIN2.upmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limiter (Upmax) (> ExcELIN2.upmin). Typical value = 3." },
2107            AttrDef { id: "ExcELIN2.upmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limiter (Upmin) (< ExcELIN2.upmax). Typical value = 0." },
2108            AttrDef { id: "ExcELIN2.ve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (Ve1) (> 0). Typical value = 3." },
2109            AttrDef { id: "ExcELIN2.ve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (Ve2) (> 0). Typical value = 0." },
2110            AttrDef { id: "ExcELIN2.xp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation transformer effective reactance (Xp). Typical value = 1." },
2111        ],
2112    },
2113    ClassDef {
2114        ns: "http://iec.ch/TC57/CIM100#",
2115        local: "ExcHU",
2116        qualified: "ExcHU",
2117        super_class: Some(161),
2118        concrete: true,
2119        origins: &["DY"],
2120        comment: "Hungarian excitation system, with built-in voltage transducer.",
2121        attrs: &[
2122            AttrDef { id: "ExcHU.ae", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Major loop PI tag gain factor (Ae). Typical value = 3." },
2123            AttrDef { id: "ExcHU.ai", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minor loop PI tag gain factor (Ai). Typical value = 22." },
2124            AttrDef { id: "ExcHU.atr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "AVR constant (Atr). Typical value = 2,19." },
2125            AttrDef { id: "ExcHU.emax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field voltage control signal upper limit on AVR base (Emax) (> ExcHU.emin). Typical value = 0,996." },
2126            AttrDef { id: "ExcHU.emin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field voltage control signal lower limit on AVR base (Emin) (< ExcHU.emax). Typical value = -0,866." },
2127            AttrDef { id: "ExcHU.imax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Major loop PI tag output signal upper limit (Imax) (> ExcHU.imin). Typical value = 2,19." },
2128            AttrDef { id: "ExcHU.imin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Major loop PI tag output signal lower limit (Imin) (< ExcHU.imax). Typical value = 0,1." },
2129            AttrDef { id: "ExcHU.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage base conversion constant (Ke). Typical value = 4,666." },
2130            AttrDef { id: "ExcHU.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Current base conversion constant (Ki). Typical value = 0,21428." },
2131            AttrDef { id: "ExcHU.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Major loop PI tag integration time constant (Te) (>= 0). Typical value = 0,154." },
2132            AttrDef { id: "ExcHU.ti", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minor loop PI control tag integration time constant (Ti) (>= 0). Typical value = 0,01333." },
2133            AttrDef { id: "ExcHU.tr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter time constant (Tr) (>= 0). If a voltage compensator is used in conjunction with this excitation system model, Tr should be set to 0. Typical value = 0,01." },
2134        ],
2135    },
2136    ClassDef {
2137        ns: "http://iec.ch/TC57/CIM100#",
2138        local: "ExcIEEEAC1A",
2139        qualified: "ExcIEEEAC1A",
2140        super_class: Some(161),
2141        concrete: true,
2142        origins: &["DY"],
2143        comment: "IEEE 421.5-2005 type AC1A model. The model represents the field-controlled alternator-rectifier excitation systems designated type AC1A. These excitation systems consist of an alternator main exciter with non-controlled rectifiers. Reference: IEEE 421.5-2005, 6.1.",
2144        attrs: &[
2145            AttrDef { id: "ExcIEEEAC1A.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (KA) (> 0). Typical value = 400." },
2146            AttrDef { id: "ExcIEEEAC1A.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier loading factor proportional to commutating reactance (KC) (>= 0). Typical value = 0,2." },
2147            AttrDef { id: "ExcIEEEAC1A.kd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Demagnetizing factor, a function of exciter alternator reactances (KD) (>= 0). Typical value = 0,38." },
2148            AttrDef { id: "ExcIEEEAC1A.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (KE). Typical value = 1." },
2149            AttrDef { id: "ExcIEEEAC1A.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gains (KF) (>= 0). Typical value = 0,03." },
2150            AttrDef { id: "ExcIEEEAC1A.seve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, VE1, back of commutating reactance (SE[VE1]) (>= 0). Typical value = 0,1." },
2151            AttrDef { id: "ExcIEEEAC1A.seve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, VE2, back of commutating reactance (SE[VE2]) (>= 0). Typical value = 0,03." },
2152            AttrDef { id: "ExcIEEEAC1A.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TA) (> 0). Typical value = 0,02." },
2153            AttrDef { id: "ExcIEEEAC1A.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TB) (>= 0). Typical value = 0." },
2154            AttrDef { id: "ExcIEEEAC1A.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TC) (>= 0). Typical value = 0." },
2155            AttrDef { id: "ExcIEEEAC1A.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (TE) (> 0). Typical value = 0,8." },
2156            AttrDef { id: "ExcIEEEAC1A.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (TF) (> 0). Typical value = 1." },
2157            AttrDef { id: "ExcIEEEAC1A.vamax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (VAMAX) (> 0). Typical value = 14,5." },
2158            AttrDef { id: "ExcIEEEAC1A.vamin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (VAMIN) (< 0). Typical value = -14,5." },
2159            AttrDef { id: "ExcIEEEAC1A.ve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (VE1) (> 0). Typical value = 4,18." },
2160            AttrDef { id: "ExcIEEEAC1A.ve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (VE2) (> 0). Typical value = 3,14." },
2161            AttrDef { id: "ExcIEEEAC1A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator outputs (VRMAX) (> 0). Typical value = 6,03." },
2162            AttrDef { id: "ExcIEEEAC1A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator outputs (VRMIN) (< 0). Typical value = -5,43." },
2163        ],
2164    },
2165    ClassDef {
2166        ns: "http://iec.ch/TC57/CIM100#",
2167        local: "ExcIEEEAC2A",
2168        qualified: "ExcIEEEAC2A",
2169        super_class: Some(161),
2170        concrete: true,
2171        origins: &["DY"],
2172        comment: "IEEE 421.5-2005 type AC2A model. The model represents a high initial response field-controlled alternator-rectifier excitation system. The alternator main exciter is used with non-controlled rectifiers. The type AC2A model is similar to that of type AC1A except for the inclusion of exciter time constant compensation and exciter field current limiting elements. Reference: IEEE 421.5-2005, 6.2.",
2173        attrs: &[
2174            AttrDef { id: "ExcIEEEAC2A.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (KA) (> 0). Typical value = 400." },
2175            AttrDef { id: "ExcIEEEAC2A.kb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Second stage regulator gain (KB) (> 0). Typical value = 25." },
2176            AttrDef { id: "ExcIEEEAC2A.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier loading factor proportional to commutating reactance (KC) (>= 0). Typical value = 0,28." },
2177            AttrDef { id: "ExcIEEEAC2A.kd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Demagnetizing factor, a function of exciter alternator reactances (KD) (>= 0). Typical value = 0,35." },
2178            AttrDef { id: "ExcIEEEAC2A.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (KE) (>= 0). Typical value = 1." },
2179            AttrDef { id: "ExcIEEEAC2A.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gains (KF) (>= 0). Typical value = 0,03." },
2180            AttrDef { id: "ExcIEEEAC2A.kh", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter field current feedback gain (KH) (>= 0). Typical value = 1." },
2181            AttrDef { id: "ExcIEEEAC2A.seve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, VE1, back of commutating reactance (SE[VE1]) (>= 0). Typical value = 0,037." },
2182            AttrDef { id: "ExcIEEEAC2A.seve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, VE2, back of commutating reactance (SE[VE2]) (>= 0). Typical value = 0,012." },
2183            AttrDef { id: "ExcIEEEAC2A.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TA) (> 0). Typical value = 0,02." },
2184            AttrDef { id: "ExcIEEEAC2A.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TB) (>= 0). Typical value = 0." },
2185            AttrDef { id: "ExcIEEEAC2A.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TC) (>= 0). Typical value = 0." },
2186            AttrDef { id: "ExcIEEEAC2A.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (TE) (> 0). Typical value = 0,6." },
2187            AttrDef { id: "ExcIEEEAC2A.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (TF) (> 0). Typical value = 1." },
2188            AttrDef { id: "ExcIEEEAC2A.vamax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (VAMAX) (> 0). Typical value = 8." },
2189            AttrDef { id: "ExcIEEEAC2A.vamin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (VAMIN) (< 0). Typical value = -8." },
2190            AttrDef { id: "ExcIEEEAC2A.ve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (VE1) (> 0). Typical value = 4,4." },
2191            AttrDef { id: "ExcIEEEAC2A.ve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (VE2) (> 0). Typical value = 3,3." },
2192            AttrDef { id: "ExcIEEEAC2A.vfemax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter field current limit reference (VFEMAX) (> 0). Typical value = 4,4." },
2193            AttrDef { id: "ExcIEEEAC2A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator outputs (VRMAX) (> 0). Typical value = 105." },
2194            AttrDef { id: "ExcIEEEAC2A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator outputs (VRMIN) (< 0). Typical value = -95." },
2195        ],
2196    },
2197    ClassDef {
2198        ns: "http://iec.ch/TC57/CIM100#",
2199        local: "ExcIEEEAC3A",
2200        qualified: "ExcIEEEAC3A",
2201        super_class: Some(161),
2202        concrete: true,
2203        origins: &["DY"],
2204        comment: "IEEE 421.5-2005 type AC3A model. The model represents the field-controlled alternator-rectifier excitation systems designated type AC3A. These excitation systems include an alternator main exciter with non-controlled rectifiers. The exciter employs self-excitation, and the voltage regulator power is derived from the exciter output voltage. Therefore, this system has an additional nonlinearity, simulated by the use of a multiplier whose inputs are the voltage regulator command signal, Va, and the exciter output voltage, Efd, times KR. This model is applicable to excitation systems employing static voltage regulators. Reference: IEEE 421.5-2005, 6.3.",
2205        attrs: &[
2206            AttrDef { id: "ExcIEEEAC3A.efdn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Value of Efd at which feedback gain changes (EFDN) (> 0). Typical value = 2,36." },
2207            AttrDef { id: "ExcIEEEAC3A.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (KA) (> 0). Typical value = 45,62." },
2208            AttrDef { id: "ExcIEEEAC3A.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier loading factor proportional to commutating reactance (KC) (>= 0). Typical value = 0,104." },
2209            AttrDef { id: "ExcIEEEAC3A.kd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Demagnetizing factor, a function of exciter alternator reactances (KD) (>= 0). Typical value = 0,499." },
2210            AttrDef { id: "ExcIEEEAC3A.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (KE). Typical value = 1." },
2211            AttrDef { id: "ExcIEEEAC3A.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gains (KF) (>= 0). Typical value = 0,143." },
2212            AttrDef { id: "ExcIEEEAC3A.kn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gain (KN) (>= 0). Typical value = 0,05." },
2213            AttrDef { id: "ExcIEEEAC3A.kr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Constant associated with regulator and alternator field power supply (KR) (> 0). Typical value = 3,77." },
2214            AttrDef { id: "ExcIEEEAC3A.seve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, VE1, back of commutating reactance (SE[VE1]) (>= 0). Typical value = 1,143." },
2215            AttrDef { id: "ExcIEEEAC3A.seve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, VE2, back of commutating reactance (SE[VE2]) (>= 0). Typical value = 0,1." },
2216            AttrDef { id: "ExcIEEEAC3A.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TA) (> 0). Typical value = 0,013." },
2217            AttrDef { id: "ExcIEEEAC3A.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TB) (>= 0). Typical value = 0." },
2218            AttrDef { id: "ExcIEEEAC3A.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TC) (>= 0). Typical value = 0." },
2219            AttrDef { id: "ExcIEEEAC3A.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (TE) (> 0). Typical value = 1,17." },
2220            AttrDef { id: "ExcIEEEAC3A.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (TF) (> 0). Typical value = 1." },
2221            AttrDef { id: "ExcIEEEAC3A.vamax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (VAMAX) (> 0). Typical value = 1." },
2222            AttrDef { id: "ExcIEEEAC3A.vamin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (VAMIN) (< 0). Typical value = -0,95." },
2223            AttrDef { id: "ExcIEEEAC3A.ve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (VE1) (> 0). Typical value = 6,24." },
2224            AttrDef { id: "ExcIEEEAC3A.ve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (VE2) (> 0). Typical value = 4,68." },
2225            AttrDef { id: "ExcIEEEAC3A.vemin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum exciter voltage output (VEMIN) (<= 0). Typical value = 0." },
2226            AttrDef { id: "ExcIEEEAC3A.vfemax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter field current limit reference (VFEMAX) (>= 0). Typical value = 16." },
2227        ],
2228    },
2229    ClassDef {
2230        ns: "http://iec.ch/TC57/CIM100#",
2231        local: "ExcIEEEAC4A",
2232        qualified: "ExcIEEEAC4A",
2233        super_class: Some(161),
2234        concrete: true,
2235        origins: &["DY"],
2236        comment: "IEEE 421.5-2005 type AC4A model. The model represents type AC4A alternator-supplied controlled-rectifier excitation system which is quite different from the other types of AC systems. This high initial response excitation system utilizes a full thyristor bridge in the exciter output circuit. The voltage regulator controls the firing of the thyristor bridges. The exciter alternator uses an independent voltage regulator to control its output voltage to a constant value. These effects are not modelled; however, transient loading effects on the exciter alternator are included. Reference: IEEE 421.5-2005, 6.4.",
2237        attrs: &[
2238            AttrDef { id: "ExcIEEEAC4A.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (KA) (> 0). Typical value = 200." },
2239            AttrDef { id: "ExcIEEEAC4A.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier loading factor proportional to commutating reactance (KC) (>= 0). Typical value = 0." },
2240            AttrDef { id: "ExcIEEEAC4A.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TA) (> 0). Typical value = 0,015." },
2241            AttrDef { id: "ExcIEEEAC4A.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TB) (>= 0). Typical value = 10." },
2242            AttrDef { id: "ExcIEEEAC4A.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TC) (>= 0). Typical value = 1." },
2243            AttrDef { id: "ExcIEEEAC4A.vimax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator input limit (VIMAX) (> 0). Typical value = 10." },
2244            AttrDef { id: "ExcIEEEAC4A.vimin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator input limit (VIMIN) (< 0). Typical value = -10." },
2245            AttrDef { id: "ExcIEEEAC4A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (VRMAX) (> 0). Typical value = 5,64." },
2246            AttrDef { id: "ExcIEEEAC4A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (VRMIN) (< 0). Typical value = -4,53." },
2247        ],
2248    },
2249    ClassDef {
2250        ns: "http://iec.ch/TC57/CIM100#",
2251        local: "ExcIEEEAC5A",
2252        qualified: "ExcIEEEAC5A",
2253        super_class: Some(161),
2254        concrete: true,
2255        origins: &["DY"],
2256        comment: "IEEE 421.5-2005 type AC5A model. The model represents a simplified model for brushless excitation systems. The regulator is supplied from a source, such as a permanent magnet generator, which is not affected by system disturbances. Unlike other AC models, this model uses loaded rather than open circuit exciter saturation data in the same way as it is used for the DC models. Because the model has been widely implemented by the industry, it is sometimes used to represent other types of systems when either detailed data for them are not available or simplified models are required. Reference: IEEE 421.5-2005, 6.5.",
2257        attrs: &[
2258            AttrDef { id: "ExcIEEEAC5A.efd1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter voltage at which exciter saturation is defined (EFD1) (> 0). Typical value = 5,6." },
2259            AttrDef { id: "ExcIEEEAC5A.efd2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter voltage at which exciter saturation is defined (EFD2) (> 0). Typical value = 4,2." },
2260            AttrDef { id: "ExcIEEEAC5A.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (KA) (> 0). Typical value = 400." },
2261            AttrDef { id: "ExcIEEEAC5A.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (KE). Typical value = 1." },
2262            AttrDef { id: "ExcIEEEAC5A.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gains (KF) (>= 0). Typical value = 0,03." },
2263            AttrDef { id: "ExcIEEEAC5A.seefd1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, EFD1 (SE[EFD1]) (>= 0). Typical value = 0,86." },
2264            AttrDef { id: "ExcIEEEAC5A.seefd2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, EFD2 (SE[EFD2]) (>= 0). Typical value = 0,5." },
2265            AttrDef { id: "ExcIEEEAC5A.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TA) (> 0). Typical value = 0,02." },
2266            AttrDef { id: "ExcIEEEAC5A.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (TE) (> 0). Typical value = 0,8." },
2267            AttrDef { id: "ExcIEEEAC5A.tf1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (TF1) (> 0). Typical value = 1." },
2268            AttrDef { id: "ExcIEEEAC5A.tf2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (TF2) (>= 0). Typical value = 1." },
2269            AttrDef { id: "ExcIEEEAC5A.tf3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (TF3) (>= 0). Typical value = 1." },
2270            AttrDef { id: "ExcIEEEAC5A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (VRMAX) (> 0). Typical value = 7,3." },
2271            AttrDef { id: "ExcIEEEAC5A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (VRMIN) (< 0). Typical value = -7,3." },
2272        ],
2273    },
2274    ClassDef {
2275        ns: "http://iec.ch/TC57/CIM100#",
2276        local: "ExcIEEEAC6A",
2277        qualified: "ExcIEEEAC6A",
2278        super_class: Some(161),
2279        concrete: true,
2280        origins: &["DY"],
2281        comment: "IEEE 421.5-2005 type AC6A model. The model represents field-controlled alternator-rectifier excitation systems with system-supplied electronic voltage regulators. The maximum output of the regulator, VR, is a function of terminal voltage, VT. The field current limiter included in the original model AC6A remains in the 2005 update. Reference: IEEE 421.5-2005, 6.6.",
2282        attrs: &[
2283            AttrDef { id: "ExcIEEEAC6A.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (KA) (> 0). Typical value = 536." },
2284            AttrDef { id: "ExcIEEEAC6A.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier loading factor proportional to commutating reactance (KC) (>= 0). Typical value = 0,173." },
2285            AttrDef { id: "ExcIEEEAC6A.kd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Demagnetizing factor, a function of exciter alternator reactances (KD) (>= 0). Typical value = 1,91." },
2286            AttrDef { id: "ExcIEEEAC6A.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (KE). Typical value = 1,6." },
2287            AttrDef { id: "ExcIEEEAC6A.kh", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter field current limiter gain (KH) (>= 0). Typical value = 92." },
2288            AttrDef { id: "ExcIEEEAC6A.seve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, VE1, back of commutating reactance (SE[VE1]) (>= 0). Typical value = 0,214." },
2289            AttrDef { id: "ExcIEEEAC6A.seve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, VE2, back of commutating reactance (SE[VE2]) (>= 0). Typical value = 0,044." },
2290            AttrDef { id: "ExcIEEEAC6A.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TA) (>= 0). Typical value = 0,086." },
2291            AttrDef { id: "ExcIEEEAC6A.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TB) (>= 0). Typical value = 9." },
2292            AttrDef { id: "ExcIEEEAC6A.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TC) (>= 0). Typical value = 3." },
2293            AttrDef { id: "ExcIEEEAC6A.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (TE) (> 0). Typical value = 1." },
2294            AttrDef { id: "ExcIEEEAC6A.th", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter field current limiter time constant (TH) (> 0). Typical value = 0,08." },
2295            AttrDef { id: "ExcIEEEAC6A.tj", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter field current limiter time constant (TJ) (>= 0). Typical value = 0,02." },
2296            AttrDef { id: "ExcIEEEAC6A.tk", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TK) (>= 0). Typical value = 0,18." },
2297            AttrDef { id: "ExcIEEEAC6A.vamax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (VAMAX) (> 0). Typical value = 75." },
2298            AttrDef { id: "ExcIEEEAC6A.vamin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (VAMIN) (< 0). Typical value = -75." },
2299            AttrDef { id: "ExcIEEEAC6A.ve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (VE1) (> 0). Typical value = 7,4." },
2300            AttrDef { id: "ExcIEEEAC6A.ve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (VE2) (> 0). Typical value = 5,55." },
2301            AttrDef { id: "ExcIEEEAC6A.vfelim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter field current limit reference (VFELIM) (> 0). Typical value = 19." },
2302            AttrDef { id: "ExcIEEEAC6A.vhmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum field current limiter signal reference (VHMAX) (> 0). Typical value = 75." },
2303            AttrDef { id: "ExcIEEEAC6A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (VRMAX) (> 0). Typical value = 44." },
2304            AttrDef { id: "ExcIEEEAC6A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (VRMIN) (< 0). Typical value = -36." },
2305        ],
2306    },
2307    ClassDef {
2308        ns: "http://iec.ch/TC57/CIM100#",
2309        local: "ExcIEEEAC7B",
2310        qualified: "ExcIEEEAC7B",
2311        super_class: Some(161),
2312        concrete: true,
2313        origins: &["DY"],
2314        comment: "IEEE 421.5-2005 type AC7B model. The model represents excitation systems which consist of an AC alternator with either stationary or rotating rectifiers to produce the DC field requirements. It is an upgrade to earlier AC excitation systems, which replace only the controls but retain the AC alternator and diode rectifier bridge. Reference: IEEE 421.5-2005, 6.7. Note, however, that in IEEE 421.5-2005, the [1 / sTE] block is shown as [1 / (1 + sTE)], which is incorrect.",
2315        attrs: &[
2316            AttrDef { id: "ExcIEEEAC7B.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier loading factor proportional to commutating reactance (KC) (>= 0). Typical value = 0,18." },
2317            AttrDef { id: "ExcIEEEAC7B.kd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Demagnetizing factor, a function of exciter alternator reactances (KD) (>= 0). Typical value = 0,02." },
2318            AttrDef { id: "ExcIEEEAC7B.kdr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator derivative gain (KDR) (>= 0). Typical value = 0." },
2319            AttrDef { id: "ExcIEEEAC7B.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (KE). Typical value = 1." },
2320            AttrDef { id: "ExcIEEEAC7B.kf1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gain (KF1) (>= 0). Typical value = 0,212." },
2321            AttrDef { id: "ExcIEEEAC7B.kf2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gain (KF2) (>= 0). Typical value = 0." },
2322            AttrDef { id: "ExcIEEEAC7B.kf3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gain (KF3) (>= 0). Typical value = 0." },
2323            AttrDef { id: "ExcIEEEAC7B.kia", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator integral gain (KIA) (>= 0). Typical value = 59,69." },
2324            AttrDef { id: "ExcIEEEAC7B.kir", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator integral gain (KIR) (>= 0). Typical value = 4,24." },
2325            AttrDef { id: "ExcIEEEAC7B.kl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter field voltage lower limit parameter (KL). Typical value = 10." },
2326            AttrDef { id: "ExcIEEEAC7B.kp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Potential circuit gain coefficient (KP) (> 0). Typical value = 4,96." },
2327            AttrDef { id: "ExcIEEEAC7B.kpa", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator proportional gain (KPA) (> 0 if ExcIEEEAC7B.kia = 0). Typical value = 65,36." },
2328            AttrDef { id: "ExcIEEEAC7B.kpr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator proportional gain (KPR) (> 0 if ExcIEEEAC7B.kir = 0). Typical value = 4,24." },
2329            AttrDef { id: "ExcIEEEAC7B.seve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, VE1, back of commutating reactance (SE[VE1]) (>= 0). Typical value = 0,44." },
2330            AttrDef { id: "ExcIEEEAC7B.seve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, VE2, back of commutating reactance (SE[VE2]) (>= 0). Typical value = 0,075." },
2331            AttrDef { id: "ExcIEEEAC7B.tdr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag time constant (TDR) (>= 0). Typical value = 0." },
2332            AttrDef { id: "ExcIEEEAC7B.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (TE) (> 0). Typical value = 1,1." },
2333            AttrDef { id: "ExcIEEEAC7B.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (TF) (> 0). Typical value = 1." },
2334            AttrDef { id: "ExcIEEEAC7B.vamax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (VAMAX) (> 0). Typical value = 1." },
2335            AttrDef { id: "ExcIEEEAC7B.vamin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (VAMIN) (< 0). Typical value = -0,95." },
2336            AttrDef { id: "ExcIEEEAC7B.ve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (VE1) (> 0). Typical value = 6,3." },
2337            AttrDef { id: "ExcIEEEAC7B.ve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (VE2) (> 0). Typical value = 3,02." },
2338            AttrDef { id: "ExcIEEEAC7B.vemin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum exciter voltage output (VEMIN) (<= 0). Typical value = 0." },
2339            AttrDef { id: "ExcIEEEAC7B.vfemax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter field current limit reference (VFEMAX). Typical value = 6,9." },
2340            AttrDef { id: "ExcIEEEAC7B.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (VRMAX) (> 0). Typical value = 5,79." },
2341            AttrDef { id: "ExcIEEEAC7B.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (VRMIN) (< 0). Typical value = -5,79." },
2342        ],
2343    },
2344    ClassDef {
2345        ns: "http://iec.ch/TC57/CIM100#",
2346        local: "ExcIEEEAC8B",
2347        qualified: "ExcIEEEAC8B",
2348        super_class: Some(161),
2349        concrete: true,
2350        origins: &["DY"],
2351        comment: "IEEE 421.5-2005 type AC8B model. This model represents a PID voltage regulator with either a brushless exciter or DC exciter. The AVR in this model consists of PID control, with separate constants for the proportional (KPR), integral (KIR), and derivative (KDR) gains. The representation of the brushless exciter (TE, KE, SE, KC, KD) is similar to the model type AC2A. The type AC8B model can be used to represent static voltage regulators applied to brushless excitation systems. Digitally based voltage regulators feeding DC rotating main exciters can be represented with the AC type AC8B model with the parameters KC and KD set to 0. For thyristor power stages fed from the generator terminals, the limits VRMAX and VRMIN should be a function of terminal voltage: VT x VRMAX and VT x VRMIN. Reference: IEEE 421.5-2005, 6.8.",
2352        attrs: &[
2353            AttrDef { id: "ExcIEEEAC8B.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (KA) (> 0). Typical value = 1." },
2354            AttrDef { id: "ExcIEEEAC8B.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier loading factor proportional to commutating reactance (KC) (>= 0). Typical value = 0,55." },
2355            AttrDef { id: "ExcIEEEAC8B.kd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Demagnetizing factor, a function of exciter alternator reactances (KD) (>= 0). Typical value = 1,1." },
2356            AttrDef { id: "ExcIEEEAC8B.kdr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator derivative gain (KDR) (>= 0). Typical value = 10." },
2357            AttrDef { id: "ExcIEEEAC8B.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (KE). Typical value = 1." },
2358            AttrDef { id: "ExcIEEEAC8B.kir", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator integral gain (KIR) (>= 0). Typical value = 5." },
2359            AttrDef { id: "ExcIEEEAC8B.kpr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator proportional gain (KPR) (> 0 if ExcIEEEAC8B.kir = 0). Typical value = 80." },
2360            AttrDef { id: "ExcIEEEAC8B.seve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, VE1, back of commutating reactance (SE[VE1]) (>= 0). Typical value = 0,3." },
2361            AttrDef { id: "ExcIEEEAC8B.seve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, VE2, back of commutating reactance (SE[VE2]) (>= 0). Typical value = 3." },
2362            AttrDef { id: "ExcIEEEAC8B.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TA) (>= 0). Typical value = 0." },
2363            AttrDef { id: "ExcIEEEAC8B.tdr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag time constant (TDR) (> 0). Typical value = 0,1." },
2364            AttrDef { id: "ExcIEEEAC8B.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (TE) (> 0). Typical value = 1,2." },
2365            AttrDef { id: "ExcIEEEAC8B.ve1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (VE1) (> 0). Typical value = 6,5." },
2366            AttrDef { id: "ExcIEEEAC8B.ve2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter alternator output voltages back of commutating reactance at which saturation is defined (VE2) (> 0). Typical value = 9." },
2367            AttrDef { id: "ExcIEEEAC8B.vemin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum exciter voltage output (VEMIN) (<= 0). Typical value = 0." },
2368            AttrDef { id: "ExcIEEEAC8B.vfemax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter field current limit reference (VFEMAX). Typical value = 6." },
2369            AttrDef { id: "ExcIEEEAC8B.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (VRMAX) (> 0). Typical value = 35." },
2370            AttrDef { id: "ExcIEEEAC8B.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (VRMIN) (<= 0). Typical value = 0." },
2371        ],
2372    },
2373    ClassDef {
2374        ns: "http://iec.ch/TC57/CIM100#",
2375        local: "ExcIEEEDC1A",
2376        qualified: "ExcIEEEDC1A",
2377        super_class: Some(161),
2378        concrete: true,
2379        origins: &["DY"],
2380        comment: "IEEE 421.5-2005 type DC1A model. This model represents field-controlled DC commutator exciters with continuously acting voltage regulators (especially the direct-acting rheostatic, rotating amplifier, and magnetic amplifier types). Because this model has been widely implemented by the industry, it is sometimes used to represent other types of systems when detailed data for them are not available or when a simplified model is required. Reference: IEEE 421.5-2005, 5.1.",
2381        attrs: &[
2382            AttrDef { id: "ExcIEEEDC1A.efd1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter voltage at which exciter saturation is defined (EFD1) (> 0). Typical value = 3,1." },
2383            AttrDef { id: "ExcIEEEDC1A.efd2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter voltage at which exciter saturation is defined (EFD2) (> 0). Typical value = 2,3." },
2384            AttrDef { id: "ExcIEEEDC1A.exclim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "(exclim). IEEE standard is ambiguous about lower limit on exciter output. true = a lower limit of zero is applied to integrator output false = a lower limit of zero is not applied to integrator output. Typical value = true." },
2385            AttrDef { id: "ExcIEEEDC1A.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (KA) (> 0). Typical value = 46." },
2386            AttrDef { id: "ExcIEEEDC1A.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (KE). Typical value = 0." },
2387            AttrDef { id: "ExcIEEEDC1A.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gain (KF) (>= 0). Typical value = 0.1." },
2388            AttrDef { id: "ExcIEEEDC1A.seefd1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, EFD1 (SE[EFD1]) (>= 0). Typical value = 0.33." },
2389            AttrDef { id: "ExcIEEEDC1A.seefd2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, EFD2 (SE[EFD2]) (>= 0). Typical value = 0,1." },
2390            AttrDef { id: "ExcIEEEDC1A.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TA) (> 0). Typical value = 0,06." },
2391            AttrDef { id: "ExcIEEEDC1A.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TB) (>= 0). Typical value = 0." },
2392            AttrDef { id: "ExcIEEEDC1A.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TC) (>= 0). Typical value = 0." },
2393            AttrDef { id: "ExcIEEEDC1A.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (TE) (> 0). Typical value = 0,46." },
2394            AttrDef { id: "ExcIEEEDC1A.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (TF) (> 0). Typical value = 1." },
2395            AttrDef { id: "ExcIEEEDC1A.uelin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "UEL input (uelin). true = input is connected to the HV gate false = input connects to the error signal. Typical value = true." },
2396            AttrDef { id: "ExcIEEEDC1A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (VRMAX) (> ExcIEEEDC1A.vrmin). Typical value = 1." },
2397            AttrDef { id: "ExcIEEEDC1A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (VRMIN) (< 0 and < ExcIEEEDC1A.vrmax). Typical value = -0,9." },
2398        ],
2399    },
2400    ClassDef {
2401        ns: "http://iec.ch/TC57/CIM100#",
2402        local: "ExcIEEEDC2A",
2403        qualified: "ExcIEEEDC2A",
2404        super_class: Some(161),
2405        concrete: true,
2406        origins: &["DY"],
2407        comment: "IEEE 421.5-2005 type DC2A model. This model represents field-controlled DC commutator exciters with continuously acting voltage regulators having supplies obtained from the generator or auxiliary bus. It differs from the type DC1A model only in the voltage regulator output limits, which are now proportional to terminal voltage VT. It is representative of solid-state replacements for various forms of older mechanical and rotating amplifier regulating equipment connected to DC commutator exciters. Reference: IEEE 421.5-2005, 5.2.",
2408        attrs: &[
2409            AttrDef { id: "ExcIEEEDC2A.efd1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter voltage at which exciter saturation is defined (EFD1) (> 0). Typical value = 3,05." },
2410            AttrDef { id: "ExcIEEEDC2A.efd2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter voltage at which exciter saturation is defined (EFD2) (> 0). Typical value = 2,29." },
2411            AttrDef { id: "ExcIEEEDC2A.exclim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "(exclim). IEEE standard is ambiguous about lower limit on exciter output. Typical value = - 999 which means that there is no limit applied." },
2412            AttrDef { id: "ExcIEEEDC2A.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (KA) (> 0). Typical value = 300." },
2413            AttrDef { id: "ExcIEEEDC2A.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (KE). Typical value = 1." },
2414            AttrDef { id: "ExcIEEEDC2A.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gain (KF) (>= 0). Typical value = 0,1." },
2415            AttrDef { id: "ExcIEEEDC2A.seefd1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, EFD1 (SE[EFD1]) (>= 0). Typical value = 0,279." },
2416            AttrDef { id: "ExcIEEEDC2A.seefd2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, EFD2 (SE[EFD2]) (>= 0). Typical value = 0,117." },
2417            AttrDef { id: "ExcIEEEDC2A.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TA) (> 0). Typical value = 0,01." },
2418            AttrDef { id: "ExcIEEEDC2A.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TB) (>= 0). Typical value = 0." },
2419            AttrDef { id: "ExcIEEEDC2A.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TC) (>= 0). Typical value = 0." },
2420            AttrDef { id: "ExcIEEEDC2A.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (TE) (> 0). Typical value = 1,33." },
2421            AttrDef { id: "ExcIEEEDC2A.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (TF) (> 0). Typical value = 0,675." },
2422            AttrDef { id: "ExcIEEEDC2A.uelin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "UEL input (uelin). true = input is connected to the HV gate false = input connects to the error signal. Typical value = true." },
2423            AttrDef { id: "ExcIEEEDC2A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (VRMAX)(> ExcIEEEDC2A.vrmin). Typical value = 4,95." },
2424            AttrDef { id: "ExcIEEEDC2A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (VRMIN) (< 0 and < ExcIEEEDC2A.vrmax). Typical value = -4,9." },
2425        ],
2426    },
2427    ClassDef {
2428        ns: "http://iec.ch/TC57/CIM100#",
2429        local: "ExcIEEEDC3A",
2430        qualified: "ExcIEEEDC3A",
2431        super_class: Some(161),
2432        concrete: true,
2433        origins: &["DY"],
2434        comment: "IEEE 421.5-2005 type DC3A model. This model represents older systems, in particular those DC commutator exciters with non-continuously acting regulators that were commonly used before the development of the continuously acting varieties. These systems respond at basically two different rates, depending upon the magnitude of voltage error. For small errors, adjustment is made periodically with a signal to a motor-operated rheostat. Larger errors cause resistors to be quickly shorted or inserted and a strong forcing signal applied to the exciter. Continuous motion of the motor-operated rheostat occurs for these larger error signals, even though it is bypassed by contactor action. Reference: IEEE 421.5-2005, 5.3.",
2435        attrs: &[
2436            AttrDef { id: "ExcIEEEDC3A.efd1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter voltage at which exciter saturation is defined (EFD1) (> 0). Typical value = 3,375." },
2437            AttrDef { id: "ExcIEEEDC3A.efd2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter voltage at which exciter saturation is defined (EFD2) (> 0). Typical value = 3,15." },
2438            AttrDef { id: "ExcIEEEDC3A.exclim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "(exclim). IEEE standard is ambiguous about lower limit on exciter output. true = a lower limit of zero is applied to integrator output false = a lower limit of zero is not applied to integrator output. Typical value = true." },
2439            AttrDef { id: "ExcIEEEDC3A.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (KE). Typical value = 0,05." },
2440            AttrDef { id: "ExcIEEEDC3A.kv", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fast raise/lower contact setting (KV) (> 0). Typical value = 0,05." },
2441            AttrDef { id: "ExcIEEEDC3A.seefd1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, EFD1 (SE[EFD1]) (>= 0). Typical value = 0,267." },
2442            AttrDef { id: "ExcIEEEDC3A.seefd2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, EFD2 (SE[EFD2]) (>= 0). Typical value = 0,068." },
2443            AttrDef { id: "ExcIEEEDC3A.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (TE) (> 0). Typical value = 0,5." },
2444            AttrDef { id: "ExcIEEEDC3A.trh", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rheostat travel time (TRH) (> 0). Typical value = 20." },
2445            AttrDef { id: "ExcIEEEDC3A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (VRMAX) (> 0). Typical value = 1." },
2446            AttrDef { id: "ExcIEEEDC3A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (VRMIN) (<= 0). Typical value = 0." },
2447        ],
2448    },
2449    ClassDef {
2450        ns: "http://iec.ch/TC57/CIM100#",
2451        local: "ExcIEEEDC4B",
2452        qualified: "ExcIEEEDC4B",
2453        super_class: Some(161),
2454        concrete: true,
2455        origins: &["DY"],
2456        comment: "IEEE 421.5-2005 type DC4B model. These excitation systems utilize a field-controlled DC commutator exciter with a continuously acting voltage regulator having supplies obtained from the generator or auxiliary bus. Reference: IEEE 421.5-2005, 5.4.",
2457        attrs: &[
2458            AttrDef { id: "ExcIEEEDC4B.efd1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter voltage at which exciter saturation is defined (EFD1) (> 0). Typical value = 1,75." },
2459            AttrDef { id: "ExcIEEEDC4B.efd2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter voltage at which exciter saturation is defined (EFD2) (> 0). Typical value = 2,33." },
2460            AttrDef { id: "ExcIEEEDC4B.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (KA) (> 0). Typical value = 1." },
2461            AttrDef { id: "ExcIEEEDC4B.kd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Regulator derivative gain (KD) (>= 0). Typical value = 20." },
2462            AttrDef { id: "ExcIEEEDC4B.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (KE). Typical value = 1." },
2463            AttrDef { id: "ExcIEEEDC4B.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gain (KF) (>= 0). Typical value = 0." },
2464            AttrDef { id: "ExcIEEEDC4B.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Regulator integral gain (KI) (>= 0). Typical value = 20." },
2465            AttrDef { id: "ExcIEEEDC4B.kp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Regulator proportional gain (KP) (>= 0). Typical value = 20." },
2466            AttrDef { id: "ExcIEEEDC4B.oelin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "OEL input (OELin). true = LV gate false = subtract from error signal. Typical value = true." },
2467            AttrDef { id: "ExcIEEEDC4B.seefd1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, EFD1 (SE[EFD1]) (>= 0). Typical value = 0,08." },
2468            AttrDef { id: "ExcIEEEDC4B.seefd2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter saturation function value at the corresponding exciter voltage, EFD2 (SE[EFD2]) (>= 0). Typical value = 0,27." },
2469            AttrDef { id: "ExcIEEEDC4B.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TA) (> 0). Typical value = 0,2." },
2470            AttrDef { id: "ExcIEEEDC4B.td", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Regulator derivative filter time constant (TD) (> 0 if ExcIEEEDC4B.kd > 0). Typical value = 0,01." },
2471            AttrDef { id: "ExcIEEEDC4B.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (TE) (> 0). Typical value = 0,8." },
2472            AttrDef { id: "ExcIEEEDC4B.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (TF) (>= 0). Typical value = 1." },
2473            AttrDef { id: "ExcIEEEDC4B.uelin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "UEL input (UELin). true = HV gate false = add to error signal. Typical value = true." },
2474            AttrDef { id: "ExcIEEEDC4B.vemin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum exciter voltage output (VEMIN) (<= 0). Typical value = 0." },
2475            AttrDef { id: "ExcIEEEDC4B.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (VRMAX) (> ExcIEEEDC4B.vrmin). Typical value = 2,7." },
2476            AttrDef { id: "ExcIEEEDC4B.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (VRMIN) (<= 0 and < ExcIEEEDC4B.vrmax). Typical value = -0,9." },
2477        ],
2478    },
2479    ClassDef {
2480        ns: "http://iec.ch/TC57/CIM100#",
2481        local: "ExcIEEEST1A",
2482        qualified: "ExcIEEEST1A",
2483        super_class: Some(161),
2484        concrete: true,
2485        origins: &["DY"],
2486        comment: "IEEE 421.5-2005 type ST1A model. This model represents systems in which excitation power is supplied through a transformer from the generator terminals (or the unit’s auxiliary bus) and is regulated by a controlled rectifier. The maximum exciter voltage available from such systems is directly related to the generator terminal voltage. Reference: IEEE 421.5-2005, 7.1.",
2487        attrs: &[
2488            AttrDef { id: "ExcIEEEST1A.ilr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter output current limit reference (ILR). Typical value = 0." },
2489            AttrDef { id: "ExcIEEEST1A.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (KA) (> 0). Typical value = 190." },
2490            AttrDef { id: "ExcIEEEST1A.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier loading factor proportional to commutating reactance (KC) (>= 0). Typical value = 0,08." },
2491            AttrDef { id: "ExcIEEEST1A.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gains (KF) (>= 0). Typical value = 0." },
2492            AttrDef { id: "ExcIEEEST1A.klr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter output current limiter gain (KLR). Typical value = 0." },
2493            AttrDef { id: "ExcIEEEST1A.pssin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Selector of the Power System Stabilizer (PSS) input (PSSin). true = PSS input (Vs) added to error signal false = PSS input (Vs) added to voltage regulator output. Typical value = true." },
2494            AttrDef { id: "ExcIEEEST1A.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TA) (>= 0). Typical value = 0." },
2495            AttrDef { id: "ExcIEEEST1A.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TB) (>= 0). Typical value = 10." },
2496            AttrDef { id: "ExcIEEEST1A.tb1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TB1) (>= 0). Typical value = 0." },
2497            AttrDef { id: "ExcIEEEST1A.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TC) (>= 0). Typical value = 1." },
2498            AttrDef { id: "ExcIEEEST1A.tc1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TC1) (>= 0). Typical value = 0." },
2499            AttrDef { id: "ExcIEEEST1A.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (TF) (>= 0). Typical value = 1." },
2500            AttrDef { id: "ExcIEEEST1A.uelin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "ExcIEEEST1AUELselectorKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Selector of the connection of the UEL input (UELin). Typical value = ignoreUELsignal." },
2501            AttrDef { id: "ExcIEEEST1A.vamax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (VAMAX) (> 0). Typical value = 14,5." },
2502            AttrDef { id: "ExcIEEEST1A.vamin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (VAMIN) (< 0). Typical value = -14,5." },
2503            AttrDef { id: "ExcIEEEST1A.vimax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator input limit (VIMAX) (> 0). Typical value = 999." },
2504            AttrDef { id: "ExcIEEEST1A.vimin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator input limit (VIMIN) (< 0). Typical value = -999." },
2505            AttrDef { id: "ExcIEEEST1A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator outputs (VRMAX) (> 0). Typical value = 7,8." },
2506            AttrDef { id: "ExcIEEEST1A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator outputs (VRMIN) (< 0). Typical value = -6,7." },
2507        ],
2508    },
2509    ClassDef {
2510        ns: "http://iec.ch/TC57/CIM100#",
2511        local: "ExcIEEEST2A",
2512        qualified: "ExcIEEEST2A",
2513        super_class: Some(161),
2514        concrete: true,
2515        origins: &["DY"],
2516        comment: "IEEE 421.5-2005 type ST2A model. Some static systems use both current and voltage sources (generator terminal quantities) to comprise the power source. The regulator controls the exciter output through controlled saturation of the power transformer components. These compound-source rectifier excitation systems are designated type ST2A and are represented by ExcIEEEST2A. Reference: IEEE 421.5-2005, 7.2.",
2517        attrs: &[
2518            AttrDef { id: "ExcIEEEST2A.efdmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum field voltage (EFDMax) (>= 0). Typical value = 99." },
2519            AttrDef { id: "ExcIEEEST2A.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (KA) (> 0). Typical value = 120." },
2520            AttrDef { id: "ExcIEEEST2A.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier loading factor proportional to commutating reactance (KC) (>= 0). Typical value = 1,82." },
2521            AttrDef { id: "ExcIEEEST2A.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (KE). Typical value = 1." },
2522            AttrDef { id: "ExcIEEEST2A.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gains (KF) (>= 0). Typical value = 0,05." },
2523            AttrDef { id: "ExcIEEEST2A.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Potential circuit gain coefficient (KI) (>= 0). Typical value = 8." },
2524            AttrDef { id: "ExcIEEEST2A.kp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Potential circuit gain coefficient (KP) (>= 0). Typical value = 4,88." },
2525            AttrDef { id: "ExcIEEEST2A.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TA) (> 0). Typical value = 0,15." },
2526            AttrDef { id: "ExcIEEEST2A.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (TE) (> 0). Typical value = 0,5." },
2527            AttrDef { id: "ExcIEEEST2A.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (TF) (>= 0). Typical value = 1." },
2528            AttrDef { id: "ExcIEEEST2A.uelin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "UEL input (UELin). true = HV gate false = add to error signal. Typical value = true." },
2529            AttrDef { id: "ExcIEEEST2A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator outputs (VRMAX) (> 0). Typical value = 1." },
2530            AttrDef { id: "ExcIEEEST2A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator outputs (VRMIN) (<= 0). Typical value = 0." },
2531        ],
2532    },
2533    ClassDef {
2534        ns: "http://iec.ch/TC57/CIM100#",
2535        local: "ExcIEEEST3A",
2536        qualified: "ExcIEEEST3A",
2537        super_class: Some(161),
2538        concrete: true,
2539        origins: &["DY"],
2540        comment: "IEEE 421.5-2005 type ST3A model. Some static systems utilize a field voltage control loop to linearize the exciter control characteristic. This also makes the output independent of supply source variations until supply limitations are reached. These systems utilize a variety of controlled-rectifier designs: full thyristor complements or hybrid bridges in either series or shunt configurations. The power source can consist of only a potential source, either fed from the machine terminals or from internal windings. Some designs can have compound power sources utilizing both machine potential and current. These power sources are represented as phasor combinations of machine terminal current and voltage and are accommodated by suitable parameters in model type ST3A which is represented by ExcIEEEST3A. Reference: IEEE 421.5-2005, 7.3.",
2541        attrs: &[
2542            AttrDef { id: "ExcIEEEST3A.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (KA) (> 0). This is parameter K in the IEEE standard. Typical value = 200." },
2543            AttrDef { id: "ExcIEEEST3A.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier loading factor proportional to commutating reactance (KC) (>= 0). Typical value = 0,2." },
2544            AttrDef { id: "ExcIEEEST3A.kg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Feedback gain constant of the inner loop field regulator (KG) (>= 0). Typical value = 1." },
2545            AttrDef { id: "ExcIEEEST3A.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Potential circuit gain coefficient (KI) (>= 0). Typical value = 0." },
2546            AttrDef { id: "ExcIEEEST3A.km", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Forward gain constant of the inner loop field regulator (KM) (> 0). Typical value = 7,93." },
2547            AttrDef { id: "ExcIEEEST3A.kp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Potential circuit gain coefficient (KP) (> 0). Typical value = 6,15." },
2548            AttrDef { id: "ExcIEEEST3A.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TA) (>= 0). Typical value = 0." },
2549            AttrDef { id: "ExcIEEEST3A.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TB) (>= 0). Typical value = 10." },
2550            AttrDef { id: "ExcIEEEST3A.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TC) (>= 0). Typical value = 1." },
2551            AttrDef { id: "ExcIEEEST3A.thetap", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Potential circuit phase angle (thetap). Typical value = 0." },
2552            AttrDef { id: "ExcIEEEST3A.tm", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Forward time constant of inner loop field regulator (TM) (> 0). Typical value = 0,4." },
2553            AttrDef { id: "ExcIEEEST3A.vbmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum excitation voltage (VBMax) (> 0). Typical value = 6,9." },
2554            AttrDef { id: "ExcIEEEST3A.vgmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum inner loop feedback voltage (VGMax) (>= 0). Typical value = 5,8." },
2555            AttrDef { id: "ExcIEEEST3A.vimax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator input limit (VIMAX) (> 0). Typical value = 0,2." },
2556            AttrDef { id: "ExcIEEEST3A.vimin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator input limit (VIMIN) (< 0). Typical value = -0,2." },
2557            AttrDef { id: "ExcIEEEST3A.vmmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum inner loop output (VMMax) (> 0). Typical value = 1." },
2558            AttrDef { id: "ExcIEEEST3A.vmmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum inner loop output (VMMin) (<= 0). Typical value = 0." },
2559            AttrDef { id: "ExcIEEEST3A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (VRMAX) (> 0). Typical value = 10." },
2560            AttrDef { id: "ExcIEEEST3A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (VRMIN) (< 0). Typical value = -10." },
2561            AttrDef { id: "ExcIEEEST3A.xl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactance associated with potential source (XL) (>= 0). Typical value = 0,081." },
2562        ],
2563    },
2564    ClassDef {
2565        ns: "http://iec.ch/TC57/CIM100#",
2566        local: "ExcIEEEST4B",
2567        qualified: "ExcIEEEST4B",
2568        super_class: Some(161),
2569        concrete: true,
2570        origins: &["DY"],
2571        comment: "IEEE 421.5-2005 type ST4B model. This model is a variation of the type ST3A model, with a proportional plus integral (PI) regulator block replacing the lag-lead regulator characteristic that is in the ST3A model. Both potential and compound source rectifier excitation systems are modelled. The PI regulator blocks have non-windup limits that are represented. The voltage regulator of this model is typically implemented digitally. Reference: IEEE 421.5-2005, 7.4.",
2572        attrs: &[
2573            AttrDef { id: "ExcIEEEST4B.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier loading factor proportional to commutating reactance (KC) (>= 0). Typical value = 0,113." },
2574            AttrDef { id: "ExcIEEEST4B.kg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Feedback gain constant of the inner loop field regulator (KG) (>= 0). Typical value = 0." },
2575            AttrDef { id: "ExcIEEEST4B.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Potential circuit gain coefficient (KI) (>= 0). Typical value = 0." },
2576            AttrDef { id: "ExcIEEEST4B.kim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator integral gain output (KIM). Typical value = 0." },
2577            AttrDef { id: "ExcIEEEST4B.kir", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator integral gain (KIR). Typical value = 10,75." },
2578            AttrDef { id: "ExcIEEEST4B.kp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Potential circuit gain coefficient (KP) (> 0). Typical value = 9,3." },
2579            AttrDef { id: "ExcIEEEST4B.kpm", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator proportional gain output (KPM). Typical value = 1." },
2580            AttrDef { id: "ExcIEEEST4B.kpr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator proportional gain (KPR). Typical value = 10,75." },
2581            AttrDef { id: "ExcIEEEST4B.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (TA) (>= 0). Typical value = 0,02." },
2582            AttrDef { id: "ExcIEEEST4B.thetap", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Potential circuit phase angle (thetap). Typical value = 0." },
2583            AttrDef { id: "ExcIEEEST4B.vbmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum excitation voltage (VBMax) (> 0). Typical value = 11,63." },
2584            AttrDef { id: "ExcIEEEST4B.vmmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum inner loop output (VMMax) (> ExcIEEEST4B.vmmin). Typical value = 99." },
2585            AttrDef { id: "ExcIEEEST4B.vmmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum inner loop output (VMMin) (< ExcIEEEST4B.vmmax). Typical value = -99." },
2586            AttrDef { id: "ExcIEEEST4B.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (VRMAX) (> 0). Typical value = 1." },
2587            AttrDef { id: "ExcIEEEST4B.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (VRMIN) (< 0). Typical value = -0,87." },
2588            AttrDef { id: "ExcIEEEST4B.xl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactance associated with potential source (XL) (>= 0). Typical value = 0,124." },
2589        ],
2590    },
2591    ClassDef {
2592        ns: "http://iec.ch/TC57/CIM100#",
2593        local: "ExcIEEEST5B",
2594        qualified: "ExcIEEEST5B",
2595        super_class: Some(161),
2596        concrete: true,
2597        origins: &["DY"],
2598        comment: "IEEE 421.5-2005 type ST5B model. The type ST5B excitation system is a variation of the type ST1A model, with alternative overexcitation and underexcitation inputs and additional limits. The block diagram in the IEEE 421.5 standard has input signal Vc and does not indicate the summation point with Vref. The implementation of the ExcIEEEST5B shall consider summation point with Vref. Reference: IEEE 421.5-2005, 7.5.",
2599        attrs: &[
2600            AttrDef { id: "ExcIEEEST5B.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier regulation factor (KC) (>= 0). Typical value = 0,004." },
2601            AttrDef { id: "ExcIEEEST5B.kr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Regulator gain (KR) (> 0). Typical value = 200." },
2602            AttrDef { id: "ExcIEEEST5B.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Firing circuit time constant (T1) (>= 0). Typical value = 0,004." },
2603            AttrDef { id: "ExcIEEEST5B.tb1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Regulator lag time constant (TB1) (>= 0). Typical value = 6." },
2604            AttrDef { id: "ExcIEEEST5B.tb2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Regulator lag time constant (TB2) (>= 0). Typical value = 0,01." },
2605            AttrDef { id: "ExcIEEEST5B.tc1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Regulator lead time constant (TC1) (>= 0). Typical value = 0,8." },
2606            AttrDef { id: "ExcIEEEST5B.tc2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Regulator lead time constant (TC2) (>= 0). Typical value = 0,08." },
2607            AttrDef { id: "ExcIEEEST5B.tob1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "OEL lag time constant (TOB1) (>= 0). Typical value = 2." },
2608            AttrDef { id: "ExcIEEEST5B.tob2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "OEL lag time constant (TOB2) (>= 0). Typical value = 0,08." },
2609            AttrDef { id: "ExcIEEEST5B.toc1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "OEL lead time constant (TOC1) (>= 0). Typical value = 0,1." },
2610            AttrDef { id: "ExcIEEEST5B.toc2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "OEL lead time constant (TOC2) (>= 0). Typical value = 0,08." },
2611            AttrDef { id: "ExcIEEEST5B.tub1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL lag time constant (TUB1) (>= 0). Typical value = 10." },
2612            AttrDef { id: "ExcIEEEST5B.tub2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL lag time constant (TUB2) (>= 0). Typical value = 0,05." },
2613            AttrDef { id: "ExcIEEEST5B.tuc1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL lead time constant (TUC1) (>= 0). Typical value = 2." },
2614            AttrDef { id: "ExcIEEEST5B.tuc2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL lead time constant (TUC2) (>= 0). Typical value = 0,1." },
2615            AttrDef { id: "ExcIEEEST5B.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (VRMAX) (> 0). Typical value = 5." },
2616            AttrDef { id: "ExcIEEEST5B.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (VRMIN) (< 0). Typical value = -4." },
2617        ],
2618    },
2619    ClassDef {
2620        ns: "http://iec.ch/TC57/CIM100#",
2621        local: "ExcIEEEST6B",
2622        qualified: "ExcIEEEST6B",
2623        super_class: Some(161),
2624        concrete: true,
2625        origins: &["DY"],
2626        comment: "IEEE 421.5-2005 type ST6B model. This model consists of a PI voltage regulator with an inner loop field voltage regulator and pre-control. The field voltage regulator implements a proportional control. The pre-control and the delay in the feedback circuit increase the dynamic response. Reference: IEEE 421.5-2005, 7.6.",
2627        attrs: &[
2628            AttrDef { id: "ExcIEEEST6B.ilr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter output current limit reference (ILR) (> 0). Typical value = 4,164." },
2629            AttrDef { id: "ExcIEEEST6B.kci", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter output current limit adjustment (KCI) (> 0). Typical value = 1,0577." },
2630            AttrDef { id: "ExcIEEEST6B.kff", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Pre-control gain constant of the inner loop field regulator (KFF). Typical value = 1." },
2631            AttrDef { id: "ExcIEEEST6B.kg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Feedback gain constant of the inner loop field regulator (KG) (>= 0). Typical value = 1." },
2632            AttrDef { id: "ExcIEEEST6B.kia", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator integral gain (KIA) (> 0). Typical value = 45,094." },
2633            AttrDef { id: "ExcIEEEST6B.klr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter output current limiter gain (KLR) (> 0). Typical value = 17,33." },
2634            AttrDef { id: "ExcIEEEST6B.km", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Forward gain constant of the inner loop field regulator (KM). Typical value = 1." },
2635            AttrDef { id: "ExcIEEEST6B.kpa", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator proportional gain (KPA) (> 0). Typical value = 18,038." },
2636            AttrDef { id: "ExcIEEEST6B.oelin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "ExcST6BOELselectorKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "OEL input selector (OELin). Typical value = noOELinput." },
2637            AttrDef { id: "ExcIEEEST6B.tg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Feedback time constant of inner loop field voltage regulator (TG) (>= 0). Typical value = 0,02." },
2638            AttrDef { id: "ExcIEEEST6B.vamax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (VAMAX) (> 0). Typical value = 4,81." },
2639            AttrDef { id: "ExcIEEEST6B.vamin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (VAMIN) (< 0). Typical value = -3,85." },
2640            AttrDef { id: "ExcIEEEST6B.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (VRMAX) (> 0). Typical value = 4,81." },
2641            AttrDef { id: "ExcIEEEST6B.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (VRMIN) (< 0). Typical value = -3,85." },
2642        ],
2643    },
2644    ClassDef {
2645        ns: "http://iec.ch/TC57/CIM100#",
2646        local: "ExcIEEEST7B",
2647        qualified: "ExcIEEEST7B",
2648        super_class: Some(161),
2649        concrete: true,
2650        origins: &["DY"],
2651        comment: "IEEE 421.5-2005 type ST7B model. This model is representative of static potential-source excitation systems. In this system, the AVR consists of a PI voltage regulator. A phase lead-lag filter in series allows the introduction of a derivative function, typically used with brushless excitation systems. In that case, the regulator is of the PID type. In addition, the terminal voltage channel includes a phase lead-lag filter. The AVR includes the appropriate inputs on its reference for overexcitation limiter (OEL1), underexcitation limiter (UEL), stator current limiter (SCL), and current compensator (DROOP). All these limitations, when they work at voltage reference level, keep the PSS (VS signal from PSS) in operation. However, the UEL limitation can also be transferred to the high value (HV) gate acting on the output signal. In addition, the output signal passes through a low value (LV) gate for a ceiling overexcitation limiter (OEL2). Reference: IEEE 421.5-2005, 7.7.",
2652        attrs: &[
2653            AttrDef { id: "ExcIEEEST7B.kh", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High-value gate feedback gain (KH) (>= 0). Typical value = 1." },
2654            AttrDef { id: "ExcIEEEST7B.kia", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator integral gain (KIA) (>= 0). Typical value = 1." },
2655            AttrDef { id: "ExcIEEEST7B.kl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low-value gate feedback gain (KL) (>= 0). Typical value = 1." },
2656            AttrDef { id: "ExcIEEEST7B.kpa", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator proportional gain (KPA) (> 0). Typical value = 40." },
2657            AttrDef { id: "ExcIEEEST7B.oelin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "ExcST7BOELselectorKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "OEL input selector (OELin). Typical value = noOELinput." },
2658            AttrDef { id: "ExcIEEEST7B.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Regulator lag time constant (TB) (>= 0). Typical value = 1." },
2659            AttrDef { id: "ExcIEEEST7B.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Regulator lead time constant (TC) (>= 0). Typical value = 1." },
2660            AttrDef { id: "ExcIEEEST7B.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (TF) (>= 0). Typical value = 1." },
2661            AttrDef { id: "ExcIEEEST7B.tg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Feedback time constant of inner loop field voltage regulator (TG) (>= 0). Typical value = 1." },
2662            AttrDef { id: "ExcIEEEST7B.tia", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Feedback time constant (TIA) (>= 0). Typical value = 3." },
2663            AttrDef { id: "ExcIEEEST7B.uelin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "ExcST7BUELselectorKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "UEL input selector (UELin). Typical value = noUELinput." },
2664            AttrDef { id: "ExcIEEEST7B.vmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage reference signal (VMAX) (> 0 and > ExcIEEEST7B.vmin). Typical value = 1,1." },
2665            AttrDef { id: "ExcIEEEST7B.vmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage reference signal (VMIN) (> 0 and < ExcIEEEST7B.vmax). Typical value = 0,9." },
2666            AttrDef { id: "ExcIEEEST7B.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (VRMAX) (> 0). Typical value = 5." },
2667            AttrDef { id: "ExcIEEEST7B.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (VRMIN) (< 0). Typical value = -4,5." },
2668        ],
2669    },
2670    ClassDef {
2671        ns: "http://iec.ch/TC57/CIM100#",
2672        local: "ExcNI",
2673        qualified: "ExcNI",
2674        super_class: Some(161),
2675        concrete: true,
2676        origins: &["DY"],
2677        comment: "Bus or solid fed SCR (silicon-controlled rectifier) bridge excitation system model type NI (NVE).",
2678        attrs: &[
2679            AttrDef { id: "ExcNI.busFedSelector", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Fed by selector (BusFedSelector). true = bus fed (switch is closed) false = solid fed (switch is open). Typical value = true." },
2680            AttrDef { id: "ExcNI.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (Ka) (> 0). Typical value = 210." },
2681            AttrDef { id: "ExcNI.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gain (Kf) (> 0). Typical value 0,01." },
2682            AttrDef { id: "ExcNI.r", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "rc / rfd (R) (>= 0). 0 means exciter has negative current capability > 0 means exciter does not have negative current capability. Typical value = 5." },
2683            AttrDef { id: "ExcNI.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Ta) (> 0). Typical value = 0,02." },
2684            AttrDef { id: "ExcNI.tf1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (Tf1) (> 0). Typical value = 1,0." },
2685            AttrDef { id: "ExcNI.tf2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (Tf2) (> 0). Typical value = 0,1." },
2686            AttrDef { id: "ExcNI.tr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Tr) (>= 0). Typical value = 0,02." },
2687            AttrDef { id: "ExcNI.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator ouput (Vrmax) (> ExcNI.vrmin). Typical value = 5,0." },
2688            AttrDef { id: "ExcNI.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator ouput (Vrmin) (< ExcNI.vrmax). Typical value = -2,0." },
2689        ],
2690    },
2691    ClassDef {
2692        ns: "http://iec.ch/TC57/CIM100#",
2693        local: "ExcOEX3T",
2694        qualified: "ExcOEX3T",
2695        super_class: Some(161),
2696        concrete: true,
2697        origins: &["DY"],
2698        comment: "Modified IEEE type ST1 excitation system with semi-continuous and acting terminal voltage limiter.",
2699        attrs: &[
2700            AttrDef { id: "ExcOEX3T.e1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Saturation parameter (E1)." },
2701            AttrDef { id: "ExcOEX3T.e2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Saturation parameter (E2)." },
2702            AttrDef { id: "ExcOEX3T.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (KA)." },
2703            AttrDef { id: "ExcOEX3T.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (KC)." },
2704            AttrDef { id: "ExcOEX3T.kd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (KD)." },
2705            AttrDef { id: "ExcOEX3T.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (KE)." },
2706            AttrDef { id: "ExcOEX3T.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (KF)." },
2707            AttrDef { id: "ExcOEX3T.see1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Saturation parameter (SE[E1])." },
2708            AttrDef { id: "ExcOEX3T.see2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Saturation parameter (SE[E2])." },
2709            AttrDef { id: "ExcOEX3T.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T1) (>= 0)." },
2710            AttrDef { id: "ExcOEX3T.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T2) (>= 0)." },
2711            AttrDef { id: "ExcOEX3T.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T3) (>= 0)." },
2712            AttrDef { id: "ExcOEX3T.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T4) (>= 0)." },
2713            AttrDef { id: "ExcOEX3T.t5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T5) (>= 0)." },
2714            AttrDef { id: "ExcOEX3T.t6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T6) (>= 0)." },
2715            AttrDef { id: "ExcOEX3T.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (TE) (>= 0)." },
2716            AttrDef { id: "ExcOEX3T.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (TF) (>= 0)." },
2717            AttrDef { id: "ExcOEX3T.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limiter (VRMAX) (> ExcOEX3T.vrmin)." },
2718            AttrDef { id: "ExcOEX3T.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limiter (VRMIN) (< ExcOEX3T.vrmax)." },
2719        ],
2720    },
2721    ClassDef {
2722        ns: "http://iec.ch/TC57/CIM100#",
2723        local: "ExcPIC",
2724        qualified: "ExcPIC",
2725        super_class: Some(161),
2726        concrete: true,
2727        origins: &["DY"],
2728        comment: "Proportional/integral regulator excitation system. This model can be used to represent excitation systems with a proportional-integral (PI) voltage regulator controller.",
2729        attrs: &[
2730            AttrDef { id: "ExcPIC.e1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field voltage value 1 (E1). Typical value = 0." },
2731            AttrDef { id: "ExcPIC.e2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field voltage value 2 (E2). Typical value = 0." },
2732            AttrDef { id: "ExcPIC.efdmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter maximum limit (Efdmax) (> ExcPIC.efdmin). Typical value = 8." },
2733            AttrDef { id: "ExcPIC.efdmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter minimum limit (Efdmin) (< ExcPIC.efdmax). Typical value = -0,87." },
2734            AttrDef { id: "ExcPIC.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PI controller gain (Ka). Typical value = 3,15." },
2735            AttrDef { id: "ExcPIC.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter regulation factor (Kc). Typical value = 0,08." },
2736            AttrDef { id: "ExcPIC.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant (Ke). Typical value = 0." },
2737            AttrDef { id: "ExcPIC.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rate feedback gain (Kf). Typical value = 0." },
2738            AttrDef { id: "ExcPIC.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Current source gain (Ki). Typical value = 0." },
2739            AttrDef { id: "ExcPIC.kp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Potential source gain (Kp). Typical value = 6,5." },
2740            AttrDef { id: "ExcPIC.se1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Saturation factor at E1 (Se1). Typical value = 0." },
2741            AttrDef { id: "ExcPIC.se2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Saturation factor at E2 (Se2). Typical value = 0." },
2742            AttrDef { id: "ExcPIC.ta1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PI controller time constant (Ta1) (>= 0). Typical value = 1." },
2743            AttrDef { id: "ExcPIC.ta2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Ta2) (>= 0). Typical value = 0,01." },
2744            AttrDef { id: "ExcPIC.ta3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead time constant (Ta3) (>= 0). Typical value = 0." },
2745            AttrDef { id: "ExcPIC.ta4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag time constant (Ta4) (>= 0). Typical value = 0." },
2746            AttrDef { id: "ExcPIC.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant (Te) (>= 0). Typical value = 0." },
2747            AttrDef { id: "ExcPIC.tf1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rate feedback time constant (Tf1) (>= 0). Typical value = 0." },
2748            AttrDef { id: "ExcPIC.tf2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rate feedback lag time constant (Tf2) (>= 0). Typical value = 0." },
2749            AttrDef { id: "ExcPIC.vr1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PI maximum limit (Vr1). Typical value = 1." },
2750            AttrDef { id: "ExcPIC.vr2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PI minimum limit (Vr2). Typical value = -0,87." },
2751            AttrDef { id: "ExcPIC.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator maximum limit (Vrmax) (> ExcPIC.vrmin). Typical value = 1." },
2752            AttrDef { id: "ExcPIC.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator minimum limit (Vrmin) (< ExcPIC.vrmax). Typical value = -0,87." },
2753        ],
2754    },
2755    ClassDef {
2756        ns: "http://iec.ch/TC57/CIM100#",
2757        local: "ExcREXS",
2758        qualified: "ExcREXS",
2759        super_class: Some(161),
2760        concrete: true,
2761        origins: &["DY"],
2762        comment: "General purpose rotating excitation system. This model can be used to represent a wide range of excitation systems whose DC power source is an AC or DC generator. It encompasses IEEE type AC1, AC2, DC1, and DC2 excitation system models.",
2763        attrs: &[
2764            AttrDef { id: "ExcREXS.e1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field voltage value 1 (E1). Typical value = 3." },
2765            AttrDef { id: "ExcREXS.e2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field voltage value 2 (E2). Typical value = 4." },
2766            AttrDef { id: "ExcREXS.fbf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "ExcREXSFeedbackSignalKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Rate feedback signal flag (fbf). Typical value = fieldCurrent." },
2767            AttrDef { id: "ExcREXS.flimf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limit type flag (Flimf). Typical value = 0." },
2768            AttrDef { id: "ExcREXS.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier regulation factor (Kc). Typical value = 0,05." },
2769            AttrDef { id: "ExcREXS.kd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter regulation factor (Kd). Typical value = 2." },
2770            AttrDef { id: "ExcREXS.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter field proportional constant (Ke). Typical value = 1." },
2771            AttrDef { id: "ExcREXS.kefd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field voltage feedback gain (Kefd). Typical value = 0." },
2772            AttrDef { id: "ExcREXS.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rate feedback gain (Kf) (>= 0). Typical value = 0,05." },
2773            AttrDef { id: "ExcREXS.kh", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field voltage controller feedback gain (Kh). Typical value = 0." },
2774            AttrDef { id: "ExcREXS.kii", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field current regulator integral gain (Kii). Typical value = 0." },
2775            AttrDef { id: "ExcREXS.kip", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field current regulator proportional gain (Kip). Typical value = 1." },
2776            AttrDef { id: "ExcREXS.ks", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient to allow different usage of the model-speed coefficient (Ks). Typical value = 0." },
2777            AttrDef { id: "ExcREXS.kvi", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator integral gain (Kvi). Typical value = 0." },
2778            AttrDef { id: "ExcREXS.kvp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator proportional gain (Kvp). Typical value = 2800." },
2779            AttrDef { id: "ExcREXS.kvphz", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "V/Hz limiter gain (Kvphz). Typical value = 0." },
2780            AttrDef { id: "ExcREXS.nvphz", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Pickup speed of V/Hz limiter (Nvphz). Typical value = 0." },
2781            AttrDef { id: "ExcREXS.se1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Saturation factor at E1 (Se1). Typical value = 0,0001." },
2782            AttrDef { id: "ExcREXS.se2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Saturation factor at E2 (Se2). Typical value = 0,001." },
2783            AttrDef { id: "ExcREXS.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Ta) (>= 0). If = 0, block is bypassed. Typical value = 0,01." },
2784            AttrDef { id: "ExcREXS.tb1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag time constant (Tb1) (>= 0). If = 0, block is bypassed. Typical value = 0." },
2785            AttrDef { id: "ExcREXS.tb2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag time constant (Tb2) (>= 0). If = 0, block is bypassed. Typical value = 0." },
2786            AttrDef { id: "ExcREXS.tc1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead time constant (Tc1) (>= 0). Typical value = 0." },
2787            AttrDef { id: "ExcREXS.tc2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead time constant (Tc2) (>= 0). Typical value = 0." },
2788            AttrDef { id: "ExcREXS.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter field time constant (Te) (> 0). Typical value = 1,2." },
2789            AttrDef { id: "ExcREXS.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rate feedback time constant (Tf) (>= 0). If = 0, the feedback path is not used. Typical value = 1." },
2790            AttrDef { id: "ExcREXS.tf1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Feedback lead time constant (Tf1) (>= 0). Typical value = 0." },
2791            AttrDef { id: "ExcREXS.tf2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Feedback lag time constant (Tf2) (>= 0). If = 0, block is bypassed. Typical value = 0." },
2792            AttrDef { id: "ExcREXS.tp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field current bridge time constant (Tp) (>= 0). Typical value = 0." },
2793            AttrDef { id: "ExcREXS.vcmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum compounding voltage (Vcmax). Typical value = 0." },
2794            AttrDef { id: "ExcREXS.vfmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum exciter field current (Vfmax) (> ExcREXS.vfmin). Typical value = 47." },
2795            AttrDef { id: "ExcREXS.vfmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum exciter field current (Vfmin) (< ExcREXS.vfmax). Typical value = -20." },
2796            AttrDef { id: "ExcREXS.vimax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator input limit (Vimax). Typical value = 0,1." },
2797            AttrDef { id: "ExcREXS.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum controller output (Vrmax) (> ExcREXS.vrmin). Typical value = 47." },
2798            AttrDef { id: "ExcREXS.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum controller output (Vrmin) (< ExcREXS.vrmax). Typical value = -20." },
2799            AttrDef { id: "ExcREXS.xc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter compounding reactance (Xc). Typical value = 0." },
2800        ],
2801    },
2802    ClassDef {
2803        ns: "http://iec.ch/TC57/CIM100#",
2804        local: "ExcRQB",
2805        qualified: "ExcRQB",
2806        super_class: Some(161),
2807        concrete: true,
2808        origins: &["DY"],
2809        comment: "Excitation system type RQB (four-loop regulator, r?gulateur quatre boucles, developed in France) primarily used in nuclear or thermal generating units. This excitation system shall be always used together with power system stabilizer type PssRQB.",
2810        attrs: &[
2811            AttrDef { id: "ExcRQB.ki0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage reference input gain (Ki0). Typical value = 12,7." },
2812            AttrDef { id: "ExcRQB.ki1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage input gain (Ki1). Typical value = -16,8." },
2813            AttrDef { id: "ExcRQB.klir", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "OEL input gain (KLIR). Typical value = 12,13." },
2814            AttrDef { id: "ExcRQB.klus", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limiter gain (KLUS). Typical value = 50." },
2815            AttrDef { id: "ExcRQB.lsat", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Integrator limiter (LSAT). Typical value = 5,73." },
2816            AttrDef { id: "ExcRQB.lus", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Setpoint (LUS). Typical value = 0,12." },
2817            AttrDef { id: "ExcRQB.mesu", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage input time constant (MESU) (>= 0). Typical value = 0,02." },
2818            AttrDef { id: "ExcRQB.t4m", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Input time constant (T4M) (>= 0). Typical value = 5." },
2819            AttrDef { id: "ExcRQB.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead lag time constant (TC) (>= 0). Typical value = 0,02." },
2820            AttrDef { id: "ExcRQB.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead lag time constant (TE) (>= 0). Typical value = 0,22." },
2821            AttrDef { id: "ExcRQB.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant (TF) (>= 0). Typical value = 0,01." },
2822            AttrDef { id: "ExcRQB.ucmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage reference limit (UCMAX) (> ExcRQB.ucmin). Typical value = 1,1." },
2823            AttrDef { id: "ExcRQB.ucmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage reference limit (UCMIN) (< ExcRQB.ucmax). Typical value = 0,9." },
2824        ],
2825    },
2826    ClassDef {
2827        ns: "http://iec.ch/TC57/CIM100#",
2828        local: "ExcSCRX",
2829        qualified: "ExcSCRX",
2830        super_class: Some(161),
2831        concrete: true,
2832        origins: &["DY"],
2833        comment: "Simple excitation system with generic characteristics typical of many excitation systems; intended for use where negative field current could be a problem.",
2834        attrs: &[
2835            AttrDef { id: "ExcSCRX.cswitch", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Power source switch (Cswitch). true = fixed voltage of 1.0 PU false = generator terminal voltage." },
2836            AttrDef { id: "ExcSCRX.emax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum field voltage output (Emax) (> ExcSCRX.emin). Typical value = 5." },
2837            AttrDef { id: "ExcSCRX.emin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum field voltage output (Emin) (< ExcSCRX.emax). Typical value = 0." },
2838            AttrDef { id: "ExcSCRX.k", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (K) (> 0). Typical value = 200." },
2839            AttrDef { id: "ExcSCRX.rcrfd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Ratio of field discharge resistance to field winding resistance ([rc / rfd]). Typical value = 0." },
2840            AttrDef { id: "ExcSCRX.tatb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain reduction ratio of lag-lead element ([Ta / Tb]). The parameter Ta is not defined explicitly. Typical value = 0.1." },
2841            AttrDef { id: "ExcSCRX.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Denominator time constant of lag-lead block (Tb) (>= 0). Typical value = 10." },
2842            AttrDef { id: "ExcSCRX.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant of gain block (Te) (> 0). Typical value = 0,02." },
2843        ],
2844    },
2845    ClassDef {
2846        ns: "http://iec.ch/TC57/CIM100#",
2847        local: "ExcSEXS",
2848        qualified: "ExcSEXS",
2849        super_class: Some(161),
2850        concrete: true,
2851        origins: &["DY"],
2852        comment: "Simplified excitation system.",
2853        attrs: &[
2854            AttrDef { id: "ExcSEXS.efdmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field voltage clipping maximum limit (Efdmax) (> ExcSEXS.efdmin). Typical value = 5." },
2855            AttrDef { id: "ExcSEXS.efdmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field voltage clipping minimum limit (Efdmin) (< ExcSEXS.efdmax). Typical value = -5." },
2856            AttrDef { id: "ExcSEXS.emax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum field voltage output (Emax) (> ExcSEXS.emin). Typical value = 5." },
2857            AttrDef { id: "ExcSEXS.emin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum field voltage output (Emin) (< ExcSEXS.emax). Typical value = -5." },
2858            AttrDef { id: "ExcSEXS.k", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (K) (> 0). Typical value = 100." },
2859            AttrDef { id: "ExcSEXS.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PI controller gain (Kc) (> 0 if ExcSEXS.tc > 0). Typical value = 0,08." },
2860            AttrDef { id: "ExcSEXS.tatb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain reduction ratio of lag-lead element ([Ta / Tb]). Typical value = 0,1." },
2861            AttrDef { id: "ExcSEXS.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Denominator time constant of lag-lead block (Tb) (>= 0). Typical value = 10." },
2862            AttrDef { id: "ExcSEXS.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PI controller phase lead time constant (Tc) (>= 0). Typical value = 0." },
2863            AttrDef { id: "ExcSEXS.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant of gain block (Te) (> 0). Typical value = 0,05." },
2864        ],
2865    },
2866    ClassDef {
2867        ns: "http://iec.ch/TC57/CIM100#",
2868        local: "ExcSK",
2869        qualified: "ExcSK",
2870        super_class: Some(161),
2871        concrete: true,
2872        origins: &["DY"],
2873        comment: "Slovakian excitation system. UEL and secondary voltage control are included in this model. When this model is used, there cannot be a separate underexcitation limiter or VAr controller model.",
2874        attrs: &[
2875            AttrDef { id: "ExcSK.efdmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field voltage clipping upper level limit (Efdmax) (> ExcSK.efdmin)." },
2876            AttrDef { id: "ExcSK.efdmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field voltage clipping lower level limit (Efdmin) (< ExcSK.efdmax)." },
2877            AttrDef { id: "ExcSK.emax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum field voltage output (Emax) (> ExcSK.emin). Typical value = 20." },
2878            AttrDef { id: "ExcSK.emin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum field voltage output (Emin) (< ExcSK.emax). Typical value = -20." },
2879            AttrDef { id: "ExcSK.k", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (K). Typical value = 1." },
2880            AttrDef { id: "ExcSK.k1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Parameter of underexcitation limit (K1). Typical value = 0,1364." },
2881            AttrDef { id: "ExcSK.k2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Parameter of underexcitation limit (K2). Typical value = -0,3861." },
2882            AttrDef { id: "ExcSK.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PI controller gain (Kc). Typical value = 70." },
2883            AttrDef { id: "ExcSK.kce", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier regulation factor (Kce). Typical value = 0." },
2884            AttrDef { id: "ExcSK.kd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter internal reactance (Kd). Typical value = 0." },
2885            AttrDef { id: "ExcSK.kgob", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "P controller gain (Kgob). Typical value = 10." },
2886            AttrDef { id: "ExcSK.kp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PI controller gain (Kp). Typical value = 1." },
2887            AttrDef { id: "ExcSK.kqi", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PI controller gain of integral component (Kqi). Typical value = 0." },
2888            AttrDef { id: "ExcSK.kqob", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rate of rise of the reactive power (Kqob)." },
2889            AttrDef { id: "ExcSK.kqp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PI controller gain (Kqp). Typical value = 0." },
2890            AttrDef { id: "ExcSK.nq", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Deadband of reactive power (nq). Determines the range of sensitivity. Typical value = 0,001." },
2891            AttrDef { id: "ExcSK.qconoff", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Secondary voltage control state (Qc_on_off). true = secondary voltage control is on false = secondary voltage control is off. Typical value = false." },
2892            AttrDef { id: "ExcSK.qz", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Desired value (setpoint) of reactive power, manual setting (Qz)." },
2893            AttrDef { id: "ExcSK.remote", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Selector to apply automatic calculation in secondary controller model (remote). true = automatic calculation is activated false = manual set is active; the use of desired value of reactive power (Qz) is required. Typical value = true." },
2894            AttrDef { id: "ExcSK.sbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ApparentPower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Apparent power of the unit (Sbase) (> 0). Unit = MVA. Typical value = 259." },
2895            AttrDef { id: "ExcSK.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PI controller phase lead time constant (Tc) (>= 0). Typical value = 8." },
2896            AttrDef { id: "ExcSK.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant of gain block (Te) (>= 0). Typical value = 0,1." },
2897            AttrDef { id: "ExcSK.ti", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PI controller phase lead time constant (Ti) (>= 0). Typical value = 2." },
2898            AttrDef { id: "ExcSK.tp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Tp) (>= 0). Typical value = 0,1." },
2899            AttrDef { id: "ExcSK.tr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage transducer time constant (Tr) (>= 0). Typical value = 0,01." },
2900            AttrDef { id: "ExcSK.uimax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum error (UImax) (> ExcSK.uimin). Typical value = 10." },
2901            AttrDef { id: "ExcSK.uimin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum error (UImin) (< ExcSK.uimax). Typical value = -10." },
2902            AttrDef { id: "ExcSK.urmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum controller output (URmax) (> ExcSK.urmin). Typical value = 10." },
2903            AttrDef { id: "ExcSK.urmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum controller output (URmin) (< ExcSK.urmax). Typical value = -10." },
2904            AttrDef { id: "ExcSK.vtmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum terminal voltage input (Vtmax) (> ExcSK.vtmin). Determines the range of voltage deadband. Typical value = 1,05." },
2905            AttrDef { id: "ExcSK.vtmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum terminal voltage input (Vtmin) (< ExcSK.vtmax). Determines the range of voltage deadband. Typical value = 0,95." },
2906            AttrDef { id: "ExcSK.yp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum output (Yp). Typical value = 1." },
2907        ],
2908    },
2909    ClassDef {
2910        ns: "http://iec.ch/TC57/CIM100#",
2911        local: "ExcST1A",
2912        qualified: "ExcST1A",
2913        super_class: Some(161),
2914        concrete: true,
2915        origins: &["DY"],
2916        comment: "Modification of an old IEEE ST1A static excitation system without overexcitation limiter (OEL) and underexcitation limiter (UEL).",
2917        attrs: &[
2918            AttrDef { id: "ExcST1A.ilr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter output current limit reference (Ilr). Typical value = 0." },
2919            AttrDef { id: "ExcST1A.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (Ka) (> 0). Typical value = 190." },
2920            AttrDef { id: "ExcST1A.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier loading factor proportional to commutating reactance (Kc) (>= 0). Typical value = 0,05." },
2921            AttrDef { id: "ExcST1A.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gains (Kf) (>= 0). Typical value = 0." },
2922            AttrDef { id: "ExcST1A.klr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter output current limiter gain (Klr). Typical value = 0." },
2923            AttrDef { id: "ExcST1A.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Ta) (>= 0). Typical value = 0,02." },
2924            AttrDef { id: "ExcST1A.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tb) (>= 0). Typical value = 10." },
2925            AttrDef { id: "ExcST1A.tb1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tb1) (>= 0). Typical value = 0." },
2926            AttrDef { id: "ExcST1A.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tc) (>= 0). Typical value = 1." },
2927            AttrDef { id: "ExcST1A.tc1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tc1) (>= 0). Typical value = 0." },
2928            AttrDef { id: "ExcST1A.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (Tf) (>= 0). Typical value = 1." },
2929            AttrDef { id: "ExcST1A.vamax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (Vamax) (> 0). Typical value = 999." },
2930            AttrDef { id: "ExcST1A.vamin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (Vamin) (< 0). Typical value = -999." },
2931            AttrDef { id: "ExcST1A.vimax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator input limit (Vimax) (> 0). Typical value = 999." },
2932            AttrDef { id: "ExcST1A.vimin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator input limit (Vimin) (< 0). Typical value = -999." },
2933            AttrDef { id: "ExcST1A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator outputs (Vrmax) (> 0) . Typical value = 7,8." },
2934            AttrDef { id: "ExcST1A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator outputs (Vrmin) (< 0). Typical value = -6,7." },
2935            AttrDef { id: "ExcST1A.xe", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation xfmr effective reactance (Xe). Typical value = 0,04." },
2936        ],
2937    },
2938    ClassDef {
2939        ns: "http://iec.ch/TC57/CIM100#",
2940        local: "ExcST2A",
2941        qualified: "ExcST2A",
2942        super_class: Some(161),
2943        concrete: true,
2944        origins: &["DY"],
2945        comment: "Modified IEEE ST2A static excitation system with another lead-lag block added to match the model defined by WECC.",
2946        attrs: &[
2947            AttrDef { id: "ExcST2A.efdmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum field voltage (Efdmax) (>= 0). Typical value = 99." },
2948            AttrDef { id: "ExcST2A.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator gain (Ka) (> 0). Typical value = 120." },
2949            AttrDef { id: "ExcST2A.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier loading factor proportional to commutating reactance (Kc) (>= 0). Typical value = 1,82." },
2950            AttrDef { id: "ExcST2A.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter constant related to self-excited field (Ke). Typical value = 1." },
2951            AttrDef { id: "ExcST2A.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer gains (kf) (>= 0). Typical value = 0,05." },
2952            AttrDef { id: "ExcST2A.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Potential circuit gain coefficient (Ki) (>= 0). Typical value = 8." },
2953            AttrDef { id: "ExcST2A.kp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Potential circuit gain coefficient (Kp) (>= 0). Typical value = 4,88." },
2954            AttrDef { id: "ExcST2A.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Ta) (> 0). Typical value = 0,15." },
2955            AttrDef { id: "ExcST2A.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tb) (>= 0). Typical value = 0." },
2956            AttrDef { id: "ExcST2A.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tc) (>= 0). Typical value = 0." },
2957            AttrDef { id: "ExcST2A.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter time constant, integration rate associated with exciter control (Te) (> 0). Typical value = 0,5." },
2958            AttrDef { id: "ExcST2A.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (Tf) (>= 0). Typical value = 0,7." },
2959            AttrDef { id: "ExcST2A.uelin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "UEL input (UELin). true = HV gate false = add to error signal. Typical value = false." },
2960            AttrDef { id: "ExcST2A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator outputs (Vrmax) (> 0). Typical value = 1." },
2961            AttrDef { id: "ExcST2A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator outputs (Vrmin) (< 0). Typical value = -1." },
2962        ],
2963    },
2964    ClassDef {
2965        ns: "http://iec.ch/TC57/CIM100#",
2966        local: "ExcST3A",
2967        qualified: "ExcST3A",
2968        super_class: Some(161),
2969        concrete: true,
2970        origins: &["DY"],
2971        comment: "Modified IEEE ST3A static excitation system with added speed multiplier.",
2972        attrs: &[
2973            AttrDef { id: "ExcST3A.efdmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum AVR output (Efdmax) (>= 0). Typical value = 6,9." },
2974            AttrDef { id: "ExcST3A.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier loading factor proportional to commutating reactance (Kc) (>= 0). Typical value = 1,1." },
2975            AttrDef { id: "ExcST3A.kg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Feedback gain constant of the inner loop field regulator (Kg) (>= 0). Typical value = 1." },
2976            AttrDef { id: "ExcST3A.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Potential circuit gain coefficient (Ki) (>= 0). Typical value = 4,83." },
2977            AttrDef { id: "ExcST3A.kj", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "AVR gain (Kj) (> 0). Typical value = 200." },
2978            AttrDef { id: "ExcST3A.km", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Forward gain constant of the inner loop field regulator (Km) (> 0). Typical value = 7,04." },
2979            AttrDef { id: "ExcST3A.kp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Potential source gain (Kp) (> 0). Typical value = 4,37." },
2980            AttrDef { id: "ExcST3A.ks", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient to allow different usage of the model-speed coefficient (Ks). Typical value = 0." },
2981            AttrDef { id: "ExcST3A.ks1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient to allow different usage of the model-speed coefficient (Ks1). Typical value = 0." },
2982            AttrDef { id: "ExcST3A.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tb) (>= 0). Typical value = 6,67." },
2983            AttrDef { id: "ExcST3A.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Tc) (>= 0). Typical value = 1." },
2984            AttrDef { id: "ExcST3A.thetap", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Potential circuit phase angle (thetap). Typical value = 20." },
2985            AttrDef { id: "ExcST3A.tm", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Forward time constant of inner loop field regulator (Tm) (> 0). Typical value = 1." },
2986            AttrDef { id: "ExcST3A.vbmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum excitation voltage (Vbmax) (> 0). Typical value = 8,63." },
2987            AttrDef { id: "ExcST3A.vgmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum inner loop feedback voltage (Vgmax) (>= 0). Typical value = 6,53." },
2988            AttrDef { id: "ExcST3A.vimax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator input limit (Vimax) (> 0). Typical value = 0,2." },
2989            AttrDef { id: "ExcST3A.vimin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator input limit (Vimin) (< 0). Typical value = -0,2." },
2990            AttrDef { id: "ExcST3A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (Vrmax) (> 0). Typical value = 1." },
2991            AttrDef { id: "ExcST3A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (Vrmin) (< 0). Typical value = -1." },
2992            AttrDef { id: "ExcST3A.xl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactance associated with potential source (Xl) (>= 0). Typical value = 0,09." },
2993        ],
2994    },
2995    ClassDef {
2996        ns: "http://iec.ch/TC57/CIM100#",
2997        local: "ExcST4B",
2998        qualified: "ExcST4B",
2999        super_class: Some(161),
3000        concrete: true,
3001        origins: &["DY"],
3002        comment: "Modified IEEE ST4B static excitation system with maximum inner loop feedback gain Vgmax.",
3003        attrs: &[
3004            AttrDef { id: "ExcST4B.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier loading factor proportional to commutating reactance (Kc) (>= 0). Typical value = 0,113." },
3005            AttrDef { id: "ExcST4B.kg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Feedback gain constant of the inner loop field regulator (Kg) (>= 0). Typical value = 0." },
3006            AttrDef { id: "ExcST4B.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Potential circuit gain coefficient (Ki) (>= 0). Typical value = 0." },
3007            AttrDef { id: "ExcST4B.kim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator integral gain output (Kim). Typical value = 0." },
3008            AttrDef { id: "ExcST4B.kir", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator integral gain (Kir). Typical value = 10,75." },
3009            AttrDef { id: "ExcST4B.kp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Potential circuit gain coefficient (Kp) (> 0). Typical value = 9,3." },
3010            AttrDef { id: "ExcST4B.kpm", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator proportional gain output (Kpm). Typical value = 1." },
3011            AttrDef { id: "ExcST4B.kpr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator proportional gain (Kpr). Typical value = 10,75." },
3012            AttrDef { id: "ExcST4B.lvgate", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Selector (LVGate). true = LVGate is part of the block diagram false = LVGate is not part of the block diagram. Typical value = false." },
3013            AttrDef { id: "ExcST4B.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator time constant (Ta) (>= 0). Typical value = 0,02." },
3014            AttrDef { id: "ExcST4B.thetap", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Potential circuit phase angle (thetap). Typical value = 0." },
3015            AttrDef { id: "ExcST4B.uel", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Selector (UEL). true = UEL is part of block diagram false = UEL is not part of block diagram. Typical value = false." },
3016            AttrDef { id: "ExcST4B.vbmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum excitation voltage (Vbmax) (> 0). Typical value = 11,63." },
3017            AttrDef { id: "ExcST4B.vgmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum inner loop feedback voltage (Vgmax) (>= 0). Typical value = 5,8." },
3018            AttrDef { id: "ExcST4B.vmmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum inner loop output (Vmmax) (> ExcST4B.vmmin). Typical value = 99." },
3019            AttrDef { id: "ExcST4B.vmmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum inner loop output (Vmmin) (< ExcST4B.vmmax). Typical value = -99." },
3020            AttrDef { id: "ExcST4B.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (Vrmax) (> 0). Typical value = 1." },
3021            AttrDef { id: "ExcST4B.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (Vrmin) (< 0). Typical value = -0,87." },
3022            AttrDef { id: "ExcST4B.xl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactance associated with potential source (Xl) (>= 0). Typical value = 0,124." },
3023        ],
3024    },
3025    ClassDef {
3026        ns: "http://iec.ch/TC57/CIM100#",
3027        local: "ExcST6B",
3028        qualified: "ExcST6B",
3029        super_class: Some(161),
3030        concrete: true,
3031        origins: &["DY"],
3032        comment: "Modified IEEE ST6B static excitation system with PID controller and optional inner feedback loop.",
3033        attrs: &[
3034            AttrDef { id: "ExcST6B.ilr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter output current limit reference (Ilr) (> 0). Typical value = 4,164." },
3035            AttrDef { id: "ExcST6B.k1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Selector (K1). true = feedback is from Ifd false = feedback is not from Ifd. Typical value = true." },
3036            AttrDef { id: "ExcST6B.kcl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter output current limit adjustment (Kcl) (> 0). Typical value = 1,0577." },
3037            AttrDef { id: "ExcST6B.kff", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Pre-control gain constant of the inner loop field regulator (Kff). Typical value = 1." },
3038            AttrDef { id: "ExcST6B.kg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Feedback gain constant of the inner loop field regulator (Kg) (>= 0). Typical value = 1." },
3039            AttrDef { id: "ExcST6B.kia", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator integral gain (Kia) (> 0). Typical value = 45,094." },
3040            AttrDef { id: "ExcST6B.klr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exciter output current limit adjustment (Kcl) (> 0). Typical value = 17,33." },
3041            AttrDef { id: "ExcST6B.km", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Forward gain constant of the inner loop field regulator (Km). Typical value = 1." },
3042            AttrDef { id: "ExcST6B.kpa", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator proportional gain (Kpa) (> 0). Typical value = 18,038." },
3043            AttrDef { id: "ExcST6B.kvd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator derivative gain (Kvd). Typical value = 0." },
3044            AttrDef { id: "ExcST6B.oelin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "ExcST6BOELselectorKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "OEL input selector (OELin). Typical value = noOELinput (corresponds to OELin = 0 on diagram)." },
3045            AttrDef { id: "ExcST6B.tg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Feedback time constant of inner loop field voltage regulator (Tg) (>= 0). Typical value = 0,02." },
3046            AttrDef { id: "ExcST6B.ts", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier firing time constant (Ts) (>= 0). Typical value = 0." },
3047            AttrDef { id: "ExcST6B.tvd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator derivative gain (Tvd) (>= 0). Typical value = 0." },
3048            AttrDef { id: "ExcST6B.vamax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (Vamax) (> 0). Typical value = 4,81." },
3049            AttrDef { id: "ExcST6B.vamin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (Vamin) (< 0). Typical value = -3,85." },
3050            AttrDef { id: "ExcST6B.vilim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Selector (Vilim). true = Vimin-Vimax limiter is active false = Vimin-Vimax limiter is not active. Typical value = true." },
3051            AttrDef { id: "ExcST6B.vimax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator input limit (Vimax) (> ExcST6B.vimin). Typical value = 10." },
3052            AttrDef { id: "ExcST6B.vimin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator input limit (Vimin) (< ExcST6B.vimax). Typical value = -10." },
3053            AttrDef { id: "ExcST6B.vmult", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Selector (vmult). true = multiply regulator output by terminal voltage false = do not multiply regulator output by terminal voltage. Typical value = true." },
3054            AttrDef { id: "ExcST6B.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (Vrmax) (> 0). Typical value = 4,81." },
3055            AttrDef { id: "ExcST6B.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (Vrmin) (< 0). Typical value = -3,85." },
3056            AttrDef { id: "ExcST6B.xc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation source reactance (Xc). Typical value = 0,05." },
3057        ],
3058    },
3059    ClassDef {
3060        ns: "http://iec.ch/TC57/CIM100#",
3061        local: "ExcST7B",
3062        qualified: "ExcST7B",
3063        super_class: Some(161),
3064        concrete: true,
3065        origins: &["DY"],
3066        comment: "Modified IEEE ST7B static excitation system without stator current limiter (SCL) and current compensator (DROOP) inputs.",
3067        attrs: &[
3068            AttrDef { id: "ExcST7B.kh", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High-value gate feedback gain (Kh) (>= 0). Typical value = 1." },
3069            AttrDef { id: "ExcST7B.kia", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator integral gain (Kia) (>= 0). Typical value = 1." },
3070            AttrDef { id: "ExcST7B.kl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low-value gate feedback gain (Kl) (>= 0). Typical value = 1." },
3071            AttrDef { id: "ExcST7B.kpa", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator proportional gain (Kpa) (> 0). Typical value = 40." },
3072            AttrDef { id: "ExcST7B.oelin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "ExcST7BOELselectorKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "OEL input selector (OELin). Typical value = noOELinput." },
3073            AttrDef { id: "ExcST7B.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Regulator lag time constant (Tb) (>= 0). Typical value = 1." },
3074            AttrDef { id: "ExcST7B.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Regulator lead time constant (Tc) (>= 0). Typical value = 1." },
3075            AttrDef { id: "ExcST7B.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation control system stabilizer time constant (Tf) (>= 0). Typical value = 1." },
3076            AttrDef { id: "ExcST7B.tg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Feedback time constant of inner loop field voltage regulator (Tg) (>= 0). Typical value = 1." },
3077            AttrDef { id: "ExcST7B.tia", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Feedback time constant (Tia) (>= 0). Typical value = 3." },
3078            AttrDef { id: "ExcST7B.ts", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rectifier firing time constant (Ts) (>= 0). Typical value = 0." },
3079            AttrDef { id: "ExcST7B.uelin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "ExcST7BUELselectorKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "UEL input selector (UELin). Typical value = noUELinput." },
3080            AttrDef { id: "ExcST7B.vmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage reference signal (Vmax) (> 0 and > ExcST7B.vmin)). Typical value = 1,1." },
3081            AttrDef { id: "ExcST7B.vmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage reference signal (Vmin) (> 0 and < ExcST7B.vmax). Typical value = 0,9." },
3082            AttrDef { id: "ExcST7B.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage regulator output (Vrmax) (> 0). Typical value = 5." },
3083            AttrDef { id: "ExcST7B.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage regulator output (Vrmin) (< 0). Typical value = -4,5." },
3084        ],
3085    },
3086    ClassDef {
3087        ns: "http://iec.ch/TC57/CIM100#",
3088        local: "ExcitationSystemDynamics",
3089        qualified: "ExcitationSystemDynamics",
3090        super_class: Some(91),
3091        concrete: false,
3092        origins: &["DY"],
3093        comment: "Excitation system function block whose behaviour is described by reference to a standard model or by definition of a user-defined model.",
3094        attrs: &[
3095            AttrDef { id: "ExcitationSystemDynamics.DiscontinuousExcitationControlDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DiscontinuousExcitationControlDynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Discontinuous excitation control model associated with this excitation system model." },
3096            AttrDef { id: "ExcitationSystemDynamics.OverexcitationLimiterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "OverexcitationLimiterDynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Overexcitation limiter model associated with this excitation system model." },
3097            AttrDef { id: "ExcitationSystemDynamics.PFVArControllerType1Dynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PFVArControllerType1Dynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Power factor or VAr controller type 1 model associated with this excitation system model." },
3098            AttrDef { id: "ExcitationSystemDynamics.PFVArControllerType2Dynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PFVArControllerType2Dynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Power factor or VAr controller type 2 model associated with this excitation system model." },
3099            AttrDef { id: "ExcitationSystemDynamics.PowerSystemStabilizerDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PowerSystemStabilizerDynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Power system stabilizer model associated with this excitation system model." },
3100            AttrDef { id: "ExcitationSystemDynamics.SynchronousMachineDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SynchronousMachineDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Synchronous machine model with which this excitation system model is associated." },
3101            AttrDef { id: "ExcitationSystemDynamics.UnderexcitationLimiterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "UnderexcitationLimiterDynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Undrexcitation limiter model associated with this excitation system model." },
3102            AttrDef { id: "ExcitationSystemDynamics.VoltageCompensatorDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "VoltageCompensatorDynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Voltage compensator model associated with this excitation system model." },
3103        ],
3104    },
3105    ClassDef {
3106        ns: "http://iec.ch/TC57/CIM100#",
3107        local: "ExcitationSystemUserDefined",
3108        qualified: "ExcitationSystemUserDefined",
3109        super_class: Some(161),
3110        concrete: true,
3111        origins: &["DY"],
3112        comment: "Excitation system function block whose dynamic behaviour is described by a user-defined model.",
3113        attrs: &[
3114            AttrDef { id: "ExcitationSystemUserDefined.ProprietaryParameterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ProprietaryParameterDynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Parameter of this proprietary user-defined model." },
3115            AttrDef { id: "ExcitationSystemUserDefined.proprietary", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Behaviour is based on a proprietary model as opposed to a detailed model. true = user-defined model is proprietary with behaviour mutually understood by sending and receiving applications and parameters passed as general attributes false = user-defined model is explicitly defined in terms of control blocks and their input and output signals." },
3116        ],
3117    },
3118    ClassDef {
3119        ns: "http://iec.ch/TC57/CIM100#",
3120        local: "ExternalNetworkInjection",
3121        qualified: "ExternalNetworkInjection",
3122        super_class: Some(315),
3123        concrete: true,
3124        origins: &["EQ", "SC", "SSH"],
3125        comment: "This class represents the external network and it is used for IEC 60909 calculations.",
3126        attrs: &[
3127            AttrDef { id: "ExternalNetworkInjection.governorSCD", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePowerPerFrequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Power Frequency Bias. This is the change in power injection divided by the change in frequency and negated. A positive value of the power frequency bias provides additional power injection upon a drop in frequency." },
3128            AttrDef { id: "ExternalNetworkInjection.ikSecond", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SC"], comment: "Indicates whether initial symmetrical short-circuit current and power have been calculated according to IEC (Ik'). Used only if short circuit calculations are done according to superposition method." },
3129            AttrDef { id: "ExternalNetworkInjection.maxInitialSymShCCurrent", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Maximum initial symmetrical short-circuit currents (Ik' max) in A (Ik' = Sk'/(SQRT(3) Un)). Used for short circuit data exchange according to IEC 60909." },
3130            AttrDef { id: "ExternalNetworkInjection.maxP", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Maximum active power of the injection." },
3131            AttrDef { id: "ExternalNetworkInjection.maxQ", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Maximum reactive power limit. It is used for modelling of infeed for load flow exchange and not for short circuit modelling." },
3132            AttrDef { id: "ExternalNetworkInjection.maxR0ToX0Ratio", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Maximum ratio of zero sequence resistance of Network Feeder to its zero sequence reactance (R(0)/X(0) max). Used for short circuit data exchange according to IEC 60909." },
3133            AttrDef { id: "ExternalNetworkInjection.maxR1ToX1Ratio", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Maximum ratio of positive sequence resistance of Network Feeder to its positive sequence reactance (R(1)/X(1) max). Used for short circuit data exchange according to IEC 60909." },
3134            AttrDef { id: "ExternalNetworkInjection.maxZ0ToZ1Ratio", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Maximum ratio of zero sequence impedance to its positive sequence impedance (Z(0)/Z(1) max). Used for short circuit data exchange according to IEC 60909." },
3135            AttrDef { id: "ExternalNetworkInjection.minInitialSymShCCurrent", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Minimum initial symmetrical short-circuit currents (Ik' min) in A (Ik' = Sk'/(SQRT(3) Un)). Used for short circuit data exchange according to IEC 60909." },
3136            AttrDef { id: "ExternalNetworkInjection.minP", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Minimum active power of the injection." },
3137            AttrDef { id: "ExternalNetworkInjection.minQ", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Minimum reactive power limit. It is used for modelling of infeed for load flow exchange and not for short circuit modelling." },
3138            AttrDef { id: "ExternalNetworkInjection.minR0ToX0Ratio", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Indicates whether initial symmetrical short-circuit current and power have been calculated according to IEC (Ik'). Used for short circuit data exchange according to IEC 6090." },
3139            AttrDef { id: "ExternalNetworkInjection.minR1ToX1Ratio", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Minimum ratio of positive sequence resistance of Network Feeder to its positive sequence reactance (R(1)/X(1) min). Used for short circuit data exchange according to IEC 60909." },
3140            AttrDef { id: "ExternalNetworkInjection.minZ0ToZ1Ratio", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Minimum ratio of zero sequence impedance to its positive sequence impedance (Z(0)/Z(1) min). Used for short circuit data exchange according to IEC 60909." },
3141            AttrDef { id: "ExternalNetworkInjection.p", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], 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." },
3142            AttrDef { id: "ExternalNetworkInjection.q", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], 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." },
3143            AttrDef { id: "ExternalNetworkInjection.referencePriority", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["SSH"], 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." },
3144            AttrDef { id: "ExternalNetworkInjection.voltageFactor", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Voltage factor in pu, which was used to calculate short-circuit current Ik' and power Sk'. Used only if short circuit calculations are done according to superposition method." },
3145        ],
3146    },
3147    ClassDef {
3148        ns: "http://iec.ch/TC57/CIM100#",
3149        local: "FaultIndicator",
3150        qualified: "FaultIndicator",
3151        super_class: Some(21),
3152        concrete: true,
3153        origins: &["EQ"],
3154        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).",
3155        attrs: &[],
3156    },
3157    ClassDef {
3158        ns: "http://iec.ch/TC57/CIM100#",
3159        local: "FossilFuel",
3160        qualified: "FossilFuel",
3161        super_class: Some(213),
3162        concrete: true,
3163        origins: &["EQ"],
3164        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.",
3165        attrs: &[
3166            AttrDef { id: "FossilFuel.ThermalGeneratingUnit", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ThermalGeneratingUnit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "A thermal generating unit may have one or more fossil fuels." },
3167            AttrDef { id: "FossilFuel.fossilFuelType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "FuelType", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["EQ"], comment: "The type of fossil fuel, such as coal, oil, or gas." },
3168        ],
3169    },
3170    ClassDef {
3171        ns: "http://iec.ch/TC57/61970-552/ModelDescription/1#",
3172        local: "FullModel",
3173        qualified: "FullModel",
3174        super_class: Some(240),
3175        concrete: true,
3176        origins: &["FH"],
3177        comment: "It represents the full model header and its contents is described by the Model class.",
3178        attrs: &[],
3179    },
3180    ClassDef {
3181        ns: "http://iec.ch/TC57/CIM100#",
3182        local: "Fuse",
3183        qualified: "Fuse",
3184        super_class: Some(353),
3185        concrete: true,
3186        origins: &["EQ", "SSH"],
3187        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.",
3188        attrs: &[],
3189    },
3190    ClassDef {
3191        ns: "http://iec.ch/TC57/CIM100#",
3192        local: "GenICompensationForGenJ",
3193        qualified: "GenICompensationForGenJ",
3194        super_class: Some(213),
3195        concrete: true,
3196        origins: &["DY"],
3197        comment: "Resistive and reactive components of compensation for generator associated with IEEE type 2 voltage compensator for current flow out of another generator in the interconnection.",
3198        attrs: &[
3199            AttrDef { id: "GenICompensationForGenJ.SynchronousMachineDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SynchronousMachineDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Standard synchronous machine out of which current flow is being compensated for." },
3200            AttrDef { id: "GenICompensationForGenJ.VcompIEEEType2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "VCompIEEEType2", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "The standard IEEE type 2 voltage compensator of this compensation." },
3201            AttrDef { id: "GenICompensationForGenJ.rcij", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Resistive component of compensation of generator associated with this IEEE type 2 voltage compensator for current flow out of another generator (Rcij)." },
3202            AttrDef { id: "GenICompensationForGenJ.xcij", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactive component of compensation of generator associated with this IEEE type 2 voltage compensator for current flow out of another generator (Xcij)." },
3203        ],
3204    },
3205    ClassDef {
3206        ns: "http://iec.ch/TC57/CIM100#",
3207        local: "GeneratingUnit",
3208        qualified: "GeneratingUnit",
3209        super_class: Some(98),
3210        concrete: true,
3211        origins: &["EQ", "SSH"],
3212        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.",
3213        attrs: &[
3214            AttrDef { id: "GeneratingUnit.ControlAreaGeneratingUnit", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ControlAreaGeneratingUnit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "ControlArea specifications for this generating unit." },
3215            AttrDef { id: "GeneratingUnit.GrossToNetActivePowerCurves", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "GrossToNetActivePowerCurve", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "A generating unit may have a gross active power to net active power curve, describing the losses and auxiliary power requirements of the unit." },
3216            AttrDef { id: "GeneratingUnit.RotatingMachine", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RotatingMachine", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "A synchronous machine may operate as a generator and as such becomes a member of a generating unit." },
3217            AttrDef { id: "GeneratingUnit.genControlSource", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "GeneratorControlSource", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["EQ"], comment: "The source of controls for a generating unit. Defines the control status of the generating unit." },
3218            AttrDef { id: "GeneratingUnit.governorSCD", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Governor Speed Changer Droop. This is the change in generator power output divided by the change in frequency normalized by the nominal power of the generator and the nominal frequency and expressed in percent and negated. A positive value of speed change droop provides additional generator output upon a drop in frequency." },
3219            AttrDef { id: "GeneratingUnit.longPF", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Generating unit long term economic participation factor." },
3220            AttrDef { id: "GeneratingUnit.maxOperatingP", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "This is the maximum operating active power limit the dispatcher can enter for this unit." },
3221            AttrDef { id: "GeneratingUnit.maximumAllowableSpinningReserve", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Maximum allowable spinning reserve. Spinning reserve will never be considered greater than this value regardless of the current operating point." },
3222            AttrDef { id: "GeneratingUnit.minOperatingP", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "This is the minimum operating active power limit the dispatcher can enter for this unit." },
3223            AttrDef { id: "GeneratingUnit.nominalP", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The nominal power of the generating unit. Used to give precise meaning to percentage based attributes such as the governor speed change droop (governorSCD attribute). The attribute shall be a positive value equal to or less than RotatingMachine.ratedS." },
3224            AttrDef { id: "GeneratingUnit.normalPF", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], 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." },
3225            AttrDef { id: "GeneratingUnit.ratedGrossMaxP", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The unit's gross rated maximum capacity (book value). The attribute shall be a positive value." },
3226            AttrDef { id: "GeneratingUnit.ratedGrossMinP", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The gross rated minimum generation level which the unit can safely operate at while delivering power to the transmission grid. The attribute shall be a positive value." },
3227            AttrDef { id: "GeneratingUnit.ratedNetMaxP", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The net rated maximum capacity determined by subtracting the auxiliary power used to operate the internal plant machinery from the rated gross maximum capacity. The attribute shall be a positive value." },
3228            AttrDef { id: "GeneratingUnit.shortPF", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Generating unit short term economic participation factor." },
3229            AttrDef { id: "GeneratingUnit.startupCost", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Money", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The initial startup cost incurred for each start of the GeneratingUnit." },
3230            AttrDef { id: "GeneratingUnit.startupTime", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Time it takes to get the unit on-line, from the time that the prime mover mechanical power is applied." },
3231            AttrDef { id: "GeneratingUnit.totalEfficiency", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The efficiency of the unit in converting the fuel into electrical energy." },
3232            AttrDef { id: "GeneratingUnit.variableCost", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Money", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The variable cost component of production per unit of ActivePower." },
3233        ],
3234    },
3235    ClassDef {
3236        ns: "http://iec.ch/TC57/CIM100#",
3237        local: "GeographicalRegion",
3238        qualified: "GeographicalRegion",
3239        super_class: Some(213),
3240        concrete: true,
3241        origins: &["EQ", "EQBD"],
3242        comment: "A geographical region of a power system network model.",
3243        attrs: &[
3244            AttrDef { id: "GeographicalRegion.Regions", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SubGeographicalRegion", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ", "EQBD"], comment: "All sub-geographical regions within this geographical region." },
3245        ],
3246    },
3247    ClassDef {
3248        ns: "http://iec.ch/TC57/CIM100#",
3249        local: "GovCT1",
3250        qualified: "GovCT1",
3251        super_class: Some(375),
3252        concrete: true,
3253        origins: &["DY"],
3254        comment: "General model for any prime mover with a PID governor, used primarily for combustion turbine and combined cycle units. This model can be used to represent a variety of prime movers controlled by PID governors. It is suitable, for example, for the representation of: gas turbine and single shaft combined cycle turbines diesel engines with modern electronic or digital governors steam turbines where steam is supplied from a large boiler drum or a large header whose pressure is substantially constant over the period under study simple hydro turbines in dam configurations where the water column length is short and water inertia effects are minimal. Additional information on this model is available in the 2012 IEEE report, Dynamic Models for Turbine-Governors in Power System Studies, 3.1.2.3 pages 3-4 (GGOV1).",
3255        attrs: &[
3256            AttrDef { id: "GovCT1.aset", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Acceleration limiter setpoint (Aset). Unit = PU / s. Typical value = 0,01." },
3257            AttrDef { id: "GovCT1.db", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Speed governor deadband in PU speed (db). In the majority of applications, it is recommended that this value be set to zero. Typical value = 0." },
3258            AttrDef { id: "GovCT1.dm", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Speed sensitivity coefficient (Dm). Dm can represent either the variation of the engine power with the shaft speed or the variation of maximum power capability with shaft speed. If it is positive it describes the falling slope of the engine speed verses power characteristic as speed increases. A slightly falling characteristic is typical for reciprocating engines and some aero-derivative turbines. If it is negative the engine power is assumed to be unaffected by the shaft speed, but the maximum permissible fuel flow is taken to fall with falling shaft speed. This is characteristic of single-shaft industrial turbines due to exhaust temperature limits. Typical value = 0." },
3259            AttrDef { id: "GovCT1.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Acceleration limiter gain (Ka). Typical value = 10." },
3260            AttrDef { id: "GovCT1.kdgov", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor derivative gain (Kdgov). Typical value = 0." },
3261            AttrDef { id: "GovCT1.kigov", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor integral gain (Kigov). Typical value = 2." },
3262            AttrDef { id: "GovCT1.kiload", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Load limiter integral gain for PI controller (Kiload). Typical value = 0,67." },
3263            AttrDef { id: "GovCT1.kimw", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power controller (reset) gain (Kimw). The default value of 0,01 corresponds to a reset time of 100 s. A value of 0,001 corresponds to a relatively slow-acting load controller. Typical value = 0,01." },
3264            AttrDef { id: "GovCT1.kpgov", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor proportional gain (Kpgov). Typical value = 10." },
3265            AttrDef { id: "GovCT1.kpload", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Load limiter proportional gain for PI controller (Kpload). Typical value = 2." },
3266            AttrDef { id: "GovCT1.kturb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine gain (Kturb) (> 0). Typical value = 1,5." },
3267            AttrDef { id: "GovCT1.ldref", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Load limiter reference value (Ldref). Typical value = 1." },
3268            AttrDef { id: "GovCT1.maxerr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum value for speed error signal (maxerr) (> GovCT1.minerr). Typical value = 0,05." },
3269            AttrDef { id: "GovCT1.minerr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum value for speed error signal (minerr) (< GovCT1.maxerr). Typical value = -0,05." },
3270            AttrDef { id: "GovCT1.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
3271            AttrDef { id: "GovCT1.r", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Permanent droop (R). Typical value = 0,04." },
3272            AttrDef { id: "GovCT1.rclose", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum valve closing rate (Rclose). Unit = PU / s. Typical value = -0,1." },
3273            AttrDef { id: "GovCT1.rdown", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum rate of load limit decrease (Rdown). Typical value = -99." },
3274            AttrDef { id: "GovCT1.ropen", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum valve opening rate (Ropen). Unit = PU / s. Typical value = 0.10." },
3275            AttrDef { id: "GovCT1.rselect", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "DroopSignalFeedbackKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Feedback signal for droop (Rselect). Typical value = electricalPower." },
3276            AttrDef { id: "GovCT1.rup", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum rate of load limit increase (Rup). Typical value = 99." },
3277            AttrDef { id: "GovCT1.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Acceleration limiter time constant (Ta) (> 0). Typical value = 0,1." },
3278            AttrDef { id: "GovCT1.tact", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Actuator time constant (Tact) (>= 0). Typical value = 0,5." },
3279            AttrDef { id: "GovCT1.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine lag time constant (Tb) (> 0). Typical value = 0,5." },
3280            AttrDef { id: "GovCT1.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine lead time constant (Tc) (>= 0). Typical value = 0." },
3281            AttrDef { id: "GovCT1.tdgov", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor derivative controller time constant (Tdgov) (>= 0). Typical value = 1." },
3282            AttrDef { id: "GovCT1.teng", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Transport time delay for diesel engine used in representing diesel engines where there is a small but measurable transport delay between a change in fuel flow setting and the development of torque (Teng) (>= 0). Teng should be zero in all but special cases where this transport delay is of particular concern. Typical value = 0." },
3283            AttrDef { id: "GovCT1.tfload", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Load-limiter time constant (Tfload) (> 0). Typical value = 3." },
3284            AttrDef { id: "GovCT1.tpelec", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Electrical power transducer time constant (Tpelec) (> 0). Typical value = 1." },
3285            AttrDef { id: "GovCT1.tsa", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Temperature detection lead time constant (Tsa) (>= 0). Typical value = 4." },
3286            AttrDef { id: "GovCT1.tsb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Temperature detection lag time constant (Tsb) (>= 0). Typical value = 5." },
3287            AttrDef { id: "GovCT1.vmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum valve position limit (Vmax) (> GovCT1.vmin). Typical value = 1." },
3288            AttrDef { id: "GovCT1.vmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum valve position limit (Vmin) (< GovCT1.vmax). Typical value = 0,15." },
3289            AttrDef { id: "GovCT1.wfnl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "No load fuel flow (Wfnl). Typical value = 0,2." },
3290            AttrDef { id: "GovCT1.wfspd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Switch for fuel source characteristic to recognize that fuel flow, for a given fuel valve stroke, can be proportional to engine speed (Wfspd). true = fuel flow proportional to speed (for some gas turbines and diesel engines with positive displacement fuel injectors) false = fuel control system keeps fuel flow independent of engine speed. Typical value = true." },
3291        ],
3292    },
3293    ClassDef {
3294        ns: "http://iec.ch/TC57/CIM100#",
3295        local: "GovCT2",
3296        qualified: "GovCT2",
3297        super_class: Some(375),
3298        concrete: true,
3299        origins: &["DY"],
3300        comment: "General governor with frequency-dependent fuel flow limit. This model is a modification of the GovCT1 model in order to represent the frequency-dependent fuel flow limit of a specific gas turbine manufacturer.",
3301        attrs: &[
3302            AttrDef { id: "GovCT2.aset", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Acceleration limiter setpoint (Aset). Unit = PU / s. Typical value = 10." },
3303            AttrDef { id: "GovCT2.db", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Speed governor deadband in PU speed (db). In the majority of applications, it is recommended that this value be set to zero. Typical value = 0." },
3304            AttrDef { id: "GovCT2.dm", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Speed sensitivity coefficient (Dm). Dm can represent either the variation of the engine power with the shaft speed or the variation of maximum power capability with shaft speed. If it is positive it describes the falling slope of the engine speed verses power characteristic as speed increases. A slightly falling characteristic is typical for reciprocating engines and some aero-derivative turbines. If it is negative the engine power is assumed to be unaffected by the shaft speed, but the maximum permissible fuel flow is taken to fall with falling shaft speed. This is characteristic of single-shaft industrial turbines due to exhaust temperature limits. Typical value = 0." },
3305            AttrDef { id: "GovCT2.flim1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Frequency threshold 1 (Flim1). Unit = Hz. Typical value = 59." },
3306            AttrDef { id: "GovCT2.flim10", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Frequency threshold 10 (Flim10). Unit = Hz. Typical value = 0." },
3307            AttrDef { id: "GovCT2.flim2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Frequency threshold 2 (Flim2). Unit = Hz. Typical value = 0." },
3308            AttrDef { id: "GovCT2.flim3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Frequency threshold 3 (Flim3). Unit = Hz. Typical value = 0." },
3309            AttrDef { id: "GovCT2.flim4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Frequency threshold 4 (Flim4). Unit = Hz. Typical value = 0." },
3310            AttrDef { id: "GovCT2.flim5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Frequency threshold 5 (Flim5). Unit = Hz. Typical value = 0." },
3311            AttrDef { id: "GovCT2.flim6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Frequency threshold 6 (Flim6). Unit = Hz. Typical value = 0." },
3312            AttrDef { id: "GovCT2.flim7", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Frequency threshold 7 (Flim7). Unit = Hz. Typical value = 0." },
3313            AttrDef { id: "GovCT2.flim8", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Frequency threshold 8 (Flim8). Unit = Hz. Typical value = 0." },
3314            AttrDef { id: "GovCT2.flim9", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Frequency threshold 9 (Flim9). Unit = Hz. Typical value = 0." },
3315            AttrDef { id: "GovCT2.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Acceleration limiter gain (Ka). Typical value = 10." },
3316            AttrDef { id: "GovCT2.kdgov", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor derivative gain (Kdgov). Typical value = 0." },
3317            AttrDef { id: "GovCT2.kigov", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor integral gain (Kigov). Typical value = 0,45." },
3318            AttrDef { id: "GovCT2.kiload", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Load limiter integral gain for PI controller (Kiload). Typical value = 1." },
3319            AttrDef { id: "GovCT2.kimw", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power controller (reset) gain (Kimw). The default value of 0,01 corresponds to a reset time of 100 seconds. A value of 0,001 corresponds to a relatively slow-acting load controller. Typical value = 0." },
3320            AttrDef { id: "GovCT2.kpgov", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor proportional gain (Kpgov). Typical value = 4." },
3321            AttrDef { id: "GovCT2.kpload", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Load limiter proportional gain for PI controller (Kpload). Typical value = 1." },
3322            AttrDef { id: "GovCT2.kturb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine gain (Kturb). Typical value = 1,9168." },
3323            AttrDef { id: "GovCT2.ldref", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Load limiter reference value (Ldref). Typical value = 1." },
3324            AttrDef { id: "GovCT2.maxerr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum value for speed error signal (Maxerr) (> GovCT2.minerr). Typical value = 1." },
3325            AttrDef { id: "GovCT2.minerr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum value for speed error signal (Minerr) (< GovCT2.maxerr). Typical value = -1." },
3326            AttrDef { id: "GovCT2.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
3327            AttrDef { id: "GovCT2.plim1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power limit 1 (Plim1). Typical value = 0,8325." },
3328            AttrDef { id: "GovCT2.plim10", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power limit 10 (Plim10). Typical value = 0." },
3329            AttrDef { id: "GovCT2.plim2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power limit 2 (Plim2). Typical value = 0." },
3330            AttrDef { id: "GovCT2.plim3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power limit 3 (Plim3). Typical value = 0." },
3331            AttrDef { id: "GovCT2.plim4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power limit 4 (Plim4). Typical value = 0." },
3332            AttrDef { id: "GovCT2.plim5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power limit 5 (Plim5). Typical value = 0." },
3333            AttrDef { id: "GovCT2.plim6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power limit 6 (Plim6). Typical value = 0." },
3334            AttrDef { id: "GovCT2.plim7", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power limit 7 (Plim7). Typical value = 0." },
3335            AttrDef { id: "GovCT2.plim8", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power limit 8 (Plim8). Typical value = 0." },
3336            AttrDef { id: "GovCT2.plim9", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power Limit 9 (Plim9). Typical value = 0." },
3337            AttrDef { id: "GovCT2.prate", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Ramp rate for frequency-dependent power limit (Prate). Typical value = 0,017." },
3338            AttrDef { id: "GovCT2.r", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Permanent droop (R). Typical value = 0,05." },
3339            AttrDef { id: "GovCT2.rclose", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum valve closing rate (Rclose). Unit = PU / s. Typical value = -99." },
3340            AttrDef { id: "GovCT2.rdown", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum rate of load limit decrease (Rdown). Typical value = -99." },
3341            AttrDef { id: "GovCT2.ropen", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum valve opening rate (Ropen). Unit = PU / s. Typical value = 99." },
3342            AttrDef { id: "GovCT2.rselect", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "DroopSignalFeedbackKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Feedback signal for droop (Rselect). Typical value = electricalPower." },
3343            AttrDef { id: "GovCT2.rup", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum rate of load limit increase (Rup). Typical value = 99." },
3344            AttrDef { id: "GovCT2.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Acceleration limiter time constant (Ta) (>= 0). Typical value = 1." },
3345            AttrDef { id: "GovCT2.tact", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Actuator time constant (Tact) (>= 0). Typical value = 0,4." },
3346            AttrDef { id: "GovCT2.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine lag time constant (Tb) (>= 0). Typical value = 0,1." },
3347            AttrDef { id: "GovCT2.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine lead time constant (Tc) (>= 0). Typical value = 0." },
3348            AttrDef { id: "GovCT2.tdgov", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor derivative controller time constant (Tdgov) (>= 0). Typical value = 1." },
3349            AttrDef { id: "GovCT2.teng", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Transport time delay for diesel engine used in representing diesel engines where there is a small but measurable transport delay between a change in fuel flow setting and the development of torque (Teng) (>= 0). Teng should be zero in all but special cases where this transport delay is of particular concern. Typical value = 0." },
3350            AttrDef { id: "GovCT2.tfload", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Load limiter time constant (Tfload) (>= 0). Typical value = 3." },
3351            AttrDef { id: "GovCT2.tpelec", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Electrical power transducer time constant (Tpelec) (>= 0). Typical value = 2,5." },
3352            AttrDef { id: "GovCT2.tsa", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Temperature detection lead time constant (Tsa) (>= 0). Typical value = 0." },
3353            AttrDef { id: "GovCT2.tsb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Temperature detection lag time constant (Tsb) (>= 0). Typical value = 50." },
3354            AttrDef { id: "GovCT2.vmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum valve position limit (Vmax) (> GovCT2.vmin). Typical value = 1." },
3355            AttrDef { id: "GovCT2.vmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum valve position limit (Vmin) (< GovCT2.vmax). Typical value = 0,175." },
3356            AttrDef { id: "GovCT2.wfnl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "No load fuel flow (Wfnl). Typical value = 0,187." },
3357            AttrDef { id: "GovCT2.wfspd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Switch for fuel source characteristic to recognize that fuel flow, for a given fuel valve stroke, can be proportional to engine speed (Wfspd). true = fuel flow proportional to speed (for some gas turbines and diesel engines with positive displacement fuel injectors) false = fuel control system keeps fuel flow independent of engine speed. Typical value = false." },
3358        ],
3359    },
3360    ClassDef {
3361        ns: "http://iec.ch/TC57/CIM100#",
3362        local: "GovGAST",
3363        qualified: "GovGAST",
3364        super_class: Some(375),
3365        concrete: true,
3366        origins: &["DY"],
3367        comment: "Single shaft gas turbine.",
3368        attrs: &[
3369            AttrDef { id: "GovGAST.at", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Ambient temperature load limit (Load Limit). Typical value = 1." },
3370            AttrDef { id: "GovGAST.dturb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine damping factor (Dturb). Typical value = 0,18." },
3371            AttrDef { id: "GovGAST.kt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Temperature limiter gain (Kt). Typical value = 3." },
3372            AttrDef { id: "GovGAST.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
3373            AttrDef { id: "GovGAST.r", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Permanent droop (R) (>0). Typical value = 0,04." },
3374            AttrDef { id: "GovGAST.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor mechanism time constant (T1) (>= 0). T1 represents the natural valve positioning time constant of the governor for small disturbances, as seen when rate limiting is not in effect. Typical value = 0,5." },
3375            AttrDef { id: "GovGAST.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine power time constant (T2) (>= 0). T2 represents delay due to internal energy storage of the gas turbine engine. T2 can be used to give a rough approximation to the delay associated with acceleration of the compressor spool of a multi-shaft engine, or with the compressibility of gas in the plenum of a free power turbine of an aero-derivative unit, for example. Typical value = 0,5." },
3376            AttrDef { id: "GovGAST.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine exhaust temperature time constant (T3) (>= 0). Typical value = 3." },
3377            AttrDef { id: "GovGAST.vmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum turbine power, PU of MWbase (Vmax) (> GovGAST.vmin). Typical value = 1." },
3378            AttrDef { id: "GovGAST.vmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum turbine power, PU of MWbase (Vmin) (< GovGAST.vmax). Typical value = 0." },
3379        ],
3380    },
3381    ClassDef {
3382        ns: "http://iec.ch/TC57/CIM100#",
3383        local: "GovGAST1",
3384        qualified: "GovGAST1",
3385        super_class: Some(375),
3386        concrete: true,
3387        origins: &["DY"],
3388        comment: "Modified single shaft gas turbine.",
3389        attrs: &[
3390            AttrDef { id: "GovGAST1.a", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine power time constant numerator scale factor (a). Typical value = 0,8." },
3391            AttrDef { id: "GovGAST1.b", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine power time constant denominator scale factor (b) (>0). Typical value = 1." },
3392            AttrDef { id: "GovGAST1.db1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intentional dead-band width (db1). Unit = Hz. Typical value = 0." },
3393            AttrDef { id: "GovGAST1.db2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Unintentional dead-band (db2). Unit = MW. Typical value = 0." },
3394            AttrDef { id: "GovGAST1.eps", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intentional db hysteresis (eps). Unit = Hz. Typical value = 0." },
3395            AttrDef { id: "GovGAST1.fidle", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fuel flow at zero power output (Fidle). Typical value = 0,18." },
3396            AttrDef { id: "GovGAST1.gv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 1, PU gv (Gv1). Typical value = 0." },
3397            AttrDef { id: "GovGAST1.gv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 2,PU gv (Gv2). Typical value = 0." },
3398            AttrDef { id: "GovGAST1.gv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 3, PU gv (Gv3). Typical value = 0." },
3399            AttrDef { id: "GovGAST1.gv4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 4, PU gv (Gv4). Typical value = 0." },
3400            AttrDef { id: "GovGAST1.gv5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 5, PU gv (Gv5). Typical value = 0." },
3401            AttrDef { id: "GovGAST1.gv6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 6, PU gv (Gv6). Typical value = 0." },
3402            AttrDef { id: "GovGAST1.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor gain (Ka). Typical value = 0." },
3403            AttrDef { id: "GovGAST1.kt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Temperature limiter gain (Kt). Typical value = 3." },
3404            AttrDef { id: "GovGAST1.lmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Ambient temperature load limit (Lmax). Lmax is the turbine power output corresponding to the limiting exhaust gas temperature. Typical value = 1." },
3405            AttrDef { id: "GovGAST1.loadinc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Valve position change allowed at fast rate (Loadinc). Typical value = 0,05." },
3406            AttrDef { id: "GovGAST1.ltrate", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum long term fuel valve opening rate (Ltrate). Typical value = 0,02." },
3407            AttrDef { id: "GovGAST1.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
3408            AttrDef { id: "GovGAST1.pgv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 1, PU power (Pgv1). Typical value = 0." },
3409            AttrDef { id: "GovGAST1.pgv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 2, PU power (Pgv2). Typical value = 0." },
3410            AttrDef { id: "GovGAST1.pgv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 3, PU power (Pgv3). Typical value = 0." },
3411            AttrDef { id: "GovGAST1.pgv4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 4, PU power (Pgv4). Typical value = 0." },
3412            AttrDef { id: "GovGAST1.pgv5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 5, PU power (Pgv5). Typical value = 0." },
3413            AttrDef { id: "GovGAST1.pgv6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 6, PU power (Pgv6). Typical value = 0." },
3414            AttrDef { id: "GovGAST1.r", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Permanent droop (R) (>0). Typical value = 0,04." },
3415            AttrDef { id: "GovGAST1.rmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum fuel valve opening rate (Rmax). Unit = PU / s. Typical value = 1." },
3416            AttrDef { id: "GovGAST1.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor mechanism time constant (T1) (>= 0). T1 represents the natural valve positioning time constant of the governor for small disturbances, as seen when rate limiting is not in effect. Typical value = 0,5." },
3417            AttrDef { id: "GovGAST1.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine power time constant (T2) (>= 0). T2 represents delay due to internal energy storage of the gas turbine engine. T2 can be used to give a rough approximation to the delay associated with acceleration of the compressor spool of a multi-shaft engine, or with the compressibility of gas in the plenum of the free power turbine of an aero-derivative unit, for example. Typical value = 0,5." },
3418            AttrDef { id: "GovGAST1.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine exhaust temperature time constant (T3) (>= 0). T3 represents delay in the exhaust temperature and load limiting system. Typical value = 3." },
3419            AttrDef { id: "GovGAST1.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor lead time constant (T4) (>= 0). Typical value = 0." },
3420            AttrDef { id: "GovGAST1.t5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor lag time constant (T5) (>= 0). If = 0, entire gain and lead-lag block is bypassed. Typical value = 0." },
3421            AttrDef { id: "GovGAST1.tltr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Valve position averaging time constant (Tltr) (>= 0). Typical value = 10." },
3422            AttrDef { id: "GovGAST1.vmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum turbine power, PU of MWbase (Vmax) (> GovGAST1.vmin). Typical value = 1." },
3423            AttrDef { id: "GovGAST1.vmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum turbine power, PU of MWbase (Vmin) (< GovGAST1.vmax). Typical value = 0." },
3424        ],
3425    },
3426    ClassDef {
3427        ns: "http://iec.ch/TC57/CIM100#",
3428        local: "GovGAST2",
3429        qualified: "GovGAST2",
3430        super_class: Some(375),
3431        concrete: true,
3432        origins: &["DY"],
3433        comment: "Gas turbine.",
3434        attrs: &[
3435            AttrDef { id: "GovGAST2.a", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Valve positioner (A)." },
3436            AttrDef { id: "GovGAST2.af1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exhaust temperature parameter (Af1). Unit = PU temperature. Based on temperature in degrees C." },
3437            AttrDef { id: "GovGAST2.af2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient equal to 0,5(1-speed) (Af2)." },
3438            AttrDef { id: "GovGAST2.b", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Valve positioner (B)." },
3439            AttrDef { id: "GovGAST2.bf1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "(Bf1). Bf1 = E(1 - W) where E (speed sensitivity coefficient) is 0,55 to 0,65 x Tr. Unit = PU temperature. Based on temperature in degrees C." },
3440            AttrDef { id: "GovGAST2.bf2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine torque coefficient Khhv (depends on heating value of fuel stream in combustion chamber) (Bf2)." },
3441            AttrDef { id: "GovGAST2.c", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Valve positioner (C)." },
3442            AttrDef { id: "GovGAST2.cf2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient defining fuel flow where power output is 0% (Cf2). Synchronous but no output. Typically 0,23 x Khhv (23% fuel flow)." },
3443            AttrDef { id: "GovGAST2.ecr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Combustion reaction time delay (Ecr) (>= 0)." },
3444            AttrDef { id: "GovGAST2.etd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine and exhaust delay (Etd) (>= 0)." },
3445            AttrDef { id: "GovGAST2.k3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Ratio of fuel adjustment (K3)." },
3446            AttrDef { id: "GovGAST2.k4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain of radiation shield (K4)." },
3447            AttrDef { id: "GovGAST2.k5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain of radiation shield (K5)." },
3448            AttrDef { id: "GovGAST2.k6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum fuel flow (K6)." },
3449            AttrDef { id: "GovGAST2.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fuel system feedback (Kf)." },
3450            AttrDef { id: "GovGAST2.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
3451            AttrDef { id: "GovGAST2.t", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fuel control time constant (T) (>= 0)." },
3452            AttrDef { id: "GovGAST2.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Radiation shield time constant (T3) (>= 0)." },
3453            AttrDef { id: "GovGAST2.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Thermocouple time constant (T4) (>= 0)." },
3454            AttrDef { id: "GovGAST2.t5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Temperature control time constant (T5) (>= 0)." },
3455            AttrDef { id: "GovGAST2.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Temperature control (Tc). Unit = °F or °C depending on parameters Af1 and Bf1." },
3456            AttrDef { id: "GovGAST2.tcd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Compressor discharge time constant (Tcd) (>= 0)." },
3457            AttrDef { id: "GovGAST2.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fuel system time constant (Tf) (>= 0)." },
3458            AttrDef { id: "GovGAST2.tmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum turbine limit (Tmax) (> GovGAST2.tmin)." },
3459            AttrDef { id: "GovGAST2.tmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum turbine limit (Tmin) (< GovGAST2.tmax)." },
3460            AttrDef { id: "GovGAST2.tr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rated temperature (Tr). Unit = °C depending on parameters Af1 and Bf1." },
3461            AttrDef { id: "GovGAST2.trate", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine rating (Trate). Unit = MW." },
3462            AttrDef { id: "GovGAST2.tt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Temperature controller integration rate (Tt) (>= 0)." },
3463            AttrDef { id: "GovGAST2.w", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor gain (1/droop) on turbine rating (W)." },
3464            AttrDef { id: "GovGAST2.x", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor lead time constant (X) (>= 0)." },
3465            AttrDef { id: "GovGAST2.y", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor lag time constant (Y) (> 0)." },
3466            AttrDef { id: "GovGAST2.z", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["DY"], comment: "Governor mode (Z). 1 = droop 0 = isochronous." },
3467        ],
3468    },
3469    ClassDef {
3470        ns: "http://iec.ch/TC57/CIM100#",
3471        local: "GovGAST3",
3472        qualified: "GovGAST3",
3473        super_class: Some(375),
3474        concrete: true,
3475        origins: &["DY"],
3476        comment: "Generic turbogas with acceleration and temperature controller.",
3477        attrs: &[
3478            AttrDef { id: "GovGAST3.bca", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Acceleration limit set-point (Bca). Unit = 1/s. Typical value = 0,01." },
3479            AttrDef { id: "GovGAST3.bp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Droop (bp). Typical value = 0,05." },
3480            AttrDef { id: "GovGAST3.dtc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exhaust temperature variation due to fuel flow increasing from 0 to 1 PU (deltaTc). Typical value = 390." },
3481            AttrDef { id: "GovGAST3.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum fuel flow (Ka). Typical value = 0,23." },
3482            AttrDef { id: "GovGAST3.kac", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fuel system feedback (KAC). Typical value = 0." },
3483            AttrDef { id: "GovGAST3.kca", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Acceleration control integral gain (Kca). Unit = 1/s. Typical value = 100." },
3484            AttrDef { id: "GovGAST3.ksi", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain of radiation shield (Ksi). Typical value = 0,8." },
3485            AttrDef { id: "GovGAST3.ky", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient of transfer function of fuel valve positioner (Ky). Typical value = 1." },
3486            AttrDef { id: "GovGAST3.mnef", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fuel flow maximum negative error value (MNef). Typical value = -0,05." },
3487            AttrDef { id: "GovGAST3.mxef", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fuel flow maximum positive error value (MXef). Typical value = 0,05." },
3488            AttrDef { id: "GovGAST3.rcmn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum fuel flow (RCMN). Typical value = -0,1." },
3489            AttrDef { id: "GovGAST3.rcmx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum fuel flow (RCMX). Typical value = 1." },
3490            AttrDef { id: "GovGAST3.tac", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fuel control time constant (Tac) (>= 0). Typical value = 0,1." },
3491            AttrDef { id: "GovGAST3.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Compressor discharge volume time constant (Tc) (>= 0). Typical value = 0,2." },
3492            AttrDef { id: "GovGAST3.td", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Temperature controller derivative gain (Td) (>= 0). Typical value = 3,3." },
3493            AttrDef { id: "GovGAST3.tfen", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine rated exhaust temperature correspondent to Pm=1 PU (Tfen). Typical value = 540." },
3494            AttrDef { id: "GovGAST3.tg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant of speed governor (Tg) (>= 0). Typical value = 0,05." },
3495            AttrDef { id: "GovGAST3.tsi", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant of radiation shield (Tsi) (>= 0). Typical value = 15." },
3496            AttrDef { id: "GovGAST3.tt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Temperature controller integration rate (Tt). Typical value = 250." },
3497            AttrDef { id: "GovGAST3.ttc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant of thermocouple (Ttc) (>= 0). Typical value = 2,5." },
3498            AttrDef { id: "GovGAST3.ty", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant of fuel valve positioner (Ty) (>= 0). Typical value = 0,2." },
3499        ],
3500    },
3501    ClassDef {
3502        ns: "http://iec.ch/TC57/CIM100#",
3503        local: "GovGAST4",
3504        qualified: "GovGAST4",
3505        super_class: Some(375),
3506        concrete: true,
3507        origins: &["DY"],
3508        comment: "Generic turbogas.",
3509        attrs: &[
3510            AttrDef { id: "GovGAST4.bp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Droop (bp). Typical value = 0,05." },
3511            AttrDef { id: "GovGAST4.ktm", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Compressor gain (Ktm). Typical value = 0." },
3512            AttrDef { id: "GovGAST4.mnef", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fuel flow maximum negative error value (MNef). Typical value = -0,05." },
3513            AttrDef { id: "GovGAST4.mxef", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fuel flow maximum positive error value (MXef). Typical value = 0,05." },
3514            AttrDef { id: "GovGAST4.rymn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum valve opening (RYMN). Typical value = 0." },
3515            AttrDef { id: "GovGAST4.rymx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum valve opening (RYMX). Typical value = 1,1." },
3516            AttrDef { id: "GovGAST4.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening velocity (TA) (>= 0). Typical value = 3." },
3517            AttrDef { id: "GovGAST4.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate closing velocity (TC) (>= 0). Typical value = 0,5." },
3518            AttrDef { id: "GovGAST4.tcm", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fuel control time constant (Tcm) (>= 0). Typical value = 0,1." },
3519            AttrDef { id: "GovGAST4.tm", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Compressor discharge volume time constant (Tm) (>= 0). Typical value = 0,2." },
3520            AttrDef { id: "GovGAST4.ty", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant of fuel valve positioner (Ty) (>= 0). Typical value = 0,1." },
3521        ],
3522    },
3523    ClassDef {
3524        ns: "http://iec.ch/TC57/CIM100#",
3525        local: "GovGASTWD",
3526        qualified: "GovGASTWD",
3527        super_class: Some(375),
3528        concrete: true,
3529        origins: &["DY"],
3530        comment: "Woodward™ gas turbine governor. [Footnote: Woodward gas turbines are an example of suitable products available commercially. This information is given for the convenience of users of this document and does not constitute an endorsement by IEC of these products.]",
3531        attrs: &[
3532            AttrDef { id: "GovGASTWD.a", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Valve positioner (A)." },
3533            AttrDef { id: "GovGASTWD.af1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exhaust temperature parameter (Af1)." },
3534            AttrDef { id: "GovGASTWD.af2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient equal to 0,5(1-speed) (Af2)." },
3535            AttrDef { id: "GovGASTWD.b", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Valve positioner (B)." },
3536            AttrDef { id: "GovGASTWD.bf1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "(Bf1). Bf1 = E(1-w) where E (speed sensitivity coefficient) is 0,55 to 0,65 x Tr." },
3537            AttrDef { id: "GovGASTWD.bf2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine torque coefficient Khhv (depends on heating value of fuel stream in combustion chamber) (Bf2)." },
3538            AttrDef { id: "GovGASTWD.c", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Valve positioner (C)." },
3539            AttrDef { id: "GovGASTWD.cf2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient defining fuel flow where power output is 0 % (Cf2). Synchronous but no output. Typically 0,23 x Khhv (23 % fuel flow)." },
3540            AttrDef { id: "GovGASTWD.ecr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Combustion reaction time delay (Ecr) (>= 0)." },
3541            AttrDef { id: "GovGASTWD.etd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine and exhaust delay (Etd) (>= 0)." },
3542            AttrDef { id: "GovGASTWD.k3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Ratio of fuel adjustment (K3)." },
3543            AttrDef { id: "GovGASTWD.k4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain of radiation shield (K4)." },
3544            AttrDef { id: "GovGASTWD.k5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain of radiation shield (K5)." },
3545            AttrDef { id: "GovGASTWD.k6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum fuel flow (K6)." },
3546            AttrDef { id: "GovGASTWD.kd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Drop governor gain (Kd)." },
3547            AttrDef { id: "GovGASTWD.kdroop", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "(Kdroop) (>= 0)." },
3548            AttrDef { id: "GovGASTWD.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fuel system feedback (Kf)." },
3549            AttrDef { id: "GovGASTWD.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Isochronous Governor Gain (Ki)." },
3550            AttrDef { id: "GovGASTWD.kp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PID proportional gain (Kp)." },
3551            AttrDef { id: "GovGASTWD.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
3552            AttrDef { id: "GovGASTWD.t", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fuel control time constant (T) (>= 0)." },
3553            AttrDef { id: "GovGASTWD.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Radiation shield time constant (T3) (>= 0)." },
3554            AttrDef { id: "GovGASTWD.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Thermocouple time constant (T4) (>= 0)." },
3555            AttrDef { id: "GovGASTWD.t5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Temperature control time constant (T5) (>= 0)." },
3556            AttrDef { id: "GovGASTWD.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Temperature control (Tc)." },
3557            AttrDef { id: "GovGASTWD.tcd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Compressor discharge time constant (Tcd) (>= 0)." },
3558            AttrDef { id: "GovGASTWD.td", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power transducer time constant (Td) (>= 0)." },
3559            AttrDef { id: "GovGASTWD.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fuel system time constant (Tf) (>= 0)." },
3560            AttrDef { id: "GovGASTWD.tmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum Turbine limit (Tmax) (> GovGASTWD.tmin)." },
3561            AttrDef { id: "GovGASTWD.tmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum turbine limit (Tmin) (< GovGASTWD.tmax)." },
3562            AttrDef { id: "GovGASTWD.tr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Temperature", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rated temperature (Tr)." },
3563            AttrDef { id: "GovGASTWD.trate", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine rating (Trate). Unit = MW." },
3564            AttrDef { id: "GovGASTWD.tt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Temperature controller integration rate (Tt) (>= 0)." },
3565        ],
3566    },
3567    ClassDef {
3568        ns: "http://iec.ch/TC57/CIM100#",
3569        local: "GovHydro1",
3570        qualified: "GovHydro1",
3571        super_class: Some(375),
3572        concrete: true,
3573        origins: &["DY"],
3574        comment: "Basic hydro turbine governor.",
3575        attrs: &[
3576            AttrDef { id: "GovHydro1.at", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine gain (At) (> 0). Typical value = 1,2." },
3577            AttrDef { id: "GovHydro1.dturb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine damping factor (Dturb) (>= 0). Typical value = 0,5." },
3578            AttrDef { id: "GovHydro1.gmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening (Gmax) (> 0 and > GovHydro.gmin). Typical value = 1." },
3579            AttrDef { id: "GovHydro1.gmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum gate opening (Gmin) (>= 0 and < GovHydro1.gmax). Typical value = 0." },
3580            AttrDef { id: "GovHydro1.hdam", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine nominal head (hdam). Typical value = 1." },
3581            AttrDef { id: "GovHydro1.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
3582            AttrDef { id: "GovHydro1.qnl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "No-load flow at nominal head (qnl) (>= 0). Typical value = 0,08." },
3583            AttrDef { id: "GovHydro1.rperm", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Permanent droop (R) (> 0). Typical value = 0,04." },
3584            AttrDef { id: "GovHydro1.rtemp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Temporary droop (r) (> GovHydro1.rperm). Typical value = 0,3." },
3585            AttrDef { id: "GovHydro1.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter time constant (Tf) (> 0). Typical value = 0,05." },
3586            AttrDef { id: "GovHydro1.tg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate servo time constant (Tg) (> 0). Typical value = 0,5." },
3587            AttrDef { id: "GovHydro1.tr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Washout time constant (Tr) (> 0). Typical value = 5." },
3588            AttrDef { id: "GovHydro1.tw", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Water inertia time constant (Tw) (> 0). Typical value = 1." },
3589            AttrDef { id: "GovHydro1.velm", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate velocity (Vlem) (> 0). Typical value = 0,2." },
3590        ],
3591    },
3592    ClassDef {
3593        ns: "http://iec.ch/TC57/CIM100#",
3594        local: "GovHydro2",
3595        qualified: "GovHydro2",
3596        super_class: Some(375),
3597        concrete: true,
3598        origins: &["DY"],
3599        comment: "IEEE hydro turbine governor with straightforward penstock configuration and hydraulic-dashpot governor.",
3600        attrs: &[
3601            AttrDef { id: "GovHydro2.aturb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine numerator multiplier (Aturb). Typical value = -1." },
3602            AttrDef { id: "GovHydro2.bturb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine denominator multiplier (Bturb) (> 0). Typical value = 0,5." },
3603            AttrDef { id: "GovHydro2.db1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intentional deadband width (db1). Unit = Hz. Typical value = 0." },
3604            AttrDef { id: "GovHydro2.db2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Unintentional deadband (db2). Unit = MW. Typical value = 0." },
3605            AttrDef { id: "GovHydro2.eps", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intentional db hysteresis (eps). Unit = Hz. Typical value = 0." },
3606            AttrDef { id: "GovHydro2.gv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 1, PU gv (Gv1). Typical value = 0." },
3607            AttrDef { id: "GovHydro2.gv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 2, PU gv (Gv2). Typical value = 0." },
3608            AttrDef { id: "GovHydro2.gv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 3, PU gv (Gv3). Typical value = 0." },
3609            AttrDef { id: "GovHydro2.gv4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 4, PU gv (Gv4). Typical value = 0." },
3610            AttrDef { id: "GovHydro2.gv5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 5, PU gv (Gv5). Typical value = 0." },
3611            AttrDef { id: "GovHydro2.gv6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 6, PU gv (Gv6). Typical value = 0." },
3612            AttrDef { id: "GovHydro2.kturb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine gain (Kturb). Typical value = 1." },
3613            AttrDef { id: "GovHydro2.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
3614            AttrDef { id: "GovHydro2.pgv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 1, PU power (Pgv1). Typical value = 0." },
3615            AttrDef { id: "GovHydro2.pgv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 2, PU power (Pgv2). Typical value = 0." },
3616            AttrDef { id: "GovHydro2.pgv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 3, PU power (Pgv3). Typical value = 0." },
3617            AttrDef { id: "GovHydro2.pgv4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 4, PU power (Pgv4). Typical value = 0." },
3618            AttrDef { id: "GovHydro2.pgv5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 5, PU power (Pgv5). Typical value = 0." },
3619            AttrDef { id: "GovHydro2.pgv6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 6, PU power (Pgv6). Typical value = 0." },
3620            AttrDef { id: "GovHydro2.pmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening (Pmax) (> GovHydro2.pmin). Typical value = 1." },
3621            AttrDef { id: "GovHydro2.pmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum gate opening (Pmin) (< GovHydro2.pmax). Typical value = 0." },
3622            AttrDef { id: "GovHydro2.rperm", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Permanent droop (Rperm). Typical value = 0,05." },
3623            AttrDef { id: "GovHydro2.rtemp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Temporary droop (Rtemp). Typical value = 0,5." },
3624            AttrDef { id: "GovHydro2.tg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate servo time constant (Tg) (> 0). Typical value = 0,5." },
3625            AttrDef { id: "GovHydro2.tp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Pilot servo valve time constant (Tp) (>= 0). Typical value = 0,03." },
3626            AttrDef { id: "GovHydro2.tr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Dashpot time constant (Tr) (>= 0). Typical value = 12." },
3627            AttrDef { id: "GovHydro2.tw", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Water inertia time constant (Tw) (>= 0). Typical value = 2." },
3628            AttrDef { id: "GovHydro2.uc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate closing velocity (Uc) (< 0). Unit = PU / s. Typical value = -0,1." },
3629            AttrDef { id: "GovHydro2.uo", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening velocity (Uo). Unit = PU / s. Typical value = 0,1." },
3630        ],
3631    },
3632    ClassDef {
3633        ns: "http://iec.ch/TC57/CIM100#",
3634        local: "GovHydro3",
3635        qualified: "GovHydro3",
3636        super_class: Some(375),
3637        concrete: true,
3638        origins: &["DY"],
3639        comment: "Modified IEEE hydro governor-turbine. This model differs from that defined in the IEEE modelling guideline paper in that the limits on gate position and velocity do not permit 'wind up' of the upstream signals.",
3640        attrs: &[
3641            AttrDef { id: "GovHydro3.at", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine gain (At) (>0). Typical value = 1,2." },
3642            AttrDef { id: "GovHydro3.db1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intentional dead-band width (db1). Unit = Hz. Typical value = 0." },
3643            AttrDef { id: "GovHydro3.db2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Unintentional dead-band (db2). Unit = MW. Typical value = 0." },
3644            AttrDef { id: "GovHydro3.dturb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine damping factor (Dturb). Typical value = 0,2." },
3645            AttrDef { id: "GovHydro3.eps", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intentional db hysteresis (eps). Unit = Hz. Typical value = 0." },
3646            AttrDef { id: "GovHydro3.governorControl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Governor control flag (Cflag). true = PID control is active false = double derivative control is active. Typical value = true." },
3647            AttrDef { id: "GovHydro3.gv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 1, PU gv (Gv1). Typical value = 0." },
3648            AttrDef { id: "GovHydro3.gv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 2, PU gv (Gv2). Typical value = 0." },
3649            AttrDef { id: "GovHydro3.gv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 3, PU gv (Gv3). Typical value = 0." },
3650            AttrDef { id: "GovHydro3.gv4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 4, PU gv (Gv4). Typical value = 0." },
3651            AttrDef { id: "GovHydro3.gv5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 5, PU gv (Gv5). Typical value = 0." },
3652            AttrDef { id: "GovHydro3.gv6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 6, PU gv (Gv6). Typical value = 0." },
3653            AttrDef { id: "GovHydro3.h0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine nominal head (H0). Typical value = 1." },
3654            AttrDef { id: "GovHydro3.k1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Derivative gain (K1). Typical value = 0,01." },
3655            AttrDef { id: "GovHydro3.k2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Double derivative gain, if Cflag = -1 (K2). Typical value = 2,5." },
3656            AttrDef { id: "GovHydro3.kg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate servo gain (Kg). Typical value = 2." },
3657            AttrDef { id: "GovHydro3.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Integral gain (Ki). Typical value = 0,5." },
3658            AttrDef { id: "GovHydro3.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
3659            AttrDef { id: "GovHydro3.pgv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 1, PU power (Pgv1). Typical value = 0." },
3660            AttrDef { id: "GovHydro3.pgv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 2, PU power (Pgv2). Typical value = 0." },
3661            AttrDef { id: "GovHydro3.pgv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 3, PU power (Pgv3). Typical value = 0." },
3662            AttrDef { id: "GovHydro3.pgv4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 4, PU power (Pgv4). Typical value = 0." },
3663            AttrDef { id: "GovHydro3.pgv5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 5, PU power (Pgv5). Typical value = 0." },
3664            AttrDef { id: "GovHydro3.pgv6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 6, PU power (Pgv6). Typical value = 0." },
3665            AttrDef { id: "GovHydro3.pmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening, PU of MWbase (Pmax) (> GovHydro3.pmin). Typical value = 1." },
3666            AttrDef { id: "GovHydro3.pmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum gate opening, PU of MWbase (Pmin) (< GovHydro3.pmax). Typical value = 0." },
3667            AttrDef { id: "GovHydro3.qnl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "No-load turbine flow at nominal head (Qnl). Typical value = 0,08." },
3668            AttrDef { id: "GovHydro3.relec", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Steady-state droop, PU, for electrical power feedback (Relec). Typical value = 0,05." },
3669            AttrDef { id: "GovHydro3.rgate", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Steady-state droop, PU, for governor output feedback (Rgate). Typical value = 0." },
3670            AttrDef { id: "GovHydro3.td", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Input filter time constant (Td) (>= 0). Typical value = 0,05." },
3671            AttrDef { id: "GovHydro3.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Washout time constant (Tf) (>= 0). Typical value = 0,1." },
3672            AttrDef { id: "GovHydro3.tp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate servo time constant (Tp) (>= 0). Typical value = 0,05." },
3673            AttrDef { id: "GovHydro3.tt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power feedback time constant (Tt) (>= 0). Typical value = 0,2." },
3674            AttrDef { id: "GovHydro3.tw", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Water inertia time constant (Tw) (>= 0). If = 0, block is bypassed. Typical value = 1." },
3675            AttrDef { id: "GovHydro3.velcl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate closing velocity (Velcl). Unit = PU / s. Typical value = -0,2." },
3676            AttrDef { id: "GovHydro3.velop", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening velocity (Velop). Unit = PU / s. Typical value = 0,2." },
3677        ],
3678    },
3679    ClassDef {
3680        ns: "http://iec.ch/TC57/CIM100#",
3681        local: "GovHydro4",
3682        qualified: "GovHydro4",
3683        super_class: Some(375),
3684        concrete: true,
3685        origins: &["DY"],
3686        comment: "Hydro turbine and governor. Represents plants with straight-forward penstock configurations and hydraulic governors of the traditional 'dashpot' type. This model can be used to represent simple, Francis/Pelton or Kaplan turbines.",
3687        attrs: &[
3688            AttrDef { id: "GovHydro4.at", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine gain (At). Typical value = 1,2." },
3689            AttrDef { id: "GovHydro4.bgv0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Kaplan blade servo point 0 (Bgv0) (= 0 for simple, = 0 for Francis/Pelton). Typical value for Kaplan = 0." },
3690            AttrDef { id: "GovHydro4.bgv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Kaplan blade servo point 1 (Bgv1) (= 0 for simple, = 0 for Francis/Pelton). Typical value for Kaplan = 0." },
3691            AttrDef { id: "GovHydro4.bgv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Kaplan blade servo point 2 (Bgv2) (= 0 for simple, = 0 for Francis/Pelton). Typical value for Kaplan = 0,1." },
3692            AttrDef { id: "GovHydro4.bgv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Kaplan blade servo point 3 (Bgv3) (= 0 for simple, = 0 for Francis/Pelton). Typical value for Kaplan = 0,667." },
3693            AttrDef { id: "GovHydro4.bgv4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Kaplan blade servo point 4 (Bgv4) (= 0 for simple, = 0 for Francis/Pelton). Typical value for Kaplan = 0,9." },
3694            AttrDef { id: "GovHydro4.bgv5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Kaplan blade servo point 5 (Bgv5) (= 0 for simple, = 0 for Francis/Pelton). Typical value for Kaplan = 1." },
3695            AttrDef { id: "GovHydro4.bmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum blade adjustment factor (Bmax) (= 0 for simple, = 0 for Francis/Pelton). Typical value for Kaplan = 1,1276." },
3696            AttrDef { id: "GovHydro4.db1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intentional deadband width (db1). Unit = Hz. Typical value = 0." },
3697            AttrDef { id: "GovHydro4.db2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Unintentional dead-band (db2). Unit = MW. Typical value = 0." },
3698            AttrDef { id: "GovHydro4.dturb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine damping factor (Dturb). Unit = delta P (PU of MWbase) / delta speed (PU). Typical value for simple = 0,5, Francis/Pelton = 1,1, Kaplan = 1,1." },
3699            AttrDef { id: "GovHydro4.eps", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intentional db hysteresis (eps). Unit = Hz. Typical value = 0." },
3700            AttrDef { id: "GovHydro4.gmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening, PU of MWbase (Gmax) (> GovHydro4.gmin). Typical value = 1." },
3701            AttrDef { id: "GovHydro4.gmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum gate opening, PU of MWbase (Gmin) (< GovHydro4.gmax). Typical value = 0." },
3702            AttrDef { id: "GovHydro4.gv0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 0, PU gv (Gv0) (= 0 for simple). Typical for Francis/Pelton = 0,1, Kaplan = 0,1." },
3703            AttrDef { id: "GovHydro4.gv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 1, PU gv (Gv1) (= 0 for simple, > GovHydro4.gv0 for Francis/Pelton and Kaplan). Typical value for Francis/Pelton = 0,4, Kaplan = 0,4." },
3704            AttrDef { id: "GovHydro4.gv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 2, PU gv (Gv2) (= 0 for simple, > GovHydro4.gv1 for Francis/Pelton and Kaplan). Typical value for Francis/Pelton = 0,5, Kaplan = 0,5." },
3705            AttrDef { id: "GovHydro4.gv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 3, PU gv (Gv3) (= 0 for simple, > GovHydro4.gv2 for Francis/Pelton and Kaplan). Typical value for Francis/Pelton = 0,7, Kaplan = 0,7." },
3706            AttrDef { id: "GovHydro4.gv4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 4, PU gv (Gv4) (= 0 for simple, > GovHydro4.gv3 for Francis/Pelton and Kaplan). Typical value for Francis/Pelton = 0,8, Kaplan = 0,8." },
3707            AttrDef { id: "GovHydro4.gv5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 5, PU gv (Gv5) (= 0 for simple, < 1 and > GovHydro4.gv4 for Francis/Pelton and Kaplan). Typical value for Francis/Pelton = 0,9, Kaplan = 0,9." },
3708            AttrDef { id: "GovHydro4.hdam", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Head available at dam (hdam). Typical value = 1." },
3709            AttrDef { id: "GovHydro4.model", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "GovHydro4ModelKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "The kind of model being represented (simple, Francis/Pelton or Kaplan)." },
3710            AttrDef { id: "GovHydro4.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
3711            AttrDef { id: "GovHydro4.pgv0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 0, PU power (Pgv0) (= 0 for simple). Typical value = 0." },
3712            AttrDef { id: "GovHydro4.pgv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 1, PU power (Pgv1) (= 0 for simple). Typical value for Francis/Pelton = 0,42, Kaplan = 0,35." },
3713            AttrDef { id: "GovHydro4.pgv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 2, PU power (Pgv2) (= 0 for simple). Typical value for Francis/Pelton = 0,56, Kaplan = 0,468." },
3714            AttrDef { id: "GovHydro4.pgv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 3, PU power (Pgv3) (= 0 for simple). Typical value for Francis/Pelton = 0,8, Kaplan = 0,796." },
3715            AttrDef { id: "GovHydro4.pgv4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 4, PU power (Pgv4) (= 0 for simple). Typical value for Francis/Pelton = 0,9, Kaplan = 0,917." },
3716            AttrDef { id: "GovHydro4.pgv5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 5, PU power (Pgv5) (= 0 for simple). Typical value for Francis/Pelton = 0,97, Kaplan = 0,99." },
3717            AttrDef { id: "GovHydro4.qnl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "No-load flow at nominal head (Qnl). Typical value for simple = 0,08, Francis/Pelton = 0, Kaplan = 0." },
3718            AttrDef { id: "GovHydro4.rperm", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Permanent droop (Rperm) (>= 0). Typical value = 0,05." },
3719            AttrDef { id: "GovHydro4.rtemp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Temporary droop (Rtemp) (>= 0). Typical value = 0,3." },
3720            AttrDef { id: "GovHydro4.tblade", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Blade servo time constant (Tblade) (>= 0). Typical value = 100." },
3721            AttrDef { id: "GovHydro4.tg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate servo time constant (Tg) (> 0). Typical value = 0,5." },
3722            AttrDef { id: "GovHydro4.tp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Pilot servo time constant (Tp) (>= 0). Typical value = 0,1." },
3723            AttrDef { id: "GovHydro4.tr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Dashpot time constant (Tr) (>= 0). Typical value = 5." },
3724            AttrDef { id: "GovHydro4.tw", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Water inertia time constant (Tw) (> 0). Typical value = 1." },
3725            AttrDef { id: "GovHydro4.uc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Max gate closing velocity (Uc). Typical value = 0,2." },
3726            AttrDef { id: "GovHydro4.uo", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Max gate opening velocity (Uo). Typical value = 0,2." },
3727        ],
3728    },
3729    ClassDef {
3730        ns: "http://iec.ch/TC57/CIM100#",
3731        local: "GovHydroDD",
3732        qualified: "GovHydroDD",
3733        super_class: Some(375),
3734        concrete: true,
3735        origins: &["DY"],
3736        comment: "Double derivative hydro governor and turbine.",
3737        attrs: &[
3738            AttrDef { id: "GovHydroDD.aturb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine numerator multiplier (Aturb) (see parameter detail 3). Typical value = -1." },
3739            AttrDef { id: "GovHydroDD.bturb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine denominator multiplier (Bturb) (see parameter detail 3). Typical value = 0,5." },
3740            AttrDef { id: "GovHydroDD.db1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intentional dead-band width (db1). Unit = Hz. Typical value = 0." },
3741            AttrDef { id: "GovHydroDD.db2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Unintentional dead-band (db2). Unit = MW. Typical value = 0." },
3742            AttrDef { id: "GovHydroDD.eps", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intentional db hysteresis (eps). Unit = Hz. Typical value = 0." },
3743            AttrDef { id: "GovHydroDD.gmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening (Gmax) (> GovHydroDD.gmin). Typical value = 0." },
3744            AttrDef { id: "GovHydroDD.gmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum gate opening (Gmin) (< GovHydroDD.gmax). Typical value = 0." },
3745            AttrDef { id: "GovHydroDD.gv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 1, PU gv (Gv1). Typical value = 0." },
3746            AttrDef { id: "GovHydroDD.gv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 2, PU gv (Gv2). Typical value = 0." },
3747            AttrDef { id: "GovHydroDD.gv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 3, PU gv (Gv3). Typical value = 0." },
3748            AttrDef { id: "GovHydroDD.gv4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 4, PU gv (Gv4). Typical value = 0." },
3749            AttrDef { id: "GovHydroDD.gv5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 5, PU gv (Gv5). Typical value = 0." },
3750            AttrDef { id: "GovHydroDD.gv6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 6, PU gv (Gv6). Typical value = 0." },
3751            AttrDef { id: "GovHydroDD.inputSignal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Input signal switch (Flag). true = Pe input is used false = feedback is received from CV. Flag is normally dependent on Tt. If Tt is zero, Flag is set to false. If Tt is not zero, Flag is set to true. Typical value = true." },
3752            AttrDef { id: "GovHydroDD.k1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Single derivative gain (K1). Typical value = 3,6." },
3753            AttrDef { id: "GovHydroDD.k2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Double derivative gain (K2). Typical value = 0,2." },
3754            AttrDef { id: "GovHydroDD.kg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate servo gain (Kg). Typical value = 3." },
3755            AttrDef { id: "GovHydroDD.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Integral gain (Ki). Typical value = 1." },
3756            AttrDef { id: "GovHydroDD.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (>0). Unit = MW." },
3757            AttrDef { id: "GovHydroDD.pgv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 1, PU power (Pgv1). Typical value = 0." },
3758            AttrDef { id: "GovHydroDD.pgv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 2, PU power (Pgv2). Typical value = 0." },
3759            AttrDef { id: "GovHydroDD.pgv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 3, PU power (Pgv3). Typical value = 0." },
3760            AttrDef { id: "GovHydroDD.pgv4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 4, PU power (Pgv4). Typical value = 0." },
3761            AttrDef { id: "GovHydroDD.pgv5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 5, PU power (Pgv5). Typical value = 0." },
3762            AttrDef { id: "GovHydroDD.pgv6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 6, PU power (Pgv6). Typical value = 0." },
3763            AttrDef { id: "GovHydroDD.pmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening, PU of MWbase (Pmax) (> GovHydroDD.pmin). Typical value = 1." },
3764            AttrDef { id: "GovHydroDD.pmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum gate opening, PU of MWbase (Pmin) (> GovHydroDD.pmax). Typical value = 0." },
3765            AttrDef { id: "GovHydroDD.r", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Steady state droop (R). Typical value = 0,05." },
3766            AttrDef { id: "GovHydroDD.td", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Input filter time constant (Td) (>= 0). If = 0, block is bypassed. Typical value = 0." },
3767            AttrDef { id: "GovHydroDD.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Washout time constant (Tf) (>= 0). Typical value = 0,1." },
3768            AttrDef { id: "GovHydroDD.tp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate servo time constant (Tp) (>= 0). If = 0, block is bypassed. Typical value = 0,35." },
3769            AttrDef { id: "GovHydroDD.tt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power feedback time constant (Tt) (>= 0). If = 0, block is bypassed. Typical value = 0,02." },
3770            AttrDef { id: "GovHydroDD.tturb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine time constant (Tturb) (>= 0). See parameter detail 3. Typical value = 0,8." },
3771            AttrDef { id: "GovHydroDD.velcl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate closing velocity (Velcl). Unit = PU / s. Typical value = -0,14." },
3772            AttrDef { id: "GovHydroDD.velop", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening velocity (Velop). Unit = PU / s. Typical value = 0,09." },
3773        ],
3774    },
3775    ClassDef {
3776        ns: "http://iec.ch/TC57/CIM100#",
3777        local: "GovHydroFrancis",
3778        qualified: "GovHydroFrancis",
3779        super_class: Some(375),
3780        concrete: true,
3781        origins: &["DY"],
3782        comment: "Detailed hydro unit - Francis model. This model can be used to represent three types of governors. A schematic of the hydraulic system of detailed hydro unit models, such as Francis and Pelton, is provided in the DetailedHydroModelHydraulicSystem diagram.",
3783        attrs: &[
3784            AttrDef { id: "GovHydroFrancis.am", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Opening section SEFF at the maximum efficiency (Am). Typical value = 0,7." },
3785            AttrDef { id: "GovHydroFrancis.av0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Area", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Area of the surge tank (AV0). Unit = m2. Typical value = 30." },
3786            AttrDef { id: "GovHydroFrancis.av1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Area", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Area of the compensation tank (AV1). Unit = m2. Typical value = 700." },
3787            AttrDef { id: "GovHydroFrancis.bp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Droop (Bp). Typical value = 0,05." },
3788            AttrDef { id: "GovHydroFrancis.db1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intentional dead-band width (DB1). Unit = Hz. Typical value = 0." },
3789            AttrDef { id: "GovHydroFrancis.etamax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum efficiency (EtaMax). Typical value = 1,05." },
3790            AttrDef { id: "GovHydroFrancis.governorControl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "FrancisGovernorControlKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Governor control flag (Cflag). Typical value = mechanicHydrolicTachoAccelerator." },
3791            AttrDef { id: "GovHydroFrancis.h1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Head of compensation chamber water level with respect to the level of penstock (H1). Unit = km. Typical value = 0,004." },
3792            AttrDef { id: "GovHydroFrancis.h2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Head of surge tank water level with respect to the level of penstock (H2). Unit = km. Typical value = 0,040." },
3793            AttrDef { id: "GovHydroFrancis.hn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rated hydraulic head (Hn). Unit = km. Typical value = 0,250." },
3794            AttrDef { id: "GovHydroFrancis.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Penstock loss coefficient (due to friction) (Kc). Typical value = 0,025." },
3795            AttrDef { id: "GovHydroFrancis.kg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Water tunnel and surge chamber loss coefficient (due to friction) (Kg). Typical value = 0,025." },
3796            AttrDef { id: "GovHydroFrancis.kt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Washout gain (Kt). Typical value = 0,25." },
3797            AttrDef { id: "GovHydroFrancis.qc0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "No-load turbine flow at nominal head (Qc0). Typical value = 0,1." },
3798            AttrDef { id: "GovHydroFrancis.qn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "VolumeFlowRate", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rated flow (Qn). Unit = m3/s. Typical value = 250." },
3799            AttrDef { id: "GovHydroFrancis.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Derivative gain (Ta) (>= 0). Typical value = 3." },
3800            AttrDef { id: "GovHydroFrancis.td", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Washout time constant (Td) (>= 0). Typical value = 6." },
3801            AttrDef { id: "GovHydroFrancis.ts", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate servo time constant (Ts) (>= 0). Typical value = 0,5." },
3802            AttrDef { id: "GovHydroFrancis.twnc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Water inertia time constant (Twnc) (>= 0). Typical value = 1." },
3803            AttrDef { id: "GovHydroFrancis.twng", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Water tunnel and surge chamber inertia time constant (Twng) (>= 0). Typical value = 3." },
3804            AttrDef { id: "GovHydroFrancis.tx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Derivative feedback gain (Tx) (>= 0). Typical value = 1." },
3805            AttrDef { id: "GovHydroFrancis.va", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening velocity (Va). Unit = PU / s. Typical value = 0,06." },
3806            AttrDef { id: "GovHydroFrancis.valvmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening (ValvMax) (> GovHydroFrancis.valvmin). Typical value = 1,1." },
3807            AttrDef { id: "GovHydroFrancis.valvmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum gate opening (ValvMin) (< GovHydroFrancis.valvmax). Typical value = 0." },
3808            AttrDef { id: "GovHydroFrancis.vc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate closing velocity (Vc). Unit = PU / s. Typical value = -0,06." },
3809            AttrDef { id: "GovHydroFrancis.waterTunnelSurgeChamberSimulation", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Water tunnel and surge chamber simulation (Tflag). true = enable of water tunnel and surge chamber simulation false = inhibit of water tunnel and surge chamber simulation. Typical value = false." },
3810            AttrDef { id: "GovHydroFrancis.zsfc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Head of upper water level with respect to the level of penstock (Zsfc). Unit = km. Typical value = 0,025." },
3811        ],
3812    },
3813    ClassDef {
3814        ns: "http://iec.ch/TC57/CIM100#",
3815        local: "GovHydroIEEE0",
3816        qualified: "GovHydroIEEE0",
3817        super_class: Some(375),
3818        concrete: true,
3819        origins: &["DY"],
3820        comment: "IEEE simplified hydro governor-turbine model. Used for mechanical-hydraulic and electro-hydraulic turbine governors, with or without steam feedback. Typical values given are for mechanical-hydraulic turbine-governor. Reference: IEEE Transactions on Power Apparatus and Systems, November/December 1973, Volume PAS-92, Number 6, Dynamic Models for Steam and Hydro Turbines in Power System Studies, page 1904.",
3821        attrs: &[
3822            AttrDef { id: "GovHydroIEEE0.k", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor gain (K)." },
3823            AttrDef { id: "GovHydroIEEE0.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
3824            AttrDef { id: "GovHydroIEEE0.pmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate maximum (Pmax) (> GovHydroIEEE0.pmin)." },
3825            AttrDef { id: "GovHydroIEEE0.pmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate minimum (Pmin) (< GovHydroIEEE.pmax)." },
3826            AttrDef { id: "GovHydroIEEE0.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor lag time constant (T1) (>= 0). Typical value = 0,25." },
3827            AttrDef { id: "GovHydroIEEE0.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor lead time constant (T2) (>= 0). Typical value = 0." },
3828            AttrDef { id: "GovHydroIEEE0.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate actuator time constant (T3) (>= 0). Typical value = 0,1." },
3829            AttrDef { id: "GovHydroIEEE0.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Water starting time (T4) (>= 0)." },
3830        ],
3831    },
3832    ClassDef {
3833        ns: "http://iec.ch/TC57/CIM100#",
3834        local: "GovHydroIEEE2",
3835        qualified: "GovHydroIEEE2",
3836        super_class: Some(375),
3837        concrete: true,
3838        origins: &["DY"],
3839        comment: "IEEE hydro turbine governor model represents plants with straightforward penstock configurations and hydraulic-dashpot governors. Reference: IEEE Transactions on Power Apparatus and Systems, November/December 1973, Volume PAS-92, Number 6, Dynamic Models for Steam and Hydro Turbines in Power System Studies, page 1904.",
3840        attrs: &[
3841            AttrDef { id: "GovHydroIEEE2.aturb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine numerator multiplier (Aturb). Typical value = -1." },
3842            AttrDef { id: "GovHydroIEEE2.bturb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine denominator multiplier (Bturb) (> 0). Typical value = 0,5." },
3843            AttrDef { id: "GovHydroIEEE2.gv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 1, PU gv (Gv1). Typical value = 0." },
3844            AttrDef { id: "GovHydroIEEE2.gv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 2, PU gv (Gv2). Typical value = 0." },
3845            AttrDef { id: "GovHydroIEEE2.gv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 3, PU gv (Gv3). Typical value = 0." },
3846            AttrDef { id: "GovHydroIEEE2.gv4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 4, PU gv (Gv4). Typical value = 0." },
3847            AttrDef { id: "GovHydroIEEE2.gv5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 5, PU gv (Gv5). Typical value = 0." },
3848            AttrDef { id: "GovHydroIEEE2.gv6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 6, PU gv (Gv6). Typical value = 0." },
3849            AttrDef { id: "GovHydroIEEE2.kturb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine gain (Kturb). Typical value = 1." },
3850            AttrDef { id: "GovHydroIEEE2.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
3851            AttrDef { id: "GovHydroIEEE2.pgv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 1, PU power (Pgv1). Typical value = 0." },
3852            AttrDef { id: "GovHydroIEEE2.pgv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 2, PU power (Pgv2). Typical value = 0." },
3853            AttrDef { id: "GovHydroIEEE2.pgv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 3, PU power (Pgv3). Typical value = 0." },
3854            AttrDef { id: "GovHydroIEEE2.pgv4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 4, PU power (Pgv4). Typical value = 0." },
3855            AttrDef { id: "GovHydroIEEE2.pgv5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 5, PU power (Pgv5). Typical value = 0." },
3856            AttrDef { id: "GovHydroIEEE2.pgv6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 6, PU power (Pgv6). Typical value = 0." },
3857            AttrDef { id: "GovHydroIEEE2.pmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening (Pmax) (> GovHydroIEEE2.pmin). Typical value = 1." },
3858            AttrDef { id: "GovHydroIEEE2.pmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum gate opening (Pmin) (<GovHydroIEEE2.pmax). Typical value = 0." },
3859            AttrDef { id: "GovHydroIEEE2.rperm", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Permanent droop (Rperm). Typical value = 0,05." },
3860            AttrDef { id: "GovHydroIEEE2.rtemp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Temporary droop (Rtemp). Typical value = 0,5." },
3861            AttrDef { id: "GovHydroIEEE2.tg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate servo time constant (Tg) (>= 0). Typical value = 0,5." },
3862            AttrDef { id: "GovHydroIEEE2.tp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Pilot servo valve time constant (Tp) (>= 0). Typical value = 0,03." },
3863            AttrDef { id: "GovHydroIEEE2.tr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Dashpot time constant (Tr) (>= 0). Typical value = 12." },
3864            AttrDef { id: "GovHydroIEEE2.tw", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Water inertia time constant (Tw) (>= 0). Typical value = 2." },
3865            AttrDef { id: "GovHydroIEEE2.uc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate closing velocity (Uc) (<0). Typical value = -0,1." },
3866            AttrDef { id: "GovHydroIEEE2.uo", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening velocity (Uo). Unit = PU / s. Typical value = 0,1." },
3867        ],
3868    },
3869    ClassDef {
3870        ns: "http://iec.ch/TC57/CIM100#",
3871        local: "GovHydroPID",
3872        qualified: "GovHydroPID",
3873        super_class: Some(375),
3874        concrete: true,
3875        origins: &["DY"],
3876        comment: "PID governor and turbine.",
3877        attrs: &[
3878            AttrDef { id: "GovHydroPID.aturb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine numerator multiplier (Aturb) (see parameter detail 3). Typical value -1." },
3879            AttrDef { id: "GovHydroPID.bturb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine denominator multiplier (Bturb) (see parameter detail 3). Typical value = 0,5." },
3880            AttrDef { id: "GovHydroPID.db1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intentional dead-band width (db1). Unit = Hz. Typical value = 0." },
3881            AttrDef { id: "GovHydroPID.db2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Unintentional dead-band (db2). Unit = MW. Typical value = 0." },
3882            AttrDef { id: "GovHydroPID.eps", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intentional db hysteresis (eps). Unit = Hz. Typical value = 0." },
3883            AttrDef { id: "GovHydroPID.gv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 1, PU gv (Gv1). Typical value = 0." },
3884            AttrDef { id: "GovHydroPID.gv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 2, PU gv (Gv2). Typical value = 0." },
3885            AttrDef { id: "GovHydroPID.gv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 3, PU gv (Gv3). Typical value = 0." },
3886            AttrDef { id: "GovHydroPID.gv4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 4, PU gv (Gv4). Typical value = 0." },
3887            AttrDef { id: "GovHydroPID.gv5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 5, PU gv (Gv5). Typical value = 0." },
3888            AttrDef { id: "GovHydroPID.gv6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 6, PU gv (Gv6). Typical value = 0." },
3889            AttrDef { id: "GovHydroPID.inputSignal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Input signal switch (Flag). true = Pe input is used false = feedback is received from CV. Flag is normally dependent on Tt. If Tt is zero, Flag is set to false. If Tt is not zero, Flag is set to true. Typical value = true." },
3890            AttrDef { id: "GovHydroPID.kd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Derivative gain (Kd). Typical value = 1,11." },
3891            AttrDef { id: "GovHydroPID.kg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate servo gain (Kg). Typical value = 2,5." },
3892            AttrDef { id: "GovHydroPID.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Integral gain (Ki). Typical value = 0,36." },
3893            AttrDef { id: "GovHydroPID.kp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Proportional gain (Kp). Typical value = 0,1." },
3894            AttrDef { id: "GovHydroPID.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
3895            AttrDef { id: "GovHydroPID.pgv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 1, PU power (Pgv1). Typical value = 0." },
3896            AttrDef { id: "GovHydroPID.pgv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 2, PU power (Pgv2). Typical value = 0." },
3897            AttrDef { id: "GovHydroPID.pgv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 3, PU power (Pgv3). Typical value = 0." },
3898            AttrDef { id: "GovHydroPID.pgv4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 4, PU power (Pgv4). Typical value = 0." },
3899            AttrDef { id: "GovHydroPID.pgv5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 5, PU power (Pgv5). Typical value = 0." },
3900            AttrDef { id: "GovHydroPID.pgv6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 6, PU power (Pgv6). Typical value = 0." },
3901            AttrDef { id: "GovHydroPID.pmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening, PU of MWbase (Pmax) (> GovHydroPID.pmin). Typical value = 1." },
3902            AttrDef { id: "GovHydroPID.pmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum gate opening, PU of MWbase (Pmin) (< GovHydroPID.pmax). Typical value = 0." },
3903            AttrDef { id: "GovHydroPID.r", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Steady state droop (R). Typical value = 0,05." },
3904            AttrDef { id: "GovHydroPID.td", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Input filter time constant (Td) (>= 0). If = 0, block is bypassed. Typical value = 0." },
3905            AttrDef { id: "GovHydroPID.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Washout time constant (Tf) (>= 0). Typical value = 0,1." },
3906            AttrDef { id: "GovHydroPID.tp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate servo time constant (Tp) (>= 0). If = 0, block is bypassed. Typical value = 0,35." },
3907            AttrDef { id: "GovHydroPID.tt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power feedback time constant (Tt) (>= 0). If = 0, block is bypassed. Typical value = 0,02." },
3908            AttrDef { id: "GovHydroPID.tturb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine time constant (Tturb) (>= 0). See Parameter detail 3. Typical value = 0,8." },
3909            AttrDef { id: "GovHydroPID.velcl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate closing velocity (Velcl). Unit = PU / s. Typical value = -0,14." },
3910            AttrDef { id: "GovHydroPID.velop", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening velocity (Velop). Unit = PU / s. Typical value = 0,09." },
3911        ],
3912    },
3913    ClassDef {
3914        ns: "http://iec.ch/TC57/CIM100#",
3915        local: "GovHydroPID2",
3916        qualified: "GovHydroPID2",
3917        super_class: Some(375),
3918        concrete: true,
3919        origins: &["DY"],
3920        comment: "Hydro turbine and governor. Represents plants with straightforward penstock configurations and 'three term' electro-hydraulic governors (i.e. WoodwardTM electronic). [Footnote: Woodward electronic governors are an example of suitable products available commercially. This information is given for the convenience of users of this document and does not constitute an endorsement by IEC of these products.]",
3921        attrs: &[
3922            AttrDef { id: "GovHydroPID2.atw", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Factor multiplying Tw (Atw). Typical value = 0." },
3923            AttrDef { id: "GovHydroPID2.d", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine damping factor (D). Unit = delta P / delta speed. Typical value = 0." },
3924            AttrDef { id: "GovHydroPID2.feedbackSignal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Feedback signal type flag (Flag). true = use gate position feedback signal false = use Pe." },
3925            AttrDef { id: "GovHydroPID2.g0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate opening at speed no load (G0). Typical value = 0." },
3926            AttrDef { id: "GovHydroPID2.g1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intermediate gate opening (G1). Typical value = 0." },
3927            AttrDef { id: "GovHydroPID2.g2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intermediate gate opening (G2). Typical value = 0." },
3928            AttrDef { id: "GovHydroPID2.gmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening (Gmax) (> GovHydroPID2.gmin). Typical value = 0." },
3929            AttrDef { id: "GovHydroPID2.gmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum gate opening (Gmin) (> GovHydroPID2.gmax). Typical value = 0." },
3930            AttrDef { id: "GovHydroPID2.kd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Derivative gain (Kd). Typical value = 0." },
3931            AttrDef { id: "GovHydroPID2.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reset gain (Ki). Unit = PU/s. Typical value = 0." },
3932            AttrDef { id: "GovHydroPID2.kp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Proportional gain (Kp). Typical value = 0." },
3933            AttrDef { id: "GovHydroPID2.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (>0). Unit = MW." },
3934            AttrDef { id: "GovHydroPID2.p1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power at gate opening G1 (P1). Typical value = 0." },
3935            AttrDef { id: "GovHydroPID2.p2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power at gate opening G2 (P2). Typical value = 0." },
3936            AttrDef { id: "GovHydroPID2.p3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power at full opened gate (P3). Typical value = 0." },
3937            AttrDef { id: "GovHydroPID2.rperm", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Permanent drop (Rperm). Typical value = 0." },
3938            AttrDef { id: "GovHydroPID2.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Controller time constant (Ta) (>= 0). Typical value = 0." },
3939            AttrDef { id: "GovHydroPID2.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate servo time constant (Tb) (> 0)." },
3940            AttrDef { id: "GovHydroPID2.treg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Speed detector time constant (Treg) (>= 0). Typical value = 0." },
3941            AttrDef { id: "GovHydroPID2.tw", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Water inertia time constant (Tw) (>= 0). Typical value = 0." },
3942            AttrDef { id: "GovHydroPID2.velmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening velocity (Velmax) (< GovHydroPID2.velmin). Unit = PU / s. Typical value = 0." },
3943            AttrDef { id: "GovHydroPID2.velmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate closing velocity (Velmin) (> GovHydroPID2.velmax). Unit = PU / s. Typical value = 0." },
3944        ],
3945    },
3946    ClassDef {
3947        ns: "http://iec.ch/TC57/CIM100#",
3948        local: "GovHydroPelton",
3949        qualified: "GovHydroPelton",
3950        super_class: Some(375),
3951        concrete: true,
3952        origins: &["DY"],
3953        comment: "Detailed hydro unit - Pelton model. This model can be used to represent the dynamic related to water tunnel and surge chamber. The DetailedHydroModelHydraulicSystem diagram, located under the GovHydroFrancis class, provides a schematic of the hydraulic system of detailed hydro unit models, such as Francis and Pelton.",
3954        attrs: &[
3955            AttrDef { id: "GovHydroPelton.av0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Area", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Area of the surge tank (AV0). Unit = m2. Typical value = 30." },
3956            AttrDef { id: "GovHydroPelton.av1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Area", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Area of the compensation tank (AV1). Unit = m2. Typical value = 700." },
3957            AttrDef { id: "GovHydroPelton.bp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Droop (bp). Typical value = 0,05." },
3958            AttrDef { id: "GovHydroPelton.db1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intentional dead-band width (DB1). Unit = Hz. Typical value = 0." },
3959            AttrDef { id: "GovHydroPelton.db2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intentional dead-band width of valve opening error (DB2). Unit = Hz. Typical value = 0,01." },
3960            AttrDef { id: "GovHydroPelton.h1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Head of compensation chamber water level with respect to the level of penstock (H1). Unit = km. Typical value = 0,004." },
3961            AttrDef { id: "GovHydroPelton.h2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Head of surge tank water level with respect to the level of penstock (H2). Unit = km. Typical value = 0,040." },
3962            AttrDef { id: "GovHydroPelton.hn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rated hydraulic head (Hn). Unit = km. Typical value = 0,250." },
3963            AttrDef { id: "GovHydroPelton.kc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Penstock loss coefficient (due to friction) (Kc). Typical value = 0,025." },
3964            AttrDef { id: "GovHydroPelton.kg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Water tunnel and surge chamber loss coefficient (due to friction) (Kg). Typical value = 0,025." },
3965            AttrDef { id: "GovHydroPelton.qc0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "No-load turbine flow at nominal head (Qc0). Typical value = 0,05." },
3966            AttrDef { id: "GovHydroPelton.qn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "VolumeFlowRate", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rated flow (Qn). Unit = m3/s. Typical value = 250." },
3967            AttrDef { id: "GovHydroPelton.simplifiedPelton", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Simplified Pelton model simulation (Sflag). true = enable of simplified Pelton model simulation false = enable of complete Pelton model simulation (non-linear gain). Typical value = true." },
3968            AttrDef { id: "GovHydroPelton.staticCompensating", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Static compensating characteristic (Cflag). It should be true if simplifiedPelton = false. true = enable of static compensating characteristic false = inhibit of static compensating characteristic. Typical value = false." },
3969            AttrDef { id: "GovHydroPelton.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Derivative gain (accelerometer time constant) (Ta) (>= 0). Typical value = 3." },
3970            AttrDef { id: "GovHydroPelton.ts", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate servo time constant (Ts) (>= 0). Typical value = 0,15." },
3971            AttrDef { id: "GovHydroPelton.tv", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Servomotor integrator time constant (Tv) (>= 0). Typical value = 0,3." },
3972            AttrDef { id: "GovHydroPelton.twnc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Water inertia time constant (Twnc) (>= 0). Typical value = 1." },
3973            AttrDef { id: "GovHydroPelton.twng", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Water tunnel and surge chamber inertia time constant (Twng) (>= 0). Typical value = 3." },
3974            AttrDef { id: "GovHydroPelton.tx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Electronic integrator time constant (Tx) (>= 0). Typical value = 0,5." },
3975            AttrDef { id: "GovHydroPelton.va", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening velocity (Va). Unit = PU / s. Typical value = 0,06." },
3976            AttrDef { id: "GovHydroPelton.valvmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening (ValvMax) (> GovHydroPelton.valvmin). Typical value = 1,1." },
3977            AttrDef { id: "GovHydroPelton.valvmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum gate opening (ValvMin) (< GovHydroPelton.valvmax). Typical value = 0." },
3978            AttrDef { id: "GovHydroPelton.vav", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum servomotor valve opening velocity (Vav). Typical value = 0,1." },
3979            AttrDef { id: "GovHydroPelton.vc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate closing velocity (Vc). Unit = PU / s. Typical value = -0,06." },
3980            AttrDef { id: "GovHydroPelton.vcv", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum servomotor valve closing velocity (Vcv). Typical value = -0,1." },
3981            AttrDef { id: "GovHydroPelton.waterTunnelSurgeChamberSimulation", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Water tunnel and surge chamber simulation (Tflag). true = enable of water tunnel and surge chamber simulation false = inhibit of water tunnel and surge chamber simulation. Typical value = false." },
3982            AttrDef { id: "GovHydroPelton.zsfc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Head of upper water level with respect to the level of penstock (Zsfc). Unit = km. Typical value = 0,025." },
3983        ],
3984    },
3985    ClassDef {
3986        ns: "http://iec.ch/TC57/CIM100#",
3987        local: "GovHydroR",
3988        qualified: "GovHydroR",
3989        super_class: Some(375),
3990        concrete: true,
3991        origins: &["DY"],
3992        comment: "Fourth order lead-lag governor and hydro turbine.",
3993        attrs: &[
3994            AttrDef { id: "GovHydroR.at", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine gain (At). Typical value = 1,2." },
3995            AttrDef { id: "GovHydroR.db1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intentional dead-band width (db1). Unit = Hz. Typical value = 0." },
3996            AttrDef { id: "GovHydroR.db2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Unintentional dead-band (db2). Unit = MW. Typical value = 0." },
3997            AttrDef { id: "GovHydroR.dturb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine damping factor (Dturb). Typical value = 0,2." },
3998            AttrDef { id: "GovHydroR.eps", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intentional db hysteresis (eps). Unit = Hz. Typical value = 0." },
3999            AttrDef { id: "GovHydroR.gmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum governor output (Gmax) (> GovHydroR.gmin). Typical value = 1,05." },
4000            AttrDef { id: "GovHydroR.gmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum governor output (Gmin) (< GovHydroR.gmax). Typical value = -0,05." },
4001            AttrDef { id: "GovHydroR.gv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 1, PU gv (Gv1). Typical value = 0." },
4002            AttrDef { id: "GovHydroR.gv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 2, PU gv (Gv2). Typical value = 0." },
4003            AttrDef { id: "GovHydroR.gv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 3, PU gv (Gv3). Typical value = 0." },
4004            AttrDef { id: "GovHydroR.gv4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 4, PU gv (Gv4). Typical value = 0." },
4005            AttrDef { id: "GovHydroR.gv5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 5, PU gv (Gv5). Typical value = 0." },
4006            AttrDef { id: "GovHydroR.gv6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 6, PU gv (Gv6). Typical value = 0." },
4007            AttrDef { id: "GovHydroR.h0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine nominal head (H0). Typical value = 1." },
4008            AttrDef { id: "GovHydroR.inputSignal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Input signal switch (Flag). true = Pe input is used false = feedback is received from CV. Flag is normally dependent on Tt. If Tt is zero, Flag is set to false. If Tt is not zero, Flag is set to true. Typical value = true." },
4009            AttrDef { id: "GovHydroR.kg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate servo gain (Kg). Typical value = 2." },
4010            AttrDef { id: "GovHydroR.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Integral gain (Ki). Typical value = 0,5." },
4011            AttrDef { id: "GovHydroR.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
4012            AttrDef { id: "GovHydroR.pgv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 1, PU power (Pgv1). Typical value = 0." },
4013            AttrDef { id: "GovHydroR.pgv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 2, PU power (Pgv2). Typical value = 0." },
4014            AttrDef { id: "GovHydroR.pgv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 3, PU power (Pgv3). Typical value = 0." },
4015            AttrDef { id: "GovHydroR.pgv4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 4, PU power (Pgv4). Typical value = 0." },
4016            AttrDef { id: "GovHydroR.pgv5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 5, PU power (Pgv5). Typical value = 0." },
4017            AttrDef { id: "GovHydroR.pgv6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain point 6, PU power (Pgv6). Typical value = 0." },
4018            AttrDef { id: "GovHydroR.pmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening, PU of MWbase (Pmax) (> GovHydroR.pmin). Typical value = 1." },
4019            AttrDef { id: "GovHydroR.pmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum gate opening, PU of MWbase (Pmin) (< GovHydroR.pmax). Typical value = 0." },
4020            AttrDef { id: "GovHydroR.qnl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "No-load turbine flow at nominal head (Qnl). Typical value = 0,08." },
4021            AttrDef { id: "GovHydroR.r", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Steady-state droop (R). Typical value = 0,05." },
4022            AttrDef { id: "GovHydroR.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead time constant 1 (T1) (>= 0). Typical value = 1,5." },
4023            AttrDef { id: "GovHydroR.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag time constant 1 (T2) (>= 0). Typical value = 0,1." },
4024            AttrDef { id: "GovHydroR.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead time constant 2 (T3) (>= 0). Typical value = 1,5." },
4025            AttrDef { id: "GovHydroR.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag time constant 2 (T4) (>= 0). Typical value = 0,1." },
4026            AttrDef { id: "GovHydroR.t5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead time constant 3 (T5) (>= 0). Typical value = 0." },
4027            AttrDef { id: "GovHydroR.t6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag time constant 3 (T6) (>= 0). Typical value = 0,05." },
4028            AttrDef { id: "GovHydroR.t7", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead time constant 4 (T7) (>= 0). Typical value = 0." },
4029            AttrDef { id: "GovHydroR.t8", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag time constant 4 (T8) (>= 0). Typical value = 0,05." },
4030            AttrDef { id: "GovHydroR.td", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Input filter time constant (Td) (>= 0). Typical value = 0,05." },
4031            AttrDef { id: "GovHydroR.tp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate servo time constant (Tp) (>= 0). Typical value = 0,05." },
4032            AttrDef { id: "GovHydroR.tt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power feedback time constant (Tt) (>= 0). Typical value = 0." },
4033            AttrDef { id: "GovHydroR.tw", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Water inertia time constant (Tw) (> 0). Typical value = 1." },
4034            AttrDef { id: "GovHydroR.velcl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate closing velocity (Velcl). Unit = PU / s. Typical value = -0,2." },
4035            AttrDef { id: "GovHydroR.velop", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening velocity (Velop). Unit = PU / s. Typical value = 0,2." },
4036        ],
4037    },
4038    ClassDef {
4039        ns: "http://iec.ch/TC57/CIM100#",
4040        local: "GovHydroWEH",
4041        qualified: "GovHydroWEH",
4042        super_class: Some(375),
4043        concrete: true,
4044        origins: &["DY"],
4045        comment: "WoodwardTM electric hydro governor. [Footnote: Woodward electric hydro governors are an example of suitable products available commercially. This information is given for the convenience of users of this document and does not constitute an endorsement by IEC of these products.]",
4046        attrs: &[
4047            AttrDef { id: "GovHydroWEH.db", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Speed deadband (db)." },
4048            AttrDef { id: "GovHydroWEH.dicn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Value to allow the integral controller to advance beyond the gate limits (Dicn)." },
4049            AttrDef { id: "GovHydroWEH.dpv", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Value to allow the pilot valve controller to advance beyond the gate limits (Dpv)." },
4050            AttrDef { id: "GovHydroWEH.dturb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine damping factor (Dturb). Unit = delta P (PU of MWbase) / delta speed (PU)." },
4051            AttrDef { id: "GovHydroWEH.feedbackSignal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Feedback signal selection (Sw). true = PID output (if R-Perm-Gate = droop and R-Perm-Pe = 0) false = electrical power (if R-Perm-Gate = 0 and R-Perm-Pe = droop) or false = gate position (if R-Perm-Gate = droop and R-Perm-Pe = 0). Typical value = false." },
4052            AttrDef { id: "GovHydroWEH.fl1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Flowgate 1 (Fl1). Flow value for gate position point 1 for lookup table representing water flow through the turbine as a function of gate position to produce steady state flow." },
4053            AttrDef { id: "GovHydroWEH.fl2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Flowgate 2 (Fl2). Flow value for gate position point 2 for lookup table representing water flow through the turbine as a function of gate position to produce steady state flow." },
4054            AttrDef { id: "GovHydroWEH.fl3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Flowgate 3 (Fl3). Flow value for gate position point 3 for lookup table representing water flow through the turbine as a function of gate position to produce steady state flow." },
4055            AttrDef { id: "GovHydroWEH.fl4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Flowgate 4 (Fl4). Flow value for gate position point 4 for lookup table representing water flow through the turbine as a function of gate position to produce steady state flow." },
4056            AttrDef { id: "GovHydroWEH.fl5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Flowgate 5 (Fl5). Flow value for gate position point 5 for lookup table representing water flow through the turbine as a function of gate position to produce steady state flow." },
4057            AttrDef { id: "GovHydroWEH.fp1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Flow P1 (Fp1). Turbine flow value for point 1 for lookup table representing PU mechanical power on machine MVA rating as a function of turbine flow." },
4058            AttrDef { id: "GovHydroWEH.fp10", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Flow P10 (Fp10). Turbine flow value for point 10 for lookup table representing PU mechanical power on machine MVA rating as a function of turbine flow." },
4059            AttrDef { id: "GovHydroWEH.fp2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Flow P2 (Fp2). Turbine flow value for point 2 for lookup table representing PU mechanical power on machine MVA rating as a function of turbine flow." },
4060            AttrDef { id: "GovHydroWEH.fp3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Flow P3 (Fp3). Turbine flow value for point 3 for lookup table representing PU mechanical power on machine MVA rating as a function of turbine flow." },
4061            AttrDef { id: "GovHydroWEH.fp4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Flow P4 (Fp4). Turbine flow value for point 4 for lookup table representing PU mechanical power on machine MVA rating as a function of turbine flow." },
4062            AttrDef { id: "GovHydroWEH.fp5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Flow P5 (Fp5). Turbine flow value for point 5 for lookup table representing PU mechanical power on machine MVA rating as a function of turbine flow." },
4063            AttrDef { id: "GovHydroWEH.fp6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Flow P6 (Fp6). Turbine flow value for point 6 for lookup table representing PU mechanical power on machine MVA rating as a function of turbine flow." },
4064            AttrDef { id: "GovHydroWEH.fp7", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Flow P7 (Fp7). Turbine flow value for point 7 for lookup table representing PU mechanical power on machine MVA rating as a function of turbine flow." },
4065            AttrDef { id: "GovHydroWEH.fp8", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Flow P8 (Fp8). Turbine flow value for point 8 for lookup table representing PU mechanical power on machine MVA rating as a function of turbine flow." },
4066            AttrDef { id: "GovHydroWEH.fp9", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Flow P9 (Fp9). Turbine flow value for point 9 for lookup table representing PU mechanical power on machine MVA rating as a function of turbine flow." },
4067            AttrDef { id: "GovHydroWEH.gmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate position (Gmax) (> GovHydroWEH.gmin)." },
4068            AttrDef { id: "GovHydroWEH.gmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum gate position (Gmin) (< GovHydroWEH.gmax)." },
4069            AttrDef { id: "GovHydroWEH.gtmxcl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate closing rate (Gtmxcl)." },
4070            AttrDef { id: "GovHydroWEH.gtmxop", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening rate (Gtmxop)." },
4071            AttrDef { id: "GovHydroWEH.gv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate 1 (Gv1). Gate Position value for point 1 for lookup table representing water flow through the turbine as a function of gate position to produce steady state flow." },
4072            AttrDef { id: "GovHydroWEH.gv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate 2 (Gv2). Gate Position value for point 2 for lookup table representing water flow through the turbine as a function of gate position to produce steady state flow." },
4073            AttrDef { id: "GovHydroWEH.gv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate 3 (Gv3). Gate Position value for point 3 for lookup table representing water flow through the turbine as a function of gate position to produce steady state flow." },
4074            AttrDef { id: "GovHydroWEH.gv4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate 4 (Gv4). Gate Position value for point 4 for lookup table representing water flow through the turbine as a function of gate position to produce steady state flow." },
4075            AttrDef { id: "GovHydroWEH.gv5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate 5 (Gv5). Gate Position value for point 5 for lookup table representing water flow through the turbine as a function of gate position to produce steady state flow." },
4076            AttrDef { id: "GovHydroWEH.kd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Derivative controller derivative gain (Kd)." },
4077            AttrDef { id: "GovHydroWEH.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Derivative controller Integral gain (Ki)." },
4078            AttrDef { id: "GovHydroWEH.kp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Derivative control gain (Kp)." },
4079            AttrDef { id: "GovHydroWEH.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
4080            AttrDef { id: "GovHydroWEH.pmss1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Pmss flow P1 (Pmss1). Mechanical power output for turbine flow point 1 for lookup table representing PU mechanical power on machine MVA rating as a function of turbine flow." },
4081            AttrDef { id: "GovHydroWEH.pmss10", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Pmss flow P10 (Pmss10). Mechanical power output for turbine flow point 10 for lookup table representing PU mechanical power on machine MVA rating as a function of turbine flow." },
4082            AttrDef { id: "GovHydroWEH.pmss2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Pmss flow P2 (Pmss2). Mechanical power output for turbine flow point 2 for lookup table representing PU mechanical power on machine MVA rating as a function of turbine flow." },
4083            AttrDef { id: "GovHydroWEH.pmss3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Pmss flow P3 (Pmss3). Mechanical power output for turbine flow point 3 for lookup table representing PU mechanical power on machine MVA rating as a function of turbine flow." },
4084            AttrDef { id: "GovHydroWEH.pmss4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Pmss flow P4 (Pmss4). Mechanical power output for turbine flow point 4 for lookup table representing PU mechanical power on machine MVA rating as a function of turbine flow." },
4085            AttrDef { id: "GovHydroWEH.pmss5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Pmss flow P5 (Pmss5). Mechanical power output for turbine flow point 5 for lookup table representing PU mechanical power on machine MVA rating as a function of turbine flow." },
4086            AttrDef { id: "GovHydroWEH.pmss6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Pmss flow P6 (Pmss6). Mechanical power output for turbine flow point 6 for lookup table representing PU mechanical power on machine MVA rating as a function of turbine flow." },
4087            AttrDef { id: "GovHydroWEH.pmss7", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Pmss flow P7 (Pmss7). Mechanical power output for turbine flow point 7 for lookup table representing PU mechanical power on machine MVA rating as a function of turbine flow." },
4088            AttrDef { id: "GovHydroWEH.pmss8", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Pmss flow P8 (Pmss8). Mechanical power output for turbine flow point 8 for lookup table representing PU mechanical power on machine MVA rating as a function of turbine flow." },
4089            AttrDef { id: "GovHydroWEH.pmss9", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Pmss flow P9 (Pmss9). Mechanical power output for turbine flow point 9 for lookup table representing PU mechanical power on machine MVA rating as a function of turbine flow." },
4090            AttrDef { id: "GovHydroWEH.rpg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Permanent droop for governor output feedback (R-Perm-Gate)." },
4091            AttrDef { id: "GovHydroWEH.rpp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Permanent droop for electrical power feedback (R-Perm-Pe)." },
4092            AttrDef { id: "GovHydroWEH.td", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Derivative controller time constant (Td) (>= 0). Limits the derivative characteristic beyond a breakdown frequency to avoid amplification of high-frequency noise." },
4093            AttrDef { id: "GovHydroWEH.tdv", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Distributive valve time lag time constant (Tdv) (>= 0)." },
4094            AttrDef { id: "GovHydroWEH.tg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Value to allow the distribution valve controller to advance beyond the gate movement rate limit (Tg) (>= 0)." },
4095            AttrDef { id: "GovHydroWEH.tp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Pilot valve time lag time constant (Tp) (>= 0)." },
4096            AttrDef { id: "GovHydroWEH.tpe", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Electrical power droop time constant (Tpe) (>= 0)." },
4097            AttrDef { id: "GovHydroWEH.tw", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Water inertia time constant (Tw) (> 0)." },
4098        ],
4099    },
4100    ClassDef {
4101        ns: "http://iec.ch/TC57/CIM100#",
4102        local: "GovHydroWPID",
4103        qualified: "GovHydroWPID",
4104        super_class: Some(375),
4105        concrete: true,
4106        origins: &["DY"],
4107        comment: "WoodwardTM PID hydro governor. [Footnote: Woodward PID hydro governors are an example of suitable products available commercially. This information is given for the convenience of users of this document and does not constitute an endorsement by IEC of these products.]",
4108        attrs: &[
4109            AttrDef { id: "GovHydroWPID.d", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine damping factor (D). Unit = delta P / delta speed." },
4110            AttrDef { id: "GovHydroWPID.gatmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate opening limit maximum (Gatmax) (> GovHydroWPID.gatmin)." },
4111            AttrDef { id: "GovHydroWPID.gatmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate opening limit minimum (Gatmin) (< GovHydroWPID.gatmax)." },
4112            AttrDef { id: "GovHydroWPID.gv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate position 1 (Gv1)." },
4113            AttrDef { id: "GovHydroWPID.gv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate position 2 (Gv2)." },
4114            AttrDef { id: "GovHydroWPID.gv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate position 3 (Gv3) (= 1,0)." },
4115            AttrDef { id: "GovHydroWPID.kd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Derivative gain (Kd). Typical value = 1,11." },
4116            AttrDef { id: "GovHydroWPID.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reset gain (Ki). Typical value = 0,36." },
4117            AttrDef { id: "GovHydroWPID.kp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Proportional gain (Kp). Typical value = 0,1." },
4118            AttrDef { id: "GovHydroWPID.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
4119            AttrDef { id: "GovHydroWPID.pgv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Output at Gv1 PU of MWbase (Pgv1)." },
4120            AttrDef { id: "GovHydroWPID.pgv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Output at Gv2 PU of MWbase (Pgv2)." },
4121            AttrDef { id: "GovHydroWPID.pgv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Output at Gv3 PU of MWbase (Pgv3)." },
4122            AttrDef { id: "GovHydroWPID.pmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum power output (Pmax) (> GovHydroWPID.pmin)." },
4123            AttrDef { id: "GovHydroWPID.pmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum power output (Pmin) (< GovHydroWPID.pmax)." },
4124            AttrDef { id: "GovHydroWPID.reg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Permanent drop (Reg)." },
4125            AttrDef { id: "GovHydroWPID.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Controller time constant (Ta) (>= 0). Typical value = 0." },
4126            AttrDef { id: "GovHydroWPID.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gate servo time constant (Tb) (>= 0). Typical value = 0." },
4127            AttrDef { id: "GovHydroWPID.treg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Speed detector time constant (Treg) (>= 0)." },
4128            AttrDef { id: "GovHydroWPID.tw", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Water inertia time constant (Tw) (>= 0). Typical value = 0." },
4129            AttrDef { id: "GovHydroWPID.velmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate opening velocity (Velmax) (> GovHydroWPID.velmin). Unit = PU / s. Typical value = 0." },
4130            AttrDef { id: "GovHydroWPID.velmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum gate closing velocity (Velmin) (< GovHydroWPID.velmax). Unit = PU / s. Typical value = 0." },
4131        ],
4132    },
4133    ClassDef {
4134        ns: "http://iec.ch/TC57/CIM100#",
4135        local: "GovSteam0",
4136        qualified: "GovSteam0",
4137        super_class: Some(375),
4138        concrete: true,
4139        origins: &["DY"],
4140        comment: "A simplified steam turbine governor.",
4141        attrs: &[
4142            AttrDef { id: "GovSteam0.dt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Turbine damping coefficient (Dt). Unit = delta P / delta speed. Typical value = 0." },
4143            AttrDef { id: "GovSteam0.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
4144            AttrDef { id: "GovSteam0.r", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Permanent droop (R). Typical value = 0,05." },
4145            AttrDef { id: "GovSteam0.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Steam bowl time constant (T1) (> 0). Typical value = 0,5." },
4146            AttrDef { id: "GovSteam0.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Numerator time constant of T2/T3 block (T2) (>= 0). Typical value = 3." },
4147            AttrDef { id: "GovSteam0.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reheater time constant (T3) (> 0). Typical value = 10." },
4148            AttrDef { id: "GovSteam0.vmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum valve position, PU of mwcap (Vmax) (> GovSteam0.vmin). Typical value = 1." },
4149            AttrDef { id: "GovSteam0.vmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum valve position, PU of mwcap (Vmin) (< GovSteam0.vmax). Typical value = 0." },
4150        ],
4151    },
4152    ClassDef {
4153        ns: "http://iec.ch/TC57/CIM100#",
4154        local: "GovSteam1",
4155        qualified: "GovSteam1",
4156        super_class: Some(375),
4157        concrete: true,
4158        origins: &["DY"],
4159        comment: "Steam turbine governor, based on the GovSteamIEEE1 (with optional deadband and nonlinear valve gain added).",
4160        attrs: &[
4161            AttrDef { id: "GovSteam1.db1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intentional deadband width (db1). Unit = Hz. Typical value = 0." },
4162            AttrDef { id: "GovSteam1.db2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Unintentional deadband (db2). Unit = MW. Typical value = 0." },
4163            AttrDef { id: "GovSteam1.eps", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Frequency", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intentional db hysteresis (eps). Unit = Hz. Typical value = 0." },
4164            AttrDef { id: "GovSteam1.gv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain valve position point 1 (GV1). Typical value = 0." },
4165            AttrDef { id: "GovSteam1.gv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain valve position point 2 (GV2). Typical value = 0,4." },
4166            AttrDef { id: "GovSteam1.gv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain valve position point 3 (GV3). Typical value = 0,5." },
4167            AttrDef { id: "GovSteam1.gv4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain valve position point 4 (GV4). Typical value = 0,6." },
4168            AttrDef { id: "GovSteam1.gv5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain valve position point 5 (GV5). Typical value = 1." },
4169            AttrDef { id: "GovSteam1.gv6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain valve position point 6 (GV6). Typical value = 0." },
4170            AttrDef { id: "GovSteam1.k", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor gain (reciprocal of droop) (K) (> 0). Typical value = 25." },
4171            AttrDef { id: "GovSteam1.k1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of HP shaft power after first boiler pass (K1). Typical value = 0,2." },
4172            AttrDef { id: "GovSteam1.k2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of LP shaft power after first boiler pass (K2). Typical value = 0." },
4173            AttrDef { id: "GovSteam1.k3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of HP shaft power after second boiler pass (K3). Typical value = 0,3." },
4174            AttrDef { id: "GovSteam1.k4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of LP shaft power after second boiler pass (K4). Typical value = 0." },
4175            AttrDef { id: "GovSteam1.k5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of HP shaft power after third boiler pass (K5). Typical value = 0,5." },
4176            AttrDef { id: "GovSteam1.k6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of LP shaft power after third boiler pass (K6). Typical value = 0." },
4177            AttrDef { id: "GovSteam1.k7", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of HP shaft power after fourth boiler pass (K7). Typical value = 0." },
4178            AttrDef { id: "GovSteam1.k8", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of LP shaft power after fourth boiler pass (K8). Typical value = 0." },
4179            AttrDef { id: "GovSteam1.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
4180            AttrDef { id: "GovSteam1.pgv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain power value point 1 (Pgv1). Typical value = 0." },
4181            AttrDef { id: "GovSteam1.pgv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain power value point 2 (Pgv2). Typical value = 0,75." },
4182            AttrDef { id: "GovSteam1.pgv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain power value point 3 (Pgv3). Typical value = 0,91." },
4183            AttrDef { id: "GovSteam1.pgv4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain power value point 4 (Pgv4). Typical value = 0,98." },
4184            AttrDef { id: "GovSteam1.pgv5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain power value point 5 (Pgv5). Typical value = 1." },
4185            AttrDef { id: "GovSteam1.pgv6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain power value point 6 (Pgv6). Typical value = 0." },
4186            AttrDef { id: "GovSteam1.pmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum valve opening (Pmax) (> GovSteam1.pmin). Typical value = 1." },
4187            AttrDef { id: "GovSteam1.pmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum valve opening (Pmin) (>= 0 and < GovSteam1.pmax). Typical value = 0." },
4188            AttrDef { id: "GovSteam1.sdb1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Intentional deadband indicator. true = intentional deadband is applied false = intentional deadband is not applied. Typical value = true." },
4189            AttrDef { id: "GovSteam1.sdb2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Unintentional deadband location. true = intentional deadband is applied before point 'A' false = intentional deadband is applied after point 'A'. Typical value = true." },
4190            AttrDef { id: "GovSteam1.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor lag time constant (T1) (>= 0). Typical value = 0." },
4191            AttrDef { id: "GovSteam1.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor lead time constant (T2) (>= 0). Typical value = 0." },
4192            AttrDef { id: "GovSteam1.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Valve positioner time constant (T3) (> 0). Typical value = 0,1." },
4193            AttrDef { id: "GovSteam1.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Inlet piping/steam bowl time constant (T4) (>= 0). Typical value = 0,3." },
4194            AttrDef { id: "GovSteam1.t5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant of second boiler pass (T5) (>= 0). Typical value = 5." },
4195            AttrDef { id: "GovSteam1.t6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant of third boiler pass (T6) (>= 0). Typical value = 0,5." },
4196            AttrDef { id: "GovSteam1.t7", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant of fourth boiler pass (T7) (>= 0). Typical value = 0." },
4197            AttrDef { id: "GovSteam1.uc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum valve closing velocity (Uc) (< 0). Unit = PU / s. Typical value = -10." },
4198            AttrDef { id: "GovSteam1.uo", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum valve opening velocity (Uo) (> 0). Unit = PU / s. Typical value = 1." },
4199            AttrDef { id: "GovSteam1.valve", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Nonlinear valve characteristic. true = nonlinear valve characteristic is used false = nonlinear valve characteristic is not used. Typical value = true." },
4200        ],
4201    },
4202    ClassDef {
4203        ns: "http://iec.ch/TC57/CIM100#",
4204        local: "GovSteam2",
4205        qualified: "GovSteam2",
4206        super_class: Some(375),
4207        concrete: true,
4208        origins: &["DY"],
4209        comment: "Simplified governor.",
4210        attrs: &[
4211            AttrDef { id: "GovSteam2.dbf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Frequency deadband (DBF). Typical value = 0." },
4212            AttrDef { id: "GovSteam2.k", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor gain (reciprocal of droop) (K). Typical value = 20." },
4213            AttrDef { id: "GovSteam2.mnef", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fuel flow maximum negative error value (MNEF). Typical value = -1." },
4214            AttrDef { id: "GovSteam2.mxef", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fuel flow maximum positive error value (MXEF). Typical value = 1." },
4215            AttrDef { id: "GovSteam2.pmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum fuel flow (PMAX) (> GovSteam2.pmin). Typical value = 1." },
4216            AttrDef { id: "GovSteam2.pmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum fuel flow (PMIN) (< GovSteam2.pmax). Typical value = 0." },
4217            AttrDef { id: "GovSteam2.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor lag time constant (T1) (> 0). Typical value = 0,45." },
4218            AttrDef { id: "GovSteam2.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor lead time constant (T2) (>= 0). Typical value = 0." },
4219        ],
4220    },
4221    ClassDef {
4222        ns: "http://iec.ch/TC57/CIM100#",
4223        local: "GovSteamBB",
4224        qualified: "GovSteamBB",
4225        super_class: Some(375),
4226        concrete: true,
4227        origins: &["DY"],
4228        comment: "European governor model.",
4229        attrs: &[
4230            AttrDef { id: "GovSteamBB.fcut", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Frequency deadband (fcut) (>= 0). Typical value = 0,002." },
4231            AttrDef { id: "GovSteamBB.k2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (K2). Typical value = 0,75." },
4232            AttrDef { id: "GovSteamBB.k3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (K3). Typical value = 0,5." },
4233            AttrDef { id: "GovSteamBB.kd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (Kd). Typical value = 1,0." },
4234            AttrDef { id: "GovSteamBB.kg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (Kg). Typical value = 1,0." },
4235            AttrDef { id: "GovSteamBB.kls", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (Kls) (> 0). Typical value = 0,1." },
4236            AttrDef { id: "GovSteamBB.kp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (Kp). Typical value = 1,0." },
4237            AttrDef { id: "GovSteamBB.ks", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (Ks). Typical value = 21,0." },
4238            AttrDef { id: "GovSteamBB.peflag", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Electric power input selection (Peflag). true = electric power input false = feedback signal. Typical value = false." },
4239            AttrDef { id: "GovSteamBB.pmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High power limit (Pmax) (> GovSteamBB.pmin). Typical value = 1,0." },
4240            AttrDef { id: "GovSteamBB.pmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low power limit (Pmin) (< GovSteamBB.pmax). Typical value = 0." },
4241            AttrDef { id: "GovSteamBB.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T1). Typical value = 0,05." },
4242            AttrDef { id: "GovSteamBB.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T4). Typical value = 0,15." },
4243            AttrDef { id: "GovSteamBB.t5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T5). Typical value = 12,0." },
4244            AttrDef { id: "GovSteamBB.t6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T6). Typical value = 0,75." },
4245            AttrDef { id: "GovSteamBB.td", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Td) (> 0). Typical value = 1,0." },
4246            AttrDef { id: "GovSteamBB.tn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Tn) (> 0). Typical value = 1,0." },
4247        ],
4248    },
4249    ClassDef {
4250        ns: "http://iec.ch/TC57/CIM100#",
4251        local: "GovSteamCC",
4252        qualified: "GovSteamCC",
4253        super_class: Some(49),
4254        concrete: true,
4255        origins: &["DY"],
4256        comment: "Cross compound turbine governor. Unlike tandem compound units, cross compound units are not on the same shaft.",
4257        attrs: &[
4258            AttrDef { id: "GovSteamCC.dhp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "HP damping factor (Dhp). Typical value = 0." },
4259            AttrDef { id: "GovSteamCC.dlp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "LP damping factor (Dlp). Typical value = 0." },
4260            AttrDef { id: "GovSteamCC.fhp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of HP power ahead of reheater (Fhp). Typical value = 0,3." },
4261            AttrDef { id: "GovSteamCC.flp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of LP power ahead of reheater (Flp). Typical value = 0,7." },
4262            AttrDef { id: "GovSteamCC.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
4263            AttrDef { id: "GovSteamCC.pmaxhp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum HP value position (Pmaxhp). Typical value = 1." },
4264            AttrDef { id: "GovSteamCC.pmaxlp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum LP value position (Pmaxlp). Typical value = 1." },
4265            AttrDef { id: "GovSteamCC.rhp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "HP governor droop (Rhp) (> 0). Typical value = 0,05." },
4266            AttrDef { id: "GovSteamCC.rlp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "LP governor droop (Rlp) (> 0). Typical value = 0,05." },
4267            AttrDef { id: "GovSteamCC.t1hp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "HP governor time constant (T1hp) (>= 0). Typical value = 0,1." },
4268            AttrDef { id: "GovSteamCC.t1lp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "LP governor time constant (T1lp) (>= 0). Typical value = 0,1." },
4269            AttrDef { id: "GovSteamCC.t3hp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "HP turbine time constant (T3hp) (>= 0). Typical value = 0,1." },
4270            AttrDef { id: "GovSteamCC.t3lp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "LP turbine time constant (T3lp) (>= 0). Typical value = 0,1." },
4271            AttrDef { id: "GovSteamCC.t4hp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "HP turbine time constant (T4hp) (>= 0). Typical value = 0,1." },
4272            AttrDef { id: "GovSteamCC.t4lp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "LP turbine time constant (T4lp) (>= 0). Typical value = 0,1." },
4273            AttrDef { id: "GovSteamCC.t5hp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "HP reheater time constant (T5hp) (>= 0). Typical value = 10." },
4274            AttrDef { id: "GovSteamCC.t5lp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "LP reheater time constant (T5lp) (>= 0). Typical value = 10." },
4275        ],
4276    },
4277    ClassDef {
4278        ns: "http://iec.ch/TC57/CIM100#",
4279        local: "GovSteamEU",
4280        qualified: "GovSteamEU",
4281        super_class: Some(375),
4282        concrete: true,
4283        origins: &["DY"],
4284        comment: "Simplified boiler and steam turbine with PID governor.",
4285        attrs: &[
4286            AttrDef { id: "GovSteamEU.chc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Control valves rate closing limit (Chc). Unit = PU / s. Typical value = -3,3." },
4287            AttrDef { id: "GovSteamEU.cho", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Control valves rate opening limit (Cho). Unit = PU / s. Typical value = 0,17." },
4288            AttrDef { id: "GovSteamEU.cic", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intercept valves rate closing limit (Cic). Typical value = -2,2." },
4289            AttrDef { id: "GovSteamEU.cio", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intercept valves rate opening limit (Cio). Typical value = 0,123." },
4290            AttrDef { id: "GovSteamEU.db1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Deadband of the frequency corrector (db1). Typical value = 0." },
4291            AttrDef { id: "GovSteamEU.db2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Deadband of the speed governor (db2). Typical value = 0,0004." },
4292            AttrDef { id: "GovSteamEU.hhpmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum control valve position (Hhpmax). Typical value = 1." },
4293            AttrDef { id: "GovSteamEU.ke", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain of the power controller (Ke). Typical value = 0,65." },
4294            AttrDef { id: "GovSteamEU.kfcor", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain of the frequency corrector (Kfcor). Typical value = 20." },
4295            AttrDef { id: "GovSteamEU.khp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of total turbine output generated by HP part (Khp). Typical value = 0,277." },
4296            AttrDef { id: "GovSteamEU.klp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of total turbine output generated by HP part (Klp). Typical value = 0,723." },
4297            AttrDef { id: "GovSteamEU.komegacor", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain of the speed governor (Kwcor). Typical value = 20." },
4298            AttrDef { id: "GovSteamEU.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
4299            AttrDef { id: "GovSteamEU.pmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximal active power of the turbine (Pmax). Typical value = 1." },
4300            AttrDef { id: "GovSteamEU.prhmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum low pressure limit (Prhmax). Typical value = 1,4." },
4301            AttrDef { id: "GovSteamEU.simx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intercept valves transfer limit (Simx). Typical value = 0,425." },
4302            AttrDef { id: "GovSteamEU.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Boiler time constant (Tb) (>= 0). Typical value = 100." },
4303            AttrDef { id: "GovSteamEU.tdp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Derivative time constant of the power controller (Tdp) (>= 0). Typical value = 0." },
4304            AttrDef { id: "GovSteamEU.ten", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Electro hydraulic transducer (Ten) (>= 0). Typical value = 0,1." },
4305            AttrDef { id: "GovSteamEU.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Frequency transducer time constant (Tf) (>= 0). Typical value = 0." },
4306            AttrDef { id: "GovSteamEU.tfp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant of the power controller (Tfp) (>= 0). Typical value = 0." },
4307            AttrDef { id: "GovSteamEU.thp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High pressure (HP) time constant of the turbine (Thp) (>= 0). Typical value = 0,31." },
4308            AttrDef { id: "GovSteamEU.tip", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Integral time constant of the power controller (Tip) (>= 0). Typical value = 2." },
4309            AttrDef { id: "GovSteamEU.tlp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low pressure (LP) time constant of the turbine (Tlp) (>= 0). Typical value = 0,45." },
4310            AttrDef { id: "GovSteamEU.tp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power transducer time constant (Tp) (>= 0). Typical value = 0,07." },
4311            AttrDef { id: "GovSteamEU.trh", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reheater time constant of the turbine (Trh) (>= 0). Typical value = 8." },
4312            AttrDef { id: "GovSteamEU.tvhp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Control valves servo time constant (Tvhp) (>= 0). Typical value = 0,1." },
4313            AttrDef { id: "GovSteamEU.tvip", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intercept valves servo time constant (Tvip) (>= 0). Typical value = 0,15." },
4314            AttrDef { id: "GovSteamEU.tw", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Speed transducer time constant (Tw) (>= 0). Typical value = 0,02." },
4315            AttrDef { id: "GovSteamEU.wfmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Upper limit for frequency correction (Wfmax) (> GovSteamEU.wfmin). Typical value = 0,05." },
4316            AttrDef { id: "GovSteamEU.wfmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lower limit for frequency correction (Wfmin) (< GovSteamEU.wfmax). Typical value = -0,05." },
4317            AttrDef { id: "GovSteamEU.wmax1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Emergency speed control lower limit (wmax1). Typical value = 1,025." },
4318            AttrDef { id: "GovSteamEU.wmax2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Emergency speed control upper limit (wmax2). Typical value = 1,05." },
4319            AttrDef { id: "GovSteamEU.wwmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Upper limit for the speed governor (Wwmax) (> GovSteamEU.wwmin). Typical value = 0,1." },
4320            AttrDef { id: "GovSteamEU.wwmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lower limit for the speed governor frequency correction (Wwmin) (< GovSteamEU.wwmax). Typical value = -1." },
4321        ],
4322    },
4323    ClassDef {
4324        ns: "http://iec.ch/TC57/CIM100#",
4325        local: "GovSteamFV2",
4326        qualified: "GovSteamFV2",
4327        super_class: Some(375),
4328        concrete: true,
4329        origins: &["DY"],
4330        comment: "Steam turbine governor with reheat time constants and modelling of the effects of fast valve closing to reduce mechanical power.",
4331        attrs: &[
4332            AttrDef { id: "GovSteamFV2.dt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "(Dt)." },
4333            AttrDef { id: "GovSteamFV2.k", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of the turbine power developed by turbine sections not involved in fast valving (K)." },
4334            AttrDef { id: "GovSteamFV2.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Alternate base used instead of machine base in equipment model if necessary (MWbase) (> 0). Unit = MW." },
4335            AttrDef { id: "GovSteamFV2.r", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "(R)." },
4336            AttrDef { id: "GovSteamFV2.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor time constant (T1) (>= 0)." },
4337            AttrDef { id: "GovSteamFV2.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reheater time constant (T3) (>= 0)." },
4338            AttrDef { id: "GovSteamFV2.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time after initial time for valve to close (Ta) (>= 0)." },
4339            AttrDef { id: "GovSteamFV2.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time after initial time for valve to begin opening (Tb) (>= 0)." },
4340            AttrDef { id: "GovSteamFV2.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time after initial time for valve to become fully open (Tc) (>= 0)." },
4341            AttrDef { id: "GovSteamFV2.tt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant with which power falls off after intercept valve closure (Tt) (>= 0)." },
4342            AttrDef { id: "GovSteamFV2.vmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "(Vmax) (> GovSteamFV2.vmin)." },
4343            AttrDef { id: "GovSteamFV2.vmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "(Vmin) (< GovSteamFV2.vmax)." },
4344        ],
4345    },
4346    ClassDef {
4347        ns: "http://iec.ch/TC57/CIM100#",
4348        local: "GovSteamFV3",
4349        qualified: "GovSteamFV3",
4350        super_class: Some(375),
4351        concrete: true,
4352        origins: &["DY"],
4353        comment: "Simplified GovSteamIEEE1 steam turbine governor with Prmax limit and fast valving.",
4354        attrs: &[
4355            AttrDef { id: "GovSteamFV3.gv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain valve position point 1 (GV1). Typical value = 0." },
4356            AttrDef { id: "GovSteamFV3.gv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain valve position point 2 (GV2). Typical value = 0,4." },
4357            AttrDef { id: "GovSteamFV3.gv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain valve position point 3 (GV3). Typical value = 0,5." },
4358            AttrDef { id: "GovSteamFV3.gv4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain valve position point 4 (GV4). Typical value = 0,6." },
4359            AttrDef { id: "GovSteamFV3.gv5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain valve position point 5 (GV5). Typical value = 1." },
4360            AttrDef { id: "GovSteamFV3.gv6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain valve position point 6 (GV6). Typical value = 0." },
4361            AttrDef { id: "GovSteamFV3.k", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor gain, (reciprocal of droop) (K). Typical value = 20." },
4362            AttrDef { id: "GovSteamFV3.k1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of turbine power developed after first boiler pass (K1). Typical value = 0,2." },
4363            AttrDef { id: "GovSteamFV3.k2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of turbine power developed after second boiler pass (K2). Typical value = 0,2." },
4364            AttrDef { id: "GovSteamFV3.k3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of hp turbine power developed after crossover or third boiler pass (K3). Typical value = 0,6." },
4365            AttrDef { id: "GovSteamFV3.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
4366            AttrDef { id: "GovSteamFV3.pgv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain power value point 1 (Pgv1). Typical value = 0." },
4367            AttrDef { id: "GovSteamFV3.pgv2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain power value point 2 (Pgv2). Typical value = 0,75." },
4368            AttrDef { id: "GovSteamFV3.pgv3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain power value point 3 (Pgv3). Typical value = 0,91." },
4369            AttrDef { id: "GovSteamFV3.pgv4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain power value point 4 (Pgv4). Typical value = 0,98." },
4370            AttrDef { id: "GovSteamFV3.pgv5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain power value point 5 (Pgv5). Typical value = 1." },
4371            AttrDef { id: "GovSteamFV3.pgv6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Nonlinear gain power value point 6 (Pgv6). Typical value = 0." },
4372            AttrDef { id: "GovSteamFV3.pmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum valve opening, PU of MWbase (Pmax) (> GovSteamFV3.pmin). Typical value = 1." },
4373            AttrDef { id: "GovSteamFV3.pmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum valve opening, PU of MWbase (Pmin) (< GovSteamFV3.pmax). Typical value = 0." },
4374            AttrDef { id: "GovSteamFV3.prmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Max. pressure in reheater (Prmax). Typical value = 1." },
4375            AttrDef { id: "GovSteamFV3.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor lead time constant (T1) (>= 0). Typical value = 0." },
4376            AttrDef { id: "GovSteamFV3.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor lag time constant (T2) (>= 0). Typical value = 0." },
4377            AttrDef { id: "GovSteamFV3.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Valve positioner time constant (T3) (> 0). Typical value = 0." },
4378            AttrDef { id: "GovSteamFV3.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Inlet piping/steam bowl time constant (T4) (>= 0). Typical value = 0,2." },
4379            AttrDef { id: "GovSteamFV3.t5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant of second boiler pass (i.e. reheater) (T5) (> 0 if fast valving is used, otherwise >= 0). Typical value = 0,5." },
4380            AttrDef { id: "GovSteamFV3.t6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant of crossover or third boiler pass (T6) (>= 0). Typical value = 10." },
4381            AttrDef { id: "GovSteamFV3.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time to close intercept valve (IV) (Ta) (>= 0). Typical value = 0,97." },
4382            AttrDef { id: "GovSteamFV3.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time until IV starts to reopen (Tb) (>= 0). Typical value = 0,98." },
4383            AttrDef { id: "GovSteamFV3.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time until IV is fully open (Tc) (>= 0). Typical value = 0,99." },
4384            AttrDef { id: "GovSteamFV3.uc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum valve closing velocity (Uc). Unit = PU / s. Typical value = -1." },
4385            AttrDef { id: "GovSteamFV3.uo", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum valve opening velocity (Uo). Unit = PU / s. Typical value = 0,1." },
4386        ],
4387    },
4388    ClassDef {
4389        ns: "http://iec.ch/TC57/CIM100#",
4390        local: "GovSteamFV4",
4391        qualified: "GovSteamFV4",
4392        super_class: Some(375),
4393        concrete: true,
4394        origins: &["DY"],
4395        comment: "Detailed electro-hydraulic governor for steam unit.",
4396        attrs: &[
4397            AttrDef { id: "GovSteamFV4.cpsmn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum value of pressure regulator output (Cpsmn). Typical value = -1." },
4398            AttrDef { id: "GovSteamFV4.cpsmx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum value of pressure regulator output (Cpsmx). Typical value = 1." },
4399            AttrDef { id: "GovSteamFV4.crmn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum value of regulator set-point (Crmn). Typical value = 0." },
4400            AttrDef { id: "GovSteamFV4.crmx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum value of regulator set-point (Crmx). Typical value = 1,2." },
4401            AttrDef { id: "GovSteamFV4.kdc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Derivative gain of pressure regulator (Kdc). Typical value = 1." },
4402            AttrDef { id: "GovSteamFV4.kf1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Frequency bias (reciprocal of droop) (Kf1). Typical value = 20." },
4403            AttrDef { id: "GovSteamFV4.kf3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Frequency control (reciprocal of droop) (Kf3). Typical value = 20." },
4404            AttrDef { id: "GovSteamFV4.khp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of total turbine output generated by HP part (Khp). Typical value = 0,35." },
4405            AttrDef { id: "GovSteamFV4.kic", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Integral gain of pressure regulator (Kic). Typical value = 0,0033." },
4406            AttrDef { id: "GovSteamFV4.kip", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Integral gain of pressure feedback regulator (Kip). Typical value = 0,5." },
4407            AttrDef { id: "GovSteamFV4.kit", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Integral gain of electro-hydraulic regulator (Kit). Typical value = 0,04." },
4408            AttrDef { id: "GovSteamFV4.kmp1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "First gain coefficient of intercept valves characteristic (Kmp1). Typical value = 0,5." },
4409            AttrDef { id: "GovSteamFV4.kmp2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Second gain coefficient of intercept valves characteristic (Kmp2). Typical value = 3,5." },
4410            AttrDef { id: "GovSteamFV4.kpc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Proportional gain of pressure regulator (Kpc). Typical value = 0,5." },
4411            AttrDef { id: "GovSteamFV4.kpp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Proportional gain of pressure feedback regulator (Kpp). Typical value = 1." },
4412            AttrDef { id: "GovSteamFV4.kpt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Proportional gain of electro-hydraulic regulator (Kpt). Typical value = 0,3." },
4413            AttrDef { id: "GovSteamFV4.krc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum variation of fuel flow (Krc). Typical value = 0,05." },
4414            AttrDef { id: "GovSteamFV4.ksh", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Pressure loss due to flow friction in the boiler tubes (Ksh). Typical value = 0,08." },
4415            AttrDef { id: "GovSteamFV4.lpi", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum negative power error (Lpi). Typical value = -0,15." },
4416            AttrDef { id: "GovSteamFV4.lps", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum positive power error (Lps). Typical value = 0,03." },
4417            AttrDef { id: "GovSteamFV4.mnef", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lower limit for frequency correction (MNEF). Typical value = -0,05." },
4418            AttrDef { id: "GovSteamFV4.mxef", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Upper limit for frequency correction (MXEF). Typical value = 0,05." },
4419            AttrDef { id: "GovSteamFV4.pr1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "First value of pressure set point static characteristic (Pr1). Typical value = 0,2." },
4420            AttrDef { id: "GovSteamFV4.pr2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Second value of pressure set point static characteristic, corresponding to Ps0 = 1,0 PU (Pr2). Typical value = 0,75." },
4421            AttrDef { id: "GovSteamFV4.psmn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum value of pressure set point static characteristic (Psmn). Typical value = 1." },
4422            AttrDef { id: "GovSteamFV4.rsmimn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum value of integral regulator (Rsmimn). Typical value = 0." },
4423            AttrDef { id: "GovSteamFV4.rsmimx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum value of integral regulator (Rsmimx). Typical value = 1,1." },
4424            AttrDef { id: "GovSteamFV4.rvgmn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum value of integral regulator (Rvgmn). Typical value = 0." },
4425            AttrDef { id: "GovSteamFV4.rvgmx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum value of integral regulator (Rvgmx). Typical value = 1,2." },
4426            AttrDef { id: "GovSteamFV4.srmn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum valve opening (Srmn). Typical value = 0." },
4427            AttrDef { id: "GovSteamFV4.srmx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum valve opening (Srmx). Typical value = 1,1." },
4428            AttrDef { id: "GovSteamFV4.srsmp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intercept valves characteristic discontinuity point (Srsmp). Typical value = 0,43." },
4429            AttrDef { id: "GovSteamFV4.svmn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum regulator gate closing velocity (Svmn). Typical value = -0,0333." },
4430            AttrDef { id: "GovSteamFV4.svmx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum regulator gate opening velocity (Svmx). Typical value = 0,0333." },
4431            AttrDef { id: "GovSteamFV4.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Control valves rate opening time (Ta) (>= 0). Typical value = 0,8." },
4432            AttrDef { id: "GovSteamFV4.tam", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intercept valves rate opening time (Tam) (>= 0). Typical value = 0,8." },
4433            AttrDef { id: "GovSteamFV4.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Control valves rate closing time (Tc) (>= 0). Typical value = 0,5." },
4434            AttrDef { id: "GovSteamFV4.tcm", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intercept valves rate closing time (Tcm) (>= 0). Typical value = 0,5." },
4435            AttrDef { id: "GovSteamFV4.tdc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Derivative time constant of pressure regulator (Tdc) (>= 0). Typical value = 90." },
4436            AttrDef { id: "GovSteamFV4.tf1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant of fuel regulation (Tf1) (>= 0). Typical value = 10." },
4437            AttrDef { id: "GovSteamFV4.tf2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant of steam chest (Tf2) (>= 0). Typical value = 10." },
4438            AttrDef { id: "GovSteamFV4.thp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High pressure (HP) time constant of the turbine (Thp) (>= 0). Typical value = 0,15." },
4439            AttrDef { id: "GovSteamFV4.tmp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low pressure (LP) time constant of the turbine (Tmp) (>= 0). Typical value = 0,4." },
4440            AttrDef { id: "GovSteamFV4.trh", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reheater time constant of the turbine (Trh) (>= 0). Typical value = 10." },
4441            AttrDef { id: "GovSteamFV4.tv", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Boiler time constant (Tv) (>= 0). Typical value = 60." },
4442            AttrDef { id: "GovSteamFV4.ty", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Control valves servo time constant (Ty) (>= 0). Typical value = 0,1." },
4443            AttrDef { id: "GovSteamFV4.y", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient of linearized equations of turbine (Stodola formulation) (Y). Typical value = 0,13." },
4444            AttrDef { id: "GovSteamFV4.yhpmn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum control valve position (Yhpmn). Typical value = 0." },
4445            AttrDef { id: "GovSteamFV4.yhpmx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum control valve position (Yhpmx). Typical value = 1,1." },
4446            AttrDef { id: "GovSteamFV4.ympmn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum intercept valve position (Ympmn). Typical value = 0." },
4447            AttrDef { id: "GovSteamFV4.ympmx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum intercept valve position (Ympmx). Typical value = 1,1." },
4448        ],
4449    },
4450    ClassDef {
4451        ns: "http://iec.ch/TC57/CIM100#",
4452        local: "GovSteamIEEE1",
4453        qualified: "GovSteamIEEE1",
4454        super_class: Some(375),
4455        concrete: true,
4456        origins: &["DY"],
4457        comment: "IEEE steam turbine governor model. Reference: IEEE Transactions on Power Apparatus and Systems, November/December 1973, Volume PAS-92, Number 6, Dynamic Models for Steam and Hydro Turbines in Power System Studies, page 1904.",
4458        attrs: &[
4459            AttrDef { id: "GovSteamIEEE1.k", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor gain (reciprocal of droop) (K) (> 0). Typical value = 25." },
4460            AttrDef { id: "GovSteamIEEE1.k1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of HP shaft power after first boiler pass (K1). Typical value = 0,2." },
4461            AttrDef { id: "GovSteamIEEE1.k2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of LP shaft power after first boiler pass (K2). Typical value = 0." },
4462            AttrDef { id: "GovSteamIEEE1.k3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of HP shaft power after second boiler pass (K3). Typical value = 0,3." },
4463            AttrDef { id: "GovSteamIEEE1.k4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of LP shaft power after second boiler pass (K4). Typical value = 0." },
4464            AttrDef { id: "GovSteamIEEE1.k5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of HP shaft power after third boiler pass (K5). Typical value = 0,5." },
4465            AttrDef { id: "GovSteamIEEE1.k6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of LP shaft power after third boiler pass (K6). Typical value = 0." },
4466            AttrDef { id: "GovSteamIEEE1.k7", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of HP shaft power after fourth boiler pass (K7). Typical value = 0." },
4467            AttrDef { id: "GovSteamIEEE1.k8", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of LP shaft power after fourth boiler pass (K8). Typical value = 0." },
4468            AttrDef { id: "GovSteamIEEE1.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
4469            AttrDef { id: "GovSteamIEEE1.pmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum valve opening (Pmax) (> GovSteamIEEE1.pmin). Typical value = 1." },
4470            AttrDef { id: "GovSteamIEEE1.pmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum valve opening (Pmin) (>= 0 and < GovSteamIEEE1.pmax). Typical value = 0." },
4471            AttrDef { id: "GovSteamIEEE1.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor lag time constant (T1) (>= 0). Typical value = 0." },
4472            AttrDef { id: "GovSteamIEEE1.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor lead time constant (T2) (>= 0). Typical value = 0." },
4473            AttrDef { id: "GovSteamIEEE1.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Valve positioner time constant (T3) (> 0). Typical value = 0,1." },
4474            AttrDef { id: "GovSteamIEEE1.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Inlet piping/steam bowl time constant (T4) (>= 0). Typical value = 0,3." },
4475            AttrDef { id: "GovSteamIEEE1.t5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant of second boiler pass (T5) (>= 0). Typical value = 5." },
4476            AttrDef { id: "GovSteamIEEE1.t6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant of third boiler pass (T6) (>= 0). Typical value = 0,5." },
4477            AttrDef { id: "GovSteamIEEE1.t7", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant of fourth boiler pass (T7) (>= 0). Typical value = 0." },
4478            AttrDef { id: "GovSteamIEEE1.uc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum valve closing velocity (Uc) (< 0). Unit = PU / s. Typical value = -10." },
4479            AttrDef { id: "GovSteamIEEE1.uo", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum valve opening velocity (Uo) (> 0). Unit = PU / s. Typical value = 1." },
4480        ],
4481    },
4482    ClassDef {
4483        ns: "http://iec.ch/TC57/CIM100#",
4484        local: "GovSteamSGO",
4485        qualified: "GovSteamSGO",
4486        super_class: Some(375),
4487        concrete: true,
4488        origins: &["DY"],
4489        comment: "Simplified steam turbine governor.",
4490        attrs: &[
4491            AttrDef { id: "GovSteamSGO.k1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "One / PU regulation (K1)." },
4492            AttrDef { id: "GovSteamSGO.k2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction (K2)." },
4493            AttrDef { id: "GovSteamSGO.k3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction (K3)." },
4494            AttrDef { id: "GovSteamSGO.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
4495            AttrDef { id: "GovSteamSGO.pmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Upper power limit (Pmax) (> GovSteamSGO.pmin)." },
4496            AttrDef { id: "GovSteamSGO.pmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lower power limit (Pmin) (>= 0 and < GovSteamSGO.pmax)." },
4497            AttrDef { id: "GovSteamSGO.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Controller lag (T1) (>= 0)." },
4498            AttrDef { id: "GovSteamSGO.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Controller lead compensation (T2) (>= 0)." },
4499            AttrDef { id: "GovSteamSGO.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Governor lag (T3) (> 0)." },
4500            AttrDef { id: "GovSteamSGO.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Delay due to steam inlet volumes associated with steam chest and inlet piping (T4) (>= 0)." },
4501            AttrDef { id: "GovSteamSGO.t5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reheater delay including hot and cold leads (T5) (>= 0)." },
4502            AttrDef { id: "GovSteamSGO.t6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Delay due to IP-LP turbine, crossover pipes and LP end hoods (T6) (>= 0)." },
4503        ],
4504    },
4505    ClassDef {
4506        ns: "http://iec.ch/TC57/CIM100#",
4507        local: "GrossToNetActivePowerCurve",
4508        qualified: "GrossToNetActivePowerCurve",
4509        super_class: Some(53),
4510        concrete: true,
4511        origins: &["EQ"],
4512        comment: "Relationship between the generating unit's gross active power output on the X-axis (measured at the terminals of the machine(s)) and the generating unit's net active power output on the Y-axis (based on utility-defined measurements at the power station). Station service loads, when modelled, should be treated as non-conforming bus loads. There may be more than one curve, depending on the auxiliary equipment that is in service.",
4513        attrs: &[
4514            AttrDef { id: "GrossToNetActivePowerCurve.GeneratingUnit", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "GeneratingUnit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "A generating unit may have a gross active power to net active power curve, describing the losses and auxiliary power requirements of the unit." },
4515        ],
4516    },
4517    ClassDef {
4518        ns: "http://iec.ch/TC57/CIM100#",
4519        local: "Ground",
4520        qualified: "Ground",
4521        super_class: Some(37),
4522        concrete: true,
4523        origins: &["EQ"],
4524        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.",
4525        attrs: &[],
4526    },
4527    ClassDef {
4528        ns: "http://iec.ch/TC57/CIM100#",
4529        local: "GroundDisconnector",
4530        qualified: "GroundDisconnector",
4531        super_class: Some(353),
4532        concrete: true,
4533        origins: &["EQ", "SSH"],
4534        comment: "A manually operated or motor operated mechanical switching device used for isolating a circuit or equipment from ground.",
4535        attrs: &[],
4536    },
4537    ClassDef {
4538        ns: "http://iec.ch/TC57/CIM100#",
4539        local: "GroundingImpedance",
4540        qualified: "GroundingImpedance",
4541        super_class: Some(92),
4542        concrete: true,
4543        origins: &["EQ", "SC"],
4544        comment: "A fixed impedance device used for grounding.",
4545        attrs: &[
4546            AttrDef { id: "GroundingImpedance.x", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Reactance of device." },
4547        ],
4548    },
4549    ClassDef {
4550        ns: "http://iec.ch/TC57/CIM100#",
4551        local: "HVDCDynamics",
4552        qualified: "HVDCDynamics",
4553        super_class: Some(91),
4554        concrete: false,
4555        origins: &["DY"],
4556        comment: "HVDC whose behaviour is described by reference to a standard model or by definition of a user-defined model.",
4557        attrs: &[],
4558    },
4559    ClassDef {
4560        ns: "http://iec.ch/TC57/CIM100#",
4561        local: "HydroGeneratingUnit",
4562        qualified: "HydroGeneratingUnit",
4563        super_class: Some(169),
4564        concrete: true,
4565        origins: &["EQ", "SSH"],
4566        comment: "A generating unit whose prime mover is a hydraulic turbine (e.g., Francis, Pelton, Kaplan).",
4567        attrs: &[
4568            AttrDef { id: "HydroGeneratingUnit.HydroPowerPlant", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "HydroPowerPlant", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The hydro generating unit belongs to a hydro power plant." },
4569            AttrDef { id: "HydroGeneratingUnit.dropHeight", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The height water drops from the reservoir mid-point to the turbine." },
4570            AttrDef { id: "HydroGeneratingUnit.energyConversionCapability", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "HydroEnergyConversionKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["EQ"], comment: "Energy conversion capability for generating." },
4571            AttrDef { id: "HydroGeneratingUnit.turbineType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "HydroTurbineKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["EQ"], comment: "Type of turbine." },
4572        ],
4573    },
4574    ClassDef {
4575        ns: "http://iec.ch/TC57/CIM100#",
4576        local: "HydroPowerPlant",
4577        qualified: "HydroPowerPlant",
4578        super_class: Some(282),
4579        concrete: true,
4580        origins: &["EQ"],
4581        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.",
4582        attrs: &[
4583            AttrDef { id: "HydroPowerPlant.HydroGeneratingUnits", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "HydroGeneratingUnit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The hydro generating unit belongs to a hydro power plant." },
4584            AttrDef { id: "HydroPowerPlant.HydroPumps", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "HydroPump", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The hydro pump may be a member of a pumped storage plant or a pump for distributing water." },
4585            AttrDef { id: "HydroPowerPlant.hydroPlantStorageType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "HydroPlantStorageKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["EQ"], comment: "The type of hydro power plant water storage." },
4586        ],
4587    },
4588    ClassDef {
4589        ns: "http://iec.ch/TC57/CIM100#",
4590        local: "HydroPump",
4591        qualified: "HydroPump",
4592        super_class: Some(98),
4593        concrete: true,
4594        origins: &["EQ"],
4595        comment: "A synchronous motor-driven pump, typically associated with a pumped storage plant.",
4596        attrs: &[
4597            AttrDef { id: "HydroPump.HydroPowerPlant", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "HydroPowerPlant", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The hydro pump may be a member of a pumped storage plant or a pump for distributing water." },
4598            AttrDef { id: "HydroPump.RotatingMachine", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RotatingMachine", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The synchronous machine drives the turbine which moves the water from a low elevation to a higher elevation. The direction of machine rotation for pumping may or may not be the same as for generating." },
4599        ],
4600    },
4601    ClassDef {
4602        ns: "http://iec.ch/TC57/CIM100#",
4603        local: "IOPoint",
4604        qualified: "IOPoint",
4605        super_class: Some(213),
4606        concrete: false,
4607        origins: &["OP"],
4608        comment: "The class describe a measurement or control value. The purpose is to enable having attributes and associations common for measurement and control.",
4609        attrs: &[],
4610    },
4611    ClassDef {
4612        ns: "http://iec.ch/TC57/CIM100#",
4613        local: "IdentifiedObject",
4614        qualified: "IdentifiedObject",
4615        super_class: None,
4616        concrete: false,
4617        origins: &["EQ", "DL", "DY", "EQBD", "GL", "OP", "SC", "SSH", "SV", "TP"],
4618        comment: "This is a root class to provide common identification for all classes needing identification and naming attributes.",
4619        attrs: &[
4620            AttrDef { id: "IdentifiedObject.DiagramObjects", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DiagramObject", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DL"], comment: "The diagram objects that are associated with the domain object." },
4621            AttrDef { id: "IdentifiedObject.description", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["EQ", "DL", "DY", "EQBD", "OP", "TP"], 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." },
4622            AttrDef { id: "IdentifiedObject.energyIdentCodeEic", ns: "http://iec.ch/TC57/CIM100-European#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["EQ", "EQBD", "TP"], 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." },
4623            AttrDef { id: "IdentifiedObject.mRID", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["EQ", "DL", "DY", "EQBD", "GL", "OP", "SC", "SSH", "SV", "TP"], 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." },
4624            AttrDef { id: "IdentifiedObject.name", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["EQ", "DL", "DY", "EQBD", "GL", "OP", "SV", "TP"], comment: "The name is any free human readable and possibly non unique text naming the object." },
4625            AttrDef { id: "IdentifiedObject.shortName", ns: "http://iec.ch/TC57/CIM100-European#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["EQ", "EQBD", "TP"], comment: "The attribute is used for an exchange of a human readable short name with length of the string 12 characters maximum." },
4626        ],
4627    },
4628    ClassDef {
4629        ns: "http://iec.ch/TC57/CIM100#",
4630        local: "Jumper",
4631        qualified: "Jumper",
4632        super_class: Some(353),
4633        concrete: true,
4634        origins: &["EQ", "SSH"],
4635        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.",
4636        attrs: &[],
4637    },
4638    ClassDef {
4639        ns: "http://iec.ch/TC57/CIM100#",
4640        local: "Junction",
4641        qualified: "Junction",
4642        super_class: Some(44),
4643        concrete: true,
4644        origins: &["EQ", "EQBD"],
4645        comment: "A point where one or more conducting equipments are connected with zero resistance.",
4646        attrs: &[],
4647    },
4648    ClassDef {
4649        ns: "http://iec.ch/TC57/CIM100#",
4650        local: "Limit",
4651        qualified: "Limit",
4652        super_class: Some(213),
4653        concrete: false,
4654        origins: &["OP"],
4655        comment: "Specifies one limit value for a Measurement. A Measurement typically has several limits that are kept together by the LimitSet class. The actual meaning and use of a Limit instance (i.e., if it is an alarm or warning limit or if it is a high or low limit) is not captured in the Limit class. However the name of a Limit instance may indicate both meaning and use.",
4656        attrs: &[],
4657    },
4658    ClassDef {
4659        ns: "http://iec.ch/TC57/CIM100-European#",
4660        local: "LimitKind",
4661        qualified: "LimitKind",
4662        super_class: None,
4663        concrete: false,
4664        origins: &["EQ"],
4665        comment: "Limit kinds.",
4666        attrs: &[],
4667    },
4668    ClassDef {
4669        ns: "http://iec.ch/TC57/CIM100#",
4670        local: "LimitSet",
4671        qualified: "LimitSet",
4672        super_class: Some(213),
4673        concrete: false,
4674        origins: &["OP"],
4675        comment: "Specifies a set of Limits that are associated with a Measurement. A Measurement may have several LimitSets corresponding to seasonal or other changing conditions. The condition is captured in the name and description attributes. The same LimitSet may be used for several Measurements. In particular percentage limits are used this way.",
4676        attrs: &[
4677            AttrDef { id: "LimitSet.isPercentageLimits", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["OP"], comment: "Tells if the limit values are in percentage of normalValue or the specified Unit for Measurements and Controls." },
4678        ],
4679    },
4680    ClassDef {
4681        ns: "http://iec.ch/TC57/CIM100#",
4682        local: "Line",
4683        qualified: "Line",
4684        super_class: Some(99),
4685        concrete: true,
4686        origins: &["EQ", "EQBD"],
4687        comment: "Contains equipment beyond a substation belonging to a power transmission line.",
4688        attrs: &[
4689            AttrDef { id: "Line.Region", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SubGeographicalRegion", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ", "EQBD"], comment: "The sub-geographical region of the line." },
4690        ],
4691    },
4692    ClassDef {
4693        ns: "http://iec.ch/TC57/CIM100#",
4694        local: "LinearShuntCompensator",
4695        qualified: "LinearShuntCompensator",
4696        super_class: Some(330),
4697        concrete: true,
4698        origins: &["EQ", "SC", "SSH"],
4699        comment: "A linear shunt compensator has banks or sections with equal admittance values.",
4700        attrs: &[
4701            AttrDef { id: "LinearShuntCompensator.b0PerSection", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Susceptance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence shunt (charging) susceptance per section." },
4702            AttrDef { id: "LinearShuntCompensator.bPerSection", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Susceptance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Positive sequence shunt (charging) susceptance per section." },
4703            AttrDef { id: "LinearShuntCompensator.g0PerSection", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Conductance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence shunt (charging) conductance per section." },
4704            AttrDef { id: "LinearShuntCompensator.gPerSection", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Conductance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Positive sequence shunt (charging) conductance per section." },
4705        ],
4706    },
4707    ClassDef {
4708        ns: "http://iec.ch/TC57/CIM100#",
4709        local: "LoadAggregate",
4710        qualified: "LoadAggregate",
4711        super_class: Some(225),
4712        concrete: true,
4713        origins: &["DY"],
4714        comment: "Aggregate loads are used to represent all or part of the real and reactive load from one or more loads in the static (power flow) data. This load is usually the aggregation of many individual load devices and the load model is an approximate representation of the aggregate response of the load devices to system disturbances. Standard aggregate load model comprised of static and/or dynamic components. A static load model represents the sensitivity of the real and reactive power consumed by the load to the amplitude and frequency of the bus voltage. A dynamic load model can be used to represent the aggregate response of the motor components of the load.",
4715        attrs: &[
4716            AttrDef { id: "LoadAggregate.LoadMotor", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "LoadMotor", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Aggregate motor (dynamic) load associated with this aggregate load." },
4717            AttrDef { id: "LoadAggregate.LoadStatic", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "LoadStatic", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Aggregate static load associated with this aggregate load." },
4718        ],
4719    },
4720    ClassDef {
4721        ns: "http://iec.ch/TC57/CIM100#",
4722        local: "LoadArea",
4723        qualified: "LoadArea",
4724        super_class: Some(93),
4725        concrete: true,
4726        origins: &["EQ"],
4727        comment: "The class is the root or first level in a hierarchical structure for grouping of loads for the purpose of load flow load scaling.",
4728        attrs: &[
4729            AttrDef { id: "LoadArea.SubLoadAreas", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SubLoadArea", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The SubLoadAreas in the LoadArea." },
4730        ],
4731    },
4732    ClassDef {
4733        ns: "http://iec.ch/TC57/CIM100#",
4734        local: "LoadBreakSwitch",
4735        qualified: "LoadBreakSwitch",
4736        super_class: Some(288),
4737        concrete: true,
4738        origins: &["EQ", "SSH"],
4739        comment: "A mechanical switching device capable of making, carrying, and breaking currents under normal operating conditions.",
4740        attrs: &[],
4741    },
4742    ClassDef {
4743        ns: "http://iec.ch/TC57/CIM100#",
4744        local: "LoadComposite",
4745        qualified: "LoadComposite",
4746        super_class: Some(225),
4747        concrete: true,
4748        origins: &["DY"],
4749        comment: "Combined static load and induction motor load effects. The dynamics of the motor are simplified by linearizing the induction machine equations.",
4750        attrs: &[
4751            AttrDef { id: "LoadComposite.epfd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Active load-frequency dependence index (dynamic) (Epfd). Typical value = 1,5." },
4752            AttrDef { id: "LoadComposite.epfs", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Active load-frequency dependence index (static) (Epfs). Typical value = 1,5." },
4753            AttrDef { id: "LoadComposite.epvd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Active load-voltage dependence index (dynamic) (Epvd). Typical value = 0,7." },
4754            AttrDef { id: "LoadComposite.epvs", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Active load-voltage dependence index (static) (Epvs). Typical value = 0,7." },
4755            AttrDef { id: "LoadComposite.eqfd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactive load-frequency dependence index (dynamic) (Eqfd). Typical value = 0." },
4756            AttrDef { id: "LoadComposite.eqfs", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactive load-frequency dependence index (static) (Eqfs). Typical value = 0." },
4757            AttrDef { id: "LoadComposite.eqvd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactive load-voltage dependence index (dynamic) (Eqvd). Typical value = 2." },
4758            AttrDef { id: "LoadComposite.eqvs", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactive load-voltage dependence index (static) (Eqvs). Typical value = 2." },
4759            AttrDef { id: "LoadComposite.h", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Inertia constant (H) (>= 0). Typical value = 2,5." },
4760            AttrDef { id: "LoadComposite.lfac", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Loading factor (Lfac). The ratio of initial P to motor MVA base. Typical value = 0,8." },
4761            AttrDef { id: "LoadComposite.pfrac", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of constant-power load to be represented by this motor model (PFRAC) (>= 0,0 and <= 1,0). Typical value = 0,5." },
4762        ],
4763    },
4764    ClassDef {
4765        ns: "http://iec.ch/TC57/CIM100#",
4766        local: "LoadDynamics",
4767        qualified: "LoadDynamics",
4768        super_class: Some(213),
4769        concrete: false,
4770        origins: &["DY"],
4771        comment: "Load whose behaviour is described by reference to a standard model or by definition of a user-defined model. A standard feature of dynamic load behaviour modelling is the ability to associate the same behaviour to multiple energy consumers by means of a single load definition. The load model is always applied to individual bus loads (energy consumers).",
4772        attrs: &[
4773            AttrDef { id: "LoadDynamics.EnergyConsumer", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "EnergyConsumer", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Energy consumer to which this dynamics load model applies." },
4774        ],
4775    },
4776    ClassDef {
4777        ns: "http://iec.ch/TC57/CIM100#",
4778        local: "LoadGenericNonLinear",
4779        qualified: "LoadGenericNonLinear",
4780        super_class: Some(225),
4781        concrete: true,
4782        origins: &["DY"],
4783        comment: "Generic non-linear dynamic (GNLD) load. This model can be used in mid-term and long-term voltage stability simulations (i.e., to study voltage collapse), as it can replace a more detailed representation of aggregate load, including induction motors, thermostatically controlled and static loads.",
4784        attrs: &[
4785            AttrDef { id: "LoadGenericNonLinear.bs", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Steady state voltage index for reactive power (BS)." },
4786            AttrDef { id: "LoadGenericNonLinear.bt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Transient voltage index for reactive power (BT)." },
4787            AttrDef { id: "LoadGenericNonLinear.genericNonLinearLoadModelType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "GenericNonLinearLoadModelKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Type of generic non-linear load model." },
4788            AttrDef { id: "LoadGenericNonLinear.ls", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Steady state voltage index for active power (LS)." },
4789            AttrDef { id: "LoadGenericNonLinear.lt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Transient voltage index for active power (LT)." },
4790            AttrDef { id: "LoadGenericNonLinear.tp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant of lag function of active power (TP) (> 0)." },
4791            AttrDef { id: "LoadGenericNonLinear.tq", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant of lag function of reactive power (TQ) (> 0)." },
4792        ],
4793    },
4794    ClassDef {
4795        ns: "http://iec.ch/TC57/CIM100#",
4796        local: "LoadGroup",
4797        qualified: "LoadGroup",
4798        super_class: Some(213),
4799        concrete: false,
4800        origins: &["EQ"],
4801        comment: "The class is the third level in a hierarchical structure for grouping of loads for the purpose of load flow load scaling.",
4802        attrs: &[
4803            AttrDef { id: "LoadGroup.SubLoadArea", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SubLoadArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The SubLoadArea where the Loadgroup belongs." },
4804        ],
4805    },
4806    ClassDef {
4807        ns: "http://iec.ch/TC57/CIM100#",
4808        local: "LoadMotor",
4809        qualified: "LoadMotor",
4810        super_class: Some(213),
4811        concrete: true,
4812        origins: &["DY"],
4813        comment: "Aggregate induction motor load. This model is used to represent a fraction of an ordinary load as 'induction motor load'. It allows a load that is treated as an ordinary constant power in power flow analysis to be represented by an induction motor in dynamic simulation. This model is intended for representation of aggregations of many motors dispersed through a load represented at a high voltage bus but where there is no information on the characteristics of individual motors. Either a 'one-cage' or 'two-cage' model of the induction machine can be modelled. Magnetic saturation is not modelled. This model treats a fraction of the constant power part of a load as a motor. During initialisation, the initial power drawn by the motor is set equal to Pfrac times the constant P part of the static load. The remainder of the load is left as a static load. The reactive power demand of the motor is calculated during initialisation as a function of voltage at the load bus. This reactive power demand can be less than or greater than the constant Q component of the load. If the motor's reactive demand is greater than the constant Q component of the load, the model inserts a shunt capacitor at the terminal of the motor to bring its reactive demand down to equal the constant Q reactive load. If an induction motor load model and a static load model are both present for a load, the motor Pfrac is assumed to be subtracted from the power flow constant P load before the static load model is applied. The remainder of the load, if any, is then represented by the static load model.",
4814        attrs: &[
4815            AttrDef { id: "LoadMotor.LoadAggregate", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "LoadAggregate", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Aggregate load to which this aggregate motor (dynamic) load belongs." },
4816            AttrDef { id: "LoadMotor.d", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Damping factor (D). Unit = delta P/delta speed. Typical value = 2." },
4817            AttrDef { id: "LoadMotor.h", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Inertia constant (H) (>= 0). Typical value = 0,4." },
4818            AttrDef { id: "LoadMotor.lfac", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Loading factor (Lfac). The ratio of initial P to motor MVA base. Typical value = 0,8." },
4819            AttrDef { id: "LoadMotor.lp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Transient reactance (Lp). Typical value = 0,15." },
4820            AttrDef { id: "LoadMotor.lpp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Subtransient reactance (Lpp). Typical value = 0,15." },
4821            AttrDef { id: "LoadMotor.ls", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Synchronous reactance (Ls). Typical value = 3,2." },
4822            AttrDef { id: "LoadMotor.pfrac", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Fraction of constant-power load to be represented by this motor model (Pfrac) (>= 0,0 and <= 1,0). Typical value = 0,3." },
4823            AttrDef { id: "LoadMotor.ra", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stator resistance (Ra). Typical value = 0." },
4824            AttrDef { id: "LoadMotor.tbkr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Circuit breaker operating time (Tbkr) (>= 0). Typical value = 0,08." },
4825            AttrDef { id: "LoadMotor.tpo", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Transient rotor time constant (Tpo) (>= 0). Typical value = 1." },
4826            AttrDef { id: "LoadMotor.tppo", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Subtransient rotor time constant (Tppo) (>= 0). Typical value = 0,02." },
4827            AttrDef { id: "LoadMotor.tv", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage trip pickup time (Tv) (>= 0). Typical value = 0,1." },
4828            AttrDef { id: "LoadMotor.vt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage threshold for tripping (Vt). Typical value = 0,7." },
4829        ],
4830    },
4831    ClassDef {
4832        ns: "http://iec.ch/TC57/CIM100#",
4833        local: "LoadResponseCharacteristic",
4834        qualified: "LoadResponseCharacteristic",
4835        super_class: Some(213),
4836        concrete: true,
4837        origins: &["EQ"],
4838        comment: "Models the characteristic response of the load demand due to changes in system conditions such as voltage and frequency. It is not related to demand response. If LoadResponseCharacteristic.exponentModel is True, the exponential voltage or frequency dependent models are specified and used as to calculate active and reactive power components of the load model. The equations to calculate active and reactive power components of the load model are internal to the power flow calculation, hence they use different quantities depending on the use case of the data exchange. The equations for exponential voltage dependent load model injected power are: pInjection= Pnominal* (Voltage/cim:BaseVoltage.nominalVoltage) ** cim:LoadResponseCharacteristic.pVoltageExponent qInjection= Qnominal* (Voltage/cim:BaseVoltage.nominalVoltage) ** cim:LoadResponseCharacteristic.qVoltageExponent Where: 1) * means 'multiply' and ** is 'raised to power of'; 2) Pnominal and Qnominal represent the active power and reactive power at nominal voltage as any load described by the voltage exponential model shall be given at nominal voltage. This means that EnergyConsumer.p and EnergyConsumer.q are at nominal voltage. 3) After power flow is solved: -pInjection and qInjection correspond to SvPowerflow.p and SvPowerflow.q respectively. - Voltage corresponds to SvVoltage.v at the TopologicalNode where the load is connected.",
4839        attrs: &[
4840            AttrDef { id: "LoadResponseCharacteristic.EnergyConsumer", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "EnergyConsumer", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The set of loads that have the response characteristics." },
4841            AttrDef { id: "LoadResponseCharacteristic.exponentModel", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["EQ"], comment: "Indicates the exponential voltage dependency model is to be used. If false, the coefficient model is to be used. The exponential voltage dependency model consist of the attributes: - pVoltageExponent - qVoltageExponent - pFrequencyExponent - qFrequencyExponent. The coefficient model consist of the attributes: - pConstantImpedance - pConstantCurrent - pConstantPower - qConstantImpedance - qConstantCurrent - qConstantPower. The sum of pConstantImpedance, pConstantCurrent and pConstantPower shall equal 1. The sum of qConstantImpedance, qConstantCurrent and qConstantPower shall equal 1." },
4842            AttrDef { id: "LoadResponseCharacteristic.pConstantCurrent", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Portion of active power load modelled as constant current." },
4843            AttrDef { id: "LoadResponseCharacteristic.pConstantImpedance", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Portion of active power load modelled as constant impedance." },
4844            AttrDef { id: "LoadResponseCharacteristic.pConstantPower", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Portion of active power load modelled as constant power." },
4845            AttrDef { id: "LoadResponseCharacteristic.pFrequencyExponent", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Exponent of per unit frequency effecting active power." },
4846            AttrDef { id: "LoadResponseCharacteristic.pVoltageExponent", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Exponent of per unit voltage effecting real power." },
4847            AttrDef { id: "LoadResponseCharacteristic.qConstantCurrent", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Portion of reactive power load modelled as constant current." },
4848            AttrDef { id: "LoadResponseCharacteristic.qConstantImpedance", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Portion of reactive power load modelled as constant impedance." },
4849            AttrDef { id: "LoadResponseCharacteristic.qConstantPower", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Portion of reactive power load modelled as constant power." },
4850            AttrDef { id: "LoadResponseCharacteristic.qFrequencyExponent", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Exponent of per unit frequency effecting reactive power." },
4851            AttrDef { id: "LoadResponseCharacteristic.qVoltageExponent", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Exponent of per unit voltage effecting reactive power." },
4852        ],
4853    },
4854    ClassDef {
4855        ns: "http://iec.ch/TC57/CIM100#",
4856        local: "LoadStatic",
4857        qualified: "LoadStatic",
4858        super_class: Some(213),
4859        concrete: true,
4860        origins: &["DY"],
4861        comment: "General static load. This model represents the sensitivity of the real and reactive power consumed by the load to the amplitude and frequency of the bus voltage.",
4862        attrs: &[
4863            AttrDef { id: "LoadStatic.LoadAggregate", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "LoadAggregate", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Aggregate load to which this aggregate static load belongs." },
4864            AttrDef { id: "LoadStatic.ep1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "First term voltage exponent for active power (Ep1). Used only when .staticLoadModelType = exponential." },
4865            AttrDef { id: "LoadStatic.ep2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Second term voltage exponent for active power (Ep2). Used only when .staticLoadModelType = exponential." },
4866            AttrDef { id: "LoadStatic.ep3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Third term voltage exponent for active power (Ep3). Used only when .staticLoadModelType = exponential." },
4867            AttrDef { id: "LoadStatic.eq1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "First term voltage exponent for reactive power (Eq1). Used only when .staticLoadModelType = exponential." },
4868            AttrDef { id: "LoadStatic.eq2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Second term voltage exponent for reactive power (Eq2). Used only when .staticLoadModelType = exponential." },
4869            AttrDef { id: "LoadStatic.eq3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Third term voltage exponent for reactive power (Eq3). Used only when .staticLoadModelType = exponential." },
4870            AttrDef { id: "LoadStatic.kp1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "First term voltage coefficient for active power (Kp1). Not used when .staticLoadModelType = constantZ." },
4871            AttrDef { id: "LoadStatic.kp2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Second term voltage coefficient for active power (Kp2). Not used when .staticLoadModelType = constantZ." },
4872            AttrDef { id: "LoadStatic.kp3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Third term voltage coefficient for active power (Kp3). Not used when .staticLoadModelType = constantZ." },
4873            AttrDef { id: "LoadStatic.kp4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Frequency coefficient for active power (Kp4) (not = 0 if .staticLoadModelType = zIP2). Used only when .staticLoadModelType = zIP2." },
4874            AttrDef { id: "LoadStatic.kpf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Frequency deviation coefficient for active power (Kpf). Not used when .staticLoadModelType = constantZ." },
4875            AttrDef { id: "LoadStatic.kq1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "First term voltage coefficient for reactive power (Kq1). Not used when .staticLoadModelType = constantZ." },
4876            AttrDef { id: "LoadStatic.kq2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Second term voltage coefficient for reactive power (Kq2). Not used when .staticLoadModelType = constantZ." },
4877            AttrDef { id: "LoadStatic.kq3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Third term voltage coefficient for reactive power (Kq3). Not used when .staticLoadModelType = constantZ." },
4878            AttrDef { id: "LoadStatic.kq4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Frequency coefficient for reactive power (Kq4) (not = 0 when .staticLoadModelType = zIP2). Used only when .staticLoadModelType - zIP2." },
4879            AttrDef { id: "LoadStatic.kqf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Frequency deviation coefficient for reactive power (Kqf). Not used when .staticLoadModelType = constantZ." },
4880            AttrDef { id: "LoadStatic.staticLoadModelType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "StaticLoadModelKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Type of static load model. Typical value = constantZ." },
4881        ],
4882    },
4883    ClassDef {
4884        ns: "http://iec.ch/TC57/CIM100#",
4885        local: "LoadUserDefined",
4886        qualified: "LoadUserDefined",
4887        super_class: Some(225),
4888        concrete: true,
4889        origins: &["DY"],
4890        comment: "Load whose dynamic behaviour is described by a user-defined model.",
4891        attrs: &[
4892            AttrDef { id: "LoadUserDefined.ProprietaryParameterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ProprietaryParameterDynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Parameter of this proprietary user-defined model." },
4893            AttrDef { id: "LoadUserDefined.proprietary", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Behaviour is based on a proprietary model as opposed to a detailed model. true = user-defined model is proprietary with behaviour mutually understood by sending and receiving applications and parameters passed as general attributes false = user-defined model is explicitly defined in terms of control blocks and their input and output signals." },
4894        ],
4895    },
4896    ClassDef {
4897        ns: "http://iec.ch/TC57/CIM100#",
4898        local: "Location",
4899        qualified: "Location",
4900        super_class: Some(213),
4901        concrete: true,
4902        origins: &["GL"],
4903        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.",
4904        attrs: &[
4905            AttrDef { id: "Location.CoordinateSystem", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "CoordinateSystem", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GL"], comment: "Coordinate system used to describe position points of this location." },
4906            AttrDef { id: "Location.PositionPoints", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PositionPoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["GL"], comment: "Sequence of position points describing this location, expressed in coordinate system 'Location.CoordinateSystem'." },
4907            AttrDef { id: "Location.PowerSystemResources", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PowerSystemResource", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GL"], comment: "All power system resources at this location." },
4908            AttrDef { id: "Location.mainAddress", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "StreetAddress", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GL"], comment: "Main address of the location." },
4909        ],
4910    },
4911    ClassDef {
4912        ns: "http://iec.ch/TC57/CIM100#",
4913        local: "Measurement",
4914        qualified: "Measurement",
4915        super_class: Some(213),
4916        concrete: false,
4917        origins: &["OP"],
4918        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.",
4919        attrs: &[
4920            AttrDef { id: "Measurement.PowerSystemResource", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PowerSystemResource", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OP"], comment: "The power system resource that contains the measurement." },
4921            AttrDef { id: "Measurement.Terminal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ACDCTerminal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OP"], comment: "One or more measurements may be associated with a terminal in the network." },
4922            AttrDef { id: "Measurement.measurementType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["OP"], comment: "Specifies the type of measurement. For example, this specifies if the measurement represents an indoor temperature, outdoor temperature, bus voltage, line flow, etc. When the measurementType is set to 'Specialization', the type of Measurement is defined in more detail by the specialized class which inherits from Measurement." },
4923            AttrDef { id: "Measurement.phases", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "PhaseCode", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["OP"], comment: "Indicates to which phases the measurement applies and avoids the need to use 'measurementType' to also encode phase information (which would explode the types). The phase information in Measurement, along with 'measurementType' and 'phases' uniquely defines a Measurement for a device, based on normal network phase. Their meaning will not change when the computed energizing phasing is changed due to jumpers or other reasons. If the attribute is missing three phases (ABC) shall be assumed." },
4924            AttrDef { id: "Measurement.unitMultiplier", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "UnitMultiplier", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["OP"], comment: "The unit multiplier of the measured quantity." },
4925            AttrDef { id: "Measurement.unitSymbol", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "UnitSymbol", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["OP"], comment: "The unit of measure of the measured quantity." },
4926        ],
4927    },
4928    ClassDef {
4929        ns: "http://iec.ch/TC57/CIM100#",
4930        local: "MeasurementValue",
4931        qualified: "MeasurementValue",
4932        super_class: Some(212),
4933        concrete: false,
4934        origins: &["OP"],
4935        comment: "The current state for a measurement. A state value is an instance of a measurement from a specific source. Measurements can be associated with many state values, each representing a different source for the measurement.",
4936        attrs: &[
4937            AttrDef { id: "MeasurementValue.MeasurementValueQuality", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "MeasurementValueQuality", is_list: false, used: false, xsd: "", value_ns: "", origins: &["OP"], comment: "A MeasurementValue has a MeasurementValueQuality associated with it." },
4938            AttrDef { id: "MeasurementValue.MeasurementValueSource", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "MeasurementValueSource", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OP"], comment: "A reference to the type of source that updates the MeasurementValue, e.g. SCADA, CCLink, manual, etc. User conventions for the names of sources are contained in the introduction to IEC 61970-301." },
4939            AttrDef { id: "MeasurementValue.sensorAccuracy", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["OP"], comment: "The limit, expressed as a percentage of the sensor maximum, that errors will not exceed when the sensor is used under reference conditions." },
4940            AttrDef { id: "MeasurementValue.timeStamp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["OP"], comment: "The time when the value was last updated." },
4941        ],
4942    },
4943    ClassDef {
4944        ns: "http://iec.ch/TC57/CIM100#",
4945        local: "MeasurementValueQuality",
4946        qualified: "MeasurementValueQuality",
4947        super_class: Some(307),
4948        concrete: true,
4949        origins: &["OP"],
4950        comment: "Measurement quality flags. Bits 0-10 are defined for substation automation in IEC 61850-7-3. Bits 11-15 are reserved for future expansion by that document. Bits 16-31 are reserved for EMS applications.",
4951        attrs: &[
4952            AttrDef { id: "MeasurementValueQuality.MeasurementValue", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "MeasurementValue", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OP"], comment: "A MeasurementValue has a MeasurementValueQuality associated with it." },
4953        ],
4954    },
4955    ClassDef {
4956        ns: "http://iec.ch/TC57/CIM100#",
4957        local: "MeasurementValueSource",
4958        qualified: "MeasurementValueSource",
4959        super_class: Some(213),
4960        concrete: true,
4961        origins: &["OP"],
4962        comment: "MeasurementValueSource describes the alternative sources updating a MeasurementValue. User conventions for how to use the MeasurementValueSource attributes are defined in IEC 61970-301.",
4963        attrs: &[
4964            AttrDef { id: "MeasurementValueSource.MeasurementValues", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "MeasurementValue", is_list: true, used: false, xsd: "", value_ns: "", origins: &["OP"], comment: "The MeasurementValues updated by the source." },
4965        ],
4966    },
4967    ClassDef {
4968        ns: "http://iec.ch/TC57/CIM100#",
4969        local: "MechLoad1",
4970        qualified: "MechLoad1",
4971        super_class: Some(238),
4972        concrete: true,
4973        origins: &["DY"],
4974        comment: "Mechanical load model type 1.",
4975        attrs: &[
4976            AttrDef { id: "MechLoad1.a", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Speed squared coefficient (a)." },
4977            AttrDef { id: "MechLoad1.b", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Speed coefficient (b)." },
4978            AttrDef { id: "MechLoad1.d", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Speed to the exponent coefficient (d)." },
4979            AttrDef { id: "MechLoad1.e", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Exponent (e)." },
4980        ],
4981    },
4982    ClassDef {
4983        ns: "http://iec.ch/TC57/CIM100#",
4984        local: "MechanicalLoadDynamics",
4985        qualified: "MechanicalLoadDynamics",
4986        super_class: Some(91),
4987        concrete: false,
4988        origins: &["DY"],
4989        comment: "Mechanical load function block whose behaviour is described by reference to a standard model or by definition of a user-defined model.",
4990        attrs: &[
4991            AttrDef { id: "MechanicalLoadDynamics.AsynchronousMachineDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "AsynchronousMachineDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Asynchronous machine model with which this mechanical load model is associated. MechanicalLoadDynamics shall have either an association to SynchronousMachineDynamics or to AsynchronousMachineDynamics." },
4992            AttrDef { id: "MechanicalLoadDynamics.SynchronousMachineDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SynchronousMachineDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Synchronous machine model with which this mechanical load model is associated. MechanicalLoadDynamics shall have either an association to SynchronousMachineDynamics or AsynchronousMachineDyanmics." },
4993        ],
4994    },
4995    ClassDef {
4996        ns: "http://iec.ch/TC57/CIM100#",
4997        local: "MechanicalLoadUserDefined",
4998        qualified: "MechanicalLoadUserDefined",
4999        super_class: Some(238),
5000        concrete: true,
5001        origins: &["DY"],
5002        comment: "Mechanical load function block whose dynamic behaviour is described by a user-defined model.",
5003        attrs: &[
5004            AttrDef { id: "MechanicalLoadUserDefined.ProprietaryParameterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ProprietaryParameterDynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Parameter of this proprietary user-defined model." },
5005            AttrDef { id: "MechanicalLoadUserDefined.proprietary", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Behaviour is based on a proprietary model as opposed to a detailed model. true = user-defined model is proprietary with behaviour mutually understood by sending and receiving applications and parameters passed as general attributes false = user-defined model is explicitly defined in terms of control blocks and their input and output signals." },
5006        ],
5007    },
5008    ClassDef {
5009        ns: "http://iec.ch/TC57/61970-552/ModelDescription/1#",
5010        local: "Model",
5011        qualified: "Model",
5012        super_class: None,
5013        concrete: false,
5014        origins: &["FH"],
5015        comment: "A Model is a collection of data describing instances, objects or entities, real or computed. In the context of CIM the semantics of the data is defined by profiles. Hence a model can contain equipment data, power flow initial values, power flow results etc. The Model class describes the header content that is the same for the FullModel and the DifferenceModel. A Model is identified by an rdf:about attribute. The rdf:about attribute uniquely describe the model data and not the CIMXML document. A new rdf:about identification is generated for created documents only when the model data has changed. A repeated creation of documents from unchanged model data shall have the same rdf:about identification as previous document generated from the same model data.",
5016        attrs: &[
5017            AttrDef { id: "Model.DependentOn", ns: "http://iec.ch/TC57/61970-552/ModelDescription/1#", kind: AttrKind::Association, range: "Model", is_list: true, used: true, xsd: "", value_ns: "", origins: &["FH"], comment: "A reference to the model documents that the model described by this document depends on. In general there can be 0 or many Model.DependentOn depending on the profile and the content of the instance file. For instance: - A load flow solution depends on the topology model it was computed from - A topology model computed by a topology processor depends on the network model it was computed from. The referenced models are identified by the FullModel rdf:about attribute for full model documents and by DifferenceModel rdf:about attribute for difference model documents. The references are maintained by the producer of the CIMXML document and the references are valid for the model with version and identifier for which the document was created." },
5018            AttrDef { id: "Model.Depending", ns: "http://iec.ch/TC57/61970-552/ModelDescription/1#", kind: AttrKind::Association, range: "Model", is_list: true, used: false, xsd: "", value_ns: "", origins: &["FH"], comment: "All documents depending on the model described by this document. This role is not intended to be included in any document exchanging instance data." },
5019            AttrDef { id: "Model.SupersededBy", ns: "http://iec.ch/TC57/61970-552/ModelDescription/1#", kind: AttrKind::Association, range: "Model", is_list: true, used: false, xsd: "", value_ns: "", origins: &["FH"], comment: "All models superseding this model. This role is not intended to be included in any document exchanging instance data." },
5020            AttrDef { id: "Model.Supersedes", ns: "http://iec.ch/TC57/61970-552/ModelDescription/1#", kind: AttrKind::Association, range: "Model", is_list: true, used: true, xsd: "", value_ns: "", origins: &["FH"], comment: "When a model is updated the resulting model supersedes the models that were used as basis for the update. Hence this is a reference to the CIMXML documents which are superseded by this model. A model (or instance file) can supersede 1 or more models, e.g. a difference model or a full model supersede multiple models (difference or full). In this case more than one Model.Supersedes are included in the header. The referenced document(s) is (are) identified by the URN/MRID/UUID in the FullModel rdf:about attribute when full model(s) is (are) referenced and by the URN/MRID/UUID in the DifferenceModel rdf:about attribute when difference model(s) is (are) referenced." },
5021            AttrDef { id: "Model.created", ns: "http://iec.ch/TC57/61970-552/ModelDescription/1#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["FH"], comment: "The date and time when the model was created. It is the time of the serialization. The format is an extended format according to the ISO 8601-2005. European exchanges shall refer to UTC, e.g. 2014-05-15T17:48:31.474Z." },
5022            AttrDef { id: "Model.description", ns: "http://iec.ch/TC57/61970-552/ModelDescription/1#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["FH"], comment: "A description of the model, e.g. the name of person that created the model and for what purpose. The number of UTF-8 characters is limited to 2000." },
5023            AttrDef { id: "Model.modelingAuthoritySet", ns: "http://iec.ch/TC57/61970-552/ModelDescription/1#", kind: AttrKind::Literal, range: "URI", is_list: false, used: true, xsd: "anyURI", value_ns: "", origins: &["FH"], comment: "A URN/URI referring to the organisation role / model authority set reference. The organization role is the source of the model. It is the same for all profiles part of a model exchange." },
5024            AttrDef { id: "Model.profile", ns: "http://iec.ch/TC57/61970-552/ModelDescription/1#", kind: AttrKind::Literal, range: "URI", is_list: true, used: true, xsd: "anyURI", value_ns: "", origins: &["FH"], comment: "URN/URI describing the profiles that governs this model. It uniquely identifies the profiles and its version, e.g. http://iec.ch/TC57/61970-456/SteadyStateHypothesis/2/0." },
5025            AttrDef { id: "Model.scenarioTime", ns: "http://iec.ch/TC57/61970-552/ModelDescription/1#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["FH"], comment: "The date and time that this model represents, i.e. for which the model is valid. The format is an extended format according to the ISO 8601-2005. European exchanges shall refer to UTC, e.g. 2030-01-15T17:00:00.000Z." },
5026            AttrDef { id: "Model.version", ns: "http://iec.ch/TC57/61970-552/ModelDescription/1#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["FH"], comment: "The version of the model. If the instance file is imported and exported with no change the version number is the kept same. The version changes only if the content of the file changes. It is the same logic as for the header id. The version is the human readable id." },
5027        ],
5028    },
5029    ClassDef {
5030        ns: "http://iec.ch/TC57/CIM100#",
5031        local: "MutualCoupling",
5032        qualified: "MutualCoupling",
5033        super_class: Some(213),
5034        concrete: true,
5035        origins: &["SC"],
5036        comment: "This class represents the zero sequence line mutual coupling.",
5037        attrs: &[
5038            AttrDef { id: "MutualCoupling.First_Terminal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Terminal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SC"], comment: "The starting terminal for the calculation of distances along the first branch of the mutual coupling. Normally MutualCoupling would only be used for terminals of AC line segments. The first and second terminals of a mutual coupling should point to different AC line segments." },
5039            AttrDef { id: "MutualCoupling.Second_Terminal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Terminal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SC"], comment: "The starting terminal for the calculation of distances along the second branch of the mutual coupling." },
5040            AttrDef { id: "MutualCoupling.b0ch", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Susceptance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence mutual coupling shunt (charging) susceptance, uniformly distributed, of the entire line section." },
5041            AttrDef { id: "MutualCoupling.distance11", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Distance to the start of the coupled region from the first line's terminal having sequence number equal to 1." },
5042            AttrDef { id: "MutualCoupling.distance12", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Distance to the end of the coupled region from the first line's terminal with sequence number equal to 1." },
5043            AttrDef { id: "MutualCoupling.distance21", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Distance to the start of coupled region from the second line's terminal with sequence number equal to 1." },
5044            AttrDef { id: "MutualCoupling.distance22", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Length", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Distance to the end of coupled region from the second line's terminal with sequence number equal to 1." },
5045            AttrDef { id: "MutualCoupling.g0ch", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Conductance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence mutual coupling shunt (charging) conductance, uniformly distributed, of the entire line section." },
5046            AttrDef { id: "MutualCoupling.r0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence branch-to-branch mutual impedance coupling, resistance." },
5047            AttrDef { id: "MutualCoupling.x0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence branch-to-branch mutual impedance coupling, reactance." },
5048        ],
5049    },
5050    ClassDef {
5051        ns: "http://iec.ch/TC57/CIM100#",
5052        local: "NonConformLoad",
5053        qualified: "NonConformLoad",
5054        super_class: Some(95),
5055        concrete: true,
5056        origins: &["EQ", "SSH"],
5057        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.",
5058        attrs: &[
5059            AttrDef { id: "NonConformLoad.LoadGroup", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "NonConformLoadGroup", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "Group of this ConformLoad." },
5060        ],
5061    },
5062    ClassDef {
5063        ns: "http://iec.ch/TC57/CIM100#",
5064        local: "NonConformLoadGroup",
5065        qualified: "NonConformLoadGroup",
5066        super_class: Some(227),
5067        concrete: true,
5068        origins: &["EQ"],
5069        comment: "Loads that do not follow a daily and seasonal load variation pattern.",
5070        attrs: &[
5071            AttrDef { id: "NonConformLoadGroup.EnergyConsumers", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "NonConformLoad", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "Conform loads assigned to this ConformLoadGroup." },
5072            AttrDef { id: "NonConformLoadGroup.NonConformLoadSchedules", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "NonConformLoadSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The NonConformLoadSchedules in the NonConformLoadGroup." },
5073        ],
5074    },
5075    ClassDef {
5076        ns: "http://iec.ch/TC57/CIM100#",
5077        local: "NonConformLoadSchedule",
5078        qualified: "NonConformLoadSchedule",
5079        super_class: Some(325),
5080        concrete: true,
5081        origins: &["EQ"],
5082        comment: "An active power (Y1-axis) and reactive power (Y2-axis) schedule (curves) versus time (X-axis) for non-conforming loads, e.g., large industrial load or power station service (where modelled).",
5083        attrs: &[
5084            AttrDef { id: "NonConformLoadSchedule.NonConformLoadGroup", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "NonConformLoadGroup", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The NonConformLoadGroup where the NonConformLoadSchedule belongs." },
5085        ],
5086    },
5087    ClassDef {
5088        ns: "http://iec.ch/TC57/CIM100#",
5089        local: "NonlinearShuntCompensator",
5090        qualified: "NonlinearShuntCompensator",
5091        super_class: Some(330),
5092        concrete: true,
5093        origins: &["EQ", "SSH"],
5094        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.",
5095        attrs: &[
5096            AttrDef { id: "NonlinearShuntCompensator.NonlinearShuntCompensatorPoints", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "NonlinearShuntCompensatorPoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "All points of the non-linear shunt compensator." },
5097        ],
5098    },
5099    ClassDef {
5100        ns: "http://iec.ch/TC57/CIM100#",
5101        local: "NonlinearShuntCompensatorPoint",
5102        qualified: "NonlinearShuntCompensatorPoint",
5103        super_class: None,
5104        concrete: true,
5105        origins: &["EQ", "SC"],
5106        comment: "A non linear shunt compensator bank or section admittance value. The number of NonlinearShuntCompenstorPoint instances associated with a NonlinearShuntCompensator shall be equal to ShuntCompensator.maximumSections. ShuntCompensator.sections shall only be set to one of the NonlinearShuntCompenstorPoint.sectionNumber. There is no interpolation between NonlinearShuntCompenstorPoint-s.",
5107        attrs: &[
5108            AttrDef { id: "NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "NonlinearShuntCompensator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "Non-linear shunt compensator owning this point." },
5109            AttrDef { id: "NonlinearShuntCompensatorPoint.b", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Susceptance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Positive sequence shunt (charging) susceptance per section." },
5110            AttrDef { id: "NonlinearShuntCompensatorPoint.b0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Susceptance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence shunt (charging) susceptance per section." },
5111            AttrDef { id: "NonlinearShuntCompensatorPoint.g", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Conductance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Positive sequence shunt (charging) conductance per section." },
5112            AttrDef { id: "NonlinearShuntCompensatorPoint.g0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Conductance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence shunt (charging) conductance per section." },
5113            AttrDef { id: "NonlinearShuntCompensatorPoint.sectionNumber", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["EQ"], comment: "The number of the section." },
5114        ],
5115    },
5116    ClassDef {
5117        ns: "http://iec.ch/TC57/CIM100#",
5118        local: "NuclearGeneratingUnit",
5119        qualified: "NuclearGeneratingUnit",
5120        super_class: Some(169),
5121        concrete: true,
5122        origins: &["EQ", "SSH"],
5123        comment: "A nuclear generating unit.",
5124        attrs: &[],
5125    },
5126    ClassDef {
5127        ns: "http://iec.ch/TC57/CIM100#",
5128        local: "OperationalLimit",
5129        qualified: "OperationalLimit",
5130        super_class: Some(213),
5131        concrete: false,
5132        origins: &["EQ", "SSH"],
5133        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.",
5134        attrs: &[
5135            AttrDef { id: "OperationalLimit.OperationalLimitSet", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "OperationalLimitSet", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The limit set to which the limit values belong." },
5136            AttrDef { id: "OperationalLimit.OperationalLimitType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "OperationalLimitType", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The limit type associated with this limit." },
5137        ],
5138    },
5139    ClassDef {
5140        ns: "http://iec.ch/TC57/CIM100#",
5141        local: "OperationalLimitSet",
5142        qualified: "OperationalLimitSet",
5143        super_class: Some(213),
5144        concrete: true,
5145        origins: &["EQ"],
5146        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.",
5147        attrs: &[
5148            AttrDef { id: "OperationalLimitSet.Equipment", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Equipment", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The equipment to which the limit set applies." },
5149            AttrDef { id: "OperationalLimitSet.OperationalLimitValue", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "OperationalLimit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "Values of equipment limits." },
5150            AttrDef { id: "OperationalLimitSet.Terminal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ACDCTerminal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The terminal where the operational limit set apply." },
5151        ],
5152    },
5153    ClassDef {
5154        ns: "http://iec.ch/TC57/CIM100#",
5155        local: "OperationalLimitType",
5156        qualified: "OperationalLimitType",
5157        super_class: Some(213),
5158        concrete: true,
5159        origins: &["EQ"],
5160        comment: "The operational meaning of a category of limits.",
5161        attrs: &[
5162            AttrDef { id: "OperationalLimitType.OperationalLimit", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "OperationalLimit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The operational limits associated with this type of limit." },
5163            AttrDef { id: "OperationalLimitType.acceptableDuration", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The nominal acceptable duration of the limit. Limits are commonly expressed in terms of the time limit for which the limit is normally acceptable. The actual acceptable duration of a specific limit may depend on other local factors such as temperature or wind speed. The attribute has meaning only if the flag isInfiniteDuration is set to false, hence it shall not be exchanged when isInfiniteDuration is set to true." },
5164            AttrDef { id: "OperationalLimitType.direction", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "OperationalLimitDirectionKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["EQ"], comment: "The direction of the limit." },
5165            AttrDef { id: "OperationalLimitType.isInfiniteDuration", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["EQ"], comment: "Defines if the operational limit type has infinite duration. If true, the limit has infinite duration. If false, the limit has definite duration which is defined by the attribute acceptableDuration." },
5166            AttrDef { id: "OperationalLimitType.kind", ns: "http://iec.ch/TC57/CIM100-European#", kind: AttrKind::Association, range: "LimitKind", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "Types of limits defined in the ENTSO-E Operational Handbook Policy 3." },
5167        ],
5168    },
5169    ClassDef {
5170        ns: "http://iec.ch/TC57/CIM100#",
5171        local: "OverexcLim2",
5172        qualified: "OverexcLim2",
5173        super_class: Some(255),
5174        concrete: true,
5175        origins: &["DY"],
5176        comment: "Different from LimIEEEOEL, LimOEL2 has a fixed pickup threshold and reduces the excitation set-point by means of a non-windup integral regulator. Irated is the rated machine excitation current (calculated from nameplate conditions: Vnom, Pnom, CosPhinom).",
5177        attrs: &[
5178            AttrDef { id: "OverexcLim2.ifdlim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limit value of rated field current (IFDLIM). Typical value = 1,05." },
5179            AttrDef { id: "OverexcLim2.koi", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain Over excitation limiter (KOI). Typical value = 0,1." },
5180            AttrDef { id: "OverexcLim2.voimax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum error signal (VOIMAX) (> OverexcLim2.voimin). Typical value = 0." },
5181            AttrDef { id: "OverexcLim2.voimin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum error signal (VOIMIN) (< OverexcLim2.voimax). Typical value = -9999." },
5182        ],
5183    },
5184    ClassDef {
5185        ns: "http://iec.ch/TC57/CIM100#",
5186        local: "OverexcLimIEEE",
5187        qualified: "OverexcLimIEEE",
5188        super_class: Some(255),
5189        concrete: true,
5190        origins: &["DY"],
5191        comment: "The over excitation limiter model is intended to represent the significant features of OELs necessary for some large-scale system studies. It is the result of a pragmatic approach to obtain a model that can be widely applied with attainable data from generator owners. An attempt to include all variations in the functionality of OELs and duplicate how they interact with the rest of the excitation systems would likely result in a level of application insufficient for the studies for which they are intended. Reference: IEEE OEL 421.5-2005, 9.",
5192        attrs: &[
5193            AttrDef { id: "OverexcLimIEEE.hyst", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "OEL pickup/drop-out hysteresis (HYST). Typical value = 0,03." },
5194            AttrDef { id: "OverexcLimIEEE.ifdlim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "OEL timed field current limit (IFDLIM). Typical value = 1,05." },
5195            AttrDef { id: "OverexcLimIEEE.ifdmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "OEL instantaneous field current limit (IFDMAX). Typical value = 1,5." },
5196            AttrDef { id: "OverexcLimIEEE.itfpu", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "OEL timed field current limiter pickup level (ITFPU). Typical value = 1,05." },
5197            AttrDef { id: "OverexcLimIEEE.kcd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "OEL cooldown gain (KCD). Typical value = 1." },
5198            AttrDef { id: "OverexcLimIEEE.kramp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "OEL ramped limit rate (KRAMP). Unit = PU / s. Typical value = 10." },
5199        ],
5200    },
5201    ClassDef {
5202        ns: "http://iec.ch/TC57/CIM100#",
5203        local: "OverexcLimX1",
5204        qualified: "OverexcLimX1",
5205        super_class: Some(255),
5206        concrete: true,
5207        origins: &["DY"],
5208        comment: "Field voltage over excitation limiter.",
5209        attrs: &[
5210            AttrDef { id: "OverexcLimX1.efd1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low voltage point on the inverse time characteristic (EFD1). Typical value = 1,1." },
5211            AttrDef { id: "OverexcLimX1.efd2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Mid voltage point on the inverse time characteristic (EFD2). Typical value = 1,2." },
5212            AttrDef { id: "OverexcLimX1.efd3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High voltage point on the inverse time characteristic (EFD3). Typical value = 1,5." },
5213            AttrDef { id: "OverexcLimX1.efddes", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Desired field voltage (EFDDES). Typical value = 0,9." },
5214            AttrDef { id: "OverexcLimX1.efdrated", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rated field voltage (EFDRATED). Typical value = 1,05." },
5215            AttrDef { id: "OverexcLimX1.kmx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (KMX). Typical value = 0,01." },
5216            AttrDef { id: "OverexcLimX1.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time to trip the exciter at the low voltage point on the inverse time characteristic (TIME1) (>= 0). Typical value = 120." },
5217            AttrDef { id: "OverexcLimX1.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time to trip the exciter at the mid voltage point on the inverse time characteristic (TIME2) (>= 0). Typical value = 40." },
5218            AttrDef { id: "OverexcLimX1.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time to trip the exciter at the high voltage point on the inverse time characteristic (TIME3) (>= 0). Typical value = 15." },
5219            AttrDef { id: "OverexcLimX1.vlow", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low voltage limit (VLOW) (> 0)." },
5220        ],
5221    },
5222    ClassDef {
5223        ns: "http://iec.ch/TC57/CIM100#",
5224        local: "OverexcLimX2",
5225        qualified: "OverexcLimX2",
5226        super_class: Some(255),
5227        concrete: true,
5228        origins: &["DY"],
5229        comment: "Field voltage or current overexcitation limiter designed to protect the generator field of an AC machine with automatic excitation control from overheating due to prolonged overexcitation.",
5230        attrs: &[
5231            AttrDef { id: "OverexcLimX2.efd1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low voltage or current point on the inverse time characteristic (EFD1). Typical value = 1,1." },
5232            AttrDef { id: "OverexcLimX2.efd2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Mid voltage or current point on the inverse time characteristic (EFD2). Typical value = 1,2." },
5233            AttrDef { id: "OverexcLimX2.efd3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High voltage or current point on the inverse time characteristic (EFD3). Typical value = 1,5." },
5234            AttrDef { id: "OverexcLimX2.efddes", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Desired field voltage if m = false or desired field current if m = true (EFDDES). Typical value = 1." },
5235            AttrDef { id: "OverexcLimX2.efdrated", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rated field voltage if m = false or rated field current if m = true (EFDRATED). Typical value = 1,05." },
5236            AttrDef { id: "OverexcLimX2.kmx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (KMX). Typical value = 0,002." },
5237            AttrDef { id: "OverexcLimX2.m", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "(m). true = IFD limiting false = EFD limiting." },
5238            AttrDef { id: "OverexcLimX2.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time to trip the exciter at the low voltage or current point on the inverse time characteristic (TIME1) (>= 0). Typical value = 120." },
5239            AttrDef { id: "OverexcLimX2.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time to trip the exciter at the mid voltage or current point on the inverse time characteristic (TIME2) (>= 0). Typical value = 40." },
5240            AttrDef { id: "OverexcLimX2.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time to trip the exciter at the high voltage or current point on the inverse time characteristic (TIME3) (>= 0). Typical value = 15." },
5241            AttrDef { id: "OverexcLimX2.vlow", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low voltage limit (VLOW) (> 0)." },
5242        ],
5243    },
5244    ClassDef {
5245        ns: "http://iec.ch/TC57/CIM100#",
5246        local: "OverexcitationLimiterDynamics",
5247        qualified: "OverexcitationLimiterDynamics",
5248        super_class: Some(91),
5249        concrete: false,
5250        origins: &["DY"],
5251        comment: "Overexcitation limiter function block whose behaviour is described by reference to a standard model or by definition of a user-defined model.",
5252        attrs: &[
5253            AttrDef { id: "OverexcitationLimiterDynamics.ExcitationSystemDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ExcitationSystemDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Excitation system model with which this overexcitation limiter model is associated." },
5254        ],
5255    },
5256    ClassDef {
5257        ns: "http://iec.ch/TC57/CIM100#",
5258        local: "OverexcitationLimiterUserDefined",
5259        qualified: "OverexcitationLimiterUserDefined",
5260        super_class: Some(255),
5261        concrete: true,
5262        origins: &["DY"],
5263        comment: "Overexcitation limiter system function block whose dynamic behaviour is described by a user-defined model.",
5264        attrs: &[
5265            AttrDef { id: "OverexcitationLimiterUserDefined.ProprietaryParameterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ProprietaryParameterDynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Parameter of this proprietary user-defined model." },
5266            AttrDef { id: "OverexcitationLimiterUserDefined.proprietary", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Behaviour is based on a proprietary model as opposed to a detailed model. true = user-defined model is proprietary with behaviour mutually understood by sending and receiving applications and parameters passed as general attributes false = user-defined model is explicitly defined in terms of control blocks and their input and output signals." },
5267        ],
5268    },
5269    ClassDef {
5270        ns: "http://iec.ch/TC57/CIM100#",
5271        local: "PFVArControllerType1Dynamics",
5272        qualified: "PFVArControllerType1Dynamics",
5273        super_class: Some(91),
5274        concrete: false,
5275        origins: &["DY"],
5276        comment: "Power factor or VAr controller type 1 function block whose behaviour is described by reference to a standard model or by definition of a user-defined model.",
5277        attrs: &[
5278            AttrDef { id: "PFVArControllerType1Dynamics.ExcitationSystemDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ExcitationSystemDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Excitation system model with which this power actor or VAr controller type 1 model is associated." },
5279            AttrDef { id: "PFVArControllerType1Dynamics.RemoteInputSignal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RemoteInputSignal", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Remote input signal used by this power factor or VAr controller type 1 model." },
5280            AttrDef { id: "PFVArControllerType1Dynamics.VoltageAdjusterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "VoltageAdjusterDynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Voltage adjuster model associated with this power factor or VAr controller type 1 model." },
5281        ],
5282    },
5283    ClassDef {
5284        ns: "http://iec.ch/TC57/CIM100#",
5285        local: "PFVArControllerType1UserDefined",
5286        qualified: "PFVArControllerType1UserDefined",
5287        super_class: Some(257),
5288        concrete: true,
5289        origins: &["DY"],
5290        comment: "Power factor or VAr controller type 1 function block whose dynamic behaviour is described by a user-defined model.",
5291        attrs: &[
5292            AttrDef { id: "PFVArControllerType1UserDefined.ProprietaryParameterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ProprietaryParameterDynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Parameter of this proprietary user-defined model." },
5293            AttrDef { id: "PFVArControllerType1UserDefined.proprietary", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Behaviour is based on a proprietary model as opposed to a detailed model. true = user-defined model is proprietary with behaviour mutually understood by sending and receiving applications and parameters passed as general attributes false = user-defined model is explicitly defined in terms of control blocks and their input and output signals." },
5294        ],
5295    },
5296    ClassDef {
5297        ns: "http://iec.ch/TC57/CIM100#",
5298        local: "PFVArControllerType2Dynamics",
5299        qualified: "PFVArControllerType2Dynamics",
5300        super_class: Some(91),
5301        concrete: false,
5302        origins: &["DY"],
5303        comment: "Power factor or VAr controller type 2 function block whose behaviour is described by reference to a standard model or by definition of a user-defined model.",
5304        attrs: &[
5305            AttrDef { id: "PFVArControllerType2Dynamics.ExcitationSystemDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ExcitationSystemDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Excitation system model with which this power factor or VAr controller type 2 is associated." },
5306        ],
5307    },
5308    ClassDef {
5309        ns: "http://iec.ch/TC57/CIM100#",
5310        local: "PFVArControllerType2UserDefined",
5311        qualified: "PFVArControllerType2UserDefined",
5312        super_class: Some(259),
5313        concrete: true,
5314        origins: &["DY"],
5315        comment: "Power factor or VAr controller type 2 function block whose dynamic behaviour is described by a user-defined model.",
5316        attrs: &[
5317            AttrDef { id: "PFVArControllerType2UserDefined.ProprietaryParameterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ProprietaryParameterDynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Parameter of this proprietary user-defined model." },
5318            AttrDef { id: "PFVArControllerType2UserDefined.proprietary", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Behaviour is based on a proprietary model as opposed to a detailed model. true = user-defined model is proprietary with behaviour mutually understood by sending and receiving applications and parameters passed as general attributes false = user-defined model is explicitly defined in terms of control blocks and their input and output signals." },
5319        ],
5320    },
5321    ClassDef {
5322        ns: "http://iec.ch/TC57/CIM100#",
5323        local: "PFVArType1IEEEPFController",
5324        qualified: "PFVArType1IEEEPFController",
5325        super_class: Some(257),
5326        concrete: true,
5327        origins: &["DY"],
5328        comment: "IEEE PF controller type 1 which operates by moving the voltage reference directly. Reference: IEEE 421.5-2005, 11.2.",
5329        attrs: &[
5330            AttrDef { id: "PFVArType1IEEEPFController.ovex", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Overexcitation Flag (OVEX) true = overexcited false = underexcited." },
5331            AttrDef { id: "PFVArType1IEEEPFController.tpfc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PF controller time delay (TPFC) (>= 0). Typical value = 5." },
5332            AttrDef { id: "PFVArType1IEEEPFController.vitmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum machine terminal current needed to enable pf/var controller (VITMIN)." },
5333            AttrDef { id: "PFVArType1IEEEPFController.vpf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Synchronous machine power factor (VPF)." },
5334            AttrDef { id: "PFVArType1IEEEPFController.vpfcbw", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PF controller deadband (VPFC_BW). Typical value = 0,05." },
5335            AttrDef { id: "PFVArType1IEEEPFController.vpfref", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PF controller reference (VPFREF)." },
5336            AttrDef { id: "PFVArType1IEEEPFController.vvtmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum machine terminal voltage needed for pf/var controller to be enabled (VVTMAX) (> PFVArType1IEEEPFController.vvtmin)." },
5337            AttrDef { id: "PFVArType1IEEEPFController.vvtmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum machine terminal voltage needed to enable pf/var controller (VVTMIN) (< PFVArType1IEEEPFController.vvtmax)." },
5338        ],
5339    },
5340    ClassDef {
5341        ns: "http://iec.ch/TC57/CIM100#",
5342        local: "PFVArType1IEEEVArController",
5343        qualified: "PFVArType1IEEEVArController",
5344        super_class: Some(257),
5345        concrete: true,
5346        origins: &["DY"],
5347        comment: "IEEE VAR controller type 1 which operates by moving the voltage reference directly. Reference: IEEE 421.5-2005, 11.3.",
5348        attrs: &[
5349            AttrDef { id: "PFVArType1IEEEVArController.tvarc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Var controller time delay (TVARC) (>= 0). Typical value = 5." },
5350            AttrDef { id: "PFVArType1IEEEVArController.vvar", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Synchronous machine power factor (VVAR)." },
5351            AttrDef { id: "PFVArType1IEEEVArController.vvarcbw", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Var controller deadband (VVARC_BW). Typical value = 0,02." },
5352            AttrDef { id: "PFVArType1IEEEVArController.vvarref", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Var controller reference (VVARREF)." },
5353            AttrDef { id: "PFVArType1IEEEVArController.vvtmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum machine terminal voltage needed for pf/VAr controller to be enabled (VVTMAX) (> PVFArType1IEEEVArController.vvtmin)." },
5354            AttrDef { id: "PFVArType1IEEEVArController.vvtmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum machine terminal voltage needed to enable pf/var controller (VVTMIN) (< PVFArType1IEEEVArController.vvtmax)." },
5355        ],
5356    },
5357    ClassDef {
5358        ns: "http://iec.ch/TC57/CIM100#",
5359        local: "PFVArType2Common1",
5360        qualified: "PFVArType2Common1",
5361        super_class: Some(259),
5362        concrete: true,
5363        origins: &["DY"],
5364        comment: "Power factor / reactive power regulator. This model represents the power factor or reactive power controller such as the Basler SCP-250. The controller measures power factor or reactive power (PU on generator rated power) and compares it with the operator's set point. [Footnote: Basler SCP-250 is an example of a suitable product available commercially. This information is given for the convenience of users of this document and does not constitute an endorsement by IEC of this product.]",
5365        attrs: &[
5366            AttrDef { id: "PFVArType2Common1.j", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Selector (J). true = control mode for reactive power false = control mode for power factor." },
5367            AttrDef { id: "PFVArType2Common1.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reset gain (Ki)." },
5368            AttrDef { id: "PFVArType2Common1.kp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Proportional gain (Kp)." },
5369            AttrDef { id: "PFVArType2Common1.max", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Output limit (max)." },
5370            AttrDef { id: "PFVArType2Common1.ref", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reference value of reactive power or power factor (Ref). The reference value is initialised by this model. This initialisation can override the value exchanged by this attribute to represent a plant operator's change of the reference setting." },
5371        ],
5372    },
5373    ClassDef {
5374        ns: "http://iec.ch/TC57/CIM100#",
5375        local: "PFVArType2IEEEPFController",
5376        qualified: "PFVArType2IEEEPFController",
5377        super_class: Some(259),
5378        concrete: true,
5379        origins: &["DY"],
5380        comment: "IEEE PF controller type 2 which is a summing point type controller making up the outside loop of a two-loop system. This controller is implemented as a slow PI type controller. The voltage regulator forms the inner loop and is implemented as a fast controller. Reference: IEEE 421.5-2005, 11.4.",
5381        attrs: &[
5382            AttrDef { id: "PFVArType2IEEEPFController.exlon", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Overexcitation or under excitation flag (EXLON) true = 1 (not in the overexcitation or underexcitation state, integral action is active) false = 0 (in the overexcitation or underexcitation state, so integral action is disabled to allow the limiter to play its role)." },
5383            AttrDef { id: "PFVArType2IEEEPFController.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Integral gain of the pf controller (KI). Typical value = 1." },
5384            AttrDef { id: "PFVArType2IEEEPFController.kp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Proportional gain of the pf controller (KP). Typical value = 1." },
5385            AttrDef { id: "PFVArType2IEEEPFController.pfref", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power factor reference (PFREF)." },
5386            AttrDef { id: "PFVArType2IEEEPFController.vclmt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum output of the pf controller (VCLMT). Typical value = 0,1." },
5387            AttrDef { id: "PFVArType2IEEEPFController.vref", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator reference (VREF)." },
5388            AttrDef { id: "PFVArType2IEEEPFController.vs", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Generator sensing voltage (VS)." },
5389        ],
5390    },
5391    ClassDef {
5392        ns: "http://iec.ch/TC57/CIM100#",
5393        local: "PFVArType2IEEEVArController",
5394        qualified: "PFVArType2IEEEVArController",
5395        super_class: Some(259),
5396        concrete: true,
5397        origins: &["DY"],
5398        comment: "IEEE VAR controller type 2 which is a summing point type controller. It makes up the outside loop of a two-loop system. This controller is implemented as a slow PI type controller, and the voltage regulator forms the inner loop and is implemented as a fast controller. Reference: IEEE 421.5-2005, 11.5.",
5399        attrs: &[
5400            AttrDef { id: "PFVArType2IEEEVArController.exlon", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Overexcitation or under excitation flag (EXLON) true = 1 (not in the overexcitation or underexcitation state, integral action is active) false = 0 (in the overexcitation or underexcitation state, so integral action is disabled to allow the limiter to play its role)." },
5401            AttrDef { id: "PFVArType2IEEEVArController.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Integral gain of the pf controller (KI)." },
5402            AttrDef { id: "PFVArType2IEEEVArController.kp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Proportional gain of the pf controller (KP)." },
5403            AttrDef { id: "PFVArType2IEEEVArController.qref", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactive power reference (QREF)." },
5404            AttrDef { id: "PFVArType2IEEEVArController.vclmt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum output of the pf controller (VCLMT)." },
5405            AttrDef { id: "PFVArType2IEEEVArController.vref", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage regulator reference (VREF)." },
5406            AttrDef { id: "PFVArType2IEEEVArController.vs", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Generator sensing voltage (VS)." },
5407        ],
5408    },
5409    ClassDef {
5410        ns: "http://iec.ch/TC57/CIM100#",
5411        local: "PetersenCoil",
5412        qualified: "PetersenCoil",
5413        super_class: Some(92),
5414        concrete: true,
5415        origins: &["EQ", "SC"],
5416        comment: "A variable impedance device normally used to offset line charging during single line faults in an ungrounded section of network.",
5417        attrs: &[
5418            AttrDef { id: "PetersenCoil.mode", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "PetersenCoilModeKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["SC"], comment: "The mode of operation of the Petersen coil." },
5419            AttrDef { id: "PetersenCoil.nominalU", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "The nominal voltage for which the coil is designed." },
5420            AttrDef { id: "PetersenCoil.offsetCurrent", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "The offset current that the Petersen coil controller is operating from the resonant point. This is normally a fixed amount for which the controller is configured and could be positive or negative. Typically 0 to 60 A depending on voltage and resonance conditions." },
5421            AttrDef { id: "PetersenCoil.positionCurrent", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "The control current used to control the Petersen coil also known as the position current. Typically in the range of 20 mA to 200 mA." },
5422            AttrDef { id: "PetersenCoil.xGroundMax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "The maximum reactance." },
5423            AttrDef { id: "PetersenCoil.xGroundMin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "The minimum reactance." },
5424            AttrDef { id: "PetersenCoil.xGroundNominal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "The nominal reactance. This is the operating point (normally over compensation) that is defined based on the resonance point in the healthy network condition. The impedance is calculated based on nominal voltage divided by position current." },
5425        ],
5426    },
5427    ClassDef {
5428        ns: "http://iec.ch/TC57/CIM100#",
5429        local: "PhaseTapChanger",
5430        qualified: "PhaseTapChanger",
5431        super_class: Some(362),
5432        concrete: false,
5433        origins: &["EQ", "SSH"],
5434        comment: "A transformer phase shifting tap model that controls the phase angle difference across the power transformer and potentially the active power flow through the power transformer. This phase tap model may also impact the voltage magnitude.",
5435        attrs: &[
5436            AttrDef { id: "PhaseTapChanger.TransformerEnd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TransformerEnd", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "Transformer end to which this phase tap changer belongs." },
5437        ],
5438    },
5439    ClassDef {
5440        ns: "http://iec.ch/TC57/CIM100#",
5441        local: "PhaseTapChangerAsymmetrical",
5442        qualified: "PhaseTapChangerAsymmetrical",
5443        super_class: Some(270),
5444        concrete: true,
5445        origins: &["EQ", "SSH"],
5446        comment: "Describes the tap model for an asymmetrical phase shifting transformer in which the difference voltage vector adds to the in-phase winding. The out-of-phase winding is the transformer end where the tap changer is located. The angle between the in-phase and out-of-phase windings is named the winding connection angle. The phase shift depends on both the difference voltage magnitude and the winding connection angle.",
5447        attrs: &[
5448            AttrDef { id: "PhaseTapChangerAsymmetrical.windingConnectionAngle", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The phase angle between the in-phase winding and the out-of -phase winding used for creating phase shift. The out-of-phase winding produces what is known as the difference voltage. Setting this angle to 90 degrees is not the same as a symmetrical transformer. The attribute can only be multiples of 30 degrees. The allowed range is -150 degrees to 150 degrees excluding 0." },
5449        ],
5450    },
5451    ClassDef {
5452        ns: "http://iec.ch/TC57/CIM100#",
5453        local: "PhaseTapChangerLinear",
5454        qualified: "PhaseTapChangerLinear",
5455        super_class: Some(267),
5456        concrete: true,
5457        origins: &["EQ", "SSH"],
5458        comment: "Describes a tap changer with a linear relation between the tap step and the phase angle difference across the transformer. This is a mathematical model that is an approximation of a real phase tap changer. The phase angle is computed as stepPhaseShiftIncrement times the tap position. The voltage magnitude of both sides is the same.",
5459        attrs: &[
5460            AttrDef { id: "PhaseTapChangerLinear.stepPhaseShiftIncrement", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Phase shift per step position. A positive value indicates a positive angle variation from the Terminal at the PowerTransformerEnd, where the TapChanger is located, into the transformer. The actual phase shift increment might be more accurately computed from the symmetrical or asymmetrical models or a tap step table lookup if those are available." },
5461            AttrDef { id: "PhaseTapChangerLinear.xMax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The reactance depends on the tap position according to a 'u' shaped curve. The maximum reactance (xMax) appears at the low and high tap positions. Depending on the “u” curve the attribute can be either higher or lower than PowerTransformerEnd.x." },
5462            AttrDef { id: "PhaseTapChangerLinear.xMin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The reactance depends on the tap position according to a 'u' shaped curve. The minimum reactance (xMin) appears at the mid tap position. PowerTransformerEnd.x shall be consistent with PhaseTapChangerLinear.xMin and PhaseTapChangerNonLinear.xMin. In case of inconsistency, PowerTransformerEnd.x shall be used." },
5463        ],
5464    },
5465    ClassDef {
5466        ns: "http://iec.ch/TC57/CIM100#",
5467        local: "PhaseTapChangerNonLinear",
5468        qualified: "PhaseTapChangerNonLinear",
5469        super_class: Some(267),
5470        concrete: false,
5471        origins: &["EQ", "SSH"],
5472        comment: "The non-linear phase tap changer describes the non-linear behaviour of a phase tap changer. This is a base class for the symmetrical and asymmetrical phase tap changer models. The details of these models can be found in IEC 61970-301.",
5473        attrs: &[
5474            AttrDef { id: "PhaseTapChangerNonLinear.voltageStepIncrement", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The voltage step increment on the out of phase winding (the PowerTransformerEnd where the TapChanger is located) specified in percent of rated voltage of the PowerTransformerEnd. A positive value means a positive voltage variation from the Terminal at the PowerTransformerEnd, where the TapChanger is located, into the transformer. When the increment is negative, the voltage decreases when the tap step increases." },
5475            AttrDef { id: "PhaseTapChangerNonLinear.xMax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The reactance depends on the tap position according to a 'u' shaped curve. The maximum reactance (xMax) appears at the low and high tap positions. Depending on the “u” curve the attribute can be either higher or lower than PowerTransformerEnd.x." },
5476            AttrDef { id: "PhaseTapChangerNonLinear.xMin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The reactance depend on the tap position according to a 'u' shaped curve. The minimum reactance (xMin) appear at the mid tap position. PowerTransformerEnd.x shall be consistent with PhaseTapChangerLinear.xMin and PhaseTapChangerNonLinear.xMin. In case of inconsistency, PowerTransformerEnd.x shall be used." },
5477        ],
5478    },
5479    ClassDef {
5480        ns: "http://iec.ch/TC57/CIM100#",
5481        local: "PhaseTapChangerSymmetrical",
5482        qualified: "PhaseTapChangerSymmetrical",
5483        super_class: Some(270),
5484        concrete: true,
5485        origins: &["EQ", "SSH"],
5486        comment: "Describes a symmetrical phase shifting transformer tap model in which the voltage magnitude of both sides is the same. The difference voltage magnitude is the base in an equal-sided triangle where the sides corresponds to the primary and secondary voltages. The phase angle difference corresponds to the top angle and can be expressed as twice the arctangent of half the total difference voltage.",
5487        attrs: &[],
5488    },
5489    ClassDef {
5490        ns: "http://iec.ch/TC57/CIM100#",
5491        local: "PhaseTapChangerTable",
5492        qualified: "PhaseTapChangerTable",
5493        super_class: Some(213),
5494        concrete: true,
5495        origins: &["EQ"],
5496        comment: "Describes a tabular curve for how the phase angle difference and impedance varies with the tap step.",
5497        attrs: &[
5498            AttrDef { id: "PhaseTapChangerTable.PhaseTapChangerTablePoint", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PhaseTapChangerTablePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The points of this table." },
5499            AttrDef { id: "PhaseTapChangerTable.PhaseTapChangerTabular", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PhaseTapChangerTabular", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The phase tap changers to which this phase tap table applies." },
5500        ],
5501    },
5502    ClassDef {
5503        ns: "http://iec.ch/TC57/CIM100#",
5504        local: "PhaseTapChangerTablePoint",
5505        qualified: "PhaseTapChangerTablePoint",
5506        super_class: Some(364),
5507        concrete: true,
5508        origins: &["EQ"],
5509        comment: "Describes each tap step in the phase tap changer tabular curve.",
5510        attrs: &[
5511            AttrDef { id: "PhaseTapChangerTablePoint.PhaseTapChangerTable", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PhaseTapChangerTable", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The table of this point." },
5512            AttrDef { id: "PhaseTapChangerTablePoint.angle", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The angle difference in degrees. A positive value indicates a positive angle variation from the Terminal at the PowerTransformerEnd, where the TapChanger is located, into the transformer." },
5513        ],
5514    },
5515    ClassDef {
5516        ns: "http://iec.ch/TC57/CIM100#",
5517        local: "PhaseTapChangerTabular",
5518        qualified: "PhaseTapChangerTabular",
5519        super_class: Some(267),
5520        concrete: true,
5521        origins: &["EQ", "SSH"],
5522        comment: "Describes a tap changer with a table defining the relation between the tap step and the phase angle difference across the transformer.",
5523        attrs: &[
5524            AttrDef { id: "PhaseTapChangerTabular.PhaseTapChangerTable", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PhaseTapChangerTable", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The phase tap changer table for this phase tap changer." },
5525        ],
5526    },
5527    ClassDef {
5528        ns: "http://iec.ch/TC57/CIM100#",
5529        local: "PhotoVoltaicUnit",
5530        qualified: "PhotoVoltaicUnit",
5531        super_class: Some(280),
5532        concrete: true,
5533        origins: &["EQ"],
5534        comment: "A photovoltaic device or an aggregation of such devices.",
5535        attrs: &[],
5536    },
5537    ClassDef {
5538        ns: "http://iec.ch/TC57/CIM100#",
5539        local: "PositionPoint",
5540        qualified: "PositionPoint",
5541        super_class: None,
5542        concrete: true,
5543        origins: &["GL"],
5544        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).",
5545        attrs: &[
5546            AttrDef { id: "PositionPoint.Location", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Location", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GL"], comment: "Location described by this position point." },
5547            AttrDef { id: "PositionPoint.sequenceNumber", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["GL"], comment: "Zero-relative sequence number of this point within a series of points." },
5548            AttrDef { id: "PositionPoint.xPosition", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "X axis position." },
5549            AttrDef { id: "PositionPoint.yPosition", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "Y axis position." },
5550            AttrDef { id: "PositionPoint.zPosition", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "(if applicable) Z axis position." },
5551        ],
5552    },
5553    ClassDef {
5554        ns: "http://iec.ch/TC57/CIM100#",
5555        local: "PostLineSensor",
5556        qualified: "PostLineSensor",
5557        super_class: Some(326),
5558        concrete: true,
5559        origins: &["EQ"],
5560        comment: "A sensor used mainly in overhead distribution networks as the source of both current and voltage measurements.",
5561        attrs: &[],
5562    },
5563    ClassDef {
5564        ns: "http://iec.ch/TC57/CIM100#",
5565        local: "PotentialTransformer",
5566        qualified: "PotentialTransformer",
5567        super_class: Some(326),
5568        concrete: true,
5569        origins: &["EQ"],
5570        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.",
5571        attrs: &[],
5572    },
5573    ClassDef {
5574        ns: "http://iec.ch/TC57/CIM100#",
5575        local: "PowerElectronicsConnection",
5576        qualified: "PowerElectronicsConnection",
5577        super_class: Some(315),
5578        concrete: true,
5579        origins: &["EQ", "DY", "SSH"],
5580        comment: "A connection to the AC network for energy production or consumption that uses power electronics rather than rotating machines.",
5581        attrs: &[
5582            AttrDef { id: "PowerElectronicsConnection.PowerElectronicsUnit", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PowerElectronicsUnit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "An AC network connection may have several power electronics units connecting through it." },
5583            AttrDef { id: "PowerElectronicsConnection.WindTurbineType3or4Dynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType3or4Dynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "The wind turbine type 3 or type 4 dynamics model associated with this power electronics connection." },
5584            AttrDef { id: "PowerElectronicsConnection.maxQ", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Maximum reactive power limit. This is the maximum (nameplate) limit for the unit." },
5585            AttrDef { id: "PowerElectronicsConnection.minQ", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Minimum reactive power limit for the unit. This is the minimum (nameplate) limit for the unit." },
5586            AttrDef { id: "PowerElectronicsConnection.p", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], 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." },
5587            AttrDef { id: "PowerElectronicsConnection.q", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], 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." },
5588            AttrDef { id: "PowerElectronicsConnection.ratedS", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ApparentPower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Nameplate apparent power rating for the unit. The attribute shall have a positive value." },
5589            AttrDef { id: "PowerElectronicsConnection.ratedU", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Rated voltage (nameplate data, Ur in IEC 60909-0). It is primarily used for short circuit data exchange according to IEC 60909. The attribute shall be a positive value." },
5590        ],
5591    },
5592    ClassDef {
5593        ns: "http://iec.ch/TC57/CIM100#",
5594        local: "PowerElectronicsUnit",
5595        qualified: "PowerElectronicsUnit",
5596        super_class: Some(98),
5597        concrete: false,
5598        origins: &["EQ", "SSH"],
5599        comment: "A generating unit or battery or aggregation that connects to the AC network using power electronics rather than rotating machines.",
5600        attrs: &[
5601            AttrDef { id: "PowerElectronicsUnit.PowerElectronicsConnection", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PowerElectronicsConnection", is_list: false, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "A power electronics unit has a connection to the AC network." },
5602            AttrDef { id: "PowerElectronicsUnit.maxP", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Maximum active power limit. This is the maximum (nameplate) limit for the unit." },
5603            AttrDef { id: "PowerElectronicsUnit.minP", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Minimum active power limit. This is the minimum (nameplate) limit for the unit." },
5604        ],
5605    },
5606    ClassDef {
5607        ns: "http://iec.ch/TC57/CIM100#",
5608        local: "PowerElectronicsWindUnit",
5609        qualified: "PowerElectronicsWindUnit",
5610        super_class: Some(280),
5611        concrete: true,
5612        origins: &["EQ"],
5613        comment: "A wind generating unit that connects to the AC network with power electronics rather than rotating machines or an aggregation of such units.",
5614        attrs: &[],
5615    },
5616    ClassDef {
5617        ns: "http://iec.ch/TC57/CIM100#",
5618        local: "PowerSystemResource",
5619        qualified: "PowerSystemResource",
5620        super_class: Some(213),
5621        concrete: false,
5622        origins: &["EQ", "DY", "EQBD", "GL", "OP", "SC", "SSH"],
5623        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.",
5624        attrs: &[
5625            AttrDef { id: "PowerSystemResource.Controls", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Control", is_list: true, used: false, xsd: "", value_ns: "", origins: &["OP"], comment: "The controller outputs used to actually govern a regulating device, e.g. the magnetization of a synchronous machine or capacitor bank breaker actuator." },
5626            AttrDef { id: "PowerSystemResource.Location", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Location", is_list: false, used: false, xsd: "", value_ns: "", origins: &["GL"], comment: "Location of this power system resource." },
5627            AttrDef { id: "PowerSystemResource.Measurements", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Measurement", is_list: true, used: false, xsd: "", value_ns: "", origins: &["OP"], comment: "The measurements associated with this power system resource." },
5628        ],
5629    },
5630    ClassDef {
5631        ns: "http://iec.ch/TC57/CIM100#",
5632        local: "PowerSystemStabilizerDynamics",
5633        qualified: "PowerSystemStabilizerDynamics",
5634        super_class: Some(91),
5635        concrete: false,
5636        origins: &["DY"],
5637        comment: "Power system stabilizer function block whose behaviour is described by reference to a standard model or by definition of a user-defined model.",
5638        attrs: &[
5639            AttrDef { id: "PowerSystemStabilizerDynamics.ExcitationSystemDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ExcitationSystemDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Excitation system model with which this power system stabilizer model is associated." },
5640            AttrDef { id: "PowerSystemStabilizerDynamics.RemoteInputSignal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RemoteInputSignal", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Remote input signal used by this power system stabilizer model." },
5641        ],
5642    },
5643    ClassDef {
5644        ns: "http://iec.ch/TC57/CIM100#",
5645        local: "PowerSystemStabilizerUserDefined",
5646        qualified: "PowerSystemStabilizerUserDefined",
5647        super_class: Some(283),
5648        concrete: true,
5649        origins: &["DY"],
5650        comment: "Power system stabilizer function block whose dynamic behaviour is described by a user-defined model.",
5651        attrs: &[
5652            AttrDef { id: "PowerSystemStabilizerUserDefined.ProprietaryParameterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ProprietaryParameterDynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Parameter of this proprietary user-defined model." },
5653            AttrDef { id: "PowerSystemStabilizerUserDefined.proprietary", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Behaviour is based on a proprietary model as opposed to a detailed model. true = user-defined model is proprietary with behaviour mutually understood by sending and receiving applications and parameters passed as general attributes false = user-defined model is explicitly defined in terms of control blocks and their input and output signals." },
5654        ],
5655    },
5656    ClassDef {
5657        ns: "http://iec.ch/TC57/CIM100#",
5658        local: "PowerTransformer",
5659        qualified: "PowerTransformer",
5660        super_class: Some(37),
5661        concrete: true,
5662        origins: &["EQ", "SC"],
5663        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.",
5664        attrs: &[
5665            AttrDef { id: "PowerTransformer.PowerTransformerEnd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PowerTransformerEnd", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The ends of this power transformer." },
5666            AttrDef { id: "PowerTransformer.beforeShCircuitHighestOperatingCurrent", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "The highest operating current (Ib in IEC 60909-0) before short circuit (depends on network configuration and relevant reliability philosophy). It is used for calculation of the impedance correction factor KT defined in IEC 60909-0." },
5667            AttrDef { id: "PowerTransformer.beforeShCircuitHighestOperatingVoltage", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "The highest operating voltage (Ub in IEC 60909-0) before short circuit. It is used for calculation of the impedance correction factor KT defined in IEC 60909-0. This is worst case voltage on the low side winding (3.7.1 of IEC 60909:2001). Used to define operating conditions." },
5668            AttrDef { id: "PowerTransformer.beforeShortCircuitAnglePf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "The angle of power factor before short circuit (phib in IEC 60909-0). It is used for calculation of the impedance correction factor KT defined in IEC 60909-0. This is the worst case power factor. Used to define operating conditions." },
5669            AttrDef { id: "PowerTransformer.highSideMinOperatingU", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "The minimum operating voltage (uQmin in IEC 60909-0) at the high voltage side (Q side) of the unit transformer of the power station unit. A value well established from long-term operating experience of the system. It is used for calculation of the impedance correction factor KG defined in IEC 60909-0." },
5670            AttrDef { id: "PowerTransformer.isPartOfGeneratorUnit", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SC"], comment: "Indicates whether the machine is part of a power station unit. Used for short circuit data exchange according to IEC 60909. It has an impact on how the correction factors are calculated for transformers, since the transformer is not necessarily part of a synchronous machine and generating unit. It is not always possible to derive this information from the model. This is why the attribute is necessary." },
5671            AttrDef { id: "PowerTransformer.operationalValuesConsidered", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SC"], comment: "It is used to define if the data (other attributes related to short circuit data exchange) defines long term operational conditions or not. Used for short circuit data exchange according to IEC 60909." },
5672        ],
5673    },
5674    ClassDef {
5675        ns: "http://iec.ch/TC57/CIM100#",
5676        local: "PowerTransformerEnd",
5677        qualified: "PowerTransformerEnd",
5678        super_class: Some(373),
5679        concrete: true,
5680        origins: &["EQ", "SC"],
5681        comment: "A PowerTransformerEnd is associated with each Terminal of a PowerTransformer. The impedance values r, r0, x, and x0 of a PowerTransformerEnd represents a star equivalent as follows. 1) for a two Terminal PowerTransformer the high voltage (TransformerEnd.endNumber=1) PowerTransformerEnd has non zero values on r, r0, x, and x0 while the low voltage (TransformerEnd.endNumber=2) PowerTransformerEnd has zero values for r, r0, x, and x0. Parameters are always provided, even if the PowerTransformerEnds have the same rated voltage. In this case, the parameters are provided at the PowerTransformerEnd which has TransformerEnd.endNumber equal to 1. 2) for a three Terminal PowerTransformer the three PowerTransformerEnds represent a star equivalent with each leg in the star represented by r, r0, x, and x0 values. 3) For a three Terminal transformer each PowerTransformerEnd shall have g, g0, b and b0 values corresponding to the no load losses distributed on the three PowerTransformerEnds. The total no load loss shunt impedances may also be placed at one of the PowerTransformerEnds, preferably the end numbered 1, having the shunt values on end 1. This is the preferred way. 4) for a PowerTransformer with more than three Terminals the PowerTransformerEnd impedance values cannot be used. Instead use the TransformerMeshImpedance or split the transformer into multiple PowerTransformers. Each PowerTransformerEnd must be contained by a PowerTransformer. Because a PowerTransformerEnd (or any other object) can not be contained by more than one parent, a PowerTransformerEnd can not have an association to an EquipmentContainer (Substation, VoltageLevel, etc).",
5682        attrs: &[
5683            AttrDef { id: "PowerTransformerEnd.PowerTransformer", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PowerTransformer", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The power transformer of this power transformer end." },
5684            AttrDef { id: "PowerTransformerEnd.b", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Susceptance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Magnetizing branch susceptance (B mag). The value can be positive or negative." },
5685            AttrDef { id: "PowerTransformerEnd.b0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Susceptance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence magnetizing branch susceptance." },
5686            AttrDef { id: "PowerTransformerEnd.connectionKind", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "WindingConnection", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["EQ"], comment: "Kind of connection." },
5687            AttrDef { id: "PowerTransformerEnd.g", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Conductance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Magnetizing branch conductance." },
5688            AttrDef { id: "PowerTransformerEnd.g0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Conductance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence magnetizing branch conductance (star-model)." },
5689            AttrDef { id: "PowerTransformerEnd.phaseAngleClock", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["SC"], comment: "Terminal voltage phase angle displacement where 360 degrees are represented with clock hours. The valid values are 0 to 11. For example, for the secondary side end of a transformer with vector group code of 'Dyn11', specify the connection kind as wye with neutral and specify the phase angle of the clock as 11. The clock value of the transformer end number specified as 1, is assumed to be zero. Note the transformer end number is not assumed to be the same as the terminal sequence number." },
5690            AttrDef { id: "PowerTransformerEnd.r", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Resistance (star-model) of the transformer end. The attribute shall be equal to or greater than zero for non-equivalent transformers." },
5691            AttrDef { id: "PowerTransformerEnd.r0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence series resistance (star-model) of the transformer end." },
5692            AttrDef { id: "PowerTransformerEnd.ratedS", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ApparentPower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Normal apparent power rating. The attribute shall be a positive value. For a two-winding transformer the values for the high and low voltage sides shall be identical." },
5693            AttrDef { id: "PowerTransformerEnd.ratedU", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Rated voltage: phase-phase for three-phase windings, and either phase-phase or phase-neutral for single-phase windings. A high voltage side, as given by TransformerEnd.endNumber, shall have a ratedU that is greater than or equal to ratedU for the lower voltage sides. The attribute shall be a positive value." },
5694            AttrDef { id: "PowerTransformerEnd.x", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Positive sequence series reactance (star-model) of the transformer end." },
5695            AttrDef { id: "PowerTransformerEnd.x0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence series reactance of the transformer end." },
5696        ],
5697    },
5698    ClassDef {
5699        ns: "http://iec.ch/TC57/CIM100#",
5700        local: "ProprietaryParameterDynamics",
5701        qualified: "ProprietaryParameterDynamics",
5702        super_class: None,
5703        concrete: true,
5704        origins: &["DY"],
5705        comment: "Supports definition of one or more parameters of several different datatypes for use by proprietary user-defined models. This class does not inherit from IdentifiedObject since it is not intended that a single instance of it be referenced by more than one proprietary user-defined model instance.",
5706        attrs: &[
5707            AttrDef { id: "ProprietaryParameterDynamics.AsynchronousMachineUserDefined", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "AsynchronousMachineUserDefined", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Proprietary user-defined model with which this parameter is associated." },
5708            AttrDef { id: "ProprietaryParameterDynamics.CSCUserDefined", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "CSCUserDefined", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Proprietary user-defined model with which this parameter is associated." },
5709            AttrDef { id: "ProprietaryParameterDynamics.DiscontinuousExcitationControlUserDefined", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DiscontinuousExcitationControlUserDefined", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Proprietary user-defined model with which this parameter is associated." },
5710            AttrDef { id: "ProprietaryParameterDynamics.ExcitationSystemUserDefined", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ExcitationSystemUserDefined", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Proprietary user-defined model with which this parameter is associated." },
5711            AttrDef { id: "ProprietaryParameterDynamics.LoadUserDefined", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "LoadUserDefined", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Proprietary user-defined model with which this parameter is associated." },
5712            AttrDef { id: "ProprietaryParameterDynamics.MechanicalLoadUserDefined", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "MechanicalLoadUserDefined", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Proprietary user-defined model with which this parameter is associated." },
5713            AttrDef { id: "ProprietaryParameterDynamics.OverexcitationLimiterUserDefined", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "OverexcitationLimiterUserDefined", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Proprietary user-defined model with which this parameter is associated." },
5714            AttrDef { id: "ProprietaryParameterDynamics.PFVArControllerType1UserDefined", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PFVArControllerType1UserDefined", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Proprietary user-defined model with which this parameter is associated." },
5715            AttrDef { id: "ProprietaryParameterDynamics.PFVArControllerType2UserDefined", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PFVArControllerType2UserDefined", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Proprietary user-defined model with which this parameter is associated." },
5716            AttrDef { id: "ProprietaryParameterDynamics.PowerSystemStabilizerUserDefined", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PowerSystemStabilizerUserDefined", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Proprietary user-defined model with which this parameter is associated." },
5717            AttrDef { id: "ProprietaryParameterDynamics.SVCUserDefined", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SVCUserDefined", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Proprietary user-defined model with which this parameter is associated." },
5718            AttrDef { id: "ProprietaryParameterDynamics.SynchronousMachineUserDefined", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SynchronousMachineUserDefined", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Proprietary user-defined model with which this parameter is associated." },
5719            AttrDef { id: "ProprietaryParameterDynamics.TurbineGovernorUserDefined", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TurbineGovernorUserDefined", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Proprietary user-defined model with which this parameter is associated." },
5720            AttrDef { id: "ProprietaryParameterDynamics.TurbineLoadControllerUserDefined", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TurbineLoadControllerUserDefined", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Proprietary user-defined model with which this parameter is associated." },
5721            AttrDef { id: "ProprietaryParameterDynamics.UnderexcitationLimiterUserDefined", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "UnderexcitationLimiterUserDefined", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Proprietary user-defined model with which this parameter is associated." },
5722            AttrDef { id: "ProprietaryParameterDynamics.VSCUserDefined", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "VSCUserDefined", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Proprietary user-defined model with which this parameter is associated." },
5723            AttrDef { id: "ProprietaryParameterDynamics.VoltageAdjusterUserDefined", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "VoltageAdjusterUserDefined", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Proprietary user-defined model with which this parameter is associated." },
5724            AttrDef { id: "ProprietaryParameterDynamics.VoltageCompensatorUserDefined", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "VoltageCompensatorUserDefined", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Proprietary user-defined model with which this parameter is associated." },
5725            AttrDef { id: "ProprietaryParameterDynamics.WindPlantUserDefined", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindPlantUserDefined", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Proprietary user-defined model with which this parameter is associated." },
5726            AttrDef { id: "ProprietaryParameterDynamics.WindType1or2UserDefined", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindType1or2UserDefined", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Proprietary user-defined model with which this parameter is associated." },
5727            AttrDef { id: "ProprietaryParameterDynamics.WindType3or4UserDefined", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindType3or4UserDefined", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Proprietary user-defined model with which this parameter is associated." },
5728            AttrDef { id: "ProprietaryParameterDynamics.booleanParameterValue", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Boolean parameter value. If this attribute is populated, integerParameterValue and floatParameterValue will not be." },
5729            AttrDef { id: "ProprietaryParameterDynamics.floatParameterValue", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Floating point parameter value. If this attribute is populated, booleanParameterValue and integerParameterValue will not be." },
5730            AttrDef { id: "ProprietaryParameterDynamics.integerParameterValue", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["DY"], comment: "Integer parameter value. If this attribute is populated, booleanParameterValue and floatParameterValue will not be." },
5731            AttrDef { id: "ProprietaryParameterDynamics.parameterNumber", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["DY"], comment: "Sequence number of the parameter among the set of parameters associated with the related proprietary user-defined model." },
5732        ],
5733    },
5734    ClassDef {
5735        ns: "http://iec.ch/TC57/CIM100#",
5736        local: "ProtectedSwitch",
5737        qualified: "ProtectedSwitch",
5738        super_class: Some(353),
5739        concrete: false,
5740        origins: &["EQ", "SSH"],
5741        comment: "A ProtectedSwitch is a switching device that can be operated by ProtectionEquipment.",
5742        attrs: &[],
5743    },
5744    ClassDef {
5745        ns: "http://iec.ch/TC57/CIM100#",
5746        local: "Pss1",
5747        qualified: "Pss1",
5748        super_class: Some(283),
5749        concrete: true,
5750        origins: &["DY"],
5751        comment: "Italian PSS with three inputs (speed, frequency, power).",
5752        attrs: &[
5753            AttrDef { id: "Pss1.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Frequency power input gain (KF). Typical value = 5." },
5754            AttrDef { id: "Pss1.komega", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Shaft speed power input gain (Komega). Typical value = 0." },
5755            AttrDef { id: "Pss1.kpe", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Electric power input gain (KPE). Typical value = 0,3." },
5756            AttrDef { id: "Pss1.ks", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PSS gain (Ks). Typical value = 1." },
5757            AttrDef { id: "Pss1.pmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum power PSS enabling (Pmin). Typical value = 0,25." },
5758            AttrDef { id: "Pss1.t10", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T10) (>= 0). Typical value = 0." },
5759            AttrDef { id: "Pss1.t5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Washout (T5) (>= 0). Typical value = 3,5." },
5760            AttrDef { id: "Pss1.t6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter time constant (T6) (>= 0). Typical value = 0." },
5761            AttrDef { id: "Pss1.t7", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T7) (>= 0). If = 0, both blocks are bypassed. Typical value = 0." },
5762            AttrDef { id: "Pss1.t8", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T8) (>= 0). Typical value = 0." },
5763            AttrDef { id: "Pss1.t9", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T9) (>= 0). If = 0, both blocks are bypassed. Typical value = 0." },
5764            AttrDef { id: "Pss1.tpe", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Electric power filter time constant (TPE) (>= 0). Typical value = 0,05." },
5765            AttrDef { id: "Pss1.vadat", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Signal selector (VADAT). true = closed (generator power is greater than Pmin) false = open (Pe is smaller than Pmin). Typical value = true." },
5766            AttrDef { id: "Pss1.vsmn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer output maximum limit (VSMN). Typical value = -0,06." },
5767            AttrDef { id: "Pss1.vsmx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer output minimum limit (VSMX). Typical value = 0,06." },
5768        ],
5769    },
5770    ClassDef {
5771        ns: "http://iec.ch/TC57/CIM100#",
5772        local: "Pss1A",
5773        qualified: "Pss1A",
5774        super_class: Some(283),
5775        concrete: true,
5776        origins: &["DY"],
5777        comment: "Single input power system stabilizer. It is a modified version in order to allow representation of various vendors' implementations on PSS type 1A.",
5778        attrs: &[
5779            AttrDef { id: "Pss1A.a1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter parameter (A1)." },
5780            AttrDef { id: "Pss1A.a2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter parameter (A2)." },
5781            AttrDef { id: "Pss1A.a3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter parameter (A3)." },
5782            AttrDef { id: "Pss1A.a4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter parameter (A4)." },
5783            AttrDef { id: "Pss1A.a5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter parameter (A5)." },
5784            AttrDef { id: "Pss1A.a6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter parameter (A6)." },
5785            AttrDef { id: "Pss1A.a7", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter parameter (A7)." },
5786            AttrDef { id: "Pss1A.a8", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter parameter (A8)." },
5787            AttrDef { id: "Pss1A.inputSignalType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "InputSignalKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Type of input signal (rotorAngularFrequencyDeviation, busFrequencyDeviation, generatorElectricalPower, generatorAcceleratingPower, busVoltage, or busVoltageDerivative)." },
5788            AttrDef { id: "Pss1A.kd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Selector (Kd). true = e-sTdelay used false = e-sTdelay not used." },
5789            AttrDef { id: "Pss1A.ks", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer gain (Ks)." },
5790            AttrDef { id: "Pss1A.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T1) (>= 0)." },
5791            AttrDef { id: "Pss1A.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T2) (>= 0)." },
5792            AttrDef { id: "Pss1A.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T3) (>= 0)." },
5793            AttrDef { id: "Pss1A.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T4) (>= 0)." },
5794            AttrDef { id: "Pss1A.t5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Washout time constant (T5) (>= 0)." },
5795            AttrDef { id: "Pss1A.t6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Transducer time constant (T6) (>= 0)." },
5796            AttrDef { id: "Pss1A.tdelay", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Tdelay) (>= 0)." },
5797            AttrDef { id: "Pss1A.vcl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer input cutoff threshold (Vcl)." },
5798            AttrDef { id: "Pss1A.vcu", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer input cutoff threshold (Vcu)." },
5799            AttrDef { id: "Pss1A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum stabilizer output (Vrmax) (> Pss1A.vrmin)." },
5800            AttrDef { id: "Pss1A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum stabilizer output (Vrmin) (< Pss1A.vrmax)." },
5801        ],
5802    },
5803    ClassDef {
5804        ns: "http://iec.ch/TC57/CIM100#",
5805        local: "Pss2B",
5806        qualified: "Pss2B",
5807        super_class: Some(283),
5808        concrete: true,
5809        origins: &["DY"],
5810        comment: "Modified IEEE PSS2B. Extra lead/lag (or rate) block added at end (up to 4 lead/lags total).",
5811        attrs: &[
5812            AttrDef { id: "Pss2B.a", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Numerator constant (a). Typical value = 1." },
5813            AttrDef { id: "Pss2B.ks1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer gain (Ks1). Typical value = 12." },
5814            AttrDef { id: "Pss2B.ks2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain on signal #2 (Ks2). Typical value = 0,2." },
5815            AttrDef { id: "Pss2B.ks3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain on signal #2 input before ramp-tracking filter (Ks3). Typical value = 1." },
5816            AttrDef { id: "Pss2B.ks4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain on signal #2 input after ramp-tracking filter (Ks4). Typical value = 1." },
5817            AttrDef { id: "Pss2B.m", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["DY"], comment: "Denominator order of ramp tracking filter (m). Typical value = 5." },
5818            AttrDef { id: "Pss2B.n", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["DY"], comment: "Order of ramp tracking filter (n). Typical value = 1." },
5819            AttrDef { id: "Pss2B.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T1) (>= 0). Typical value = 0,12." },
5820            AttrDef { id: "Pss2B.t10", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T10) (>= 0). Typical value = 0." },
5821            AttrDef { id: "Pss2B.t11", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T11) (>= 0). Typical value = 0." },
5822            AttrDef { id: "Pss2B.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T2) (>= 0). Typical value = 0,02." },
5823            AttrDef { id: "Pss2B.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T3) (>= 0). Typical value = 0,3." },
5824            AttrDef { id: "Pss2B.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T4) (>= 0). Typical value = 0,02." },
5825            AttrDef { id: "Pss2B.t6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant on signal #1 (T6) (>= 0). Typical value = 0." },
5826            AttrDef { id: "Pss2B.t7", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant on signal #2 (T7) (>= 0). Typical value = 2." },
5827            AttrDef { id: "Pss2B.t8", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead of ramp tracking filter (T8) (>= 0). Typical value = 0,2." },
5828            AttrDef { id: "Pss2B.t9", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag of ramp tracking filter (T9) (>= 0). Typical value = 0,1." },
5829            AttrDef { id: "Pss2B.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead constant (Ta) (>= 0). Typical value = 0." },
5830            AttrDef { id: "Pss2B.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag time constant (Tb) (>= 0). Typical value = 0." },
5831            AttrDef { id: "Pss2B.tw1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "First washout on signal #1 (Tw1) (>= 0). Typical value = 2." },
5832            AttrDef { id: "Pss2B.tw2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Second washout on signal #1 (Tw2) (>= 0). Typical value = 2." },
5833            AttrDef { id: "Pss2B.tw3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "First washout on signal #2 (Tw3) (>= 0). Typical value = 2." },
5834            AttrDef { id: "Pss2B.tw4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Second washout on signal #2 (Tw4) (>= 0). Typical value = 0." },
5835            AttrDef { id: "Pss2B.vsi1max", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Input signal #1 maximum limit (Vsi1max) (> Pss2B.vsi1min). Typical value = 2." },
5836            AttrDef { id: "Pss2B.vsi1min", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Input signal #1 minimum limit (Vsi1min) (< Pss2B.vsi1max). Typical value = -2." },
5837            AttrDef { id: "Pss2B.vsi2max", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Input signal #2 maximum limit (Vsi2max) (> Pss2B.vsi2min). Typical value = 2." },
5838            AttrDef { id: "Pss2B.vsi2min", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Input signal #2 minimum limit (Vsi2min) (< Pss2B.vsi2max). Typical value = -2." },
5839            AttrDef { id: "Pss2B.vstmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer output maximum limit (Vstmax) (> Pss2B.vstmin). Typical value = 0,1." },
5840            AttrDef { id: "Pss2B.vstmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer output minimum limit (Vstmin) (< Pss2B.vstmax). Typical value = -0,1." },
5841        ],
5842    },
5843    ClassDef {
5844        ns: "http://iec.ch/TC57/CIM100#",
5845        local: "Pss2ST",
5846        qualified: "Pss2ST",
5847        super_class: Some(283),
5848        concrete: true,
5849        origins: &["DY"],
5850        comment: "PTI microprocessor-based stabilizer type 1.",
5851        attrs: &[
5852            AttrDef { id: "Pss2ST.inputSignal1Type", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "InputSignalKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Type of input signal #1 (rotorAngularFrequencyDeviation, busFrequencyDeviation, generatorElectricalPower, generatorAcceleratingPower, busVoltage, or busVoltageDerivative - shall be different than Pss2ST.inputSignal2Type). Typical value = rotorAngularFrequencyDeviation." },
5853            AttrDef { id: "Pss2ST.inputSignal2Type", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "InputSignalKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Type of input signal #2 (rotorAngularFrequencyDeviation, busFrequencyDeviation, generatorElectricalPower, generatorAcceleratingPower, busVoltage, or busVoltageDerivative - shall be different than Pss2ST.inputSignal1Type). Typical value = busVoltageDerivative." },
5854            AttrDef { id: "Pss2ST.k1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (K1)." },
5855            AttrDef { id: "Pss2ST.k2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (K2)." },
5856            AttrDef { id: "Pss2ST.lsmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limiter (LSMAX) (> Pss2ST.lsmin)." },
5857            AttrDef { id: "Pss2ST.lsmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limiter (LSMIN) (< Pss2ST.lsmax)." },
5858            AttrDef { id: "Pss2ST.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T1) (>= 0)." },
5859            AttrDef { id: "Pss2ST.t10", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T10) (>= 0)." },
5860            AttrDef { id: "Pss2ST.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T2) (>= 0)." },
5861            AttrDef { id: "Pss2ST.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T3) (>= 0)." },
5862            AttrDef { id: "Pss2ST.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T4) (>= 0)." },
5863            AttrDef { id: "Pss2ST.t5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T5) (>= 0)." },
5864            AttrDef { id: "Pss2ST.t6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T6) (>= 0)." },
5865            AttrDef { id: "Pss2ST.t7", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T7) (>= 0)." },
5866            AttrDef { id: "Pss2ST.t8", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T8) (>= 0)." },
5867            AttrDef { id: "Pss2ST.t9", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T9) (>= 0)." },
5868            AttrDef { id: "Pss2ST.vcl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Cutoff limiter (VCL)." },
5869            AttrDef { id: "Pss2ST.vcu", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Cutoff limiter (VCU)." },
5870        ],
5871    },
5872    ClassDef {
5873        ns: "http://iec.ch/TC57/CIM100#",
5874        local: "Pss5",
5875        qualified: "Pss5",
5876        super_class: Some(283),
5877        concrete: true,
5878        origins: &["DY"],
5879        comment: "Detailed Italian PSS.",
5880        attrs: &[
5881            AttrDef { id: "Pss5.ctw2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Selector for second washout enabling (CTW2). true = second washout filter is bypassed false = second washout filter in use. Typical value = true." },
5882            AttrDef { id: "Pss5.deadband", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer output deadband (DEADBAND). Typical value = 0." },
5883            AttrDef { id: "Pss5.isfreq", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Selector for frequency/shaft speed input (isFreq). true = speed (same meaning as InputSignaKind.rotorSpeed) false = frequency (same meaning as InputSignalKind.busFrequency). Typical value = true (same meaning as InputSignalKind.rotorSpeed)." },
5884            AttrDef { id: "Pss5.kf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Frequency/shaft speed input gain (KF). Typical value = 5." },
5885            AttrDef { id: "Pss5.kpe", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Electric power input gain (KPE). Typical value = 0,3." },
5886            AttrDef { id: "Pss5.kpss", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PSS gain (KPSS). Typical value = 1." },
5887            AttrDef { id: "Pss5.pmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum power PSS enabling (Pmin). Typical value = 0,25." },
5888            AttrDef { id: "Pss5.tl1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (TL1) (>= 0). Typical value = 0." },
5889            AttrDef { id: "Pss5.tl2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (TL2) (>= 0). If = 0, both blocks are bypassed. Typical value = 0." },
5890            AttrDef { id: "Pss5.tl3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (TL3) (>= 0). Typical value = 0." },
5891            AttrDef { id: "Pss5.tl4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (TL4) (>= 0). If = 0, both blocks are bypassed. Typical value = 0." },
5892            AttrDef { id: "Pss5.tpe", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Electric power filter time constant (TPE) (>= 0). Typical value = 0,05." },
5893            AttrDef { id: "Pss5.tw1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "First washout (TW1) (>= 0). Typical value = 3,5." },
5894            AttrDef { id: "Pss5.tw2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Second washout (TW2) (>= 0). Typical value = 0." },
5895            AttrDef { id: "Pss5.vadat", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Signal selector (VadAtt). true = closed (generator power is greater than Pmin) false = open (Pe is smaller than Pmin). Typical value = true." },
5896            AttrDef { id: "Pss5.vsmn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer output maximum limit (VSMN). Typical value = -0,1." },
5897            AttrDef { id: "Pss5.vsmx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer output minimum limit (VSMX). Typical value = 0,1." },
5898        ],
5899    },
5900    ClassDef {
5901        ns: "http://iec.ch/TC57/CIM100#",
5902        local: "PssELIN2",
5903        qualified: "PssELIN2",
5904        super_class: Some(283),
5905        concrete: true,
5906        origins: &["DY"],
5907        comment: "Power system stabilizer typically associated with ExcELIN2 (though PssIEEE2B or Pss2B can also be used).",
5908        attrs: &[
5909            AttrDef { id: "PssELIN2.apss", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient (a_PSS). Typical value = 0,1." },
5910            AttrDef { id: "PssELIN2.ks1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (Ks1). Typical value = 1." },
5911            AttrDef { id: "PssELIN2.ks2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (Ks2). Typical value = 0,1." },
5912            AttrDef { id: "PssELIN2.ppss", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient (p_PSS) (>= 0 and <= 4). Typical value = 0,1." },
5913            AttrDef { id: "PssELIN2.psslim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PSS limiter (psslim). Typical value = 0,1." },
5914            AttrDef { id: "PssELIN2.ts1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Ts1) (>= 0). Typical value = 0." },
5915            AttrDef { id: "PssELIN2.ts2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Ts2) (>= 0). Typical value = 1." },
5916            AttrDef { id: "PssELIN2.ts3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Ts3) (>= 0). Typical value = 1." },
5917            AttrDef { id: "PssELIN2.ts4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Ts4) (>= 0). Typical value = 0,1." },
5918            AttrDef { id: "PssELIN2.ts5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Ts5) (>= 0). Typical value = 0." },
5919            AttrDef { id: "PssELIN2.ts6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Ts6) (>= 0). Typical value = 1." },
5920        ],
5921    },
5922    ClassDef {
5923        ns: "http://iec.ch/TC57/CIM100#",
5924        local: "PssIEEE1A",
5925        qualified: "PssIEEE1A",
5926        super_class: Some(283),
5927        concrete: true,
5928        origins: &["DY"],
5929        comment: "IEEE 421.5-2005 type PSS1A power system stabilizer model. PSS1A is the generalized form of a PSS with a single input signal. Reference: IEEE 1A 421.5-2005, 8.1.",
5930        attrs: &[
5931            AttrDef { id: "PssIEEE1A.a1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PSS signal conditioning frequency filter constant (A1). Typical value = 0,061." },
5932            AttrDef { id: "PssIEEE1A.a2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PSS signal conditioning frequency filter constant (A2). Typical value = 0,0017." },
5933            AttrDef { id: "PssIEEE1A.inputSignalType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "InputSignalKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Type of input signal (rotorAngularFrequencyDeviation, generatorElectricalPower, or busFrequencyDeviation). Typical value = rotorAngularFrequencyDeviation." },
5934            AttrDef { id: "PssIEEE1A.ks", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer gain (Ks). Typical value = 5." },
5935            AttrDef { id: "PssIEEE1A.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T1) (>= 0). Typical value = 0,3." },
5936            AttrDef { id: "PssIEEE1A.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T2) (>= 0). Typical value = 0,03." },
5937            AttrDef { id: "PssIEEE1A.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T3) (>= 0). Typical value = 0,3." },
5938            AttrDef { id: "PssIEEE1A.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T4) (>= 0). Typical value = 0,03." },
5939            AttrDef { id: "PssIEEE1A.t5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Washout time constant (T5) (>= 0). Typical value = 10." },
5940            AttrDef { id: "PssIEEE1A.t6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Transducer time constant (T6) (>= 0). Typical value = 0,01." },
5941            AttrDef { id: "PssIEEE1A.vrmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum stabilizer output (Vrmax) (> PssIEEE1A.vrmin). Typical value = 0,05." },
5942            AttrDef { id: "PssIEEE1A.vrmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum stabilizer output (Vrmin) (< PssIEEE1A.vrmax). Typical value = -0,05." },
5943        ],
5944    },
5945    ClassDef {
5946        ns: "http://iec.ch/TC57/CIM100#",
5947        local: "PssIEEE2B",
5948        qualified: "PssIEEE2B",
5949        super_class: Some(283),
5950        concrete: true,
5951        origins: &["DY"],
5952        comment: "IEEE 421.5-2005 type PSS2B power system stabilizer model. This stabilizer model is designed to represent a variety of dual-input stabilizers, which normally use combinations of power and speed or frequency to derive the stabilizing signal. Reference: IEEE 2B 421.5-2005, 8.2.",
5953        attrs: &[
5954            AttrDef { id: "PssIEEE2B.inputSignal1Type", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "InputSignalKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Type of input signal #1 (rotorAngularFrequencyDeviation, busFrequencyDeviation). Typical value = rotorAngularFrequencyDeviation." },
5955            AttrDef { id: "PssIEEE2B.inputSignal2Type", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "InputSignalKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Type of input signal #2 (generatorElectricalPower). Typical value = generatorElectricalPower." },
5956            AttrDef { id: "PssIEEE2B.ks1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer gain (Ks1). Typical value = 12." },
5957            AttrDef { id: "PssIEEE2B.ks2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain on signal #2 (Ks2). Typical value = 0,2." },
5958            AttrDef { id: "PssIEEE2B.ks3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain on signal #2 input before ramp-tracking filter (Ks3). Typical value = 1." },
5959            AttrDef { id: "PssIEEE2B.m", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["DY"], comment: "Denominator order of ramp tracking filter (M). Typical value = 5." },
5960            AttrDef { id: "PssIEEE2B.n", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["DY"], comment: "Order of ramp tracking filter (N). Typical value = 1." },
5961            AttrDef { id: "PssIEEE2B.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T1) (>= 0). Typical value = 0,12." },
5962            AttrDef { id: "PssIEEE2B.t10", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T10) (>= 0). Typical value = 0." },
5963            AttrDef { id: "PssIEEE2B.t11", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T11) (>= 0). Typical value = 0." },
5964            AttrDef { id: "PssIEEE2B.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T2) (>= 0). Typical value = 0,02." },
5965            AttrDef { id: "PssIEEE2B.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T3) (>= 0). Typical value = 0,3." },
5966            AttrDef { id: "PssIEEE2B.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead/lag time constant (T4) (>= 0). Typical value = 0,02." },
5967            AttrDef { id: "PssIEEE2B.t6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant on signal #1 (T6) (>= 0). Typical value = 0." },
5968            AttrDef { id: "PssIEEE2B.t7", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant on signal #2 (T7) (>= 0). Typical value = 2." },
5969            AttrDef { id: "PssIEEE2B.t8", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead of ramp tracking filter (T8) (>= 0). Typical value = 0,2." },
5970            AttrDef { id: "PssIEEE2B.t9", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag of ramp tracking filter (T9) (>= 0). Typical value = 0,1." },
5971            AttrDef { id: "PssIEEE2B.tw1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "First washout on signal #1 (Tw1) (>= 0). Typical value = 2." },
5972            AttrDef { id: "PssIEEE2B.tw2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Second washout on signal #1 (Tw2) (>= 0). Typical value = 2." },
5973            AttrDef { id: "PssIEEE2B.tw3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "First washout on signal #2 (Tw3) (>= 0). Typical value = 2." },
5974            AttrDef { id: "PssIEEE2B.tw4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Second washout on signal #2 (Tw4) (>= 0). Typical value = 0." },
5975            AttrDef { id: "PssIEEE2B.vsi1max", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Input signal #1 maximum limit (Vsi1max) (> PssIEEE2B.vsi1min). Typical value = 2." },
5976            AttrDef { id: "PssIEEE2B.vsi1min", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Input signal #1 minimum limit (Vsi1min) (< PssIEEE2B.vsi1max). Typical value = -2." },
5977            AttrDef { id: "PssIEEE2B.vsi2max", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Input signal #2 maximum limit (Vsi2max) (> PssIEEE2B.vsi2min). Typical value = 2." },
5978            AttrDef { id: "PssIEEE2B.vsi2min", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Input signal #2 minimum limit (Vsi2min) (< PssIEEE2B.vsi2max). Typical value = -2." },
5979            AttrDef { id: "PssIEEE2B.vstmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer output maximum limit (Vstmax) (> PssIEEE2B.vstmin). Typical value = 0,1." },
5980            AttrDef { id: "PssIEEE2B.vstmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer output minimum limit (Vstmin) (< PssIEEE2B.vstmax). Typical value = -0,1." },
5981        ],
5982    },
5983    ClassDef {
5984        ns: "http://iec.ch/TC57/CIM100#",
5985        local: "PssIEEE3B",
5986        qualified: "PssIEEE3B",
5987        super_class: Some(283),
5988        concrete: true,
5989        origins: &["DY"],
5990        comment: "IEEE 421.5-2005 type PSS3B power system stabilizer model. The PSS model PSS3B has dual inputs of electrical power and rotor angular frequency deviation. The signals are used to derive an equivalent mechanical power signal. This model has 2 input signals. They have the following fixed types (expressed in terms of InputSignalKind values): the first one is of rotorAngleFrequencyDeviation type and the second one is of generatorElectricalPower type. Reference: IEEE 3B 421.5-2005, 8.3.",
5991        attrs: &[
5992            AttrDef { id: "PssIEEE3B.a1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter parameter (A1). Typical value = 0,359." },
5993            AttrDef { id: "PssIEEE3B.a2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter parameter (A2). Typical value = 0,586." },
5994            AttrDef { id: "PssIEEE3B.a3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter parameter (A3). Typical value = 0,429." },
5995            AttrDef { id: "PssIEEE3B.a4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter parameter (A4). Typical value = 0,564." },
5996            AttrDef { id: "PssIEEE3B.a5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter parameter (A5). Typical value = 0,001." },
5997            AttrDef { id: "PssIEEE3B.a6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter parameter (A6). Typical value = 0." },
5998            AttrDef { id: "PssIEEE3B.a7", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter parameter (A7). Typical value = 0,031." },
5999            AttrDef { id: "PssIEEE3B.a8", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter parameter (A8). Typical value = 0." },
6000            AttrDef { id: "PssIEEE3B.ks1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain on signal # 1 (Ks1). Typical value = -0,602." },
6001            AttrDef { id: "PssIEEE3B.ks2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain on signal # 2 (Ks2). Typical value = 30,12." },
6002            AttrDef { id: "PssIEEE3B.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Transducer time constant (T1) (>= 0). Typical value = 0,012." },
6003            AttrDef { id: "PssIEEE3B.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Transducer time constant (T2) (>= 0). Typical value = 0,012." },
6004            AttrDef { id: "PssIEEE3B.tw1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Washout time constant (Tw1) (>= 0). Typical value = 0,3." },
6005            AttrDef { id: "PssIEEE3B.tw2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Washout time constant (Tw2) (>= 0). Typical value = 0,3." },
6006            AttrDef { id: "PssIEEE3B.tw3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Washout time constant (Tw3) (>= 0). Typical value = 0,6." },
6007            AttrDef { id: "PssIEEE3B.vstmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer output maximum limit (Vstmax) (> PssIEEE3B.vstmin). Typical value = 0,1." },
6008            AttrDef { id: "PssIEEE3B.vstmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer output minimum limit (Vstmin) (< PssIEEE3B.vstmax). Typical value = -0,1." },
6009        ],
6010    },
6011    ClassDef {
6012        ns: "http://iec.ch/TC57/CIM100#",
6013        local: "PssIEEE4B",
6014        qualified: "PssIEEE4B",
6015        super_class: Some(283),
6016        concrete: true,
6017        origins: &["DY"],
6018        comment: "IEEE 421.5-2005 type PSS4B power system stabilizer. The PSS4B model represents a structure based on multiple working frequency bands. Three separate bands, respectively dedicated to the low-, intermediate- and high-frequency modes of oscillations, are used in this delta omega (speed input) PSS. There is an error in the in IEEE 421.5-2005 PSS4B model: the Pe input should read -Pe. This implies that the input Pe needs to be multiplied by -1. Reference: IEEE 4B 421.5-2005, 8.4. Parameter details: This model has 2 input signals. They have the following fixed types (expressed in terms of InputSignalKind values): the first one is of rotorAngleFrequencyDeviation type and the second one is of generatorElectricalPower type.",
6019        attrs: &[
6020            AttrDef { id: "PssIEEE4B.bwh1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter 1 (high-frequency band): three dB bandwidth (Bwi)." },
6021            AttrDef { id: "PssIEEE4B.bwh2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter 2 (high-frequency band): three dB bandwidth (Bwi)." },
6022            AttrDef { id: "PssIEEE4B.bwl1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter 1 (low-frequency band): three dB bandwidth (Bwi)." },
6023            AttrDef { id: "PssIEEE4B.bwl2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter 2 (low-frequency band): three dB bandwidth (Bwi)." },
6024            AttrDef { id: "PssIEEE4B.kh", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High band gain (KH). Typical value = 120." },
6025            AttrDef { id: "PssIEEE4B.kh1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High band differential filter gain (KH1). Typical value = 66." },
6026            AttrDef { id: "PssIEEE4B.kh11", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High band first lead-lag blocks coefficient (KH11). Typical value = 1." },
6027            AttrDef { id: "PssIEEE4B.kh17", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High band first lead-lag blocks coefficient (KH17). Typical value = 1." },
6028            AttrDef { id: "PssIEEE4B.kh2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High band differential filter gain (KH2). Typical value = 66." },
6029            AttrDef { id: "PssIEEE4B.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intermediate band gain (KI). Typical value = 30." },
6030            AttrDef { id: "PssIEEE4B.ki1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intermediate band differential filter gain (KI1). Typical value = 66." },
6031            AttrDef { id: "PssIEEE4B.ki11", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intermediate band first lead-lag blocks coefficient (KI11). Typical value = 1." },
6032            AttrDef { id: "PssIEEE4B.ki17", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intermediate band first lead-lag blocks coefficient (KI17). Typical value = 1." },
6033            AttrDef { id: "PssIEEE4B.ki2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intermediate band differential filter gain (KI2). Typical value = 66." },
6034            AttrDef { id: "PssIEEE4B.kl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low band gain (KL). Typical value = 7.5." },
6035            AttrDef { id: "PssIEEE4B.kl1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low band differential filter gain (KL1). Typical value = 66." },
6036            AttrDef { id: "PssIEEE4B.kl11", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low band first lead-lag blocks coefficient (KL11). Typical value = 1." },
6037            AttrDef { id: "PssIEEE4B.kl17", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low band first lead-lag blocks coefficient (KL17). Typical value = 1." },
6038            AttrDef { id: "PssIEEE4B.kl2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low band differential filter gain (KL2). Typical value = 66." },
6039            AttrDef { id: "PssIEEE4B.omeganh1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter 1 (high-frequency band): filter frequency (omegani)." },
6040            AttrDef { id: "PssIEEE4B.omeganh2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter 2 (high-frequency band): filter frequency (omegani)." },
6041            AttrDef { id: "PssIEEE4B.omeganl1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter 1 (low-frequency band): filter frequency (omegani)." },
6042            AttrDef { id: "PssIEEE4B.omeganl2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Notch filter 2 (low-frequency band): filter frequency (omegani)." },
6043            AttrDef { id: "PssIEEE4B.th1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High band time constant (TH1) (>= 0). Typical value = 0,01513." },
6044            AttrDef { id: "PssIEEE4B.th10", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High band time constant (TH10) (>= 0). Typical value = 0." },
6045            AttrDef { id: "PssIEEE4B.th11", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High band time constant (TH11) (>= 0). Typical value = 0." },
6046            AttrDef { id: "PssIEEE4B.th12", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High band time constant (TH12) (>= 0). Typical value = 0." },
6047            AttrDef { id: "PssIEEE4B.th2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High band time constant (TH2) (>= 0). Typical value = 0,01816." },
6048            AttrDef { id: "PssIEEE4B.th3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High band time constant (TH3) (>= 0). Typical value = 0." },
6049            AttrDef { id: "PssIEEE4B.th4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High band time constant (TH4) (>= 0). Typical value = 0." },
6050            AttrDef { id: "PssIEEE4B.th5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High band time constant (TH5) (>= 0). Typical value = 0." },
6051            AttrDef { id: "PssIEEE4B.th6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High band time constant (TH6) (>= 0). Typical value = 0." },
6052            AttrDef { id: "PssIEEE4B.th7", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High band time constant (TH7) (>= 0). Typical value = 0,01816." },
6053            AttrDef { id: "PssIEEE4B.th8", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High band time constant (TH8) (>= 0). Typical value = 0,02179." },
6054            AttrDef { id: "PssIEEE4B.th9", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High band time constant (TH9) (>= 0). Typical value = 0." },
6055            AttrDef { id: "PssIEEE4B.ti1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intermediate band time constant (TI1) (>= 0). Typical value = 0,173." },
6056            AttrDef { id: "PssIEEE4B.ti10", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intermediate band time constant (TI10) (>= 0). Typical value = 0." },
6057            AttrDef { id: "PssIEEE4B.ti11", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intermediate band time constant (TI11) (>= 0). Typical value = 0." },
6058            AttrDef { id: "PssIEEE4B.ti12", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intermediate band time constant (TI12) (>= 0). Typical value = 0." },
6059            AttrDef { id: "PssIEEE4B.ti2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intermediate band time constant (TI2) (>= 0). Typical value = 0,2075." },
6060            AttrDef { id: "PssIEEE4B.ti3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intermediate band time constant (TI3) (>= 0). Typical value = 0." },
6061            AttrDef { id: "PssIEEE4B.ti4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intermediate band time constant (TI4) (>= 0). Typical value = 0." },
6062            AttrDef { id: "PssIEEE4B.ti5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intermediate band time constant (TI5) (>= 0). Typical value = 0." },
6063            AttrDef { id: "PssIEEE4B.ti6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intermediate band time constant (TI6) (>= 0). Typical value = 0." },
6064            AttrDef { id: "PssIEEE4B.ti7", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intermediate band time constant (TI7) (>= 0). Typical value = 0,2075." },
6065            AttrDef { id: "PssIEEE4B.ti8", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intermediate band time constant (TI8) (>= 0). Typical value = 0,2491." },
6066            AttrDef { id: "PssIEEE4B.ti9", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intermediate band time constant (TI9) (>= 0). Typical value = 0." },
6067            AttrDef { id: "PssIEEE4B.tl1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low band time constant (TL1) (>= 0). Typical value = 1,73." },
6068            AttrDef { id: "PssIEEE4B.tl10", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low band time constant (TL10) (>= 0). Typical value = 0." },
6069            AttrDef { id: "PssIEEE4B.tl11", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low band time constant (TL11) (>= 0). Typical value = 0." },
6070            AttrDef { id: "PssIEEE4B.tl12", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low band time constant (TL12) (>= 0). Typical value = 0." },
6071            AttrDef { id: "PssIEEE4B.tl2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low band time constant (TL2) (>= 0). Typical value = 2,075." },
6072            AttrDef { id: "PssIEEE4B.tl3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low band time constant (TL3) (>= 0). Typical value = 0." },
6073            AttrDef { id: "PssIEEE4B.tl4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low band time constant (TL4) (>= 0). Typical value = 0." },
6074            AttrDef { id: "PssIEEE4B.tl5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low band time constant (TL5) (>= 0). Typical value = 0." },
6075            AttrDef { id: "PssIEEE4B.tl6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low band time constant (TL6) (>= 0). Typical value = 0." },
6076            AttrDef { id: "PssIEEE4B.tl7", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low band time constant (TL7) (>= 0). Typical value = 2,075." },
6077            AttrDef { id: "PssIEEE4B.tl8", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low band time constant (TL8) (>= 0). Typical value = 2,491." },
6078            AttrDef { id: "PssIEEE4B.tl9", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low band time constant (TL9) (>= 0). Typical value = 0." },
6079            AttrDef { id: "PssIEEE4B.vhmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High band output maximum limit (VHmax) (> PssIEEE4B.vhmin). Typical value = 0,6." },
6080            AttrDef { id: "PssIEEE4B.vhmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "High band output minimum limit (VHmin) (< PssIEEE4V.vhmax). Typical value = -0,6." },
6081            AttrDef { id: "PssIEEE4B.vimax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intermediate band output maximum limit (VImax) (> PssIEEE4B.vimin). Typical value = 0,6." },
6082            AttrDef { id: "PssIEEE4B.vimin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Intermediate band output minimum limit (VImin) (< PssIEEE4B.vimax). Typical value = -0,6." },
6083            AttrDef { id: "PssIEEE4B.vlmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low band output maximum limit (VLmax) (> PssIEEE4B.vlmin). Typical value = 0,075." },
6084            AttrDef { id: "PssIEEE4B.vlmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Low band output minimum limit (VLmin) (< PssIEEE4B.vlmax). Typical value = -0,075." },
6085            AttrDef { id: "PssIEEE4B.vstmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PSS output maximum limit (VSTmax) (> PssIEEE4B.vstmin). Typical value = 0,15." },
6086            AttrDef { id: "PssIEEE4B.vstmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PSS output minimum limit (VSTmin) (< PssIEEE4B.vstmax). Typical value = -0,15." },
6087        ],
6088    },
6089    ClassDef {
6090        ns: "http://iec.ch/TC57/CIM100#",
6091        local: "PssPTIST1",
6092        qualified: "PssPTIST1",
6093        super_class: Some(283),
6094        concrete: true,
6095        origins: &["DY"],
6096        comment: "PTI microprocessor-based stabilizer type 1.",
6097        attrs: &[
6098            AttrDef { id: "PssPTIST1.dtc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time step related to activation of controls (deltatc) (>= 0). Typical value = 0,025." },
6099            AttrDef { id: "PssPTIST1.dtf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time step frequency calculation (deltatf) (>= 0). Typical value = 0,025." },
6100            AttrDef { id: "PssPTIST1.dtp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time step active power calculation (deltatp) (>= 0). Typical value = 0,0125." },
6101            AttrDef { id: "PssPTIST1.k", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (K). Typical value = 9." },
6102            AttrDef { id: "PssPTIST1.m", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "(M). M = 2 x H. Typical value = 5." },
6103            AttrDef { id: "PssPTIST1.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T1) (>= 0). Typical value = 0,3." },
6104            AttrDef { id: "PssPTIST1.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T2) (>= 0). Typical value = 1." },
6105            AttrDef { id: "PssPTIST1.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T3) (>= 0). Typical value = 0,2." },
6106            AttrDef { id: "PssPTIST1.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T4) (>= 0). Typical value = 0,05." },
6107            AttrDef { id: "PssPTIST1.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Tf) (>= 0). Typical value = 0,2." },
6108            AttrDef { id: "PssPTIST1.tp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Tp) (>= 0). Typical value = 0,2." },
6109        ],
6110    },
6111    ClassDef {
6112        ns: "http://iec.ch/TC57/CIM100#",
6113        local: "PssPTIST3",
6114        qualified: "PssPTIST3",
6115        super_class: Some(283),
6116        concrete: true,
6117        origins: &["DY"],
6118        comment: "PTI microprocessor-based stabilizer type 3.",
6119        attrs: &[
6120            AttrDef { id: "PssPTIST3.a0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter coefficient (A0)." },
6121            AttrDef { id: "PssPTIST3.a1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limiter (Al)." },
6122            AttrDef { id: "PssPTIST3.a2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter coefficient (A2)." },
6123            AttrDef { id: "PssPTIST3.a3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter coefficient (A3)." },
6124            AttrDef { id: "PssPTIST3.a4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter coefficient (A4)." },
6125            AttrDef { id: "PssPTIST3.a5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter coefficient (A5)." },
6126            AttrDef { id: "PssPTIST3.al", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limiter (Al)." },
6127            AttrDef { id: "PssPTIST3.athres", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Threshold value above which output averaging will be bypassed (Athres). Typical value = 0,005." },
6128            AttrDef { id: "PssPTIST3.b0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter coefficient (B0)." },
6129            AttrDef { id: "PssPTIST3.b1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter coefficient (B1)." },
6130            AttrDef { id: "PssPTIST3.b2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter coefficient (B2)." },
6131            AttrDef { id: "PssPTIST3.b3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter coefficient (B3)." },
6132            AttrDef { id: "PssPTIST3.b4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter coefficient (B4)." },
6133            AttrDef { id: "PssPTIST3.b5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter coefficient (B5)." },
6134            AttrDef { id: "PssPTIST3.dl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limiter (Dl)." },
6135            AttrDef { id: "PssPTIST3.dtc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time step related to activation of controls (deltatc) (>= 0). Typical value = 0,025 (0,03 for 50 Hz)." },
6136            AttrDef { id: "PssPTIST3.dtf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time step frequency calculation (deltatf) (>= 0). Typical value = 0,025 (0,03 for 50 Hz)." },
6137            AttrDef { id: "PssPTIST3.dtp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time step active power calculation (deltatp) (>= 0). Typical value = 0,0125 (0,015 for 50 Hz)." },
6138            AttrDef { id: "PssPTIST3.isw", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Digital/analogue output switch (Isw). true = produce analogue output false = convert to digital output, using tap selection table." },
6139            AttrDef { id: "PssPTIST3.k", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (K). Typical value = 9." },
6140            AttrDef { id: "PssPTIST3.lthres", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Threshold value (Lthres)." },
6141            AttrDef { id: "PssPTIST3.m", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "(M). M = 2 x H. Typical value = 5." },
6142            AttrDef { id: "PssPTIST3.nav", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Number of control outputs to average (NAV) (1 <= NAV <= 16). Typical value = 4." },
6143            AttrDef { id: "PssPTIST3.ncl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Number of counts at limit to active limit function (NCL) (> 0)." },
6144            AttrDef { id: "PssPTIST3.ncr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Number of counts until reset after limit function is triggered (NCR)." },
6145            AttrDef { id: "PssPTIST3.pmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "(Pmin)." },
6146            AttrDef { id: "PssPTIST3.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T1) (>= 0). Typical value = 0,3." },
6147            AttrDef { id: "PssPTIST3.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T2) (>= 0). Typical value = 1." },
6148            AttrDef { id: "PssPTIST3.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T3) (>= 0). Typical value = 0,2." },
6149            AttrDef { id: "PssPTIST3.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T4) (>= 0). Typical value = 0,05." },
6150            AttrDef { id: "PssPTIST3.t5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T5) (>= 0)." },
6151            AttrDef { id: "PssPTIST3.t6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T6) (>= 0)." },
6152            AttrDef { id: "PssPTIST3.tf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Tf) (>= 0). Typical value = 0,2." },
6153            AttrDef { id: "PssPTIST3.tp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Tp) (>= 0). Typical value = 0,2." },
6154        ],
6155    },
6156    ClassDef {
6157        ns: "http://iec.ch/TC57/CIM100#",
6158        local: "PssRQB",
6159        qualified: "PssRQB",
6160        super_class: Some(283),
6161        concrete: true,
6162        origins: &["DY"],
6163        comment: "Power system stabilizer type RQB. This power system stabilizer is intended to be used together with excitation system type ExcRQB, which is primarily used in nuclear or thermal generating units.",
6164        attrs: &[
6165            AttrDef { id: "PssRQB.kdpm", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead lag gain (KDPM). Typical value = 0,185." },
6166            AttrDef { id: "PssRQB.ki2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Speed input gain (Ki2). Typical value = 3,43." },
6167            AttrDef { id: "PssRQB.ki3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Electrical power input gain (Ki3). Typical value = -11,45." },
6168            AttrDef { id: "PssRQB.ki4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Mechanical power input gain (Ki4). Typical value = 11,86." },
6169            AttrDef { id: "PssRQB.sibv", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Speed deadband (SIBV). Typical value = 0,006." },
6170            AttrDef { id: "PssRQB.t4f", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead lag time constant (T4F) (>= 0). Typical value = 0,045." },
6171            AttrDef { id: "PssRQB.t4m", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Input time constant (T4M) (>= 0). Typical value = 5." },
6172            AttrDef { id: "PssRQB.t4mom", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Speed time constant (T4MOM) (>= 0). Typical value = 1,27." },
6173            AttrDef { id: "PssRQB.tomd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Speed delay (TOMD) (>= 0). Typical value = 0,02." },
6174            AttrDef { id: "PssRQB.tomsl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Speed time constant (TOMSL) (>= 0). Typical value = 0,04." },
6175        ],
6176    },
6177    ClassDef {
6178        ns: "http://iec.ch/TC57/CIM100#",
6179        local: "PssSB4",
6180        qualified: "PssSB4",
6181        super_class: Some(283),
6182        concrete: true,
6183        origins: &["DY"],
6184        comment: "Power sensitive stabilizer model.",
6185        attrs: &[
6186            AttrDef { id: "PssSB4.kx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (Kx). Typical value = 2,7." },
6187            AttrDef { id: "PssSB4.ta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Ta) (>= 0). Typical value = 0,37." },
6188            AttrDef { id: "PssSB4.tb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Tb) (>= 0). Typical value = 0,37." },
6189            AttrDef { id: "PssSB4.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Tc) (>= 0). Typical value = 0,035." },
6190            AttrDef { id: "PssSB4.td", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Td) (>= 0). Typical value = 0,0." },
6191            AttrDef { id: "PssSB4.te", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Te) (>= 0). Typical value = 0,0169." },
6192            AttrDef { id: "PssSB4.tt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Tt) (>= 0). Typical value = 0,18." },
6193            AttrDef { id: "PssSB4.tx1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reset time constant (Tx1) (>= 0). Typical value = 0,035." },
6194            AttrDef { id: "PssSB4.tx2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Tx2) (>= 0). Typical value = 5,0." },
6195            AttrDef { id: "PssSB4.vsmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limiter (Vsmax) (> PssSB4.vsmin). Typical value = 0,062." },
6196            AttrDef { id: "PssSB4.vsmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limiter (Vsmin) (< PssSB4.vsmax). Typical value = -0,062." },
6197        ],
6198    },
6199    ClassDef {
6200        ns: "http://iec.ch/TC57/CIM100#",
6201        local: "PssSH",
6202        qualified: "PssSH",
6203        super_class: Some(283),
6204        concrete: true,
6205        origins: &["DY"],
6206        comment: "SiemensTM “H infinity” power system stabilizer with generator electrical power input. [Footnote: Siemens 'H infinity' power system stabilizers are an example of suitable products available commercially. This information is given for the convenience of users of this document and does not constitute an endorsement by IEC of these products.]",
6207        attrs: &[
6208            AttrDef { id: "PssSH.k", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Main gain (K). Typical value = 1." },
6209            AttrDef { id: "PssSH.k0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain 0 (K0). Typical value = 0,012." },
6210            AttrDef { id: "PssSH.k1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain 1 (K1). Typical value = 0,488." },
6211            AttrDef { id: "PssSH.k2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain 2 (K2). Typical value = 0,064." },
6212            AttrDef { id: "PssSH.k3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain 3 (K3). Typical value = 0,224." },
6213            AttrDef { id: "PssSH.k4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain 4 (K4). Typical value = 0,1." },
6214            AttrDef { id: "PssSH.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant 1 (T1) (> 0). Typical value = 0,076." },
6215            AttrDef { id: "PssSH.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant 2 (T2) (> 0). Typical value = 0,086." },
6216            AttrDef { id: "PssSH.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant 3 (T3) (> 0). Typical value = 1,068." },
6217            AttrDef { id: "PssSH.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant 4 (T4) (> 0). Typical value = 1,913." },
6218            AttrDef { id: "PssSH.td", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Input time constant (Td) (>= 0). Typical value = 10." },
6219            AttrDef { id: "PssSH.vsmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Output maximum limit (Vsmax) (> PssSH.vsmin). Typical value = 0,1." },
6220            AttrDef { id: "PssSH.vsmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Output minimum limit (Vsmin) (< PssSH.vsmax). Typical value = -0,1." },
6221        ],
6222    },
6223    ClassDef {
6224        ns: "http://iec.ch/TC57/CIM100#",
6225        local: "PssSK",
6226        qualified: "PssSK",
6227        super_class: Some(283),
6228        concrete: true,
6229        origins: &["DY"],
6230        comment: "Slovakian PSS with three inputs.",
6231        attrs: &[
6232            AttrDef { id: "PssSK.k1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain P (K1). Typical value = -0,3." },
6233            AttrDef { id: "PssSK.k2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain fE (K2). Typical value = -0,15." },
6234            AttrDef { id: "PssSK.k3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain If (K3). Typical value = 10." },
6235            AttrDef { id: "PssSK.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Denominator time constant (T1) (> 0,005). Typical value = 0,3." },
6236            AttrDef { id: "PssSK.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter time constant (T2) (> 0,005). Typical value = 0,35." },
6237            AttrDef { id: "PssSK.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Denominator time constant (T3) (> 0,005). Typical value = 0,22." },
6238            AttrDef { id: "PssSK.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter time constant (T4) (> 0,005). Typical value = 0,02." },
6239            AttrDef { id: "PssSK.t5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Denominator time constant (T5) (> 0,005). Typical value = 0,02." },
6240            AttrDef { id: "PssSK.t6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter time constant (T6) (> 0,005). Typical value = 0,02." },
6241            AttrDef { id: "PssSK.vsmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer output maximum limit (VSMAX) (> PssSK.vsmin). Typical value = 0,4." },
6242            AttrDef { id: "PssSK.vsmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer output minimum limit (VSMIN) (< PssSK.vsmax). Typical value = -0.4." },
6243        ],
6244    },
6245    ClassDef {
6246        ns: "http://iec.ch/TC57/CIM100#",
6247        local: "PssSTAB2A",
6248        qualified: "PssSTAB2A",
6249        super_class: Some(283),
6250        concrete: true,
6251        origins: &["DY"],
6252        comment: "Power system stabilizer part of an ABB excitation system. [Footnote: ABB excitation systems are an example of suitable products available commercially. This information is given for the convenience of users of this document and does not constitute an endorsement by IEC of these products.]",
6253        attrs: &[
6254            AttrDef { id: "PssSTAB2A.hlim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer output limiter (HLIM). Typical value = 0,5." },
6255            AttrDef { id: "PssSTAB2A.k2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (K2). Typical value = 1,0." },
6256            AttrDef { id: "PssSTAB2A.k3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (K3). Typical value = 0,25." },
6257            AttrDef { id: "PssSTAB2A.k4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (K4). Typical value = 0,075." },
6258            AttrDef { id: "PssSTAB2A.k5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain (K5). Typical value = 2,5." },
6259            AttrDef { id: "PssSTAB2A.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T2). Typical value = 4,0." },
6260            AttrDef { id: "PssSTAB2A.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T3). Typical value = 2,0." },
6261            AttrDef { id: "PssSTAB2A.t5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (T5). Typical value = 4,5." },
6262        ],
6263    },
6264    ClassDef {
6265        ns: "http://iec.ch/TC57/CIM100#",
6266        local: "PssWECC",
6267        qualified: "PssWECC",
6268        super_class: Some(283),
6269        concrete: true,
6270        origins: &["DY"],
6271        comment: "Dual input power system stabilizer, based on IEEE type 2, with modified output limiter defined by WECC (Western Electricity Coordinating Council, USA).",
6272        attrs: &[
6273            AttrDef { id: "PssWECC.inputSignal1Type", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "InputSignalKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Type of input signal #1 (rotorAngularFrequencyDeviation, busFrequencyDeviation, generatorElectricalPower, generatorAcceleratingPower, busVoltage, or busVoltageDerivative - shall be different than PssWECC.inputSignal2Type). Typical value = rotorAngularFrequencyDeviation." },
6274            AttrDef { id: "PssWECC.inputSignal2Type", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "InputSignalKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Type of input signal #2 (rotorAngularFrequencyDeviation, busFrequencyDeviation, generatorElectricalPower, generatorAcceleratingPower, busVoltage, busVoltageDerivative - shall be different than PssWECC.inputSignal1Type). Typical value = busVoltageDerivative." },
6275            AttrDef { id: "PssWECC.k1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Input signal 1 gain (K1). Typical value = 1,13." },
6276            AttrDef { id: "PssWECC.k2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Input signal 2 gain (K2). Typical value = 0,0." },
6277            AttrDef { id: "PssWECC.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Input signal 1 transducer time constant (T1) (>= 0). Typical value = 0,037." },
6278            AttrDef { id: "PssWECC.t10", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag time constant (T10) (>= 0). Typical value = 0." },
6279            AttrDef { id: "PssWECC.t2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Input signal 2 transducer time constant (T2) (>= 0). Typical value = 0,0." },
6280            AttrDef { id: "PssWECC.t3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer washout time constant (T3) (>= 0). Typical value = 9,5." },
6281            AttrDef { id: "PssWECC.t4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stabilizer washout time lag constant (T4) (>= 0). Typical value = 9,5." },
6282            AttrDef { id: "PssWECC.t5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead time constant (T5) (>= 0). Typical value = 1,7." },
6283            AttrDef { id: "PssWECC.t6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag time constant (T6) (>= 0). Typical value = 1,5." },
6284            AttrDef { id: "PssWECC.t7", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead time constant (T7) (>= 0). Typical value = 1,7." },
6285            AttrDef { id: "PssWECC.t8", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag time constant (T8) (>= 0). Typical value = 1,5." },
6286            AttrDef { id: "PssWECC.t9", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead time constant (T9) (>= 0). Typical value = 0." },
6287            AttrDef { id: "PssWECC.vcl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum value for voltage compensator output (VCL). Typical value = 0." },
6288            AttrDef { id: "PssWECC.vcu", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum value for voltage compensator output (VCU). Typical value = 0." },
6289            AttrDef { id: "PssWECC.vsmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum output signal (Vsmax) (> PssWECC.vsmin). Typical value = 0,05." },
6290            AttrDef { id: "PssWECC.vsmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum output signal (Vsmin) (< PssWECC.vsmax). Typical value = -0,05." },
6291        ],
6292    },
6293    ClassDef {
6294        ns: "http://iec.ch/TC57/CIM100#",
6295        local: "Quality61850",
6296        qualified: "Quality61850",
6297        super_class: None,
6298        concrete: false,
6299        origins: &["OP"],
6300        comment: "Quality flags in this class are as defined in IEC 61850, except for estimatorReplaced, which has been included in this class for convenience.",
6301        attrs: &[
6302            AttrDef { id: "Quality61850.badReference", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["OP"], comment: "Measurement value may be incorrect due to a reference being out of calibration." },
6303            AttrDef { id: "Quality61850.estimatorReplaced", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["OP"], comment: "Value has been replaced by State Estimator. estimatorReplaced is not an IEC61850 quality bit but has been put in this class for convenience." },
6304            AttrDef { id: "Quality61850.failure", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["OP"], comment: "This identifier indicates that a supervision function has detected an internal or external failure, e.g. communication failure." },
6305            AttrDef { id: "Quality61850.oldData", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["OP"], comment: "Measurement value is old and possibly invalid, as it has not been successfully updated during a specified time interval." },
6306            AttrDef { id: "Quality61850.operatorBlocked", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["OP"], comment: "Measurement value is blocked and hence unavailable for transmission." },
6307            AttrDef { id: "Quality61850.oscillatory", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["OP"], comment: "To prevent some overload of the communication it is sensible to detect and suppress oscillating (fast changing) binary inputs. If a signal changes in a defined time twice in the same direction (from 0 to 1 or from 1 to 0) then oscillation is detected and the detail quality identifier 'oscillatory' is set. If it is detected a configured numbers of transient changes could be passed by. In this time the validity status 'questionable' is set. If after this defined numbers of changes the signal is still in the oscillating state the value shall be set either to the opposite state of the previous stable value or to a defined default value. In this case the validity status 'questionable' is reset and 'invalid' is set as long as the signal is oscillating. If it is configured such that no transient changes should be passed by then the validity status 'invalid' is set immediately in addition to the detail quality identifier 'oscillatory' (used for status information only)." },
6308            AttrDef { id: "Quality61850.outOfRange", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["OP"], comment: "Measurement value is beyond a predefined range of value." },
6309            AttrDef { id: "Quality61850.overFlow", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["OP"], comment: "Measurement value is beyond the capability of being represented properly. For example, a counter value overflows from maximum count back to a value of zero." },
6310            AttrDef { id: "Quality61850.source", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "Source", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["OP"], comment: "Source gives information related to the origin of a value. The value may be acquired from the process, defaulted or substituted." },
6311            AttrDef { id: "Quality61850.suspect", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["OP"], comment: "A correlation function has detected that the value is not consistent with other values. Typically set by a network State Estimator." },
6312            AttrDef { id: "Quality61850.test", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["OP"], comment: "Measurement value is transmitted for test purposes." },
6313            AttrDef { id: "Quality61850.validity", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "Validity", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["OP"], comment: "Validity of the measurement value." },
6314        ],
6315    },
6316    ClassDef {
6317        ns: "http://iec.ch/TC57/CIM100#",
6318        local: "RaiseLowerCommand",
6319        qualified: "RaiseLowerCommand",
6320        super_class: Some(11),
6321        concrete: true,
6322        origins: &["OP"],
6323        comment: "An analog control that increases or decreases a set point value with pulses. Unless otherwise specified, one pulse moves the set point by one.",
6324        attrs: &[
6325            AttrDef { id: "RaiseLowerCommand.ValueAliasSet", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ValueAliasSet", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OP"], comment: "The ValueAliasSet used for translation of a Control value to a name." },
6326        ],
6327    },
6328    ClassDef {
6329        ns: "http://iec.ch/TC57/CIM100#",
6330        local: "RatioTapChanger",
6331        qualified: "RatioTapChanger",
6332        super_class: Some(362),
6333        concrete: true,
6334        origins: &["EQ", "SSH"],
6335        comment: "A tap changer that changes the voltage ratio impacting the voltage magnitude but not the phase angle across the transformer. Angle sign convention (general): Positive value indicates a positive phase shift from the winding where the tap is located to the other winding (for a two-winding transformer).",
6336        attrs: &[
6337            AttrDef { id: "RatioTapChanger.RatioTapChangerTable", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RatioTapChangerTable", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The tap ratio table for this ratio tap changer." },
6338            AttrDef { id: "RatioTapChanger.TransformerEnd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TransformerEnd", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "Transformer end to which this ratio tap changer belongs." },
6339            AttrDef { id: "RatioTapChanger.stepVoltageIncrement", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Tap step increment, in per cent of rated voltage of the power transformer end, per step position. When the increment is negative, the voltage decreases when the tap step increases." },
6340        ],
6341    },
6342    ClassDef {
6343        ns: "http://iec.ch/TC57/CIM100#",
6344        local: "RatioTapChangerTable",
6345        qualified: "RatioTapChangerTable",
6346        super_class: Some(213),
6347        concrete: true,
6348        origins: &["EQ"],
6349        comment: "Describes a curve for how the voltage magnitude and impedance varies with the tap step.",
6350        attrs: &[
6351            AttrDef { id: "RatioTapChangerTable.RatioTapChanger", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RatioTapChanger", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The ratio tap changer of this tap ratio table." },
6352            AttrDef { id: "RatioTapChangerTable.RatioTapChangerTablePoint", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RatioTapChangerTablePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "Points of this table." },
6353        ],
6354    },
6355    ClassDef {
6356        ns: "http://iec.ch/TC57/CIM100#",
6357        local: "RatioTapChangerTablePoint",
6358        qualified: "RatioTapChangerTablePoint",
6359        super_class: Some(364),
6360        concrete: true,
6361        origins: &["EQ"],
6362        comment: "Describes each tap step in the ratio tap changer tabular curve.",
6363        attrs: &[
6364            AttrDef { id: "RatioTapChangerTablePoint.RatioTapChangerTable", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RatioTapChangerTable", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "Table of this point." },
6365        ],
6366    },
6367    ClassDef {
6368        ns: "http://iec.ch/TC57/CIM100#",
6369        local: "ReactiveCapabilityCurve",
6370        qualified: "ReactiveCapabilityCurve",
6371        super_class: Some(53),
6372        concrete: true,
6373        origins: &["EQ"],
6374        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.",
6375        attrs: &[
6376            AttrDef { id: "ReactiveCapabilityCurve.EquivalentInjection", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "EquivalentInjection", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The equivalent injection using this reactive capability curve." },
6377            AttrDef { id: "ReactiveCapabilityCurve.InitiallyUsedBySynchronousMachines", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SynchronousMachine", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "Synchronous machines using this curve as default." },
6378        ],
6379    },
6380    ClassDef {
6381        ns: "http://iec.ch/TC57/CIM100#",
6382        local: "RegularIntervalSchedule",
6383        qualified: "RegularIntervalSchedule",
6384        super_class: Some(23),
6385        concrete: false,
6386        origins: &["EQ"],
6387        comment: "The schedule has time points where the time between them is constant.",
6388        attrs: &[
6389            AttrDef { id: "RegularIntervalSchedule.TimePoints", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RegularTimePoint", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The regular interval time point data values that define this schedule." },
6390            AttrDef { id: "RegularIntervalSchedule.endTime", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["EQ"], comment: "The time for the last time point. The value can be a time of day, not a specific date." },
6391            AttrDef { id: "RegularIntervalSchedule.timeStep", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The time between each pair of subsequent regular time points in sequence order." },
6392        ],
6393    },
6394    ClassDef {
6395        ns: "http://iec.ch/TC57/CIM100#",
6396        local: "RegularTimePoint",
6397        qualified: "RegularTimePoint",
6398        super_class: None,
6399        concrete: true,
6400        origins: &["EQ"],
6401        comment: "Time point for a schedule where the time between the consecutive points is constant.",
6402        attrs: &[
6403            AttrDef { id: "RegularTimePoint.IntervalSchedule", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RegularIntervalSchedule", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "Regular interval schedule containing this time point." },
6404            AttrDef { id: "RegularTimePoint.sequenceNumber", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["EQ"], comment: "The position of the regular time point in the sequence. Note that time points don't have to be sequential, i.e. time points may be omitted. The actual time for a RegularTimePoint is computed by multiplying the associated regular interval schedule's time step with the regular time point sequence number and adding the associated schedules start time. To specify values for the start time, use sequence number 0. The sequence number cannot be negative." },
6405            AttrDef { id: "RegularTimePoint.value1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The first value at the time. The meaning of the value is defined by the derived type of the associated schedule." },
6406            AttrDef { id: "RegularTimePoint.value2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The second value at the time. The meaning of the value is defined by the derived type of the associated schedule." },
6407        ],
6408    },
6409    ClassDef {
6410        ns: "http://iec.ch/TC57/CIM100#",
6411        local: "RegulatingCondEq",
6412        qualified: "RegulatingCondEq",
6413        super_class: Some(94),
6414        concrete: false,
6415        origins: &["EQ", "DY", "SC", "SSH"],
6416        comment: "A type of conducting equipment that can regulate a quantity (i.e. voltage or flow) at a specific point in the network.",
6417        attrs: &[
6418            AttrDef { id: "RegulatingCondEq.RegulatingControl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RegulatingControl", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The regulating control scheme in which this equipment participates." },
6419            AttrDef { id: "RegulatingCondEq.controlEnabled", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSH"], comment: "Specifies the regulation status of the equipment. True is regulating, false is not regulating." },
6420        ],
6421    },
6422    ClassDef {
6423        ns: "http://iec.ch/TC57/CIM100#",
6424        local: "RegulatingControl",
6425        qualified: "RegulatingControl",
6426        super_class: Some(282),
6427        concrete: true,
6428        origins: &["EQ", "SSH"],
6429        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.",
6430        attrs: &[
6431            AttrDef { id: "RegulatingControl.RegulatingCondEq", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RegulatingCondEq", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The equipment that participates in this regulating control scheme." },
6432            AttrDef { id: "RegulatingControl.RegulationSchedule", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RegulationSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "Schedule for this regulating control." },
6433            AttrDef { id: "RegulatingControl.Terminal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Terminal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The terminal associated with this regulating control. The terminal is associated instead of a node, since the terminal could connect into either a topological node or a connectivity node. Sometimes it is useful to model regulation at a terminal of a bus bar object." },
6434            AttrDef { id: "RegulatingControl.discrete", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSH"], comment: "The regulation is performed in a discrete mode. This applies to equipment with discrete controls, e.g. tap changers and shunt compensators." },
6435            AttrDef { id: "RegulatingControl.enabled", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSH"], comment: "The flag tells if regulation is enabled." },
6436            AttrDef { id: "RegulatingControl.maxAllowedTargetValue", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "Maximum allowed target value (RegulatingControl.targetValue)." },
6437            AttrDef { id: "RegulatingControl.minAllowedTargetValue", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "Minimum allowed target value (RegulatingControl.targetValue)." },
6438            AttrDef { id: "RegulatingControl.mode", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "RegulatingControlModeKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["EQ"], comment: "The regulating control mode presently available. This specification allows for determining the kind of regulation without need for obtaining the units from a schedule." },
6439            AttrDef { id: "RegulatingControl.targetDeadband", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "This is a deadband used with discrete control to avoid excessive update of controls like tap changers and shunt compensator banks while regulating. The units of those appropriate for the mode. The attribute shall be a positive value or zero. If RegulatingControl.discrete is set to 'false', the RegulatingControl.targetDeadband is to be ignored. Note that for instance, if the targetValue is 100 kV and the targetDeadband is 2 kV the range is from 99 to 101 kV." },
6440            AttrDef { id: "RegulatingControl.targetValue", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], 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." },
6441            AttrDef { id: "RegulatingControl.targetValueUnitMultiplier", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "UnitMultiplier", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["SSH"], comment: "Specify the multiplier for used for the targetValue." },
6442        ],
6443    },
6444    ClassDef {
6445        ns: "http://iec.ch/TC57/CIM100#",
6446        local: "RegulationSchedule",
6447        qualified: "RegulationSchedule",
6448        super_class: Some(325),
6449        concrete: true,
6450        origins: &["EQ"],
6451        comment: "A pre-established pattern over time for a controlled variable, e.g., busbar voltage.",
6452        attrs: &[
6453            AttrDef { id: "RegulationSchedule.RegulatingControl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RegulatingControl", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "Regulating controls that have this schedule." },
6454        ],
6455    },
6456    ClassDef {
6457        ns: "http://iec.ch/TC57/CIM100#",
6458        local: "RemoteInputSignal",
6459        qualified: "RemoteInputSignal",
6460        super_class: Some(213),
6461        concrete: true,
6462        origins: &["DY"],
6463        comment: "Supports connection to a terminal associated with a remote bus from which an input signal of a specific type is coming.",
6464        attrs: &[
6465            AttrDef { id: "RemoteInputSignal.DiscontinuousExcitationControlDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DiscontinuousExcitationControlDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Discontinuous excitation control model using this remote input signal." },
6466            AttrDef { id: "RemoteInputSignal.PFVArControllerType1Dynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PFVArControllerType1Dynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Power factor or VAr controller type 1 model using this remote input signal." },
6467            AttrDef { id: "RemoteInputSignal.PowerSystemStabilizerDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PowerSystemStabilizerDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Power system stabilizer model using this remote input signal." },
6468            AttrDef { id: "RemoteInputSignal.Terminal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Terminal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Remote terminal with which this input signal is associated." },
6469            AttrDef { id: "RemoteInputSignal.UnderexcitationLimiterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "UnderexcitationLimiterDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Underexcitation limiter model using this remote input signal." },
6470            AttrDef { id: "RemoteInputSignal.VoltageCompensatorDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "VoltageCompensatorDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Voltage compensator model using this remote input signal." },
6471            AttrDef { id: "RemoteInputSignal.WindPlantDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindPlantDynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "The wind plant using the remote signal." },
6472            AttrDef { id: "RemoteInputSignal.WindTurbineType1or2Dynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType1or2Dynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind generator type 1 or type 2 model using this remote input signal." },
6473            AttrDef { id: "RemoteInputSignal.WindTurbineType3or4Dynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType3or4Dynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind turbine type 3 or type 4 models using this remote input signal." },
6474            AttrDef { id: "RemoteInputSignal.remoteSignalType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "RemoteSignalKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Type of input signal." },
6475        ],
6476    },
6477    ClassDef {
6478        ns: "http://iec.ch/TC57/CIM100#",
6479        local: "ReportingGroup",
6480        qualified: "ReportingGroup",
6481        super_class: Some(213),
6482        concrete: true,
6483        origins: &["EQ", "TP"],
6484        comment: "A reporting group is used for various ad-hoc groupings used for reporting.",
6485        attrs: &[
6486            AttrDef { id: "ReportingGroup.BusNameMarker", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "BusNameMarker", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The bus name markers that belong to this reporting group." },
6487            AttrDef { id: "ReportingGroup.TopologicalNode", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TopologicalNode", is_list: true, used: false, xsd: "", value_ns: "", origins: &["TP"], comment: "The topological nodes that belong to the reporting group." },
6488        ],
6489    },
6490    ClassDef {
6491        ns: "http://iec.ch/TC57/CIM100#",
6492        local: "RotatingMachine",
6493        qualified: "RotatingMachine",
6494        super_class: Some(315),
6495        concrete: false,
6496        origins: &["EQ", "DY", "SC", "SSH"],
6497        comment: "A rotating machine which may be used as a generator or motor.",
6498        attrs: &[
6499            AttrDef { id: "RotatingMachine.GeneratingUnit", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "GeneratingUnit", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "A synchronous machine may operate as a generator and as such becomes a member of a generating unit." },
6500            AttrDef { id: "RotatingMachine.HydroPump", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "HydroPump", is_list: false, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The synchronous machine drives the turbine which moves the water from a low elevation to a higher elevation. The direction of machine rotation for pumping may or may not be the same as for generating." },
6501            AttrDef { id: "RotatingMachine.p", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], 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." },
6502            AttrDef { id: "RotatingMachine.q", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], 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." },
6503            AttrDef { id: "RotatingMachine.ratedPowerFactor", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Power factor (nameplate data). It is primarily used for short circuit data exchange according to IEC 60909. The attribute cannot be a negative value." },
6504            AttrDef { id: "RotatingMachine.ratedS", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ApparentPower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Nameplate apparent power rating for the unit. The attribute shall have a positive value." },
6505            AttrDef { id: "RotatingMachine.ratedU", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Rated voltage (nameplate data, Ur in IEC 60909-0). It is primarily used for short circuit data exchange according to IEC 60909. The attribute shall be a positive value." },
6506        ],
6507    },
6508    ClassDef {
6509        ns: "http://iec.ch/TC57/CIM100#",
6510        local: "RotatingMachineDynamics",
6511        qualified: "RotatingMachineDynamics",
6512        super_class: Some(91),
6513        concrete: false,
6514        origins: &["DY"],
6515        comment: "Abstract parent class for all synchronous and asynchronous machine standard models.",
6516        attrs: &[
6517            AttrDef { id: "RotatingMachineDynamics.damping", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Damping torque coefficient (D) (>= 0). A proportionality constant that, when multiplied by the angular velocity of the rotor poles with respect to the magnetic field (frequency), results in the damping torque. This value is often zero when the sources of damping torques (generator damper windings, load damping effects, etc.) are modelled in detail. Typical value = 0." },
6518            AttrDef { id: "RotatingMachineDynamics.inertia", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Inertia constant of generator or motor and mechanical load (H) (> 0). This is the specification for the stored energy in the rotating mass when operating at rated speed. For a generator, this includes the generator plus all other elements (turbine, exciter) on the same shaft and has units of MW x s. For a motor, it includes the motor plus its mechanical load. Conventional units are PU on the generator MVA base, usually expressed as MW x s / MVA or just s. This value is used in the accelerating power reference frame for operator training simulator solutions. Typical value = 3." },
6519            AttrDef { id: "RotatingMachineDynamics.saturationFactor", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Saturation factor at rated terminal voltage (S1) (>= 0). Not used by simplified model. Defined by defined by S(E1) in the SynchronousMachineSaturationParameters diagram. Typical value = 0,02." },
6520            AttrDef { id: "RotatingMachineDynamics.saturationFactor120", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Saturation factor at 120% of rated terminal voltage (S12) (>= RotatingMachineDynamics.saturationFactor). Not used by the simplified model, defined by S(E2) in the SynchronousMachineSaturationParameters diagram. Typical value = 0,12." },
6521            AttrDef { id: "RotatingMachineDynamics.statorLeakageReactance", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stator leakage reactance (Xl) (>= 0). Typical value = 0,15." },
6522            AttrDef { id: "RotatingMachineDynamics.statorResistance", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Stator (armature) resistance (Rs) (>= 0). Typical value = 0,005." },
6523        ],
6524    },
6525    ClassDef {
6526        ns: "http://iec.ch/TC57/CIM100#",
6527        local: "SVCControlMode",
6528        qualified: "SVCControlMode",
6529        super_class: None,
6530        concrete: false,
6531        origins: &["EQ"],
6532        comment: "Static VAr Compensator control mode.",
6533        attrs: &[],
6534    },
6535    ClassDef {
6536        ns: "http://iec.ch/TC57/CIM100#",
6537        local: "SVCUserDefined",
6538        qualified: "SVCUserDefined",
6539        super_class: Some(335),
6540        concrete: true,
6541        origins: &["DY"],
6542        comment: "Static var compensator (SVC) function block whose dynamic behaviour is described by a user-defined model.",
6543        attrs: &[
6544            AttrDef { id: "SVCUserDefined.ProprietaryParameterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ProprietaryParameterDynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Parameter of this proprietary user-defined model." },
6545            AttrDef { id: "SVCUserDefined.proprietary", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Behaviour is based on a proprietary model as opposed to a detailed model. true = user-defined model is proprietary with behaviour mutually understood by sending and receiving applications and parameters passed as general attributes false = user-defined model is explicitly defined in terms of control blocks and their input and output signals." },
6546        ],
6547    },
6548    ClassDef {
6549        ns: "http://iec.ch/TC57/CIM100#",
6550        local: "Season",
6551        qualified: "Season",
6552        super_class: Some(213),
6553        concrete: true,
6554        origins: &["EQ"],
6555        comment: "A specified time period of the year.",
6556        attrs: &[
6557            AttrDef { id: "Season.SeasonDayTypeSchedules", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SeasonDayTypeSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "Schedules that use this Season." },
6558            AttrDef { id: "Season.endDate", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "MonthDay", is_list: false, used: true, xsd: "gMonthDay", value_ns: "", origins: &["EQ"], comment: "Date season ends." },
6559            AttrDef { id: "Season.startDate", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "MonthDay", is_list: false, used: true, xsd: "gMonthDay", value_ns: "", origins: &["EQ"], comment: "Date season starts." },
6560        ],
6561    },
6562    ClassDef {
6563        ns: "http://iec.ch/TC57/CIM100#",
6564        local: "SeasonDayTypeSchedule",
6565        qualified: "SeasonDayTypeSchedule",
6566        super_class: Some(313),
6567        concrete: false,
6568        origins: &["EQ"],
6569        comment: "A time schedule covering a 24 hour period, with curve data for a specific type of season and day.",
6570        attrs: &[
6571            AttrDef { id: "SeasonDayTypeSchedule.DayType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DayType", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "DayType for the Schedule." },
6572            AttrDef { id: "SeasonDayTypeSchedule.Season", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Season", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "Season for the Schedule." },
6573        ],
6574    },
6575    ClassDef {
6576        ns: "http://iec.ch/TC57/CIM100#",
6577        local: "Sensor",
6578        qualified: "Sensor",
6579        super_class: Some(21),
6580        concrete: false,
6581        origins: &["EQ"],
6582        comment: "This class describe devices that transform a measured quantity into signals that can be presented at displays, used in control or be recorded.",
6583        attrs: &[],
6584    },
6585    ClassDef {
6586        ns: "http://iec.ch/TC57/CIM100#",
6587        local: "SeriesCompensator",
6588        qualified: "SeriesCompensator",
6589        super_class: Some(37),
6590        concrete: true,
6591        origins: &["EQ", "SC"],
6592        comment: "A Series Compensator is a series capacitor or reactor or an AC transmission line without charging susceptance. It is a two terminal device.",
6593        attrs: &[
6594            AttrDef { id: "SeriesCompensator.r", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Positive sequence resistance." },
6595            AttrDef { id: "SeriesCompensator.r0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence resistance." },
6596            AttrDef { id: "SeriesCompensator.varistorPresent", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SC"], comment: "Describe if a metal oxide varistor (mov) for over voltage protection is configured in parallel with the series compensator. It is used for short circuit calculations." },
6597            AttrDef { id: "SeriesCompensator.varistorRatedCurrent", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "The maximum current the varistor is designed to handle at specified duration. It is used for short circuit calculations and exchanged only if SeriesCompensator.varistorPresent is true. The attribute shall be a positive value." },
6598            AttrDef { id: "SeriesCompensator.varistorVoltageThreshold", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "The dc voltage at which the varistor starts conducting. It is used for short circuit calculations and exchanged only if SeriesCompensator.varistorPresent is true." },
6599            AttrDef { id: "SeriesCompensator.x", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Positive sequence reactance." },
6600            AttrDef { id: "SeriesCompensator.x0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence reactance." },
6601        ],
6602    },
6603    ClassDef {
6604        ns: "http://iec.ch/TC57/CIM100#",
6605        local: "ServiceLocation",
6606        qualified: "ServiceLocation",
6607        super_class: Some(445),
6608        concrete: true,
6609        origins: &["GL"],
6610        comment: "A real estate location, commonly referred to as premises.",
6611        attrs: &[],
6612    },
6613    ClassDef {
6614        ns: "http://iec.ch/TC57/CIM100#",
6615        local: "SetPoint",
6616        qualified: "SetPoint",
6617        super_class: Some(11),
6618        concrete: true,
6619        origins: &["OP"],
6620        comment: "An analog control that issues a set point value.",
6621        attrs: &[
6622            AttrDef { id: "SetPoint.normalValue", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["OP"], comment: "Normal value for Control.value e.g. used for percentage scaling." },
6623            AttrDef { id: "SetPoint.value", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["OP"], comment: "The value representing the actuator output." },
6624        ],
6625    },
6626    ClassDef {
6627        ns: "http://iec.ch/TC57/CIM100#",
6628        local: "ShuntCompensator",
6629        qualified: "ShuntCompensator",
6630        super_class: Some(315),
6631        concrete: false,
6632        origins: &["EQ", "SC", "SSH", "SV"],
6633        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.",
6634        attrs: &[
6635            AttrDef { id: "ShuntCompensator.SvShuntCompensatorSections", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SvShuntCompensatorSections", is_list: false, used: false, xsd: "", value_ns: "", origins: &["SV"], comment: "The state for the number of shunt compensator sections in service." },
6636            AttrDef { id: "ShuntCompensator.aVRDelay", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "An automatic voltage regulation delay (AVRDelay) which is the time delay from a change in voltage to when the capacitor is allowed to change state. This filters out temporary changes in voltage." },
6637            AttrDef { id: "ShuntCompensator.grounded", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["EQ"], comment: "Used for Yn and Zn connections. True if the neutral is solidly grounded." },
6638            AttrDef { id: "ShuntCompensator.maximumSections", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["EQ"], comment: "The maximum number of sections that may be switched in." },
6639            AttrDef { id: "ShuntCompensator.nomU", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The voltage at which the nominal reactive power may be calculated. This should normally be within 10% of the voltage at which the capacitor is connected to the network." },
6640            AttrDef { id: "ShuntCompensator.normalSections", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["EQ"], comment: "The normal number of sections switched in. The value shall be between zero and ShuntCompensator.maximumSections." },
6641            AttrDef { id: "ShuntCompensator.sections", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], 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." },
6642            AttrDef { id: "ShuntCompensator.voltageSensitivity", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "VoltagePerReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Voltage sensitivity required for the device to regulate the bus voltage, in voltage/reactive power." },
6643        ],
6644    },
6645    ClassDef {
6646        ns: "http://iec.ch/TC57/CIM100#",
6647        local: "SolarGeneratingUnit",
6648        qualified: "SolarGeneratingUnit",
6649        super_class: Some(169),
6650        concrete: true,
6651        origins: &["EQ", "SSH"],
6652        comment: "A solar thermal generating unit, connected to the grid by means of a rotating machine. This class does not represent photovoltaic (PV) generation.",
6653        attrs: &[
6654            AttrDef { id: "SolarGeneratingUnit.SolarPowerPlant", ns: "http://iec.ch/TC57/CIM100-European#", kind: AttrKind::Association, range: "SolarPowerPlant", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "A solar power plant may have solar generating units." },
6655        ],
6656    },
6657    ClassDef {
6658        ns: "http://iec.ch/TC57/CIM100-European#",
6659        local: "SolarPowerPlant",
6660        qualified: "SolarPowerPlant",
6661        super_class: Some(282),
6662        concrete: true,
6663        origins: &["EQ"],
6664        comment: "Solar power plant.",
6665        attrs: &[
6666            AttrDef { id: "SolarPowerPlant.SolarGeneratingUnits", ns: "http://iec.ch/TC57/CIM100-European#", kind: AttrKind::Association, range: "SolarGeneratingUnit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "A solar generating unit or units may be a member of a solar power plant." },
6667        ],
6668    },
6669    ClassDef {
6670        ns: "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
6671        local: "Statements",
6672        qualified: "Statements",
6673        super_class: None,
6674        concrete: false,
6675        origins: &["FH"],
6676        comment: "It represent a set of Definition and/or Description elements.",
6677        attrs: &[
6678            AttrDef { id: "Statements.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: &["FH"], comment: "Statement object." },
6679            AttrDef { id: "Statements.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: &["FH"], comment: "Statement predicate." },
6680            AttrDef { id: "Statements.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: &["FH"], comment: "Statement subject." },
6681        ],
6682    },
6683    ClassDef {
6684        ns: "http://iec.ch/TC57/CIM100#",
6685        local: "StaticVarCompensator",
6686        qualified: "StaticVarCompensator",
6687        super_class: Some(315),
6688        concrete: true,
6689        origins: &["EQ", "DY", "SSH"],
6690        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.",
6691        attrs: &[
6692            AttrDef { id: "StaticVarCompensator.StaticVarCompensatorDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "StaticVarCompensatorDynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Static Var Compensator dynamics model used to describe dynamic behaviour of this Static Var Compensator." },
6693            AttrDef { id: "StaticVarCompensator.capacitiveRating", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Capacitive reactance at maximum capacitive reactive power. Shall always be positive." },
6694            AttrDef { id: "StaticVarCompensator.inductiveRating", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Inductive reactance at maximum inductive reactive power. Shall always be negative." },
6695            AttrDef { id: "StaticVarCompensator.q", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], 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." },
6696            AttrDef { id: "StaticVarCompensator.sVCControlMode", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SVCControlMode", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "SVC control mode." },
6697            AttrDef { id: "StaticVarCompensator.slope", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "VoltagePerReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The characteristics slope of an SVC 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." },
6698            AttrDef { id: "StaticVarCompensator.voltageSetPoint", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The reactive power output of the SVC is proportional to the difference between the voltage at the regulated bus and the voltage setpoint. When the regulated bus voltage is equal to the voltage setpoint, the reactive power output is zero." },
6699        ],
6700    },
6701    ClassDef {
6702        ns: "http://iec.ch/TC57/CIM100#",
6703        local: "StaticVarCompensatorDynamics",
6704        qualified: "StaticVarCompensatorDynamics",
6705        super_class: Some(91),
6706        concrete: false,
6707        origins: &["DY"],
6708        comment: "Static var compensator whose behaviour is described by reference to a standard model or by definition of a user-defined model.",
6709        attrs: &[
6710            AttrDef { id: "StaticVarCompensatorDynamics.StaticVarCompensator", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "StaticVarCompensator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Static Var Compensator to which Static Var Compensator dynamics model applies." },
6711        ],
6712    },
6713    ClassDef {
6714        ns: "http://iec.ch/TC57/CIM100#",
6715        local: "StationSupply",
6716        qualified: "StationSupply",
6717        super_class: Some(95),
6718        concrete: true,
6719        origins: &["EQ", "SSH"],
6720        comment: "Station supply with load derived from the station output.",
6721        attrs: &[],
6722    },
6723    ClassDef {
6724        ns: "http://iec.ch/TC57/CIM100#",
6725        local: "Status",
6726        qualified: "Status",
6727        super_class: None,
6728        concrete: false,
6729        origins: &["GL"],
6730        comment: "Current status information relevant to an entity.",
6731        attrs: &[
6732            AttrDef { id: "Status.dateTime", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "DateTime", is_list: false, used: true, xsd: "dateTime", value_ns: "", origins: &["GL"], comment: "Date and time for which status 'value' applies." },
6733            AttrDef { id: "Status.reason", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "Reason code or explanation for why an object went to the current status 'value'." },
6734            AttrDef { id: "Status.remark", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "Pertinent information regarding the current 'value', as free form text." },
6735            AttrDef { id: "Status.value", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "Status value at 'dateTime'; prior status changes may have been kept in instances of activity records associated with the object to which this status applies." },
6736        ],
6737    },
6738    ClassDef {
6739        ns: "http://iec.ch/TC57/CIM100#",
6740        local: "StreetAddress",
6741        qualified: "StreetAddress",
6742        super_class: None,
6743        concrete: false,
6744        origins: &["GL"],
6745        comment: "General purpose street and postal address information.",
6746        attrs: &[
6747            AttrDef { id: "StreetAddress.language", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "The language in which the address is specified, using ISO 639-1 two digit language code." },
6748            AttrDef { id: "StreetAddress.poBox", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "Post office box." },
6749            AttrDef { id: "StreetAddress.postalCode", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "Postal code for the address." },
6750            AttrDef { id: "StreetAddress.status", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Status", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GL"], comment: "Status of this address." },
6751            AttrDef { id: "StreetAddress.streetDetail", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "StreetDetail", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GL"], comment: "Street detail." },
6752            AttrDef { id: "StreetAddress.townDetail", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TownDetail", is_list: false, used: true, xsd: "", value_ns: "", origins: &["GL"], comment: "Town detail." },
6753        ],
6754    },
6755    ClassDef {
6756        ns: "http://iec.ch/TC57/CIM100#",
6757        local: "StreetDetail",
6758        qualified: "StreetDetail",
6759        super_class: None,
6760        concrete: false,
6761        origins: &["GL"],
6762        comment: "Street details, in the context of address.",
6763        attrs: &[
6764            AttrDef { id: "StreetDetail.addressGeneral", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "First line of a free form address or some additional address information (for example a mail stop)." },
6765            AttrDef { id: "StreetDetail.addressGeneral2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "(if applicable) Second line of a free form address." },
6766            AttrDef { id: "StreetDetail.addressGeneral3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "(if applicable) Third line of a free form address." },
6767            AttrDef { id: "StreetDetail.buildingName", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "(if applicable) In certain cases the physical location of the place of interest does not have a direct point of entry from the street, but may be located inside a larger structure such as a building, complex, office block, apartment, etc." },
6768            AttrDef { id: "StreetDetail.code", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "(if applicable) Utilities often make use of external reference systems, such as those of the town-planner's department or surveyor general's mapping system, that allocate global reference codes to streets." },
6769            AttrDef { id: "StreetDetail.floorIdentification", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "The identification by name or number, expressed as text, of the floor in the building as part of this address." },
6770            AttrDef { id: "StreetDetail.name", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "Name of the street." },
6771            AttrDef { id: "StreetDetail.number", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "Designator of the specific location on the street." },
6772            AttrDef { id: "StreetDetail.prefix", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "Prefix to the street name. For example: North, South, East, West." },
6773            AttrDef { id: "StreetDetail.suffix", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "Suffix to the street name. For example: North, South, East, West." },
6774            AttrDef { id: "StreetDetail.suiteNumber", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "Number of the apartment or suite." },
6775            AttrDef { id: "StreetDetail.type", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "Type of street. Examples include: street, circle, boulevard, avenue, road, drive, etc." },
6776            AttrDef { id: "StreetDetail.withinTownLimits", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["GL"], comment: "True if this street is within the legal geographical boundaries of the specified town (default)." },
6777        ],
6778    },
6779    ClassDef {
6780        ns: "http://iec.ch/TC57/CIM100#",
6781        local: "StringMeasurement",
6782        qualified: "StringMeasurement",
6783        super_class: Some(233),
6784        concrete: true,
6785        origins: &["OP"],
6786        comment: "StringMeasurement represents a measurement with values of type string.",
6787        attrs: &[
6788            AttrDef { id: "StringMeasurement.StringMeasurementValues", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "StringMeasurementValue", is_list: true, used: false, xsd: "", value_ns: "", origins: &["OP"], comment: "The values connected to this measurement." },
6789        ],
6790    },
6791    ClassDef {
6792        ns: "http://iec.ch/TC57/CIM100#",
6793        local: "StringMeasurementValue",
6794        qualified: "StringMeasurementValue",
6795        super_class: Some(234),
6796        concrete: true,
6797        origins: &["OP"],
6798        comment: "StringMeasurementValue represents a measurement value of type string.",
6799        attrs: &[
6800            AttrDef { id: "StringMeasurementValue.StringMeasurement", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "StringMeasurement", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OP"], comment: "Measurement to which this value is connected." },
6801        ],
6802    },
6803    ClassDef {
6804        ns: "http://iec.ch/TC57/CIM100#",
6805        local: "SubGeographicalRegion",
6806        qualified: "SubGeographicalRegion",
6807        super_class: Some(213),
6808        concrete: true,
6809        origins: &["EQ", "EQBD"],
6810        comment: "A subset of a geographical region of a power system network model.",
6811        attrs: &[
6812            AttrDef { id: "SubGeographicalRegion.DCLines", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DCLine", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The DC lines in this sub-geographical region." },
6813            AttrDef { id: "SubGeographicalRegion.Lines", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Line", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ", "EQBD"], comment: "The lines within the sub-geographical region." },
6814            AttrDef { id: "SubGeographicalRegion.Region", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "GeographicalRegion", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ", "EQBD"], comment: "The geographical region which this sub-geographical region is within." },
6815            AttrDef { id: "SubGeographicalRegion.Substations", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Substation", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ", "EQBD"], comment: "The substations in this sub-geographical region." },
6816        ],
6817    },
6818    ClassDef {
6819        ns: "http://iec.ch/TC57/CIM100#",
6820        local: "SubLoadArea",
6821        qualified: "SubLoadArea",
6822        super_class: Some(93),
6823        concrete: true,
6824        origins: &["EQ"],
6825        comment: "The class is the second level in a hierarchical structure for grouping of loads for the purpose of load flow load scaling.",
6826        attrs: &[
6827            AttrDef { id: "SubLoadArea.LoadArea", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "LoadArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The LoadArea where the SubLoadArea belongs." },
6828            AttrDef { id: "SubLoadArea.LoadGroups", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "LoadGroup", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The Loadgroups in the SubLoadArea." },
6829        ],
6830    },
6831    ClassDef {
6832        ns: "http://iec.ch/TC57/CIM100#",
6833        local: "Substation",
6834        qualified: "Substation",
6835        super_class: Some(99),
6836        concrete: true,
6837        origins: &["EQ", "EQBD"],
6838        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.",
6839        attrs: &[
6840            AttrDef { id: "Substation.DCConverterUnit", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DCConverterUnit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The DC converter unit belonging of the substation." },
6841            AttrDef { id: "Substation.Region", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SubGeographicalRegion", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ", "EQBD"], comment: "The SubGeographicalRegion containing the substation." },
6842            AttrDef { id: "Substation.VoltageLevels", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "VoltageLevel", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ", "EQBD"], comment: "The voltage levels within this substation." },
6843        ],
6844    },
6845    ClassDef {
6846        ns: "http://iec.ch/TC57/CIM100#",
6847        local: "SurgeArrester",
6848        qualified: "SurgeArrester",
6849        super_class: Some(21),
6850        concrete: true,
6851        origins: &["EQ"],
6852        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.",
6853        attrs: &[],
6854    },
6855    ClassDef {
6856        ns: "http://iec.ch/TC57/CIM100#",
6857        local: "SvInjection",
6858        qualified: "SvInjection",
6859        super_class: None,
6860        concrete: true,
6861        origins: &["SV"],
6862        comment: "The SvInjection reports the calculated bus injection minus the sum of the terminal flows. The terminal flow is positive out from the bus (load sign convention) and bus injection has positive flow into the bus. SvInjection may have the remainder after state estimation or slack after power flow calculation.",
6863        attrs: &[
6864            AttrDef { id: "SvInjection.TopologicalNode", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TopologicalNode", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SV"], comment: "The topological node associated with the flow injection state variable." },
6865            AttrDef { id: "SvInjection.pInjection", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SV"], comment: "The active power mismatch between calculated injection and initial injection. Positive sign means injection into the TopologicalNode (bus)." },
6866            AttrDef { id: "SvInjection.qInjection", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SV"], comment: "The reactive power mismatch between calculated injection and initial injection. Positive sign means injection into the TopologicalNode (bus)." },
6867        ],
6868    },
6869    ClassDef {
6870        ns: "http://iec.ch/TC57/CIM100#",
6871        local: "SvPowerFlow",
6872        qualified: "SvPowerFlow",
6873        super_class: None,
6874        concrete: true,
6875        origins: &["SV"],
6876        comment: "State variable for power flow. Load convention is used for flow direction. This means flow out from the TopologicalNode into the equipment is positive.",
6877        attrs: &[
6878            AttrDef { id: "SvPowerFlow.Terminal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Terminal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SV"], comment: "The terminal associated with the power flow state variable." },
6879            AttrDef { id: "SvPowerFlow.p", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SV"], comment: "The active power flow. Load sign convention is used, i.e. positive sign means flow out from a TopologicalNode (bus) into the conducting equipment." },
6880            AttrDef { id: "SvPowerFlow.q", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SV"], comment: "The reactive power flow. Load sign convention is used, i.e. positive sign means flow out from a TopologicalNode (bus) into the conducting equipment." },
6881        ],
6882    },
6883    ClassDef {
6884        ns: "http://iec.ch/TC57/CIM100#",
6885        local: "SvShuntCompensatorSections",
6886        qualified: "SvShuntCompensatorSections",
6887        super_class: None,
6888        concrete: true,
6889        origins: &["SV"],
6890        comment: "State variable for the number of sections in service for a shunt compensator.",
6891        attrs: &[
6892            AttrDef { id: "SvShuntCompensatorSections.ShuntCompensator", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ShuntCompensator", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SV"], comment: "The shunt compensator for which the state applies." },
6893            AttrDef { id: "SvShuntCompensatorSections.sections", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SV"], comment: "The number of sections in service as a continuous variable. The attribute shall be a positive value or zero. To get integer value scale with ShuntCompensator.bPerSection." },
6894        ],
6895    },
6896    ClassDef {
6897        ns: "http://iec.ch/TC57/CIM100#",
6898        local: "SvStatus",
6899        qualified: "SvStatus",
6900        super_class: None,
6901        concrete: true,
6902        origins: &["SV"],
6903        comment: "State variable for status.",
6904        attrs: &[
6905            AttrDef { id: "SvStatus.ConductingEquipment", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ConductingEquipment", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SV"], comment: "The conducting equipment associated with the status state variable." },
6906            AttrDef { id: "SvStatus.inService", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SV"], comment: "The in service status as a result of topology processing. It indicates if the equipment is considered as energized by the power flow. It reflects if the equipment is connected within a solvable island. It does not necessarily reflect whether or not the island was solved by the power flow." },
6907        ],
6908    },
6909    ClassDef {
6910        ns: "http://iec.ch/TC57/CIM100#",
6911        local: "SvSwitch",
6912        qualified: "SvSwitch",
6913        super_class: None,
6914        concrete: true,
6915        origins: &["SV"],
6916        comment: "State variable for switch.",
6917        attrs: &[
6918            AttrDef { id: "SvSwitch.Switch", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Switch", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SV"], comment: "The switch associated with the switch state." },
6919            AttrDef { id: "SvSwitch.open", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SV"], comment: "The attribute tells if the computed state of the switch is considered open." },
6920        ],
6921    },
6922    ClassDef {
6923        ns: "http://iec.ch/TC57/CIM100#",
6924        local: "SvTapStep",
6925        qualified: "SvTapStep",
6926        super_class: None,
6927        concrete: true,
6928        origins: &["SV"],
6929        comment: "State variable for transformer tap step.",
6930        attrs: &[
6931            AttrDef { id: "SvTapStep.TapChanger", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TapChanger", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SV"], comment: "The tap changer associated with the tap step state." },
6932            AttrDef { id: "SvTapStep.position", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SV"], comment: "The floating point tap position. This is not the tap ratio, but rather the tap step position as defined by the related tap changer model and normally is constrained to be within the range of minimum and maximum tap positions." },
6933        ],
6934    },
6935    ClassDef {
6936        ns: "http://iec.ch/TC57/CIM100#",
6937        local: "SvVoltage",
6938        qualified: "SvVoltage",
6939        super_class: None,
6940        concrete: true,
6941        origins: &["SV"],
6942        comment: "State variable for voltage.",
6943        attrs: &[
6944            AttrDef { id: "SvVoltage.TopologicalNode", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TopologicalNode", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SV"], comment: "The topological node associated with the voltage state." },
6945            AttrDef { id: "SvVoltage.angle", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SV"], comment: "The voltage angle of the topological node complex voltage with respect to system reference." },
6946            AttrDef { id: "SvVoltage.v", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SV"], comment: "The voltage magnitude at the topological node. The attribute shall be a positive value." },
6947        ],
6948    },
6949    ClassDef {
6950        ns: "http://iec.ch/TC57/CIM100#",
6951        local: "Switch",
6952        qualified: "Switch",
6953        super_class: Some(37),
6954        concrete: true,
6955        origins: &["EQ", "SSH", "SV"],
6956        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.",
6957        attrs: &[
6958            AttrDef { id: "Switch.SvSwitch", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SvSwitch", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SV"], comment: "The switch state associated with the switch." },
6959            AttrDef { id: "Switch.SwitchSchedules", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SwitchSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "A Switch can be associated with SwitchSchedules." },
6960            AttrDef { id: "Switch.locked", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSH"], 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." },
6961            AttrDef { id: "Switch.normalOpen", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["EQ"], comment: "The attribute is used in cases when no Measurement for the status value is present. If the Switch has a status measurement the Discrete.normalValue is expected to match with the Switch.normalOpen." },
6962            AttrDef { id: "Switch.open", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSH"], comment: "The attribute tells if the switch is considered open when used as input to topology processing." },
6963            AttrDef { id: "Switch.ratedCurrent", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The maximum continuous current carrying capacity in amps governed by the device material and construction. The attribute shall be a positive value." },
6964            AttrDef { id: "Switch.retained", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["EQ"], comment: "Branch is retained in the topological solution. The flow through retained switches will normally be calculated in power flow." },
6965        ],
6966    },
6967    ClassDef {
6968        ns: "http://iec.ch/TC57/CIM100#",
6969        local: "SwitchSchedule",
6970        qualified: "SwitchSchedule",
6971        super_class: Some(325),
6972        concrete: true,
6973        origins: &["EQ"],
6974        comment: "A schedule of switch positions. If RegularTimePoint.value1 is 0, the switch is open. If 1, the switch is closed.",
6975        attrs: &[
6976            AttrDef { id: "SwitchSchedule.Switch", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Switch", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "A SwitchSchedule is associated with a Switch." },
6977        ],
6978    },
6979    ClassDef {
6980        ns: "http://iec.ch/TC57/CIM100#",
6981        local: "SynchronousMachine",
6982        qualified: "SynchronousMachine",
6983        super_class: Some(320),
6984        concrete: true,
6985        origins: &["EQ", "DY", "SC", "SSH"],
6986        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.",
6987        attrs: &[
6988            AttrDef { id: "SynchronousMachine.InitialReactiveCapabilityCurve", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ReactiveCapabilityCurve", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The default reactive capability curve for use by a synchronous machine." },
6989            AttrDef { id: "SynchronousMachine.SynchronousMachineDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SynchronousMachineDynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Synchronous machine dynamics model used to describe dynamic behaviour of this synchronous machine." },
6990            AttrDef { id: "SynchronousMachine.earthing", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SC"], comment: "Indicates whether or not the generator is earthed. Used for short circuit data exchange according to IEC 60909." },
6991            AttrDef { id: "SynchronousMachine.earthingStarPointR", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Generator star point earthing resistance (Re). Used for short circuit data exchange according to IEC 60909." },
6992            AttrDef { id: "SynchronousMachine.earthingStarPointX", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Generator star point earthing reactance (Xe). Used for short circuit data exchange according to IEC 60909." },
6993            AttrDef { id: "SynchronousMachine.ikk", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "CurrentFlow", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Steady-state short-circuit current (in A for the profile) of generator with compound excitation during 3-phase short circuit. - Ikk=0: Generator with no compound excitation. - Ikk<>0: Generator with compound excitation. Ikk is used to calculate the minimum steady-state short-circuit current for generators with compound excitation. (4.6.1.2 in IEC 60909-0:2001). Used only for single fed short circuit on a generator. (4.3.4.2. in IEC 60909-0:2001)." },
6994            AttrDef { id: "SynchronousMachine.maxQ", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Maximum reactive power limit. This is the maximum (nameplate) limit for the unit." },
6995            AttrDef { id: "SynchronousMachine.minQ", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Minimum reactive power limit for the unit." },
6996            AttrDef { id: "SynchronousMachine.mu", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Factor to calculate the breaking current (Section 4.5.2.1 in IEC 60909-0). Used only for single fed short circuit on a generator (Section 4.3.4.2. in IEC 60909-0)." },
6997            AttrDef { id: "SynchronousMachine.operatingMode", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "SynchronousMachineOperatingMode", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["SSH"], comment: "Current mode of operation." },
6998            AttrDef { id: "SynchronousMachine.qPercent", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Part of the coordinated reactive control that comes from this machine. The attribute is used as a participation factor not necessarily summing up to 100% for the participating devices in the control." },
6999            AttrDef { id: "SynchronousMachine.r", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Equivalent resistance (RG) of generator. RG is considered for the calculation of all currents, except for the calculation of the peak current ip. Used for short circuit data exchange according to IEC 60909." },
7000            AttrDef { id: "SynchronousMachine.r0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence resistance of the synchronous machine." },
7001            AttrDef { id: "SynchronousMachine.r2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Negative sequence resistance." },
7002            AttrDef { id: "SynchronousMachine.referencePriority", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["SSH"], 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." },
7003            AttrDef { id: "SynchronousMachine.satDirectSubtransX", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Direct-axis subtransient reactance saturated, also known as Xd'sat." },
7004            AttrDef { id: "SynchronousMachine.satDirectSyncX", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Direct-axes saturated synchronous reactance (xdsat); reciprocal of short-circuit ration. Used for short circuit data exchange, only for single fed short circuit on a generator. (4.3.4.2. in IEC 60909-0:2001)." },
7005            AttrDef { id: "SynchronousMachine.satDirectTransX", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Saturated Direct-axis transient reactance. The attribute is primarily used for short circuit calculations according to ANSI." },
7006            AttrDef { id: "SynchronousMachine.shortCircuitRotorType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "ShortCircuitRotorKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["SC"], comment: "Type of rotor, used by short circuit applications, only for single fed short circuit according to IEC 60909." },
7007            AttrDef { id: "SynchronousMachine.type", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "SynchronousMachineKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["EQ"], comment: "Modes that this synchronous machine can operate in." },
7008            AttrDef { id: "SynchronousMachine.voltageRegulationRange", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Range of generator voltage regulation (PG in IEC 60909-0) used for calculation of the impedance correction factor KG defined in IEC 60909-0. This attribute is used to describe the operating voltage of the generating unit." },
7009            AttrDef { id: "SynchronousMachine.x0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Zero sequence reactance of the synchronous machine." },
7010            AttrDef { id: "SynchronousMachine.x2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "Negative sequence reactance." },
7011        ],
7012    },
7013    ClassDef {
7014        ns: "http://iec.ch/TC57/CIM100#",
7015        local: "SynchronousMachineDetailed",
7016        qualified: "SynchronousMachineDetailed",
7017        super_class: Some(357),
7018        concrete: false,
7019        origins: &["DY"],
7020        comment: "All synchronous machine detailed types use a subset of the same data parameters and input/output variables. The several variations differ in the following ways: - the number of equivalent windings that are included; - the way in which saturation is incorporated into the model; - whether or not “subtransient saliency” (X''q not = X''d) is represented. It is not necessary for each simulation tool to have separate models for each of the model types. The same model can often be used for several types by alternative logic within the model. Also, differences in saturation representation might not result in significant model performance differences so model substitutions are often acceptable.",
7021        attrs: &[
7022            AttrDef { id: "SynchronousMachineDetailed.efdBaseRatio", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Ratio (exciter voltage/generator voltage) of Efd bases of exciter and generator models (> 0). Typical value = 1." },
7023            AttrDef { id: "SynchronousMachineDetailed.ifdBaseType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "IfdBaseKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Excitation base system mode. It should be equal to the value of WLMDV given by the user. WLMDV is the PU ratio between the field voltage and the excitation current: Efd = WLMDV x Ifd. Typical value = ifag." },
7024            AttrDef { id: "SynchronousMachineDetailed.saturationFactor120QAxis", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Quadrature-axis saturation factor at 120% of rated terminal voltage (S12q) (>= SynchonousMachineDetailed.saturationFactorQAxis). Typical value = 0,12." },
7025            AttrDef { id: "SynchronousMachineDetailed.saturationFactorQAxis", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Quadrature-axis saturation factor at rated terminal voltage (S1q) (>= 0). Typical value = 0,02." },
7026        ],
7027    },
7028    ClassDef {
7029        ns: "http://iec.ch/TC57/CIM100#",
7030        local: "SynchronousMachineDynamics",
7031        qualified: "SynchronousMachineDynamics",
7032        super_class: Some(321),
7033        concrete: false,
7034        origins: &["DY"],
7035        comment: "Synchronous machine whose behaviour is described by reference to a standard model expressed in one of the following forms: - simplified (or classical), where a group of generators or motors is not modelled in detail; - detailed, in equivalent circuit form; - detailed, in time constant reactance form; or - by definition of a user-defined model. It is a common practice to represent small generators by a negative load rather than by a dynamic generator model when performing dynamics simulations. In this case, a SynchronousMachine in the static model is not represented by anything in the dynamics model, instead it is treated as an ordinary load. Parameter details: Synchronous machine parameters such as Xl, Xd, Xp etc. are actually used as inductances in the models, but are commonly referred to as reactances since, at nominal frequency, the PU values are the same. However, some references use the symbol L instead of X.",
7036        attrs: &[
7037            AttrDef { id: "SynchronousMachineDynamics.CrossCompoundTurbineGovernorDyanmics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "CrossCompoundTurbineGovernorDynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "The cross-compound turbine governor with which this high-pressure synchronous machine is associated." },
7038            AttrDef { id: "SynchronousMachineDynamics.CrossCompoundTurbineGovernorDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "CrossCompoundTurbineGovernorDynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "The cross-compound turbine governor with which this low-pressure synchronous machine is associated." },
7039            AttrDef { id: "SynchronousMachineDynamics.ExcitationSystemDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ExcitationSystemDynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Excitation system model associated with this synchronous machine model." },
7040            AttrDef { id: "SynchronousMachineDynamics.GenICompensationForGenJ", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "GenICompensationForGenJ", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Compensation of voltage compensator's generator for current flow out of this generator." },
7041            AttrDef { id: "SynchronousMachineDynamics.MechanicalLoadDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "MechanicalLoadDynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Mechanical load model associated with this synchronous machine model." },
7042            AttrDef { id: "SynchronousMachineDynamics.SynchronousMachine", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SynchronousMachine", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Synchronous machine to which synchronous machine dynamics model applies." },
7043            AttrDef { id: "SynchronousMachineDynamics.TurbineGovernorDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TurbineGovernorDynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Turbine-governor model associated with this synchronous machine model. Multiplicity of greater than one is intended to support hydro units that have multiple turbines on one generator." },
7044        ],
7045    },
7046    ClassDef {
7047        ns: "http://iec.ch/TC57/CIM100#",
7048        local: "SynchronousMachineEquivalentCircuit",
7049        qualified: "SynchronousMachineEquivalentCircuit",
7050        super_class: Some(356),
7051        concrete: true,
7052        origins: &["DY"],
7053        comment: "The electrical equations for all variations of the synchronous models are based on the SynchronousEquivalentCircuit diagram for the direct- and quadrature- axes. Equations for conversion between equivalent circuit and time constant reactance forms: Xd = Xad + Xl X’d = Xl + Xad x Xfd / (Xad + Xfd) X”d = Xl + Xad x Xfd x X1d / (Xad x Xfd + Xad x X1d + Xfd x X1d) Xq = Xaq + Xl X’q = Xl + Xaq x X1q / (Xaq + X1q) X”q = Xl + Xaq x X1q x X2q / (Xaq x X1q + Xaq x X2q + X1q x X2q) T’do = (Xad + Xfd) / (omega0 x Rfd) T”do = (Xad x Xfd + Xad x X1d + Xfd x X1d) / (omega0 x R1d x (Xad + Xfd) T’qo = (Xaq + X1q) / (omega0 x R1q) T”qo = (Xaq x X1q + Xaq x X2q + X1q x X2q) / (omega0 x R2q x (Xaq + X1q) Same equations using CIM attributes from SynchronousMachineTimeConstantReactance class on left of '=' and SynchronousMachineEquivalentCircuit class on right (except as noted): xDirectSync = xad + RotatingMachineDynamics.statorLeakageReactance xDirectTrans = RotatingMachineDynamics.statorLeakageReactance + xad x xfd / (xad + xfd) xDirectSubtrans = RotatingMachineDynamics.statorLeakageReactance + xad x xfd x x1d / (xad x xfd + xad x x1d + xfd x x1d) xQuadSync = xaq + RotatingMachineDynamics.statorLeakageReactance xQuadTrans = RotatingMachineDynamics.statorLeakageReactance + xaq x x1q / (xaq+ x1q) xQuadSubtrans = RotatingMachineDynamics.statorLeakageReactance + xaq x x1q x x2q / (xaq x x1q + xaq x x2q + x1q x x2q) tpdo = (xad + xfd) / (2 x pi x nominal frequency x rfd) tppdo = (xad x xfd + xad x x1d + xfd x x1d) / (2 x pi x nominal frequency x r1d x (xad + xfd) tpqo = (xaq + x1q) / (2 x pi x nominal frequency x r1q) tppqo = (xaq x x1q + xaq x x2q + x1q x x2q) / (2 x pi x nominal frequency x r2q x (xaq + x1q) These are only valid for a simplified model where 'Canay' reactance is zero.",
7054        attrs: &[
7055            AttrDef { id: "SynchronousMachineEquivalentCircuit.r1d", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Direct-axis damper 1 winding resistance." },
7056            AttrDef { id: "SynchronousMachineEquivalentCircuit.r1q", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Quadrature-axis damper 1 winding resistance." },
7057            AttrDef { id: "SynchronousMachineEquivalentCircuit.r2q", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Quadrature-axis damper 2 winding resistance." },
7058            AttrDef { id: "SynchronousMachineEquivalentCircuit.rfd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field winding resistance." },
7059            AttrDef { id: "SynchronousMachineEquivalentCircuit.x1d", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Direct-axis damper 1 winding leakage reactance." },
7060            AttrDef { id: "SynchronousMachineEquivalentCircuit.x1q", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Quadrature-axis damper 1 winding leakage reactance." },
7061            AttrDef { id: "SynchronousMachineEquivalentCircuit.x2q", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Quadrature-axis damper 2 winding leakage reactance." },
7062            AttrDef { id: "SynchronousMachineEquivalentCircuit.xad", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Direct-axis mutual reactance." },
7063            AttrDef { id: "SynchronousMachineEquivalentCircuit.xaq", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Quadrature-axis mutual reactance." },
7064            AttrDef { id: "SynchronousMachineEquivalentCircuit.xf1d", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Differential mutual (“Canay”) reactance." },
7065            AttrDef { id: "SynchronousMachineEquivalentCircuit.xfd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Field winding leakage reactance." },
7066        ],
7067    },
7068    ClassDef {
7069        ns: "http://iec.ch/TC57/CIM100#",
7070        local: "SynchronousMachineSimplified",
7071        qualified: "SynchronousMachineSimplified",
7072        super_class: Some(357),
7073        concrete: true,
7074        origins: &["DY"],
7075        comment: "The simplified model represents a synchronous generator as a constant internal voltage behind an impedance (Rs + jXp) as shown in the Simplified diagram. Since internal voltage is held constant, there is no Efd input and any excitation system model will be ignored. There is also no Ifd output. This model should not be used for representing a real generator except, perhaps, small generators whose response is insignificant. The parameters used for the simplified model include: - RotatingMachineDynamics.damping (D); - RotatingMachineDynamics.inertia (H); - RotatingMachineDynamics.statorLeakageReactance (used to exchange jXp for SynchronousMachineSimplified); - RotatingMachineDynamics.statorResistance (Rs).",
7076        attrs: &[],
7077    },
7078    ClassDef {
7079        ns: "http://iec.ch/TC57/CIM100#",
7080        local: "SynchronousMachineTimeConstantReactance",
7081        qualified: "SynchronousMachineTimeConstantReactance",
7082        super_class: Some(356),
7083        concrete: true,
7084        origins: &["DY"],
7085        comment: "Synchronous machine detailed modelling types are defined by the combination of the attributes SynchronousMachineTimeConstantReactance.modelType and SynchronousMachineTimeConstantReactance.rotorType. Parameter details: The “p” in the time-related attribute names is a substitution for a “prime” in the usual parameter notation, e.g. tpdo refers to T'do. The parameters used for models expressed in time constant reactance form include: - RotatingMachine.ratedS (MVAbase); - RotatingMachineDynamics.damping (D); - RotatingMachineDynamics.inertia (H); - RotatingMachineDynamics.saturationFactor (S1); - RotatingMachineDynamics.saturationFactor120 (S12); - RotatingMachineDynamics.statorLeakageReactance (Xl); - RotatingMachineDynamics.statorResistance (Rs); - SynchronousMachineTimeConstantReactance.ks (Ks); - SynchronousMachineDetailed.saturationFactorQAxis (S1q); - SynchronousMachineDetailed.saturationFactor120QAxis (S12q); - SynchronousMachineDetailed.efdBaseRatio; - SynchronousMachineDetailed.ifdBaseType; - .xDirectSync (Xd); - .xDirectTrans (X'd); - .xDirectSubtrans (X''d); - .xQuadSync (Xq); - .xQuadTrans (X'q); - .xQuadSubtrans (X''q); - .tpdo (T'do); - .tppdo (T''do); - .tpqo (T'qo); - .tppqo (T''qo); - .tc.",
7086        attrs: &[
7087            AttrDef { id: "SynchronousMachineTimeConstantReactance.ks", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Saturation loading correction factor (Ks) (>= 0). Used only by type J model. Typical value = 0." },
7088            AttrDef { id: "SynchronousMachineTimeConstantReactance.modelType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "SynchronousMachineModelKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Type of synchronous machine model used in dynamic simulation applications." },
7089            AttrDef { id: "SynchronousMachineTimeConstantReactance.rotorType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "RotorKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Type of rotor on physical machine." },
7090            AttrDef { id: "SynchronousMachineTimeConstantReactance.tc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Damping time constant for “Canay” reactance (>= 0). Typical value = 0." },
7091            AttrDef { id: "SynchronousMachineTimeConstantReactance.tpdo", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Direct-axis transient rotor time constant (T'do) (> SynchronousMachineTimeConstantReactance.tppdo). Typical value = 5." },
7092            AttrDef { id: "SynchronousMachineTimeConstantReactance.tppdo", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Direct-axis subtransient rotor time constant (T''do) (> 0). Typical value = 0,03." },
7093            AttrDef { id: "SynchronousMachineTimeConstantReactance.tppqo", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Quadrature-axis subtransient rotor time constant (T''qo) (> 0). Typical value = 0,03." },
7094            AttrDef { id: "SynchronousMachineTimeConstantReactance.tpqo", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Quadrature-axis transient rotor time constant (T'qo) (> SynchronousMachineTimeConstantReactance.tppqo). Typical value = 0,5." },
7095            AttrDef { id: "SynchronousMachineTimeConstantReactance.xDirectSubtrans", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Direct-axis subtransient reactance (unsaturated) (X''d) (> RotatingMachineDynamics.statorLeakageReactance). Typical value = 0,2." },
7096            AttrDef { id: "SynchronousMachineTimeConstantReactance.xDirectSync", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Direct-axis synchronous reactance (Xd) (>= SynchronousMachineTimeConstantReactance.xDirectTrans). The quotient of a sustained value of that AC component of armature voltage that is produced by the total direct-axis flux due to direct-axis armature current and the value of the AC component of this current, the machine running at rated speed. Typical value = 1,8." },
7097            AttrDef { id: "SynchronousMachineTimeConstantReactance.xDirectTrans", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Direct-axis transient reactance (unsaturated) (X'd) (>= SynchronousMachineTimeConstantReactance.xDirectSubtrans). Typical value = 0,5." },
7098            AttrDef { id: "SynchronousMachineTimeConstantReactance.xQuadSubtrans", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Quadrature-axis subtransient reactance (X''q) (> RotatingMachineDynamics.statorLeakageReactance). Typical value = 0,2." },
7099            AttrDef { id: "SynchronousMachineTimeConstantReactance.xQuadSync", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Quadrature-axis synchronous reactance (Xq) (>= SynchronousMachineTimeConstantReactance.xQuadTrans). The ratio of the component of reactive armature voltage, due to the quadrature-axis component of armature current, to this component of current, under steady state conditions and at rated frequency. Typical value = 1,6." },
7100            AttrDef { id: "SynchronousMachineTimeConstantReactance.xQuadTrans", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Quadrature-axis transient reactance (X'q) (>= SynchronousMachineTimeConstantReactance.xQuadSubtrans). Typical value = 0,3." },
7101        ],
7102    },
7103    ClassDef {
7104        ns: "http://iec.ch/TC57/CIM100#",
7105        local: "SynchronousMachineUserDefined",
7106        qualified: "SynchronousMachineUserDefined",
7107        super_class: Some(357),
7108        concrete: true,
7109        origins: &["DY"],
7110        comment: "Synchronous machine whose dynamic behaviour is described by a user-defined model.",
7111        attrs: &[
7112            AttrDef { id: "SynchronousMachineUserDefined.ProprietaryParameterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ProprietaryParameterDynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Parameter of this proprietary user-defined model." },
7113            AttrDef { id: "SynchronousMachineUserDefined.proprietary", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Behaviour is based on a proprietary model as opposed to a detailed model. true = user-defined model is proprietary with behaviour mutually understood by sending and receiving applications and parameters passed as general attributes false = user-defined model is explicitly defined in terms of control blocks and their input and output signals." },
7114        ],
7115    },
7116    ClassDef {
7117        ns: "http://iec.ch/TC57/CIM100#",
7118        local: "TapChanger",
7119        qualified: "TapChanger",
7120        super_class: Some(282),
7121        concrete: false,
7122        origins: &["EQ", "SSH", "SV"],
7123        comment: "Mechanism for changing transformer winding tap positions.",
7124        attrs: &[
7125            AttrDef { id: "TapChanger.SvTapStep", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SvTapStep", is_list: false, used: false, xsd: "", value_ns: "", origins: &["SV"], comment: "The tap step state associated with the tap changer." },
7126            AttrDef { id: "TapChanger.TapChangerControl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TapChangerControl", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The regulating control scheme in which this tap changer participates." },
7127            AttrDef { id: "TapChanger.TapSchedules", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TapSchedule", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "A TapChanger can have TapSchedules." },
7128            AttrDef { id: "TapChanger.controlEnabled", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SSH"], comment: "Specifies the regulation status of the equipment. True is regulating, false is not regulating." },
7129            AttrDef { id: "TapChanger.highStep", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["EQ"], comment: "Highest possible tap step position, advance from neutral. The attribute shall be greater than lowStep." },
7130            AttrDef { id: "TapChanger.lowStep", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["EQ"], comment: "Lowest possible tap step position, retard from neutral." },
7131            AttrDef { id: "TapChanger.ltcFlag", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["EQ"], comment: "Specifies whether or not a TapChanger has load tap changing capabilities." },
7132            AttrDef { id: "TapChanger.neutralStep", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["EQ"], comment: "The neutral tap step position for this winding. The attribute shall be equal to or greater than lowStep and equal or less than highStep. It is the step position where the voltage is neutralU when the other terminals of the transformer are at the ratedU. If there are other tap changers on the transformer those taps are kept constant at their neutralStep." },
7133            AttrDef { id: "TapChanger.neutralU", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "Voltage at which the winding operates at the neutral tap setting. It is the voltage at the terminal of the PowerTransformerEnd associated with the tap changer when all tap changers on the transformer are at their neutralStep position. Normally neutralU of the tap changer is the same as ratedU of the PowerTransformerEnd, but it can differ in special cases such as when the tapping mechanism is separate from the winding more common on lower voltage transformers. This attribute is not relevant for PhaseTapChangerAsymmetrical, PhaseTapChangerSymmetrical and PhaseTapChangerLinear." },
7134            AttrDef { id: "TapChanger.normalStep", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["EQ"], comment: "The tap step position used in 'normal' network operation for this winding. For a 'Fixed' tap changer indicates the current physical tap setting. The attribute shall be equal to or greater than lowStep and equal to or less than highStep." },
7135            AttrDef { id: "TapChanger.step", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], 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." },
7136        ],
7137    },
7138    ClassDef {
7139        ns: "http://iec.ch/TC57/CIM100#",
7140        local: "TapChangerControl",
7141        qualified: "TapChangerControl",
7142        super_class: Some(316),
7143        concrete: true,
7144        origins: &["EQ", "SSH"],
7145        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.",
7146        attrs: &[
7147            AttrDef { id: "TapChangerControl.TapChanger", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TapChanger", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The tap changers that participates in this regulating tap control scheme." },
7148        ],
7149    },
7150    ClassDef {
7151        ns: "http://iec.ch/TC57/CIM100#",
7152        local: "TapChangerTablePoint",
7153        qualified: "TapChangerTablePoint",
7154        super_class: None,
7155        concrete: false,
7156        origins: &["EQ"],
7157        comment: "Describes each tap step in the tabular curve.",
7158        attrs: &[
7159            AttrDef { id: "TapChangerTablePoint.b", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The magnetizing branch susceptance deviation as a percentage of nominal value. The actual susceptance is calculated as follows: calculated magnetizing susceptance = b(nominal) * (1 + b(from this class)/100). The b(nominal) is defined as the static magnetizing susceptance on the associated power transformer end or ends. This model assumes the star impedance (pi model) form." },
7160            AttrDef { id: "TapChangerTablePoint.g", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The magnetizing branch conductance deviation as a percentage of nominal value. The actual conductance is calculated as follows: calculated magnetizing conductance = g(nominal) * (1 + g(from this class)/100). The g(nominal) is defined as the static magnetizing conductance on the associated power transformer end or ends. This model assumes the star impedance (pi model) form." },
7161            AttrDef { id: "TapChangerTablePoint.r", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The resistance deviation as a percentage of nominal value. The actual reactance is calculated as follows: calculated resistance = r(nominal) * (1 + r(from this class)/100). The r(nominal) is defined as the static resistance on the associated power transformer end or ends. This model assumes the star impedance (pi model) form." },
7162            AttrDef { id: "TapChangerTablePoint.ratio", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The voltage at the tap step divided by rated voltage of the transformer end having the tap changer. Hence this is a value close to one. For example, if the ratio at step 1 is 1.01, and the rated voltage of the transformer end is 110kV, then the voltage obtained by setting the tap changer to step 1 to is 111.1kV." },
7163            AttrDef { id: "TapChangerTablePoint.step", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["EQ"], comment: "The tap step." },
7164            AttrDef { id: "TapChangerTablePoint.x", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The series reactance deviation as a percentage of nominal value. The actual reactance is calculated as follows: calculated reactance = x(nominal) * (1 + x(from this class)/100). The x(nominal) is defined as the static series reactance on the associated power transformer end or ends. This model assumes the star impedance (pi model) form." },
7165        ],
7166    },
7167    ClassDef {
7168        ns: "http://iec.ch/TC57/CIM100#",
7169        local: "TapSchedule",
7170        qualified: "TapSchedule",
7171        super_class: Some(325),
7172        concrete: true,
7173        origins: &["EQ"],
7174        comment: "A pre-established pattern over time for a tap step.",
7175        attrs: &[
7176            AttrDef { id: "TapSchedule.TapChanger", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TapChanger", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "A TapSchedule is associated with a TapChanger." },
7177        ],
7178    },
7179    ClassDef {
7180        ns: "http://iec.ch/TC57/CIM100#",
7181        local: "Terminal",
7182        qualified: "Terminal",
7183        super_class: Some(2),
7184        concrete: true,
7185        origins: &["EQ", "DY", "EQBD", "OP", "SC", "SSH", "SV", "TP"],
7186        comment: "An AC electrical connection point to a piece of conducting equipment. Terminals are connected at physical connection points called connectivity nodes.",
7187        attrs: &[
7188            AttrDef { id: "Terminal.AuxiliaryEquipment", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "AuxiliaryEquipment", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The auxiliary equipment connected to the terminal." },
7189            AttrDef { id: "Terminal.ConductingEquipment", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ConductingEquipment", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ", "DY", "EQBD"], comment: "The conducting equipment of the terminal. Conducting equipment have terminals that may be connected to other conducting equipment terminals via connectivity nodes or topological nodes." },
7190            AttrDef { id: "Terminal.ConnectivityNode", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ConnectivityNode", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ", "EQBD"], comment: "The connectivity node to which this terminal connects with zero impedance." },
7191            AttrDef { id: "Terminal.ConverterDCSides", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ACDCConverter", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "All converters' DC sides linked to this point of common coupling terminal." },
7192            AttrDef { id: "Terminal.HasFirstMutualCoupling", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "MutualCoupling", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SC"], comment: "Mutual couplings associated with the branch as the first branch." },
7193            AttrDef { id: "Terminal.HasSecondMutualCoupling", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "MutualCoupling", is_list: true, used: false, xsd: "", value_ns: "", origins: &["SC"], comment: "Mutual couplings with the branch associated as the first branch." },
7194            AttrDef { id: "Terminal.RegulatingControl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RegulatingControl", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The controls regulating this terminal." },
7195            AttrDef { id: "Terminal.RemoteInputSignal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RemoteInputSignal", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Input signal coming from this terminal." },
7196            AttrDef { id: "Terminal.SvPowerFlow", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SvPowerFlow", is_list: false, used: false, xsd: "", value_ns: "", origins: &["SV"], comment: "The power flow state variable associated with the terminal." },
7197            AttrDef { id: "Terminal.TieFlow", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TieFlow", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "The control area tie flows to which this terminal associates." },
7198            AttrDef { id: "Terminal.TopologicalNode", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TopologicalNode", is_list: false, used: true, xsd: "", value_ns: "", origins: &["TP"], comment: "The topological node associated with the terminal. This can be used as an alternative to the connectivity node path to topological node, thus making it unnecessary to model connectivity nodes in some cases. Note that the if connectivity nodes are in the model, this association would probably not be used as an input specification." },
7199            AttrDef { id: "Terminal.TransformerEnd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TransformerEnd", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "All transformer ends connected at this terminal." },
7200            AttrDef { id: "Terminal.phases", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "PhaseCode", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["EQ"], comment: "Represents the normal network phasing condition. If the attribute is missing, three phases (ABC) shall be assumed, except for terminals of grounding classes (specializations of EarthFaultCompensator, GroundDisconnector, and Ground) which will be assumed to be N. Therefore, phase code ABCN is explicitly declared when needed, e.g. for star point grounding equipment. The phase code on terminals connecting same ConnectivityNode or same TopologicalNode as well as for equipment between two terminals shall be consistent." },
7201        ],
7202    },
7203    ClassDef {
7204        ns: "http://iec.ch/TC57/CIM100#",
7205        local: "TextDiagramObject",
7206        qualified: "TextDiagramObject",
7207        super_class: Some(76),
7208        concrete: true,
7209        origins: &["DL"],
7210        comment: "A diagram object for placing free-text or text derived from an associated domain object.",
7211        attrs: &[
7212            AttrDef { id: "TextDiagramObject.text", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["DL"], comment: "The text that is displayed by this text diagram object." },
7213        ],
7214    },
7215    ClassDef {
7216        ns: "http://iec.ch/TC57/CIM100#",
7217        local: "ThermalGeneratingUnit",
7218        qualified: "ThermalGeneratingUnit",
7219        super_class: Some(169),
7220        concrete: true,
7221        origins: &["EQ", "SSH"],
7222        comment: "A generating unit whose prime mover could be a steam turbine, combustion turbine, or diesel engine.",
7223        attrs: &[
7224            AttrDef { id: "ThermalGeneratingUnit.CAESPlant", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "CAESPlant", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "A thermal generating unit may be a member of a compressed air energy storage plant." },
7225            AttrDef { id: "ThermalGeneratingUnit.CogenerationPlant", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "CogenerationPlant", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "A thermal generating unit may be a member of a cogeneration plant." },
7226            AttrDef { id: "ThermalGeneratingUnit.CombinedCyclePlant", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "CombinedCyclePlant", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "A thermal generating unit may be a member of a combined cycle plant." },
7227            AttrDef { id: "ThermalGeneratingUnit.FossilFuels", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "FossilFuel", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "A thermal generating unit may have one or more fossil fuels." },
7228        ],
7229    },
7230    ClassDef {
7231        ns: "http://iec.ch/TC57/CIM100#",
7232        local: "TieFlow",
7233        qualified: "TieFlow",
7234        super_class: Some(213),
7235        concrete: true,
7236        origins: &["EQ"],
7237        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.",
7238        attrs: &[
7239            AttrDef { id: "TieFlow.ControlArea", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ControlArea", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The control area of the tie flows." },
7240            AttrDef { id: "TieFlow.Terminal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Terminal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "The terminal to which this tie flow belongs." },
7241            AttrDef { id: "TieFlow.positiveFlowIn", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["EQ"], comment: "Specifies the sign of the tie flow associated with a control area. True if positive flow into the terminal (load convention) is also positive flow into the control area. See the description of ControlArea for further explanation of how TieFlow.positiveFlowIn is used." },
7242        ],
7243    },
7244    ClassDef {
7245        ns: "http://iec.ch/TC57/CIM100#",
7246        local: "TopologicalIsland",
7247        qualified: "TopologicalIsland",
7248        super_class: Some(213),
7249        concrete: true,
7250        origins: &["SV"],
7251        comment: "An electrically connected subset of the network. Topological islands can change as the current network state changes, e.g. due to: - disconnect switches or breakers changing state in a SCADA/EMS. - manual creation, change or deletion of topological nodes in a planning tool. Only energised TopologicalNode-s shall be part of the topological island.",
7252        attrs: &[
7253            AttrDef { id: "TopologicalIsland.AngleRefTopologicalNode", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TopologicalNode", is_list: false, used: true, xsd: "", value_ns: "", origins: &["SV"], comment: "The angle reference for the island. Normally there is one TopologicalNode that is selected as the angle reference for each island. Other reference schemes exist, so the association is typically optional." },
7254            AttrDef { id: "TopologicalIsland.TopologicalNodes", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TopologicalNode", is_list: true, used: true, xsd: "", value_ns: "", origins: &["SV"], comment: "A topological node belongs to a topological island." },
7255        ],
7256    },
7257    ClassDef {
7258        ns: "http://iec.ch/TC57/CIM100#",
7259        local: "TopologicalNode",
7260        qualified: "TopologicalNode",
7261        super_class: Some(213),
7262        concrete: true,
7263        origins: &["TP", "SV"],
7264        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'.",
7265        attrs: &[
7266            AttrDef { id: "TopologicalNode.AngleRefTopologicalIsland", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TopologicalIsland", is_list: false, used: false, xsd: "", value_ns: "", origins: &["SV"], comment: "The island for which the node is an angle reference. Normally there is one angle reference node for each island." },
7267            AttrDef { id: "TopologicalNode.BaseVoltage", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "BaseVoltage", is_list: false, used: true, xsd: "", value_ns: "", origins: &["TP"], comment: "The base voltage of the topological node." },
7268            AttrDef { id: "TopologicalNode.ConnectivityNodeContainer", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ConnectivityNodeContainer", is_list: false, used: true, xsd: "", value_ns: "", origins: &["TP"], comment: "The connectivity node container to which the topological node belongs." },
7269            AttrDef { id: "TopologicalNode.ConnectivityNodes", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ConnectivityNode", is_list: true, used: false, xsd: "", value_ns: "", origins: &["TP"], comment: "The connectivity nodes combine together to form this topological node. May depend on the current state of switches in the network." },
7270            AttrDef { id: "TopologicalNode.ReportingGroup", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ReportingGroup", is_list: false, used: true, xsd: "", value_ns: "", origins: &["TP"], comment: "The reporting group to which the topological node belongs." },
7271            AttrDef { id: "TopologicalNode.SvInjection", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SvInjection", is_list: false, used: false, xsd: "", value_ns: "", origins: &["SV"], comment: "The injection flows state variables associated with the topological node." },
7272            AttrDef { id: "TopologicalNode.SvVoltage", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SvVoltage", is_list: false, used: false, xsd: "", value_ns: "", origins: &["SV"], comment: "The state voltage associated with the topological node." },
7273            AttrDef { id: "TopologicalNode.Terminal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Terminal", is_list: true, used: false, xsd: "", value_ns: "", origins: &["TP"], comment: "The terminals associated with the topological node. This can be used as an alternative to the connectivity node path to terminal, thus making it unnecessary to model connectivity nodes in some cases. Note that if connectivity nodes are in the model, this association would probably not be used as an input specification." },
7274            AttrDef { id: "TopologicalNode.TopologicalIsland", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TopologicalIsland", is_list: false, used: false, xsd: "", value_ns: "", origins: &["SV"], comment: "A topological node belongs to a topological island." },
7275        ],
7276    },
7277    ClassDef {
7278        ns: "http://iec.ch/TC57/CIM100#",
7279        local: "TownDetail",
7280        qualified: "TownDetail",
7281        super_class: None,
7282        concrete: false,
7283        origins: &["GL"],
7284        comment: "Town details, in the context of address.",
7285        attrs: &[
7286            AttrDef { id: "TownDetail.code", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "Town code." },
7287            AttrDef { id: "TownDetail.country", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "Name of the country." },
7288            AttrDef { id: "TownDetail.name", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "Town name." },
7289            AttrDef { id: "TownDetail.section", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "Town section. For example, it is common for there to be 36 sections per township." },
7290            AttrDef { id: "TownDetail.stateOrProvince", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "String", is_list: false, used: true, xsd: "string", value_ns: "", origins: &["GL"], comment: "Name of the state or province." },
7291        ],
7292    },
7293    ClassDef {
7294        ns: "http://iec.ch/TC57/CIM100#",
7295        local: "TransformerEnd",
7296        qualified: "TransformerEnd",
7297        super_class: Some(213),
7298        concrete: false,
7299        origins: &["EQ", "SC"],
7300        comment: "A conducting connection point of a power transformer. It corresponds to a physical transformer winding terminal. In earlier CIM versions, the TransformerWinding class served a similar purpose, but this class is more flexible because it associates to terminal but is not a specialization of ConductingEquipment.",
7301        attrs: &[
7302            AttrDef { id: "TransformerEnd.BaseVoltage", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "BaseVoltage", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "Base voltage of the transformer end. This is essential for PU calculation." },
7303            AttrDef { id: "TransformerEnd.PhaseTapChanger", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PhaseTapChanger", is_list: false, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "Phase tap changer associated with this transformer end." },
7304            AttrDef { id: "TransformerEnd.RatioTapChanger", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RatioTapChanger", is_list: false, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "Ratio tap changer associated with this transformer end." },
7305            AttrDef { id: "TransformerEnd.Terminal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Terminal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "Terminal of the power transformer to which this transformer end belongs." },
7306            AttrDef { id: "TransformerEnd.endNumber", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["EQ"], comment: "Number for this transformer end, corresponding to the end's order in the power transformer vector group or phase angle clock number. Highest voltage winding should be 1. Each end within a power transformer should have a unique subsequent end number. Note the transformer end number need not match the terminal sequence number." },
7307            AttrDef { id: "TransformerEnd.grounded", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["SC"], comment: "(for Yn and Zn connections) True if the neutral is solidly grounded." },
7308            AttrDef { id: "TransformerEnd.rground", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "(for Yn and Zn connections) Resistance part of neutral impedance where 'grounded' is true." },
7309            AttrDef { id: "TransformerEnd.xground", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Reactance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SC"], comment: "(for Yn and Zn connections) Reactive part of neutral impedance where 'grounded' is true." },
7310        ],
7311    },
7312    ClassDef {
7313        ns: "http://iec.ch/TC57/CIM100#",
7314        local: "TurbLCFB1",
7315        qualified: "TurbLCFB1",
7316        super_class: Some(377),
7317        concrete: true,
7318        origins: &["DY"],
7319        comment: "Turbine load controller model developed by WECC. This model represents a supervisory turbine load controller that acts to maintain turbine power at a set value by continuous adjustment of the turbine governor speed-load reference. This model is intended to represent slow reset 'outer loop' controllers managing the action of the turbine governor.",
7320        attrs: &[
7321            AttrDef { id: "TurbLCFB1.db", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Controller deadband (db). Typical value = 0." },
7322            AttrDef { id: "TurbLCFB1.emax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum control error (Emax) (see parameter detail 4). Typical value = 0,02." },
7323            AttrDef { id: "TurbLCFB1.fb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Frequency bias gain (Fb). Typical value = 0." },
7324            AttrDef { id: "TurbLCFB1.fbf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Frequency bias flag (Fbf). true = enable frequency bias false = disable frequency bias. Typical value = false." },
7325            AttrDef { id: "TurbLCFB1.irmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum turbine speed/load reference bias (Irmax) (see parameter detail 3). Typical value = 0." },
7326            AttrDef { id: "TurbLCFB1.ki", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Integral gain (Ki). Typical value = 0." },
7327            AttrDef { id: "TurbLCFB1.kp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Proportional gain (Kp). Typical value = 0." },
7328            AttrDef { id: "TurbLCFB1.mwbase", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Base for power values (MWbase) (> 0). Unit = MW." },
7329            AttrDef { id: "TurbLCFB1.pbf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Power controller flag (Pbf). true = enable load controller false = disable load controller. Typical value = false." },
7330            AttrDef { id: "TurbLCFB1.pmwset", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ActivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power controller setpoint (Pmwset) (see parameter detail 1). Unit = MW. Typical value = 0." },
7331            AttrDef { id: "TurbLCFB1.speedReferenceGovernor", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Type of turbine governor reference (Type). true = speed reference governor false = load reference governor. Typical value = true." },
7332            AttrDef { id: "TurbLCFB1.tpelec", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power transducer time constant (Tpelec) (>= 0). Typical value = 0." },
7333        ],
7334    },
7335    ClassDef {
7336        ns: "http://iec.ch/TC57/CIM100#",
7337        local: "TurbineGovernorDynamics",
7338        qualified: "TurbineGovernorDynamics",
7339        super_class: Some(91),
7340        concrete: false,
7341        origins: &["DY"],
7342        comment: "Turbine-governor function block whose behaviour is described by reference to a standard model or by definition of a user-defined model.",
7343        attrs: &[
7344            AttrDef { id: "TurbineGovernorDynamics.AsynchronousMachineDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "AsynchronousMachineDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Asynchronous machine model with which this turbine-governor model is associated. TurbineGovernorDynamics shall have either an association to SynchronousMachineDynamics or to AsynchronousMachineDynamics." },
7345            AttrDef { id: "TurbineGovernorDynamics.SynchronousMachineDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "SynchronousMachineDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Synchronous machine model with which this turbine-governor model is associated. TurbineGovernorDynamics shall have either an association to SynchronousMachineDynamics or to AsynchronousMachineDynamics." },
7346            AttrDef { id: "TurbineGovernorDynamics.TurbineLoadControllerDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TurbineLoadControllerDynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Turbine load controller providing input to this turbine-governor." },
7347        ],
7348    },
7349    ClassDef {
7350        ns: "http://iec.ch/TC57/CIM100#",
7351        local: "TurbineGovernorUserDefined",
7352        qualified: "TurbineGovernorUserDefined",
7353        super_class: Some(375),
7354        concrete: true,
7355        origins: &["DY"],
7356        comment: "Turbine-governor function block whose dynamic behaviour is described by a user-defined model.",
7357        attrs: &[
7358            AttrDef { id: "TurbineGovernorUserDefined.ProprietaryParameterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ProprietaryParameterDynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Parameter of this proprietary user-defined model." },
7359            AttrDef { id: "TurbineGovernorUserDefined.proprietary", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Behaviour is based on a proprietary model as opposed to a detailed model. true = user-defined model is proprietary with behaviour mutually understood by sending and receiving applications and parameters passed as general attributes false = user-defined model is explicitly defined in terms of control blocks and their input and output signals." },
7360        ],
7361    },
7362    ClassDef {
7363        ns: "http://iec.ch/TC57/CIM100#",
7364        local: "TurbineLoadControllerDynamics",
7365        qualified: "TurbineLoadControllerDynamics",
7366        super_class: Some(91),
7367        concrete: false,
7368        origins: &["DY"],
7369        comment: "Turbine load controller function block whose behaviour is described by reference to a standard model or by definition of a user-defined model.",
7370        attrs: &[
7371            AttrDef { id: "TurbineLoadControllerDynamics.TurbineGovernorDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "TurbineGovernorDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Turbine-governor controlled by this turbine load controller." },
7372        ],
7373    },
7374    ClassDef {
7375        ns: "http://iec.ch/TC57/CIM100#",
7376        local: "TurbineLoadControllerUserDefined",
7377        qualified: "TurbineLoadControllerUserDefined",
7378        super_class: Some(377),
7379        concrete: true,
7380        origins: &["DY"],
7381        comment: "Turbine load controller function block whose dynamic behaviour is described by a user-defined model.",
7382        attrs: &[
7383            AttrDef { id: "TurbineLoadControllerUserDefined.ProprietaryParameterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ProprietaryParameterDynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Parameter of this proprietary user-defined model." },
7384            AttrDef { id: "TurbineLoadControllerUserDefined.proprietary", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Behaviour is based on a proprietary model as opposed to a detailed model. true = user-defined model is proprietary with behaviour mutually understood by sending and receiving applications and parameters passed as general attributes false = user-defined model is explicitly defined in terms of control blocks and their input and output signals." },
7385        ],
7386    },
7387    ClassDef {
7388        ns: "http://iec.ch/TC57/CIM100-European#",
7389        local: "URI",
7390        qualified: "URI",
7391        super_class: None,
7392        concrete: false,
7393        origins: &["FH"],
7394        comment: "URI is a string following the rules defined by the W3C/IETF URI Planning Interest Group in a set of RFCs of which one is RFC 3305.",
7395        attrs: &[],
7396    },
7397    ClassDef {
7398        ns: "http://iec.ch/TC57/CIM100#",
7399        local: "UnderexcLim2Simplified",
7400        qualified: "UnderexcLim2Simplified",
7401        super_class: Some(385),
7402        concrete: true,
7403        origins: &["DY"],
7404        comment: "Simplified type UEL2 underexcitation limiter. This model can be derived from UnderexcLimIEEE2. The limit characteristic (look -up table) is a single straight-line, the same as UnderexcLimIEEE2 (see Figure 10.4 (p 32), IEEE 421.5-2005 Section 10.2).",
7405        attrs: &[
7406            AttrDef { id: "UnderexcLim2Simplified.kui", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain Under excitation limiter (KUI). Typical value = 0,1." },
7407            AttrDef { id: "UnderexcLim2Simplified.p0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Segment P initial point (P0). Typical value = 0." },
7408            AttrDef { id: "UnderexcLim2Simplified.p1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Segment P end point (P1). Typical value = 1." },
7409            AttrDef { id: "UnderexcLim2Simplified.q0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Segment Q initial point (Q0). Typical value = -0,31." },
7410            AttrDef { id: "UnderexcLim2Simplified.q1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Segment Q end point (Q1). Typical value = -0,1." },
7411            AttrDef { id: "UnderexcLim2Simplified.vuimax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum error signal (VUIMAX) (> UnderexcLim2Simplified.vuimin). Typical value = 1." },
7412            AttrDef { id: "UnderexcLim2Simplified.vuimin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum error signal (VUIMIN) (< UnderexcLim2Simplified.vuimax). Typical value = 0." },
7413        ],
7414    },
7415    ClassDef {
7416        ns: "http://iec.ch/TC57/CIM100#",
7417        local: "UnderexcLimIEEE1",
7418        qualified: "UnderexcLimIEEE1",
7419        super_class: Some(385),
7420        concrete: true,
7421        origins: &["DY"],
7422        comment: "Type UEL1 model which has a circular limit boundary when plotted in terms of machine reactive power vs. real power output. Reference: IEEE UEL1 421.5-2005, 10.1.",
7423        attrs: &[
7424            AttrDef { id: "UnderexcLimIEEE1.kuc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL centre setting (KUC). Typical value = 1,38." },
7425            AttrDef { id: "UnderexcLimIEEE1.kuf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL excitation system stabilizer gain (KUF). Typical value = 3,3." },
7426            AttrDef { id: "UnderexcLimIEEE1.kui", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL integral gain (KUI). Typical value = 0." },
7427            AttrDef { id: "UnderexcLimIEEE1.kul", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL proportional gain (KUL). Typical value = 100." },
7428            AttrDef { id: "UnderexcLimIEEE1.kur", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL radius setting (KUR). Typical value = 1,95." },
7429            AttrDef { id: "UnderexcLimIEEE1.tu1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL lead time constant (TU1) (>= 0). Typical value = 0." },
7430            AttrDef { id: "UnderexcLimIEEE1.tu2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL lag time constant (TU2) (>= 0). Typical value = 0,05." },
7431            AttrDef { id: "UnderexcLimIEEE1.tu3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL lead time constant (TU3) (>= 0). Typical value = 0." },
7432            AttrDef { id: "UnderexcLimIEEE1.tu4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL lag time constant (TU4) (>= 0). Typical value = 0." },
7433            AttrDef { id: "UnderexcLimIEEE1.vucmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL maximum limit for operating point phasor magnitude (VUCMAX). Typical value = 5,8." },
7434            AttrDef { id: "UnderexcLimIEEE1.vuimax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL integrator output maximum limit (VUIMAX) (> UnderexcLimIEEE1.vuimin)." },
7435            AttrDef { id: "UnderexcLimIEEE1.vuimin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL integrator output minimum limit (VUIMIN) (< UnderexcLimIEEE1.vuimax)." },
7436            AttrDef { id: "UnderexcLimIEEE1.vulmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL output maximum limit (VULMAX) (> UnderexcLimIEEE1.vulmin). Typical value = 18." },
7437            AttrDef { id: "UnderexcLimIEEE1.vulmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL output minimum limit (VULMIN) (< UnderexcLimIEEE1.vulmax). Typical value = -18." },
7438            AttrDef { id: "UnderexcLimIEEE1.vurmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL maximum limit for radius phasor magnitude (VURMAX). Typical value = 5,8." },
7439        ],
7440    },
7441    ClassDef {
7442        ns: "http://iec.ch/TC57/CIM100#",
7443        local: "UnderexcLimIEEE2",
7444        qualified: "UnderexcLimIEEE2",
7445        super_class: Some(385),
7446        concrete: true,
7447        origins: &["DY"],
7448        comment: "Type UEL2 underexcitation limiter which has either a straight-line or multi-segment characteristic when plotted in terms of machine reactive power output vs. real power output. Reference: IEEE UEL2 421.5-2005, 10.2 (limit characteristic lookup table shown in Figure 10.4 (p 32)).",
7449        attrs: &[
7450            AttrDef { id: "UnderexcLimIEEE2.k1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL terminal voltage exponent applied to real power input to UEL limit look-up table (k1). Typical value = 2." },
7451            AttrDef { id: "UnderexcLimIEEE2.k2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL terminal voltage exponent applied to reactive power output from UEL limit look-up table (k2). Typical value = 2." },
7452            AttrDef { id: "UnderexcLimIEEE2.kfb", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain associated with optional integrator feedback input signal to UEL (KFB). Typical value = 0." },
7453            AttrDef { id: "UnderexcLimIEEE2.kuf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL excitation system stabilizer gain (KUF). Typical value = 0." },
7454            AttrDef { id: "UnderexcLimIEEE2.kui", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL integral gain (KUI). Typical value = 0,5." },
7455            AttrDef { id: "UnderexcLimIEEE2.kul", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL proportional gain (KUL). Typical value = 0,8." },
7456            AttrDef { id: "UnderexcLimIEEE2.p0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Real power values for endpoints (P0). Typical value = 0." },
7457            AttrDef { id: "UnderexcLimIEEE2.p1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Real power values for endpoints (P1). Typical value = 0,3." },
7458            AttrDef { id: "UnderexcLimIEEE2.p10", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Real power values for endpoints (P10)." },
7459            AttrDef { id: "UnderexcLimIEEE2.p2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Real power values for endpoints (P2). Typical value = 0,6." },
7460            AttrDef { id: "UnderexcLimIEEE2.p3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Real power values for endpoints (P3). Typical value = 0,9." },
7461            AttrDef { id: "UnderexcLimIEEE2.p4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Real power values for endpoints (P4). Typical value = 1,02." },
7462            AttrDef { id: "UnderexcLimIEEE2.p5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Real power values for endpoints (P5)." },
7463            AttrDef { id: "UnderexcLimIEEE2.p6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Real power values for endpoints (P6)." },
7464            AttrDef { id: "UnderexcLimIEEE2.p7", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Real power values for endpoints (P7)." },
7465            AttrDef { id: "UnderexcLimIEEE2.p8", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Real power values for endpoints (P8)." },
7466            AttrDef { id: "UnderexcLimIEEE2.p9", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Real power values for endpoints (P9)." },
7467            AttrDef { id: "UnderexcLimIEEE2.q0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactive power values for endpoints (Q0). Typical value = -0,31." },
7468            AttrDef { id: "UnderexcLimIEEE2.q1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactive power values for endpoints (Q1). Typical value = -0,31." },
7469            AttrDef { id: "UnderexcLimIEEE2.q10", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactive power values for endpoints (Q10)." },
7470            AttrDef { id: "UnderexcLimIEEE2.q2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactive power values for endpoints (Q2). Typical value = -0,28." },
7471            AttrDef { id: "UnderexcLimIEEE2.q3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactive power values for endpoints (Q3). Typical value = -0,21." },
7472            AttrDef { id: "UnderexcLimIEEE2.q4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactive power values for endpoints (Q4). Typical value = 0." },
7473            AttrDef { id: "UnderexcLimIEEE2.q5", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactive power values for endpoints (Q5)." },
7474            AttrDef { id: "UnderexcLimIEEE2.q6", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactive power values for endpoints (Q6)." },
7475            AttrDef { id: "UnderexcLimIEEE2.q7", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactive power values for endpoints (Q7)." },
7476            AttrDef { id: "UnderexcLimIEEE2.q8", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactive power values for endpoints (Q8)." },
7477            AttrDef { id: "UnderexcLimIEEE2.q9", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactive power values for endpoints (Q9)." },
7478            AttrDef { id: "UnderexcLimIEEE2.tu1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL lead time constant (TU1) (>= 0). Typical value = 0." },
7479            AttrDef { id: "UnderexcLimIEEE2.tu2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL lag time constant (TU2) (>= 0). Typical value = 0." },
7480            AttrDef { id: "UnderexcLimIEEE2.tu3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL lead time constant (TU3) (>= 0). Typical value = 0." },
7481            AttrDef { id: "UnderexcLimIEEE2.tu4", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL lag time constant (TU4) (>= 0). Typical value = 0." },
7482            AttrDef { id: "UnderexcLimIEEE2.tul", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant associated with optional integrator feedback input signal to UEL (TUL) (>= 0). Typical value = 0." },
7483            AttrDef { id: "UnderexcLimIEEE2.tup", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Real power filter time constant (TUP) (>= 0). Typical value = 5." },
7484            AttrDef { id: "UnderexcLimIEEE2.tuq", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactive power filter time constant (TUQ) (>= 0). Typical value = 0." },
7485            AttrDef { id: "UnderexcLimIEEE2.tuv", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage filter time constant (TUV) (>= 0). Typical value = 5." },
7486            AttrDef { id: "UnderexcLimIEEE2.vuimax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL integrator output maximum limit (VUIMAX) (> UnderexcLimIEEE2.vuimin). Typical value = 0,25." },
7487            AttrDef { id: "UnderexcLimIEEE2.vuimin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL integrator output minimum limit (VUIMIN) (< UnderexcLimIEEE2.vuimax). Typical value = 0." },
7488            AttrDef { id: "UnderexcLimIEEE2.vulmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL output maximum limit (VULMAX) (> UnderexcLimIEEE2.vulmin). Typical value = 0,25." },
7489            AttrDef { id: "UnderexcLimIEEE2.vulmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "UEL output minimum limit (VULMIN) (< UnderexcLimIEEE2.vulmax). Typical value = 0." },
7490        ],
7491    },
7492    ClassDef {
7493        ns: "http://iec.ch/TC57/CIM100#",
7494        local: "UnderexcLimX1",
7495        qualified: "UnderexcLimX1",
7496        super_class: Some(385),
7497        concrete: true,
7498        origins: &["DY"],
7499        comment: "Allis-Chalmers minimum excitation limiter.",
7500        attrs: &[
7501            AttrDef { id: "UnderexcLimX1.k", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum excitation limit slope (K) (> 0)." },
7502            AttrDef { id: "UnderexcLimX1.kf2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Differential gain (KF2)." },
7503            AttrDef { id: "UnderexcLimX1.km", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum excitation limit gain (KM)." },
7504            AttrDef { id: "UnderexcLimX1.melmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum excitation limit value (MELMAX)." },
7505            AttrDef { id: "UnderexcLimX1.tf2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Differential time constant (TF2) (>= 0)." },
7506            AttrDef { id: "UnderexcLimX1.tm", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum excitation limit time constant (TM) (>= 0)." },
7507        ],
7508    },
7509    ClassDef {
7510        ns: "http://iec.ch/TC57/CIM100#",
7511        local: "UnderexcLimX2",
7512        qualified: "UnderexcLimX2",
7513        super_class: Some(385),
7514        concrete: true,
7515        origins: &["DY"],
7516        comment: "Westinghouse minimum excitation limiter.",
7517        attrs: &[
7518            AttrDef { id: "UnderexcLimX2.kf2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Differential gain (KF2)." },
7519            AttrDef { id: "UnderexcLimX2.km", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum excitation limit gain (KM)." },
7520            AttrDef { id: "UnderexcLimX2.melmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum excitation limit value (MELMAX)." },
7521            AttrDef { id: "UnderexcLimX2.qo", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation centre setting (QO)." },
7522            AttrDef { id: "UnderexcLimX2.r", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Excitation radius (R)." },
7523            AttrDef { id: "UnderexcLimX2.tf2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Differential time constant (TF2) (>= 0)." },
7524            AttrDef { id: "UnderexcLimX2.tm", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum excitation limit time constant (TM) (>= 0)." },
7525        ],
7526    },
7527    ClassDef {
7528        ns: "http://iec.ch/TC57/CIM100#",
7529        local: "UnderexcitationLimiterDynamics",
7530        qualified: "UnderexcitationLimiterDynamics",
7531        super_class: Some(91),
7532        concrete: false,
7533        origins: &["DY"],
7534        comment: "Underexcitation limiter function block whose behaviour is described by reference to a standard model or by definition of a user-defined model.",
7535        attrs: &[
7536            AttrDef { id: "UnderexcitationLimiterDynamics.ExcitationSystemDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ExcitationSystemDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Excitation system model with which this underexcitation limiter model is associated." },
7537            AttrDef { id: "UnderexcitationLimiterDynamics.RemoteInputSignal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RemoteInputSignal", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Remote input signal used by this underexcitation limiter model." },
7538        ],
7539    },
7540    ClassDef {
7541        ns: "http://iec.ch/TC57/CIM100#",
7542        local: "UnderexcitationLimiterUserDefined",
7543        qualified: "UnderexcitationLimiterUserDefined",
7544        super_class: Some(385),
7545        concrete: true,
7546        origins: &["DY"],
7547        comment: "Underexcitation limiter function block whose dynamic behaviour is described by a user-defined model.",
7548        attrs: &[
7549            AttrDef { id: "UnderexcitationLimiterUserDefined.ProprietaryParameterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ProprietaryParameterDynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Parameter of this proprietary user-defined model." },
7550            AttrDef { id: "UnderexcitationLimiterUserDefined.proprietary", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Behaviour is based on a proprietary model as opposed to a detailed model. true = user-defined model is proprietary with behaviour mutually understood by sending and receiving applications and parameters passed as general attributes false = user-defined model is explicitly defined in terms of control blocks and their input and output signals." },
7551        ],
7552    },
7553    ClassDef {
7554        ns: "http://iec.ch/TC57/CIM100#",
7555        local: "VAdjIEEE",
7556        qualified: "VAdjIEEE",
7557        super_class: Some(395),
7558        concrete: true,
7559        origins: &["DY"],
7560        comment: "IEEE voltage adjuster which is used to represent the voltage adjuster in either a power factor or VAr control system. Reference: IEEE 421.5-2005, 11.1.",
7561        attrs: &[
7562            AttrDef { id: "VAdjIEEE.adjslew", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rate at which output of adjuster changes (ADJ_SLEW). Unit = s / PU. Typical value = 300." },
7563            AttrDef { id: "VAdjIEEE.taoff", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time that adjuster pulses are off (TAOFF) (>= 0). Typical value = 0,5." },
7564            AttrDef { id: "VAdjIEEE.taon", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time that adjuster pulses are on (TAON) (>= 0). Typical value = 0,1." },
7565            AttrDef { id: "VAdjIEEE.vadjf", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Set high to provide a continuous raise or lower (VADJF)." },
7566            AttrDef { id: "VAdjIEEE.vadjmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum output of the adjuster (VADJMAX) (> VAdjIEEE.vadjmin). Typical value = 1,1." },
7567            AttrDef { id: "VAdjIEEE.vadjmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum output of the adjuster (VADJMIN) (< VAdjIEEE.vadjmax). Typical value = 0,9." },
7568        ],
7569    },
7570    ClassDef {
7571        ns: "http://iec.ch/TC57/CIM100#",
7572        local: "VCompIEEEType1",
7573        qualified: "VCompIEEEType1",
7574        super_class: Some(397),
7575        concrete: true,
7576        origins: &["DY"],
7577        comment: "Terminal voltage transducer and load compensator as defined in IEEE 421.5-2005, 4. This model is common to all excitation system models described in the IEEE Standard. Parameter details: If Rc and Xc are set to zero, the load compensation is not employed and the behaviour is as a simple sensing circuit. If all parameters (Rc, Xc and Tr) are set to zero, the standard model VCompIEEEType1 is bypassed. Reference: IEEE 421.5-2005 4.",
7578        attrs: &[
7579            AttrDef { id: "VCompIEEEType1.rc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Resistive component of compensation of a generator (Rc) (>= 0)." },
7580            AttrDef { id: "VCompIEEEType1.tr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant which is used for the combined voltage sensing and compensation signal (Tr) (>= 0)." },
7581            AttrDef { id: "VCompIEEEType1.xc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactive component of compensation of a generator (Xc) (>= 0)." },
7582        ],
7583    },
7584    ClassDef {
7585        ns: "http://iec.ch/TC57/CIM100#",
7586        local: "VCompIEEEType2",
7587        qualified: "VCompIEEEType2",
7588        super_class: Some(397),
7589        concrete: true,
7590        origins: &["DY"],
7591        comment: "Terminal voltage transducer and load compensator as defined in IEEE 421.5-2005, 4. This model is designed to cover the following types of compensation: reactive droop; transformer-drop or line-drop compensation; reactive differential compensation known also as cross-current compensation. Reference: IEEE 421.5-2005, 4.",
7592        attrs: &[
7593            AttrDef { id: "VCompIEEEType2.GenICompensationForGenJ", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "GenICompensationForGenJ", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Compensation of this voltage compensator's generator for current flow out of another generator." },
7594            AttrDef { id: "VCompIEEEType2.tr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant which is used for the combined voltage sensing and compensation signal (Tr) (>= 0)." },
7595        ],
7596    },
7597    ClassDef {
7598        ns: "http://iec.ch/TC57/CIM100#",
7599        local: "VSCDynamics",
7600        qualified: "VSCDynamics",
7601        super_class: Some(208),
7602        concrete: false,
7603        origins: &["DY"],
7604        comment: "VSC function block whose behaviour is described by reference to a standard model or by definition of a user-defined model.",
7605        attrs: &[
7606            AttrDef { id: "VSCDynamics.VsConverter", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "VsConverter", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Voltage source converter to which voltage source converter dynamics model applies." },
7607        ],
7608    },
7609    ClassDef {
7610        ns: "http://iec.ch/TC57/CIM100#",
7611        local: "VSCUserDefined",
7612        qualified: "VSCUserDefined",
7613        super_class: Some(390),
7614        concrete: true,
7615        origins: &["DY"],
7616        comment: "Voltage source converter (VSC) function block whose dynamic behaviour is described by a user-defined model.",
7617        attrs: &[
7618            AttrDef { id: "VSCUserDefined.ProprietaryParameterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ProprietaryParameterDynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Parameter of this proprietary user-defined model." },
7619            AttrDef { id: "VSCUserDefined.proprietary", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Behaviour is based on a proprietary model as opposed to a detailed model. true = user-defined model is proprietary with behaviour mutually understood by sending and receiving applications and parameters passed as general attributes false = user-defined model is explicitly defined in terms of control blocks and their input and output signals." },
7620        ],
7621    },
7622    ClassDef {
7623        ns: "http://iec.ch/TC57/CIM100#",
7624        local: "ValueAliasSet",
7625        qualified: "ValueAliasSet",
7626        super_class: Some(213),
7627        concrete: true,
7628        origins: &["OP"],
7629        comment: "Describes the translation of a set of values into a name and is intendend to facilitate custom translations. Each ValueAliasSet has a name, description etc. A specific Measurement may represent a discrete state like Open, Closed, Intermediate etc. This requires a translation from the MeasurementValue.value number to a string, e.g. 0->'Invalid', 1->'Open', 2->'Closed', 3->'Intermediate'. Each ValueToAlias member in ValueAliasSet.Value describe a mapping for one particular value to a name.",
7630        attrs: &[
7631            AttrDef { id: "ValueAliasSet.Commands", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Command", is_list: true, used: false, xsd: "", value_ns: "", origins: &["OP"], comment: "The Commands using the set for translation." },
7632            AttrDef { id: "ValueAliasSet.Discretes", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Discrete", is_list: true, used: false, xsd: "", value_ns: "", origins: &["OP"], comment: "The Measurements using the set for translation." },
7633            AttrDef { id: "ValueAliasSet.RaiseLowerCommands", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RaiseLowerCommand", is_list: true, used: false, xsd: "", value_ns: "", origins: &["OP"], comment: "The Commands using the set for translation." },
7634            AttrDef { id: "ValueAliasSet.Values", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ValueToAlias", is_list: true, used: false, xsd: "", value_ns: "", origins: &["OP"], comment: "The ValueToAlias mappings included in the set." },
7635        ],
7636    },
7637    ClassDef {
7638        ns: "http://iec.ch/TC57/CIM100#",
7639        local: "ValueToAlias",
7640        qualified: "ValueToAlias",
7641        super_class: Some(213),
7642        concrete: true,
7643        origins: &["OP"],
7644        comment: "Describes the translation of one particular value into a name, e.g. 1 as 'Open'.",
7645        attrs: &[
7646            AttrDef { id: "ValueToAlias.ValueAliasSet", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ValueAliasSet", is_list: false, used: true, xsd: "", value_ns: "", origins: &["OP"], comment: "The ValueAliasSet having the ValueToAlias mappings." },
7647            AttrDef { id: "ValueToAlias.value", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["OP"], comment: "The value that is mapped." },
7648        ],
7649    },
7650    ClassDef {
7651        ns: "http://iec.ch/TC57/CIM100#",
7652        local: "VisibilityLayer",
7653        qualified: "VisibilityLayer",
7654        super_class: Some(213),
7655        concrete: true,
7656        origins: &["DL"],
7657        comment: "Layers are typically used for grouping diagram objects according to themes and scales. Themes are used to display or hide certain information (e.g., lakes, borders), while scales are used for hiding or displaying information depending on the current zoom level (hide text when it is too small to be read, or when it exceeds the screen size). This is also called de-cluttering. CIM based graphics exchange supports an m:n relationship between diagram objects and layers. The importing system shall convert an m:n case into an appropriate 1:n representation if the importing system does not support m:n.",
7658        attrs: &[
7659            AttrDef { id: "VisibilityLayer.VisibleObjects", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "DiagramObject", is_list: true, used: true, xsd: "", value_ns: "", origins: &["DL"], comment: "A visibility layer can contain one or more diagram objects." },
7660            AttrDef { id: "VisibilityLayer.drawingOrder", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["DL"], comment: "The drawing order for this layer. The higher the number, the later the layer and the objects within it are rendered." },
7661        ],
7662    },
7663    ClassDef {
7664        ns: "http://iec.ch/TC57/CIM100#",
7665        local: "VoltageAdjusterDynamics",
7666        qualified: "VoltageAdjusterDynamics",
7667        super_class: Some(91),
7668        concrete: false,
7669        origins: &["DY"],
7670        comment: "Voltage adjuster function block whose behaviour is described by reference to a standard model or by definition of a user-defined model.",
7671        attrs: &[
7672            AttrDef { id: "VoltageAdjusterDynamics.PFVArControllerType1Dynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PFVArControllerType1Dynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Power factor or VAr controller type 1 model with which this voltage adjuster is associated." },
7673        ],
7674    },
7675    ClassDef {
7676        ns: "http://iec.ch/TC57/CIM100#",
7677        local: "VoltageAdjusterUserDefined",
7678        qualified: "VoltageAdjusterUserDefined",
7679        super_class: Some(395),
7680        concrete: true,
7681        origins: &["DY"],
7682        comment: "Voltage adjuster function block whose dynamic behaviour is described by a user-defined model.",
7683        attrs: &[
7684            AttrDef { id: "VoltageAdjusterUserDefined.ProprietaryParameterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ProprietaryParameterDynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Parameter of this proprietary user-defined model." },
7685            AttrDef { id: "VoltageAdjusterUserDefined.proprietary", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Behaviour is based on a proprietary model as opposed to a detailed model. true = user-defined model is proprietary with behaviour mutually understood by sending and receiving applications and parameters passed as general attributes false = user-defined model is explicitly defined in terms of control blocks and their input and output signals." },
7686        ],
7687    },
7688    ClassDef {
7689        ns: "http://iec.ch/TC57/CIM100#",
7690        local: "VoltageCompensatorDynamics",
7691        qualified: "VoltageCompensatorDynamics",
7692        super_class: Some(91),
7693        concrete: false,
7694        origins: &["DY"],
7695        comment: "Voltage compensator function block whose behaviour is described by reference to a standard model or by definition of a user-defined model.",
7696        attrs: &[
7697            AttrDef { id: "VoltageCompensatorDynamics.ExcitationSystemDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ExcitationSystemDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Excitation system model with which this voltage compensator is associated." },
7698            AttrDef { id: "VoltageCompensatorDynamics.RemoteInputSignal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RemoteInputSignal", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Remote input signal used by this voltage compensator model." },
7699        ],
7700    },
7701    ClassDef {
7702        ns: "http://iec.ch/TC57/CIM100#",
7703        local: "VoltageCompensatorUserDefined",
7704        qualified: "VoltageCompensatorUserDefined",
7705        super_class: Some(397),
7706        concrete: true,
7707        origins: &["DY"],
7708        comment: "Voltage compensator function block whose dynamic behaviour is described by a user-defined model.",
7709        attrs: &[
7710            AttrDef { id: "VoltageCompensatorUserDefined.ProprietaryParameterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ProprietaryParameterDynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Parameter of this proprietary user-defined model." },
7711            AttrDef { id: "VoltageCompensatorUserDefined.proprietary", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Behaviour is based on a proprietary model as opposed to a detailed model. true = user-defined model is proprietary with behaviour mutually understood by sending and receiving applications and parameters passed as general attributes false = user-defined model is explicitly defined in terms of control blocks and their input and output signals." },
7712        ],
7713    },
7714    ClassDef {
7715        ns: "http://iec.ch/TC57/CIM100#",
7716        local: "VoltageLevel",
7717        qualified: "VoltageLevel",
7718        super_class: Some(99),
7719        concrete: true,
7720        origins: &["EQ", "EQBD"],
7721        comment: "A collection of equipment at one common system voltage forming a switchgear. The equipment typically consists of breakers, busbars, instrumentation, control, regulation and protection devices as well as assemblies of all these.",
7722        attrs: &[
7723            AttrDef { id: "VoltageLevel.BaseVoltage", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "BaseVoltage", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ", "EQBD"], comment: "The base voltage used for all equipment within the voltage level." },
7724            AttrDef { id: "VoltageLevel.Bays", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Bay", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ", "EQBD"], comment: "The bays within this voltage level." },
7725            AttrDef { id: "VoltageLevel.Substation", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "Substation", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ", "EQBD"], comment: "The substation of the voltage level." },
7726            AttrDef { id: "VoltageLevel.highVoltageLimit", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ", "EQBD"], comment: "The bus bar's high voltage limit. The limit applies to all equipment and nodes contained in a given VoltageLevel. It is not required that it is exchanged in pair with lowVoltageLimit. It is preferable to use operational VoltageLimit, which prevails, if present." },
7727            AttrDef { id: "VoltageLevel.lowVoltageLimit", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ", "EQBD"], comment: "The bus bar's low voltage limit. The limit applies to all equipment and nodes contained in a given VoltageLevel. It is not required that it is exchanged in pair with highVoltageLimit. It is preferable to use operational VoltageLimit, which prevails, if present." },
7728        ],
7729    },
7730    ClassDef {
7731        ns: "http://iec.ch/TC57/CIM100#",
7732        local: "VoltageLimit",
7733        qualified: "VoltageLimit",
7734        super_class: Some(248),
7735        concrete: true,
7736        origins: &["EQ", "SSH"],
7737        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.",
7738        attrs: &[
7739            AttrDef { id: "VoltageLimit.normalValue", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], comment: "The normal 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." },
7740            AttrDef { id: "VoltageLimit.value", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], 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." },
7741        ],
7742    },
7743    ClassDef {
7744        ns: "http://iec.ch/TC57/CIM100#",
7745        local: "VsCapabilityCurve",
7746        qualified: "VsCapabilityCurve",
7747        super_class: Some(53),
7748        concrete: true,
7749        origins: &["EQ"],
7750        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.",
7751        attrs: &[
7752            AttrDef { id: "VsCapabilityCurve.VsConverterDCSides", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "VsConverter", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "All converters with this capability curve." },
7753        ],
7754    },
7755    ClassDef {
7756        ns: "http://iec.ch/TC57/CIM100#",
7757        local: "VsConverter",
7758        qualified: "VsConverter",
7759        super_class: Some(0),
7760        concrete: true,
7761        origins: &["EQ", "DY", "SSH", "SV"],
7762        comment: "DC side of the voltage source converter (VSC).",
7763        attrs: &[
7764            AttrDef { id: "VsConverter.CapabilityCurve", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "VsCapabilityCurve", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "Capability curve of this converter." },
7765            AttrDef { id: "VsConverter.VSCDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "VSCDynamics", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Voltage source converter dynamics model used to describe dynamic behaviour of this converter." },
7766            AttrDef { id: "VsConverter.delta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SV"], comment: "Angle between VsConverter.uv and ACDCConverter.uc. It is converter’s state variable used in power flow. The attribute shall be a positive value or zero." },
7767            AttrDef { id: "VsConverter.droop", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "Droop constant. The pu value is obtained as D [kV/MW] x Sb / Ubdc. The attribute shall be a positive value." },
7768            AttrDef { id: "VsConverter.droopCompensation", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Resistance", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "Compensation constant. Used to compensate for voltage drop when controlling voltage at a distant bus. The attribute shall be a positive value." },
7769            AttrDef { id: "VsConverter.maxModulationIndex", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["EQ"], 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." },
7770            AttrDef { id: "VsConverter.pPccControl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "VsPpccControlKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["SSH"], comment: "Kind of control of real power and/or DC voltage." },
7771            AttrDef { id: "VsConverter.qPccControl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "VsQpccControlKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["SSH"], comment: "Kind of reactive power control." },
7772            AttrDef { id: "VsConverter.qShare", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PerCent", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "Reactive power sharing factor among parallel converters on Uac control. The attribute shall be a positive value or zero." },
7773            AttrDef { id: "VsConverter.targetPWMfactor", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "Magnitude of pulse-modulation factor. The attribute shall be a positive value." },
7774            AttrDef { id: "VsConverter.targetPhasePcc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "Phase target at AC side, at point of common coupling. The attribute shall be a positive value." },
7775            AttrDef { id: "VsConverter.targetPowerFactorPcc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "Power factor target at the AC side, at point of common coupling. The attribute shall be a positive value." },
7776            AttrDef { id: "VsConverter.targetQpcc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "ReactivePower", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], 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." },
7777            AttrDef { id: "VsConverter.targetUpcc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SSH"], comment: "Voltage target in AC grid, at point of common coupling. The attribute shall be a positive value." },
7778            AttrDef { id: "VsConverter.uv", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Voltage", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["SV"], comment: "Line-to-line voltage on the valve side of the converter transformer. It is converter’s state variable, result from power flow. The attribute shall be a positive value." },
7779        ],
7780    },
7781    ClassDef {
7782        ns: "http://iec.ch/TC57/CIM100#",
7783        local: "WaveTrap",
7784        qualified: "WaveTrap",
7785        super_class: Some(21),
7786        concrete: true,
7787        origins: &["EQ"],
7788        comment: "Line traps are devices that impede high frequency power line carrier signals yet present a negligible impedance at the main power frequency.",
7789        attrs: &[],
7790    },
7791    ClassDef {
7792        ns: "http://iec.ch/TC57/CIM100#",
7793        local: "WindAeroConstIEC",
7794        qualified: "WindAeroConstIEC",
7795        super_class: Some(213),
7796        concrete: true,
7797        origins: &["DY"],
7798        comment: "Constant aerodynamic torque model which assumes that the aerodynamic torque is constant. Reference: IEC 61400-27-1:2015, 5.6.1.1.",
7799        attrs: &[
7800            AttrDef { id: "WindAeroConstIEC.WindGenTurbineType1aIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindGenTurbineType1aIEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind turbine type 1A model with which this wind aerodynamic model is associated." },
7801        ],
7802    },
7803    ClassDef {
7804        ns: "http://iec.ch/TC57/CIM100#",
7805        local: "WindAeroOneDimIEC",
7806        qualified: "WindAeroOneDimIEC",
7807        super_class: Some(213),
7808        concrete: true,
7809        origins: &["DY"],
7810        comment: "One-dimensional aerodynamic model. Reference: IEC 61400-27-1:2015, 5.6.1.2.",
7811        attrs: &[
7812            AttrDef { id: "WindAeroOneDimIEC.WindTurbineType3IEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType3IEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind turbine type 3 model with which this wind aerodynamic model is associated." },
7813            AttrDef { id: "WindAeroOneDimIEC.ka", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Aerodynamic gain (ka). It is a type-dependent parameter." },
7814            AttrDef { id: "WindAeroOneDimIEC.thetaomega", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Initial pitch angle (thetaomega0). It is a case-dependent parameter." },
7815        ],
7816    },
7817    ClassDef {
7818        ns: "http://iec.ch/TC57/CIM100#",
7819        local: "WindAeroTwoDimIEC",
7820        qualified: "WindAeroTwoDimIEC",
7821        super_class: Some(213),
7822        concrete: true,
7823        origins: &["DY"],
7824        comment: "Two-dimensional aerodynamic model. Reference: IEC 61400-27-1:2015, 5.6.1.3.",
7825        attrs: &[
7826            AttrDef { id: "WindAeroTwoDimIEC.WindTurbineType3IEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType3IEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind turbine type 3 model with which this wind aerodynamic model is associated." },
7827            AttrDef { id: "WindAeroTwoDimIEC.dpomega", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Partial derivative of aerodynamic power with respect to changes in WTR speed (dpomega). It is a type-dependent parameter." },
7828            AttrDef { id: "WindAeroTwoDimIEC.dptheta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Partial derivative of aerodynamic power with respect to changes in pitch angle (dptheta). It is a type-dependent parameter." },
7829            AttrDef { id: "WindAeroTwoDimIEC.dpv1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Partial derivative (dpv1). It is a type-dependent parameter." },
7830            AttrDef { id: "WindAeroTwoDimIEC.omegazero", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rotor speed if the wind turbine is not derated (omega0). It is a type-dependent parameter." },
7831            AttrDef { id: "WindAeroTwoDimIEC.pavail", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Available aerodynamic power (pavail). It is a case-dependent parameter." },
7832            AttrDef { id: "WindAeroTwoDimIEC.thetav2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Blade angle at twice rated wind speed (thetav2). It is a type-dependent parameter." },
7833            AttrDef { id: "WindAeroTwoDimIEC.thetazero", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Pitch angle if the wind turbine is not derated (theta0). It is a case-dependent parameter." },
7834        ],
7835    },
7836    ClassDef {
7837        ns: "http://iec.ch/TC57/CIM100#",
7838        local: "WindContCurrLimIEC",
7839        qualified: "WindContCurrLimIEC",
7840        super_class: Some(213),
7841        concrete: true,
7842        origins: &["DY"],
7843        comment: "Current limitation model. The current limitation model combines the physical limits and the control limits. Reference: IEC 61400-27-1:2015, 5.6.5.8.",
7844        attrs: &[
7845            AttrDef { id: "WindContCurrLimIEC.WindDynamicsLookupTable", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindDynamicsLookupTable", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "The wind dynamics lookup table associated with this current control limitation model." },
7846            AttrDef { id: "WindContCurrLimIEC.WindTurbineType3or4IEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType3or4IEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind turbine type 3 or type 4 model with which this wind control current limitation model is associated." },
7847            AttrDef { id: "WindContCurrLimIEC.imax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum continuous current at the wind turbine terminals (imax). It is a type-dependent parameter." },
7848            AttrDef { id: "WindContCurrLimIEC.imaxdip", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum current during voltage dip at the wind turbine terminals (imaxdip). It is a project-dependent parameter." },
7849            AttrDef { id: "WindContCurrLimIEC.kpqu", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Partial derivative of reactive current limit (Kpqu) versus voltage. It is a type-dependent parameter." },
7850            AttrDef { id: "WindContCurrLimIEC.mdfslim", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Limitation of type 3 stator current (MDFSLim). MDFSLim = 1 for wind turbines type 4. It is a type-dependent parameter. false= total current limitation (0 in the IEC model) true=stator current limitation (1 in the IEC model)." },
7851            AttrDef { id: "WindContCurrLimIEC.mqpri", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Prioritisation of Q control during UVRT (Mqpri). It is a project-dependent parameter. true = reactive power priority (1 in the IEC model) false = active power priority (0 in the IEC model)." },
7852            AttrDef { id: "WindContCurrLimIEC.tufiltcl", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage measurement filter time constant (Tufiltcl) (>= 0). It is a type-dependent parameter." },
7853            AttrDef { id: "WindContCurrLimIEC.upqumax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Wind turbine voltage in the operation point where zero reactive current can be delivered (upqumax). It is a type-dependent parameter." },
7854        ],
7855    },
7856    ClassDef {
7857        ns: "http://iec.ch/TC57/CIM100#",
7858        local: "WindContPType3IEC",
7859        qualified: "WindContPType3IEC",
7860        super_class: Some(213),
7861        concrete: true,
7862        origins: &["DY"],
7863        comment: "P control model type 3. Reference: IEC 61400-27-1:2015, 5.6.5.4.",
7864        attrs: &[
7865            AttrDef { id: "WindContPType3IEC.WindDynamicsLookupTable", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindDynamicsLookupTable", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "The wind dynamics lookup table associated with this P control type 3 model." },
7866            AttrDef { id: "WindContPType3IEC.WindTurbineType3IEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType3IEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind turbine type 3 model with which this wind control P type 3 model is associated." },
7867            AttrDef { id: "WindContPType3IEC.dpmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum wind turbine power ramp rate (dpmax). It is a type-dependent parameter." },
7868            AttrDef { id: "WindContPType3IEC.dprefmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum ramp rate of wind turbine reference power (dprefmax). It is a project-dependent parameter." },
7869            AttrDef { id: "WindContPType3IEC.dprefmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum ramp rate of wind turbine reference power (dprefmin). It is a project-dependent parameter." },
7870            AttrDef { id: "WindContPType3IEC.dthetamax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Ramp limitation of torque, required in some grid codes (dtmax). It is a project-dependent parameter." },
7871            AttrDef { id: "WindContPType3IEC.dthetamaxuvrt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Limitation of torque rise rate during UVRT (dthetamaxUVRT). It is a project-dependent parameter." },
7872            AttrDef { id: "WindContPType3IEC.kdtd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Gain for active drive train damping (KDTD). It is a type-dependent parameter." },
7873            AttrDef { id: "WindContPType3IEC.kip", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PI controller integration parameter (KIp). It is a type-dependent parameter." },
7874            AttrDef { id: "WindContPType3IEC.kpp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "PI controller proportional gain (KPp). It is a type-dependent parameter." },
7875            AttrDef { id: "WindContPType3IEC.mpuvrt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Enable UVRT power control mode (MpUVRT). It is a project-dependent parameter. true = voltage control (1 in the IEC model) false = reactive power control (0 in the IEC model)." },
7876            AttrDef { id: "WindContPType3IEC.omegadtd", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Active drive train damping frequency (omegaDTD). It can be calculated from two mass model parameters. It is a type-dependent parameter." },
7877            AttrDef { id: "WindContPType3IEC.omegaoffset", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Offset to reference value that limits controller action during rotor speed changes (omegaoffset). It is a case-dependent parameter." },
7878            AttrDef { id: "WindContPType3IEC.pdtdmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum active drive train damping power (pDTDmax). It is a type-dependent parameter." },
7879            AttrDef { id: "WindContPType3IEC.tdvs", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time delay after deep voltage sags (TDVS) (>= 0). It is a project-dependent parameter." },
7880            AttrDef { id: "WindContPType3IEC.thetaemin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum electrical generator torque (temin). It is a type-dependent parameter." },
7881            AttrDef { id: "WindContPType3IEC.thetauscale", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage scaling factor of reset-torque (tuscale). It is a project-dependent parameter." },
7882            AttrDef { id: "WindContPType3IEC.tomegafiltp3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter time constant for generator speed measurement (Tomegafiltp3) (>= 0). It is a type-dependent parameter." },
7883            AttrDef { id: "WindContPType3IEC.tomegaref", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant in speed reference filter (Tomega,ref) (>= 0). It is a type-dependent parameter." },
7884            AttrDef { id: "WindContPType3IEC.tpfiltp3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter time constant for power measurement (Tpfiltp3) (>= 0). It is a type-dependent parameter." },
7885            AttrDef { id: "WindContPType3IEC.tpord", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant in power order lag (Tpord). It is a type-dependent parameter." },
7886            AttrDef { id: "WindContPType3IEC.tufiltp3", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter time constant for voltage measurement (Tufiltp3) (>= 0). It is a type-dependent parameter." },
7887            AttrDef { id: "WindContPType3IEC.udvs", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage limit for hold UVRT status after deep voltage sags (uDVS). It is a project-dependent parameter." },
7888            AttrDef { id: "WindContPType3IEC.updip", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage dip threshold for P-control (uPdip). Part of turbine control, often different (e.g 0.8) from converter thresholds. It is a project-dependent parameter." },
7889            AttrDef { id: "WindContPType3IEC.zeta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Coefficient for active drive train damping (zeta). It is a type-dependent parameter." },
7890        ],
7891    },
7892    ClassDef {
7893        ns: "http://iec.ch/TC57/CIM100#",
7894        local: "WindContPType4aIEC",
7895        qualified: "WindContPType4aIEC",
7896        super_class: Some(213),
7897        concrete: true,
7898        origins: &["DY"],
7899        comment: "P control model type 4A. Reference: IEC 61400-27-1:2015, 5.6.5.5.",
7900        attrs: &[
7901            AttrDef { id: "WindContPType4aIEC.WindTurbineType4aIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType4aIEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind turbine type 4A model with which this wind control P type 4A model is associated." },
7902            AttrDef { id: "WindContPType4aIEC.dpmaxp4a", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum wind turbine power ramp rate (dpmaxp4A). It is a project-dependent parameter." },
7903            AttrDef { id: "WindContPType4aIEC.tpordp4a", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant in power order lag (Tpordp4A) (>= 0). It is a type-dependent parameter." },
7904            AttrDef { id: "WindContPType4aIEC.tufiltp4a", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage measurement filter time constant (Tufiltp4A) (>= 0). It is a type-dependent parameter." },
7905        ],
7906    },
7907    ClassDef {
7908        ns: "http://iec.ch/TC57/CIM100#",
7909        local: "WindContPType4bIEC",
7910        qualified: "WindContPType4bIEC",
7911        super_class: Some(213),
7912        concrete: true,
7913        origins: &["DY"],
7914        comment: "P control model type 4B. Reference: IEC 61400-27-1:2015, 5.6.5.6.",
7915        attrs: &[
7916            AttrDef { id: "WindContPType4bIEC.WindTurbineType4bIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType4bIEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind turbine type 4B model with which this wind control P type 4B model is associated." },
7917            AttrDef { id: "WindContPType4bIEC.dpmaxp4b", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum wind turbine power ramp rate (dpmaxp4B). It is a project-dependent parameter." },
7918            AttrDef { id: "WindContPType4bIEC.tpaero", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant in aerodynamic power response (Tpaero) (>= 0). It is a type-dependent parameter." },
7919            AttrDef { id: "WindContPType4bIEC.tpordp4b", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant in power order lag (Tpordp4B) (>= 0). It is a type-dependent parameter." },
7920            AttrDef { id: "WindContPType4bIEC.tufiltp4b", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage measurement filter time constant (Tufiltp4B) (>= 0). It is a type-dependent parameter." },
7921        ],
7922    },
7923    ClassDef {
7924        ns: "http://iec.ch/TC57/CIM100#",
7925        local: "WindContPitchAngleIEC",
7926        qualified: "WindContPitchAngleIEC",
7927        super_class: Some(213),
7928        concrete: true,
7929        origins: &["DY"],
7930        comment: "Pitch angle control model. Reference: IEC 61400-27-1:2015, 5.6.5.2.",
7931        attrs: &[
7932            AttrDef { id: "WindContPitchAngleIEC.WindTurbineType3IEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType3IEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind turbine type 3 model with which this pitch control model is associated." },
7933            AttrDef { id: "WindContPitchAngleIEC.dthetamax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum pitch positive ramp rate (dthetamax) (> WindContPitchAngleIEC.dthetamin). It is a type-dependent parameter. Unit = degrees / s." },
7934            AttrDef { id: "WindContPitchAngleIEC.dthetamin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum pitch negative ramp rate (dthetamin) (< WindContPitchAngleIEC.dthetamax). It is a type-dependent parameter. Unit = degrees / s." },
7935            AttrDef { id: "WindContPitchAngleIEC.kic", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power PI controller integration gain (KIc). It is a type-dependent parameter." },
7936            AttrDef { id: "WindContPitchAngleIEC.kiomega", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Speed PI controller integration gain (KIomega). It is a type-dependent parameter." },
7937            AttrDef { id: "WindContPitchAngleIEC.kpc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power PI controller proportional gain (KPc). It is a type-dependent parameter." },
7938            AttrDef { id: "WindContPitchAngleIEC.kpomega", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Speed PI controller proportional gain (KPomega). It is a type-dependent parameter." },
7939            AttrDef { id: "WindContPitchAngleIEC.kpx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Pitch cross coupling gain (KPX). It is a type-dependent parameter." },
7940            AttrDef { id: "WindContPitchAngleIEC.thetamax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum pitch angle (thetamax) (> WindContPitchAngleIEC.thetamin). It is a type-dependent parameter." },
7941            AttrDef { id: "WindContPitchAngleIEC.thetamin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "AngleDegrees", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum pitch angle (thetamin) (< WindContPitchAngleIEC.thetamax). It is a type-dependent parameter." },
7942            AttrDef { id: "WindContPitchAngleIEC.ttheta", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Pitch time constant (ttheta) (>= 0). It is a type-dependent parameter." },
7943        ],
7944    },
7945    ClassDef {
7946        ns: "http://iec.ch/TC57/CIM100#",
7947        local: "WindContQIEC",
7948        qualified: "WindContQIEC",
7949        super_class: Some(213),
7950        concrete: true,
7951        origins: &["DY"],
7952        comment: "Q control model. Reference: IEC 61400-27-1:2015, 5.6.5.7.",
7953        attrs: &[
7954            AttrDef { id: "WindContQIEC.WindTurbineType3or4IEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType3or4IEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind turbine type 3 or type 4 model with which this reactive control model is associated." },
7955            AttrDef { id: "WindContQIEC.iqh1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum reactive current injection during dip (iqh1). It is a type-dependent parameter." },
7956            AttrDef { id: "WindContQIEC.iqmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum reactive current injection (iqmax) (> WindContQIEC.iqmin). It is a type-dependent parameter." },
7957            AttrDef { id: "WindContQIEC.iqmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum reactive current injection (iqmin) (< WindContQIEC.iqmax). It is a type-dependent parameter." },
7958            AttrDef { id: "WindContQIEC.iqpost", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Post fault reactive current injection (iqpost). It is a project-dependent parameter." },
7959            AttrDef { id: "WindContQIEC.kiq", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactive power PI controller integration gain (KI,q). It is a type-dependent parameter." },
7960            AttrDef { id: "WindContQIEC.kiu", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage PI controller integration gain (KI,u). It is a type-dependent parameter." },
7961            AttrDef { id: "WindContQIEC.kpq", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactive power PI controller proportional gain (KP,q). It is a type-dependent parameter." },
7962            AttrDef { id: "WindContQIEC.kpu", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage PI controller proportional gain (KP,u). It is a type-dependent parameter." },
7963            AttrDef { id: "WindContQIEC.kqv", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage scaling factor for UVRT current (Kqv). It is a project-dependent parameter." },
7964            AttrDef { id: "WindContQIEC.rdroop", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Resistive component of voltage drop impedance (rdroop) (>= 0). It is a project-dependent parameter." },
7965            AttrDef { id: "WindContQIEC.tpfiltq", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power measurement filter time constant (Tpfiltq) (>= 0). It is a type-dependent parameter." },
7966            AttrDef { id: "WindContQIEC.tpost", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Length of time period where post fault reactive power is injected (Tpost) (>= 0). It is a project-dependent parameter." },
7967            AttrDef { id: "WindContQIEC.tqord", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant in reactive power order lag (Tqord) (>= 0). It is a type-dependent parameter." },
7968            AttrDef { id: "WindContQIEC.tufiltq", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage measurement filter time constant (Tufiltq) (>= 0). It is a type-dependent parameter." },
7969            AttrDef { id: "WindContQIEC.udb1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage deadband lower limit (udb1). It is a type-dependent parameter." },
7970            AttrDef { id: "WindContQIEC.udb2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage deadband upper limit (udb2). It is a type-dependent parameter." },
7971            AttrDef { id: "WindContQIEC.umax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum voltage in voltage PI controller integral term (umax) (> WindContQIEC.umin). It is a type-dependent parameter." },
7972            AttrDef { id: "WindContQIEC.umin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum voltage in voltage PI controller integral term (umin) (< WindContQIEC.umax). It is a type-dependent parameter." },
7973            AttrDef { id: "WindContQIEC.uqdip", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage threshold for UVRT detection in Q control (uqdip). It is a type-dependent parameter." },
7974            AttrDef { id: "WindContQIEC.uref0", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "User-defined bias in voltage reference (uref0). It is a case-dependent parameter." },
7975            AttrDef { id: "WindContQIEC.windQcontrolModesType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "WindQcontrolModeKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Types of general wind turbine Q control modes (MqG). It is a project-dependent parameter." },
7976            AttrDef { id: "WindContQIEC.windUVRTQcontrolModesType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "WindUVRTQcontrolModeKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Types of UVRT Q control modes (MqUVRT). It is a project-dependent parameter." },
7977            AttrDef { id: "WindContQIEC.xdroop", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Inductive component of voltage drop impedance (xdroop) (>= 0). It is a project-dependent parameter." },
7978        ],
7979    },
7980    ClassDef {
7981        ns: "http://iec.ch/TC57/CIM100#",
7982        local: "WindContQLimIEC",
7983        qualified: "WindContQLimIEC",
7984        super_class: Some(213),
7985        concrete: true,
7986        origins: &["DY"],
7987        comment: "Constant Q limitation model. Reference: IEC 61400-27-1:2015, 5.6.5.9.",
7988        attrs: &[
7989            AttrDef { id: "WindContQLimIEC.WindTurbineType3or4IEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType3or4IEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind generator type 3 or type 4 model with which this constant Q limitation model is associated." },
7990            AttrDef { id: "WindContQLimIEC.qmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum reactive power (qmax) (> WindContQLimIEC.qmin). It is a type-dependent parameter." },
7991            AttrDef { id: "WindContQLimIEC.qmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum reactive power (qmin) (< WindContQLimIEC.qmax). It is a type-dependent parameter." },
7992        ],
7993    },
7994    ClassDef {
7995        ns: "http://iec.ch/TC57/CIM100#",
7996        local: "WindContQPQULimIEC",
7997        qualified: "WindContQPQULimIEC",
7998        super_class: Some(213),
7999        concrete: true,
8000        origins: &["DY"],
8001        comment: "QP and QU limitation model. Reference: IEC 61400-27-1:2015, 5.6.5.10.",
8002        attrs: &[
8003            AttrDef { id: "WindContQPQULimIEC.WindDynamicsLookupTable", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindDynamicsLookupTable", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "The wind dynamics lookup table associated with this QP and QU limitation model." },
8004            AttrDef { id: "WindContQPQULimIEC.WindTurbineType3or4IEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType3or4IEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind generator type 3 or type 4 model with which this QP and QU limitation model is associated." },
8005            AttrDef { id: "WindContQPQULimIEC.tpfiltql", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power measurement filter time constant for Q capacity (Tpfiltql) (>= 0). It is a type-dependent parameter." },
8006            AttrDef { id: "WindContQPQULimIEC.tufiltql", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage measurement filter time constant for Q capacity (Tufiltql) (>= 0). It is a type-dependent parameter." },
8007        ],
8008    },
8009    ClassDef {
8010        ns: "http://iec.ch/TC57/CIM100#",
8011        local: "WindContRotorRIEC",
8012        qualified: "WindContRotorRIEC",
8013        super_class: Some(213),
8014        concrete: true,
8015        origins: &["DY"],
8016        comment: "Rotor resistance control model. Reference: IEC 61400-27-1:2015, 5.6.5.3.",
8017        attrs: &[
8018            AttrDef { id: "WindContRotorRIEC.WindDynamicsLookupTable", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindDynamicsLookupTable", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "The wind dynamics lookup table associated with this rotor resistance control model." },
8019            AttrDef { id: "WindContRotorRIEC.WindGenTurbineType2IEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindGenTurbineType2IEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind turbine type 2 model with whitch this wind control rotor resistance model is associated." },
8020            AttrDef { id: "WindContRotorRIEC.kirr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Integral gain in rotor resistance PI controller (KIrr). It is a type-dependent parameter." },
8021            AttrDef { id: "WindContRotorRIEC.komegafilt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter gain for generator speed measurement (Komegafilt). It is a type-dependent parameter." },
8022            AttrDef { id: "WindContRotorRIEC.kpfilt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter gain for power measurement (Kpfilt). It is a type-dependent parameter." },
8023            AttrDef { id: "WindContRotorRIEC.kprr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Proportional gain in rotor resistance PI controller (KPrr). It is a type-dependent parameter." },
8024            AttrDef { id: "WindContRotorRIEC.rmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum rotor resistance (rmax) (> WindContRotorRIEC.rmin). It is a type-dependent parameter." },
8025            AttrDef { id: "WindContRotorRIEC.rmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum rotor resistance (rmin) (< WindContRotorRIEC.rmax). It is a type-dependent parameter." },
8026            AttrDef { id: "WindContRotorRIEC.tomegafiltrr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter time constant for generator speed measurement (Tomegafiltrr) (>= 0). It is a type-dependent parameter." },
8027            AttrDef { id: "WindContRotorRIEC.tpfiltrr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter time constant for power measurement (Tpfiltrr) (>= 0). It is a type-dependent parameter." },
8028        ],
8029    },
8030    ClassDef {
8031        ns: "http://iec.ch/TC57/CIM100#",
8032        local: "WindDynamicsLookupTable",
8033        qualified: "WindDynamicsLookupTable",
8034        super_class: Some(213),
8035        concrete: true,
8036        origins: &["DY"],
8037        comment: "Look up table for the purpose of wind standard models.",
8038        attrs: &[
8039            AttrDef { id: "WindDynamicsLookupTable.WindContCurrLimIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindContCurrLimIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "The current control limitation model with which this wind dynamics lookup table is associated." },
8040            AttrDef { id: "WindDynamicsLookupTable.WindContPType3IEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindContPType3IEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "The P control type 3 model with which this wind dynamics lookup table is associated." },
8041            AttrDef { id: "WindDynamicsLookupTable.WindContQPQULimIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindContQPQULimIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "The QP and QU limitation model with which this wind dynamics lookup table is associated." },
8042            AttrDef { id: "WindDynamicsLookupTable.WindContRotorRIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindContRotorRIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "The rotor resistance control model with which this wind dynamics lookup table is associated." },
8043            AttrDef { id: "WindDynamicsLookupTable.WindGenType3bIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindGenType3bIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "The generator type 3B model with which this wind dynamics lookup table is associated." },
8044            AttrDef { id: "WindDynamicsLookupTable.WindPitchContPowerIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindPitchContPowerIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "The pitch control power model with which this wind dynamics lookup table is associated." },
8045            AttrDef { id: "WindDynamicsLookupTable.WindPlantFreqPcontrolIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindPlantFreqPcontrolIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "The frequency and active power wind plant control model with which this wind dynamics lookup table is associated." },
8046            AttrDef { id: "WindDynamicsLookupTable.WindPlantReactiveControlIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindPlantReactiveControlIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "The voltage and reactive power wind plant control model with which this wind dynamics lookup table is associated." },
8047            AttrDef { id: "WindDynamicsLookupTable.WindProtectionIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindProtectionIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "The grid protection model with which this wind dynamics lookup table is associated." },
8048            AttrDef { id: "WindDynamicsLookupTable.input", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Input value (x) for the lookup table function." },
8049            AttrDef { id: "WindDynamicsLookupTable.lookupTableFunctionType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "WindLookupTableFunctionKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Type of the lookup table function." },
8050            AttrDef { id: "WindDynamicsLookupTable.output", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Output value (y) for the lookup table function." },
8051            AttrDef { id: "WindDynamicsLookupTable.sequence", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Integer", is_list: false, used: true, xsd: "integer", value_ns: "", origins: &["DY"], comment: "Sequence numbers of the pairs of the input (x) and the output (y) of the lookup table function." },
8052        ],
8053    },
8054    ClassDef {
8055        ns: "http://iec.ch/TC57/CIM100#",
8056        local: "WindGenTurbineType1aIEC",
8057        qualified: "WindGenTurbineType1aIEC",
8058        super_class: Some(436),
8059        concrete: true,
8060        origins: &["DY"],
8061        comment: "Wind turbine IEC type 1A. Reference: IEC 61400-27-1:2015, 5.5.2.2.",
8062        attrs: &[
8063            AttrDef { id: "WindGenTurbineType1aIEC.WindAeroConstIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindAeroConstIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind aerodynamic model associated with this wind turbine type 1A model." },
8064        ],
8065    },
8066    ClassDef {
8067        ns: "http://iec.ch/TC57/CIM100#",
8068        local: "WindGenTurbineType1bIEC",
8069        qualified: "WindGenTurbineType1bIEC",
8070        super_class: Some(436),
8071        concrete: true,
8072        origins: &["DY"],
8073        comment: "Wind turbine IEC type 1B. Reference: IEC 61400-27-1:2015, 5.5.2.3.",
8074        attrs: &[
8075            AttrDef { id: "WindGenTurbineType1bIEC.WindPitchContPowerIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindPitchContPowerIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Pitch control power model associated with this wind turbine type 1B model." },
8076        ],
8077    },
8078    ClassDef {
8079        ns: "http://iec.ch/TC57/CIM100#",
8080        local: "WindGenTurbineType2IEC",
8081        qualified: "WindGenTurbineType2IEC",
8082        super_class: Some(436),
8083        concrete: true,
8084        origins: &["DY"],
8085        comment: "Wind turbine IEC type 2. Reference: IEC 61400-27-1:2015, 5.5.3.",
8086        attrs: &[
8087            AttrDef { id: "WindGenTurbineType2IEC.WindContRotorRIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindContRotorRIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind control rotor resistance model associated with wind turbine type 2 model." },
8088            AttrDef { id: "WindGenTurbineType2IEC.WindPitchContPowerIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindPitchContPowerIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Pitch control power model associated with this wind turbine type 2 model." },
8089        ],
8090    },
8091    ClassDef {
8092        ns: "http://iec.ch/TC57/CIM100#",
8093        local: "WindGenType3IEC",
8094        qualified: "WindGenType3IEC",
8095        super_class: Some(213),
8096        concrete: false,
8097        origins: &["DY"],
8098        comment: "Parent class supporting relationships to IEC wind turbines type 3 generator models of IEC type 3A and 3B.",
8099        attrs: &[
8100            AttrDef { id: "WindGenType3IEC.WindTurbineType3IEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType3IEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind turbine type 3 model with which this wind generator type 3 is associated." },
8101            AttrDef { id: "WindGenType3IEC.dipmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum active current ramp rate (dipmax). It is a project-dependent parameter." },
8102            AttrDef { id: "WindGenType3IEC.diqmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum reactive current ramp rate (diqmax). It is a project-dependent parameter." },
8103            AttrDef { id: "WindGenType3IEC.xs", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Electromagnetic transient reactance (xS). It is a type-dependent parameter." },
8104        ],
8105    },
8106    ClassDef {
8107        ns: "http://iec.ch/TC57/CIM100#",
8108        local: "WindGenType3aIEC",
8109        qualified: "WindGenType3aIEC",
8110        super_class: Some(420),
8111        concrete: true,
8112        origins: &["DY"],
8113        comment: "IEC type 3A generator set model. Reference: IEC 61400-27-1:2015, 5.6.3.2.",
8114        attrs: &[
8115            AttrDef { id: "WindGenType3aIEC.WindTurbineType4IEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType4IEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind turbine type 4 model with which this wind generator type 3A model is associated." },
8116            AttrDef { id: "WindGenType3aIEC.kpc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Current PI controller proportional gain (KPc). It is a type-dependent parameter." },
8117            AttrDef { id: "WindGenType3aIEC.tic", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Current PI controller integration time constant (TIc) (>= 0). It is a type-dependent parameter." },
8118        ],
8119    },
8120    ClassDef {
8121        ns: "http://iec.ch/TC57/CIM100#",
8122        local: "WindGenType3bIEC",
8123        qualified: "WindGenType3bIEC",
8124        super_class: Some(420),
8125        concrete: true,
8126        origins: &["DY"],
8127        comment: "IEC type 3B generator set model. Reference: IEC 61400-27-1:2015, 5.6.3.3.",
8128        attrs: &[
8129            AttrDef { id: "WindGenType3bIEC.WindDynamicsLookupTable", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindDynamicsLookupTable", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "The wind dynamics lookup table associated with this generator type 3B model." },
8130            AttrDef { id: "WindGenType3bIEC.mwtcwp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Crowbar control mode (MWTcwp). It is a case-dependent parameter. true = 1 in the IEC model false = 0 in the IEC model." },
8131            AttrDef { id: "WindGenType3bIEC.tg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Current generation time constant (Tg) (>= 0). It is a type-dependent parameter." },
8132            AttrDef { id: "WindGenType3bIEC.two", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant for crowbar washout filter (Two) (>= 0). It is a case-dependent parameter." },
8133        ],
8134    },
8135    ClassDef {
8136        ns: "http://iec.ch/TC57/CIM100#",
8137        local: "WindGenType4IEC",
8138        qualified: "WindGenType4IEC",
8139        super_class: Some(213),
8140        concrete: true,
8141        origins: &["DY"],
8142        comment: "IEC type 4 generator set model. Reference: IEC 61400-27-1:2015, 5.6.3.4.",
8143        attrs: &[
8144            AttrDef { id: "WindGenType4IEC.WindTurbineType4aIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType4aIEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind turbine type 4A model with which this wind generator type 4 model is associated." },
8145            AttrDef { id: "WindGenType4IEC.WindTurbineType4bIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType4bIEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind turbine type 4B model with which this wind generator type 4 model is associated." },
8146            AttrDef { id: "WindGenType4IEC.dipmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum active current ramp rate (dipmax). It is a project-dependent parameter." },
8147            AttrDef { id: "WindGenType4IEC.diqmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum reactive current ramp rate (diqmax). It is a project-dependent parameter." },
8148            AttrDef { id: "WindGenType4IEC.diqmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum reactive current ramp rate (diqmin). It is a project-dependent parameter." },
8149            AttrDef { id: "WindGenType4IEC.tg", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant (Tg) (>= 0). It is a type-dependent parameter." },
8150        ],
8151    },
8152    ClassDef {
8153        ns: "http://iec.ch/TC57/CIM100#",
8154        local: "WindGeneratingUnit",
8155        qualified: "WindGeneratingUnit",
8156        super_class: Some(169),
8157        concrete: true,
8158        origins: &["EQ", "SSH"],
8159        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.",
8160        attrs: &[
8161            AttrDef { id: "WindGeneratingUnit.WindPowerPlant", ns: "http://iec.ch/TC57/CIM100-European#", kind: AttrKind::Association, range: "WindPowerPlant", is_list: false, used: true, xsd: "", value_ns: "", origins: &["EQ"], comment: "A wind power plant may have wind generating units." },
8162            AttrDef { id: "WindGeneratingUnit.windGenUnitType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "WindGenUnitKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["EQ"], comment: "The kind of wind generating unit." },
8163        ],
8164    },
8165    ClassDef {
8166        ns: "http://iec.ch/TC57/CIM100#",
8167        local: "WindMechIEC",
8168        qualified: "WindMechIEC",
8169        super_class: Some(213),
8170        concrete: true,
8171        origins: &["DY"],
8172        comment: "Two mass model. Reference: IEC 61400-27-1:2015, 5.6.2.1.",
8173        attrs: &[
8174            AttrDef { id: "WindMechIEC.WindTurbineType1or2IEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType1or2IEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind generator type 1 or type 2 model with which this wind mechanical model is associated." },
8175            AttrDef { id: "WindMechIEC.WindTurbineType3IEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType3IEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind turbine type 3 model with which this wind mechanical model is associated." },
8176            AttrDef { id: "WindMechIEC.WindTurbineType4bIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType4bIEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind turbine type 4B model with which this wind mechanical model is associated." },
8177            AttrDef { id: "WindMechIEC.cdrt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Drive train damping (cdrt). It is a type-dependent parameter." },
8178            AttrDef { id: "WindMechIEC.hgen", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Inertia constant of generator (Hgen) (>= 0). It is a type-dependent parameter." },
8179            AttrDef { id: "WindMechIEC.hwtr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Inertia constant of wind turbine rotor (HWTR) (>= 0). It is a type-dependent parameter." },
8180            AttrDef { id: "WindMechIEC.kdrt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Drive train stiffness (kdrt). It is a type-dependent parameter." },
8181        ],
8182    },
8183    ClassDef {
8184        ns: "http://iec.ch/TC57/CIM100#",
8185        local: "WindPitchContPowerIEC",
8186        qualified: "WindPitchContPowerIEC",
8187        super_class: Some(213),
8188        concrete: true,
8189        origins: &["DY"],
8190        comment: "Pitch control power model. Reference: IEC 61400-27-1:2015, 5.6.5.1.",
8191        attrs: &[
8192            AttrDef { id: "WindPitchContPowerIEC.WindDynamicsLookupTable", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindDynamicsLookupTable", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "The wind dynamics lookup table associated with this pitch control power model." },
8193            AttrDef { id: "WindPitchContPowerIEC.WindGenTurbineType1bIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindGenTurbineType1bIEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind turbine type 1B model with which this pitch control power model is associated." },
8194            AttrDef { id: "WindPitchContPowerIEC.WindGenTurbineType2IEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindGenTurbineType2IEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind turbine type 2 model with which this pitch control power model is associated." },
8195            AttrDef { id: "WindPitchContPowerIEC.dpmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rate limit for increasing power (dpmax) (> WindPitchContPowerIEC.dpmin). It is a type-dependent parameter." },
8196            AttrDef { id: "WindPitchContPowerIEC.dpmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Rate limit for decreasing power (dpmin) (< WindPitchContPowerIEC.dpmax). It is a type-dependent parameter." },
8197            AttrDef { id: "WindPitchContPowerIEC.pmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum power setting (pmin). It is a type-dependent parameter." },
8198            AttrDef { id: "WindPitchContPowerIEC.pset", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "If pinit < pset then power will be ramped down to pmin. It is (pset) in the IEC 61400-27-1:2015. It is a type-dependent parameter." },
8199            AttrDef { id: "WindPitchContPowerIEC.t1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag time constant (T1) (>= 0). It is a type-dependent parameter." },
8200            AttrDef { id: "WindPitchContPowerIEC.tr", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage measurement time constant (Tr) (>= 0). It is a type-dependent parameter." },
8201            AttrDef { id: "WindPitchContPowerIEC.uuvrt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Dip detection threshold (uUVRT). It is a type-dependent parameter." },
8202        ],
8203    },
8204    ClassDef {
8205        ns: "http://iec.ch/TC57/CIM100#",
8206        local: "WindPlantDynamics",
8207        qualified: "WindPlantDynamics",
8208        super_class: Some(91),
8209        concrete: false,
8210        origins: &["DY"],
8211        comment: "Parent class supporting relationships to wind turbines type 3 and type 4 and wind plant IEC and user-defined wind plants including their control models.",
8212        attrs: &[
8213            AttrDef { id: "WindPlantDynamics.RemoteInputSignal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RemoteInputSignal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "The remote signal with which this power plant is associated." },
8214            AttrDef { id: "WindPlantDynamics.WindTurbineType3or4Dynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType3or4Dynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "The wind turbine type 3 or type 4 associated with this wind plant." },
8215        ],
8216    },
8217    ClassDef {
8218        ns: "http://iec.ch/TC57/CIM100#",
8219        local: "WindPlantFreqPcontrolIEC",
8220        qualified: "WindPlantFreqPcontrolIEC",
8221        super_class: Some(213),
8222        concrete: true,
8223        origins: &["DY"],
8224        comment: "Frequency and active power controller model. Reference: IEC 61400-27-1:2015, Annex D.",
8225        attrs: &[
8226            AttrDef { id: "WindPlantFreqPcontrolIEC.WindDynamicsLookupTable", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindDynamicsLookupTable", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "The wind dynamics lookup table associated with this frequency and active power wind plant model." },
8227            AttrDef { id: "WindPlantFreqPcontrolIEC.WindPlantIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindPlantIEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind plant model with which this wind plant frequency and active power control is associated." },
8228            AttrDef { id: "WindPlantFreqPcontrolIEC.dprefmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum ramp rate of pWTref request from the plant controller to the wind turbines (dprefmax) (> WindPlantFreqPcontrolIEC.dprefmin). It is a case-dependent parameter." },
8229            AttrDef { id: "WindPlantFreqPcontrolIEC.dprefmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum (negative) ramp rate of pWTref request from the plant controller to the wind turbines (dprefmin) (< WindPlantFreqPcontrolIEC.dprefmax). It is a project-dependent parameter." },
8230            AttrDef { id: "WindPlantFreqPcontrolIEC.dpwprefmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum positive ramp rate for wind plant power reference (dpWPrefmax) (> WindPlantFreqPcontrolIEC.dpwprefmin). It is a project-dependent parameter." },
8231            AttrDef { id: "WindPlantFreqPcontrolIEC.dpwprefmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum negative ramp rate for wind plant power reference (dpWPrefmin) (< WindPlantFreqPcontrolIEC.dpwprefmax). It is a project-dependent parameter." },
8232            AttrDef { id: "WindPlantFreqPcontrolIEC.kiwpp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Plant P controller integral gain (KIWPp). It is a project-dependent parameter." },
8233            AttrDef { id: "WindPlantFreqPcontrolIEC.kiwppmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum PI integrator term (KIWPpmax) (> WindPlantFreqPcontrolIEC.kiwppmin). It is a project-dependent parameter." },
8234            AttrDef { id: "WindPlantFreqPcontrolIEC.kiwppmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum PI integrator term (KIWPpmin) (< WindPlantFreqPcontrolIEC.kiwppmax). It is a project-dependent parameter." },
8235            AttrDef { id: "WindPlantFreqPcontrolIEC.kpwpp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Plant P controller proportional gain (KPWPp). It is a project-dependent parameter." },
8236            AttrDef { id: "WindPlantFreqPcontrolIEC.kwppref", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Power reference gain (KWPpref). It is a project-dependent parameter." },
8237            AttrDef { id: "WindPlantFreqPcontrolIEC.prefmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum pWTref request from the plant controller to the wind turbines (prefmax) (> WindPlantFreqPcontrolIEC.prefmin). It is a project-dependent parameter." },
8238            AttrDef { id: "WindPlantFreqPcontrolIEC.prefmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum pWTref request from the plant controller to the wind turbines (prefmin) (< WindPlantFreqPcontrolIEC.prefmax). It is a project-dependent parameter." },
8239            AttrDef { id: "WindPlantFreqPcontrolIEC.tpft", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead time constant in reference value transfer function (Tpft) (>= 0). It is a project-dependent parameter." },
8240            AttrDef { id: "WindPlantFreqPcontrolIEC.tpfv", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag time constant in reference value transfer function (Tpfv) (>= 0). It is a project-dependent parameter." },
8241            AttrDef { id: "WindPlantFreqPcontrolIEC.twpffiltp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter time constant for frequency measurement (TWPffiltp) (>= 0). It is a project-dependent parameter." },
8242            AttrDef { id: "WindPlantFreqPcontrolIEC.twppfiltp", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter time constant for active power measurement (TWPpfiltp) (>= 0). It is a project-dependent parameter." },
8243        ],
8244    },
8245    ClassDef {
8246        ns: "http://iec.ch/TC57/CIM100#",
8247        local: "WindPlantIEC",
8248        qualified: "WindPlantIEC",
8249        super_class: Some(427),
8250        concrete: true,
8251        origins: &["DY"],
8252        comment: "Simplified IEC type plant level model. Reference: IEC 61400-27-1:2015, Annex D.",
8253        attrs: &[
8254            AttrDef { id: "WindPlantIEC.WindPlantFreqPcontrolIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindPlantFreqPcontrolIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind plant frequency and active power control model associated with this wind plant." },
8255            AttrDef { id: "WindPlantIEC.WindPlantReactiveControlIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindPlantReactiveControlIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind plant model with which this wind reactive control is associated." },
8256        ],
8257    },
8258    ClassDef {
8259        ns: "http://iec.ch/TC57/CIM100#",
8260        local: "WindPlantReactiveControlIEC",
8261        qualified: "WindPlantReactiveControlIEC",
8262        super_class: Some(213),
8263        concrete: true,
8264        origins: &["DY"],
8265        comment: "Simplified plant voltage and reactive power control model for use with type 3 and type 4 wind turbine models. Reference: IEC 61400-27-1:2015, Annex D.",
8266        attrs: &[
8267            AttrDef { id: "WindPlantReactiveControlIEC.WindDynamicsLookupTable", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindDynamicsLookupTable", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "The wind dynamics lookup table associated with this voltage and reactive power wind plant model." },
8268            AttrDef { id: "WindPlantReactiveControlIEC.WindPlantIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindPlantIEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind plant reactive control model associated with this wind plant." },
8269            AttrDef { id: "WindPlantReactiveControlIEC.dxrefmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum positive ramp rate for wind turbine reactive power/voltage reference (dxrefmax) (> WindPlantReactiveControlIEC.dxrefmin). It is a project-dependent parameter." },
8270            AttrDef { id: "WindPlantReactiveControlIEC.dxrefmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum negative ramp rate for wind turbine reactive power/voltage reference (dxrefmin) (< WindPlantReactiveControlIEC.dxrefmax). It is a project-dependent parameter." },
8271            AttrDef { id: "WindPlantReactiveControlIEC.kiwpx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Plant Q controller integral gain (KIWPx). It is a project-dependent parameter." },
8272            AttrDef { id: "WindPlantReactiveControlIEC.kiwpxmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum reactive power/voltage reference from integration (KIWPxmax) (> WindPlantReactiveControlIEC.kiwpxmin). It is a project-dependent parameter." },
8273            AttrDef { id: "WindPlantReactiveControlIEC.kiwpxmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum reactive power/voltage reference from integration (KIWPxmin) (< WindPlantReactiveControlIEC.kiwpxmax). It is a project-dependent parameter." },
8274            AttrDef { id: "WindPlantReactiveControlIEC.kpwpx", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Float", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Plant Q controller proportional gain (KPWPx). It is a project-dependent parameter." },
8275            AttrDef { id: "WindPlantReactiveControlIEC.kwpqref", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Reactive power reference gain (KWPqref). It is a project-dependent parameter." },
8276            AttrDef { id: "WindPlantReactiveControlIEC.kwpqu", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Plant voltage control droop (KWPqu). It is a project-dependent parameter." },
8277            AttrDef { id: "WindPlantReactiveControlIEC.tuqfilt", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter time constant for voltage-dependent reactive power (Tuqfilt) (>= 0). It is a project-dependent parameter." },
8278            AttrDef { id: "WindPlantReactiveControlIEC.twppfiltq", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter time constant for active power measurement (TWPpfiltq) (>= 0). It is a project-dependent parameter." },
8279            AttrDef { id: "WindPlantReactiveControlIEC.twpqfiltq", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter time constant for reactive power measurement (TWPqfiltq) (>= 0). It is a project-dependent parameter." },
8280            AttrDef { id: "WindPlantReactiveControlIEC.twpufiltq", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Filter time constant for voltage measurement (TWPufiltq) (>= 0). It is a project-dependent parameter." },
8281            AttrDef { id: "WindPlantReactiveControlIEC.txft", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lead time constant in reference value transfer function (Txft) (>= 0). It is a project-dependent parameter." },
8282            AttrDef { id: "WindPlantReactiveControlIEC.txfv", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Lag time constant in reference value transfer function (Txfv) (>= 0). It is a project-dependent parameter." },
8283            AttrDef { id: "WindPlantReactiveControlIEC.uwpqdip", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage threshold for UVRT detection in Q control (uWPqdip). It is a project-dependent parameter." },
8284            AttrDef { id: "WindPlantReactiveControlIEC.windPlantQcontrolModesType", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Enum, range: "WindPlantQcontrolModeKind", is_list: false, used: true, xsd: "", value_ns: "http://iec.ch/TC57/CIM100#", origins: &["DY"], comment: "Reactive power/voltage controller mode (MWPqmode). It is a case-dependent parameter." },
8285            AttrDef { id: "WindPlantReactiveControlIEC.xrefmax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum xWTref (qWTref or delta uWTref) request from the plant controller (xrefmax) (> WindPlantReactiveControlIEC.xrefmin). It is a case-dependent parameter." },
8286            AttrDef { id: "WindPlantReactiveControlIEC.xrefmin", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Minimum xWTref (qWTref or delta uWTref) request from the plant controller (xrefmin) (< WindPlantReactiveControlIEC.xrefmax). It is a project-dependent parameter." },
8287        ],
8288    },
8289    ClassDef {
8290        ns: "http://iec.ch/TC57/CIM100#",
8291        local: "WindPlantUserDefined",
8292        qualified: "WindPlantUserDefined",
8293        super_class: Some(427),
8294        concrete: true,
8295        origins: &["DY"],
8296        comment: "Wind plant function block whose dynamic behaviour is described by a user-defined model.",
8297        attrs: &[
8298            AttrDef { id: "WindPlantUserDefined.ProprietaryParameterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ProprietaryParameterDynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Parameter of this proprietary user-defined model." },
8299            AttrDef { id: "WindPlantUserDefined.proprietary", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Behaviour is based on a proprietary model as opposed to a detailed model. true = user-defined model is proprietary with behaviour mutually understood by sending and receiving applications and parameters passed as general attributes false = user-defined model is explicitly defined in terms of control blocks and their input and output signals." },
8300        ],
8301    },
8302    ClassDef {
8303        ns: "http://iec.ch/TC57/CIM100-European#",
8304        local: "WindPowerPlant",
8305        qualified: "WindPowerPlant",
8306        super_class: Some(282),
8307        concrete: true,
8308        origins: &["EQ"],
8309        comment: "Wind power plant.",
8310        attrs: &[
8311            AttrDef { id: "WindPowerPlant.WindGeneratingUnits", ns: "http://iec.ch/TC57/CIM100-European#", kind: AttrKind::Association, range: "WindGeneratingUnit", is_list: true, used: false, xsd: "", value_ns: "", origins: &["EQ"], comment: "A wind generating unit or units may be a member of a wind power plant." },
8312        ],
8313    },
8314    ClassDef {
8315        ns: "http://iec.ch/TC57/CIM100#",
8316        local: "WindProtectionIEC",
8317        qualified: "WindProtectionIEC",
8318        super_class: Some(213),
8319        concrete: true,
8320        origins: &["DY"],
8321        comment: "The grid protection model includes protection against over- and under-voltage, and against over- and under-frequency. Reference: IEC 61400-27-1:2015, 5.6.6.",
8322        attrs: &[
8323            AttrDef { id: "WindProtectionIEC.WindDynamicsLookupTable", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindDynamicsLookupTable", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "The wind dynamics lookup table associated with this grid protection model." },
8324            AttrDef { id: "WindProtectionIEC.WindTurbineType1or2IEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType1or2IEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind generator type 1 or type 2 model with which this wind turbine protection model is associated." },
8325            AttrDef { id: "WindProtectionIEC.WindTurbineType3or4IEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType3or4IEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind generator type 3 or type 4 model with which this wind turbine protection model is associated." },
8326            AttrDef { id: "WindProtectionIEC.dfimax", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Maximum rate of change of frequency (dFmax). It is a type-dependent parameter." },
8327            AttrDef { id: "WindProtectionIEC.fover", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Wind turbine over frequency protection activation threshold (fover). It is a project-dependent parameter." },
8328            AttrDef { id: "WindProtectionIEC.funder", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Wind turbine under frequency protection activation threshold (funder). It is a project-dependent parameter." },
8329            AttrDef { id: "WindProtectionIEC.mzc", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Zero crossing measurement mode (Mzc). It is a type-dependent parameter. true = WT protection system uses zero crossings to detect frequency (1 in the IEC model) false = WT protection system does not use zero crossings to detect frequency (0 in the IEC model)." },
8330            AttrDef { id: "WindProtectionIEC.tfma", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time interval of moving average window (TfMA) (>= 0). It is a type-dependent parameter." },
8331            AttrDef { id: "WindProtectionIEC.uover", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Wind turbine over voltage protection activation threshold (uover). It is a project-dependent parameter." },
8332            AttrDef { id: "WindProtectionIEC.uunder", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Wind turbine under voltage protection activation threshold (uunder). It is a project-dependent parameter." },
8333        ],
8334    },
8335    ClassDef {
8336        ns: "http://iec.ch/TC57/CIM100#",
8337        local: "WindRefFrameRotIEC",
8338        qualified: "WindRefFrameRotIEC",
8339        super_class: Some(213),
8340        concrete: true,
8341        origins: &["DY"],
8342        comment: "Reference frame rotation model. Reference: IEC 61400-27-1:2015, 5.6.3.5.",
8343        attrs: &[
8344            AttrDef { id: "WindRefFrameRotIEC.WindTurbineType3or4IEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindTurbineType3or4IEC", is_list: false, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind turbine type 3 or type 4 model with which this reference frame rotation model is associated." },
8345            AttrDef { id: "WindRefFrameRotIEC.tpll", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Seconds", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Time constant for PLL first order filter model (TPLL) (>= 0). It is a type-dependent parameter." },
8346            AttrDef { id: "WindRefFrameRotIEC.upll1", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage below which the angle of the voltage is filtered and possibly also frozen (uPLL1). It is a type-dependent parameter." },
8347            AttrDef { id: "WindRefFrameRotIEC.upll2", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "PU", is_list: false, used: true, xsd: "double", value_ns: "", origins: &["DY"], comment: "Voltage (uPLL2) below which the angle of the voltage is frozen if uPLL2 is smaller or equal to uPLL1 . It is a type-dependent parameter." },
8348        ],
8349    },
8350    ClassDef {
8351        ns: "http://iec.ch/TC57/CIM100#",
8352        local: "WindTurbineType1or2Dynamics",
8353        qualified: "WindTurbineType1or2Dynamics",
8354        super_class: Some(91),
8355        concrete: false,
8356        origins: &["DY"],
8357        comment: "Parent class supporting relationships to wind turbines type 1 and type 2 and their control models. Generator model for wind turbine of type 1 or type 2 is a standard asynchronous generator model.",
8358        attrs: &[
8359            AttrDef { id: "WindTurbineType1or2Dynamics.AsynchronousMachineDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "AsynchronousMachineDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Asynchronous machine model with which this wind generator type 1 or type 2 model is associated." },
8360            AttrDef { id: "WindTurbineType1or2Dynamics.RemoteInputSignal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RemoteInputSignal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Remote input signal used by this wind generator type 1 or type 2 model." },
8361        ],
8362    },
8363    ClassDef {
8364        ns: "http://iec.ch/TC57/CIM100#",
8365        local: "WindTurbineType1or2IEC",
8366        qualified: "WindTurbineType1or2IEC",
8367        super_class: Some(435),
8368        concrete: false,
8369        origins: &["DY"],
8370        comment: "Parent class supporting relationships to IEC wind turbines type 1 and type 2 including their control models. Generator model for wind turbine of IEC type 1 or type 2 is a standard asynchronous generator model. Reference: IEC 61400-27-1:2015, 5.5.2 and 5.5.3.",
8371        attrs: &[
8372            AttrDef { id: "WindTurbineType1or2IEC.WindMechIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindMechIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind mechanical model associated with this wind generator type 1 or type 2 model." },
8373            AttrDef { id: "WindTurbineType1or2IEC.WindProtectionIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindProtectionIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind turbune protection model associated with this wind generator type 1 or type 2 model." },
8374        ],
8375    },
8376    ClassDef {
8377        ns: "http://iec.ch/TC57/CIM100#",
8378        local: "WindTurbineType3IEC",
8379        qualified: "WindTurbineType3IEC",
8380        super_class: Some(439),
8381        concrete: true,
8382        origins: &["DY"],
8383        comment: "Parent class supporting relationships to IEC wind turbines type 3 including their control models.",
8384        attrs: &[
8385            AttrDef { id: "WindTurbineType3IEC.WindAeroOneDimIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindAeroOneDimIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind aerodynamic model associated with this wind generator type 3 model." },
8386            AttrDef { id: "WindTurbineType3IEC.WindAeroTwoDimIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindAeroTwoDimIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind aerodynamic model associated with this wind turbine type 3 model." },
8387            AttrDef { id: "WindTurbineType3IEC.WindContPType3IEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindContPType3IEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind control P type 3 model associated with this wind turbine type 3 model." },
8388            AttrDef { id: "WindTurbineType3IEC.WindContPitchAngleIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindContPitchAngleIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind control pitch angle model associated with this wind turbine type 3." },
8389            AttrDef { id: "WindTurbineType3IEC.WindGenType3IEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindGenType3IEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind generator type 3 model associated with this wind turbine type 3 model." },
8390            AttrDef { id: "WindTurbineType3IEC.WindMechIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindMechIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind mechanical model associated with this wind turbine type 3 model." },
8391        ],
8392    },
8393    ClassDef {
8394        ns: "http://iec.ch/TC57/CIM100#",
8395        local: "WindTurbineType3or4Dynamics",
8396        qualified: "WindTurbineType3or4Dynamics",
8397        super_class: Some(91),
8398        concrete: false,
8399        origins: &["DY"],
8400        comment: "Parent class supporting relationships to wind turbines type 3 and type 4 and wind plant including their control models.",
8401        attrs: &[
8402            AttrDef { id: "WindTurbineType3or4Dynamics.PowerElectronicsConnection", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "PowerElectronicsConnection", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "The power electronics connection associated with this wind turbine type 3 or type 4 dynamics model." },
8403            AttrDef { id: "WindTurbineType3or4Dynamics.RemoteInputSignal", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "RemoteInputSignal", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Remote input signal used by these wind turbine type 3 or type 4 models." },
8404            AttrDef { id: "WindTurbineType3or4Dynamics.WindPlantDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindPlantDynamics", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "The wind plant with which the wind turbines type 3 or type 4 are associated." },
8405        ],
8406    },
8407    ClassDef {
8408        ns: "http://iec.ch/TC57/CIM100#",
8409        local: "WindTurbineType3or4IEC",
8410        qualified: "WindTurbineType3or4IEC",
8411        super_class: Some(438),
8412        concrete: false,
8413        origins: &["DY"],
8414        comment: "Parent class supporting relationships to IEC wind turbines type 3 and type 4 including their control models.",
8415        attrs: &[
8416            AttrDef { id: "WindTurbineType3or4IEC.WIndContQIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindContQIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind control Q model associated with this wind turbine type 3 or type 4 model." },
8417            AttrDef { id: "WindTurbineType3or4IEC.WindContCurrLimIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindContCurrLimIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind control current limitation model associated with this wind turbine type 3 or type 4 model." },
8418            AttrDef { id: "WindTurbineType3or4IEC.WindContQLimIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindContQLimIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Constant Q limitation model associated with this wind generator type 3 or type 4 model." },
8419            AttrDef { id: "WindTurbineType3or4IEC.WindContQPQULimIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindContQPQULimIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "QP and QU limitation model associated with this wind generator type 3 or type 4 model." },
8420            AttrDef { id: "WindTurbineType3or4IEC.WindProtectionIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindProtectionIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind turbune protection model associated with this wind generator type 3 or type 4 model." },
8421            AttrDef { id: "WindTurbineType3or4IEC.WindRefFrameRotIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindRefFrameRotIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Reference frame rotation model associated with this wind turbine type 3 or type 4 model." },
8422        ],
8423    },
8424    ClassDef {
8425        ns: "http://iec.ch/TC57/CIM100#",
8426        local: "WindTurbineType4IEC",
8427        qualified: "WindTurbineType4IEC",
8428        super_class: Some(439),
8429        concrete: false,
8430        origins: &["DY"],
8431        comment: "Parent class supporting relationships to IEC wind turbines type 4 including their control models.",
8432        attrs: &[
8433            AttrDef { id: "WindTurbineType4IEC.WindGenType3aIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindGenType3aIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind generator type 3A model associated with this wind turbine type 4 model." },
8434        ],
8435    },
8436    ClassDef {
8437        ns: "http://iec.ch/TC57/CIM100#",
8438        local: "WindTurbineType4aIEC",
8439        qualified: "WindTurbineType4aIEC",
8440        super_class: Some(440),
8441        concrete: true,
8442        origins: &["DY"],
8443        comment: "Wind turbine IEC type 4A. Reference: IEC 61400-27-1:2015, 5.5.5.2.",
8444        attrs: &[
8445            AttrDef { id: "WindTurbineType4aIEC.WindContPType4aIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindContPType4aIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind control P type 4A model associated with this wind turbine type 4A model." },
8446            AttrDef { id: "WindTurbineType4aIEC.WindGenType4IEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindGenType4IEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind generator type 4 model associated with this wind turbine type 4A model." },
8447        ],
8448    },
8449    ClassDef {
8450        ns: "http://iec.ch/TC57/CIM100#",
8451        local: "WindTurbineType4bIEC",
8452        qualified: "WindTurbineType4bIEC",
8453        super_class: Some(440),
8454        concrete: true,
8455        origins: &["DY"],
8456        comment: "Wind turbine IEC type 4B. Reference: IEC 61400-27-1:2015, 5.5.5.3.",
8457        attrs: &[
8458            AttrDef { id: "WindTurbineType4bIEC.WindContPType4bIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindContPType4bIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind control P type 4B model associated with this wind turbine type 4B model." },
8459            AttrDef { id: "WindTurbineType4bIEC.WindGenType4IEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindGenType4IEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind generator type 4 model associated with this wind turbine type 4B model." },
8460            AttrDef { id: "WindTurbineType4bIEC.WindMechIEC", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "WindMechIEC", is_list: false, used: true, xsd: "", value_ns: "", origins: &["DY"], comment: "Wind mechanical model associated with this wind turbine type 4B model." },
8461        ],
8462    },
8463    ClassDef {
8464        ns: "http://iec.ch/TC57/CIM100#",
8465        local: "WindType1or2UserDefined",
8466        qualified: "WindType1or2UserDefined",
8467        super_class: Some(435),
8468        concrete: true,
8469        origins: &["DY"],
8470        comment: "Wind type 1 or type 2 function block whose dynamic behaviour is described by a user-defined model.",
8471        attrs: &[
8472            AttrDef { id: "WindType1or2UserDefined.ProprietaryParameterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ProprietaryParameterDynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Parameter of this proprietary user-defined model." },
8473            AttrDef { id: "WindType1or2UserDefined.proprietary", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Behaviour is based on a proprietary model as opposed to a detailed model. true = user-defined model is proprietary with behaviour mutually understood by sending and receiving applications and parameters passed as general attributes false = user-defined model is explicitly defined in terms of control blocks and their input and output signals." },
8474        ],
8475    },
8476    ClassDef {
8477        ns: "http://iec.ch/TC57/CIM100#",
8478        local: "WindType3or4UserDefined",
8479        qualified: "WindType3or4UserDefined",
8480        super_class: Some(438),
8481        concrete: true,
8482        origins: &["DY"],
8483        comment: "Wind type 3 or type 4 function block whose dynamic behaviour is described by a user-defined model.",
8484        attrs: &[
8485            AttrDef { id: "WindType3or4UserDefined.ProprietaryParameterDynamics", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Association, range: "ProprietaryParameterDynamics", is_list: true, used: false, xsd: "", value_ns: "", origins: &["DY"], comment: "Parameter of this proprietary user-defined model." },
8486            AttrDef { id: "WindType3or4UserDefined.proprietary", ns: "http://iec.ch/TC57/CIM100#", kind: AttrKind::Literal, range: "Boolean", is_list: false, used: true, xsd: "boolean", value_ns: "", origins: &["DY"], comment: "Behaviour is based on a proprietary model as opposed to a detailed model. true = user-defined model is proprietary with behaviour mutually understood by sending and receiving applications and parameters passed as general attributes false = user-defined model is explicitly defined in terms of control blocks and their input and output signals." },
8487        ],
8488    },
8489    ClassDef {
8490        ns: "http://iec.ch/TC57/CIM100#",
8491        local: "WorkLocation",
8492        qualified: "WorkLocation",
8493        super_class: Some(232),
8494        concrete: false,
8495        origins: &["GL"],
8496        comment: "Information about a particular location for various forms of work.",
8497        attrs: &[],
8498    },
8499];
8500
8501/// Profile code → profile URI, sorted by code.
8502pub static PROFILES: &[(&str, &str)] = &[
8503    ("DL", "http://iec.ch/TC57/ns/CIM/DiagramLayout-EU/3.0"),
8504    ("DY", "http://iec.ch/TC57/ns/CIM/Dynamics-EU/1.0"),
8505    ("EQ", "http://iec.ch/TC57/ns/CIM/CoreEquipment-EU/3.0"),
8506    ("EQBD", "http://iec.ch/TC57/ns/CIM/EquipmentBoundary-EU/3.0"),
8507    ("FH", "http://iec.ch/TC57/61970-552/ModelDescription/1"),
8508    ("GL", "http://iec.ch/TC57/ns/CIM/GeographicalLocation-EU/3.0"),
8509    ("OP", "http://iec.ch/TC57/ns/CIM/Operation-EU/3.0"),
8510    ("SC", "http://iec.ch/TC57/ns/CIM/ShortCircuit-EU/3.0"),
8511    ("SSH", "http://iec.ch/TC57/ns/CIM/SteadyStateHypothesis-EU/3.0"),
8512    ("SV", "http://iec.ch/TC57/ns/CIM/StateVariables-EU/3.0"),
8513    ("TP", "http://iec.ch/TC57/ns/CIM/Topology-EU/3.0"),
8514];
8515
8516/// XML prefix → namespace IRI, sorted by prefix.
8517pub static NAMESPACES: &[(&str, &str)] = &[
8518    ("cim", "http://iec.ch/TC57/CIM100#"),
8519    ("dm", "http://iec.ch/TC57/61970-552/DifferenceModel/1#"),
8520    ("eu", "http://iec.ch/TC57/CIM100-European#"),
8521    ("md", "http://iec.ch/TC57/61970-552/ModelDescription/1#"),
8522    ("rdf", "http://www.w3.org/1999/02/22-rdf-syntax-ns#"),
8523];
8524
8525/// Every enumeration of the `cgmes` family, sorted by name.
8526pub static ENUMS: &[EnumDef] = &[
8527    EnumDef {
8528        ns: "http://iec.ch/TC57/CIM100#",
8529        local: "AsynchronousMachineKind",
8530        comment: "Kind of Asynchronous Machine.",
8531        values: &[
8532            EnumValueDef { id: "AsynchronousMachineKind.generator", comment: "The Asynchronous Machine is a generator." },
8533            EnumValueDef { id: "AsynchronousMachineKind.motor", comment: "The Asynchronous Machine is a motor." },
8534        ],
8535    },
8536    EnumDef {
8537        ns: "http://iec.ch/TC57/CIM100#",
8538        local: "BatteryStateKind",
8539        comment: "The state of the battery unit.",
8540        values: &[
8541            EnumValueDef { id: "BatteryStateKind.discharging", comment: "Stored energy is decreasing." },
8542            EnumValueDef { id: "BatteryStateKind.full", comment: "Unable to charge, and not discharging." },
8543            EnumValueDef { id: "BatteryStateKind.waiting", comment: "Neither charging nor discharging, but able to do so." },
8544            EnumValueDef { id: "BatteryStateKind.charging", comment: "Stored energy is increasing." },
8545            EnumValueDef { id: "BatteryStateKind.empty", comment: "Unable to discharge, and not charging." },
8546        ],
8547    },
8548    EnumDef {
8549        ns: "http://iec.ch/TC57/CIM100#",
8550        local: "ControlAreaTypeKind",
8551        comment: "The type of control area.",
8552        values: &[
8553            EnumValueDef { id: "ControlAreaTypeKind.AGC", comment: "Used for automatic generation control." },
8554            EnumValueDef { id: "ControlAreaTypeKind.Forecast", comment: "Used for load forecast." },
8555            EnumValueDef { id: "ControlAreaTypeKind.Interchange", comment: "Used for interchange specification or control." },
8556        ],
8557    },
8558    EnumDef {
8559        ns: "http://iec.ch/TC57/CIM100#",
8560        local: "CsOperatingModeKind",
8561        comment: "Operating mode for HVDC line operating as Current Source Converter.",
8562        values: &[
8563            EnumValueDef { id: "CsOperatingModeKind.inverter", comment: "Operating as inverter, which is the power receiving end." },
8564            EnumValueDef { id: "CsOperatingModeKind.rectifier", comment: "Operating as rectifier, which is the power sending end." },
8565        ],
8566    },
8567    EnumDef {
8568        ns: "http://iec.ch/TC57/CIM100#",
8569        local: "CsPpccControlKind",
8570        comment: "Active power control modes for HVDC line operating as Current Source Converter.",
8571        values: &[
8572            EnumValueDef { id: "CsPpccControlKind.activePower", comment: "Control is active power control at AC side, at point of common coupling. Target is provided by ACDCConverter.targetPpcc." },
8573            EnumValueDef { id: "CsPpccControlKind.dcVoltage", comment: "Control is DC voltage with target value provided by ACDCConverter.targetUdc." },
8574            EnumValueDef { id: "CsPpccControlKind.dcCurrent", comment: "Control is DC current with target value provided by CsConverter.targetIdc." },
8575        ],
8576    },
8577    EnumDef {
8578        ns: "http://iec.ch/TC57/CIM100#",
8579        local: "Currency",
8580        comment: "Monetary currencies. ISO 4217 standard including 3-character currency code.",
8581        values: &[
8582            EnumValueDef { id: "Currency.AED", comment: "United Arab Emirates dirham." },
8583            EnumValueDef { id: "Currency.AFN", comment: "Afghan afghani." },
8584            EnumValueDef { id: "Currency.ALL", comment: "Albanian lek." },
8585            EnumValueDef { id: "Currency.AMD", comment: "Armenian dram." },
8586            EnumValueDef { id: "Currency.ANG", comment: "Netherlands Antillean guilder." },
8587            EnumValueDef { id: "Currency.AOA", comment: "Angolan kwanza." },
8588            EnumValueDef { id: "Currency.ARS", comment: "Argentine peso." },
8589            EnumValueDef { id: "Currency.AUD", comment: "Australian dollar." },
8590            EnumValueDef { id: "Currency.AWG", comment: "Aruban florin." },
8591            EnumValueDef { id: "Currency.AZN", comment: "Azerbaijani manat." },
8592            EnumValueDef { id: "Currency.BAM", comment: "Bosnia and Herzegovina convertible mark." },
8593            EnumValueDef { id: "Currency.BBD", comment: "Barbados dollar." },
8594            EnumValueDef { id: "Currency.BDT", comment: "Bangladeshi taka." },
8595            EnumValueDef { id: "Currency.BGN", comment: "Bulgarian lev." },
8596            EnumValueDef { id: "Currency.BHD", comment: "Bahraini dinar." },
8597            EnumValueDef { id: "Currency.BIF", comment: "Burundian franc." },
8598            EnumValueDef { id: "Currency.BMD", comment: "Bermudian dollar (customarily known as Bermuda dollar)." },
8599            EnumValueDef { id: "Currency.BND", comment: "Brunei dollar." },
8600            EnumValueDef { id: "Currency.BOB", comment: "Boliviano." },
8601            EnumValueDef { id: "Currency.BOV", comment: "Bolivian Mvdol (funds code)." },
8602            EnumValueDef { id: "Currency.BRL", comment: "Brazilian real." },
8603            EnumValueDef { id: "Currency.BSD", comment: "Bahamian dollar." },
8604            EnumValueDef { id: "Currency.BTN", comment: "Bhutanese ngultrum." },
8605            EnumValueDef { id: "Currency.BWP", comment: "Botswana pula." },
8606            EnumValueDef { id: "Currency.BYR", comment: "Belarusian ruble." },
8607            EnumValueDef { id: "Currency.BZD", comment: "Belize dollar." },
8608            EnumValueDef { id: "Currency.CAD", comment: "Canadian dollar." },
8609            EnumValueDef { id: "Currency.CDF", comment: "Congolese franc." },
8610            EnumValueDef { id: "Currency.CHF", comment: "Swiss franc." },
8611            EnumValueDef { id: "Currency.CLF", comment: "Unidad de Fomento (funds code), Chile." },
8612            EnumValueDef { id: "Currency.CLP", comment: "Chilean peso." },
8613            EnumValueDef { id: "Currency.CNY", comment: "Chinese yuan." },
8614            EnumValueDef { id: "Currency.COP", comment: "Colombian peso." },
8615            EnumValueDef { id: "Currency.COU", comment: "Unidad de Valor Real." },
8616            EnumValueDef { id: "Currency.CRC", comment: "Costa Rican colon." },
8617            EnumValueDef { id: "Currency.CUC", comment: "Cuban convertible peso." },
8618            EnumValueDef { id: "Currency.CUP", comment: "Cuban peso." },
8619            EnumValueDef { id: "Currency.CVE", comment: "Cape Verde escudo." },
8620            EnumValueDef { id: "Currency.CZK", comment: "Czech koruna." },
8621            EnumValueDef { id: "Currency.DJF", comment: "Djiboutian franc." },
8622            EnumValueDef { id: "Currency.DKK", comment: "Danish krone." },
8623            EnumValueDef { id: "Currency.DOP", comment: "Dominican peso." },
8624            EnumValueDef { id: "Currency.DZD", comment: "Algerian dinar." },
8625            EnumValueDef { id: "Currency.EEK", comment: "Estonian kroon." },
8626            EnumValueDef { id: "Currency.EGP", comment: "Egyptian pound." },
8627            EnumValueDef { id: "Currency.ERN", comment: "Eritrean nakfa." },
8628            EnumValueDef { id: "Currency.ETB", comment: "Ethiopian birr." },
8629            EnumValueDef { id: "Currency.EUR", comment: "Euro." },
8630            EnumValueDef { id: "Currency.FJD", comment: "Fiji dollar." },
8631            EnumValueDef { id: "Currency.FKP", comment: "Falkland Islands pound." },
8632            EnumValueDef { id: "Currency.GBP", comment: "Pound sterling." },
8633            EnumValueDef { id: "Currency.GEL", comment: "Georgian lari." },
8634            EnumValueDef { id: "Currency.GHS", comment: "Ghanaian cedi." },
8635            EnumValueDef { id: "Currency.GIP", comment: "Gibraltar pound." },
8636            EnumValueDef { id: "Currency.GMD", comment: "Gambian dalasi." },
8637            EnumValueDef { id: "Currency.GNF", comment: "Guinean franc." },
8638            EnumValueDef { id: "Currency.GTQ", comment: "Guatemalan quetzal." },
8639            EnumValueDef { id: "Currency.GYD", comment: "Guyanese dollar." },
8640            EnumValueDef { id: "Currency.HKD", comment: "Hong Kong dollar." },
8641            EnumValueDef { id: "Currency.HNL", comment: "Honduran lempira." },
8642            EnumValueDef { id: "Currency.HRK", comment: "Croatian kuna." },
8643            EnumValueDef { id: "Currency.HTG", comment: "Haitian gourde." },
8644            EnumValueDef { id: "Currency.HUF", comment: "Hungarian forint." },
8645            EnumValueDef { id: "Currency.IDR", comment: "Indonesian rupiah." },
8646            EnumValueDef { id: "Currency.ILS", comment: "Israeli new sheqel." },
8647            EnumValueDef { id: "Currency.INR", comment: "Indian rupee." },
8648            EnumValueDef { id: "Currency.IQD", comment: "Iraqi dinar." },
8649            EnumValueDef { id: "Currency.IRR", comment: "Iranian rial." },
8650            EnumValueDef { id: "Currency.ISK", comment: "Icelandic króna." },
8651            EnumValueDef { id: "Currency.JMD", comment: "Jamaican dollar." },
8652            EnumValueDef { id: "Currency.JOD", comment: "Jordanian dinar." },
8653            EnumValueDef { id: "Currency.JPY", comment: "Japanese yen." },
8654            EnumValueDef { id: "Currency.KES", comment: "Kenyan shilling." },
8655            EnumValueDef { id: "Currency.KGS", comment: "Kyrgyzstani som." },
8656            EnumValueDef { id: "Currency.KHR", comment: "Cambodian riel." },
8657            EnumValueDef { id: "Currency.KMF", comment: "Comoro franc." },
8658            EnumValueDef { id: "Currency.KPW", comment: "North Korean won." },
8659            EnumValueDef { id: "Currency.KRW", comment: "South Korean won." },
8660            EnumValueDef { id: "Currency.KWD", comment: "Kuwaiti dinar." },
8661            EnumValueDef { id: "Currency.KYD", comment: "Cayman Islands dollar." },
8662            EnumValueDef { id: "Currency.KZT", comment: "Kazakhstani tenge." },
8663            EnumValueDef { id: "Currency.LAK", comment: "Lao kip." },
8664            EnumValueDef { id: "Currency.LBP", comment: "Lebanese pound." },
8665            EnumValueDef { id: "Currency.LKR", comment: "Sri Lanka rupee." },
8666            EnumValueDef { id: "Currency.LRD", comment: "Liberian dollar." },
8667            EnumValueDef { id: "Currency.LSL", comment: "Lesotho loti." },
8668            EnumValueDef { id: "Currency.LTL", comment: "Lithuanian litas." },
8669            EnumValueDef { id: "Currency.LVL", comment: "Latvian lats." },
8670            EnumValueDef { id: "Currency.LYD", comment: "Libyan dinar." },
8671            EnumValueDef { id: "Currency.MAD", comment: "Moroccan dirham." },
8672            EnumValueDef { id: "Currency.MDL", comment: "Moldovan leu." },
8673            EnumValueDef { id: "Currency.MGA", comment: "Malagasy ariary." },
8674            EnumValueDef { id: "Currency.MKD", comment: "Macedonian denar." },
8675            EnumValueDef { id: "Currency.MMK", comment: "Myanma kyat." },
8676            EnumValueDef { id: "Currency.MNT", comment: "Mongolian tugrik." },
8677            EnumValueDef { id: "Currency.MOP", comment: "Macanese pataca." },
8678            EnumValueDef { id: "Currency.MRO", comment: "Mauritanian ouguiya." },
8679            EnumValueDef { id: "Currency.MUR", comment: "Mauritian rupee." },
8680            EnumValueDef { id: "Currency.MVR", comment: "Maldivian rufiyaa." },
8681            EnumValueDef { id: "Currency.MWK", comment: "Malawian kwacha." },
8682            EnumValueDef { id: "Currency.MXN", comment: "Mexican peso." },
8683            EnumValueDef { id: "Currency.MYR", comment: "Malaysian ringgit." },
8684            EnumValueDef { id: "Currency.MZN", comment: "Mozambican metical." },
8685            EnumValueDef { id: "Currency.NAD", comment: "Namibian dollar." },
8686            EnumValueDef { id: "Currency.NGN", comment: "Nigerian naira." },
8687            EnumValueDef { id: "Currency.NIO", comment: "Cordoba oro." },
8688            EnumValueDef { id: "Currency.NOK", comment: "Norwegian krone." },
8689            EnumValueDef { id: "Currency.NPR", comment: "Nepalese rupee." },
8690            EnumValueDef { id: "Currency.NZD", comment: "New Zealand dollar." },
8691            EnumValueDef { id: "Currency.OMR", comment: "Omani rial." },
8692            EnumValueDef { id: "Currency.PAB", comment: "Panamanian balboa." },
8693            EnumValueDef { id: "Currency.PEN", comment: "Peruvian nuevo sol." },
8694            EnumValueDef { id: "Currency.PGK", comment: "Papua New Guinean kina." },
8695            EnumValueDef { id: "Currency.PHP", comment: "Philippine peso." },
8696            EnumValueDef { id: "Currency.PKR", comment: "Pakistani rupee." },
8697            EnumValueDef { id: "Currency.PLN", comment: "Polish zloty." },
8698            EnumValueDef { id: "Currency.PYG", comment: "Paraguayan guaraní." },
8699            EnumValueDef { id: "Currency.QAR", comment: "Qatari rial." },
8700            EnumValueDef { id: "Currency.RON", comment: "Romanian new leu." },
8701            EnumValueDef { id: "Currency.RSD", comment: "Serbian dinar." },
8702            EnumValueDef { id: "Currency.RUB", comment: "Russian rouble." },
8703            EnumValueDef { id: "Currency.RWF", comment: "Rwandan franc." },
8704            EnumValueDef { id: "Currency.SAR", comment: "Saudi riyal." },
8705            EnumValueDef { id: "Currency.SBD", comment: "Solomon Islands dollar." },
8706            EnumValueDef { id: "Currency.SCR", comment: "Seychelles rupee." },
8707            EnumValueDef { id: "Currency.SDG", comment: "Sudanese pound." },
8708            EnumValueDef { id: "Currency.SEK", comment: "Swedish krona/kronor." },
8709            EnumValueDef { id: "Currency.SGD", comment: "Singapore dollar." },
8710            EnumValueDef { id: "Currency.SHP", comment: "Saint Helena pound." },
8711            EnumValueDef { id: "Currency.SLL", comment: "Sierra Leonean leone." },
8712            EnumValueDef { id: "Currency.SOS", comment: "Somali shilling." },
8713            EnumValueDef { id: "Currency.SRD", comment: "Surinamese dollar." },
8714            EnumValueDef { id: "Currency.STD", comment: "São Tomé and Príncipe dobra." },
8715            EnumValueDef { id: "Currency.SYP", comment: "Syrian pound." },
8716            EnumValueDef { id: "Currency.SZL", comment: "Lilangeni." },
8717            EnumValueDef { id: "Currency.THB", comment: "Thai baht." },
8718            EnumValueDef { id: "Currency.TJS", comment: "Tajikistani somoni." },
8719            EnumValueDef { id: "Currency.TMT", comment: "Turkmenistani manat." },
8720            EnumValueDef { id: "Currency.TND", comment: "Tunisian dinar." },
8721            EnumValueDef { id: "Currency.TOP", comment: "Tongan pa'anga." },
8722            EnumValueDef { id: "Currency.TRY", comment: "Turkish lira." },
8723            EnumValueDef { id: "Currency.TTD", comment: "Trinidad and Tobago dollar." },
8724            EnumValueDef { id: "Currency.TWD", comment: "New Taiwan dollar." },
8725            EnumValueDef { id: "Currency.TZS", comment: "Tanzanian shilling." },
8726            EnumValueDef { id: "Currency.UAH", comment: "Ukrainian hryvnia." },
8727            EnumValueDef { id: "Currency.UGX", comment: "Ugandan shilling." },
8728            EnumValueDef { id: "Currency.USD", comment: "United States dollar." },
8729            EnumValueDef { id: "Currency.UYU", comment: "Uruguayan peso." },
8730            EnumValueDef { id: "Currency.UZS", comment: "Uzbekistan som." },
8731            EnumValueDef { id: "Currency.VEF", comment: "Venezuelan bolívar fuerte." },
8732            EnumValueDef { id: "Currency.VND", comment: "Vietnamese Dong." },
8733            EnumValueDef { id: "Currency.VUV", comment: "Vanuatu vatu." },
8734            EnumValueDef { id: "Currency.WST", comment: "Samoan tala." },
8735            EnumValueDef { id: "Currency.XAF", comment: "CFA franc BEAC." },
8736            EnumValueDef { id: "Currency.XCD", comment: "East Caribbean dollar." },
8737            EnumValueDef { id: "Currency.XOF", comment: "CFA Franc BCEAO." },
8738            EnumValueDef { id: "Currency.XPF", comment: "CFP franc." },
8739            EnumValueDef { id: "Currency.YER", comment: "Yemeni rial." },
8740            EnumValueDef { id: "Currency.ZAR", comment: "South African rand." },
8741            EnumValueDef { id: "Currency.ZMK", comment: "Zambian kwacha." },
8742            EnumValueDef { id: "Currency.ZWL", comment: "Zimbabwe dollar." },
8743        ],
8744    },
8745    EnumDef {
8746        ns: "http://iec.ch/TC57/CIM100#",
8747        local: "CurveStyle",
8748        comment: "Style or shape of curve.",
8749        values: &[
8750            EnumValueDef { id: "CurveStyle.constantYValue", comment: "The Y-axis values are assumed constant until the next curve point and prior to the first curve point." },
8751            EnumValueDef { id: "CurveStyle.straightLineYValues", comment: "The Y-axis values are assumed to be a straight line between values. Also known as linear interpolation." },
8752        ],
8753    },
8754    EnumDef {
8755        ns: "http://iec.ch/TC57/CIM100#",
8756        local: "DCConverterOperatingModeKind",
8757        comment: "The operating mode of an HVDC bipole.",
8758        values: &[
8759            EnumValueDef { id: "DCConverterOperatingModeKind.bipolar", comment: "Bipolar operation." },
8760            EnumValueDef { id: "DCConverterOperatingModeKind.monopolarMetallicReturn", comment: "Monopolar operation with metallic return." },
8761            EnumValueDef { id: "DCConverterOperatingModeKind.monopolarGroundReturn", comment: "Monopolar operation with ground return." },
8762        ],
8763    },
8764    EnumDef {
8765        ns: "http://iec.ch/TC57/CIM100#",
8766        local: "DCPolarityKind",
8767        comment: "Polarity for DC circuits.",
8768        values: &[
8769            EnumValueDef { id: "DCPolarityKind.positive", comment: "Positive pole. The converter terminal is intended to operate at a positive voltage relative the midpoint or negative terminal." },
8770            EnumValueDef { id: "DCPolarityKind.middle", comment: "Middle pole. The converter terminal is the midpoint in a bipolar or symmetric monopole configuration. The midpoint can be grounded and/or have a metallic return." },
8771            EnumValueDef { id: "DCPolarityKind.negative", comment: "Negative pole. The converter terminal is intended to operate at a negative voltage relative the midpoint or positive terminal." },
8772        ],
8773    },
8774    EnumDef {
8775        ns: "http://iec.ch/TC57/CIM100#",
8776        local: "DroopSignalFeedbackKind",
8777        comment: "Governor droop signal feedback source.",
8778        values: &[
8779            EnumValueDef { id: "DroopSignalFeedbackKind.electricalPower", comment: "Electrical power feedback (connection indicated as 1 in the block diagrams of models, e.g. GovCT1, GovCT2)." },
8780            EnumValueDef { id: "DroopSignalFeedbackKind.none", comment: "No droop signal feedback, is isochronous governor." },
8781            EnumValueDef { id: "DroopSignalFeedbackKind.fuelValveStroke", comment: "Fuel valve stroke feedback (true stroke) (connection indicated as 2 in the block diagrams of model, e.g. GovCT1, GovCT2)." },
8782            EnumValueDef { id: "DroopSignalFeedbackKind.governorOutput", comment: "Governor output feedback (requested stroke) (connection indicated as 3 in the block diagrams of models, e.g. GovCT1, GovCT2)." },
8783        ],
8784    },
8785    EnumDef {
8786        ns: "http://iec.ch/TC57/CIM100#",
8787        local: "ExcIEEEST1AUELselectorKind",
8788        comment: "Types of connections for the UEL input used in ExcIEEEST1A.",
8789        values: &[
8790            EnumValueDef { id: "ExcIEEEST1AUELselectorKind.ignoreUELsignal", comment: "Ignore UEL signal." },
8791            EnumValueDef { id: "ExcIEEEST1AUELselectorKind.inputHVgateVoltageOutput", comment: "UEL input HV gate with voltage regulator output." },
8792            EnumValueDef { id: "ExcIEEEST1AUELselectorKind.inputHVgateErrorSignal", comment: "UEL input HV gate with error signal." },
8793            EnumValueDef { id: "ExcIEEEST1AUELselectorKind.inputAddedToErrorSignal", comment: "UEL input added to error signal." },
8794        ],
8795    },
8796    EnumDef {
8797        ns: "http://iec.ch/TC57/CIM100#",
8798        local: "ExcREXSFeedbackSignalKind",
8799        comment: "Types of rate feedback signals.",
8800        values: &[
8801            EnumValueDef { id: "ExcREXSFeedbackSignalKind.fieldVoltage", comment: "The voltage regulator output voltage is used. It is the same as exciter field voltage." },
8802            EnumValueDef { id: "ExcREXSFeedbackSignalKind.fieldCurrent", comment: "The exciter field current is used." },
8803            EnumValueDef { id: "ExcREXSFeedbackSignalKind.outputVoltage", comment: "The output voltage of the exciter is used." },
8804        ],
8805    },
8806    EnumDef {
8807        ns: "http://iec.ch/TC57/CIM100#",
8808        local: "ExcST6BOELselectorKind",
8809        comment: "Types of connections for the OEL input used for static excitation systems type 6B.",
8810        values: &[
8811            EnumValueDef { id: "ExcST6BOELselectorKind.noOELinput", comment: "No OEL input is used. Corresponds to OELin not = 1 and not = 2 on the ExcST6B diagram. Original ExcST6B model would have called this OELin = 0." },
8812            EnumValueDef { id: "ExcST6BOELselectorKind.beforeUEL", comment: "The connection is before UEL. Corresponds to OELin = 1 on the ExcST6B diagram." },
8813            EnumValueDef { id: "ExcST6BOELselectorKind.afterUEL", comment: "The connection is after UEL. Corresponds to OELin = 2 on the ExcST6B diagram." },
8814        ],
8815    },
8816    EnumDef {
8817        ns: "http://iec.ch/TC57/CIM100#",
8818        local: "ExcST7BOELselectorKind",
8819        comment: "Types of connections for the OEL input used for static excitation systems type 7B.",
8820        values: &[
8821            EnumValueDef { id: "ExcST7BOELselectorKind.noOELinput", comment: "No OEL input is used. Corresponds to OELin not = 1 and not = 2 and not = 3 on the ExcST7B diagram. Original ExcST7B model would have called this OELin = 0." },
8822            EnumValueDef { id: "ExcST7BOELselectorKind.addVref", comment: "The signal is added to Vref. Corresponds to OELin = 1 on the ExcST7B diagram." },
8823            EnumValueDef { id: "ExcST7BOELselectorKind.inputLVgate", comment: "The signal is connected into the input LVGate. Corresponds to OELin = 2 on the ExcST7B diagram." },
8824            EnumValueDef { id: "ExcST7BOELselectorKind.outputLVgate", comment: "The signal is connected into the output LVGate. Corresponds to OELin = 3 on the ExcST7B diagram." },
8825        ],
8826    },
8827    EnumDef {
8828        ns: "http://iec.ch/TC57/CIM100#",
8829        local: "ExcST7BUELselectorKind",
8830        comment: "Types of connections for the UEL input used for static excitation systems type 7B.",
8831        values: &[
8832            EnumValueDef { id: "ExcST7BUELselectorKind.noUELinput", comment: "No UEL input is used. Corresponds to UELin not = 1 and not = 2 and not = 3 on the ExcST7B diagram. Original ExcST7B model would have called this UELin = 0." },
8833            EnumValueDef { id: "ExcST7BUELselectorKind.addVref", comment: "The signal is added to Vref. Corresponds to UELin = 1 on the ExcST7B diagram." },
8834            EnumValueDef { id: "ExcST7BUELselectorKind.inputHVgate", comment: "The signal is connected into the input HVGate. Corresponds to UELin = 2 on the ExcST7B diagram." },
8835            EnumValueDef { id: "ExcST7BUELselectorKind.outputHVgate", comment: "The signal is connected into the output HVGate. Corresponds to UELin = 3 on the ExcST7B diagram." },
8836        ],
8837    },
8838    EnumDef {
8839        ns: "http://iec.ch/TC57/CIM100#",
8840        local: "FrancisGovernorControlKind",
8841        comment: "Governor control flag for Francis hydro model.",
8842        values: &[
8843            EnumValueDef { id: "FrancisGovernorControlKind.mechanicHydrolicTachoAccelerator", comment: "Mechanic-hydraulic regulator with tacho-accelerometer (Cflag = 1)." },
8844            EnumValueDef { id: "FrancisGovernorControlKind.mechanicHydraulicTransientFeedback", comment: "Mechanic-hydraulic regulator with transient feedback (Cflag=2)." },
8845            EnumValueDef { id: "FrancisGovernorControlKind.electromechanicalElectrohydraulic", comment: "Electromechanical and electrohydraulic regulator (Cflag=3)." },
8846        ],
8847    },
8848    EnumDef {
8849        ns: "http://iec.ch/TC57/CIM100#",
8850        local: "FuelType",
8851        comment: "Type of fuel.",
8852        values: &[
8853            EnumValueDef { id: "FuelType.coal", comment: "Generic coal, not including lignite type." },
8854            EnumValueDef { id: "FuelType.oil", comment: "Oil." },
8855            EnumValueDef { id: "FuelType.gas", comment: "Natural gas." },
8856            EnumValueDef { id: "FuelType.lignite", comment: "The fuel is lignite coal. Note that this is a special type of coal, so the other enum of coal is reserved for hard coal types or if the exact type of coal is not known." },
8857            EnumValueDef { id: "FuelType.hardCoal", comment: "Hard coal." },
8858            EnumValueDef { id: "FuelType.oilShale", comment: "Oil Shale." },
8859            EnumValueDef { id: "FuelType.brownCoalLignite", comment: "Brown coal lignite." },
8860            EnumValueDef { id: "FuelType.coalDerivedGas", comment: "Coal derived gas." },
8861            EnumValueDef { id: "FuelType.peat", comment: "Peat." },
8862            EnumValueDef { id: "FuelType.other", comment: "Any fuel type not included in the rest of the enumerated value." },
8863        ],
8864    },
8865    EnumDef {
8866        ns: "http://iec.ch/TC57/CIM100#",
8867        local: "GeneratorControlSource",
8868        comment: "The source of controls for a generating unit.",
8869        values: &[
8870            EnumValueDef { id: "GeneratorControlSource.unavailable", comment: "Not available." },
8871            EnumValueDef { id: "GeneratorControlSource.offAGC", comment: "Off of automatic generation control (AGC)." },
8872            EnumValueDef { id: "GeneratorControlSource.onAGC", comment: "On automatic generation control (AGC)." },
8873            EnumValueDef { id: "GeneratorControlSource.plantControl", comment: "Plant is controlling." },
8874        ],
8875    },
8876    EnumDef {
8877        ns: "http://iec.ch/TC57/CIM100#",
8878        local: "GenericNonLinearLoadModelKind",
8879        comment: "Type of generic non-linear load model.",
8880        values: &[
8881            EnumValueDef { id: "GenericNonLinearLoadModelKind.exponentialRecovery", comment: "Exponential recovery model." },
8882            EnumValueDef { id: "GenericNonLinearLoadModelKind.loadAdaptive", comment: "Load adaptive model." },
8883        ],
8884    },
8885    EnumDef {
8886        ns: "http://iec.ch/TC57/CIM100#",
8887        local: "GovHydro4ModelKind",
8888        comment: "Possible types of GovHydro4 models.",
8889        values: &[
8890            EnumValueDef { id: "GovHydro4ModelKind.simple", comment: "Simple model." },
8891            EnumValueDef { id: "GovHydro4ModelKind.francisPelton", comment: "Francis or Pelton model." },
8892            EnumValueDef { id: "GovHydro4ModelKind.kaplan", comment: "Kaplan model." },
8893        ],
8894    },
8895    EnumDef {
8896        ns: "http://iec.ch/TC57/CIM100#",
8897        local: "HydroEnergyConversionKind",
8898        comment: "Specifies the capability of the hydro generating unit to convert energy as a generator or pump.",
8899        values: &[
8900            EnumValueDef { id: "HydroEnergyConversionKind.generator", comment: "Able to generate power, but not able to pump water for energy storage." },
8901            EnumValueDef { id: "HydroEnergyConversionKind.pumpAndGenerator", comment: "Able to both generate power and pump water for energy storage." },
8902        ],
8903    },
8904    EnumDef {
8905        ns: "http://iec.ch/TC57/CIM100#",
8906        local: "HydroPlantStorageKind",
8907        comment: "The type of hydro power plant.",
8908        values: &[
8909            EnumValueDef { id: "HydroPlantStorageKind.runOfRiver", comment: "Run of river." },
8910            EnumValueDef { id: "HydroPlantStorageKind.pumpedStorage", comment: "Pumped storage." },
8911            EnumValueDef { id: "HydroPlantStorageKind.storage", comment: "Storage." },
8912        ],
8913    },
8914    EnumDef {
8915        ns: "http://iec.ch/TC57/CIM100#",
8916        local: "HydroTurbineKind",
8917        comment: "Type of turbine.",
8918        values: &[
8919            EnumValueDef { id: "HydroTurbineKind.francis", comment: "Francis." },
8920            EnumValueDef { id: "HydroTurbineKind.pelton", comment: "Pelton." },
8921            EnumValueDef { id: "HydroTurbineKind.kaplan", comment: "Kaplan." },
8922        ],
8923    },
8924    EnumDef {
8925        ns: "http://iec.ch/TC57/CIM100#",
8926        local: "IfdBaseKind",
8927        comment: "Excitation base system mode.",
8928        values: &[
8929            EnumValueDef { id: "IfdBaseKind.ifag", comment: "Air gap line mode." },
8930            EnumValueDef { id: "IfdBaseKind.ifnl", comment: "No load system with saturation mode." },
8931            EnumValueDef { id: "IfdBaseKind.iffl", comment: "Full load system mode." },
8932        ],
8933    },
8934    EnumDef {
8935        ns: "http://iec.ch/TC57/CIM100#",
8936        local: "InputSignalKind",
8937        comment: "Types of input signals. In dynamics modelling, commonly represented by the j parameter.",
8938        values: &[
8939            EnumValueDef { id: "InputSignalKind.rotorSpeed", comment: "Input signal is rotor or shaft speed (angular frequency)." },
8940            EnumValueDef { id: "InputSignalKind.rotorAngularFrequencyDeviation", comment: "Input signal is rotor or shaft angular frequency deviation." },
8941            EnumValueDef { id: "InputSignalKind.busFrequency", comment: "Input signal is bus voltage frequency. This could be a terminal frequency or remote frequency." },
8942            EnumValueDef { id: "InputSignalKind.busFrequencyDeviation", comment: "Input signal is deviation of bus voltage frequency. This could be a terminal frequency deviation or remote frequency deviation." },
8943            EnumValueDef { id: "InputSignalKind.generatorElectricalPower", comment: "Input signal is generator electrical power on rated S." },
8944            EnumValueDef { id: "InputSignalKind.generatorAcceleratingPower", comment: "Input signal is generator accelerating power." },
8945            EnumValueDef { id: "InputSignalKind.busVoltage", comment: "Input signal is bus voltage. This could be a terminal voltage or remote voltage." },
8946            EnumValueDef { id: "InputSignalKind.busVoltageDerivative", comment: "Input signal is derivative of bus voltage. This could be a terminal voltage derivative or remote voltage derivative." },
8947            EnumValueDef { id: "InputSignalKind.branchCurrent", comment: "Input signal is amplitude of remote branch current." },
8948            EnumValueDef { id: "InputSignalKind.fieldCurrent", comment: "Input signal is generator field current." },
8949            EnumValueDef { id: "InputSignalKind.generatorMechanicalPower", comment: "Input signal is generator mechanical power." },
8950        ],
8951    },
8952    EnumDef {
8953        ns: "http://iec.ch/TC57/CIM100#",
8954        local: "OperationalLimitDirectionKind",
8955        comment: "The direction attribute describes the side of a limit that is a violation.",
8956        values: &[
8957            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." },
8958            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." },
8959            EnumValueDef { id: "OperationalLimitDirectionKind.absoluteValue", comment: "An absoluteValue limit means that a monitored absolute value above the limit value is a violation." },
8960        ],
8961    },
8962    EnumDef {
8963        ns: "http://iec.ch/TC57/CIM100#",
8964        local: "OrientationKind",
8965        comment: "The orientation of the coordinate system with respect to top, left, and the coordinate number system.",
8966        values: &[
8967            EnumValueDef { id: "OrientationKind.positive", comment: "For 2D diagrams, a positive orientation will result in X values increasing from left to right and Y values increasing from bottom to top. This is also known as a right hand orientation." },
8968            EnumValueDef { id: "OrientationKind.negative", comment: "For 2D diagrams, a negative orientation gives the left-hand orientation (favoured by computer graphics displays) with X values increasing from left to right and Y values increasing from top to bottom. This is also known as a left hand orientation." },
8969        ],
8970    },
8971    EnumDef {
8972        ns: "http://iec.ch/TC57/CIM100#",
8973        local: "PetersenCoilModeKind",
8974        comment: "The mode of operation for a Petersen coil.",
8975        values: &[
8976            EnumValueDef { id: "PetersenCoilModeKind.fixed", comment: "Fixed position." },
8977            EnumValueDef { id: "PetersenCoilModeKind.manual", comment: "Manual positioning." },
8978            EnumValueDef { id: "PetersenCoilModeKind.automaticPositioning", comment: "Automatic positioning." },
8979        ],
8980    },
8981    EnumDef {
8982        ns: "http://iec.ch/TC57/CIM100#",
8983        local: "PhaseCode",
8984        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.",
8985        values: &[
8986            EnumValueDef { id: "PhaseCode.ABCN", comment: "Phases A, B, C, and N." },
8987            EnumValueDef { id: "PhaseCode.ABC", comment: "Phases A, B, and C." },
8988            EnumValueDef { id: "PhaseCode.ABN", comment: "Phases A, B, and neutral." },
8989            EnumValueDef { id: "PhaseCode.ACN", comment: "Phases A, C and neutral." },
8990            EnumValueDef { id: "PhaseCode.BCN", comment: "Phases B, C, and neutral." },
8991            EnumValueDef { id: "PhaseCode.AB", comment: "Phases A and B." },
8992            EnumValueDef { id: "PhaseCode.AC", comment: "Phases A and C." },
8993            EnumValueDef { id: "PhaseCode.BC", comment: "Phases B and C." },
8994            EnumValueDef { id: "PhaseCode.AN", comment: "Phases A and neutral." },
8995            EnumValueDef { id: "PhaseCode.BN", comment: "Phases B and neutral." },
8996            EnumValueDef { id: "PhaseCode.CN", comment: "Phases C and neutral." },
8997            EnumValueDef { id: "PhaseCode.A", comment: "Phase A." },
8998            EnumValueDef { id: "PhaseCode.B", comment: "Phase B." },
8999            EnumValueDef { id: "PhaseCode.C", comment: "Phase C." },
9000            EnumValueDef { id: "PhaseCode.N", comment: "Neutral phase." },
9001            EnumValueDef { id: "PhaseCode.s1N", comment: "Secondary phase 1 and neutral." },
9002            EnumValueDef { id: "PhaseCode.s2N", comment: "Secondary phase 2 and neutral." },
9003            EnumValueDef { id: "PhaseCode.s12N", comment: "Secondary phases 1, 2, and neutral." },
9004            EnumValueDef { id: "PhaseCode.s1", comment: "Secondary phase 1." },
9005            EnumValueDef { id: "PhaseCode.s2", comment: "Secondary phase 2." },
9006            EnumValueDef { id: "PhaseCode.s12", comment: "Secondary phase 1 and 2." },
9007            EnumValueDef { id: "PhaseCode.none", comment: "No phases specified." },
9008            EnumValueDef { id: "PhaseCode.X", comment: "Unknown non-neutral phase." },
9009            EnumValueDef { id: "PhaseCode.XY", comment: "Two unknown non-neutral phases." },
9010            EnumValueDef { id: "PhaseCode.XN", comment: "Unknown non-neutral phase plus neutral." },
9011            EnumValueDef { id: "PhaseCode.XYN", comment: "Two unknown non-neutral phases plus neutral." },
9012        ],
9013    },
9014    EnumDef {
9015        ns: "http://iec.ch/TC57/CIM100#",
9016        local: "RegulatingControlModeKind",
9017        comment: "The kind of regulation model. For example regulating voltage, reactive power, active power, etc.",
9018        values: &[
9019            EnumValueDef { id: "RegulatingControlModeKind.voltage", comment: "Voltage is specified." },
9020            EnumValueDef { id: "RegulatingControlModeKind.activePower", comment: "Active power is specified." },
9021            EnumValueDef { id: "RegulatingControlModeKind.reactivePower", comment: "Reactive power is specified." },
9022            EnumValueDef { id: "RegulatingControlModeKind.currentFlow", comment: "Current flow is specified." },
9023            EnumValueDef { id: "RegulatingControlModeKind.admittance", comment: "Admittance is specified." },
9024            EnumValueDef { id: "RegulatingControlModeKind.timeScheduled", comment: "Control switches on/off by time of day. The times may change on the weekend, or in different seasons." },
9025            EnumValueDef { id: "RegulatingControlModeKind.temperature", comment: "Control switches on/off based on the local temperature (i.e., a thermostat)." },
9026            EnumValueDef { id: "RegulatingControlModeKind.powerFactor", comment: "Power factor is specified." },
9027        ],
9028    },
9029    EnumDef {
9030        ns: "http://iec.ch/TC57/CIM100#",
9031        local: "RemoteSignalKind",
9032        comment: "Type of input signal coming from remote bus.",
9033        values: &[
9034            EnumValueDef { id: "RemoteSignalKind.remoteBusVoltageFrequency", comment: "Input is voltage frequency from remote terminal bus." },
9035            EnumValueDef { id: "RemoteSignalKind.remoteBusVoltageFrequencyDeviation", comment: "Input is voltage frequency deviation from remote terminal bus." },
9036            EnumValueDef { id: "RemoteSignalKind.remoteBusFrequency", comment: "Input is frequency from remote terminal bus." },
9037            EnumValueDef { id: "RemoteSignalKind.remoteBusFrequencyDeviation", comment: "Input is frequency deviation from remote terminal bus." },
9038            EnumValueDef { id: "RemoteSignalKind.remoteBusVoltageAmplitude", comment: "Input is voltage amplitude from remote terminal bus." },
9039            EnumValueDef { id: "RemoteSignalKind.remoteBusVoltage", comment: "Input is voltage from remote terminal bus." },
9040            EnumValueDef { id: "RemoteSignalKind.remoteBranchCurrentAmplitude", comment: "Input is branch current amplitude from remote terminal bus." },
9041            EnumValueDef { id: "RemoteSignalKind.remoteBusVoltageAmplitudeDerivative", comment: "Input is branch current amplitude derivative from remote terminal bus." },
9042            EnumValueDef { id: "RemoteSignalKind.remotePuBusVoltageDerivative", comment: "Input is PU voltage derivative from remote terminal bus." },
9043        ],
9044    },
9045    EnumDef {
9046        ns: "http://iec.ch/TC57/CIM100#",
9047        local: "RotorKind",
9048        comment: "Type of rotor on physical machine.",
9049        values: &[
9050            EnumValueDef { id: "RotorKind.roundRotor", comment: "Round rotor type of synchronous machine." },
9051            EnumValueDef { id: "RotorKind.salientPole", comment: "Salient pole type of synchronous machine." },
9052        ],
9053    },
9054    EnumDef {
9055        ns: "http://iec.ch/TC57/CIM100#",
9056        local: "ShortCircuitRotorKind",
9057        comment: "Type of rotor, used by short circuit applications.",
9058        values: &[
9059            EnumValueDef { id: "ShortCircuitRotorKind.salientPole1", comment: "Salient pole 1 in IEC 60909." },
9060            EnumValueDef { id: "ShortCircuitRotorKind.salientPole2", comment: "Salient pole 2 in IEC 60909." },
9061            EnumValueDef { id: "ShortCircuitRotorKind.turboSeries1", comment: "Turbo Series 1 in IEC 60909." },
9062            EnumValueDef { id: "ShortCircuitRotorKind.turboSeries2", comment: "Turbo series 2 in IEC 60909." },
9063        ],
9064    },
9065    EnumDef {
9066        ns: "http://iec.ch/TC57/CIM100#",
9067        local: "Source",
9068        comment: "Source gives information related to the origin of a value.",
9069        values: &[
9070            EnumValueDef { id: "Source.PROCESS", comment: "The value is provided by input from the process I/O or being calculated from some function." },
9071            EnumValueDef { id: "Source.DEFAULTED", comment: "The value contains a default value." },
9072            EnumValueDef { id: "Source.SUBSTITUTED", comment: "The value is provided by input of an operator or by an automatic source." },
9073        ],
9074    },
9075    EnumDef {
9076        ns: "http://iec.ch/TC57/CIM100#",
9077        local: "StaticLoadModelKind",
9078        comment: "Type of static load model.",
9079        values: &[
9080            EnumValueDef { id: "StaticLoadModelKind.exponential", comment: "This model is an exponential representation of the load. Exponential equations for active and reactive power are used and the following attributes are required: kp1, kp2, kp3, kpf, ep1, ep2, ep3 kq1, kq2, kq3, kqf, eq1, eq2, eq3." },
9081            EnumValueDef { id: "StaticLoadModelKind.zIP1", comment: "This model integrates the frequency-dependent load (primarily motors). ZIP1 equations for active and reactive power are used and the following attributes are required: kp1, kp2, kp3, kpf kq1, kq2, kq3, kqf." },
9082            EnumValueDef { id: "StaticLoadModelKind.zIP2", comment: "This model separates the frequency-dependent load (primarily motors) from other load. ZIP2 equations for active and reactive power are used and the following attributes are required: kp1, kp2, kp3, kq4, kpf kq1, kq2, kq3, kq4, kqf." },
9083            EnumValueDef { id: "StaticLoadModelKind.constantZ", comment: "The load is represented as a constant impedance. ConstantZ equations are used for active and reactive power and no attributes are required." },
9084        ],
9085    },
9086    EnumDef {
9087        ns: "http://iec.ch/TC57/CIM100#",
9088        local: "SynchronousMachineKind",
9089        comment: "Synchronous machine type.",
9090        values: &[
9091            EnumValueDef { id: "SynchronousMachineKind.generator", comment: "Indicates the synchronous machine can operate as a generator." },
9092            EnumValueDef { id: "SynchronousMachineKind.condenser", comment: "Indicates the synchronous machine can operate as a condenser." },
9093            EnumValueDef { id: "SynchronousMachineKind.generatorOrCondenser", comment: "Indicates the synchronous machine can operate as a generator or as a condenser." },
9094            EnumValueDef { id: "SynchronousMachineKind.motor", comment: "Indicates the synchronous machine can operate as a motor." },
9095            EnumValueDef { id: "SynchronousMachineKind.generatorOrMotor", comment: "Indicates the synchronous machine can operate as a generator or as a motor." },
9096            EnumValueDef { id: "SynchronousMachineKind.motorOrCondenser", comment: "Indicates the synchronous machine can operate as a motor or as a condenser." },
9097            EnumValueDef { id: "SynchronousMachineKind.generatorOrCondenserOrMotor", comment: "Indicates the synchronous machine can operate as a generator or as a condenser or as a motor." },
9098        ],
9099    },
9100    EnumDef {
9101        ns: "http://iec.ch/TC57/CIM100#",
9102        local: "SynchronousMachineModelKind",
9103        comment: "Type of synchronous machine model used in dynamic simulation applications.",
9104        values: &[
9105            EnumValueDef { id: "SynchronousMachineModelKind.subtransient", comment: "Subtransient synchronous machine model." },
9106            EnumValueDef { id: "SynchronousMachineModelKind.subtransientTypeF", comment: "WECC type F variant of subtransient synchronous machine model." },
9107            EnumValueDef { id: "SynchronousMachineModelKind.subtransientTypeJ", comment: "WECC type J variant of subtransient synchronous machine model." },
9108            EnumValueDef { id: "SynchronousMachineModelKind.subtransientSimplified", comment: "Simplified version of subtransient synchronous machine model where magnetic coupling between the direct- and quadrature- axes is ignored." },
9109            EnumValueDef { id: "SynchronousMachineModelKind.subtransientSimplifiedDirectAxis", comment: "Simplified version of a subtransient synchronous machine model with no damper circuit on the direct-axis." },
9110        ],
9111    },
9112    EnumDef {
9113        ns: "http://iec.ch/TC57/CIM100#",
9114        local: "SynchronousMachineOperatingMode",
9115        comment: "Synchronous machine operating mode.",
9116        values: &[
9117            EnumValueDef { id: "SynchronousMachineOperatingMode.generator", comment: "Operating as generator." },
9118            EnumValueDef { id: "SynchronousMachineOperatingMode.condenser", comment: "Operating as condenser." },
9119            EnumValueDef { id: "SynchronousMachineOperatingMode.motor", comment: "Operating as motor." },
9120        ],
9121    },
9122    EnumDef {
9123        ns: "http://iec.ch/TC57/CIM100#",
9124        local: "UnitMultiplier",
9125        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'.",
9126        values: &[
9127            EnumValueDef { id: "UnitMultiplier.y", comment: "Yocto 10**-24." },
9128            EnumValueDef { id: "UnitMultiplier.z", comment: "Zepto 10**-21." },
9129            EnumValueDef { id: "UnitMultiplier.a", comment: "Atto 10**-18." },
9130            EnumValueDef { id: "UnitMultiplier.f", comment: "Femto 10**-15." },
9131            EnumValueDef { id: "UnitMultiplier.p", comment: "Pico 10**-12." },
9132            EnumValueDef { id: "UnitMultiplier.n", comment: "Nano 10**-9." },
9133            EnumValueDef { id: "UnitMultiplier.micro", comment: "Micro 10**-6." },
9134            EnumValueDef { id: "UnitMultiplier.m", comment: "Milli 10**-3." },
9135            EnumValueDef { id: "UnitMultiplier.c", comment: "Centi 10**-2." },
9136            EnumValueDef { id: "UnitMultiplier.d", comment: "Deci 10**-1." },
9137            EnumValueDef { id: "UnitMultiplier.none", comment: "No multiplier or equivalently multiply by 1." },
9138            EnumValueDef { id: "UnitMultiplier.da", comment: "Deca 10**1." },
9139            EnumValueDef { id: "UnitMultiplier.h", comment: "Hecto 10**2." },
9140            EnumValueDef { id: "UnitMultiplier.k", comment: "Kilo 10**3." },
9141            EnumValueDef { id: "UnitMultiplier.M", comment: "Mega 10**6." },
9142            EnumValueDef { id: "UnitMultiplier.G", comment: "Giga 10**9." },
9143            EnumValueDef { id: "UnitMultiplier.T", comment: "Tera 10**12." },
9144            EnumValueDef { id: "UnitMultiplier.P", comment: "Peta 10**15." },
9145            EnumValueDef { id: "UnitMultiplier.E", comment: "Exa 10**18." },
9146            EnumValueDef { id: "UnitMultiplier.Z", comment: "Zetta 10**21." },
9147            EnumValueDef { id: "UnitMultiplier.Y", comment: "Yotta 10**24." },
9148        ],
9149    },
9150    EnumDef {
9151        ns: "http://iec.ch/TC57/CIM100#",
9152        local: "UnitSymbol",
9153        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.",
9154        values: &[
9155            EnumValueDef { id: "UnitSymbol.none", comment: "Dimension less quantity, e.g. count, per unit, etc." },
9156            EnumValueDef { id: "UnitSymbol.m", comment: "Length in metres." },
9157            EnumValueDef { id: "UnitSymbol.kg", comment: "Mass in kilograms. Note: multiplier “k” is included in this unit symbol for compatibility with IEC 61850-7-3." },
9158            EnumValueDef { id: "UnitSymbol.s", comment: "Time in seconds." },
9159            EnumValueDef { id: "UnitSymbol.A", comment: "Current in amperes." },
9160            EnumValueDef { id: "UnitSymbol.K", comment: "Temperature in kelvins." },
9161            EnumValueDef { id: "UnitSymbol.mol", comment: "Amount of substance in moles." },
9162            EnumValueDef { id: "UnitSymbol.cd", comment: "Luminous intensity in candelas." },
9163            EnumValueDef { id: "UnitSymbol.deg", comment: "Plane angle in degrees." },
9164            EnumValueDef { id: "UnitSymbol.rad", comment: "Plane angle in radians (m/m)." },
9165            EnumValueDef { id: "UnitSymbol.sr", comment: "Solid angle in steradians (m2/m2)." },
9166            EnumValueDef { id: "UnitSymbol.Gy", comment: "Absorbed dose in grays (J/kg)." },
9167            EnumValueDef { id: "UnitSymbol.Bq", comment: "Radioactivity in becquerels (1/s)." },
9168            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." },
9169            EnumValueDef { id: "UnitSymbol.Sv", comment: "Dose equivalent in sieverts (J/kg)." },
9170            EnumValueDef { id: "UnitSymbol.F", comment: "Electric capacitance in farads (C/V)." },
9171            EnumValueDef { id: "UnitSymbol.C", comment: "Electric charge in coulombs (A·s)." },
9172            EnumValueDef { id: "UnitSymbol.S", comment: "Conductance in siemens." },
9173            EnumValueDef { id: "UnitSymbol.H", comment: "Electric inductance in henrys (Wb/A)." },
9174            EnumValueDef { id: "UnitSymbol.V", comment: "Electric potential in volts (W/A)." },
9175            EnumValueDef { id: "UnitSymbol.ohm", comment: "Electric resistance in ohms (V/A)." },
9176            EnumValueDef { id: "UnitSymbol.J", comment: "Energy in joules (N·m = C·V = W·s)." },
9177            EnumValueDef { id: "UnitSymbol.N", comment: "Force in newtons (kg·m/s²)." },
9178            EnumValueDef { id: "UnitSymbol.Hz", comment: "Frequency in hertz (1/s)." },
9179            EnumValueDef { id: "UnitSymbol.lx", comment: "Illuminance in lux (lm/m²)." },
9180            EnumValueDef { id: "UnitSymbol.lm", comment: "Luminous flux in lumens (cd·sr)." },
9181            EnumValueDef { id: "UnitSymbol.Wb", comment: "Magnetic flux in webers (V·s)." },
9182            EnumValueDef { id: "UnitSymbol.T", comment: "Magnetic flux density in teslas (Wb/m2)." },
9183            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." },
9184            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." },
9185            EnumValueDef { id: "UnitSymbol.m2", comment: "Area in square metres (m²)." },
9186            EnumValueDef { id: "UnitSymbol.m3", comment: "Volume in cubic metres (m³)." },
9187            EnumValueDef { id: "UnitSymbol.mPers", comment: "Velocity in metres per second (m/s)." },
9188            EnumValueDef { id: "UnitSymbol.mPers2", comment: "Acceleration in metres per second squared (m/s²)." },
9189            EnumValueDef { id: "UnitSymbol.m3Pers", comment: "Volumetric flow rate in cubic metres per second (m³/s)." },
9190            EnumValueDef { id: "UnitSymbol.mPerm3", comment: "Fuel efficiency in metres per cubic metres (m/m³)." },
9191            EnumValueDef { id: "UnitSymbol.kgm", comment: "Moment of mass in kilogram metres (kg·m) (first moment of mass). Note: multiplier “k” is included in this unit symbol for compatibility with IEC 61850-7-3." },
9192            EnumValueDef { id: "UnitSymbol.kgPerm3", comment: "Density in kilogram/cubic metres (kg/m³). Note: multiplier “k” is included in this unit symbol for compatibility with IEC 61850-7-3." },
9193            EnumValueDef { id: "UnitSymbol.m2Pers", comment: "Viscosity in square metres / second (m²/s)." },
9194            EnumValueDef { id: "UnitSymbol.WPermK", comment: "Thermal conductivity in watt/metres kelvin." },
9195            EnumValueDef { id: "UnitSymbol.JPerK", comment: "Heat capacity in joules/kelvin." },
9196            EnumValueDef { id: "UnitSymbol.ppm", comment: "Concentration in parts per million." },
9197            EnumValueDef { id: "UnitSymbol.rotPers", comment: "Rotations per second (1/s). See also Hz (1/s)." },
9198            EnumValueDef { id: "UnitSymbol.radPers", comment: "Angular velocity in radians per second (rad/s)." },
9199            EnumValueDef { id: "UnitSymbol.WPerm2", comment: "Heat flux density, irradiance, watts per square metre." },
9200            EnumValueDef { id: "UnitSymbol.JPerm2", comment: "Insulation energy density, joules per square metre or watt second per square metre." },
9201            EnumValueDef { id: "UnitSymbol.SPerm", comment: "Conductance per length (F/m)." },
9202            EnumValueDef { id: "UnitSymbol.KPers", comment: "Temperature change rate in kelvins per second." },
9203            EnumValueDef { id: "UnitSymbol.PaPers", comment: "Pressure change rate in pascals per second." },
9204            EnumValueDef { id: "UnitSymbol.JPerkgK", comment: "Specific heat capacity, specific entropy, joules per kilogram Kelvin." },
9205            EnumValueDef { id: "UnitSymbol.VA", comment: "Apparent power in volt amperes. See also real power and reactive power." },
9206            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." },
9207            EnumValueDef { id: "UnitSymbol.cosPhi", comment: "Power factor, dimensionless. Note 1: This definition of power factor only holds for balanced systems. See the alternative definition under code 153. Note 2 : Beware of differing sign conventions in use between the IEC and EEI. It is assumed that the data consumer understands the type of meter in use and the sign convention in use by the utility." },
9208            EnumValueDef { id: "UnitSymbol.Vs", comment: "Volt seconds (Ws/A)." },
9209            EnumValueDef { id: "UnitSymbol.V2", comment: "Volt squared (W²/A²)." },
9210            EnumValueDef { id: "UnitSymbol.As", comment: "Ampere seconds (A·s)." },
9211            EnumValueDef { id: "UnitSymbol.A2", comment: "Amperes squared (A²)." },
9212            EnumValueDef { id: "UnitSymbol.A2s", comment: "Ampere squared time in square amperes (A²s)." },
9213            EnumValueDef { id: "UnitSymbol.VAh", comment: "Apparent energy in volt ampere hours." },
9214            EnumValueDef { id: "UnitSymbol.Wh", comment: "Real energy in watt hours." },
9215            EnumValueDef { id: "UnitSymbol.VArh", comment: "Reactive energy in volt ampere reactive hours." },
9216            EnumValueDef { id: "UnitSymbol.VPerHz", comment: "Magnetic flux in volt per hertz." },
9217            EnumValueDef { id: "UnitSymbol.HzPers", comment: "Rate of change of frequency in hertz per second." },
9218            EnumValueDef { id: "UnitSymbol.character", comment: "Number of characters." },
9219            EnumValueDef { id: "UnitSymbol.charPers", comment: "Data rate (baud) in characters per second." },
9220            EnumValueDef { id: "UnitSymbol.kgm2", comment: "Moment of mass in kilogram square metres (kg·m²) (Second moment of mass, commonly called the moment of inertia). Note: multiplier “k” is included in this unit symbol for compatibility with IEC 61850-7-3." },
9221            EnumValueDef { id: "UnitSymbol.dB", comment: "Sound pressure level in decibels. Note: multiplier “d” is included in this unit symbol for compatibility with IEC 61850-7-3." },
9222            EnumValueDef { id: "UnitSymbol.WPers", comment: "Ramp rate in watts per second." },
9223            EnumValueDef { id: "UnitSymbol.lPers", comment: "Volumetric flow rate in litres per second." },
9224            EnumValueDef { id: "UnitSymbol.dBm", comment: "Power level (logarithmic ratio of signal strength , Bel-mW), normalized to 1mW. Note: multiplier “d” is included in this unit symbol for compatibility with IEC 61850-7-3." },
9225            EnumValueDef { id: "UnitSymbol.h", comment: "Time in hours, hour = 60 min = 3600 s." },
9226            EnumValueDef { id: "UnitSymbol.min", comment: "Time in minutes, minute = 60 s." },
9227            EnumValueDef { id: "UnitSymbol.Q", comment: "Quantity power, Q." },
9228            EnumValueDef { id: "UnitSymbol.Qh", comment: "Quantity energy, Qh." },
9229            EnumValueDef { id: "UnitSymbol.ohmm", comment: "Resistivity, ohm metres, (rho)." },
9230            EnumValueDef { id: "UnitSymbol.APerm", comment: "A/m, magnetic field strength, amperes per metre." },
9231            EnumValueDef { id: "UnitSymbol.V2h", comment: "Volt-squared hour, volt-squared-hours." },
9232            EnumValueDef { id: "UnitSymbol.A2h", comment: "Ampere-squared hour, ampere-squared hour." },
9233            EnumValueDef { id: "UnitSymbol.Ah", comment: "Ampere-hours, ampere-hours." },
9234            EnumValueDef { id: "UnitSymbol.count", comment: "Amount of substance, Counter value." },
9235            EnumValueDef { id: "UnitSymbol.ft3", comment: "Volume, cubic feet." },
9236            EnumValueDef { id: "UnitSymbol.m3Perh", comment: "Volumetric flow rate, cubic metres per hour." },
9237            EnumValueDef { id: "UnitSymbol.gal", comment: "Volume in gallons, US gallon (1 gal = 231 in3 = 128 fl ounce)." },
9238            EnumValueDef { id: "UnitSymbol.Btu", comment: "Energy, British Thermal Units." },
9239            EnumValueDef { id: "UnitSymbol.l", comment: "Volume in litres, litre = dm3 = m3/1000." },
9240            EnumValueDef { id: "UnitSymbol.lPerh", comment: "Volumetric flow rate, litres per hour." },
9241            EnumValueDef { id: "UnitSymbol.lPerl", comment: "Concentration, The ratio of the volume of a solute divided by the volume of the solution. Note: Users may need use a prefix such a ‘µ’ to express a quantity such as ‘µL/L’." },
9242            EnumValueDef { id: "UnitSymbol.gPerg", comment: "Concentration, The ratio of the mass of a solute divided by the mass of the solution. Note: Users may need use a prefix such a ‘µ’ to express a quantity such as ‘µg/g’." },
9243            EnumValueDef { id: "UnitSymbol.molPerm3", comment: "Concentration, The amount of substance concentration, (c), the amount of solvent in moles divided by the volume of solution in m³." },
9244            EnumValueDef { id: "UnitSymbol.molPermol", comment: "Concentration, Molar fraction, the ratio of the molar amount of a solute divided by the molar amount of the solution." },
9245            EnumValueDef { id: "UnitSymbol.molPerkg", comment: "Concentration, Molality, the amount of solute in moles and the amount of solvent in kilograms." },
9246            EnumValueDef { id: "UnitSymbol.sPers", comment: "Time, Ratio of time. Note: Users may need to supply a prefix such as ‘&#181;’ to show rates such as ‘&#181;s/s’." },
9247            EnumValueDef { id: "UnitSymbol.HzPerHz", comment: "Frequency, rate of frequency change. Note: Users may need to supply a prefix such as ‘m’ to show rates such as ‘mHz/Hz’." },
9248            EnumValueDef { id: "UnitSymbol.VPerV", comment: "Voltage, ratio of voltages. Note: Users may need to supply a prefix such as ‘m’ to show rates such as ‘mV/V’." },
9249            EnumValueDef { id: "UnitSymbol.APerA", comment: "Current, ratio of amperages. Note: Users may need to supply a prefix such as ‘m’ to show rates such as ‘mA/A’." },
9250            EnumValueDef { id: "UnitSymbol.VPerVA", 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." },
9251            EnumValueDef { id: "UnitSymbol.rev", comment: "Amount of rotation, revolutions." },
9252            EnumValueDef { id: "UnitSymbol.kat", comment: "Catalytic activity, katal = mol / s." },
9253            EnumValueDef { id: "UnitSymbol.JPerkg", comment: "Specific energy, Joules / kg." },
9254            EnumValueDef { id: "UnitSymbol.m3Uncompensated", comment: "Volume, cubic metres, with the value uncompensated for weather effects." },
9255            EnumValueDef { id: "UnitSymbol.m3Compensated", comment: "Volume, cubic metres, with the value compensated for weather effects." },
9256            EnumValueDef { id: "UnitSymbol.WPerW", comment: "Signal Strength, ratio of power. Note: Users may need to supply a prefix such as ‘m’ to show rates such as ‘mW/W’." },
9257            EnumValueDef { id: "UnitSymbol.therm", comment: "Energy, therms." },
9258            EnumValueDef { id: "UnitSymbol.onePerm", comment: "Wavenumber, reciprocal metres, (1/m)." },
9259            EnumValueDef { id: "UnitSymbol.m3Perkg", comment: "Specific volume, cubic metres per kilogram, v." },
9260            EnumValueDef { id: "UnitSymbol.Pas", comment: "Dynamic viscosity, pascal seconds." },
9261            EnumValueDef { id: "UnitSymbol.Nm", comment: "Moment of force, newton metres." },
9262            EnumValueDef { id: "UnitSymbol.NPerm", comment: "Surface tension, newton per metre." },
9263            EnumValueDef { id: "UnitSymbol.radPers2", comment: "Angular acceleration, radians per second squared." },
9264            EnumValueDef { id: "UnitSymbol.JPerm3", comment: "Energy density, joules per cubic metre." },
9265            EnumValueDef { id: "UnitSymbol.VPerm", comment: "Electric field strength, volts per metre." },
9266            EnumValueDef { id: "UnitSymbol.CPerm3", comment: "Electric charge density, coulombs per cubic metre." },
9267            EnumValueDef { id: "UnitSymbol.CPerm2", comment: "Surface charge density, coulombs per square metre." },
9268            EnumValueDef { id: "UnitSymbol.FPerm", comment: "Permittivity, farads per metre." },
9269            EnumValueDef { id: "UnitSymbol.HPerm", comment: "Permeability, henrys per metre." },
9270            EnumValueDef { id: "UnitSymbol.JPermol", comment: "Molar energy, joules per mole." },
9271            EnumValueDef { id: "UnitSymbol.JPermolK", comment: "Molar entropy, molar heat capacity, joules per mole kelvin." },
9272            EnumValueDef { id: "UnitSymbol.CPerkg", comment: "Exposure (x rays), coulombs per kilogram." },
9273            EnumValueDef { id: "UnitSymbol.GyPers", comment: "Absorbed dose rate, grays per second." },
9274            EnumValueDef { id: "UnitSymbol.WPersr", comment: "Radiant intensity, watts per steradian." },
9275            EnumValueDef { id: "UnitSymbol.WPerm2sr", comment: "Radiance, watts per square metre steradian." },
9276            EnumValueDef { id: "UnitSymbol.katPerm3", comment: "Catalytic activity concentration, katals per cubic metre." },
9277            EnumValueDef { id: "UnitSymbol.d", comment: "Time in days, day = 24 h = 86400 s." },
9278            EnumValueDef { id: "UnitSymbol.anglemin", comment: "Plane angle, minutes." },
9279            EnumValueDef { id: "UnitSymbol.anglesec", comment: "Plane angle, seconds." },
9280            EnumValueDef { id: "UnitSymbol.ha", comment: "Area, hectares." },
9281            EnumValueDef { id: "UnitSymbol.tonne", comment: "Mass in tons, “tonne” or “metric ton” (1000 kg = 1 Mg)." },
9282            EnumValueDef { id: "UnitSymbol.bar", comment: "Pressure in bars, (1 bar = 100 kPa)." },
9283            EnumValueDef { id: "UnitSymbol.mmHg", comment: "Pressure, millimetres of mercury (1 mmHg is approximately 133.3 Pa)." },
9284            EnumValueDef { id: "UnitSymbol.M", comment: "Length, nautical miles (1 M = 1852 m)." },
9285            EnumValueDef { id: "UnitSymbol.kn", comment: "Speed, knots (1 kn = 1852/3600) m/s." },
9286            EnumValueDef { id: "UnitSymbol.Mx", comment: "Magnetic flux, maxwells (1 Mx = 10-8 Wb)." },
9287            EnumValueDef { id: "UnitSymbol.G", comment: "Magnetic flux density, gausses (1 G = 10-4 T)." },
9288            EnumValueDef { id: "UnitSymbol.Oe", comment: "Magnetic field in oersteds, (1 Oe = (103/4p) A/m)." },
9289            EnumValueDef { id: "UnitSymbol.Vh", comment: "Volt-hour, Volt hours." },
9290            EnumValueDef { id: "UnitSymbol.WPerA", comment: "Active power per current flow, watts per Ampere." },
9291            EnumValueDef { id: "UnitSymbol.onePerHz", comment: "Reciprocal of frequency (1/Hz)." },
9292            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." },
9293            EnumValueDef { id: "UnitSymbol.ohmPerm", comment: "Electric resistance per length in ohms per metre ((V/A)/m)." },
9294            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." },
9295            EnumValueDef { id: "UnitSymbol.JPers", comment: "Energy rate in joules per second (J/s)." },
9296        ],
9297    },
9298    EnumDef {
9299        ns: "http://iec.ch/TC57/CIM100#",
9300        local: "Validity",
9301        comment: "Validity for MeasurementValue.",
9302        values: &[
9303            EnumValueDef { id: "Validity.GOOD", comment: "The value is marked good if no abnormal condition of the acquisition function or the information source is detected." },
9304            EnumValueDef { id: "Validity.QUESTIONABLE", comment: "The value is marked questionable if a supervision function detects an abnormal behaviour, however the value could still be valid. The client is responsible for determining whether or not values marked 'questionable' should be used." },
9305            EnumValueDef { id: "Validity.INVALID", comment: "The value is marked invalid when a supervision function recognises abnormal conditions of the acquisition function or the information source (missing or non-operating updating devices). The value is not defined under this condition. The mark invalid is used to indicate to the client that the value may be incorrect and shall not be used." },
9306        ],
9307    },
9308    EnumDef {
9309        ns: "http://iec.ch/TC57/CIM100#",
9310        local: "VsPpccControlKind",
9311        comment: "Types applicable to the control of real power and/or DC voltage by voltage source converter.",
9312        values: &[
9313            EnumValueDef { id: "VsPpccControlKind.pPcc", comment: "Control is real power at point of common coupling. The target value is provided by ACDCConverter.targetPpcc." },
9314            EnumValueDef { id: "VsPpccControlKind.udc", comment: "Control is DC voltage with target value provided by ACDCConverter.targetUdc." },
9315            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." },
9316            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." },
9317            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." },
9318            EnumValueDef { id: "VsPpccControlKind.phasePcc", comment: "Control is phase at point of common coupling. Target is provided by VsConverter.targetPhasePcc." },
9319        ],
9320    },
9321    EnumDef {
9322        ns: "http://iec.ch/TC57/CIM100#",
9323        local: "VsQpccControlKind",
9324        comment: "Kind of reactive power control at point of common coupling for a voltage source converter.",
9325        values: &[
9326            EnumValueDef { id: "VsQpccControlKind.reactivePcc", comment: "Control is reactive power at point of common coupling. Target is provided by VsConverter.targetQpcc." },
9327            EnumValueDef { id: "VsQpccControlKind.voltagePcc", comment: "Control is voltage at point of common coupling. Target is provided by VsConverter.targetUpcc." },
9328            EnumValueDef { id: "VsQpccControlKind.powerFactorPcc", comment: "Control is power factor at point of common coupling. Target is provided by VsConverter.targetPowerFactorPcc." },
9329            EnumValueDef { id: "VsQpccControlKind.pulseWidthModulation", comment: "No explicit control. Pulse-modulation factor is directly set in magnitude (VsConverter.targetPWMfactor) and phase (VsConverter.targetPhasePcc)." },
9330        ],
9331    },
9332    EnumDef {
9333        ns: "http://iec.ch/TC57/CIM100#",
9334        local: "WindGenUnitKind",
9335        comment: "Kind of wind generating unit.",
9336        values: &[
9337            EnumValueDef { id: "WindGenUnitKind.offshore", comment: "The wind generating unit is located offshore." },
9338            EnumValueDef { id: "WindGenUnitKind.onshore", comment: "The wind generating unit is located onshore." },
9339        ],
9340    },
9341    EnumDef {
9342        ns: "http://iec.ch/TC57/CIM100#",
9343        local: "WindLookupTableFunctionKind",
9344        comment: "Function of the lookup table.",
9345        values: &[
9346            EnumValueDef { id: "WindLookupTableFunctionKind.prr", comment: "Power versus speed change (negative slip) lookup table (prr(deltaomega)). It is used for the rotor resistance control model, IEC 61400-27-1:2015, 5.6.5.3." },
9347            EnumValueDef { id: "WindLookupTableFunctionKind.omegap", comment: "Power vs. speed lookup table (omega(p)). It is used for the P control model type 3, IEC 61400-27-1:2015, 5.6.5.4." },
9348            EnumValueDef { id: "WindLookupTableFunctionKind.ipmax", comment: "Lookup table for voltage dependency of active current limits (ipmax(uWT)). It is used for the current limitation model, IEC 61400-27-1:2015, 5.6.5.8." },
9349            EnumValueDef { id: "WindLookupTableFunctionKind.iqmax", comment: "Lookup table for voltage dependency of reactive current limits (iqmax(uWT)). It is used for the current limitation model, IEC 61400-27-1:2015, 5.6.5.8." },
9350            EnumValueDef { id: "WindLookupTableFunctionKind.pwp", comment: "Power vs. frequency lookup table (pWPbias(f)). It is used for the wind power plant frequency and active power control model, IEC 61400-27-1:2015, Annex D." },
9351            EnumValueDef { id: "WindLookupTableFunctionKind.tcwdu", comment: "Crowbar duration versus voltage variation look-up table (TCW(du)). It is a case-dependent parameter. It is used for the type 3B generator set model, IEC 61400-27-1:2015, 5.6.3.3." },
9352            EnumValueDef { id: "WindLookupTableFunctionKind.tduwt", comment: "Lookup table to determine the duration of the power reduction after a voltage dip, depending on the size of the voltage dip (Td(uWT)). It is a type-dependent parameter. It is used for the pitch control power model, IEC 61400-27-1:2015, 5.6.5.1." },
9353            EnumValueDef { id: "WindLookupTableFunctionKind.qmaxp", comment: "Lookup table for active power dependency of reactive power maximum limit (qmaxp(p)). It is used for the QP and QU limitation model, IEC 61400-27-1:2015, 5.6.5.10." },
9354            EnumValueDef { id: "WindLookupTableFunctionKind.qminp", comment: "Lookup table for active power dependency of reactive power minimum limit (qminp(p)). It is used for the QP and QU limitation model, IEC 61400-27-1:2015, 5.6.5.10." },
9355            EnumValueDef { id: "WindLookupTableFunctionKind.qmaxu", comment: "Lookup table for voltage dependency of reactive power maximum limit (qmaxu(p)). It is used for the QP and QU limitation model, IEC 61400-27-1:2015, 5.6.5.10." },
9356            EnumValueDef { id: "WindLookupTableFunctionKind.qminu", comment: "Lookup table for voltage dependency of reactive power minimum limit (qminu(p)). It is used for the QP and QU limitation model, IEC 61400-27-1:2015, 5.6.5.10." },
9357            EnumValueDef { id: "WindLookupTableFunctionKind.tuover", comment: "Disconnection time versus over-voltage lookup table (Tuover(uWT)). It is used for the grid protection model, IEC 61400-27-1:2015, 5.6.6." },
9358            EnumValueDef { id: "WindLookupTableFunctionKind.tuunder", comment: "Disconnection time versus under-voltage lookup table (Tuunder(uWT)). It is used for the grid protection model, IEC 61400-27-1:2015, 5.6.6." },
9359            EnumValueDef { id: "WindLookupTableFunctionKind.tfover", comment: "Disconnection time versus over-frequency lookup table (Tfover(fWT)). It is used for the grid protection model, IEC 61400-27-1:2015, 5.6.6." },
9360            EnumValueDef { id: "WindLookupTableFunctionKind.tfunder", comment: "Disconnection time versus under-frequency lookup table (Tfunder(fWT)). It is used for the grid protection model, IEC 61400-27-1:2015, 5.6.6." },
9361            EnumValueDef { id: "WindLookupTableFunctionKind.qwp", comment: "Look up table for the UQ static mode (qWP(uerr)). It is used for the voltage and reactive power control model, IEC 61400-27-1:2015, Annex D." },
9362        ],
9363    },
9364    EnumDef {
9365        ns: "http://iec.ch/TC57/CIM100#",
9366        local: "WindPlantQcontrolModeKind",
9367        comment: "Reactive power/voltage controller mode.",
9368        values: &[
9369            EnumValueDef { id: "WindPlantQcontrolModeKind.reactivePower", comment: "Reactive power reference." },
9370            EnumValueDef { id: "WindPlantQcontrolModeKind.powerFactor", comment: "Power factor reference." },
9371            EnumValueDef { id: "WindPlantQcontrolModeKind.uqStatic", comment: "UQ static." },
9372            EnumValueDef { id: "WindPlantQcontrolModeKind.voltageControl", comment: "Voltage control." },
9373        ],
9374    },
9375    EnumDef {
9376        ns: "http://iec.ch/TC57/CIM100#",
9377        local: "WindQcontrolModeKind",
9378        comment: "General wind turbine Q control modes MqG.",
9379        values: &[
9380            EnumValueDef { id: "WindQcontrolModeKind.voltage", comment: "Voltage control (MqG equals 0)." },
9381            EnumValueDef { id: "WindQcontrolModeKind.reactivePower", comment: "Reactive power control (MqG equals 1)." },
9382            EnumValueDef { id: "WindQcontrolModeKind.openLoopReactivePower", comment: "Open loop reactive power control (only used with closed loop at plant level) (MqG equals 2)." },
9383            EnumValueDef { id: "WindQcontrolModeKind.powerFactor", comment: "Power factor control (MqG equals 3)." },
9384            EnumValueDef { id: "WindQcontrolModeKind.openLooppowerFactor", comment: "Open loop power factor control (MqG equals 4)." },
9385        ],
9386    },
9387    EnumDef {
9388        ns: "http://iec.ch/TC57/CIM100#",
9389        local: "WindUVRTQcontrolModeKind",
9390        comment: "UVRT Q control modes MqUVRT.",
9391        values: &[
9392            EnumValueDef { id: "WindUVRTQcontrolModeKind.mode0", comment: "Voltage-dependent reactive current injection (MqUVRT equals 0)." },
9393            EnumValueDef { id: "WindUVRTQcontrolModeKind.mode1", comment: "Reactive current injection controlled as the pre-fault value plus an additional voltage dependent reactive current injection (MqUVRT equals 1)." },
9394            EnumValueDef { id: "WindUVRTQcontrolModeKind.mode2", comment: "Reactive current injection controlled as the pre-fault value plus an additional voltage-dependent reactive current injection during fault, and as the pre-fault value plus an additional constant reactive current injection post fault (MqUVRT equals 2)." },
9395        ],
9396    },
9397    EnumDef {
9398        ns: "http://iec.ch/TC57/CIM100#",
9399        local: "WindingConnection",
9400        comment: "Winding connection type.",
9401        values: &[
9402            EnumValueDef { id: "WindingConnection.D", comment: "Delta." },
9403            EnumValueDef { id: "WindingConnection.Y", comment: "Wye." },
9404            EnumValueDef { id: "WindingConnection.Z", comment: "ZigZag." },
9405            EnumValueDef { id: "WindingConnection.Yn", comment: "Wye, with neutral brought out for grounding." },
9406            EnumValueDef { id: "WindingConnection.Zn", comment: "ZigZag, with neutral brought out for grounding." },
9407            EnumValueDef { id: "WindingConnection.A", comment: "Autotransformer common winding." },
9408            EnumValueDef { id: "WindingConnection.I", comment: "Independent winding, for single-phase connections." },
9409        ],
9410    },
9411];
9412
9413/// The `cgmes` family's schema.
9414pub static SCHEMA: Schema = Schema { classes: CLASSES, profiles: PROFILES, namespaces: NAMESPACES, enums: ENUMS };