Есть сборка в которой я создаю виртуальный элемент:
Dim sDoc As AssemblyDocument
Dim sCompDef As AssemblyComponentDefinition
sCompDef = sDoc.ComponentDefinition
Dim vDocs As ComponentOccurrence
Dim oTG As TransientGeometry
Dim oMatrix As Matrix
oTG = m_inventorApplication.TransientGeometry
oMatrix = oTG.CreateMatrix
vDocs = sCompDef.Occurrences.AddVirtual(ИМЯ, oMatrix)
Если нужно задать количество, например, в метрах, то это легко делается через параметр:
Dim oPar As Inventor.Parameter
Dim oPars As Inventor.Parameters
oPars = sCompDef.Parameters
oPar = oPars.UserParameters.AddByValue(oLength, dLength, UnitsTypeEnum.kMeterLengthUnits)
Call vDocs.Definition.BOMQuantity.SetBaseQuantity(BOMQuantityTypeEnum.kParameterBOMQuantity, oPar)
Но вот когда дело доходит до задания количества в ШТУКАХ, наталккиваюсь на проход кода без ошибок, но и количество не меняется:
oPar = oPars.UserParameters.AddByValue(oLength, dLength, UnitsTypeEnum.kUnitlessUnits)
Call vDocs.Definition.BOMQuantity.SetBaseQuantity(BOMQuantityTypeEnum.kParameterBOMQuantity, oPar)
Причем параметр сам создается, и именно в штуках, но количество в BOM не меняется.
Если начинать плясать со стороны BOM, то свойства TotalQuantity и ItemQuantity идут только для чтения...
Так каким образом можно изменить количество в BOM для виртуального элемента?
P.S. Вариант с созданием через AddVirtual необходимого количества копий не годится.