....
i require the centre of dividing walls and i can differnetiate the centre line and wall with layers ie centre line is one layer and wall is another layer.
there will be no doors in walls and walls are continuously drawn.
...
Ok, that's a good start.
Can I suggest you try something a little less automated but will still save a lot of time and will get you going?
How about picking inside each room using the BOUNDARY command that will create a closed polyline for each room and puts them in a collection for retrieval later. You can then loop through each room's polyline and create a block out of it and add your attributes (or leave it as a polyline and add xdata maybe).
So your first run through a process flow might look like this:
step:
1. Ask user to pick inside each room to identify each one, create polyline and store for later.
2. for each polyline, add geometric data such as area and perimeter as xdata or create blocks and add as attributes.
3. once this is done you could create a dialog that lists all rooms which you could select to add more data on and perhaps even zoom to in the drawing for reference.
You can now break down each of these steps into sub processes and those into further sub-processes until you reach some very simple functions that you pull together as the application.
For step 2 you might add some ability to search within the polyline to harvest textual info that may be used for room xdata/attributes as well.
If you get something like this working you can at least have users being productive sooner and you can then focus on how you can automate the picking part.
I would even go as far as just doing this to one room at a time before allowing the user to pick multiple rooms, every step is important and you are continuously delivering working code that saves time. It keeps the boss happy too as he can see continual progress rather that waiting 6 months for an app that might fail under it's own weight.
You still need an overall big plan but a lot of things (will) change while developing so think small functions and deliver working, tested code often. ('Agile' principles, worth looking into
)