すべての区画スタイルのコレクションは、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