<?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: Perhaps I'm not using 'touches()' correctly? #video &amp;amp; code# in ArcGIS CityEngine Questions</title>
    <link>https://community.esri.com/t5/arcgis-cityengine-questions/perhaps-i-m-not-using-touches-correctly-video-amp/m-p/423910#M5830</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;unsolvable issue&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for the insight Matthias, appreciated &lt;span class="lia-unicode-emoji" title=":grinning_face_with_smiling_eyes:"&gt;😄&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It is ok, I found another way to do it that serves the same purpose.&amp;nbsp; Once the core height is exceeded, the recursive sections stop.&amp;nbsp; To get that nice section protruding above the core, which is a characteristic of your futuristic-NYC example, instead I randomly add a building cap (split and textured to match the recursive sections) to the top of the core height.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 04 Aug 2012 13:11:58 GMT</pubDate>
    <dc:creator>DavidOConnor</dc:creator>
    <dc:date>2012-08-04T13:11:58Z</dc:date>
    <item>
      <title>Perhaps I'm not using 'touches()' correctly? #video &amp;amp;amp;amp; code#</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/perhaps-i-m-not-using-touches-correctly-video-amp/m-p/423906#M5826</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Folks&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is something that has been puzzling me for ages.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've been trying to (roughly) emulate the terrific-looking NYC2259 recursive vertical splits.&amp;nbsp; However, due to my shortfall in skill, I'm using a much simpler approach.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It goes like this: &lt;/SPAN&gt;&lt;BR /&gt;&lt;UL&gt;&lt;BR /&gt;&lt;LI&gt;The core has a given height, and the sections have a given (potential) height. For this example, the potential section height is twice the height of the core. &lt;/LI&gt;&lt;BR /&gt;&lt;LI&gt;Using the touches() instruction as a limitation, the randomized recursive vertical split and gaps should keep looping upwards while they touch the core.&lt;/LI&gt;&lt;BR /&gt;&lt;LI&gt;--If the sections and gaps loop too high ,to where the sections are not touching the core (i.e. be floating in the air and unsupported) so they will stop (give NIL).&lt;/LI&gt;&lt;BR /&gt;&lt;LI&gt;--If the sections and gaps reach the maximum specified section height, they will also stop.&lt;/LI&gt;&lt;BR /&gt;&lt;/UL&gt;&lt;SPAN&gt;What puzzles me is that seems to work great, but not all the time.&amp;nbsp; I've embedded the script below, and here you can see it on this 2-minute video: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://youtu.be/j8phESvleRM" rel="nofollow" target="_blank"&gt;http://youtu.be/j8phESvleRM&lt;/A&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If I split, translate or rescale the core geometry, the core geometry is always generated but, often, the section geometry is not generated at all*.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;But if I turn off the touches() limitation, both the sections and core are generated of course.&amp;nbsp; Yet, the generated section geometry is visibly touching one or more elements of the core.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;As I understand it, the touches() should pick up contact with any shape tree.&amp;nbsp; Perhaps there is there something that I am missing?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your help!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;David&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-style:italic;"&gt;* yes, I'm working with watertight volumes, not polygons&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;#################################################################################################################################### ## VARIABLES #################################################################################################################################### ## Level of Detail&amp;nbsp; attr LOD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1 ############################ ## Height and floors&amp;nbsp; numberOfFloors&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = rint((scope.sx * scope.sz)/floorHeight/10 * popDensityFactor )&amp;nbsp; popDensityFactor&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1&amp;nbsp; coreHeight&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = numberOfFloors * floorHeight&amp;nbsp;&amp;nbsp; // actual height of the core&amp;nbsp; sectionHeight&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = numberOfFloors * floorHeight * 2&amp;nbsp; // potential maximum height of the recursive sections and building&amp;nbsp;&amp;nbsp; floorHeight&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 3&amp;nbsp; tileWidth&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 3&amp;nbsp; ############################ ## Sections&amp;nbsp; sectionRandomizer&amp;nbsp;&amp;nbsp;&amp;nbsp; = (rint(randomSectionDistribution * sectionHeight *.75/floorHeight)) * floorHeight&amp;nbsp; randomSectionDistribution&amp;nbsp;&amp;nbsp;&amp;nbsp; = 15%:.4 20%:.2&amp;nbsp; 20%:.1&amp;nbsp; 20%:.5&amp;nbsp; else: .3&amp;nbsp; gapRandomizer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (rint(randomGapDistribution * sectionHeight *.75/floorHeight)) * floorHeight&amp;nbsp; randomGapDistribution&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 50%:.05&amp;nbsp; 20%:.1&amp;nbsp; 20%:.2&amp;nbsp; else: .3&amp;nbsp; &amp;nbsp;&amp;nbsp; #################################################################################################################################### ## RULES ####################################################################################################################################&amp;nbsp; Lot--&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // make a rectangle from the initial shape, rescale it and align it&amp;nbsp; innerRect&amp;nbsp; s('0.7,'1,'0.7) center(xz) alignScopeToAxes(y) s('1,0,'1) Squareize&amp;nbsp; Squareize --&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; make the new rectangle shape into square, lenght of side is the shortest scope length&amp;nbsp; case scope.sx&amp;nbsp; == scope.sz: &amp;nbsp; s('1,0,'1) &amp;nbsp; center(xz) &amp;nbsp; Footprint&amp;nbsp; case scope.sx &amp;gt; scope.sz: &amp;nbsp; s(scope.sz,0,scope.sz) &amp;nbsp; center(xz) &amp;nbsp; Footprint&amp;nbsp; case scope.sz &amp;gt; scope.sx: &amp;nbsp; s(scope.sx,0,scope.sx) &amp;nbsp; center(xz) &amp;nbsp; Footprint&amp;nbsp; else: &amp;nbsp; NIL&amp;nbsp;&amp;nbsp; Footprint--&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // extrude the core&amp;nbsp; case scope.sx * scope.sz &amp;gt; 500: &amp;nbsp; extrude(coreHeight )&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Tower&amp;nbsp;&amp;nbsp; else:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; NIL&amp;nbsp;&amp;nbsp; ################################ ################################ ## CORE AND SECTIONS ################################&amp;nbsp; Tower--&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // insert the model &amp;nbsp;&amp;nbsp; i(fileRandom("assets/volumes/Rule5/*.obj")) //CORE &amp;nbsp;&amp;nbsp; split(z){ '0.1:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NIL &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | '0.3 :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s('.5, '1, '.5) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; center(xz) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t(0,0,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; Mass&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | '0.2 :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NIL&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | '0.3:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s('.5, '1, '.5) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; center(xz) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t(0,0,-10) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mass&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |'0.1:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NIL &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } //SECTIONS &amp;nbsp;&amp;nbsp; split(z){ '0.1:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NIL&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; | '0.7:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; center(xz)&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; s('1, sectionHeight, '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; RecursiveSections &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |~1: NIL &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ############################### ############################### ## RECURSIVE SECTIONS ###############################&amp;nbsp; RecursiveSections --&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ALTERNATIVE 1: DESIRED&amp;nbsp; repeat the section and gap, while it touches the core &amp;nbsp;&amp;nbsp; case touches(intra) :&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; split(y){ sectionRandomizer: Mass&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | gapRandomizer :&amp;nbsp;&amp;nbsp; NIL&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | ~1:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RecursiveSections&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;nbsp;&amp;nbsp; else: &amp;nbsp;&amp;nbsp;&amp;nbsp; NIL &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ALTERNATIVE 2: CHECK&amp;nbsp; turn off touches() to see if some of the sections touch the core&amp;nbsp; /* &amp;nbsp;&amp;nbsp;&amp;nbsp; split(y){ sectionRandomizer: Mass&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | gapRandomizer :&amp;nbsp;&amp;nbsp; NIL&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | ~1:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RecursiveSections&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; ################################ ## MASS ################################&amp;nbsp; Mass--&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; split up the mass into roof, base and sides &amp;nbsp; alignScopeToAxes(y) &amp;nbsp; center(xyz)&amp;nbsp; &amp;nbsp; comp(f) {horizontal: BasicRoof&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; |all : WallAlignCheck&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; ################################&amp;nbsp;&amp;nbsp; ################################ ## WALL ################################&amp;nbsp; WallAlignCheck--&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // check the alignment (not sure how this part works, but it seems to work) &amp;nbsp; alignScopeToGeometry(zUp, auto) &amp;nbsp; alignScopeToAxes(y)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; split(y){0.01 :&amp;nbsp; TinySplit&amp;nbsp; // Workaround split to get a tiny horizontal edge, for vertical alignment &amp;nbsp;&amp;nbsp;&amp;nbsp; | ~1 :&amp;nbsp;&amp;nbsp; Wall1 &amp;nbsp;&amp;nbsp;&amp;nbsp; } Wall1--&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // split odd shapes into more usual shapes (not sure how this part works, but it seems to work) &amp;nbsp; convexify()&amp;nbsp;&amp;nbsp; &amp;nbsp; comp(f){all: Wall2} &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Wall2--&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // give it a nice color &amp;nbsp; color("#ff0000") &amp;nbsp;&amp;nbsp; ################################&amp;nbsp;&amp;nbsp; ################################ ## FRAME ################################&amp;nbsp; Frame--&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // give it a nice color &amp;nbsp;&amp;nbsp; color("#ff0000") &amp;nbsp;&amp;nbsp; Done. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ################################&amp;nbsp;&amp;nbsp; ################################ ## TINY SPLIT ################################&amp;nbsp; TinySplit--&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // give it a nice color &amp;nbsp;&amp;nbsp; color("#ff0000") &amp;nbsp;&amp;nbsp; Done. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ################################&amp;nbsp;&amp;nbsp; ################################ ## BASIC ROOF ################################&amp;nbsp; BasicRoof --&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // leave it white &amp;nbsp;&amp;nbsp; Roof.&amp;nbsp;&amp;nbsp; &lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Jul 2012 12:12:51 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/perhaps-i-m-not-using-touches-correctly-video-amp/m-p/423906#M5826</guid>
      <dc:creator>DavidOConnor</dc:creator>
      <dc:date>2012-07-19T12:12:51Z</dc:date>
    </item>
    <item>
      <title>Re: Perhaps I'm not using 'touches()' correctly? #video &amp; code#</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/perhaps-i-m-not-using-touches-correctly-video-amp/m-p/423907#M5827</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hooray, I think I've solved it &lt;span class="lia-unicode-emoji" title=":grinning_face_with_smiling_eyes:"&gt;😄&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It seems the rule file is working fine.&amp;nbsp; The problem seems to occur only with some specific volume shapes that I'm using (OBJ format), that I made made initially in 3ds Max.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The volumes giving trouble aren't complex shapes (even a cube!) but they have something that conflicts with the touches() instruction, causing it to be ignored.&amp;nbsp; Interesting, I'll look at the volumes in more detail later today.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Jul 2012 22:42:49 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/perhaps-i-m-not-using-touches-correctly-video-amp/m-p/423907#M5827</guid>
      <dc:creator>DavidOConnor</dc:creator>
      <dc:date>2012-07-19T22:42:49Z</dc:date>
    </item>
    <item>
      <title>Re: Perhaps I'm not using 'touches()' correctly? #video &amp; code#</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/perhaps-i-m-not-using-touches-correctly-video-amp/m-p/423908#M5828</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Wow, this is really puzzling.&amp;nbsp; I made a new generic 3ds Max cube, converted it to editable polygons, and exported it as an FBX and OBJ.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The FBX and OBJ files seem to consistently work differently with the 'touches()' rule.&amp;nbsp; Unfortunately, neither are giving the results I'm hoping for.&amp;nbsp; For the sake of completeness: MAX, ASE and 3DS formats give the same (regrettably, incorrect) results as FBX.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is a 1-minute video of what I mean:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;SPAN&gt;[video=youtube_share;Reo5w2Pqalo]&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://youtu.be/Reo5w2Pqalo[/video]" rel="nofollow" target="_blank"&gt;http://youtu.be/Reo5w2Pqalo[/video]&lt;/A&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;As far as I can tell, all the blocks on screen should get recursive sections.&amp;nbsp; But only a (consistent) few seem to get them.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 21 Jul 2012 06:12:55 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/perhaps-i-m-not-using-touches-correctly-video-amp/m-p/423908#M5828</guid>
      <dc:creator>DavidOConnor</dc:creator>
      <dc:date>2012-07-21T06:12:55Z</dc:date>
    </item>
    <item>
      <title>Re: Perhaps I'm not using 'touches()' correctly? #video &amp; code#</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/perhaps-i-m-not-using-touches-correctly-video-amp/m-p/423909#M5829</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;hey !&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I guess you're having the following currently unsolvable issue.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Once the 'occlusion ghosts' have been created, they exist during the full period of the model generation phase. the tricky part of this is that all possible ghosts (also the ones created in recursions) are checked for occlusions. Thus in many cases, the user would only like to be able to check the occlusion on the 'current state' of the model during the generation phase and not all of them which have ever existed. But sadly, this is not possible with the current implementation of the occlusion functionality.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I personally almost never use occlusions since they have great limitations and make the code insanely complex and slow sometimes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, there is no way to visualize the ghosts, which makes 'debugging' hard.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 30 Jul 2012 14:05:21 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/perhaps-i-m-not-using-touches-correctly-video-amp/m-p/423909#M5829</guid>
      <dc:creator>MatthiasBuehler1</dc:creator>
      <dc:date>2012-07-30T14:05:21Z</dc:date>
    </item>
    <item>
      <title>Re: Perhaps I'm not using 'touches()' correctly? #video &amp; code#</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/perhaps-i-m-not-using-touches-correctly-video-amp/m-p/423910#M5830</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;unsolvable issue&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for the insight Matthias, appreciated &lt;span class="lia-unicode-emoji" title=":grinning_face_with_smiling_eyes:"&gt;😄&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It is ok, I found another way to do it that serves the same purpose.&amp;nbsp; Once the core height is exceeded, the recursive sections stop.&amp;nbsp; To get that nice section protruding above the core, which is a characteristic of your futuristic-NYC example, instead I randomly add a building cap (split and textured to match the recursive sections) to the top of the core height.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 04 Aug 2012 13:11:58 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/perhaps-i-m-not-using-touches-correctly-video-amp/m-p/423910#M5830</guid>
      <dc:creator>DavidOConnor</dc:creator>
      <dc:date>2012-08-04T13:11:58Z</dc:date>
    </item>
    <item>
      <title>Re: Perhaps I'm not using 'touches()' correctly? #video &amp; code#</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/perhaps-i-m-not-using-touches-correctly-video-amp/m-p/423911#M5831</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;glad you found a solution .. !&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Aug 2012 13:58:05 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/perhaps-i-m-not-using-touches-correctly-video-amp/m-p/423911#M5831</guid>
      <dc:creator>MatthiasBuehler1</dc:creator>
      <dc:date>2012-08-15T13:58:05Z</dc:date>
    </item>
  </channel>
</rss>

