If the objects' structure is dynamic via your application code then SSDT will be out of synch anytime you modify or create them. The only way is to perform a schema compare. Think of the database project as a completely different instance of your database, because it is. They are not connected and one is not aware of any changes in the other unless you trigger that synch/compare.
I would assume/hope that your synonyms are statically named for the application if so, you can bring those into the project, however you'll likely need to set them to ignore Err 71502 - unresolved reference. But that will get tricky if those synonyms are also referenced elsewhere in your project.
In short, it's not good practice from an SSDT point of view to have dynamic objects.
Personal Motto: Why push the envelope when you can just open it?
If you follow the direction given HERE[/url] you'll likely increase the number and quality of responses you get to your question.
Jason L. Selburg