Developing a New Format Reader/Writer with the FME Plug-in SDK

Liz Sanderson
Liz Sanderson
  • Updated

FME Version

  • FME 2022.1


If you want to develop a new format reader or writer to use within FME, a custom transformer should be your first choice as they utilize the FME interface and existing functionality. See the Creating a New Format Reader/Writer in FME article for more details on the available options.  If your transformer requirements go beyond existing functionality, you can utilize the FME Plug-in SDK to create a transformer with either Python, C++, or Java. 

Step-by-step Instructions

1. Install the FME Plug-in SDK
Install the FME Plug-in SDK on Windows. The SDK contains a comprehensive set of resources for developers, all of which are found in the pluginbuilder folder of your FME installation directory (e.g., C:\apps\fme\pluginbuilder).

If you are on macOS or Linux systems, the SDK is automatically installed with FME. The resource paths are:

  • macOS: /Library/FME/<version>/pluginbuilder/samples/doc
  • Linux: /opt/<FME install folder and version>/pluginbuilder/samples/doc

2. Become Familiar with FME
Becoming familiar with FME is the most important prerequisite for successful plug-in development. You can find more information about training courses and free on-demand training on our website
3. Decide on Which Language for the Plug-in
Decide whether you want to implement your plug-in in Python, C++ or in Java. Safe Software uses C++ for the majority of its plug-in development and recommends using C++ to its partners.

4. Review Worksheets 
Fill out the Format Plug-in Development Worksheets, located in <FME>\pluginbuilder\samples\doc. This is a great starting point to help guide you through the implementation process.
5. Follow the Getting Started Guide
Follow the Getting Started Guide which is located in <FME>\pluginbuilder\samples\doc. If you do not see the pluginbuilder directory, you will need to reinstall FME with the SDK option enabled

Use the script to generate a skeleton for your new format reader/writer. This is located in <FME>\pluginbuilder\samples\cpp\code\FMEReaderWriter\myformat. Note: This tool is currently only available for C++ projects.

You can also use other resources available to you through the SDK. These are found in the subdirectories of the pluginbuilder folder and are available for C++, Java, and Python. They include:

  • API Documentation
  • Sample factory plug-in (.fmx), which also demonstrates how to access keywords
  • TFS Reference Plug-ins. These are based on the Text Feature Store format, and are distributed both as source code and in compiled form so that they can be used for testing right out of the box. They demonstrate how to handle rich geometry models, fixed or variable attribute schemas, settings dialog input, and coordinate system handling.

6. Manually Configure Plug-in on FME Server 
The FME Plug-in SDK offers developers maximum flexibility for running plug-ins with all of FME. If you would like to test your format against FME Server and you are using a distributed architecture, the license will need to be manually configured; i.e., the FME Server Administrator will need to license the plug-in on each engine.

Was this article helpful?



Please sign in to leave a comment.