An alignment is composed of entities, which can be complex, such as SpiralCurveSpiral (SCS), but in the end is basically composed by Lines, Arcs and Spirals.
For both cases we can start at the Alignment.Entities property collection, but this property only return the first level of complex entities derived from type AlignmentEntity. For the second level, corresponding to primitive entities, for each of those AlignmentEntity objects we can access as an array of AlignmentSubEntity.
Public Sub alignmentsEntities()
Dim ed As Editor = _
Application.DocumentManager.MdiActiveDocument.Editor
Dim db As Database = _
Application.DocumentManager.MdiActiveDocument.Database
Using trans As Transaction = _
db.TransactionManager.StartTransaction()
‘get the civil document
Dim civilDoc As CivilDocument = CivilApplication.ActiveDocument
‘and the collection of alignments
Dim alignColl As ObjectIdCollection = _
civilDoc.GetAlignmentIds()
For Each alignId As ObjectId In alignColl ‘for each alignment
‘open for read
Dim align As Alignment = trans.GetObject( _
alignId, OpenMode.ForRead)
‘for each entity in the alignment
For Each alignEnt As AlignmentEntity In align.Entities
‘get the number of sub entities
Dim subEntCount As Integer = alignEnt.SubEntityCount
For i As Integer = 0 To subEntCount – 1 ‘for each subentity
‘get the type
Dim alignSubEnt As AlignmentSubEntity = alignEnt(i)
Select Case alignSubEnt.SubEntityType
Case AlignmentSubEntityType.Arc
‘ARC
Dim alignSubEntArc As AlignmentSubEntityArc = _
alignSubEnt
Case AlignmentSubEntityType.Line
‘LINE
Dim alignSubEntLine As AlignmentSubEntityLine = _
alignSubEnt
Case AlignmentSubEntityType.Spiral
‘SPIRAL
Dim alignSubEntSpiral As AlignmentSubEntitySpiral = _
alignSubEnt
End Select
Next
Next
Next
End Using
End Sub

Leave a Reply to joantopoCancel reply