Você está na página 1de 19

10/23/2016

Tutorial4:ImportstreetsCityEngineTutorials|ArcGISforDesktop

Tutorial 4: Import streets


CityEngine 2016
|
Other versions
2015
2016

Download items
Tutorial data
Tutorial PDF

Import DXF street data


CityEngine street networks
CityEngine street networks are attributed graphs, consisting of graph nodes crossings and graph edges street segments.
They can be generated with the street grow feature, created in CityEngine, or imported via an external file, such as DXF.

Prepare street data for CityEngine


In this example, the main road structure for a seaside city has been sketched in Illustrator using its path and geometry
tools.

http://desktop.arcgis.com/en/cityengine/latest/tutorials/tutorial4importstreets.htm

1/19

10/23/2016

Tutorial4:ImportstreetsCityEngineTutorials|ArcGISforDesktop

Export a DXF file from external CAD applications


When exporting the street network, make sure the units fit the CityEngine unit system, which always interprets numbers in
imported files as meters. You can open the .dxf in a text editor and look for the vertex data to see what dimensions are
written out. In this example, an export scale of 1 pixel equals 10 units is set to get the needed dimensions see the export
options screen shot below.
The following is vertex data generated by the DXF export operation:
Vertex data
...
AcDb2dVertex
10
1244.99951171875
20
234.998046875
30
0.0
0
VERTEX
...
The following screen shot shows suggested options in the Illustrator DXF/DWG Options dialog box:

http://desktop.arcgis.com/en/cityengine/latest/tutorials/tutorial4importstreets.htm

2/19

10/23/2016

Tutorial4:ImportstreetsCityEngineTutorials|ArcGISforDesktop

Import a DXF file into CityEngine


1. Open the sesame_01.cej scene file.
2. Locate the sesame_streetsketch.dxf file in the data folder.
3. Rightclick the file, and choose Import.
The Layer 2 data layer is already added as a graph layer to be imported.

http://desktop.arcgis.com/en/cityengine/latest/tutorials/tutorial4importstreets.htm

3/19

10/23/2016

4.
5.
6.
7.

Tutorial4:ImportstreetsCityEngineTutorials|ArcGISforDesktop

Make sure Run Graph Cleanup Tool after Import is checked, and click Next.
Enable Intersect Segments, Snap Nodes to Segments, and Merge Nodes.
Set the snapping distance to 1 and the merging distance to 5.
Click Finish.
A new graph layer called sesame_streetsketch appears in the Scene Editor. Alternatively, you can open the
sesame_02.cej scene file to get the scene with the imported data.

Grow minor streets


Once the major streets are imported, you can start to refine the street network and grow the minor streets in between. The
Street Grow Algorithm in CityEngine tries to fill existing closed blocks, so you can iteratively fill the street blocks with
streets.
1. Focus the street block you want to create minor streets.
2. Create two single small streets using the graph edit tool.
This a specifies the general orientation of the streets in the block, and b defines a starting node for the Street Grow
Algorithm.
3. Manually create some street segments.
4. Select the segments q key, and fill in the blank areas using the Grow Streets dialog box.
http://desktop.arcgis.com/en/cityengine/latest/tutorials/tutorial4importstreets.htm

4/19

10/23/2016

Tutorial4:ImportstreetsCityEngineTutorials|ArcGISforDesktop

The sesame_03.cej scene file contains the finished street network.

http://desktop.arcgis.com/en/cityengine/latest/tutorials/tutorial4importstreets.htm

5/19

10/23/2016

Tutorial4:ImportstreetsCityEngineTutorials|ArcGISforDesktop

Final result
The sesame_12.cej scene file contains a finished street network with extracted and subdivided lots.
The following screen shot shows Sesame City with generated minor streets and extracted building footprints:

http://desktop.arcgis.com/en/cityengine/latest/tutorials/tutorial4importstreets.htm

6/19

10/23/2016

Tutorial4:ImportstreetsCityEngineTutorials|ArcGISforDesktop

The following screen shot shows Sesame City with simple buildings and vegetation models:

Import OSM street data


http://desktop.arcgis.com/en/cityengine/latest/tutorials/tutorial4importstreets.htm

7/19

10/23/2016

Tutorial4:ImportstreetsCityEngineTutorials|ArcGISforDesktop

"OpenStreetMap is a project aimed squarely at creating and providing free geographic data such as street maps to anyone
who wants them." openstreetmap.org

OpenStreetMap
OSM is an XMLbased format used to describe vector data in a map. It defines three basic data typesnodes, ways, and
closed wayswhich are used to describe all the other elements:
NodesPoints between which segments are drawn.
WaysOrdered list of nodes, displayed as connected by line segments in the editor.
Closed WaysWays that go in a complete loop. They are used to describe areas such as parks, lakes, or islands.

Export an OSM file from OpenStreetMap

The OSM data for this tutorial area of historical Pompeii was downloaded from api.openstreetmap.org/api/0.6/map?
bbox=14.4798600,40.7454200,14.4984500,40.7550800.
Find the .osm file in the data folder of your current CityEngine project.

Import an OSM file into CityEngine


1. Open a new scene file by clicking File > New > CityEngine > CityEngine scene.
2. Drag the file into the 3D viewport.
3. In the OSM import dialog box, choose the layers to import. Typically, all streets are in the highway layer and
buildings are in the building layer. Use the Select/deselect all check box to deselect all layers if necessary.
4. Set the additional options as shown in the following screen shot:

http://desktop.arcgis.com/en/cityengine/latest/tutorials/tutorial4importstreets.htm

8/19

10/23/2016

Tutorial4:ImportstreetsCityEngineTutorials|ArcGISforDesktop

5. Click Finish.
6. Accept the suggested coordinate system WGS 1984 UTM Zone 33N.
7. Click OK.

http://desktop.arcgis.com/en/cityengine/latest/tutorials/tutorial4importstreets.htm

9/19

10/23/2016

Tutorial4:ImportstreetsCityEngineTutorials|ArcGISforDesktop

Two new layers street network and shapes appear in the Scene Editor, and the OSM data is visible in the 3D
viewport, with automatically created street shapes on the imported street centerlines.
8. Rename the graph network layer to OSM_Streets.
9. Rename the shape layer to OSM_Shapes.

http://desktop.arcgis.com/en/cityengine/latest/tutorials/tutorial4importstreets.htm

10/19

10/23/2016

Tutorial4:ImportstreetsCityEngineTutorials|ArcGISforDesktop

Street widths
If you look closely at the generated street shapes, you'll notice that they differ in width. When importing OSM data with
the Map OSM tags option enabled, CityEngine creates layer attributes that define street widths from OSM street types.
Select a street segment and note its parameters in the Inspector.
In the following screen shot, a street with highway type primary has assigned street and sidewalk width parameters
according to the layer attribute mapping from the imported OSM Layer OSM_Streets:

http://desktop.arcgis.com/en/cityengine/latest/tutorials/tutorial4importstreets.htm

11/19

10/23/2016

Tutorial4:ImportstreetsCityEngineTutorials|ArcGISforDesktop

You can manually modify the street width by setting a new width value to the streetWidth parameter the value will change
to a userset value or by using the Street Edit tool on the toolbar.

OSM attribute mapping


1. Select the new graph network layer in the Scene Editor, and look at the layer attribute code in the Inspector.
The street segment in the previous image is of type tertiary and is mapped to 6 meters in the function streetWidthByClass.
You can change the mapping here as desired.
#2012.1
//
//ExampleOSMTagMapping
streetscale=1//streetwidthscalefactor
width=getObjectAttr("width")
lanes=getObjectAttr("lanes")
attrstreetWidth=//streetwidthdependingonavailableattributes
casewidth>0:width*streetscale
caselanes>0:lanes*3*streetscale
else:streetWidthByClass*streetscale*oneway
class=getObjectAttr("highway")
streetWidthByClass=
caseclass=="primary":8
caseclass=="secondary":7
caseclass=="tertiary":6
caseclass=="motorway":12
caseclass=="trunk":11
caseclass=="road":6
caseclass=="residential":5
caseclass=="footway":2
caseclass=="cycleway":2
caseclass=="steps":2
else:4
http://desktop.arcgis.com/en/cityengine/latest/tutorials/tutorial4importstreets.htm

12/19

10/23/2016

Tutorial4:ImportstreetsCityEngineTutorials|ArcGISforDesktop

oneway=//onewaywidthcorrection
casegetObjectAttr("oneway")=="yes":0.5
else:1

sidewalkscale=1//sidewalkwidthscalefactor
sidewalkWidth=
caseclass=="primary":2
caseclass=="secondary":2
caseclass=="tertiary":2
caseclass=="residential":2
else:0
attrsidewalkWidthLeft=sidewalkWidth*sidewalkscale
attrsidewalkWidthRight=sidewalkWidth*sidewalkscale

Data conflicts
Imported OSM data often is not very clean and leads to conflicts for example, overlapping streets. Open blocks or red
dotted lines are indications of unconnected segments or overlapping streets, which can lead to invalid blocks. There are a
number of ways to deal with such conflicts:
Use the Cleanup Graph tool with different parameters.
Select fewer streets from the highway layer in the import dialog box.
Set street and sidewalk widths to lower values resulting in less overlapping streets.
Manually clean up the street network after import by combining or removing nearby crossings or parallel streets.
The following screen shots show an example of unconnected graph nodes before and after cleaning:

http://desktop.arcgis.com/en/cityengine/latest/tutorials/tutorial4importstreets.htm

13/19

10/23/2016

Tutorial4:ImportstreetsCityEngineTutorials|ArcGISforDesktop

Note:
OSM street data usually contains elevation data attribute level, but it may be faulty. If you activate the Run
Generate Bridges Tool option, CityEngine automatically works out a possible solution to deal with this.

Add a map layer with satellite imagery


1.
2.
3.
4.
5.

Click File > Import > CityEngine Layers > Texture Import.
Browse to the pompeii_satellite.jpg file in the maps folder.
Use the suggested coordinate system WGS 1984 UTM Zone 33N for the image.
Size bounds and Offset Location are set automatically via the pompeii_satellite.jgw world file.
Click Finish to create the new texture map layer.

http://desktop.arcgis.com/en/cityengine/latest/tutorials/tutorial4importstreets.htm

14/19

10/23/2016

Tutorial4:ImportstreetsCityEngineTutorials|ArcGISforDesktop

Note:
CityEngine does not reproject images on import. Choosing the coordinate system on image import is only used
to calculate the correct location information. It is therefore crucial to have image data prepared in the projection
used in the CityEngine scene. In the previous example, the Pompeii satellite image has been reprojected in
ArcMap to WGS 1984 UTM Zone 33N the Scene Coordinate System used for this tutorial scene.
The following screen shot show the satellite map added to OSM street data:

Generate models
1. Select all shapes.
2. Assign the osm_generic.cga rule file.
Because some shapes already have a valid start rule set, the Set Start Rule dialog box appears.

http://desktop.arcgis.com/en/cityengine/latest/tutorials/tutorial4importstreets.htm

15/19

10/23/2016

Tutorial4:ImportstreetsCityEngineTutorials|ArcGISforDesktop

3. Click Skip.
4. Generate.
As you may have noticed, only the streets have been generated. The building shapes were not generated. Select one
of them and note in the Inspector that there is no start rule assigned.
5. To fix it, rightclick the selected shape in the viewport and choose Select > Select Objects with Same Start Rule from
the context menu. This selects all shapes with no start rule set.
6. In the Inspector, click the Select button next to the Start Rule field. In the Set Start Rule dialog box, choose Lot.
7. Generate again.
The following screen shot shows simple generic models generated on OSM data:

http://desktop.arcgis.com/en/cityengine/latest/tutorials/tutorial4importstreets.htm

16/19

10/23/2016

Tutorial4:ImportstreetsCityEngineTutorials|ArcGISforDesktop

Import shapefile and geodatabase street data


Because the operation of importing streets from shapefiles and geodatabase files is almost identical, a specific example for
geodatabases is not shown here.

Shapefile data
1. Locate the streets.shp file in the data folder of the tutorial project.
The shapefile also has a .prj file, which ensures correct georeferencing on import. The data consists of polylines that
import as street segments in CityEngine. The data also contains a width attribute, which controls street width in
CityEngine.
Attribute table of the shapefile as displayed in ArcMap:

http://desktop.arcgis.com/en/cityengine/latest/tutorials/tutorial4importstreets.htm

17/19

10/23/2016

Tutorial4:ImportstreetsCityEngineTutorials|ArcGISforDesktop

Import data
1. Create a new empty CityEngine scene.
2. Drag and drop the streets.shp file from the Navigator into the 3D viewport.
3. During import, CityEngine prompts you to choose a scene coordinate system. The projection defined for the
shapefile is suggested as default; use that here.

http://desktop.arcgis.com/en/cityengine/latest/tutorials/tutorial4importstreets.htm

18/19

10/23/2016

Tutorial4:ImportstreetsCityEngineTutorials|ArcGISforDesktop

Note:
The .shp data in this example contains the width attribute to control the street width. Data with no such attribute
results in default street widths. Street widths can also be set manually after import. Mappings to other attribute
names are possible as well using attribute mapping. See the CityEngine manual for details.

Cleanup
The imported street shapes show some conflicting street shapes, marked with red dotted lines. Use the Cleanup Graph
operation with Resolve Conflicting Shapes enabled to fix those automatically. You can also use the Simplify Graph tool to
reduce unneeded complex graph segments by approximating the graph by deleting unneeded graph settings and setting
the tangents. See the Street Network section of the CityEngine manual for details.

Assign rule file


1. Select all street shapes.
2. From the File Navigator, drag the sesame_01.cga rule file from the projects rule folder onto the selected shapes in
the 3D viewport.
Simple street models are generated.

http://desktop.arcgis.com/en/cityengine/latest/tutorials/tutorial4importstreets.htm

19/19

Você também pode gostar