Skip to main content

Hi,

I'm looking into building custom transformers with FME Objects and Python, and I have succeeded in getting my first one up and running.

However, I'm not finding very much documentation, e.g. of the FMX file format needed to configure the transformer, nor of a development guide. I've looked into the local API docs, the online knowledge base, the online tutorials and googled, but it's proven to be rather illusive.

Are there any comprehensive documentation to be found on these issues anywhere ?

Cheers

 

Lars

Is the "secret" that this technology is so old, that it's excluded from recent documentation ??


For most use cases you can easily accomplish the same thing by creating a linked custom transformer that contains e.g. a PythonCaller. This is pretty well documented.

Could this possibly work for your scenario as well?


Hi @lifalin2016

We don't hide this because it's old technology, but because sometimes a user starts coding a solution because it's the first technology that they see; and that's not always the best solution.

To summarize: we have two different development technologies: FME Objects, and the FME Plug-In SDK.

FME Objects is used where you want to embed FME functionality into your own software applications. It's something either a GIS software company might use to add FME tools into their application, or a consulting company might use to add FME tools to a custom solution. It's rare a user would need to use this.

The FME Plug-In SDK is used where you want to extend FME by adding a new format or custom transformer. It sounds like you want to do that, so you should be looking at this SDK, rather than FME Objects.

So, take a look at the pluginbuilder folder in your FME installation (rather than the fmeobjects folder) and you'll see documentation and some samples for custom transformers.

The info on the knowledgebase is small, but deliberately so. The main article is here. But what that article suggests - and I agree - is that you should sign up with our FME Developers program. You can find more information on our web site. As a member of that program you'll get extra support, and maybe free licenses for testing. You'll also get access to any other documentation that we have on the subject. On occasions some developers even visit us in Vancouver to get expert, one-to-one assistance.

I hope this helps. If you can think of a way we can make this process more transparent, please do let us know.

Regards

Mark

Mark Ireland

 

Product Evangelist

 

Safe Software

Thanks Mark, it was very helpful.

I've sent an email to ask about enrollment in the developer program.

--

Since I posted the question, I’ve been making good progress.

Working from the CenterOfMass example, I’ve now successfully made two working
transformers: Unpivot and StationingCalculator.

In the former I had a problem with an attribute list parameter, that
returned a space-separated list of space-containing attribute names without quotes. That’s obviously a
no-go!

I managed to “reverse-engineer” a Workbench customer transformer to find
the needed attribute type ATTRLIST_COMMAS, enabling comma-separated values
instead. That works!

This is an example of the needed documentation I’ve been looking for.

Cheers

 

Lars

Hi david_r.

The PythonCaller is somewhat limited in what you can do with it, so I'm looking to build transformers from scratch for my purposes.

But PythonCaller is indeeed great for the simpler tasks, where the standard transformers fall short.

Cheers

 

Lars

Hi david_r.

The PythonCaller is somewhat limited in what you can do with it, so I'm looking to build transformers from scratch for my purposes.

But PythonCaller is indeeed great for the simpler tasks, where the standard transformers fall short.

Cheers

 

Lars

Hi Lars

I can sympathize with that. While the Python API is pretty powerful, there are some pretty major limitations on some topics, e.g. raster operations.

Best of luck!

David


Today's discovery: I found two links in the "Creating a Format Plug-in" section of the "Getting started ... Python" pdf:

http://docs.safe.com/fme/html/FME_Metafiles/index.html

 

http://docs.safe.com/fme/html/FME_GuiType/index.html

The latter was the one I was looking for all along. Skipped that section since I was looking to build a transformer, guess I shouldn't have :-)

Cheers

 

Lars

Reply