Here is my use-case, I am looking to write a singular FME workflow that takes XMLs from Overpass (full of building ways, parts and relations), runs them through OSM2World to get OBJs and then finally converts them to CityGML with FME.

I have it working in principal (https://github.com/stirringhalo/osm2citygml) and with tweaks to the Overpass query, I have it working for either all buildings in a bounding box, or all building parts of a relation, etc.

My question is this: What is the best approach in FME to either split an OBJ such that each building is a feature (so that each bounding box isn't a single CityGML feature) or failing that, iterate every building using Overpass or similar so that I can feed it into OSM2World and FME? Or would it be simpler to not merge geometries but then how would I eventually add attributes to buildings if each feature is disjoint?

I'd like to avoid running each building through FME directly as I've noticed the startup time for FME is slow, so it would accumulate pretty dramatically for a large number of buildings

The FME workspace is here https://raw.githubusercontent.com/stirringhalo/osm2citygml/master/osm2citygml.fmw

1 Answer 1


In FME the Deaggregator and Aggregator transformers are the ones you probably want. Most 3D objects are made up of a hierarchy of parts and these transformers will split up hierarchies and create them as well.

The overall object can have attributes, but so can the individual parts of an object, and in FME we called them "traits" (I don't know why, is that proper terminology?) so look for transformers like the TraitMerger and others like the GeometryPropertyExtractor to handle that side of things.

As for the FME performance, that's tough to comment on without knowing more. I'd generally run all my features through a single translation, so there shouldn't be any starting/stopping of either Workbench or the FME engine.

If you need further assistance in FME, I know their support team would be happy to help - they have a 3D guru or two who would love a challenge like this -so do contact them if you need.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.