Community
You can read volume of all individual bodies, or one body accessed by its index (order) or its name
Dim part As PartDocument = ThisDoc.Document
'Get volume of individual bodies
Dim precisionPercent As Double = 0.01
For Each oBody As SurfaceBody In part.ComponentDefinition.SurfaceBodies
Logger.Debug(String.Format("{0}{2}{1}", oBody.Name, oBody.Volume(precisionPercent), vbTab))
Next
'Get volume for individual body by its name
Dim bodyName As String = part.ComponentDefinition.SurfaceBodies(1).Name
Dim bodyByName As SurfaceBody = part.ComponentDefinition.SurfaceBodies.OfType(Of SurfaceBody).FirstOrDefault(Function(b) b.Name = bodyName)
If bodyByName Is Nothing Then
Logger.Warn("Body not found")
Else
Logger.Info(bodyByName.Volume(precisionPercent))
End If
Dim part As PartDocument = ThisDoc.Document
'Get volume of individual bodies
Dim precisionPercent As Double = 0.01
Dim bodyName As String = "Solid3"
Dim solidVolume As Double = 0
'Get volume for individual body by its name
Dim bodyByName As SurfaceBody = part.ComponentDefinition.SurfaceBodies.OfType(Of SurfaceBody).FirstOrDefault(Function(b) b.Name = bodyName)
If bodyByName Is Nothing Then
Logger.Warn("Body not found")
Else
solidVolume = bodyByName.Volume(precisionPercent)
Logger.Info(solidVolume)
End If
solidVolume *= 1000 'Convert [cm3] to [dm3]([l])
Parameter("Solid3_Volume") = solidVolume
Can't find what you're looking for? Ask the community or share your knowledge.