Convert SketchUp models to CityGML

Export the model from SketchUp Pro as OBJ or FBX, drop the file onto Insula3D, attach your spreadsheet and convert. You get CityGML 2.0 and 3.0 and CityJSON, and a list of the objects that came out wrong.

  1. 1Export the model from SketchUp as OBJ or FBX
  2. 2Drop the file onto the Insula3D window
  3. 3Attach the spreadsheet and set up the layers
  4. 4Convert and look at what is flagged
The Output window after a run: Conversion done, three notes, tiles for 14 objects, 5 Passed, 2 Recheck, 1 Area mismatch and 1 rework, seven output files with the reports and 3ds Max scripts, and the third-party validators cjval and val3dity with a check mark each.
The real result window for a sample model with a flipped surface and an area mismatch.

What the result shows

  1. Notes

    What to look at first, such as an object with no spreadsheet row or a surface the read back found flipped.

  2. Grades

    How many objects passed and how many need a recheck, disagree with the spreadsheet area or could not be built.

  3. Files

    CityGML and CityJSON, a grade for every object, and scripts that select the flagged objects in 3ds Max.

  4. Validators

    Third-party validators check the files after the run. A pass is not a certification.

Step by step

  1. 1

    Export from SketchUp

    In SketchUp Pro, choose FileExport3D Model and save the model as OBJ or FBX. Insula3D reads OBJ and binary FBX. An FBX file carries its unit; an OBJ file does not, so Insula3D asks for it.

  2. 2

    Open the file in Insula3D

    Drag the file onto the Insula3D window, or choose FileOpen… For an OBJ file, choose the unit and the up axis; Insula3D shows the size the model would have.

    If the file carries no layers, Insula3D asks for a Layer name rule, a pattern that takes the layer from each object name.

    Open a model file in the user guide

  3. 3

    Attach the spreadsheet

    In the Data panel, choose your .xlsx file and click Build to map its columns. One column joins the rows to the object names; others become gml:id, gml:name, the parent building, the storey, the address or plain attributes.

    No spreadsheet yet? Template writes one with every object name filled in. Without a spreadsheet, Insula3D converts the geometry alone.

    The Attribute mapping window: each spreadsheet column with its role, such as Join key, gml:id, gml:name, Parent building, Storey and Area check, and the structure preview of the CityGML tree on the right.
    Each column gets a role. Structure preview shows the CityGML tree before you convert.

    Map the spreadsheet columns in the user guide

  4. 4

    Set up each layer

    In the Layers panel, choose for each layer what its objects become: Surfaces or Solid, the LOD, and the CityGML class and type, such as Building or BuildingPart. Turn on Area check vs sheet where the spreadsheet holds areas.

    The Layers panel with the UNIT layer selected: Geometry Surfaces or Solid, LOD 1 to 4, CityGML class and type set to Building, and the switches Include in output, Semantic surfaces and Area check vs sheet.
    One layer's settings: geometry, LOD, CityGML class and the area check.

    Set up layers in the user guide

  5. 5

    Set the coordinate system

    In the CRS panel, choose the coordinate system your coordinates are in. A model built near the origin can be placed on the map instead, by place name, pasted coordinates or dragging.

    Set the coordinate system in the user guide

  6. 6

    Convert

    In the Output window, turn on CityGML and choose 2.0, 3.0 or Both. CityJSON is always written, and IFC, GLB and FBX are there when you need them. Click Preflight to check the inputs, then Convert.

    The Output window with CityGML turned on and version 2.0 selected, and the file name Sample Tower.gml.
    CityGML 2.0 turned on. CityJSON is always written.

    Preflight and convert in the user guide

What becomes what

In the exported fileIn the CityGML file
ObjectsOne city object each, such as a Building or BuildingPart
Layers, or a layer name ruleThe feature type, LOD and geometry you set for that layer
Object namesThe join key to a row of your spreadsheet
Spreadsheet columnsgml:id, gml:name, address, building, storey and attributes, as you map them
Materials, textures and colorsAppearance: textures and material colors
CoordinatesKept as modeled, in the coordinate system you choose, or placed on the map

What gets checked

Schema
CityGML 2.0 and 3.0 against the official XSD schemas, during the conversion.
Reading back
Each written file is read again: surfaces that do not close, flipped surfaces, holes outside their face.
Spreadsheet join
Objects with no spreadsheet row, rows with no object, duplicate IDs and values that are not numbers or dates.
Area
Where you turn it on, the area of each object against the spreadsheet, with a tolerance in m².
Validators
After the run, val3dity and cjval check the CityJSON in the background.

Insula3D converts the model as it is and reports what it finds. It does not quietly fix or drop objects, and a check that did not run never shows as a pass.

Fix and convert again

Open the result with View results and click Scan: the flagged objects light up one by one, and Copy name copies the selected object's name so you can find it in your modeling program.

Fix the model or the spreadsheet, open it again and convert. The new result shows what is left.

Questions

Which formats work from SketchUp?

OBJ and FBX, from FileExport3D Model in SketchUp Pro. Insula3D also opens 3DS, glTF and GLB.

Why does Insula3D ask for the unit?

An OBJ file stores no unit and no up axis. Insula3D asks for both and shows the size the model would have, so a model exported in millimeters does not come out a thousand times too large.

Do I need an internet connection?

No. Converting, checking and the diagnosis run on your PC. Only the basemap, place search and context buildings use the network.

Will my textures and colors carry over?

Yes, as CityGML and CityJSON appearance, where a layer keeps its surfaces. A layer written as Solid is rebuilt from its footprint, and Insula3D counts the textures it could not carry.

Can I try it before buying?

Yes. The 30-day trial unlocks everything, and files made with it are marked as trial output.

Convert your own model

Windows 10 and 11, 64-bit. The trial unlocks everything for 30 days.

Other ways in