<?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: Using VBA to offset polygon outline symbol in a layer in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/using-vba-to-offset-polygon-outline-symbol-in-a/m-p/651829#M17500</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I suspect that one of the things that is happening is that you're running into problems caused by objects being returned by value vs. by reference.&amp;nbsp; When you do something like this, you open your code up to this type of problem:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;pCartoLineSymbol.Color = pFillSymbol.Outline.Color&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The Outline property can return the line symbol object by value or by reference.&amp;nbsp; The behavior can be different between the two.&amp;nbsp; You can tell one vs. the other by looking at the developer help but in short, the best way to keep from running into problems is to simply not chain property calls.&amp;nbsp; Instead of the code above, do this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim outline As ILineSymbol = pFillSymbol.Outline&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pCartoLineSymbol.Color = outline.Color&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Try changing you code so that you aren't chaining any property calls and see if it behaves any differently.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 28 Feb 2012 12:26:06 GMT</pubDate>
    <dc:creator>NeilClemmons</dc:creator>
    <dc:date>2012-02-28T12:26:06Z</dc:date>
    <item>
      <title>Using VBA to offset polygon outline symbol in a layer</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/using-vba-to-offset-polygon-outline-symbol-in-a/m-p/651828#M17499</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Original User: mayad85&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi folks,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a newbie question regarding Symbols &amp;amp; Renderers in Layers. I'm using ArcGIS 10 with a VBA extension (don't have access to any Visual Basic editing software at work, but we do have the VBA editor within ArcMap due to the extension, so I went with what was readily available). I basically have a one-off task involving about 100 layers symbolising polygon feature classes by Unique Values (some are grouped); for each of these layers, I need to offset the polygon symbol outline for a subset of the symbols in each layer (those with, in this instance, a width of 2). I was hoping to put together some VBA code to do this automatically.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I managed to get off to a reasonable start, but the problem I am now encountering is to do with the outline symbology in these layers being set as a Cartographic Line Symbol, and while the line width is accessible/exposable from the Simple Fill Symbol level, the colour is not. The image below hopefully helps to illustrate what I mean.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[ATTACH=CONFIG]12271[/ATTACH]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've attached the code that I threw together over the last few hours (with much assistance from the archived forums!). As it is, it runs and offsets the boundary of the required symbol values, but the outline becomes black. When I uncomment the &lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;"&gt;'pCartoLineSymbol.Color = pFillSymbol.Outline.Color'&lt;/SPAN&gt;&lt;SPAN&gt; line, it runs and offsets the boundary, but the outline is Null (no colour). I gather this happens because the pFillSymbol does not expose the colour of the Cartographic Line Symbol and if it does (when I uncomment that line of code) it is Null. I'm having trouble trying to figure out a way of exposing this next 'level' of symbology. I've tried using other symbol interfaces (ISimpleFillSymbol, ILineSymbol etc) without success. If anyone has any advice it would be much appreciated. Thanks! &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN style="font-family:Courier New;"&gt;Option Explicit&lt;BR /&gt;&lt;BR /&gt;Sub OffsetOutline()&lt;BR /&gt;&lt;BR /&gt;Dim pMxDoc As IMxDocument&lt;BR /&gt;Dim pMap As IMap&lt;BR /&gt;Dim pGeoFeatureLayer As IGeoFeatureLayer&lt;BR /&gt;Dim pFeatureRenderer As IFeatureRenderer&lt;BR /&gt;Dim pUniqueValueRenderer As IUniqueValueRenderer&lt;BR /&gt;Dim pCartoLineSymbol As ICartographicLineSymbol&lt;BR /&gt;Dim pFillSymbol As IFillSymbol&lt;BR /&gt;Dim i As Integer&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Set pMxDoc = ThisDocument&lt;BR /&gt;Set pMap = pMxDoc.FocusMap&lt;BR /&gt;Set pGeoFeatureLayer = pMap.Layer(0) 'For now focus on getting this working on one layer&lt;BR /&gt;Set pFeatureRenderer = pGeoFeatureLayer.Renderer&lt;BR /&gt;&lt;BR /&gt;If TypeOf pFeatureRenderer Is IUniqueValueRenderer Then&lt;BR /&gt;Set pUniqueValueRenderer = pFeatureRenderer&lt;BR /&gt;&lt;BR /&gt;With pUniqueValueRenderer&lt;BR /&gt;For i = 0 To .ValueCount - 1&lt;BR /&gt;&lt;BR /&gt;Dim refVal As String&lt;BR /&gt;&lt;BR /&gt;Set pFillSymbol = .Symbol(.Value(i))&lt;BR /&gt;Set pCartoLineSymbol = New CartographicLineSymbol&lt;BR /&gt;'pCartoLineSymbol.Color = pFillSymbol.Outline.Color&lt;BR /&gt;pCartoLineSymbol.width = pFillSymbol.Outline.width&lt;BR /&gt;&lt;BR /&gt;On Error Resume Next&lt;BR /&gt;&lt;BR /&gt;refVal = pUniqueValueRenderer.ReferenceValue(i)&lt;BR /&gt;&lt;BR /&gt;If Err.Number &amp;lt;&amp;gt; 0 Then&lt;BR /&gt;refVal = "none"&lt;BR /&gt;End If&lt;BR /&gt;&lt;BR /&gt;Debug.Print i &amp;amp; "refval = " &amp;amp; refVal&lt;BR /&gt;&lt;BR /&gt;If pFillSymbol.Outline.width = 2 Then&lt;BR /&gt;&lt;BR /&gt;Dim p As Double&lt;BR /&gt;Dim pOffset As ILineProperties&lt;BR /&gt;&lt;BR /&gt;p = -1#&lt;BR /&gt;&lt;BR /&gt;Set pOffset = pCartoLineSymbol&lt;BR /&gt;pOffset.Offset = p&lt;BR /&gt;&lt;BR /&gt;pFillSymbol.Outline = pCartoLineSymbol&lt;BR /&gt;&lt;BR /&gt;End If&lt;BR /&gt;&lt;BR /&gt;.Symbol(.Value(i)) = pFillSymbol&lt;BR /&gt;&lt;BR /&gt;Next i&lt;BR /&gt;End With&lt;BR /&gt;End If&lt;BR /&gt;&lt;BR /&gt;Set pGeoFeatureLayer.Renderer = pUniqueValueRenderer&lt;BR /&gt;pMxDoc.UpdateContents&lt;BR /&gt;pMxDoc.ActiveView.Refresh&lt;BR /&gt;&lt;BR /&gt;End Sub&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Feb 2012 04:06:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/using-vba-to-offset-polygon-outline-symbol-in-a/m-p/651828#M17499</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2012-02-28T04:06:44Z</dc:date>
    </item>
    <item>
      <title>Re: Using VBA to offset polygon outline symbol in a layer</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/using-vba-to-offset-polygon-outline-symbol-in-a/m-p/651829#M17500</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I suspect that one of the things that is happening is that you're running into problems caused by objects being returned by value vs. by reference.&amp;nbsp; When you do something like this, you open your code up to this type of problem:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;pCartoLineSymbol.Color = pFillSymbol.Outline.Color&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The Outline property can return the line symbol object by value or by reference.&amp;nbsp; The behavior can be different between the two.&amp;nbsp; You can tell one vs. the other by looking at the developer help but in short, the best way to keep from running into problems is to simply not chain property calls.&amp;nbsp; Instead of the code above, do this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim outline As ILineSymbol = pFillSymbol.Outline&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pCartoLineSymbol.Color = outline.Color&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Try changing you code so that you aren't chaining any property calls and see if it behaves any differently.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Feb 2012 12:26:06 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/using-vba-to-offset-polygon-outline-symbol-in-a/m-p/651829#M17500</guid>
      <dc:creator>NeilClemmons</dc:creator>
      <dc:date>2012-02-28T12:26:06Z</dc:date>
    </item>
    <item>
      <title>Re: Using VBA to offset polygon outline symbol in a layer</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/using-vba-to-offset-polygon-outline-symbol-in-a/m-p/651830#M17501</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Original User: mayad85&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Neil,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks very much for your feedback, much appreciated. I adapted the code as you recommended and briefly read up on the differences between ByVal vs ByRef methods. Unfortunately what you suggested didn't solve the problem. I eventually figured out the problem of the Null colour of the outline was due to the fact that the symbology in the layers I was working with was locked (I should have noticed that in the first place!), so I had to apply the ILayerColorLock interface to unlock it and be able to access the colours of the line symbology in question. After that, the code worked perfectly. It still needs some tidying up and additional lines to make it run through multiple layers and save changes, but I've attached it here in case it is of interest to anyone else. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Again, many thanks!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN style="font-family:Courier New;"&gt;&lt;BR /&gt;Option Explicit&lt;BR /&gt;&lt;BR /&gt;Sub OffsetOutline()&lt;BR /&gt;&amp;nbsp; Dim pMxDoc As IMxDocument&lt;BR /&gt;&amp;nbsp; Dim pMap As IMap&lt;BR /&gt;&amp;nbsp; Dim pGeoFeatureLayer As IGeoFeatureLayer&lt;BR /&gt;&amp;nbsp; Dim pFeatureRenderer As IFeatureRenderer&lt;BR /&gt;&amp;nbsp; Dim pUniqueValueRenderer As IUniqueValueRenderer&lt;BR /&gt;&amp;nbsp; Dim pCartoLineSymbol As ICartographicLineSymbol&lt;BR /&gt;&amp;nbsp; Dim pFillSymbol As IFillSymbol&lt;BR /&gt;&amp;nbsp; Dim i As Integer&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Set pMxDoc = ThisDocument&lt;BR /&gt;&amp;nbsp; Set pMap = pMxDoc.FocusMap&lt;BR /&gt;&amp;nbsp; Set pGeoFeatureLayer = pMap.Layer(0)&lt;BR /&gt;&amp;nbsp; Set pFeatureRenderer = pGeoFeatureLayer.Renderer&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; If TypeOf pFeatureRenderer Is IUniqueValueRenderer Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pUniqueValueRenderer = pFeatureRenderer&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For i = 0 To pUniqueValueRenderer.ValueCount - 1&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pHeading As String&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim refVal As String&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pHeading = pUniqueValueRenderer.Value(i)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pFillSymbol = pUniqueValueRenderer.Symbol(pHeading)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If TypeOf pFillSymbol Is IMultiLayerFillSymbol Then&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&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; Dim pMultiLayerFill As IMultiLayerFillSymbol&lt;BR /&gt;&lt;BR /&gt;&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; Set pMultiLayerFill = pFillSymbol&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&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; Dim pLayerLockFill As ILayerColorLock&lt;BR /&gt;&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; Set pLayerLockFill = pMultiLayerFill&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&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; Dim x As Long&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&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; For x = 0 To pMultiLayerFill.LayerCount - 1&lt;BR /&gt;&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; pLayerLockFill.LayerColorLock(x) = False&lt;BR /&gt;&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; Next x&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pOutline As ILineSymbol&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pOutline = pFillSymbol.outline&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If TypeOf pOutline Is IMultiLayerLineSymbol Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&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; Dim pMultiLayerLine As IMultiLayerLineSymbol&lt;BR /&gt;&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; Set pMultiLayerLine = pOutline&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&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; Dim pLayerLockLine As ILayerColorLock&lt;BR /&gt;&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; Set pLayerLockLine = pMultiLayerLine&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&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; Dim y As Long&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&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; For y = 0 To pMultiLayerFill.LayerCount - 1&lt;BR /&gt;&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; pLayerLockLine.LayerColorLock(y) = False&lt;BR /&gt;&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; Next y&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pCartoLineSymbol = New CartographicLineSymbol&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pCartoLineSymbol.Color = pOutline.Color&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pCartoLineSymbol.width = pOutline.width&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; On Error Resume Next&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; refVal = pUniqueValueRenderer.ReferenceValue(i)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Err.Number &amp;lt;&amp;gt; 0 Then&lt;BR /&gt;&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; refVal = "none"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug.Print i &amp;amp; "refval = " &amp;amp; refVal&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If pFillSymbol.outline.width = 2 Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim p As Double&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pOffset As ILineProperties&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p = -1#&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pOffset = pCartoLineSymbol&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pOffset.Offset = p&lt;BR /&gt;&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; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pFillSymbol.outline = pCartoLineSymbol&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pUniqueValueRenderer.Symbol(pHeading) = pFillSymbol&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next i&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Set pGeoFeatureLayer.Renderer = pUniqueValueRenderer&lt;BR /&gt;&amp;nbsp; pMxDoc.UpdateContents&lt;BR /&gt;&amp;nbsp; pMxDoc.ActiveView.Refresh&lt;BR /&gt;&lt;BR /&gt;End Sub&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 01 Mar 2012 01:14:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/using-vba-to-offset-polygon-outline-symbol-in-a/m-p/651830#M17501</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2012-03-01T01:14:02Z</dc:date>
    </item>
  </channel>
</rss>

