Für FME gibt es ein gutes Plugin, um Interlis-Dateien zu lesen und zu schreiben. Beim Schreiben von Daten in komplexe Interlis-Modelle muss man aber häufig einige Knacknüsse lösen. Obwohl die meisten Punkte in der Dokumentation erwähnt sind, dauert es eine Weile bis ein FME-Workspace richtig funktioniert.

Hier einige kürzlich gelöste Knacknüsse:
- Inkrement: Um eine Interlis-Datei mit einem
UPDATEzu erstellen, gibt es das Format-Attributxtf_operation. Dieses Attribut mit Werten zu füllen, reicht aber nicht, um ein Inkrement zu definieren. Dazu muss man bei denXTF_BASKET-Features den optionalen Attributenxtf_startstateundxtf_endstateWerte zuweisen. - z-Werte: Das Plugin verwendet standardmässig OGC WKB zum Kodieren der Geometrie. Z-Werte werden damit erst in Version 1.2 unterstützt; das Plugin kann momentan aber nur mit Version 1.1 umgehen. Deshalb stellt man am besten den Parameter
Geometry Encodingdes Writers aufFMEHEXBINund wählt dieselbe Kodierung beim GeometryExtractor. - Strukturattribute: „INTERLIS structure attributes […] are mapped to FME lists.“ heisst es in der Dokumentation. Was bedeutet das konkret? Mein Objekt hat beispielsweise das Strukturattribut
Validity:
<Validity>
<MyClass.ObjectVersionInfo>
<ObjectValidFrom>2009-04-17</ObjectValidFrom>
<ObjectValidTo>2010-10-27</ObjectValidTo>
</MyClass.ObjectVersionInfo>
</Validity>
Um diese Struktur zu erstellen, benötige ich zuerst die drei AttributeObjectValidFrom,ObjectValidToundxtf_class(mit dem WertMyClass.ObjectVersionInfo). Mit dem TransformerListBuilderpackt man diese drei Attribute in eine Liste zusammen, welcher man den NamenValiditygibt. Den Rest erledigt das Interlis-Plugin.
Eine Aufgabe konnte ich mit dem Interlis-Plugin bisher nicht lösen: Das Schreiben von XML-Attributen, beispielsweise <Reference REF="GUID:63803bd8-1082-a745-b465-93393715fbe8" />. Die Elemente, welche das Interlis-Plugin erzeugt (<Reference>GUID:63803bd8-1082-a745-b465-93393715fbe8</Reference>) wandle ich nun separat in die gewünschten Attribute um. Hinweise, ob und wie sich auch dies mit dem Interlis-Plugin lösen lässt, sind willkommen.
The Reference bug is apparently fixed in ili2fme-5.4.2, released today.
Thanks for pointing that out. I will try the new version in the near future.