概要 - 拡張データをフィルタ処理する (VBA/ActiveX)

外部アプリケーションは、文字列、数値、3D 点、距離、画層名といったデータを AutoCAD オブジェクトにアタッチすることができます。

このデータを拡張データ(XDATA)といいます。特定のアプリケーションによって追加されたデータを含むオブジェクトを選択できます。

XDATAを含む円を選択する

次の例は、"MY_APP" アプリケーションが追加した拡張データ(XDATA)を含む円を選択します。

Sub Ch4_FilterXdata()
  Dim sstext As AcadSelectionSet
  Dim mode As Integer
  Dim pointsArray(0 To 11) As Double
  mode = acSelectionSetWindowPolygon
  pointsArray(0) = -12#: pointsArray(1) = -7#: pointsArray(2) = 0
  pointsArray(3) = -12#: pointsArray(4) = 10#: pointsArray(5) = 0
  pointsArray(6) = 10#: pointsArray(7) = 10#: pointsArray(8) = 0
  pointsArray(9) = 10#: pointsArray(10) = -7#: pointsArray(11) = 0
  Dim FilterType(1) As Integer
  Dim FilterData(1) As Variant
  Set sstext = ThisDrawing.SelectionSets.Add("SS9")

  FilterType(0) = 0
  FilterData(0) = "Circle"
  FilterType(1) = 1001
  FilterData(1) = "MY_APP"

  sstext.SelectByPolygon mode, pointsArray, FilterType, FilterData
End Sub