This was standard procedure in some companies due to the huge number of the parts in assemblies. Imagine when you have an airplane section and the software installed on your workstation has to check, eventually update (depending on settings) the links created by constraints....
Try this in CATScript (is just an example, you need to modify for your needs)
Language="VBSCRIPT"
Sub CATMain()
Set drawingDocument1 = CATIA.ActiveDocument
Set drawingSheets1 = drawingDocument1.Sheets
Set drawingSheet1 = drawingSheets1.Item("Sheet.1")
Set drawingViews1 = drawingSheet1.Views...
There are a lot of posts about BoM, did you search through them? https://www.eng-tips.com/search/8722974/?q=BoM&t=post&c[child_nodes]=1&c[nodes][0]=560&o=date