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
XSD description
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:
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).
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:
<?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.
Try out our L3D Editor, read the L3D Editor documentation and L3D documentation on how to create 3D models.
<?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: