Is there a way, in my drawing template, to set one field as "Part Number iProperty from parent assembly on sheet 1 base view"? I want every single sheet in my .idw to reference the same "Part Number" iProperty from the assembly in the base view of sheet 1. Thanks!
Solved! Go to Solution.
Solved by JachinMK. Go to Solution.
Hi there,
try this out. I use it to show the partnumber on another sheet that includes the parts list.
it actually writes the part number of the first placed model into the custom properties. (so you can use it in a titleblock)
you need to name a text parameter Part_nr_sheet1
' exit rule if no part or assembly is in the drawing yet
If (ThisDrawing.ModelDocument Is Nothing) Then Return
'get the filename of the doc the drawing points to
modelName = IO.Path.GetFileName(ThisDrawing.ModelDocument.FullFileName)
Part_nr_sheet1 = iProperties.Value(modelName, "Project", "Part number")
'fires the part nr as shown in the first sheet so it can be used in the partslist sheet titleblock
'without having a drawing view on that sheet
Dim propertyName1 As String = "Part nr list"
oCustomPropertySet = ThisDoc.Document.PropertySets.Item("Inventor User Defined Properties")
Try
oProp = oCustomPropertySet.Item(propertyName1)
Catch
oCustomPropertySet.Add("", propertyName1)
End Try
iProperties.Value("Custom", "Part nr list") = Part_nr_sheet1
iLogicVb.UpdateWhenDone = True
hope this helps you out!
cheers,
Jachin
Hi there,
Thanks so much for this rule, I've added it to my drawing template and it works great for iam and ipt files but it brings up an error for presentation files.
"Object reference not set to an instance of an object."
Can the rule be tweaked to suit all files? I'm trying to amend it myself but not luck so far...
Thanks for your help.
Hi Devon,
Did you ever get this working? I have the exact same problem now:-(
Br.
Rasmus
Hi,
Yes I did get it to work, here is the code I used. Hope it helps!
If (ThisDrawing.ModelDocument Is Nothing) Then Return Dim presDoc As Document Dim propertyName1 As String = "Part nr list" presDoc = ThisDrawing.ModelDocument Part_nr_sheet1 = presDoc.PropertySets.Item("Design Tracking Properties").Item("Part Number").Value oCustomPropertySet = ThisDoc.Document.PropertySets.Item("Inventor User Defined Properties") Try oProp = oCustomPropertySet.Item(propertyName1) Catch oCustomPropertySet.Add("", propertyName1) End Try iProperties.Value("Custom", "Part nr list") = Part_nr_sheet1 iLogicVb.UpdateWhenDone = True
Hi Devon,
Thanks, this works. Just not the way I intended.
I need the I ipropperties from the .iam not the .ipn.
Essentially I just need the error message to dissapear. (see attachment.) then I will use the good old copy model propperties for the .ipn since this takes the ipropperties directly from the .iam ie. it skips the .ipn ipropperties.
Any ideas?
Br.
Rasmus
Hi again Devon,
I solved the problem, and smarter than I could have ever hoped.
Instead of moving data from one file to the other I made my .idw templete grab all the data from the source ie. .ipt or .iam (like it also grabs the geometry)
This removes the need of ever copying propperties from one file to another.
Really only posting this because I am so releaved and had to share it 🙂
Br.
Rasmus
How do you then link this text parameter Part_nr_sheet1 to an iProperty that you can then place on a drawing sheet/title block?
Can't find what you're looking for? Ask the community or share your knowledge.