I'd consider how you are going to maintain the location of individual assets. Unless you have systems in place to track every PC as its moved then you probably want to stick to Locations you can automatically assign computers to by subnet using a Task. Then you could add a few sub locations that will be assigned manually.
So you might have a location for "Fourth Floor" when you have a subnet that covers the whole fourth floor, and maybe a sub location "Fourth Floor storeroom" if you maybe put spare PCs in a specific room when their Status is set to "Stock". But you are asking for trouble if you try and split the fourth Floor into "Fourth Floor East" and "Fourth Floor West" if you have to track those manually.
If you create a Task to assign Location by subnet you might want to only run it against Desktops, you don't necessarily want laptops changing location all the time.
One other point is that, if you change the filter that any of the CMDB Tasks are scheduled to run on you need to create a new Schedule for the task and stop the old one.