Hi Hyeuk,
As of OpenQuake v1.8, the three options for defining asset costs in an exposure model are the following:
1. type="aggregated": This option implies that the cost is the aggregate value of all of the structural units comprising the asset.
2. type="per_area": This option implies that the cost specified is per unit area of the asset.
3. type="per_asset": This option indicates that the cost specified is per structural unit comprising the asset. For most exposure models, the structural unit is a building. Thus, the keyword per_asset for this option is indeed a misnomer as you point out; a better choice could have been per_unit or per_building, as you suggest. We did investigate the possibility of changing the keyword for this option to per_unit a couple of months ago to remove this confusion. However, since the per_asset keyword has been used since the beginning, it is present in a large number of QA test cases in risklib, and we realised that changing it now would be quite non-trivial. Thus, we've decided to keep the per_asset keyword, at least for the near future. The Risk Input Preparation Toolkit UI presents this option as Per Building, but the generated NRML file still defines the cost type as per_asset.
Regarding your second question, the number attribute will be used only if you run a damage calculation, as the outputs present the expected number of structural units in different damage states. If you are only interested in running loss calculations, the number attribute is not necessary if all the cost types are assigned as "per_area".
Regards,
Anirudh