Adapting AEC models for GIS


3D data can come from many different sources and sometimes may not be ready for direct use in GIS.

Let's take a 3D SketchUp model of a house (3DHouse.skp by Sketchycat, see attachment: AEC2GIS.zip) downloaded from Google 3D Warehouse, which we can describe as an AEC model (AEC stands for Architecture, Engineering and Construction).

For a GIS model, it contains a lot of details that do not have any meaning or value in geospatial world. For example, the model has many interior features such as walls, furniture, faucets, toilets etc.
User-added image
This page shows how such a model can be converted to a simpler model that has only house exterior and other features outside the house - this representation may be suitable for landscape modeling. It also includes a demo of 3D to 2D conversion.

SketchUp models often consists of multiple hierarchical levels of geometries - chairs can be aggregated with a table to make a dining set, then with all the furniture in the house; furniture can be combine with all the interiors, and then - with exterior walls, with the roof, and eventually, with everything outside - garden furniture, swimming pool, trees - and FME will read just a single feature.

Some of the geometries can have names and other attributes kept as Geometry Traits, other may stay without names and geometry traits may be very inconsistent.

At this point (this article is being written in time of early FME 2011 betas) we don't have a good tool for smart deaggregation of SketchUp files and other hierarchical models, instead, our first workspace uses several Deaggregators, GeometryNameExtractors, and Testers to get to some of the parts of the model.

After that we add TestFilter that allows separating features that have value for a GIS model from the rest:
User-added image
The animation below shows the model (3DGISHouse2DTrees.pdf) where all interior parts were removed. On the left side of the animation you can see a list of layers, which are common in GIS world, but did not exist in the original model:
User-added image
If there is a need in a more realistic landscape, FME can modify or replace some of the features. The workspace above after some modifications removes schematic 2D trees and replaces them with more realistic 3D trees and shrubs with the result you can see in 3DGISHouse3DTrees.pdf:
User-added image
User-added image
User-added image
The last workspace shows how to make a simple traditional 2D map(2dHouse.pdf):

As you can see, the workspace that makes the simplest map is the most complex. Red hatched rectangles show areas where FME should do better - first, in deaggregation of the complex features, and then, in converting 3D features into 2D. Right now I make in an aggressive, inelegant way, which also is very inefficient and does not work with complex 3D structures - I crash and smash the model with 2DForcer, GeometryCoercer, Chopper, Intersector, PolygonBuilder, and Dissolver. It should not be so hard - FME definitely needs a nice transformer that would extract footprints or any 2D shape along an arbitrary clipping plane. I hope that at the end of the current development cycle (or sooner) we will be able to add such a transformer to FME.
User-added image