フィールドブック ファイルから読み込まれる測量図形には、その図形が表すオブジェクトまたは概念を示す文字を接頭語として付けることができます。この図形接頭語は、測量図形で使用されるスタイルとプロパティの設定を説明したものです。図形接頭語のリストは、AeccSurveyFigurePrefixDatabase オブジェクトに格納されます。ドキュメント内のすべてのデータベースのコレクションは、AeccSurveyDocument.FigurePrefixDatabases プロパティに格納されます。 新しい図形接頭語とデータベースは、親コレクションの Create メソッドで追加します。 作成された接頭語またはデータベースは永久に図形接頭語データベースの一部となり、新しいドキュメントのロード時または新しい AutoCAD Civil 3D インスタンスの実行時にも失われません。このため、新しい接頭語またはデータベースを作成する前に、既存のデータベースと接頭語を名前でチェックすることが重要です。AeccSurveyFigurePrefixDatabases.FindItem メソッドを使用すると、既存のデータベースの ID または名前を検索できます。
同じような名前の AeccSurveyFigurePrefixDatabase.FindItem は、データベース内の接頭語の ID 番号を検索する場合にだけ使用できます。接頭語を名前で検索する場合は AeccSurveyFigurePrefixDatabase.GetMatchedFigurePrefix メソッドを使用してください。
次の例では、新しい図形接頭語データベースと新しい図形接頭語を作成します。この例では、現在のデータベースを新しく作成したデータベースに切り替え、既存の測量図形に新しい接頭語スタイルを適用します。
' Get a reference to all the prefix databases. Dim oPrefixDatabases As AeccSurveyFigurePrefixDatabases Set oPrefixDatabases = oSurveyDocument.FigurePrefixDatabases ' See if our database already exists. If it does not, ' create a new one. Dim oPrefixDatabase As AeccSurveyFigurePrefixDatabase Set oPrefixDatabase = oPrefixDatabases.FindItem("NewDB") If (oPrefixDatabase Is Nothing) Then Set oPrefixDatabase = oPrefixDatabases.Create("NewDB") End If ' See if our figure prefix already exists. If it does not, ' create a new figure prefix. Dim oSurveyFigurePrefix As AeccSurveyFigurePrefix On Error Resume Next Set oSurveyFigurePrefix = _ oPrefixDatabase.GetMatchedFigurePrefix("BV") On Error GoTo 0 If (oSurveyFigurePrefix Is Nothing) Then Set oSurveyFigurePrefix = oPrefixDatabase.Create("BV") End If ' Set the properties of the prefix. oSurveyFigurePrefix.Style = _ oSurveyDocument.FigureStyles(0).Name oSurveyFigurePrefix.IsLotLine = True oSurveyFigurePrefix.IsBreakline = True oSurveyFigurePrefix.Layer = "0" oSurveyFigurePrefix.Save
AeccSurveyFigure.InitializeFromFigurePrefix メソッドを使用すると、測量図形に接頭語スタイルを手動で適用できます。 このメソッドは、現在の接頭語データベースから、測量図形名の先頭部分と一致する接頭語名を検索します。たとえば、BV 01 という名前の測量図形は、BV という接頭語と一致します。現在の接頭語データベースは、ドキュメントの測量ユーザ設定の CurrentFigurePrefixDatabase プロパティで指定できます。 次のコードは、このための適切な方法を示しています。
Dim oUserSettings As AeccSurveyUserSettings Dim CurrentDatabase As String Set oUserSettings = oSurveyDocument.GetUserSettings CurrentDatabase = oUserSettings.CurrentFigurePrefixDatabase
現在のデータベースを変更するには、CurrentFigurePrefixDatabase プロパティを新しい名前に設定して、測量ユーザ設定を更新します。
oUserSettings.CurrentFigurePrefixDatabase = "NewDB" oSurveyDocument.UpdateUserSettings oUserSettings