Skip to content

Instantly share code, notes, and snippets.

@timstallmann
Created October 11, 2017 02:21
Show Gist options
  • Save timstallmann/236789c4e8bc8799110f06da0c4cd88c to your computer and use it in GitHub Desktop.
Save timstallmann/236789c4e8bc8799110f06da0c4cd88c to your computer and use it in GitHub Desktop.
3D City Tiles Workflow for BC150

3d Printed City Model workflow

  1. ArcMap:
    1. Digitize streets, bldg outlines, acquire DEM. Choose 1/8 mile square area (create graphic than convert to feature). Clip all features & DEM to this outline
  2. CityEngine
    1. Create new scene
    2. Load terrain from DEM. Use DEM as texture file or use generic texture
    3. Load streets/bldgs/lots data into CityEngine by File->Import
    4. Building footprints:
      1. “Align shapes to Terrain” — translate to average
      2. select shapes and “Align terrain to shapes” — cut and fills dirt so that foundations are flat
      3. Assign generating rule to building footprints
    5. Street network
      1. “Align shapes to Terrain” — project all
      2. Select shapes and “Align terrain to shapes”
      3. If necessary, convert to shapes and edit
    6. Select all and export to OBJ — be sure to check the box to translate/center. Set y translation to 0
    7. Import tile boundary from GDB file. Edit tile boundary
      1. Go to object attributes in RH panel
      2. Set all coordinates to y=76.2m = 250 ft — this will be model baseline zero
    8. Export tile boundary as second OBJ file. Set y translation to 0
  3. Blender
    1. Load OBJ file — do not split objects at all, preserve vertex order (maybe can tweak these options)
    2. Load tile boundary obj file
    3. Go to edit mode, extrude, hit z to snap to z axis, extrude points down.
    4. Hit S, then Z, then 0 to snap the selected newly-extruded points to 0 along the Z axis.
    5. Clean Up -> Limited Dissolve
    6. Switch to translate tool and translate this plane along z axis until it meets the tile boundary plane
    7. Extrude up the tile boundary plane until this creates a bounding box for the full solid
    8. Add an intersect modifier to the terrain object to intersect with the tile boundary bounding box
    9. Now scale the bounding box down until it is completely within the terrain object
    10. Now union the new bounding box with the terrain object to fill in holes
    11. Export to Cura
  4. Cura
    1. Scale to max dimension is 185mm
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment