Announcements
Attention for Customers without Multi-Factor Authentication or Single Sign-On - OTP Verification rolls out April 2025. Read all about it here.
JelteDeJong
in reply to: analistacad

Maybe this is what you need:

Sub Main()
    Dim doc As DrawingDocument = ThisDoc.Document

    ChangeLayer(doc, DrawingEdgeTypeEnum.kBendUpEdge, "ARRIBA")
    ChangeLayer(doc, DrawingEdgeTypeEnum.kBendDownEdge, "ABAJO")
End Sub

Private Sub ChangeLayer(doc As DrawingDocument, EdgeType As DrawingEdgeTypeEnum, layerName As String)
    Dim layer As Layer = doc.StylesManager.Layers.Item(layerName)

    Dim segments = doc.Sheets.Cast(Of Sheet).
        SelectMany(Function(sheet) sheet.DrawingViews.Cast(Of DrawingView)).
        SelectMany(Function(view) view.DrawingCurves.Cast(Of DrawingCurve)).
        Where(Function(curve) curve.EdgeType = EdgeType).
        SelectMany(Function(curve) curve.Segments.Cast(Of DrawingCurveSegment)).
        ToList()

    For Each segment As DrawingCurveSegment In segments
        segment.Layer = layer
    Next
End Sub

Edit:

improved the rule

Jelte de Jong
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.

EESignature


Blog: hjalte.nl - github.com