If demand patterns are created after importing demands from Loadbuilder, is there a way to assign the demand patterns based on areas of the model? (for example by polygon shapefile)
To preface - demand patterns are only associated with demands. You cannot associate a pattern with an area or collection of elements and have any current or future demands be automatically associated with the pattern. For example if you have a junction that does not have any demands currently, a demand pattern cannot be assigned yet until a demand has been added to the junction.
Typically your demand patterns would be created before importing demands with Loadbuilder. At the end of the Loadbuilder process (for most types), you'll be given the opportunity to assign demand patterns to the imported loads based on a load type field, if you have one in your shapefile. If each polygon area has a different "type", then this would do exactly what you want.
If you've already imported your base demands using Loadbuilder and now want to assign the demand patterns based on polygon areas, here are two options: