Похоже, вы должны создать домен-специфический язык (DSL) для описания проблемной области GUI. Затем пусть ваш инструмент использует экземпляры этого DSL для генерации кода.
При написании этого ответа я думал о возможностях Инструментальных средств для конкретного домена от Microsoft, входящих в состав Visual Studio SDK. Они позволяют создавать DSL и графический дизайнер, который можно использовать для создания экземпляров документов. Документы экземпляра представлены в формате XML со схемой, созданной инструментами DSL.
Инструментарий точно нацелен на среду, которая будет использовать экземпляры документов и использовать их для генерации кода или других текстовых артефактов в рамках проекта Visual Studio.
Примером его использования является Фабрика программного обеспечения веб-служб , которая объединяет три из этих DSL для генерации контракта на обслуживание, контракта на данные и конфигурации хостинга для служб WCF.