First
Layers I believe, are the best way of isolating types, make scenes to show only what is required, so the generate report can work on a selection (select all in scene) rather than the model. Care should be taken not to have groups contain objects on multiple layers, unless deliberate and that group is opened for the report on that group only
You would use dynamic attributes to customize groups or component to contain data for the inbuilt report writer to report.
You can make small scripts to collect length, area or volume (weight) and add it to the group/component. Organisation is very important, so having cross section in the same plane, (x,y) or axis of your choosing, with length at its normal (z) is required if reporting elements (structure)
Doors can be dynamic components...features, size(dynamic), ...its a case what data is required for the drawing, and what data to attach via excel or access or other data base.
Reports can be (further) filtered in excel using VBA and fill a formatted standard report, attaching any further properties as required, Thus a very customized application can be created.
One method is to use the off-line report (a comprehensive report) and sort it externally with VBA script