Autodesk Inventor
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic to the Top
- Bookmark
- Subscribe
- Printer Friendly Page
Body Volume to be assigned to a parameter
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Hello everybody!
I need to find a way how to set a custom parameter to be equal with a body volume, assuming I have a multibody part.
I have found how to assign total volume of the part to a parameter using iLogic rule.:
Total_Volume = iProperties.Volume
and that's it.
You can do it also for a component in an assembly , but can't see how to do it for a body...
Please help!
Regards
Sandu
Windows 7 x64
Dell Precision T7400 Intel(R) Xeon(R) CPU X5472 @ 3.00GHz (4 CPU's), 8Gb RAM, NVIDIA Quadro FX 5600 1536MB GDDR3
Solved! Go to Solution.
Re: Body Volume to be assigned to a parameter
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Hi! I could be wrong but I am not aware of body level volume in a part file. The physical properties are all evaluated on a per part basis, not per body basis.
The original design intent of Multi-Solid Body workflows is that each solid body would be derived as individual parts eventually. For your case, you should be able to query each body volume if the bodies are all derived into different parts. Can I ask you why you need to have body level volume?
Thanks!

Johnson Shiue (johnson.shiue@autodesk.com)
Principal SQA Engineer, Inventor
Manufacturing Group
Autodesk, Inc.
Re: Body Volume to be assigned to a parameter
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Hi! I have to revert my prior statement. The body level physical properties can be found if you right-click on Body node -> Properties in the browser. However, the parameters associated with these properties are not exposed to the user. I need to find out why or how. I will get back to you with my findings.
I am very sorry for the misinformation I posted earlier.
Thanks!

Johnson Shiue (johnson.shiue@autodesk.com)
Principal SQA Engineer, Inventor
Manufacturing Group
Autodesk, Inc.
Re: Body Volume to be assigned to a parameter
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
The point is that you can see each solid(body) volume in its properties. See the attached screen capture.
The main ideea is to make a container (one body) with product volume as separate solid (second body). Then I want this to publish to Content Center.
When inserting the part (container), the custom parameter will be the volume. Depending on the volume, the height of the container will be calculated by Inventor. This will be possible with an iLogic rule. I made it for a single body part.
If only it would be possible to publish assemblies to Content Center... but no way...![]()
Update: I just saw your last replay on that. Thanks for looking at that.
Windows 7 x64
Dell Precision T7400 Intel(R) Xeon(R) CPU X5472 @ 3.00GHz (4 CPU's), 8Gb RAM, NVIDIA Quadro FX 5600 1536MB GDDR3
Re: Body Volume to be assigned to a parameter
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
So, no one can help? ![]()
Windows 7 x64
Dell Precision T7400 Intel(R) Xeon(R) CPU X5472 @ 3.00GHz (4 CPU's), 8Gb RAM, NVIDIA Quadro FX 5600 1536MB GDDR3
Re: Body Volume to be assigned to a parameter
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
SolidBodies.zip has a rule to calculate the volume of a solid body. It has a few other functions for solids. It can be used as an external rule, but for a content center part it might be best to put it in the part. You can add a rule (name it SolidFunctions) and paste in the text. Set the Straight VB Code option on the Options tab:
Then create another rule for your code. Here's a sample. This is in a part with bodies named ContentsBody and ContainerBody.
AddVbRule "SolidFunctions"
Dim bodies As New SolidBodies(ThisDoc.Document)
ContentsVolume = bodies.Body("ContentsBody").Volume
ContainerVolume = bodies.Body("ContainerBody").Volume
Note that this rule won't run automatically when the volume changes. You can add lines that refer to model parameters to make it run:
trigger = d0 + d1 + PartLength ' etc.
Or you can use the Event Triggers command and set it to run on the Before Save Document event.

Mike Deck
Software Developer
DLS - Mechanical Design
Autodesk, Inc.
Re: Body Volume to be assigned to a parameter
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
That's just brilliant! Thanks a bunch!
But what are the other functions of this SolidBodies.vb rule? Just beeing curious ![]()
Regards
Windows 7 x64
Dell Precision T7400 Intel(R) Xeon(R) CPU X5472 @ 3.00GHz (4 CPU's), 8Gb RAM, NVIDIA Quadro FX 5600 1536MB GDDR3
Re: Body Volume to be assigned to a parameter
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
It looks like I need a little bit more help to reach my main goal.
I want a rule that changes a parameter until 2 parameters are equal.
Let me explain you this way:
If Volume1<>ProductVolume Then
d12=choose a value until Volume1=ProductVolume
End If
I suppose it should be simple, but I struggle a lot with programming... ![]()
Thanks!
Windows 7 x64
Dell Precision T7400 Intel(R) Xeon(R) CPU X5472 @ 3.00GHz (4 CPU's), 8Gb RAM, NVIDIA Quadro FX 5600 1536MB GDDR3

