How can we open a 3D MAX File(3D Building model with exterior and interior elements)in Autodesk Infrastructure/LandXplorer or ESRI CityEngine?

How can we georeference a 3D vector building model?


I don't use ESRI City Engine, but I do a lot of work integrating GIS into 3d or vice versa depending on your perspective. Seeing as nobody gave you an answer, here is a generic approach. What you do really depends a lot on how the model has been built and whether you can get access to it. I will assume you have access to the model or some modelling package.

You need to make sure that you understand the scale and units which the model was built in. This will probably relate well to meters and 3DS can be set to meters (I believe - I use Blender - which certainly can and so does SketchUp). Having a 1:1 relationship is a good thing because it makes life a lot more simple (i.e. 1 model unit = 1 meter). I think 3D Max defaults to millimetres and most artists ignore this and just use a 1 unit = 1 meter approach without re-setting first (from first-hand experience!). This will either mean your model is 1000 times too small, or, if they did work correctly in mm, your GIS will probably assume the data are in meters, thus making your model 1000 times too big. Check and scale your model to suit. I suppose you could use decimal degrees but that is alien to most 3d modelling packages I've come across and it will send the modeller insane trying to convert from an architect or surveyor's drawing. This will also restrict your choice of SRID, unless the increasing 3D-functionality in PostGIS can cope - I haven't tried because I always work in meters and avoid the problem altogether. I don't think it has full 3D model support yet, but I did read something along the lines that it is intended.

You now need to make all the geometry in the model relative to a known point in the real world. If you started from a surveyor's plan, that should be easy. In all modelling packages I have used, you can set the location of origin of the model. This origin is the point that the GIS will use (and the modeling packages) as the reference of the model. When a model is first made, this point is often roughly somewhere in the middle of the model, just because that is how the artist made it, but that's often not helpful. Without changing the geometry, move the origin to a point relative to the geometry to a point in the model where you know the real-world coordinates. Next, move the entire model so that the origin sits at 0,0,0 in model space (unless, of course, the modeller was savy enough to set the origin to a real-world location... it does happen sometimes!).

Now you need to check the orientation of the model's coordinate space. 3D modellers and computer games makers often have Y as the 'up' axis. This is because they work with vertical computer screens. As geographers we have Z as the 'up' axis, because we have grown out of a tradition of flat maps on table tops. 3DS, Blender and (I think) SketchUp all allow you to swap your model from Y-up to Z-up. I THINK that 3D Max has Z up - but you'll need to check.

We're not quite done with axis orientations though, because you also need to check whether the model was built in a system that uses a right-hand or left-hand coordinate system. Since most systems I've seen sensibly have x running along the bottom of the screen or map in a positive direction from left to right (not all but most!), you mostly likely only need to worry about whether Y (or possibly Z) goes into or out of the screen. Both are common in modelling and I can't remember how 3D Max does it (Blender does it the "right way").

If there is a mismatch with the orientation of the model coordinate system and your real-world orientation of z-up and north is positive-Y, then you will need to rotate/flip your model or toggle the 'Z-up' function (if your modeller has one - sometimes just as an export option). You can probably do this in your GIS but it is probably easier in a 3D modelling package. I have worked with a system where positive-Z equated to GIS-negative-y. It does lead rapidly to confusion if you don't get a grip on it.

Now you have a model with coordinates oriented to match the GIS and an origin at the correct location. From here you can either import into the GIS (assuming your project has an SRID that uses the equivalent unit of measurement as your model (see above) and translate it. Alternatively, you could translate the model in the modelling package which should be as easy if not easier than doing it in the GIS.

If you don't have access to 3D Max, try Blender, MeshLab, Wings3D or SketchUp. They are all free, but Wings is a Y-up package from memory! If my memory serves me ESRI were looking at OBJ and Collada support. These are both good formats to swap models in as most packages will read it. ESRI also support VRML (did they ever move on to X3D?). If you're doing a lot of work in 3D, it is worth thinking about what format the models are in to make your workflow as flexible as possible.

So, I know this is both a long and non-specific answer, but I hate to see a fellow 3D-GISer watch the tumble-weed blow across their post! Don't be put off by the length of the answer, it really isn't as onerous as it sound.


Another and more common approach is to have the model associated to a centroid point file. The important part for this approach is to have a defined model center, that can/does correlate to the centroid spatial location. With the centroid, you will have to have an attribute that has the model name stored. This will act as your linkage between the point and the 3D building model.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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