CityEngine Lesson Index
CityEngine & Procedural Modeling
Learn how to build smart 3D cities using GIS data and rule-based Computer Generated Architecture (CGA).CityEngine Learning Roadmap
Follow this structured roadmap to learn CityEngine step by step, from beginner workflows to advanced procedural modeling and automation.
- Beginner Foundations
- Core CGA Logic
- Scope & Coordinate Systems
- Materials & UV Mapping
- Procedural Building Workflow
- Python Automation
- Advanced & Latest Features
Beginner Foundations
Start here to learn the basics of CityEngine, GIS integration, procedural workflows, and beginner-level CGA concepts.
-
001
Completed
[001] Create 3D Buildings from SHP File (Extrude + CGA Guide)
Learn to link GIS attributes like NMLY to extrude 2D footprints into 3D models and connect them via the CityEngine Inspector panel.
-
002-003
Completed
[002-003] How to Create Terrain and Align 3D Buildings in Esri
CityEngine
Get introduced to the fundamental logic of Computer Generated Architecture (CGA) and the software environment required for GIS modeling.
-
004
Completed
[004] How to Color Building by Attribute in Esri CityEngine
Master CGA conditional case statements to automatically assign specific colors to buildings based on their KIND attribute from GIS data.
-
005
Completed
[005] Create Adjustable 3D Building Models
Use @annotations to define dynamic CGA attributes, enabling real-time control of floor heights and counts via interactive UI sliders.
-
006
Completed
[006] Understanding the Basic Concepts of Procedural Modeling in
CityEngine
Use the Model Hierarchy panel to analyze how CGA rules decompose building footprints into structured parts like facades, floors, and windows.
-
007
Completed
[007] How to Perform Viewshed Analysis in CityEngine
Learn the Viewshed Creation tool to simulate camera sightlines, identify urban blind spots, and evaluate visibility within a 3D scene.
-
008
Completed
[008] How to Understand CGA Rule Structure in CityEngine (Beginner
Guide)
Learn to organize procedural logic by mastering CGA components including attributes, constants, functions, and styles for professional coding.
-
009
Completed
[009] How to Generate Basic Streets in CityEngine
Learn to use the Street Creation tool to draw roads and adjust essential sidewalk widths and lane parameters via the Inspector panel.
-
010
Completed
[010] CityEngine Layer Types Explained (Graph, Shape, Map &
More)
Learn the Graph Edit tool to manually adjust street nodes and segments, allowing for precise control over urban road network layouts.
-
011-012
Completed
[011-012] CityEngine Navigator & 3D Viewport Guide (Workspace,
Camera & Bookmarks)
Learn how to use the Navigator panel in Esri CityEngine to manage project resources and workspace files efficiently. This lesson explains the default project folder structure, file organization methods, search and preview functions, and how to manage multiple workspaces for large projects.
-
013
Completed
[013] How to Use Facade Wizard in Esri CityEngine for Procedural
Facades
Learn how to use the Facade Wizard in Esri CityEngine to create procedural building facades from reference images. This lesson explains the basic facade-splitting workflow, horizontal and vertical repeat patterns, facade extrusion, CGA code generation, and the practical limitations of Facade Wizard for complex procedural modeling.
-
014
Completed
[014] How to Use First Edge & Street Edge Attributes in Esri
CityEngine
Learn the core Shape menu features in Esri CityEngine and understand how Shapes act as the foundation of procedural modeling. This lesson focuses on edge-related tools such as Compute First/Street Edges, Compute Edge Attributes, Set First Edge, and Set Street Edge, explaining how road relationships generate edge attributes that can later drive CGA rules, building orientation, setbacks, and facade behavior.
-
015-016
Completed
[015-016] Compute First/Street Edges and Edge Attributes in Esri
CityEngine
Learn the core Shape menu features in Esri CityEngine and understand how Shapes act as the foundation of procedural modeling. This lesson focuses on edge-related tools such as Compute First/Street Edges, Compute Edge Attributes, Set First Edge, and Set Street Edge, explaining how road relationships generate edge attributes that can later drive CGA rules, building orientation, setbacks, and facade behavior.
-
017
Completed Break Time!
[017] Why Understanding Workflow Matters Before Learning CGA in
CityEngine
Rather than blindly following the CGA Reference, it is easier to learn coding by first understanding the menus and workflow in Esri CityEngine. This lesson introduces the procedural workflow from Shape creation → Extrude → Split → Comp, along with the core commands that are frequently used.
-
018
Completed
[018] Convert Models to Shapes and Fix Perspective Distortion in
CityEngine
This lesson explains how to use the Convert Models to Shapes feature to transform existing models back into editable Shapes in Esri CityEngine. It also covers the Crop Image tool and perspective correction techniques for preparing building images for the Facade Wizard.
-
019
Completed
[019] How to Generate Real-Time Building Reports in CityEngine Using
CGA
This tutorial explains how to use the report command in Esri CityEngine to generate real-time statistics from CGA procedural models, including floor counts, Gross Floor Area (GFA), and land-use metrics, while introducing how these values can support urban analysis and later be visualized through Dashboard tools.
-
020
Completed
[020] How to Create Dashboard Charts from Report Data in
CityEngine
This lesson explains how to visualize Report data using the Dashboard feature in Esri CityEngine. You will learn how to display data such as building area by usage type, gross floor area, and average floor size using bar charts, pie charts, and other visualizations for easier analysis.
-
021
Completed
[021] Import External CGA Files for Modular Rule Design in
CityEngine
Learn how to use the import statement to load multiple CGA files as reusable modules in Esri CityEngine. This lesson explains how to organize complex rules by category, manage them efficiently, and create reusable structures with practical examples.
-
022
Completed
[022] Export CGA Rules to SketchUp Using RPK Packages
This lesson introduces how to package CGA rules from Esri CityEngine into RPK files and use them through the SketchUp Extension. It covers the RPK creation workflow using the Share As feature, the SketchUp integration process, and practical limitations that may occur during use.
-
023
Completed
[023] Let's start Learning CGA in Esri CityEngine
Before starting full CGA coding, this lesson outlines the overall learning structure that will follow. It introduces key commands such as Extrude, Split, and Comp, and explains how future lessons will progress through shape creation, transformation, texturing, and practical coding examples in Esri CityEngine.
Core CGA Logic
Learn the essential CGA building blocks including split, comp, selectors, conditional logic, and procedural modeling structure.
-
024
Completed
[024] How to Use the Split Command with Fixed and Ratio Values in
CityEngine
Learn the basics of the CGA split command and use the asterisk (*) to repeatedly divide shape geometries into fixed architectural lengths.
-
025
Completed
[025] How to Split Shapes Using Relative Ratios (~) in CityEngine
Master the tilde (~) operator in CGA split to distribute remaining polygon spaces proportionally and learn approximate repeating splits.
-
026
Completed
[026] How to Control Approximate Split Dimensions in Esri
CityEngine
Discover the 1/3 threshold rule for approximate splits to perfectly manage leftover geometry dimensions without creating useless polygons.
-
027
Completed
[027] How to Use Absolute Percentage Splits (') in CityEngine CGA
Learn the quote (') operator to split geometries by absolute percentage lengths, perfect for dynamic building facade pattern generation.
-
028
Completed
[028] How to Select Specific Segments Using split.index in
CityEngine
Use the split.index function to precisely target and apply different CGA rules to specific repeating segments, like odd or even floors.
-
029
Completed
[029] How to Perform Vertical and Horizontal Splits in CityEngine
Manipulate coordinate axes using alignScopeToGeometry to easily transition between horizontal and vertical facade split operations in CGA.
-
031
Completed
[031] How to Create Nested Split Structures in Esri CityEngine
Practice nesting fixed, relative, and approximate splits to establish clear model hierarchies for complex procedural architectural facades.
-
032
Completed
[032] How to Create 3D Volumes Using Extrude in Esri CityEngine
Master the extrude command and learn to use world.up.flatTop to generate perfectly leveled 3D building volumes on sloped GIS terrain.
-
033
Completed
[033] How to Use the Comp Command in Esri CityEngine for
Component-Based Modeling
Learn the comp command to decompose 3D models into distinct vertices (v), edges (e), and faces (f) for detailed procedural applications.
-
034
Completed
[034] Using Comp Selectors to Target Specific Faces in CityEngine
Utilize local coordinate comp selectors like front, back, and side to apply targeted architectural rules to specific building elevations.
-
035
Completed
[035] How to Use World Coordinate Selectors in CityEngine CGA
Apply world coordinate selectors like world.south to maintain consistent rule orientations (e.g. south-facing windows) upon model rotation.
-
036
Completed
[036] CityEngine comp(): Selecting Sloped Faces with Horizontal,
Vertical, Aslant, and Nutant
Learn to use horizontal, vertical, aslant, and nutant comp selectors to target sloped faces and understand selector priority in CGA.
-
037
Completed
[037] How to Select Roof Edge Types Using Comp(e) Selectors in
CityEngine
Discover how to use specialized edge selectors like eave, hip, valley, and ridge to detail procedural roof geometries in CityEngine.
-
038
Completed
[038] How to Select Street-Facing Faces with Comp() in CityEngine
Learn to target street-facing polygons using street selectors and manage streetWidth attributes for imported GIS footprints.
-
039
Completed
[039] Procedural Modeling Practice in Esri CityEngine: Split, Comp,
and Extrude
A hands-on exercise combining extrude, split, and comp rules while tracking local coordinate changes using the Model Hierarchy panel.
-
040
Completed
[040] Understanding Object Coordinate Selectors in CityEngine
Differentiate between local and object coordinate systems to reliably target building facades using object coordinate selectors.
-
041
Completed
[041] How to Precisely Target Faces Using comp.index in CityEngine
CGA
Learn how to find and use the comp.index value via the Inspector panel to precisely target and apply rules to individual faces.
-
042
Completed
[042] Understanding case...else Conditional Rules in CityEngine
CGA
Learn the fundamental case-else conditional statements in CGA to branch your procedural rules based on index values or shape attributes.
-
043
Completed
[043] How to Build a 5-Story Procedural Building in Esri
CityEngine
A simple practical coding exercise integrating extrude, split, comp, and conditional indices to generate a 5-story procedural building.
Scope & Coordinate Systems
Understand how CityEngine manages coordinates, transformations, and procedural bounding boxes.
-
044
Completed
[044] Understanding Scope and Object Movement in CityEngine CGA
Learn the concept of scope and use the t() command to translate procedural geometries along their specific scope axes.
-
045
Completed
[045] Understanding the translate() Command in CityEngine CGA
Master the translate() command to move 3D models precisely using absolute and relative modes across world, pivot, and scope coordinates.
-
046
Completed
[046] How to Scale Objects and Use Relative Sizing in CityEngine
Learn to use the s() command for fixed and relative scaling, and understand CGA's implicit model copying during sequential transformations.
-
047
Completed
[047] Understanding the r() Command for 3D Rotation in Esri
CityEngine CGA
Discover how to use the r() command to rotate procedural 3D objects accurately around either the scope origin or the scope center.
-
048
Completed
[048] Understanding the rotate() Command in Esri CityEngine CGA
Master the rotate() command to turn 3D models using world, scope, and pivot coordinate systems while managing rule execution order.
-
049-050
Completed
[049-050] Things to Know Before Writing CGA Code in CityEngine
Learn critical CGA coding habits, including using annotations, tracking the model hierarchy, troubleshooting rules, and parameter passing.
-
051
Completed
[051] Understanding the Concept of Scope in CityEngine CGA
Learn the fundamental concept of scope, the invisible bounding box controlling the direction and scale of your procedural 3D operations.
-
052
Completed
[052] How to Align Scope to Axes in Esri CityEngine
Learn the alignScopeToAxes command to easily reorient your 3D bounding box to world coordinates for precise architectural manipulations.
-
053
Completed
[053] How to Use rotateScope() for Angled Splits in CityEngine CGA
Combine alignScopeToAxes and rotateScope to manipulate the bounding box angle, enabling complex diagonal splits on procedural surfaces.
-
054
Completed
[054] How to Use alignScopeToGeometry() in Esri CityEngine CGA
Learn to use alignScopeToGeometry and face indices to snap your scope perfectly to sloped surfaces and complex 3D geometry edges.
-
055
Completed
[055] Practice Scope Alignment with a Shape Prediction Exercise
A practical exercise in predicting 3D outcomes by analyzing alignScopeToAxes and alignScopeToGeometry commands using the Model Hierarchy.
-
056-057
Completed
[056-057] Understanding alignScopeToGeometryBBox() in CityEngine
CGA
Learn how alignScopeToGeometryBBox() works in CityEngine CGA for scope alignment, bounding boxes, and imported OBJ models.
Materials & UV Mapping
Learn how to apply colors, textures, UV projections, and material workflows for procedural buildings.
-
058-059
Completed
[058-059] How to Apply Color Materials in CityEngine CGA
Learn the basics of the CGA color command to assign hex codes or RGB float arrays to your 3D buildings and understand color inheritance.
-
060
Completed
[060] CityEngine CGA color() Command Exercises for split.index and
Conditional Rules
Practice the CityEngine color() command with split.index exercises and procedural CGA color mapping techniques.
-
061
Completed
[061] How to Set Up Texture Projections in Esri CityEngine -
setupProjection()
Learn the first step of procedural texturing by using setupProjection to define UV sets, mapping axes, and texture scales for 3D models.
-
062
Completed
[062] How to Apply and Project UV Textures in CityEngine - texture(),
projectUV()
Complete your basic texturing workflow by assigning image paths with the texture command and wrapping them using the projectUV command.
-
063
Completed
[063] How to Apply Multiple UV Sets and Maps in CityEngine
Discover how to layer multiple textures using setupProjection, material map attributes, and projectUV for advanced realistic rendering.
-
064
Completed
[064] How to Transform UV Coordinates in CityEngine CGA
Master UV transformation commands like rotateUV, scaleUV, and translateUV to precisely adjust texture tiling and positioning on 3D models.
Procedural Building Workflow
Follow a full building creation workflow using imported models, facade splitting, windows, textures, and procedural refinement.
-
065
Completed
[065] How to Insert External 3D Objects in CityEngine
Learn to use the insert command to import external 3D assets and understand how CityEngine automatically scales them to fit the scope.
-
066
Completed
[066] How to Fix Up-Axis Alignment for Imported 3D Assets
Easily correct rotation and orientation issues for imported 3D files by defining the up-axis parameter within the CGA insert command.
-
067
Completed
[067] How to Control Insert Modes for External 3D Models
Learn the three insertMode options of the CityEngine CGA i() command and compare how an imported truck model is placed in each.
-
068
Completed
[068] How to Model a 3D Building from a DAE File in CityEngine
Import a DAE building model into CityEngine, extrude its floor plan, separate each facade with comp(f), and group similar ones.
-
069
Completed
[069] How to Split Facades and Floors for Procedural Buildings
Split a building facade into ground, middle, and roof floors in CityEngine CGA, then refactor repeated rules with parameters.
-
099
Completed
[099] How to Use Recursive Calls for Object Placement in CGA
Learn the concept of recursive calls in CGA to automatically duplicate, space, and distribute 3D objects across procedural environments.
-
114
Completed
[114] How to Export Bookmarks as Images using Python in
CityEngine
Automate repetitive tasks by writing a Python script to batch export saved CityEngine bookmarks directly into high-resolution images.
Python Automation
Automate repetitive workflows, manipulate objects, export data, and integrate scripting into CityEngine.
Advanced & Latest Features
Explore advanced procedural workflows, semantic tags, geometry operations, modify tools, and the latest CityEngine updates.
Comments
Post a Comment
Feel free to leave a comment if you have any questions about Global Mapper or CityEngine. I will get back to you with a sincere response as soon as possible. (Please note that all comments are moderated and manually approved to maintain a high-quality community. Promotional or spam content will not be published.)