I would take an OBJECT DATA approach. You are taking a graphical approach with 'extended data.' I honestly can't see any value from extended data. Object Data can only be created and understood in Civil3D/Map3D. I don't know why you wish to work in vanilla AutoCad.
Image-1
Image-1. Even though the block's attribute are hidden, they still have object data (OD). The object data resides on the blocks so you can consider the blocks to be smart blocks. (Think smart phones vs. dumb phones.) The OD enables you to undertake analytical scenarios: How many speakers do you have? How many are rotated at this angle? How many blocks are located over here and how many over there? (Each block has coordinates in your city so analyzing location will not be a problem.)
If you add cost to the OD, you can analyze how many blocks cost this much? How many blocks cost that much?
You can print reports with whatever OD you have and which ever OD you wish to report.
Image-2
Image-2. Each individual speaker block contains Object Data (OD). Depending on how you create your block, the OD can be used to populate the block attributes. In the above example, ASSETID, ABS_CODE and ROTATION has been 'captured' and used to fill in the block attributes. (You can also add more attributes to the block if needed.) The attributes ASSETID and ROTATION were also made invisible so only ABS_CODE is displayed as a label. When the block are inserted (they are inserted simultaneously not individually), they can be rotated properly. The insertion point and the rotation are taken from the object data or from the coordinates and the rotation angle captured in the object data.
Chicagolooper
