Doing the spade work mentioned here will you save you a lot of hassles and time. For a new home, start with the rug first because it is easier to match it with other things like furniture, upholstery, curtains, wall colors, etc., since there is wider range available for these. Next, ascertain the size and shape (rectangular, square, round, octagon, runner, etc.) that will fit the room/place and take measurements. Whether you want a traditional, transitional or contemporary rug? An all-over or one with medallion pattern? Geomatrical or floral? Would you prefer dark or light colors (earth tones/terracotta, pastel, jewel tones are some examples).
If it is an existing home, note down the colors, pattern, texture, etc., of the other items in the room like furniture (Modern, Victorian, etc.), upholstery, curtains, walls, paintings and other important accessories. Carry swatches, if available. If possible, draw a rough sketch how furniture, doors, floor vents, etc., are placed, especially for oddly-shaped rooms. Note down these details as these will greatly help you in decision making. Finally, make a mental note of your budget range because an 8x10 dining room rug can be roughly from $500 to $5000 and much higher if wish to go for a very fine or antique rug.
Whether to use a traditional, transitional or contemporary rug depends entirely on individual liking & taste. Obviously, the décor of the room or place should coordinate with the rug. Outdoor rugs should preferably be made of sturdy fibers not prone to rotting or weather related degradation. Darker rugs with more pattern & less open field are generally suitable under dining room tables, high-traffic or entry areas as they are less prone to show stains. Flat weaves like Soumaks, Dhurries, etc. are frequently used for less formal areas.