CityEngine and ArcGIS Urban are very efficient tools to plan, model and build thoughtful urban environments. They make the 3D visualization of cities fast and interactive. Using the procedural modeling approach, CityEngine and Urban allow the users to easily create and generate building models. The city models can be adjusted by varying their parameters. However, cities impose restrictive zoning rules on development projects. These regulatory constraints are complicated to fulfill and fine-tuning the building model parameters can be tedious. In order to improve the design process, we apply machine learning to automatically generate the most interesting building designs while complying with the city zoning rules.