Posts

Showing posts with the label Urban Design

[041] How to Precisely Target Faces Using comp.index in CityEngine CGA

Image
Learn how to find and use the comp.index value via the Inspector panel to precisely target and apply rules to individual faces. In procedural modeling, selecting a specific face among hundreds can be challenging with general orientation-based selectors. This tutorial demonstrates how to identify the unique index of a component and utilize it within conditional CGA rules for absolute precision in your 3D urban designs. I previously covered split.index, but as I began creating more complex forms, I realized that comp.index deserved its own explanation, so I’ll briefly cover it here. Why Traditional Selectors Are Sometimes Not Enough As you proceed with rules, the number of faces increases. To pinpoint and select a specific face, you need to use a combination of various selectors. However, selectors such as front selectors, object coordinate selectors, and world coordinate selectors operate within specific spatial conditions ...

[034] Using Comp Selectors to Target Specific Faces in CityEngine

Image
Learn to target specific geometry components by defining precise selection conditions in CGA. In this lesson, we transition from component types to selectors within the CityEngine comp command. Selectors act as filters that determine which specific parts of a 3D model (like the front facade, side walls, or roof) are affected by your rules. We will explore the 'all' and 'side' selectors, as well as directional selectors based on coordinate systems. In the last session, we learned about components (v, e, fe, f) and operators ( : , ~ ). From today, we will start looking into selectors. If a component defines the resulting geometry type (point, edge, or face), a selector defines the condition used to filter it. The components that meet the conditions presented by the selector are derived. There are quite a large number of selectors for the comp command. img 1 : https://doc.arcgis.com/en/city...

[032] How to Create 3D Volumes Using Extrude in Esri CityEngine

Image
Understand the extrude command to transform flat 2D shapes into 3D building volumes with precise control over verticality and roof flatness. This tutorial marks the transition from 2D procedural modeling to 3D space in CityEngine. You will learn the syntax of the extrude command, how to handle extrusions on sloped surfaces using world coordinates, and how to ensure building rooftops remain perfectly level regardless of terrain inclination. Recommended Audience: Beginners in CGA modeling and GIS professionals looking to generate basic building masses from footprint data. We are finally moving from planes to 3D volumes. While the transition to 3D might seem like the most critical topic to cover, it is actually one of the simplest commands in CGA, with almost no complex parameters to manage. The syntax is as follows: Syntax extrude (distance) extrude (extrusionType, distance) Reference: CityEngine ...

[031] How to Create Nested Split Structures in Esri CityEngine

Image
Learn how to establish complex architectural hierarchies by nesting various split types. This tutorial covers the practical application of CityEngine's split command, specifically focusing on combining fixed, relative, and approximate splits. We explore how to visualize model hierarchies before coding and how to nest repeated splits to create structured facades that remain responsive to geometric changes. Continuing from the previous lesson, we will explore various split patterns to become more familiar with how they work in practice. Since we have not yet covered indexing concepts in depth, we will focus on simple splits. I will discuss split.index along with case-else statements once we finish the comp command section. The method or sequence of splitting can vary depending on personal preference, so please use the code I provide as a reference rather than an absolute rule. img 1 : Example of Complex Fac...

[021] Import External CGA Files for Modular Rule Design in CityEngine

Image
Learn how to use the import command to split complex CGA rules into manageable, reusable modules. When CGA code becomes too long, it can be separated by function into multiple files. This modular approach makes code easier to edit and reusable across different projects. This tutorial explains the basic concept of importing files and demonstrates how imported attributes are organized within the CityEngine Inspector. Single-file vs Modular CGA Structure When CGA code becomes too long, you can separate rules by function into modules and reuse them as needed. This is extremely useful because it is easy to modify and can be reused in other code. This is a very familiar concept for those who do programming. For example, Suppose there are mixed parcels with different uses, and the regulations require changes in building form according to the use, such as through district unit plans. Writing all the rules for different...

[015-016] Compute First/Street Edges and Edge Attributes in Esri CityEngine

Image
Align building fronts and identify street-side attributes for automated zoning compliance. In this tutorial, you will master the "Compute First/Street Edges" and "Compute Edge Attributes" tools in CityEngine. These features are essential for making your CGA rules "context-aware," allowing your buildings to automatically identify their relationship with adjacent roads to trigger specific design behaviors like setbacks and entrance placements. You will also learn how to use edgeAttr , streetwidths , and edge orientation data inside CGA rules to build context-aware procedural models. Part 1: Understanding "Compute First / Street Edges" Since the theoretical explanation of First / Street Edges can feel a bit abstract, I will use CGA code to verify how they work in practice. First, let's set up road segments and building footprints as shown below. For this...

[009] How to Generate Basic Streets in CityEngine

Image
Learn how to generate basic streets in Esri CityEngine using the Street Creation tool. The built-in Street tool is best for conceptual networks rather than highly detailed engineering blueprints. Its greatest value lies in automatically dividing geometry into 'Street', 'Sidewalk', and 'Joint' shapes, which act as immediate triggers for your CGA rules. This tutorial covers how to create street networks, adjust sidewalk width, and understand Start Rules (Street, Sidewalk, Joint) for CGA-based procedural modeling. The Street Creation tool is arguably one of the most frustrating features in CityEngine. However, it contains fundamental concepts you must understand before diving into CGA coding, so we need to cover it briefly. First, let me explain why it can be frustrating: it is terrible at handling highly curved or sloped roads. It is incredibly difficult to perfectly replicate a complex, real-world en...