Ran into this issue with only about 50 parts. Ended up writing a small python script that
- prints out size report (dimensions sorted, longest last)
- updates component description so it will show up in part list table on drawings
import adsk.core, adsk.fusion
def run(context):
app = adsk.core.Application.get()
product = app.activeProduct
design = adsk.fusion.Design.cast(product)
# Get the root component of the active design.
rootComp = design.rootComponent
# Get occurences from root
occurrences = rootComp.occurrences
for idx in range(0, occurrences.count):
occ = occurrences.item(idx)
subcomp = occ.component
for bidx in range(0, subcomp.bRepBodies.count):
body = subcomp.bRepBodies.item(bidx)
dimvector = body.boundingBox.minPoint.vectorTo(body.boundingBox.maxPoint).asPoint()
dims=sorted(dimvector.asArray())
formx = product.unitsManager.formatInternalValue(dims[0])
formy = product.unitsManager.formatInternalValue(dims[1])
formz = product.unitsManager.formatInternalValue(dims[2])
print (f'{idx},{body.name}, {formx}, {formy}, {formz}\r')
subcomp.description=f'{formx} x {formy} x {formz}'
Save to file, open Text Commands and switch to `(x) Py`
Run this command:
import neu_dev; neu_dev.run_script("/path-to-file/partsizes.py")
Prints part dimension list that looks like this:
3,Front side, 1.50 in, 3.00 in, 54.00 in
4,Inside width support, 1.50 in, 3.00 in, 33.00 in
5,Inside width support (1), 1.50 in, 3.00 in, 33.00 in
6,Body1, 1.50 in, 3.00 in, 28.50 in