将指定范围内的元素添加到选择集


MicroStation VBA提供有操作元素选择集(Selection Set)的功能,同时也有按范围扫描元素的功能。将这两者结合起来就能实现标题所描述的功能。代码如下:

Sub SelectElementByRange(pt1 As Point3d, pt2 As Point3d)
    ActiveModelReference.UnselectAllElements
    Dim esc As New ElementScanCriteria
    Dim ee As ElementEnumerator
    esc.IncludeOnlyWithinRange Range3dFromPoint3dPoint3d(pt1, pt2)
    Set ee = ActiveModelReference.Scan(esc)
    Do While ee.MoveNext
        ActiveModelReference.SelectElement ee.Current
    Loop
End Sub

首先调用UnselectAllElements方法清空当前选择集。然后创建元素扫描规则esc,将两个角点pt1和pt2构造出的范围设置到esc中。最后执行扫描,将扫描的结果用SelectElement方法逐个添加到选择集中。