CAD制图中,道路区域保存在基线的BaselineRegions属性中,该属性是BaselineRegionCollection类型的集合。可以使用Add()
和Remove
方法在此集合中添加和删除区域。Add()
方法有四个重载,所有重载都采用新区域的名称,以及用于创建区域的文档装配的字符串名称或objectid。另外两个增加了区域的起点和终点桩号。如果未指定桩号,则假定该区域适用于整个基线。区域不能重叠,如果尝试添加与基线中现有区域重叠的区域,则Add()
方法将失败。
在本例中,从指定道路获取基线,并打印有关该区域的一些信息。然后删除该区域,并添加两个新区域。
//在至少有一个纵断面路线的文档中使用
//并定义了一个区域的基线
//EG: 教程目录中的Corridor-5b.dwg
string corridorName = "Corridor - (1)";
Corridor corridor = ts.GetObject(_civildoc.CorridorCollection[corridorName], OpenMode.ForWrite) as Corridor;
//获取第一条基线
Baseline baseline = corridor.Baselines[0];
BaselineRegion baselineRegion = baseline.BaselineRegions[0];
//打印出此基线区域的一些属性
_editor.WriteMessage("Baseline region name: {0} start station: {1} end station: {2}",
baselineRegion.Name, baselineRegion.StartStation, baselineRegion.EndStation);
//删除现有区域
baseline.BaselineRegions.Remove(baselineRegion);
//添加两个新的基线区域
//如果已存在重叠区域,此操作将失败
ObjectId assemblyId = _civildoc.AssemblyCollection[0];
baseline.BaselineRegions.Add("New Region1", assemblyId, baseline.StartStation, baseline.EndStation / 2);
baseline.BaselineRegions.Add("New Region2", assemblyId, baseline.EndStation / 2, baseline.EndStation);