実際の交差領域のシンボルまたはモデルは、個々の干渉領域で作成できます。これらの干渉の表示は、InterferenceStyle オブジェクトによって制御されます。ドキュメント内のすべての干渉スタイル オブジェクトのコレクションは、CivilDocument.Styles.InterferenceStyles コレクションに格納されます。
選択できる干渉表示スタイルは、次の 3 種類です。最初に、緩衝領域の 3 次元モデルを表示できます。そのためには、ModelOptions スタイル プロパティを InterferenceModelType.TrueSolid に設定します。GetDisplayStyleModel() メソッドは、モデルの外観(色や線種など)を制御する DisplayStyle 型のオブジェクトを返します。DisplayStyle.Visible プロパティを True に設定する必要があります。
次の方法は、干渉位置に 3D の球を作成することです。そのためには、ModelOptions スタイル プロパティを InterferenceModelType.Sphere に設定します。ModelSizeType プロパティが InterferenceModelSizeType.SolidExtents に設定されている場合、球は自動的に外接するサイズ(交差領域のモデルに合わせた最小の球)に調整されます。球のサイズを設定するには、ModelSizeType プロパティをInterferenceModelSizeType.UserSpecified に設定し、ModelSizeOptions プロパティを絶対単位または作図単位のいずれかに設定して、対応する AbsoluteModelSize または DrawingScaleModelSize プロパティを希望の値に設定します。再び、GetDisplayStyleModel() によって返された DisplayStyle オブジェクトが色や線種などの外観フィーチャを制御します。
3 番目のオプションは、交差位置にシンボルを配置することです。GetDisplayStylePlan(InterferenceDisplayStyleType.Symbol).Visible プロパティを True に設定してシンボルを表示させます。スタイル プロパティ MarkerStyle (MarkerStyle 型のオブジェクト)は、シンボルの描画方法に関するすべての側面を制御します。
次の例では、交点に x 記号と円を重ねて表示する新しい干渉スタイル オブジェクトを作成します。
public void InterfStyle() { CivilDocument doc = CivilApplication.ActiveDocument; Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; using (Transaction ts = Application.DocumentManager.MdiActiveDocument. Database.TransactionManager.StartTransaction()) { ObjectId intStyleId; intStyleId = doc.Styles.InterferenceStyles.Add("Interference style 01"); InterferenceStyle oIntStyle = ts.GetObject(intStyleId, OpenMode.ForWrite) as InterferenceStyle; // Draw a symbol of a violet X with circle with a specified // drawing size at the points of intersection. oIntStyle.GetDisplayStylePlan(InterferenceDisplayStyleType.Symbol).Visible = true; ObjectId markerStyleId = oIntStyle.MarkerStyle; MarkerStyle oMarkerStyle = ts.GetObject(markerStyleId, OpenMode.ForWrite) as MarkerStyle; oMarkerStyle.MarkerType = MarkerDisplayType.UseCustomMarker; oMarkerStyle.CustomMarkerStyle = CustomMarkerType.CustomMarkerX; oMarkerStyle.CustomMarkerSuperimposeStyle = CustomMarkerSuperimposeType.Circle; oMarkerStyle.MarkerDisplayStylePlan.Color = Color.FromColorIndex(ColorMethod.ByAci, 200); oMarkerStyle.MarkerDisplayStylePlan.Visible = true; oMarkerStyle.SizeType = MarkerSizeType.AbsoluteUnits; oMarkerStyle.MarkerSize = 5.5; // Hide any model display at intersection points. oIntStyle.GetDisplayStyleModel(InterferenceDisplayStyleType.Solid).Visible = false; ts.Commit(); } }