AutoCAD Civil 3D COM API has IAeccSurfaceBreaklines:: Remove method to remove Surface Breaklines. In the ‘ActiveX API Reference’ document we see this –
IAeccSurfaceBreaklines:: Remove Method - > Removes an item from the collection, specified by index or object reference.
HRESULT Remove( [in] VARIANT varIndex);
One of our Civil 3D application developers friend recently asked me ‘how do we use object reference in Remove()’ ? That prompted me to dig deeper in this and I find we can only use index in the Remove() and it doesn’t work with object reference. By the time we update the Civil 3D ActiveX API reference document on this, I thought it would be useful to you all if I share this information here in IM DevBlog.
Here is the VB.NET code snippet showing usage of COM API Remove(index) –
If(oTinSurface.Breaklines.Count > 0)
' Remove() Breakline using COM API
oTinSurface.Breaklines.Remove(0)
oTinSurface.Rebuild()
ed.WriteMessage(vbCrLf + "Breakline Removed ! " )
End If
In Civil 3D .NET API we have the equivalent RemoveAt(int) and here is C# .NET code snippet –
// Get the TIN Surface
TinSurface tinSurface = surfaceId.GetObject(OpenMode.ForWrite) as TinSurface;
// Lets try to Remove Breakline using RemoveAt(int)
tinSurface.BreaklinesDefinition.RemoveAt(0);
// rebuild the surface
tinSurface.Rebuild();
Hope this is useful to you!