<?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: Working with multi-layer symbols in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/working-with-multi-layer-symbols/m-p/173311#M4490</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I've never had to work with that many graphic elements before so these are all untested ideas...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Are you deleting the elements by looping through the graphics container and calling the Reset method after each delete?&amp;nbsp; If so, it's the call to Reset that is most likely slowing it down.&amp;nbsp; Instead of deleting the elements within the loop, add them to a collection (and remove the call to Reset).&amp;nbsp; Then loop through the collection and call DeleteElement.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You might consider creating features on a feature layer instead of graphic elements.&amp;nbsp; You'd then be able to delete via query by calling ITable.DeleteSearchedRows, which will be about as fast as you're going to get using ArcObjects.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You might also try creating an FdoGraphicsLayer for the elements.&amp;nbsp; According to the documentation, the FdoGraphicsLayer class also implements ITable, so you should be able to call DeleteSearchedRows on it.&amp;nbsp; I'm not sure exactly how the query would look since a graphic element doesn't have attributes like a feature does.&amp;nbsp; I've never done anything like this so you may find out that a lot of the methods on the interfaces the graphics layer implements are just not implemented.&amp;nbsp; It would be some interesting R&amp;amp;D though.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 22 Mar 2012 17:04:04 GMT</pubDate>
    <dc:creator>NeilClemmons</dc:creator>
    <dc:date>2012-03-22T17:04:04Z</dc:date>
    <item>
      <title>Working with multi-layer symbols</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/working-with-multi-layer-symbols/m-p/173308#M4487</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi All,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am writing an application that deletes elements (lines, markers, text, etc) from a page layout based on the color of the symbol.&amp;nbsp; For the most part everything works fine.&amp;nbsp; I cast the element to the appropriate Element type (ITextElement, ILineElement, etc) get the Symbol property and the Color.&amp;nbsp; There is one exception, for a few of the elements the Symbol has multi-layers and it is the second layer of the symbol that is the Color I am looking for.&amp;nbsp; I do not seem to get a reference to this part of the symbol.&amp;nbsp; I have searched and I cannot find a way to loop through the layers in a multi-layer symbol.&amp;nbsp; Does anyone know how you would go about doing that?&amp;nbsp; Seems there should be an Interface I can cast my Symbol to and determine if it is multi-layer and then loop through each layer, get the symbol on the layer and check the color.&amp;nbsp; But I do not see a way to do that.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-Joe&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Mar 2012 04:52:52 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/working-with-multi-layer-symbols/m-p/173308#M4487</guid>
      <dc:creator>JoeHershman</dc:creator>
      <dc:date>2012-03-19T04:52:52Z</dc:date>
    </item>
    <item>
      <title>Re: Working with multi-layer symbols</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/working-with-multi-layer-symbols/m-p/173309#M4488</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;It depends on the symbol type - for fill symbols use IMultiLayerFillSymbol.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Mar 2012 12:24:04 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/working-with-multi-layer-symbols/m-p/173309#M4488</guid>
      <dc:creator>NeilClemmons</dc:creator>
      <dc:date>2012-03-19T12:24:04Z</dc:date>
    </item>
    <item>
      <title>Re: Working with multi-layer symbols</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/working-with-multi-layer-symbols/m-p/173310#M4489</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;That was it IMultiLayerMarker in my case.&amp;nbsp; not sure why I did not see it, does exactly what I expected.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for the help.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You would not happen to know a way to speed up deleting elements, I delete a lot of elements (probably close to 1000 in some cases) and it takes forever (well almost 10 minutes, which seems like forever when you are watching)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks again&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-joe&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Mar 2012 07:34:08 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/working-with-multi-layer-symbols/m-p/173310#M4489</guid>
      <dc:creator>JoeHershman</dc:creator>
      <dc:date>2012-03-21T07:34:08Z</dc:date>
    </item>
    <item>
      <title>Re: Working with multi-layer symbols</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/working-with-multi-layer-symbols/m-p/173311#M4490</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I've never had to work with that many graphic elements before so these are all untested ideas...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Are you deleting the elements by looping through the graphics container and calling the Reset method after each delete?&amp;nbsp; If so, it's the call to Reset that is most likely slowing it down.&amp;nbsp; Instead of deleting the elements within the loop, add them to a collection (and remove the call to Reset).&amp;nbsp; Then loop through the collection and call DeleteElement.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You might consider creating features on a feature layer instead of graphic elements.&amp;nbsp; You'd then be able to delete via query by calling ITable.DeleteSearchedRows, which will be about as fast as you're going to get using ArcObjects.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You might also try creating an FdoGraphicsLayer for the elements.&amp;nbsp; According to the documentation, the FdoGraphicsLayer class also implements ITable, so you should be able to call DeleteSearchedRows on it.&amp;nbsp; I'm not sure exactly how the query would look since a graphic element doesn't have attributes like a feature does.&amp;nbsp; I've never done anything like this so you may find out that a lot of the methods on the interfaces the graphics layer implements are just not implemented.&amp;nbsp; It would be some interesting R&amp;amp;D though.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Mar 2012 17:04:04 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/working-with-multi-layer-symbols/m-p/173311#M4490</guid>
      <dc:creator>NeilClemmons</dc:creator>
      <dc:date>2012-03-22T17:04:04Z</dc:date>
    </item>
    <item>
      <title>Re: Working with multi-layer symbols</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/working-with-multi-layer-symbols/m-p/173312#M4491</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;My approach is do be looping through the GraphicsContainer and then storing the items to be deleted into a List then looping through that list at the end and deleting each element.&amp;nbsp; I think because the Graphics Collection is so big that it takes a while to find the element in the collection in order to remove it.&amp;nbsp; I have put some timers in there and the call to IGraphicsContainer:: DeleteElement is really slow.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The approach I am thinking of trying, which is a bit convoluted but I think may improve performance is to delete everything from the GraphicsContainer and make an ElementCollection of all the things that should be kept.&amp;nbsp; Then use IGraphicsContainer::AddElements methods and add them back.&amp;nbsp; I'll see what happens&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks again.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-Joe&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 24 Mar 2012 14:10:45 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/working-with-multi-layer-symbols/m-p/173312#M4491</guid>
      <dc:creator>JoeHershman</dc:creator>
      <dc:date>2012-03-24T14:10:45Z</dc:date>
    </item>
  </channel>
</rss>

