检查零件或产品被选中

Check Part or Product was selected

我的程序集如下:

根产品:

我正在编写代码来检查用户选择的项目类型,并使用我自己的参数将新部件添加到所选产品。 我在检查用户选择的内容时遇到问题。 如果使用下面的代码:

InputType(0) = "Product"
Set ItemSelection = ActDoc.Selection
ItemSelection.Clear 
SelStatus = ItemSelection.SelectElement2(InputType, "Choose Product", True)
If SelStatus = "Cancel" Then
    Exit Sub
End If
If ItemSelection.Item(1).Type = "Product" Then
    ' add new Part

    ElseIf ItemSelection.Item(1).Type = "Part" Then
        MsgBox "It's Part. Script closed."
        Exit Sub
End If

但问题是在 CATIA 树中 "Part" 和 "Product" 具有相同的类型 - Product.

Like this

可能存在另一种方法如何检查用户选择的数据类型? 谢谢。

Dim bIsProd as Boolean
Dim oSelectedProd as Product
Set oSelectedProd = ItemSelection.Item(1).Value
bIsProd = typename(oSelectedProd.ReferenceProduct.Parent) = "ProductDocument"

如果您在程序集中使用 "Visualization Mode",情况会稍微复杂一些。在这种情况下,属性 ReferenceProduct 将失败。但是,如果您的程序集是新打开的并且在 "Visualization Mode" 中,您可以假设任何失败的 ReferenceProduct 属性都是零件。产品会起作用。

如果您的文档尚未保存,它也可能无法工作(我不记得了)。