Giter VIP home page Giter VIP logo

esri-cityengine-sdk's Introduction

Esri CityEngine SDK Examples

The Esri CityEngine is based on the procedural runtime, which is the underlying engine that supports two geoprocessing tools in ArcGIS and drives procedural symbology in ArcGIS Pro. The CityEngine SDK enables you as a 3rd party developer to extend CityEngine with additional import and export formats. Moreover, you can integrate the procedural runtime in your own client applications taking full advantage of the procedural core without running CityEngine or ArcGIS.

Preamble

This document explains how to install the CityEngine SDK and how to work with the source-code examples contained in this repository. The Esri CityEngine SDK is packaged into three parts:

  • This git repository with the example sources.
  • An archive with the SDK binaries and documentation (whitepaper and API reference).
  • An archive with example data (e.g. rule packages and initial shapes).

The archives are available for download at the corresponding github release page. See installation instructions below for details.

CityEngine SDK Releases

Installation Instructions

  1. Clone or download this repository
  2. Download the SDK binary archive from the release page
  3. Download the SDK example data archive from the release page
  4. Unzip the archives into the cloned repository into a "prt" and "data" directory.

The final directory layout should look like this:

/esri-cityengine-sdk/
    examples/...
    license/...
    data/...
    prt/
        bin/...
        cmake/...
        doc/...
        include/...
        lib/...

Examples

This repository contains a number of source code examples. Each example contains a README with detailed instructions how to build and use it.

A quick overview:

  • prt4cmd: a simple command line utility to apply rule packages onto initial shapes and generate models.
  • prt4maya: wraps the SDK into a plugin for Autodesk Maya
  • prt4unity: wraps the SDK into a plugin for the Unity game engine
  • stlenc: demonstrates how to write a custom encoder, in this case for the STL geometry format.

General Software Requirements

Please note that the individual example READMEs may include further requirements.

All Platforms

  • To load custom encoders built with this SDK in CityEngine, at least CityEngine 2014.0 is required.

Windows

  • Windows 7 or later (32bit and 64bit)
  • License for CityEngine 2013 or later
  • NMake 10.0 or later (part of Visual Studio)
  • CMake 3.0.0 or later (http://www.cmake.org)
  • Recommended C++ Compilers for simple clients (prt4cmd example):
    • Microsoft VC 10.0 or later
  • To compile SDK extensions (prt4maya example, stlenc example, custom encoders) it is required to use one of these exact C++ compiler version / boost libraries:
    • Microsoft VC10 C++ Compiler (cl.exe) 16.00.40219.01, included in Visual Studio 2010 SP1
    • Microsoft VC11 C++ Compiler (cl.exe) 17.00.61030.0, included in Visual Studio 2012 SP4
    • boost 1.53 headers and binaries
      • get the boost 1.53 headers from http://www.boost.org
      • get the boost 1.53 pre-compiled binaries from http://boost.teeks99.com (e.g. boost_1_53_0-vc64-bin.exe or boost_1_53_0-vc32-bin.exe)
      • note: if you compile boost yourself, the boost libraries need to be compiled with correct compiler (VC 10)

MacOSX

  • MacOSX 10.7 or later (64bit only)
  • License for CityEngine 2013 or later
  • GNU Make 3.82 or later
  • CMake 3.0.0 or later (http://www.cmake.org)
  • Recommended C++ Compilers for simple clients (prt4cmd example):
    • GCC 4.2.1 or later
    • Clang 3.0 or later
  • To compile SDK extensions (prt4maya example, stlenc example, custom encoders) it is required to use this exact C++ compiler version / boost libraries:
    • Apple GCC 4.2.1 included in:
      • XCode 4.2 and MacOSX SDK 10.7 (Based on Apple Inc. build 5658, LLVM build 2336.1.00)
    • boost 1.53 headers and binaries (e.g. via homebrew or directly from http://www.boost.org)

Linux

  • RedHat Enterprise Linux 6.x or compatible (64bit only)
  • License for CityEngine 2013 or later
  • GNU Make 3.82 or later
  • CMake 3.0.0 or later (http://www.cmake.org)
  • Recommended C++ Compilers for simple clients (prt4cmd example):
    • GCC 4.4 or later
  • To compile SDK extensions (prt4maya example, stlenc example, custom encoders) it is required to use this exact C++ compiler version / boost libraries:
    • GCC 4.4.7 64bit included in RedHat Enterprise Linux 6.4 Package Repository
    • boost 1.53 headers and binaries (http://www.boost.org)

Further Resources

Issues

Find a bug or want to request a new feature? Please let us know by submitting an issue.

Contributing

Anyone and everyone is welcome to contribute and to extend and improve the examples by sending us pull requests.

Licensing

Copyright 2015 Esri

You may not use the content of this repository except in compliance with the following Licenses:

  1. All content of all directories except "examples" is licensed under the CityEngine EULA, see license/EULA.pdf.
  2. All content in the "examples" directory tree is licensed under the APACHE 2.0 license. You may obtain a copy of this license at http://www.apache.org/licenses/LICENSE-2.0. A copy of the license is also available in the repository at license/APACHE-LICENSE-2.0.txt.

[](Esri Tags: CityEngine) [](Esri Language: C++)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.