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
UPDATE
zu 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_startstate
undxtf_endstate
Werte 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 Encoding
des Writers aufFMEHEXBIN
und 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
,ObjectValidTo
undxtf_class
(mit dem WertMyClass.ObjectVersionInfo
). Mit dem TransformerListBuilder
packt man diese drei Attribute in eine Liste zusammen, welcher man den NamenValidity
gibt. 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.
Entdecke mehr von digital.ebp.ch
Subscribe to get the latest posts sent to your email.
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.