GDZ / GDC

GDZ/GDC data exchange format documentation

XML Version: 2025-01-14 LK 12.4 Documentation Version: 2025-01-27

Introduction #

This format can be obtained with Logikal >=12.4.1 and will be used as exchange format between Logikal and other software. The first version of this format will only be used as export from Logikal.

API Call and Parameter #

The GDZ / GDC format can be retrieved by the method Elevation::GetGdz (see Functional Documentation ).

There are three different export formats, that can be set by the Format parameter:

Parameter Format valueExplanation
WAVEFRONT_OBJExports the whole scene as Wavefront .obj file and its Material Template Library (.mtl file).
XMLExports the whole scene as xml with separate xml files for the profile cross-sections.
XML_WAVEFRONTExports the whole scene as xml with separate wavefront files for the geometries.

XML Schema (XSD files) #

The following schema files define the XML format. Every exported XML file refers to those XSD files via the xsi:noNamespaceSchemaLocation XML element.

XSD LinkParameter relevanceExplanation
GdcTree_2025-01-14_LKv12-4.xsdXML, XML_WAVEFRONTMain XML file that describes all elements in the scene in a tree structure.
ProfileDrawings_2025-01-14_LKv12-4.xsdXMLA profile cross-section / glass spacer drawing for extrusion along its axis.
GlassSpacerDrawings_2025-01-14_LKv12-4.xsdXMLGlass spacer cross-section drawing.
ProfileIndex_2025-01-14_LKv12-4.xsdXMLConnection between main file profiles DrawingKey and cross-section drawings.
GlassSpacerIndex_2025-01-14_LKv12-4.xsdXMLConnection between main file glass spacer DrawingKey and cross-section drawings.
FoilIndex_2025-01-14_LKv12-4.xsdXML, XML_WAVEFRONTConnection between DecorSurface.Key and the graphic resource for lamination foil.
WavefrontIndex_2025-01-14_LKv12-4.xsdXML_WAVEFRONTConnection between profiles, glasses, glass spacer and geometry using Guid or SamePartsReference.

Folder structure overview #

.
|
|__ {ElevationGuid...}.xml
|
|__ Profile
|   |__ index.xml
|   |__ {...}.xml
|
|__ GlassSpacer
|   |__ index.xml
|   |__ {...}.xml
|
|__ Foil
|   |__ index.xml
|   |__ {...}.png
|
|__ TextBlock
|   |__ {Guid...}.emf
|   |__ {Guid...}.rtf
|
|__ Wavefront
    |__ {Guid...}.obj
    |__ {Guid...}.mtl
    |__ Foil
        |__ {...}.png

Folder: Profile #

In this folder is an index.xml file and all cross-section drawing xml files.

To calculate the geometries of Profile and DummyProfile XML elements, the extrusion axis and cross-section drawing is needed. The cross-section drawings are in the Profile subfolder.

The mapping between the profiles in the main XML file and the drawings is realized via the XML element (Dummy)Profile.ArticleKey.DrawingKey.

Element in main xml fileProfile/index.xml
Profile.ArticleKey.DrawingKeyProfileDrawings.DrawingKey
DummyProfile.ArticleKey.DrawingKeyProfileDrawings.DrawingKey

Folder: GlassSpacer #

Similar to Folder: Profile. Contains an index.xml file and all cross-section drawing xml files.

Element in main xml fileGlassSpacer/index.xml
GlassSpacer.GlassSpacerKey.DrawingKeyGlassSpacerDrawing.DrawingKey

Folder: Foil #

Contains an index.xml file and all graphic resources (currently PNG files) for profile lamination foil display.

Element in main xml fileFoil/index.xml
DecorSurface.KeyProfileFoil.Key

Folder: TextBlock #

Contains {Guid...}.emf and {Guid...}.rtf files referenced by the TextBlock.Guid xml element in the main file. The RTF file contains the complete graphical representation in parametric form, whereas the EMF file represents this RTF as image if no RTF encoding is available.

Folder: Wavefront #

Contains {Guid...}.obj and {Guid...}.mtl files referenced by the Guid or SamePartsReference xml element of profiles in the main file. These files can be used to avoid own extrusion of geometries and instead use precomputed ones.

Format: XML #

Coordinate system #

Profile cross-section drawing #

The coordinate system of the profile cross-section drawing is defined by the Axis.DrawingSystem XML element. This defines how the cross-section must be positioned to extrude it with the given axis which is needed because the drawing itself is always exported in XY.

The sections are in the YZ plane (Y negative; Z positive) for extrusion. Sections from LogiKal are in the XY plane and will be exported that way. The sections include an outer polygon with 0 to n inner polygons.

The outer polygons are oriented counterclockwise and the inner ones clockwise. The orientation refers to the two-dimensional view, against the z-axis (left) in the direction of the x-axis (right).

The projection:

InputArrowOutput
(x; y)(0; -x; y)

Profile axis #

In case of Logikal exports the profile axis always lies in the XZ plane and starts at 0. Therefore every profile extrusion works the same locally. With the Matrix (and parent Matrix) element the profile will get its world position. A differentiation is made between the line and arc (circle segment) axis.

Straight profile #

The straight profile uses a line axis for extrusion.

Curved profiles #

The cross-section of the curved profile inside the coordinate system is equal to the straight profile. The extrusion is dependent on which direction VecTop is pointing. This enables profiles with glass on the inside or outside.

  • VecTop pointing from start point to circle center: Circle center at (0; 0; Radius), Rotation axis (0; -1; 0)
  • VecTop pointing from circle center to start point: Circle center at (0; 0; -Radius), Rotation axis (0; 1; 0)

Glass panes #

In the GDC, glass panes are composed of an inner and outer contour. Both contours are in the XZ plane, as the profile axis.

Rectangular glass panes #

The contours are defined by width (x) and height (y). The distance between the two contours is the thickness of the pane.

The contours are oriented counterclockwise. The orientation refers to the two-dimensional top view, against the z-axis (left) in the direction of the y-axis (right).

ContourArrowOutput
Outercontour: (x; y)(x; 0; y)
Innercontour: (x; y)(x; -Thickness; y)
Curved glass panes #

The same applies as for rectangular glass panes. The center of the arc is at (0; 0; radius). The arc rotates around the negative y-axis.

Geometry influencing nodes #

Miter Cut #

The miter cut node is defined in the coordinate system of the corresponding profile node. The part in the positive half plane will be cut.

Notch #

Notches lie either at the profile beginning or end. They either cut through the whole cross-section width or height. An inclined notch has an inner plane EFGH where E and F are not on the same position as G and H in axis direction.

Circle Pocket, Drilling and Tap #

Circle pockets, drillings and taps are defined within the profile coordinate system.

Longhole #

Longholes are defined within the profile coordinate system.

Rectangle Pocket #

Rectangle pockets are defined within the profile coordinate system.

Counter Sink/Deburr #

Counter sinks and deburrs are defined within the profile coordinate system.

Format: XML_WAVEFRONT #

If the existing 3D objects should be used, they are located in the Wavefront subfolder. The mapping between the profiles and geometries is done via the SamePartsReference or the Guid. Within the index.xml, which is located in the Wavefront subfolder, the guids of the ProfileType or SingleGlassPane are assigned to the respective files with the 3D data. In the case that a same part reference is available, this is to be used.

The 3D models are saved in wavefront format, see: http://paulbourke.net/dataformats/obj/

Format: WAVEFRONT #

In this case, the Zip file only contains one OBJ and MTL (material library) file, which forms the Wavefront format together, see: http://paulbourke.net/dataformats/obj/