I tend to agree for the sacke of as few headakes ass possible, keep ilogic away from CC. As I am not fully aware of the challenges down the road, some of which were mentioned, I can try explain the method I used:
1. Create a part with user paramters carefully defined.
2. Create ipart with one row.
3. Create ilogic rule, that will go through an array and select the appropriate standard length based on the users input.
feks the user enter a value A the ilogic calculates the total length B and picks the closest standard length C that is appropriate. The description of the part will be defined at the end besed on standard length.
4. Ipart gets published. The custom row is defined for user input.
5. Variants of the part are added as per standard, and columns, as designation and file name adjusted as needed.
6. User picks the family, then member, then the user is propted to enter a value. Value entered, the ilogic code picks the closest standard length and adds am appropriate description.
The trouble is, upon placing part into assembly everything seams to work fine. Opening the part from content center returns a bunch of errors regarding null reference. Once the errors is are cleared the part loads correctly. Something is fishy thats for sure. If this would be done outside CC it would be no problem.
iLogicVb.UpdateWhenDone = True
ThisApplication.ActiveView.Update()
ThisApplication.[_LibraryDocumentModifiable] = True
MultiValue.SetList("THR_L", 10, 12, 14, 16, 18, 20, 22, 25, 28, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 95, 100, 110, 120, 130, 140, 150)
Parameter("MTP") = 3
Parameter("L_") = PL_thk +(2*m_)+h_+ MTP
Select Case L_
Case <= 10
THR_L = 10
Case 10 To 12
THR_L = 12
Case 13 To 14
THR_L = 14
Case 15 To 16
THR_L = 16
Case 17 To 18
THR_L = 18
Case 19 To 20
THR_L = 20
Case 21 To 22
THR_L = 22
Case 23 To 25
THR_L = 25
Case 26 To 28
THR_L = 28
Case 27 To 30
THR_L = 30
Case 31 To 35
THR_L = 35
Case 36 To 40
THR_L = 40
Case 41 To 45
THR_L = 45
Case 46 To 50
THR_L = 50
Case 51 To 55
THR_L = 55
Case 56 To 60
THR_L = 60
Case 61 To 65
THR_L = 65
Case 66 To 70
THR_L = 70
Case 71 To 75
THR_L = 75
Case 76 To 80
THR_L = 80
Case 81 To 85
THR_L = 85
Case 86 To 90
THR_L = 90
Case 91 To 100
THR_L = 100
Case 101 To 110
THR_L = 110
Case 111 To 120
THR_L = 120
Case 121 To 130
THR_L = 130
Case 131 To 140
THR_L = 140
Case 141 To 150
THR_L = 150
End Select
'' set description at part level
iProperties.Value("Project", "Description") = Parameter("DESCRIPTION_TXT") &"M"& Parameter("d1_") &"x"& Parameter("THR_L") &" "&"W/2xNUT, 1xWASHER"
iLogicVb.UpdateWhenDone = True
ThisApplication.ActiveView.Update() '' update