<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: car parks in ArcGIS CityEngine Questions</title>
    <link>https://community.esri.com/t5/arcgis-cityengine-questions/car-parks/m-p/553882#M7477</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;It depends on the sort of carparks you want, but if you want something like in the attached image, I modified the Street Construction cga. This originally allowed you to have green spaces on the edge, but I changed these to be carparks eg:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
# -----------------------
#Carparks Attributes
@Group("Carpark",3) @Order(1) 
attr carparks = false

@Group("Carpark") @Order(2) 
attr carparkwidth = 2.5
# -----------------------
# Sidewalk Attributes

@Group("Sidewalk") @Order(3) @Range(0,0.4)
attr Sidewalk_height = 0.2&amp;nbsp; # height of sidewalk (and depth of Kerbs)

@Group("Sidewalk") @Order(4) @Range("grey asphalt","pavement")
attr sidewalk_style = "grey asphalt"
# ----------------------------------------
# Functions
# ----------------------------------------
calcNbrOfLanes = rint(lenAlongV/ Lane_width )&amp;nbsp; 
calcLanesLeft&amp;nbsp; = rint((lenAlongV*0.5-Median_width) / Lane_width)&amp;nbsp; 
calcLanesRight = rint((lenAlongV - calcLanesLeft*Lane_width - Median_width) / Lane_width) 

lenAlongU = geometry.du(0,unitSpace)&amp;nbsp; # for convenience and readability only
lenAlongV = geometry.dv(0,unitSpace)&amp;nbsp; # for convenience and readability only

@StartRule
Street --&amp;gt; 
 alignScopeToAxes(y)
 split(u,unitSpace,0){ Crosswalk_width *conStart : Crosswalk(-1) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; | ~1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Streetsides
&amp;nbsp;&amp;nbsp;&amp;nbsp; | Crosswalk_width *conEnd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Crosswalk(1) } 
 BridgeMain

# create left and right side of the street (per default same nbr of lanes in both directions, but user can influence it via attributes)
# modified for New Zealand roads
Streetsides --&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; case calcNbrOfLanes &amp;lt; 1.1 : Asphalt
&amp;nbsp;&amp;nbsp;&amp;nbsp; case Nbr_of_left_lanes == 0 &amp;amp;&amp;amp; Nbr_of_right_lanes == 0:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; split(v,unitSpace,0){ ~calcLanesLeft&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : scaleUV(0,-1,-1) Lanes(calcNbrOfLanes,connectionStart,2) Vehicles(2) 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Median_width&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Median
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | ~calcLanesRight&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Lanes(calcNbrOfLanes,connectionEnd,0) Vehicles(0)}
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; split(v,unitSpace,0){ ~Nbr_of_left_lanes&amp;nbsp;&amp;nbsp;&amp;nbsp; : scaleUV(0,-1,-1) Lanes(Nbr_of_left_lanes,connectionStart,2) Vehicles(2)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Median_width&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Median
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | ~Nbr_of_right_lanes&amp;nbsp;&amp;nbsp;&amp;nbsp; : Lanes(Nbr_of_right_lanes,connectionEnd,0) Vehicles(0) }


# Lanes
Lanes(nLanes,connectionType,dir) --&amp;gt; 
 case connectionType == "STREET" || lenAlongU &amp;lt; 10:
&amp;nbsp; Asphalt("stripes",nLanes) 
 case connectionType == "JUNCTION" &amp;amp;&amp;amp; type == "MAJOR": 
&amp;nbsp; Asphalt("stripes",nLanes)
 else: 
&amp;nbsp; split(u,unitSpace,0){ ~1&amp;nbsp; : Asphalt("stripes",nLanes) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; 12 : Asphalt(arrows,nLanes) }

# Asphalt
# - with lanes
Asphalt(type,nLanes) --&amp;gt;
 case lenAlongU &amp;gt; 3:
&amp;nbsp; [ extrude(0.1) comp(f){all: NIL} ] // required for occlusion check
&amp;nbsp; normalizeUV(0, uv, collectiveAllFaces) 
&amp;nbsp; scaleUV(0,0.5*rint(lenAlongU/6),1)
&amp;nbsp; texture(getStreetTexture(type,nLanes))
&amp;nbsp; Asphalt.
 else:
&amp;nbsp; Asphalt

# - no lanes
Asphalt --&amp;gt;
 [ extrude(0.1) comp(f){all: NIL} ] // required for occlusion check
 setupProjection(0, world.xz, 12, 9) projectUV(0)
 texture(concrete_tex)
 Asphalt.
 
# ----------------------------------------
# Sidewalk
# ----------------------------------------

Sidewalk --&amp;gt; 
 alignScopeToAxes(y) 
 SidewalkWithKerbs 
 t(0, Sidewalk_height ,0)
 
SidewalkWithKerbs --&amp;gt; 
 case carparks == true :
 comp(f){ top&amp;nbsp;&amp;nbsp; : split(y){ Sidewalk_height : CarparkKerbs | ~1 : CarparkPavement } }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else: 
 extrude(world.y, Sidewalk_height )
 comp(f){ top : split(y){ Sidewalk_height : Kerbs | ~1 : CarparkPavement }|
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; side : Kerbs}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 

# ----------------------------------------
# Rules needed by all
# ----------------------------------------
 
SolidKerbs --&amp;gt;
 extrude(world.y, Sidewalk_height ) 
 comp(f){ top: alignScopeToGeometry(zUp,1) Kerbs | side: Kerbs } 

SolidKerbsNormal --&amp;gt;
 extrude(Sidewalk_height) 
 comp(f){ top: alignScopeToGeometry(zUp,1) Kerbs | side: Kerbs } 

CarparkKerbs--&amp;gt;&amp;nbsp; 
 case carparks == true: 
&amp;nbsp; split(x){Crosswalk_width*2 : extrude(world.y, Sidewalk_height )Kerbs
&amp;nbsp; | ~1 : t(0,carparkwidth,0) extrude(Sidewalk_height)Kerbs | Crosswalk_width*2 : extrude(world.y, Sidewalk_height )Kerbs}
&amp;nbsp; setupProjection(0,scope.xy,~1.1,'1) projectUV(0) 
&amp;nbsp; texture(kerb_tex)
 else:Kerbs
 
Kerbs --&amp;gt; 
&amp;nbsp; case scope.sx &amp;lt; 0.5:
&amp;nbsp;&amp;nbsp; setupProjection(0,scope.xy,1,'1) projectUV(0) 
&amp;nbsp;&amp;nbsp; translateUV(0,-scope.sx/2,0)
&amp;nbsp;&amp;nbsp; texture(kerb_tex)
&amp;nbsp; else:
&amp;nbsp;&amp;nbsp; setupProjection(0,scope.xy,~1.1,'1) projectUV(0) 
&amp;nbsp;&amp;nbsp; texture(kerb_tex)

CarparkPavement --&amp;gt;
 case carparks == true : 
&amp;nbsp; split(u,unitSpace,0){ Crosswalk_width*2 : extrude(world.y, Sidewalk_height )Pavement 
&amp;nbsp;&amp;nbsp; | t(0,-0.2,0) split(v,unitSpace,0)
&amp;nbsp;&amp;nbsp; { carparkwidth : split(u,unitSpace,0){0.2 : extrude(Sidewalk_height)Kerbs 
&amp;nbsp;&amp;nbsp; |{ ~5 : Asphalt&amp;nbsp; | { ~0.1:&amp;nbsp; WhiteLine | ~5 : Asphalt }* |0.2 : extrude(Sidewalk_height)Kerbs} } 
&amp;nbsp;&amp;nbsp; |&amp;nbsp; ~1 : t(0,0.2,0) extrude(world.y, Sidewalk_height )Pavement }
&amp;nbsp;&amp;nbsp; | Crosswalk_width*2: extrude(world.y, Sidewalk_height )Pavement }
&amp;nbsp; else: Pavement


Pavement --&amp;gt;
 alignScopeToGeometry(zUp, 0,0)
 Pavement(rand(10),rand(10)) 

Pavement(texUOffset,texVOffset) --&amp;gt;
 setupProjection(0,scope.xy,1,1,texUOffset,texVOffset) projectUV(0)
 setupProjection(2,scope.xy,100, 100) projectUV(2)
 texture(sidewalk_tex)set(material.dirtmap, swdirtmap)
 
WhiteLine--&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
 color(White)&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;That's just parts of the code relating to the carparks but I hope that gives you some idea's anyway.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 23:56:26 GMT</pubDate>
    <dc:creator>JoanneO_Brien</dc:creator>
    <dc:date>2021-12-11T23:56:26Z</dc:date>
    <item>
      <title>car parks</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/car-parks/m-p/553881#M7476</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I want to create on road car parks in CityEngine. I'm planning to modify modernstreets.cga file. What am I supposed to do??&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 May 2013 06:00:49 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/car-parks/m-p/553881#M7476</guid>
      <dc:creator>gulhunduran</dc:creator>
      <dc:date>2013-05-20T06:00:49Z</dc:date>
    </item>
    <item>
      <title>Re: car parks</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/car-parks/m-p/553882#M7477</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;It depends on the sort of carparks you want, but if you want something like in the attached image, I modified the Street Construction cga. This originally allowed you to have green spaces on the edge, but I changed these to be carparks eg:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
# -----------------------
#Carparks Attributes
@Group("Carpark",3) @Order(1) 
attr carparks = false

@Group("Carpark") @Order(2) 
attr carparkwidth = 2.5
# -----------------------
# Sidewalk Attributes

@Group("Sidewalk") @Order(3) @Range(0,0.4)
attr Sidewalk_height = 0.2&amp;nbsp; # height of sidewalk (and depth of Kerbs)

@Group("Sidewalk") @Order(4) @Range("grey asphalt","pavement")
attr sidewalk_style = "grey asphalt"
# ----------------------------------------
# Functions
# ----------------------------------------
calcNbrOfLanes = rint(lenAlongV/ Lane_width )&amp;nbsp; 
calcLanesLeft&amp;nbsp; = rint((lenAlongV*0.5-Median_width) / Lane_width)&amp;nbsp; 
calcLanesRight = rint((lenAlongV - calcLanesLeft*Lane_width - Median_width) / Lane_width) 

lenAlongU = geometry.du(0,unitSpace)&amp;nbsp; # for convenience and readability only
lenAlongV = geometry.dv(0,unitSpace)&amp;nbsp; # for convenience and readability only

@StartRule
Street --&amp;gt; 
 alignScopeToAxes(y)
 split(u,unitSpace,0){ Crosswalk_width *conStart : Crosswalk(-1) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; | ~1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Streetsides
&amp;nbsp;&amp;nbsp;&amp;nbsp; | Crosswalk_width *conEnd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Crosswalk(1) } 
 BridgeMain

# create left and right side of the street (per default same nbr of lanes in both directions, but user can influence it via attributes)
# modified for New Zealand roads
Streetsides --&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; case calcNbrOfLanes &amp;lt; 1.1 : Asphalt
&amp;nbsp;&amp;nbsp;&amp;nbsp; case Nbr_of_left_lanes == 0 &amp;amp;&amp;amp; Nbr_of_right_lanes == 0:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; split(v,unitSpace,0){ ~calcLanesLeft&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : scaleUV(0,-1,-1) Lanes(calcNbrOfLanes,connectionStart,2) Vehicles(2) 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Median_width&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Median
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | ~calcLanesRight&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Lanes(calcNbrOfLanes,connectionEnd,0) Vehicles(0)}
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; split(v,unitSpace,0){ ~Nbr_of_left_lanes&amp;nbsp;&amp;nbsp;&amp;nbsp; : scaleUV(0,-1,-1) Lanes(Nbr_of_left_lanes,connectionStart,2) Vehicles(2)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Median_width&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Median
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | ~Nbr_of_right_lanes&amp;nbsp;&amp;nbsp;&amp;nbsp; : Lanes(Nbr_of_right_lanes,connectionEnd,0) Vehicles(0) }


# Lanes
Lanes(nLanes,connectionType,dir) --&amp;gt; 
 case connectionType == "STREET" || lenAlongU &amp;lt; 10:
&amp;nbsp; Asphalt("stripes",nLanes) 
 case connectionType == "JUNCTION" &amp;amp;&amp;amp; type == "MAJOR": 
&amp;nbsp; Asphalt("stripes",nLanes)
 else: 
&amp;nbsp; split(u,unitSpace,0){ ~1&amp;nbsp; : Asphalt("stripes",nLanes) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; 12 : Asphalt(arrows,nLanes) }

# Asphalt
# - with lanes
Asphalt(type,nLanes) --&amp;gt;
 case lenAlongU &amp;gt; 3:
&amp;nbsp; [ extrude(0.1) comp(f){all: NIL} ] // required for occlusion check
&amp;nbsp; normalizeUV(0, uv, collectiveAllFaces) 
&amp;nbsp; scaleUV(0,0.5*rint(lenAlongU/6),1)
&amp;nbsp; texture(getStreetTexture(type,nLanes))
&amp;nbsp; Asphalt.
 else:
&amp;nbsp; Asphalt

# - no lanes
Asphalt --&amp;gt;
 [ extrude(0.1) comp(f){all: NIL} ] // required for occlusion check
 setupProjection(0, world.xz, 12, 9) projectUV(0)
 texture(concrete_tex)
 Asphalt.
 
# ----------------------------------------
# Sidewalk
# ----------------------------------------

Sidewalk --&amp;gt; 
 alignScopeToAxes(y) 
 SidewalkWithKerbs 
 t(0, Sidewalk_height ,0)
 
SidewalkWithKerbs --&amp;gt; 
 case carparks == true :
 comp(f){ top&amp;nbsp;&amp;nbsp; : split(y){ Sidewalk_height : CarparkKerbs | ~1 : CarparkPavement } }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else: 
 extrude(world.y, Sidewalk_height )
 comp(f){ top : split(y){ Sidewalk_height : Kerbs | ~1 : CarparkPavement }|
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; side : Kerbs}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 

# ----------------------------------------
# Rules needed by all
# ----------------------------------------
 
SolidKerbs --&amp;gt;
 extrude(world.y, Sidewalk_height ) 
 comp(f){ top: alignScopeToGeometry(zUp,1) Kerbs | side: Kerbs } 

SolidKerbsNormal --&amp;gt;
 extrude(Sidewalk_height) 
 comp(f){ top: alignScopeToGeometry(zUp,1) Kerbs | side: Kerbs } 

CarparkKerbs--&amp;gt;&amp;nbsp; 
 case carparks == true: 
&amp;nbsp; split(x){Crosswalk_width*2 : extrude(world.y, Sidewalk_height )Kerbs
&amp;nbsp; | ~1 : t(0,carparkwidth,0) extrude(Sidewalk_height)Kerbs | Crosswalk_width*2 : extrude(world.y, Sidewalk_height )Kerbs}
&amp;nbsp; setupProjection(0,scope.xy,~1.1,'1) projectUV(0) 
&amp;nbsp; texture(kerb_tex)
 else:Kerbs
 
Kerbs --&amp;gt; 
&amp;nbsp; case scope.sx &amp;lt; 0.5:
&amp;nbsp;&amp;nbsp; setupProjection(0,scope.xy,1,'1) projectUV(0) 
&amp;nbsp;&amp;nbsp; translateUV(0,-scope.sx/2,0)
&amp;nbsp;&amp;nbsp; texture(kerb_tex)
&amp;nbsp; else:
&amp;nbsp;&amp;nbsp; setupProjection(0,scope.xy,~1.1,'1) projectUV(0) 
&amp;nbsp;&amp;nbsp; texture(kerb_tex)

CarparkPavement --&amp;gt;
 case carparks == true : 
&amp;nbsp; split(u,unitSpace,0){ Crosswalk_width*2 : extrude(world.y, Sidewalk_height )Pavement 
&amp;nbsp;&amp;nbsp; | t(0,-0.2,0) split(v,unitSpace,0)
&amp;nbsp;&amp;nbsp; { carparkwidth : split(u,unitSpace,0){0.2 : extrude(Sidewalk_height)Kerbs 
&amp;nbsp;&amp;nbsp; |{ ~5 : Asphalt&amp;nbsp; | { ~0.1:&amp;nbsp; WhiteLine | ~5 : Asphalt }* |0.2 : extrude(Sidewalk_height)Kerbs} } 
&amp;nbsp;&amp;nbsp; |&amp;nbsp; ~1 : t(0,0.2,0) extrude(world.y, Sidewalk_height )Pavement }
&amp;nbsp;&amp;nbsp; | Crosswalk_width*2: extrude(world.y, Sidewalk_height )Pavement }
&amp;nbsp; else: Pavement


Pavement --&amp;gt;
 alignScopeToGeometry(zUp, 0,0)
 Pavement(rand(10),rand(10)) 

Pavement(texUOffset,texVOffset) --&amp;gt;
 setupProjection(0,scope.xy,1,1,texUOffset,texVOffset) projectUV(0)
 setupProjection(2,scope.xy,100, 100) projectUV(2)
 texture(sidewalk_tex)set(material.dirtmap, swdirtmap)
 
WhiteLine--&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
 color(White)&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;That's just parts of the code relating to the carparks but I hope that gives you some idea's anyway.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 23:56:26 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/car-parks/m-p/553882#M7477</guid>
      <dc:creator>JoanneO_Brien</dc:creator>
      <dc:date>2021-12-11T23:56:26Z</dc:date>
    </item>
    <item>
      <title>Re: car parks</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/car-parks/m-p/553883#M7478</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thats exactly what I'm looking for, thank you for your help!!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 May 2013 13:49:59 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/car-parks/m-p/553883#M7478</guid>
      <dc:creator>gulhunduran</dc:creator>
      <dc:date>2013-05-24T13:49:59Z</dc:date>
    </item>
    <item>
      <title>Re: car parks</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/car-parks/m-p/553884#M7479</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Great post. Glad to see this. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;We've just released a new example that has exactly what you are talking about:&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://www.arcgis.com/home/item.html?id=747c5e4fb4af48408bb15b441ce38c9f"&gt;http://www.arcgis.com/home/item.html?id=747c5e4fb4af48408bb15b441ce38c9f&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Just as you suggested, the street rules in the Redlands example are an evolution of the previous street rules. You can do this yourself, and make wonderful new variations, which we'd love to see. Or if you just need basic parallel or 60 degree angled parking, we've built those options in the Redlands streets rules. It also supports bike lanes and reversed traffic direction amongst other options.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Let us know where else to take the streets, or if you have new variations to share.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Chris&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 May 2013 19:23:54 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/car-parks/m-p/553884#M7479</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2013-05-28T19:23:54Z</dc:date>
    </item>
  </channel>
</rss>

