An ECLASS IRDI is a globally unique identifier following the pattern 0173-1#XX-AAA999#999. The prefix 0173-1 identifies ECLASS as the issuing organization. The two-digit type code (01 for classes, 02 for properties, 05 for units, 07 for values) tells you what kind of object it references. The three letters and three digits form the item code. The final three digits are the version number.
What IRDI stands for
IRDI stands for International Registration Data Identifier, defined in ISO 29002. It is a standard way to uniquely identify objects in a classification system. ECLASS uses IRDIs to identify every class, property, unit, and enumeration value in its hierarchy.
When you see a code like 0173-1#02-AAB325#008 in a BMEcat file, that is an ECLASS property IRDI. It points to a specific property definition (in this case, "rated voltage") at a specific version.
If you are building or validating ECLASS-classified product data in BMEcat, run your file through the ECLASS BMEcat validator to confirm every IRDI is well-formed and matches the ECLASS 16.0 reference data.
The IRDI format
Every ECLASS IRDI follows the same structure: 0173-1#XX-AAANNN#VVV
Breaking it down:
| Segment | Value | Meaning |
|---|---|---|
0173-1 | Fixed | ECLASS organization identifier |
# | Separator | Delimits the organization from the type |
XX | 01, 02, 05, 07 | Object type code |
- | Separator | Delimits type from item |
AAA | Three uppercase letters | Item code (alpha part) |
NNN | Three digits | Item code (numeric part) |
# | Separator | Delimits item from version |
VVV | Three digits | Version number |
The type codes are:
- 01 = Class (product category)
- 02 = Property (technical attribute)
- 05 = Unit of measure
- 07 = Value (enumeration entry)
Real examples
Here are actual ECLASS IRDIs from electrical product classification:
| IRDI | Type | Meaning |
|---|---|---|
0173-1#01-ACH237#013 | Class | Low-voltage fuse |
0173-1#02-AAB325#008 | Property | Rated voltage |
0173-1#02-AAB326#008 | Property | Rated current |
0173-1#05-AAA480#003 | Unit | Volt (V) |
0173-1#07-AAA226#001 | Value | "yes" (boolean true) |
Each IRDI is version-specific. Property 0173-1#02-AAB325#008 is version 008 of rated voltage. When ECLASS releases a new version and the property definition changes, the version number increments. This matters for interoperability: if your trading partner expects ECLASS 16.0, the version numbers in your IRDIs should match that release.
How IRDIs appear in BMEcat XML
In a BMEcat 2005 file with ECLASS classification, IRDIs appear in the PRODUCT_FEATURES block:
<PRODUCT_FEATURES>
<REFERENCE_FEATURE_SYSTEM_NAME>ECLASS-16.0</REFERENCE_FEATURE_SYSTEM_NAME>
<REFERENCE_FEATURE_GROUP_ID>0173-1#01-ACH237#013</REFERENCE_FEATURE_GROUP_ID>
<FEATURE>
<FNAME>0173-1#02-AAB325#008</FNAME>
<FVALUE>230</FVALUE>
<FUNIT>0173-1#05-AAA480#003</FUNIT>
</FEATURE>
<FEATURE>
<FNAME>0173-1#02-AAB326#008</FNAME>
<FVALUE>16</FVALUE>
<FUNIT>0173-1#05-AAA128#003</FUNIT>
</FEATURE>
</PRODUCT_FEATURES>
REFERENCE_FEATURE_GROUP_ID contains the class IRDI (type 01). This tells the receiver what type of product it is.
FNAME contains the property IRDI (type 02). This identifies which technical attribute the feature represents.
FUNIT contains the unit IRDI (type 05). This identifies the unit of measure for numeric values.
FVALUE contains either a literal value (a number, a string) or a value IRDI (type 07) for enumeration properties.
Common IRDI validation errors
When you validate your ECLASS BMEcat file, these are the most frequent IRDI-related errors:
Malformed IRDI format. The IRDI does not match the 0173-1#XX-AAA999#999 pattern. Missing separators, wrong number of characters, or lowercase letters.
Error: FNAME "0173-102-AAB325#008" has invalid ECLASS property IRDI format
Fix: Missing # separator. Should be "0173-1#02-AAB325#008"
IRDI not found in reference. The IRDI is well-formed but does not exist in the ECLASS 16.0 reference data. This happens when using IRDIs from a different ECLASS version or when the IRDI was mistyped.
Warning: FNAME "0173-1#02-ZZZ999#001" not found in ECLASS 16.0 properties reference
Fix: Look up the correct property IRDI for ECLASS 16.0
Wrong type code. Using a class IRDI (01) where a property IRDI (02) is expected, or a property IRDI in the unit field.
Error: FUNIT "0173-1#02-AAB325#008" has invalid ECLASS unit IRDI format
Fix: The unit field should use type 05, not type 02
Unit mismatch. The unit IRDI does not match the expected unit for the property.
Warning: FUNIT "0173-1#05-AAA128#003" for property "Rated voltage" does not match expected unit "0173-1#05-AAA480#003"
Fix: Use the unit IRDI specified in the ECLASS property definition
IRDI vs. ETIM codes
ETIM uses simple codes like EC001049, EF000007, and EV000052. ECLASS uses IRDIs that are longer but carry more information. Each IRDI embeds the issuing organization, the object type, the item code, and the version.
The trade-off: ECLASS IRDIs are self-describing and globally unique across all classification systems. ETIM codes are shorter and simpler to work with. Both serve the same purpose of uniquely identifying classification objects. For a deeper comparison, see ECLASS vs ETIM for distributors.
Building an IRDI validation check
If you are writing custom validation code, here are the regex patterns for each IRDI type:
| Type | Pattern |
|---|---|
| Class | ^0173-1#01-[A-Z]{3}\d{3}#\d{3}$ |
| Property | ^0173-1#02-[A-Z]{3}\d{3}#\d{3}$ |
| Unit | ^0173-1#05-[A-Z]{3}\d{3}#\d{3}$ |
| Value | ^0173-1#07-[A-Z]{3}\d{3}#\d{3}$ |
Format validation is the first check. The second check is verifying that the IRDI exists in the reference data for the ECLASS version declared in REFERENCE_FEATURE_SYSTEM_NAME. A well-formed IRDI that does not map to a real object is still an error.
The ECLASS BMEcat validator performs both checks: format validation against the regex patterns, and existence validation against the full ECLASS 16.0 reference (48,283 classes, 570 properties).