ArcGIS CityEngine

ArcGIS CityEngine Project Collaboration: Tips, Tricks and Best Practices

ArcGIS CityEngine lets you design comprehensive urban masterplans, code stunning procedural buildings, and create vast cityscapes for digital production. Ever wondered how to pull off such big projects? The short answer: do it together with ArcGIS CityEngine project collaboration!

Hi, I’m Thomas, a Product Engineer in the CityEngine development team. I’m thrilled to present you with recommendations for collaborating on your CityEngine projects. Project sharing allows you to leverage the expertise of a specialist using a code library in your workspaces, or switching seamlessly to your mobile workstation for a project meeting.

ArcGIS CityEngine is built on a powerful cross-platform integrated development environment (IDE) platform. Its workspace concept helps you organize, address, and track all files (scenes, CGA rules, and 3D assets) in a predefined project folder structure. Most importantly, it allows linking project folders from any storage location into your workspace. Combine this with cloud storage solutions, code version control, or your file server, and voila! Now we have an open and scalable collaboration framework.

Setting up Projects for collaboration

Before introducing three real-world collaboration approaches, let’s start by establishing the fundamentals of working with projects located outside of the workspace.

Creating a New CityEngine Project

You may already know that in CityEngine, the default storage location for projects is the workspace root directory. However, the workspace contains machine-specific metadata files. Therefore, when synchronizing projects across different workstations, never include the workspace root folder. Instead, follow this best practice:

  1. Create a new project by going to File > New > CityEngine Project.
  2. Uncheck the ‘Use default location‘ option.
  3. Define the path to your shared storage location.
  4. The project will be automatically linked to the workspace.
Create new CityEngine Project dialog window
Figure 1: Create a new project in custom a location

Link a Shared Project to Your Workspace

Have you received an invitation to collaborate on a CityEngine project? If so, follow these steps to add it to your Workspace:

  1. Go to File > Import/Link Project Folder into Workspace…
  2. Select the root directory of the project shared with you.
  3. To stay in sync with the shared project, ensure to disable the ‘Copy project into workspace‘ option.
  4. Click Finish to link the project to the Workspace.

From now on, any changes you make to the project will be directly written to the shared project.

Figure 2: CityEngine Import Project Dialog

Share an Existing Project

If you want to share an existing project, make it available to your peers by:

  1. Right-clicking on the project folder in the Navigator; then choose Export… then General > File System, and define a shared directory, then click Finish.
  2. Back in the Navigator, delete the project folder from the Workspace to avoid any name conflicts.
  3. Now link the shared project back into your Workspace as described above.
CityEngine Export Project Dialog
Figure 3: CityEngine Export Project Dialog

Collaborating on CityEngine Projects

In this next section, we’ll cover three important considerations when collaborating on CityEngine projects, depending on your team’s infrastructure, environment and resources.

Cloud Drive Project Collaboration

The easiest way to share CityEngine projects is by using one of the many desktop integrations of cloud drive services.

For example, Microsoft Windows comes with OneDrive pre-installed. The cloud drive client creates a synced local copy of the remote files, meaning that changes are first written to the local disk before being automatically uploaded. This setup is ideal for automatically creating backups of your projects or keeping your desktop and mobile workstations in sync.

The open nature and cross-platform capabilities of this solution also make it the preferred choice for collaboration in an urban design project. To ensure compatibility of scene files, it is recommended that everyone involved uses the latest version of CityEngine (this is especially important when working with external stakeholders).

In the diagram below, we present the setup of an urban design company that leverages ArcGIS CityEngine Project Collaboration to design urban masterplans. Contracted architects can contribute proposals for integral parts of the urban design project. It is common practice to separate code and assets that are not specific to a particular design into a main project and protect it by making it read-only.

Figure 4: Cloud drive collaboration setup for urban design projects

Please note that depending on the number and size of files written, it may take some time for those changes to show up on other workstations. The CGA compiler is deeply integrated into the CityEngine Workspace management; any delays in syncing of workspace content can lead to compiling errors. To have full control over your code changes, the subsequent collaboration method is then the way to go.

Version Control Server Project Collaboration

Are you working on joint development of CGA code or complex Python scripts and need to track changes? In the CityEngine development team, we use a version control server to create our content, such as the tutorials and examples. The tool helps us keep track of changes and resolve concurrent editing conflicts. Popular choices for version control are Git or Git Large File Storage (LFS), which can be used with services like GitHub, GitLab, or Bitbucket.

Figure 5: Version control server collaboration setup for procedural code development

You can also combine this setup with the cloud drive approach to project sharing mentioned earlier. However, for some projects that are too massive, relying solely on web-based solutions may not be feasible. In such cases, it is recommended to include a dedicated asset management solution in your production pipeline.

Network File Server Project Collaboration

If you work in an environment with a fast file server, you can directly work with CityEngine projects located in a central location. This avoids the overhead of creating local copies of huge asset libraries. Your team can link all projects directly from the network drive into the personal workspace. Unintentional editing of files in shared libraries can be avoided by setting the folders to read-only. To undo any accidental changes, we highly recommend using a sophisticated backup solution on the file server.

When working on the same project, CE constantly checks text files like CGA and Python for modifications and alerts the user in case of concurrent editing. For scene files, the workgroup needs to have an agreement to mitigate this problem. The best practice is having VFX artists specializing in one layer type and later importing all layers in a common CE scene.

Figure 6: file server collaboration setup for production pipeline

Bringing It All Together

CityEngine is built on an application framework that is specifically designed for collaborative projects. With CityEngine, multiple workspaces can easily share and work on the same project simultaneously. This collaborative environment allows teams to leverage the synergies of cooperative editing, enhancing productivity and efficiency. Choose one of the presented collaboration methods that best suits your team’s needs and workflow. These methods ensure seamless cooperation and enable team members to contribute their expertise to the project.

If you haven’t started using CityEngine yet but are interested in exploring its capabilities, you can take advantage of our 21-day Free Trial. This trial period allows you to experience CityEngine’s features and functionalities firsthand. Additionally, our comprehensive Tutorials provide step-by-step guidance to help you get started quickly and make the most out of CityEngine.

Start leveraging the power of ArcGIS CityEngine today and unlock new possibilities for collaborative project development.

About the authors

Thomas Fuchs

Thomas Fuchs holds a master’s degree in Geodesy and Geoinformatics Engineering from the University of Stuttgart Germany. He specialized in GIS data analysis and 3D object reconstruction. As a Product Engineer in the CityEngine team at the Esri R&D Center Zurich, his field of work is Esri platform integration, procedural city design and game engine plugins.

Connect:

Taisha holds degrees in Geomatic Engineering and Arts from the University of Melbourne, as well as an MBA from RWTH Aachen/University of St. Gallen focusing on technology and innovation. Taisha is a Technology Leader in the ESRI R&D Center in Zürich and is interested in all things related to technology, sustainability, art and the entertainment industry.

Connect:

Avonlea Fotheringham is a Product Marketing Manager for ArcGIS CityEngine and Esri's Extended Reality capability, using her passion for language and design to evangelize GIS to the world. She is based in Ottawa, Ontario, Canada, where she uses her free time to organize an annual international poetry festival.

Connect:
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments

Next Article

New! Probabilities in Forest-based and Boosted Classification in ArcGIS Pro 3.3

Read this article