コリドー サーフェス マスクを追加、削除する

CorridorSurface.Masks プロパティは、CorridorSurfaceCorridorSurfaceMaskCollection タイプのオブジェクトとして関連付けられたマスクのコレクションを提供します。このオブジェクトを使用して、CorridorSurface オブジェクトにマスクを追加および削除することができます。マスクは、ポリライン、Point3dCollection、または計画線コードから追加することができます。新しい空のマスクを追加することもできます。マスクは、名前によって、または CorridorSurfaceMask オブジェクトによって、または RemoveAt() メソッドを使用してインデックスにより、コレクションから削除することができます。

下のサンプルでは、異なる方法を使用してコレクションにいくつかの新しいサーフェス マスクを追加し、直接参照によってその 1 つを削除します。

string corridorSurfaceName = "Corridor - (1) Top";
string corridorName = "Corridor - (1)";

// get the CorridorSurface by name:
ObjectId corridorId = _civilDoc.CorridorCollection[corridorName];
Corridor corridor = ts.GetObject(corridorId, OpenMode.ForWrite) as Corridor;
CorridorSurface corridorSurface = corridor.CorridorSurfaces[corridorSurfaceName];

_editor.WriteMessage("# of masks in corridor surface: " +  corridorSurface.Masks.Count);
CorridorSurfaceMask corridorSurfaceMask = corridorSurface.Masks.Add("New Empty Mask");

ObjectId polyLineId= promptForObjectType("Select a polyline to add as a mask", typeof(Polyline));
corridorSurface.Masks.Add("New mask from polyline", polyLineId);

string codeName = "Daylight_Cut";
corridorSurface.Masks.Add               ("New mask from feature code", codeName);

_editor.WriteMessage("# of masks in corridor surface: " + corridorSurface.Masks.Count);

// remove the empty mask:
corridorSurface.Masks.Remove(corridorSurfaceMask);