Sorry I've been out for a year or so, and things have changed a lot, especially the streets. Usually I use the street network for all kinds of things, når only streets.
For example, if I wanted to create 3D underground pipes, I would use the street network. It seems to have complicated everything a lot if you are not working with streets. To remove lanes and such from a large pipe system crashes everything.
Am I the only one confused?
Hello @Kenneth-Lindhardt
Thank you for bringing up this topic. With the changes to street networks introduced in CityEngine 2025, most legacy rules continue to function as before. However, there is an important change in how street segments connect to nodes: transition shapes are now part of the node itself. Since the lane information is not available on those shapes, creation of pipe extensions for multiple lanes is not supported.
To help illustrate this, I created a simple pipe network rule that demonstrates how to handle pipe connections to nodes under the new system.
version "2025.1"
attr shapeType = ""
@Distance
attr Height_Joint = 4
@File
attr pipeAsset = "assets/cylinder.hor.obj"
attr multiLanes = false
@StartRule
PipeNetwork -->
case shapeType == "Sidewalk": NIL
case shapeType == "Street": Pipe
else: Connector
Pipe --> insertAlongUV(0, pipeAsset, geometry.dv(0,unitSpace)) Material
Connector --> extrude(Height_Joint) Material
ConnectorExt -->
split(v,uvSpace,0)
{ -geometry.vMin: NIL # the lanes start at v-coord 0 i.e. everything below can be splitted away
| 1: ConnectorType(multiLanes) # the lanes end at v-coord nLanesTotal
| ~1 : NIL } # all remaining geometry beyond can be split away
ConnectorType(square) -->
case square: Connector
else: Pipe
Material --> color("#ffae42") setNormals(auto)
The user needs to set the Start Rule "ConnectorExt" on the new node extension shapes. Additionally, the attribute "multiLanes" defines if a pipe or a square extension is created.