I have a code that works perfectly in VBA, but when I try to use it for VB.net purpose, I get this error message: "The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))".
This is the code I'm working with (for Autodesk Inventor application) Anyone knows what the problem might be?
This is the code I'm working with (for Autodesk Inventor application) Anyone knows what the problem might be?
Structure udtPartInfo Public Number As Integer Public ReferencedFile As String End Structure Sub Main RenumberBalloonsToFirstSheet() If ThisApplication.ActiveDocumentType <> _ kDrawingDocumentObject Then MsgBox ("A drawing must be active.") Exit Sub End If Dim drawDoc As DrawingDocument drawDoc = ThisApplication.ActiveDocument Dim baseSheet As Sheet baseSheet = drawDoc.Sheets.Item(1) Dim valSet As BalloonValueSet valSet = baseSheet.Balloons.Item(1).BalloonValueSets.Item(1) Dim drawBOM As DrawingBOM drawBOM = valSet.ReferencedRow.Parent Dim partInfo() As udtPartInfo ReDim partInfo(drawBOM.DrawingBOMRows.Count - 1) Dim itemColumn As Integer Dim i As Integer For i = 1 To drawBOM.DrawingBOMColumns.Count If drawBOM.DrawingBOMColumns.Item(i).PropertyType = _ kItemPartsListProperty Then itemColumn = i Exit For End If Next For i = 1 To drawBOM.DrawingBOMRows.Count Dim drawBOMRow As DrawingBOMRow drawBOMRow = drawBOM.DrawingBOMRows.Item(i) Dim partDef As PartComponentDefinition partDef = drawBOMRow.BOMRow.ComponentDefinitions.Item(1) partInfo(i - 1).ReferencedFile = partDef.Document.FullFileName partInfo(i - 1).Number = drawBOMRow.Item(itemColumn).Value Next For i = 2 To drawDoc.Sheets.Count Dim currentSheet As Sheet currentSheet = drawDoc.Sheets.Item(i) Dim checkBalloon As Balloon For Each checkBalloon In currentSheet.Balloons Dim matchFound As Boolean matchFound = False Dim valueSet As BalloonValueSet valueSet = checkBalloon.BalloonValueSets.Item(1) Dim checkFilename As String checkFilename = _ valueSet.ReferencedFiles.Item(1).FullFileName Dim j As Integer For j = 0 To UBound(partInfo) If checkFilename = partInfo(j).ReferencedFile Then matchFound = True If valueSet.ItemNumber <> partInfo(j).Number Then valueSet.OverrideValue = partInfo(j).Number End If Exit For End If Next Next Next End Sub
Last edited by a moderator: