<?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 Create simple stairs with CGA in ArcGIS CityEngine Questions</title>
    <link>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516326#M6999</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;What is the best route to take in order to connect building floors using stairs as in the ESRI Campus example web scene (&lt;A href="http://www.arcgis.com/apps/CEWebViewer/viewer.html?3dWebScene=9c0e319bfaff4d33a0fe2da97c2c3fd7" title="http://www.arcgis.com/apps/CEWebViewer/viewer.html?3dWebScene=9c0e319bfaff4d33a0fe2da97c2c3fd7"&gt;http://www.arcgis.com/apps/CEWebViewer/viewer.html?3dWebScene=9c0e319bfaff4d33a0fe2da97c2c3fd7&lt;/A&gt; )? I am unsure of how to best approach this....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I currently have floor layers that have attributes distinguishing stairwells. My floors have been added from file geodatabases and the height offset has been manually set while aligning to terrain. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any advice or suggestions would be super helpful! Thanks!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tess&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 03 Nov 2015 18:29:28 GMT</pubDate>
    <dc:creator>TessOldemeyer</dc:creator>
    <dc:date>2015-11-03T18:29:28Z</dc:date>
    <item>
      <title>Create simple stairs with CGA</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516326#M6999</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;What is the best route to take in order to connect building floors using stairs as in the ESRI Campus example web scene (&lt;A href="http://www.arcgis.com/apps/CEWebViewer/viewer.html?3dWebScene=9c0e319bfaff4d33a0fe2da97c2c3fd7" title="http://www.arcgis.com/apps/CEWebViewer/viewer.html?3dWebScene=9c0e319bfaff4d33a0fe2da97c2c3fd7"&gt;http://www.arcgis.com/apps/CEWebViewer/viewer.html?3dWebScene=9c0e319bfaff4d33a0fe2da97c2c3fd7&lt;/A&gt; )? I am unsure of how to best approach this....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I currently have floor layers that have attributes distinguishing stairwells. My floors have been added from file geodatabases and the height offset has been manually set while aligning to terrain. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any advice or suggestions would be super helpful! Thanks!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tess&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Nov 2015 18:29:28 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516326#M6999</guid>
      <dc:creator>TessOldemeyer</dc:creator>
      <dc:date>2015-11-03T18:29:28Z</dc:date>
    </item>
    <item>
      <title>Re: Create simple stairs with CGA</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516327#M7000</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Attached is a rule that makes stairs. It was used in the Atlanta airport demo at UC 2015, so there may be some code that was specific to how that was setup. You'll have to study it some. I wrote it, but I don't remember exactly how the directional logic works. You'll have to figure that part out through experimentation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Chris&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Nov 2015 16:39:51 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516327#M7000</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2015-11-06T16:39:51Z</dc:date>
    </item>
    <item>
      <title>Re: Create simple stairs with CGA</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516328#M7001</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you Chris. Very useful&lt;IMG src="https://community.esri.com/legacyfs/online/emoticons/happy.png" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Nov 2015 17:31:07 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516328#M7001</guid>
      <dc:creator>ValerioBozzo</dc:creator>
      <dc:date>2015-11-06T17:31:07Z</dc:date>
    </item>
    <item>
      <title>Re: Create simple stairs with CGA</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516329#M7002</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This is super helpful. Thank you very much!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Nov 2015 17:37:55 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516329#M7002</guid>
      <dc:creator>TessOldemeyer</dc:creator>
      <dc:date>2015-11-06T17:37:55Z</dc:date>
    </item>
    <item>
      <title>Re: Create simple stairs with CGA</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516330#M7003</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Please, someone can explain how to use it? I tried to apply to shape object but it doesn't work!&lt;/P&gt;&lt;P&gt;I tried to apply to a sloped street, but nothing. Please, help me, I need to transform a sloped street to a flight of steps!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Nov 2015 19:00:09 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516330#M7003</guid>
      <dc:creator>ValerioBozzo</dc:creator>
      <dc:date>2015-11-06T19:00:09Z</dc:date>
    </item>
    <item>
      <title>Re: Create simple stairs with CGA</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516331#M7004</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hmm it worked perfectly for me...I just added in color and transparency&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Nov 2015 22:25:11 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516331#M7004</guid>
      <dc:creator>TessOldemeyer</dc:creator>
      <dc:date>2015-11-06T22:25:11Z</dc:date>
    </item>
    <item>
      <title>Re: Create simple stairs with CGA</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516332#M7005</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Can you explain me how to do it please?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Nov 2015 22:38:56 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516332#M7005</guid>
      <dc:creator>ValerioBozzo</dc:creator>
      <dc:date>2015-11-06T22:38:56Z</dc:date>
    </item>
    <item>
      <title>Re: Create simple stairs with CGA</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516333#M7006</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I just applied the rule to planar sections in stairwells of my floor space. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG alt="Stairs.JPG" class="image-1 jive-image" src="https://community.esri.com/legacyfs/online/140781_Stairs.JPG" style="height: auto;" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is the rule:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;version "2015.1"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;attr StairColor="#8b8682"&lt;/P&gt;&lt;P&gt;attr StairTransparency= 0.3&lt;/P&gt;&lt;P&gt;attr LandingColor="#8b8682"&lt;/P&gt;&lt;P&gt;attr LandingTransparency= 0.3&lt;/P&gt;&lt;P&gt;attr landingWidth = 1.2&lt;/P&gt;&lt;P&gt;attr stairDepth = 0.3 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;attr landingSlabThickness = 0.2&lt;/P&gt;&lt;P&gt;attr stairThickness = landingSlabThickness&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;@Range("CW","CCW")&lt;/P&gt;&lt;P&gt;attr TransitionDirection = "CW"&lt;/P&gt;&lt;P&gt;attr TransitionHeight = uFeet(13)&lt;/P&gt;&lt;P&gt;const transitionHeight = meters(TransitionHeight)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;attr TransitionOrientation = 0 # Using North=0, CW compass, East=90&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;@Group("Units",6)&lt;/P&gt;&lt;P&gt;@Order(1)&lt;/P&gt;&lt;P&gt;@Range("Feet","Meters")&lt;/P&gt;&lt;P&gt;attr units = "Feet"&lt;/P&gt;&lt;P&gt;unitScale = case units == "Feet": 3.28084 else: 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;const halfFloorHeight = transitionHeight / 2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;@StartRule&lt;/P&gt;&lt;P&gt;StairMaster --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; # Make flat and aligned to world Y axis.&lt;/P&gt;&lt;P&gt;&amp;nbsp; alignScopeToAxes(y)&lt;/P&gt;&lt;P&gt;&amp;nbsp; s('1,0,'1)&lt;/P&gt;&lt;P&gt;&amp;nbsp; # Remove extra vertices.&lt;/P&gt;&lt;P&gt;&amp;nbsp; cleanupGeometry(all,0.5)&lt;/P&gt;&lt;P&gt;&amp;nbsp; # Get the inner rectangle, since original shapes might be out of square.&lt;/P&gt;&lt;P&gt;&amp;nbsp; innerRect&lt;/P&gt;&lt;P&gt;&amp;nbsp; # Align X axis on longer side.&lt;/P&gt;&lt;P&gt;&amp;nbsp; # XX Will need to add rotation code. &lt;/P&gt;&lt;P&gt;&amp;nbsp; PutScopeXGoingLongways&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PutScopeXGoingLongways --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; case scope.sz &amp;gt; scope.sx:&lt;/P&gt;&lt;P&gt;&amp;nbsp; rotateScope(0,90,0)&lt;/P&gt;&lt;P&gt;&amp;nbsp; OrientationCheck&lt;/P&gt;&lt;P&gt;&amp;nbsp; else:&lt;/P&gt;&lt;P&gt;&amp;nbsp; OrientationCheck&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OrientationCheck --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; # Tilt up end and check which side the landing is oriented, based on the shape.&lt;/P&gt;&lt;P&gt;&amp;nbsp; rotate(rel,scope,0,0,90)&lt;/P&gt;&lt;P&gt;&amp;nbsp; set(InitialLandingSide, compassDirection)&lt;/P&gt;&lt;P&gt;&amp;nbsp; #print("compassDirection"+compassDirection)&lt;/P&gt;&lt;P&gt;&amp;nbsp; #print("TransitionOrientation "+TransitionOrientation) &lt;/P&gt;&lt;P&gt;&amp;nbsp; rotate(rel,scope,0,0,-90)&lt;/P&gt;&lt;P&gt;&amp;nbsp; FlipDirectionMaybe&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;@Hidden&lt;/P&gt;&lt;P&gt;attr InitialLandingSide = "" &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;compassDirection = &lt;/P&gt;&lt;P&gt;&amp;nbsp; case geometry.isOriented(world.north): "N"&lt;/P&gt;&lt;P&gt;&amp;nbsp; case geometry.isOriented(world.east): "E"&lt;/P&gt;&lt;P&gt;&amp;nbsp; case geometry.isOriented(world.south): "S"&lt;/P&gt;&lt;P&gt;&amp;nbsp; case geometry.isOriented(world.west): "W"&lt;/P&gt;&lt;P&gt;&amp;nbsp; else: "X"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FlipDirectionMaybe --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; case InitialLandingSide == "N":&lt;/P&gt;&lt;P&gt;&amp;nbsp; case TransitionOrientation == 0:&lt;/P&gt;&lt;P&gt;&amp;nbsp; Make270Stairs&lt;/P&gt;&lt;P&gt;&amp;nbsp; case TransitionOrientation == 180:&lt;/P&gt;&lt;P&gt;&amp;nbsp; rotateScope(0,180,0)&lt;/P&gt;&lt;P&gt;&amp;nbsp; Make270Stairs&lt;/P&gt;&lt;P&gt;&amp;nbsp; else:&lt;/P&gt;&lt;P&gt;&amp;nbsp; print("Error in TransitionOrientation attribute.")&lt;/P&gt;&lt;P&gt;&amp;nbsp; color(1,0,0) Error.&lt;/P&gt;&lt;P&gt;&amp;nbsp; case InitialLandingSide == "S":&lt;/P&gt;&lt;P&gt;&amp;nbsp; case TransitionOrientation == 180:&lt;/P&gt;&lt;P&gt;&amp;nbsp; Make270Stairs&lt;/P&gt;&lt;P&gt;&amp;nbsp; case TransitionOrientation == 0:&lt;/P&gt;&lt;P&gt;&amp;nbsp; rotateScope(0,180,0)&lt;/P&gt;&lt;P&gt;&amp;nbsp; Make270Stairs&lt;/P&gt;&lt;P&gt;&amp;nbsp; else:&lt;/P&gt;&lt;P&gt;&amp;nbsp; print("Error in TransitionOrientation attribute.")&lt;/P&gt;&lt;P&gt;&amp;nbsp; color(1,0,0) Error.&lt;/P&gt;&lt;P&gt;&amp;nbsp; case InitialLandingSide == "E":&lt;/P&gt;&lt;P&gt;&amp;nbsp; case TransitionOrientation == 90:&lt;/P&gt;&lt;P&gt;&amp;nbsp; Make270Stairs&lt;/P&gt;&lt;P&gt;&amp;nbsp; case TransitionOrientation == 270:&lt;/P&gt;&lt;P&gt;&amp;nbsp; rotateScope(0,180,0)&lt;/P&gt;&lt;P&gt;&amp;nbsp; Make270Stairs&lt;/P&gt;&lt;P&gt;&amp;nbsp; else:&lt;/P&gt;&lt;P&gt;&amp;nbsp; print("Error in TransitionOrientation attribute.")&lt;/P&gt;&lt;P&gt;&amp;nbsp; color(1,0,0) Error.&lt;/P&gt;&lt;P&gt;&amp;nbsp; case InitialLandingSide == "W":&lt;/P&gt;&lt;P&gt;&amp;nbsp; case TransitionOrientation == 270:&lt;/P&gt;&lt;P&gt;&amp;nbsp; Make270Stairs&lt;/P&gt;&lt;P&gt;&amp;nbsp; case TransitionOrientation == 90:&lt;/P&gt;&lt;P&gt;&amp;nbsp; rotateScope(0,180,0)&lt;/P&gt;&lt;P&gt;&amp;nbsp; Make270Stairs&lt;/P&gt;&lt;P&gt;&amp;nbsp; else:&lt;/P&gt;&lt;P&gt;&amp;nbsp; print("Error in TransitionOrientation attribute.")&lt;/P&gt;&lt;P&gt;&amp;nbsp; color(1,0,0) Error.&lt;/P&gt;&lt;P&gt;&amp;nbsp; else:&lt;/P&gt;&lt;P&gt;&amp;nbsp; print("Error in TransitionOrientation attribute - compass error.")&lt;/P&gt;&lt;P&gt;&amp;nbsp; print("InitialLandingSide = " + InitialLandingSide)&lt;/P&gt;&lt;P&gt;&amp;nbsp; color(1,0,0) Error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Make270Stairs --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; split(x) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; landingWidth: LandingLowerAndUpper |&lt;/P&gt;&lt;P&gt;&amp;nbsp; ~1: TwoStraightRuns | &lt;/P&gt;&lt;P&gt;&amp;nbsp; landingWidth: LandingMiddle&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LandingLowerAndUpper --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Landing&lt;/P&gt;&lt;P&gt;&amp;nbsp; t(0,transitionHeight,0)&lt;/P&gt;&lt;P&gt;&amp;nbsp; Landing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LandingMiddle --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; t(0,halfFloorHeight,0)&lt;/P&gt;&lt;P&gt;&amp;nbsp; Landing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Landing --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; extrude(-landingSlabThickness)&lt;/P&gt;&lt;P&gt;&amp;nbsp; color(LandingColor)&lt;/P&gt;&lt;P&gt;&amp;nbsp; set(material.opacity, 1-LandingTransparency)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;@Hidden&lt;/P&gt;&lt;P&gt;attr runLength = 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TwoStraightRuns --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set(runLength, scope.sx)&lt;/P&gt;&lt;P&gt;&amp;nbsp; DJScratchDirection&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DJScratchDirection --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; case TransitionDirection == "CW":&lt;/P&gt;&lt;P&gt;&amp;nbsp; split(z){'0.5: FirstRun | '0.5: SecondRun }&lt;/P&gt;&lt;P&gt;&amp;nbsp; else:&lt;/P&gt;&lt;P&gt;&amp;nbsp; split(z){'0.5: SecondRun | '0.5: FirstRun }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FirstRun --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; StraightRun&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SecondRun --&amp;gt; NIL&lt;/P&gt;&lt;P&gt;&amp;nbsp; rotateScope(0,180,0)&lt;/P&gt;&lt;P&gt;&amp;nbsp; t(0, halfFloorHeight, 0)&lt;/P&gt;&lt;P&gt;&amp;nbsp; StraightRun&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;StraightRun --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; split(x){adjustedStairDepth: Stair}*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Stair --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; t(0,stairRise * (split.index + 1),0)&lt;/P&gt;&lt;P&gt;&amp;nbsp; extrude(-stairThickness)&lt;/P&gt;&lt;P&gt;&amp;nbsp; color(StairColor)&lt;/P&gt;&lt;P&gt;&amp;nbsp; set(material.opacity, 1-StairTransparency)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;adjustedStairDepth = runLength / stairCount&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;stairCount = rint(runLength / stairDepth)&lt;/P&gt;&lt;P&gt;stairRise = halfFloorHeight / (stairCount + 1) &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#################################################################&lt;/P&gt;&lt;P&gt;# Include this in the rule anywhere. Bottom of rule probably.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;meters(valueInEitherFeetOrMeters) =&lt;/P&gt;&lt;P&gt;&amp;nbsp; case units == "Feet": valueInEitherFeetOrMeters * 0.3048&lt;/P&gt;&lt;P&gt;&amp;nbsp; else: valueInEitherFeetOrMeters&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;# Allows CGA author to specify defaults in feet, rather than meters times scale.&lt;/P&gt;&lt;P&gt;uFeet(valueInFeet) = &lt;/P&gt;&lt;P&gt;&amp;nbsp; case units == "Feet": valueInFeet&lt;/P&gt;&lt;P&gt;&amp;nbsp; else: valueInFeet * 0.3048&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;uMeters(valueInMeters) =&lt;/P&gt;&lt;P&gt;&amp;nbsp; case units == "Feet": valueInMeters * 3.28084&lt;/P&gt;&lt;P&gt;&amp;nbsp; else: valueInMeters&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Nov 2015 15:48:39 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516333#M7006</guid>
      <dc:creator>TessOldemeyer</dc:creator>
      <dc:date>2015-11-09T15:48:39Z</dc:date>
    </item>
    <item>
      <title>Re: Create simple stairs with CGA</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516334#M7007</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm sorry Valerio, the rule is not intended for sloped streets. It runs on flat rectangular shapes. You can adjust the slope in the Inspector for the rule.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Chris&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Nov 2015 18:11:07 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516334#M7007</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2015-11-09T18:11:07Z</dc:date>
    </item>
    <item>
      <title>Re: Create simple stairs with CGA</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516335#M7008</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have combined the stairs rule with a floor plan rule in hopes of&amp;nbsp; being able to use the 'floor plan' portion except in the case where the room type is specified as a stairwell in the attributes. The rule works for either the stairs or the floor plan, but I cannot get both to generate at once. CityEngine has automatically assumed two start rules for the rule file (AddOutline and StairMaster). AddOutline is associated with coloring the floors and generating walls and StairMaster (surprise surprise) is for the stairs. When AddOutline is specified as the start rule, the areas where RM_TYPE=STAIR are left empty. When StairMaster is used as the start rule, the stairs are generated but nothing else. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How can I get the floor plan and stair shapes to generate simultaneously?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks again for all of your help!&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Tess&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is the rule I have so far:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;version "2015.1"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#attr Fill_Color = "#FFF80"&lt;/P&gt;&lt;P&gt;attr Outline_Color = "#000000"&lt;/P&gt;&lt;P&gt;@Range(0,1)&lt;/P&gt;&lt;P&gt;attr Transparency = 0.1&lt;/P&gt;&lt;P&gt;attr BorderThickness = 0.2&lt;/P&gt;&lt;P&gt;attr Extrude_Height = 1 &lt;/P&gt;&lt;P&gt;attr DV_LTR = ""&amp;nbsp;&amp;nbsp; # This will connect to your object attribute from the GDB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AddOutline --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; offset( -BorderThickness)&lt;/P&gt;&lt;P&gt;&amp;nbsp; comp(f){border: BorderColor | inside: FillColor}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BorderColor --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; color(Outline_Color)&lt;/P&gt;&lt;P&gt;&amp;nbsp; set(material.opacity, 1-Transparency)&lt;/P&gt;&lt;P&gt;&amp;nbsp; extrude( Extrude_Height)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FillColor --&amp;gt; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; color(getColorFromOrg(DV_LTR)) # This calls the function below using attribute.&lt;/P&gt;&lt;P&gt;&amp;nbsp; set(material.opacity, 1-Transparency) &lt;/P&gt;&lt;P&gt;&amp;nbsp; # Expand this function using orgs, with colors in "hex color" format:&lt;/P&gt;&lt;P&gt;&amp;nbsp; getColorFromOrg(DV_LTR)=&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case DV_LTR == "A" : "#baff1e"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case DV_LTR == "B" : "#0b5394"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case DV_LTR == "C" : "#0000ff"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case DV_LTR == "D" : "#c62104"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case DV_LTR == "E" : "#ddf1ff"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else: "#000000"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;attr RM_TYPE = ""&lt;/P&gt;&lt;P&gt;attr StairColor="#8b8682"&lt;/P&gt;&lt;P&gt;attr StairTransparency= 0.3&lt;/P&gt;&lt;P&gt;attr LandingColor="#8b8682"&lt;/P&gt;&lt;P&gt;attr LandingTransparency= 0.3&lt;/P&gt;&lt;P&gt;attr landingWidth = 1.2&lt;/P&gt;&lt;P&gt;attr stairDepth = 0.3 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;attr landingSlabThickness = 0.2&lt;/P&gt;&lt;P&gt;attr stairThickness = landingSlabThickness&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;@Range("CW","CCW")&lt;/P&gt;&lt;P&gt;attr TransitionDirection = "CW"&lt;/P&gt;&lt;P&gt;attr TransitionHeight = uFeet(13)&lt;/P&gt;&lt;P&gt;const transitionHeight = meters(TransitionHeight)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;attr TransitionOrientation = 0 # Using North=0, CW compass, East=90&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;@Group("Units",6)&lt;/P&gt;&lt;P&gt;@Order(1)&lt;/P&gt;&lt;P&gt;@Range("Feet","Meters")&lt;/P&gt;&lt;P&gt;attr units = "Feet"&lt;/P&gt;&lt;P&gt;unitScale = case units == "Feet": 3.28084 else: 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;const halfFloorHeight = transitionHeight / 2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;StairMaster --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; case RM_TYPE == "STAIR":&lt;/P&gt;&lt;P&gt;&amp;nbsp; # Make flat and aligned to world Y axis.&lt;/P&gt;&lt;P&gt;&amp;nbsp; alignScopeToAxes(y)&lt;/P&gt;&lt;P&gt;&amp;nbsp; s('1,0,'1)&lt;/P&gt;&lt;P&gt;&amp;nbsp; # Remove extra vertices.&lt;/P&gt;&lt;P&gt;&amp;nbsp; cleanupGeometry(all,0.5)&lt;/P&gt;&lt;P&gt;&amp;nbsp; # Get the inner rectangle, since original shapes might be out of square.&lt;/P&gt;&lt;P&gt;&amp;nbsp; innerRect&lt;/P&gt;&lt;P&gt;&amp;nbsp; # Align X axis on longer side.&lt;/P&gt;&lt;P&gt;&amp;nbsp; # XX Will need to add rotation code. &lt;/P&gt;&lt;P&gt;&amp;nbsp; PutScopeXGoingLongways&lt;/P&gt;&lt;P&gt;&amp;nbsp; else: NIL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PutScopeXGoingLongways --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; case RM_TYPE == "STAIR":&lt;/P&gt;&lt;P&gt;&amp;nbsp; case scope.sz &amp;gt; scope.sx:&lt;/P&gt;&lt;P&gt;&amp;nbsp; rotateScope(0,90,0)&lt;/P&gt;&lt;P&gt;&amp;nbsp; OrientationCheck&lt;/P&gt;&lt;P&gt;&amp;nbsp; else:&lt;/P&gt;&lt;P&gt;&amp;nbsp; OrientationCheck&lt;/P&gt;&lt;P&gt;&amp;nbsp; else: NIL &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OrientationCheck --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; case RM_TYPE == "STAIR":&lt;/P&gt;&lt;P&gt;&amp;nbsp; # Tilt up end and check which side the landing is oriented, based on the shape.&lt;/P&gt;&lt;P&gt;&amp;nbsp; rotate(rel,scope,0,0,90)&lt;/P&gt;&lt;P&gt;&amp;nbsp; set(InitialLandingSide, compassDirection)&lt;/P&gt;&lt;P&gt;&amp;nbsp; #print("compassDirection"+compassDirection)&lt;/P&gt;&lt;P&gt;&amp;nbsp; #print("TransitionOrientation "+TransitionOrientation) &lt;/P&gt;&lt;P&gt;&amp;nbsp; rotate(rel,scope,0,0,-90)&lt;/P&gt;&lt;P&gt;&amp;nbsp; FlipDirectionMaybe&lt;/P&gt;&lt;P&gt;&amp;nbsp; else: NIL&lt;/P&gt;&lt;P&gt;&amp;nbsp; @Hidden&lt;/P&gt;&lt;P&gt;&amp;nbsp; attr InitialLandingSide = "" &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; compassDirection = &lt;/P&gt;&lt;P&gt;&amp;nbsp; case geometry.isOriented(world.north): "N"&lt;/P&gt;&lt;P&gt;&amp;nbsp; case geometry.isOriented(world.east): "E"&lt;/P&gt;&lt;P&gt;&amp;nbsp; case geometry.isOriented(world.south): "S"&lt;/P&gt;&lt;P&gt;&amp;nbsp; case geometry.isOriented(world.west): "W"&lt;/P&gt;&lt;P&gt;&amp;nbsp; else: "X"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FlipDirectionMaybe --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; case RM_TYPE == "STAIR":&lt;/P&gt;&lt;P&gt;&amp;nbsp; case InitialLandingSide == "N":&lt;/P&gt;&lt;P&gt;&amp;nbsp; case TransitionOrientation == 0:&lt;/P&gt;&lt;P&gt;&amp;nbsp; Make270Stairs&lt;/P&gt;&lt;P&gt;&amp;nbsp; case TransitionOrientation == 180:&lt;/P&gt;&lt;P&gt;&amp;nbsp; rotateScope(0,180,0)&lt;/P&gt;&lt;P&gt;&amp;nbsp; Make270Stairs&lt;/P&gt;&lt;P&gt;&amp;nbsp; else:&lt;/P&gt;&lt;P&gt;&amp;nbsp; print("Error in TransitionOrientation attribute.")&lt;/P&gt;&lt;P&gt;&amp;nbsp; color(1,0,0) Error.&lt;/P&gt;&lt;P&gt;&amp;nbsp; case InitialLandingSide == "S":&lt;/P&gt;&lt;P&gt;&amp;nbsp; case TransitionOrientation == 180:&lt;/P&gt;&lt;P&gt;&amp;nbsp; Make270Stairs&lt;/P&gt;&lt;P&gt;&amp;nbsp; case TransitionOrientation == 0:&lt;/P&gt;&lt;P&gt;&amp;nbsp; rotateScope(0,180,0)&lt;/P&gt;&lt;P&gt;&amp;nbsp; Make270Stairs&lt;/P&gt;&lt;P&gt;&amp;nbsp; else:&lt;/P&gt;&lt;P&gt;&amp;nbsp; print("Error in TransitionOrientation attribute.")&lt;/P&gt;&lt;P&gt;&amp;nbsp; color(1,0,0) Error.&lt;/P&gt;&lt;P&gt;&amp;nbsp; case InitialLandingSide == "E":&lt;/P&gt;&lt;P&gt;&amp;nbsp; case TransitionOrientation == 90:&lt;/P&gt;&lt;P&gt;&amp;nbsp; Make270Stairs&lt;/P&gt;&lt;P&gt;&amp;nbsp; case TransitionOrientation == 270:&lt;/P&gt;&lt;P&gt;&amp;nbsp; rotateScope(0,180,0)&lt;/P&gt;&lt;P&gt;&amp;nbsp; Make270Stairs&lt;/P&gt;&lt;P&gt;&amp;nbsp; else:&lt;/P&gt;&lt;P&gt;&amp;nbsp; print("Error in TransitionOrientation attribute.")&lt;/P&gt;&lt;P&gt;&amp;nbsp; color(1,0,0) Error.&lt;/P&gt;&lt;P&gt;&amp;nbsp; case InitialLandingSide == "W":&lt;/P&gt;&lt;P&gt;&amp;nbsp; case TransitionOrientation == 270:&lt;/P&gt;&lt;P&gt;&amp;nbsp; Make270Stairs&lt;/P&gt;&lt;P&gt;&amp;nbsp; case TransitionOrientation == 90:&lt;/P&gt;&lt;P&gt;&amp;nbsp; rotateScope(0,180,0)&lt;/P&gt;&lt;P&gt;&amp;nbsp; Make270Stairs&lt;/P&gt;&lt;P&gt;&amp;nbsp; else:&lt;/P&gt;&lt;P&gt;&amp;nbsp; print("Error in TransitionOrientation attribute.")&lt;/P&gt;&lt;P&gt;&amp;nbsp; color(1,0,0) Error.&lt;/P&gt;&lt;P&gt;&amp;nbsp; else:&lt;/P&gt;&lt;P&gt;&amp;nbsp; print("Error in TransitionOrientation attribute - compass error.")&lt;/P&gt;&lt;P&gt;&amp;nbsp; print("InitialLandingSide = " + InitialLandingSide)&lt;/P&gt;&lt;P&gt;&amp;nbsp; color(1,0,0) Error.&lt;/P&gt;&lt;P&gt;&amp;nbsp; else:NIL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Make270Stairs --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; case RM_TYPE == "STAIR":&lt;/P&gt;&lt;P&gt;&amp;nbsp; split(x) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; landingWidth: LandingLowerAndUpper |&lt;/P&gt;&lt;P&gt;&amp;nbsp; ~1: TwoStraightRuns | &lt;/P&gt;&lt;P&gt;&amp;nbsp; landingWidth: LandingMiddle&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; else:NIL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LandingLowerAndUpper --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; case RM_TYPE == "STAIR":&lt;/P&gt;&lt;P&gt;&amp;nbsp; Landing&lt;/P&gt;&lt;P&gt;&amp;nbsp; t(0,transitionHeight,0)&lt;/P&gt;&lt;P&gt;&amp;nbsp; Landing&lt;/P&gt;&lt;P&gt;&amp;nbsp; else:NIL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LandingMiddle --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; case RM_TYPE == "STAIR":&lt;/P&gt;&lt;P&gt;&amp;nbsp; t(0,halfFloorHeight,0)&lt;/P&gt;&lt;P&gt;&amp;nbsp; Landing&lt;/P&gt;&lt;P&gt;&amp;nbsp; else:NIL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Landing --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; case RM_TYPE == "STAIR":&lt;/P&gt;&lt;P&gt;&amp;nbsp; extrude(-landingSlabThickness)&lt;/P&gt;&lt;P&gt;&amp;nbsp; color(LandingColor)&lt;/P&gt;&lt;P&gt;&amp;nbsp; set(material.opacity, 1-LandingTransparency)&lt;/P&gt;&lt;P&gt;&amp;nbsp; else:NIL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; @Hidden&lt;/P&gt;&lt;P&gt;&amp;nbsp; attr runLength = 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TwoStraightRuns --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; case RM_TYPE == "STAIR":&lt;/P&gt;&lt;P&gt;&amp;nbsp; set(runLength, scope.sx)&lt;/P&gt;&lt;P&gt;&amp;nbsp; DJScratchDirection&lt;/P&gt;&lt;P&gt;&amp;nbsp; else:NIL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DJScratchDirection --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; case RM_TYPE == "STAIR":&lt;/P&gt;&lt;P&gt;&amp;nbsp; case TransitionDirection == "CW":&lt;/P&gt;&lt;P&gt;&amp;nbsp; split(z){'0.5: FirstRun | '0.5: SecondRun }&lt;/P&gt;&lt;P&gt;&amp;nbsp; else:&lt;/P&gt;&lt;P&gt;&amp;nbsp; split(z){'0.5: SecondRun | '0.5: FirstRun }&lt;/P&gt;&lt;P&gt;&amp;nbsp; else:NIL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FirstRun --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; case RM_TYPE == "STAIR":&lt;/P&gt;&lt;P&gt;&amp;nbsp; StraightRun&lt;/P&gt;&lt;P&gt;&amp;nbsp; else:NIL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SecondRun --&amp;gt; NIL&lt;/P&gt;&lt;P&gt;&amp;nbsp; #case RM_TYPE == "STAIR":&lt;/P&gt;&lt;P&gt;&amp;nbsp; rotateScope(0,180,0)&lt;/P&gt;&lt;P&gt;&amp;nbsp; t(0, halfFloorHeight, 0)&lt;/P&gt;&lt;P&gt;&amp;nbsp; StraightRun&lt;/P&gt;&lt;P&gt;&amp;nbsp; #else: NIL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;StraightRun --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; case RM_TYPE == "STAIR":&lt;/P&gt;&lt;P&gt;&amp;nbsp; split(x){adjustedStairDepth: Stair}*&lt;/P&gt;&lt;P&gt;&amp;nbsp; else: NIL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Stair --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; case RM_TYPE == "STAIR":&lt;/P&gt;&lt;P&gt;&amp;nbsp; t(0,stairRise * (split.index + 1),0)&lt;/P&gt;&lt;P&gt;&amp;nbsp; extrude(-stairThickness)&lt;/P&gt;&lt;P&gt;&amp;nbsp; color(StairColor)&lt;/P&gt;&lt;P&gt;&amp;nbsp; set(material.opacity, 1-StairTransparency)&lt;/P&gt;&lt;P&gt;&amp;nbsp; else: NIL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; adjustedStairDepth = runLength / stairCount&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; stairCount = rint(runLength / stairDepth)&lt;/P&gt;&lt;P&gt;&amp;nbsp; stairRise = halfFloorHeight / (stairCount + 1) &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; #################################################################&lt;/P&gt;&lt;P&gt;&amp;nbsp; # Include this in the rule anywhere. Bottom of rule probably.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; meters(valueInEitherFeetOrMeters) =&lt;/P&gt;&lt;P&gt;&amp;nbsp; case units == "Feet": valueInEitherFeetOrMeters * 0.3048&lt;/P&gt;&lt;P&gt;&amp;nbsp; else: valueInEitherFeetOrMeters&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; # Allows CGA author to specify defaults in feet, rather than meters times scale.&lt;/P&gt;&lt;P&gt;&amp;nbsp; uFeet(valueInFeet) = &lt;/P&gt;&lt;P&gt;&amp;nbsp; case units == "Feet": valueInFeet&lt;/P&gt;&lt;P&gt;&amp;nbsp; else: valueInFeet * 0.3048&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; uMeters(valueInMeters) =&lt;/P&gt;&lt;P&gt;&amp;nbsp; case units == "Feet": valueInMeters * 3.28084&lt;/P&gt;&lt;P&gt;&amp;nbsp; else: valueInMeters&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Nov 2015 21:59:33 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516335#M7008</guid>
      <dc:creator>TessOldemeyer</dc:creator>
      <dc:date>2015-11-09T21:59:33Z</dc:date>
    </item>
    <item>
      <title>Re: Create simple stairs with CGA</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516336#M7009</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Never mind. That was dumb of me. I replaced 'else: NIL' to 'else: AddOutline' where needed. It's all working fine now. Thanks again for all of your help!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tess&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 10 Nov 2015 15:24:21 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/create-simple-stairs-with-cga/m-p/516336#M7009</guid>
      <dc:creator>TessOldemeyer</dc:creator>
      <dc:date>2015-11-10T15:24:21Z</dc:date>
    </item>
  </channel>
</rss>

