区画スタイルと区画セグメント スタイル

すべての区画スタイルのコレクションは、AeccDocument.ParcelStyles コレクションに保持されます。 区画スタイルは、区画と区画セグメントの表示方法を制御します。その機能の 1 つとして、区画の境界に近い領域だけを塗り潰すためのオプションがあります。区画スタイルは、AeccParcel.Styleプロパティによって区画に割り当てることができます。

次の例では、区画スタイルを作成し、スタイル プロパティを設定して、スタイルを区画オブジェクト oParcel に割り当てます。

Dim oParcelStyles As AeccParcelStyles
Set oParcelStyles = oDocument.ParcelStyles
Dim oParcelStyle As AeccParcelStyle
Set oParcelStyle = oParcelStyles.Add("Sample Style")
oParcelStyle.ObservePatternFillDistance = True
oParcelStyle.PatternFillDistance = 20
oParcelStyle.SegmentsDisplayStylePlan.color = 20 ' red-orange
oParcelStyle.AreaFillDisplayStylePlan.color = 20
oParcelStyle.AreaFillDisplayStylePlan.Visible = True
oParcelStyle.AreaFillDisplayStylePlan.Lineweight = 20
oParcelStyle.AreaFillHatchDisplayStylePlan.UseAngleOfObject = True
oParcelStyle.AreaFillHatchDisplayStylePlan.ScaleFactor = 3.8
oParcelStyle.AreaFillHatchDisplayStylePlan.Spacing = 1.5
oParcelStyle.AreaFillHatchDisplayStylePlan.Pattern = "AR-SAND"
oParcelStyle.AreaFillHatchDisplayStylePlan.HatchType = aeccHatchPreDefined
 
' Assign the "Sample Style" style to a single parcel.
oParcel.Style = oParcelStyle.Name

個々の区画セグメントのスタイルは親区画のスタイルに依存しますが、セグメントが複数の区画によって共有される場合があります。この競合は、AeccParcels.Properties.SegmentDisplayOrder プロパティによって解決されます。このプロパティは、現在使用されているすべての区画スタイルのコレクションです。 これらのスタイルは、優先順位に従って配列されています。異なるスタイルを持つ 2 つの区画が 1 つのセグメントを共有している場合、そのセグメントは優先順位が高い方のスタイルを使用して表示されます。これらのスタイルの 1 つに、AeccParcels.Properties.SiteParcelStyle プロパティで設定するグローバル サイト区画スタイルがあります。 このサイト区画スタイルは、十分に高い優先順位が与えられた場合、サイト内にある区画の境界の外側のスタイルを定義します。

次の例では、サイト内の区画スタイルの現在の順序を表示し、その順序を変更します。

' List all styles used by parcels in this site with their
' priority 
Dim oSegmentDisplayOrder As AeccSegmentDisplayOrder
Set oSegmentDisplayOrder = _
  oSite.Parcels.Properties.SegmentDisplayOrder
 
Debug.Print "Number styles used:"; oSegmentDisplayOrder.Count
Debug.Print "Priority of each style for affecting segments:"
Dim i as Integer
For i = 0 To oSegmentDisplayOrder.Count - 1
    Debug.Print i; " & oSegmentDisplayOrder.Item(i).Name
Next i
 
' Set the style with the highest priority to the lowest
' priority.
Dim lLowestPosition as Long
lLowestPosition = oSegmentDisplayOrder.Count - 1
oSegmentDisplayOrder.SetPriority 0, lLowestPosition