Skip to main content

Specific Variant Data

Variant Description

In addition to the ProductMetaData element, which contains global metadata of a luminaire (global across all variants), at least one Variant element with specific luminaire metadata must exist in the GLDF:

Variant in XSD

Variant XSD description

Variant in XSD

Mandatory example

As with many GLDF parts, a Variant must contain only few mandatory elements to be valid: The id attribute and a (translatable) Name element

<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/1.0.0-rc.3/gldf.xsd">
<Header>
<!-- Skipped for clarity -->
</Header>
<GeneralDefinitions>
<!-- Skipped for clarity -->
</GeneralDefinitions>
<ProductDefinitions>
<ProductMetaData>
<UniqueProductId>4e0a1915-6e86-4ef4-86ff-136252887ebf</UniqueProductId>
<ProductNumber>
<Locale language="en">Global product number</Locale>
</ProductNumber>
<Name>
<Locale language="en">Global product name</Locale>
</Name>
</ProductMetaData>
<Variants>
<Variant id="VariantWithMandatoryElementsOnly">
<Name>
<Locale language="en">Secific variant name in English</Locale>
<Locale language="de">Spezifischer Produktname auf Deutsch</Locale>
</Name>
</Variant>
</Variants>
</ProductDefinitions>
</Root>

Complete example

The following is a complete example of a Variant with many optional elements. Only the DescriptiveAttributes are listed shortend to not go beyond the scope.

<?xml version="1.0" encoding="UTF-8"?>
<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/1.0.0-rc.3/gldf.xsd">
<Header>
<!-- Content skipped for clarity -->
</Header>
<GeneralDefinitions>
<Files>
<File id="eulumdatNarrowFile" contentType="ldc/eulumdat" type="localFileName">NarrowLdc.ldt</File>
<File id="luminaireImage" contentType="image/jpg" type="localFileName">ProductPicture.jpg</File>
<File id="luminaireSymbol" contentType="symbol/svg" type="localFileName">ProductSymbol.svg</File>
</Files>
<Photometries>
<Photometry id="photometryNarrow">
<PhotometryFileReference fileId="eulumdatNarrowFile" />
</Photometry>
</Photometries>
<LightSources>
<ChangeableLightSource id="metalHalideLamp_1500lumen">
<!-- Content skipped for clarity -->
</ChangeableLightSource>
</LightSources>
<ControlGears>
<ControlGear id="electronicControlGear">
<!-- Content skipped for clarity -->
</ControlGear>
</ControlGears>
<Equipments>
<Equipment id="equipmentWithBallast_210w">
<LightSourceReference changeableLightSourceId="metalHalideLamp_1500lumen" />
<ControlGearReference controlGearId="electronicControlGear" />
<RatedInputPower>100</RatedInputPower>
</Equipment>
</Equipments>
<Emitters>
<Emitter id="emitter1_Narrow">
<ChangeableLightEmitter emergencyBehaviour="Combined">
<Name>
<Locale language="en">Spot narrow, round</Locale>
</Name>
<PhotometryReference photometryId="photometryNarrow" />
<EquipmentReference equipmentId="equipmentWithBallast_210w" />
</ChangeableLightEmitter>
</Emitter>
</Emitters>
</GeneralDefinitions>
<ProductDefinitions>
<ProductMetaData>
<ProductNumber>
<Locale language="en">Global product number</Locale>
</ProductNumber>
<Name>
<Locale language="en">Global product name</Locale>
</Name>
</ProductMetaData>
<Variants>
<Variant id="CompleteVariantExample">
<ProductNumber>
<Locale language="en">Specific variant number</Locale>
</ProductNumber>
<Name>
<Locale language="en">Specific variant name</Locale>
</Name>
<Description>
<Locale language="en">Specific variant description</Locale>
</Description>
<TenderText>
<Locale language="en">Specific variant tender text</Locale>
</TenderText>
<GTIN>12345678</GTIN>
<Mountings>
<Ceiling>
<Recessed recessedDepth="500">
<CircularCutout>
<Diameter>120</Diameter>
<Depth>50</Depth>
</CircularCutout>
</Recessed>
<SurfaceMounted />
</Ceiling>
</Mountings>
<Geometry>
<EmitterReference emitterId="emitter1_Narrow" />
</Geometry>
<ProductSeries>
<ProductSerie id="ceilingLuminaires">
<Name>
<Locale language="en">Ceiling luminaires</Locale>
</Name>
</ProductSerie>
</ProductSeries>
<Pictures>
<Image fileId="luminaireImage" imageType="Product Picture" />
</Pictures>
<Symbol fileId="luminaireSymbol" />
<DescriptiveAttributes>
<!-- Skipped for clarity -->
</DescriptiveAttributes>
</Variant>
</Variants>
</ProductDefinitions>
</Root>

Element description

id (attribute, required)

An unique identifier for each variant. For reference in applications, should it be required.

sortOrder (attribute, optional)

The sortOrder attribute is optional and only necessary, if for some reasons variants should be displayed in an other order than specified by their occurrence in the Variants collection.

ProductNumber (optional)

Variant product number. Translatable. Overwrites the ProductNumber element of ProductMetaData

Name (required)

Variant name. Translatable. Overwrites the Name element of ProductMetaData

Description (optional)

Variant description. Translatable. Overwrites the Description element of ProductMetaData

TenderText (optional)

Variant tender text. Translatable. Overwrites the TenderText element of ProductMetaData

GTIN (optional)

Variant Global Trade Item Number. GTINs must be 8, 12, 13, or 14 digits long. See Wikipedia

Mountings (optional)

Variant mounting place, type and position. See XSD Reference for all possible types.

Geometry (optional)

Contains child elements to reference the GlobalDefinitions parts Geometry and Emitter. For details on the variants Geometry element see below.

ProductSeries (optional)

Product series applicable to a single variant of the product. Overwrites the ProductSeries element of ProductMetaData. The id attribute must be unique for different product series. But equal across different GLDF files for the same product series.

Pictures (optional)

Images applicable to a single variant of the product. Must reference a File element. Overwrites the Pictures element of ProductMetaData

Symbol (optional)

Definition of symbol images relevant for this variant. SVG and/or DXF file types are possible. Must reference a File element.

DescriptiveAttributes (optional)

Attributes applicable to a single variant of the product. Overwrites the DescriptiveAttributes with same name defined in ProductMetaData.

Geometry options

The reference of the geometry and its association with an Emitter in a variant allows many combinations and will therefore be examined separately at this point. There are five options to define the variants geometric shape and its radiation emitting places:

Variant in XSD

1. No emitter reference

Luminaires in GLDF can be created completely without geometry and emitter, as the Geometry element is optional. For example, to transport pure marketing data. Or should no photometric data be available for a luminaire yet. In practice, however, this is not recommended. As no calculations can be done with such a product in e.g. DIALux or RELUX.

2. EmitterReference

The EmitterReference is the simplest way to define the geometric shape and the variants emitter. You don't need a simple geometry or a 3D model for your luminaire. Instead, the geometric shape is taken from the photometry file - as far as possible and with all the disadvantages such as only a very simple representation in the form of a cuboid (and possibly cylinder in Eulumdat).

Variant EmitterReference

An XML example for an EmitterReference can be found above.

3. SimpleGeometryReference

The SimpleGeometryReference element allows to create a geometry in the complexity similar to the possibilities in Eulumdat. However, the difference is that this shape can be defined directly in the GLDF and thus overrides the geometry of the photometry. This shall be illustrated by an example. In which an Emitter is created with reference to a Photometry. Which actually contains a geometry, but which is overwritten by the definition of a SimpleGeometry:

Variant SimpleGeometryReference
<?xml version="1.0" encoding="UTF-8"?>
<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/1.0.0-rc.3/gldf.xsd">
<Header>
<Manufacturer>Manufacturer X</Manufacturer>
<FormatVersion major="1" minor="0" pre-release="3" />
<CreatedWithApplication>Visual Studio Code</CreatedWithApplication>
<GldfCreationTimeCode>2023-03-29T14:30:00Z</GldfCreationTimeCode>
<UniqueGldfId>b592f355-58ed-42da-961e-ada47215b9c7</UniqueGldfId>
</Header>
<GeneralDefinitions>
<Files>
<File id="photometryFile" contentType="ldc/eulumdat"
type="localFileName">SomePhotometry.ldt</File>
</Files>
<Photometries>
<Photometry id="photometry">
<PhotometryFileReference fileId="photometryFile"/>
</Photometry>
</Photometries>
<LightSources>
<FixedLightSource id="fixedLightSource">
<Name>
<Locale language="en">LED module 50W</Locale>
</Name>
<RatedInputPower>50</RatedInputPower>
</FixedLightSource>
</LightSources>
<Emitters>
<Emitter id="fixedEmitter">
<FixedLightEmitter>
<PhotometryReference photometryId="photometry"/>
<LightSourceReference fixedLightSourceId="fixedLightSource"/>
<RatedLuminousFlux>400</RatedLuminousFlux>
</FixedLightEmitter>
</Emitter>
</Emitters>
<Geometries>
<SimpleGeometry id="cuboidGeometry">
<Cuboid>
<Width>1000</Width>
<Length>500</Length>
<Height>200</Height>
</Cuboid>
<RectangularEmitter>
<Width>1000</Width>
<Length>500</Length>
</RectangularEmitter>
</SimpleGeometry>
</Geometries>
</GeneralDefinitions>
<ProductDefinitions>
<ProductMetaData>
<UniqueProductId>9fc0c42c-524d-4a42-bbc0-1433c7aaf312</UniqueProductId>
<ProductNumber>
<Locale language="en">42</Locale>
</ProductNumber>
<Name>
<Locale language="en">Example Luminaire</Locale>
</Name>
</ProductMetaData>
<Variants>
<Variant id="variant-1">
<Name>
<Locale language="en">Example luminaire simple geometry</Locale>
</Name>
<Geometry>
<SimpleGeometryReference geometryId="cuboidGeometry"
emitterId="fixedEmitter"/>
</Geometry>
</Variant>
</Variants>
</ProductDefinitions>
</Root>

4. ModelGeometryReference

If you want to provide real and detailed models for your luminaires instead of generic ones, you first need L3D files. Create ModelGeometry elements under GeneralDefinitions. Assign them their level-of-detail like in the example below, should you provide more than one. And reference them finally through the ModelGeometryReference element in the variant.

tip

Try out our L3D Editor, read the L3D Editor documentation and L3D documentation on how to create 3D models.

Variant ModelGeometryReference
<?xml version="1.0" encoding="UTF-8"?>
<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/1.0.0-rc.3/gldf.xsd">
<Header>
<Manufacturer>Manufacturer XY</Manufacturer>
<FormatVersion major="1" minor="0" pre-release="3" />
<CreatedWithApplication>Visual Studio Code</CreatedWithApplication>
<GldfCreationTimeCode>2023-03-29T14:30:00Z</GldfCreationTimeCode>
<UniqueGldfId>e19ed73e-fcd6-4469-a359-58fd80510e9c</UniqueGldfId>
</Header>
<GeneralDefinitions>
<Files>
<File id="photometryFile" contentType="ldc/eulumdat"
type="localFileName">SomePhotometry.ldt</File>
<File id="geometryFileLowDetail" contentType="geo/l3d"
type="localFileName">geometryLowPoly.l3d</File>
<File id="geometryFileHighDetail" contentType="geo/l3d"
type="localFileName">geometryHighPoly.l3d</File>
</Files>
<Photometries>
<Photometry id="photometry">
<PhotometryFileReference fileId="photometryFile" />
</Photometry>
</Photometries>
<LightSources>
<FixedLightSource id="fixedLightSource">
<Name>
<Locale language="en">LED module 50W</Locale>
</Name>
<RatedInputPower>50</RatedInputPower>
</FixedLightSource>
</LightSources>
<Emitters>
<Emitter id="fixedEmitter">
<FixedLightEmitter>
<PhotometryReference photometryId="photometry" />
<LightSourceReference fixedLightSourceId="fixedLightSource" />
<RatedLuminousFlux>400</RatedLuminousFlux>
</FixedLightEmitter>
</Emitter>
</Emitters>
<Geometries>
<ModelGeometry id="modelGeometry">
<GeometryFileReference fileId="geometryFileLowDetail" levelOfDetail="Low" />
<GeometryFileReference fileId="geometryFileHighDetail" levelOfDetail="High" />
</ModelGeometry>
</Geometries>
</GeneralDefinitions>
<ProductDefinitions>
<ProductMetaData>
<UniqueProductId>a8fefa50-1597-40b0-b22d-3c19ce9ac6ce</UniqueProductId>
<ProductNumber>
<Locale language="en">42</Locale>
</ProductNumber>
<Name>
<Locale language="en">Example Luminaire</Locale>
</Name>
</ProductMetaData>
<Variants>
<Variant id="variant-1">
<Name>
<Locale language="en">Example luminaire simple geometry</Locale>
</Name>
<Geometry>
<ModelGeometryReference geometryId="modelGeometry">
<EmitterReference emitterId="fixedEmitter">
<EmitterObjectExternalName>leoNameInL3dModel</EmitterObjectExternalName>
</EmitterReference>
</ModelGeometryReference>
</Geometry>
</Variant>
</Variants>
</ProductDefinitions>
</Root>

Another attribute of ModelGeometryReference, which isn't shown in the example, is targetModelType. However, it is only needed in probably very rare cases and only necessary if

  • you want to use the obsolete 3D formats m3d and r3d for your luminaire (or a combination of L3D and m3d/r3d)
  • and the light-emitting surface in these models is named differently:
<Geometry>
<ModelGeometryReference geometryId="modelGeometry">
<EmitterReference emitterId="fixedEmitter" targetModelType="r3d">
<EmitterObjectExternalName>leoNameInR3dModel</EmitterObjectExternalName>
</EmitterReference>
<EmitterReference emitterId="fixedEmitter" targetModelType="m3d">
<EmitterObjectExternalName>sameEmitterButOtherNameInM3dModel</EmitterObjectExternalName>
</EmitterReference>
</ModelGeometryReference>
</Geometry>

5. GeometryReferences

The last option is not a new one, but a combination of two previous ones: The possibility to combine a SimpleGeometry and a ModelGeometry. Applications could then use these depending on their requirements: For building design with hundreds of luminaires, only the simple geometry could be displayed for example. While architects for lighting calculation could enable the 3D models instead:

Variant ModelGeometryReference