Cityengine architecture details
![cityengine architecture details cityengine architecture details](https://image.slidesharecdn.com/master-esriuc2015-minecraftpresentation-submission-150909230032-lva1-app6892/95/esri-cityengine-minecraft-engaging-citizens-in-3d-city-planning-1-638.jpg)
cgamat) with ids .CGAMatEncoder and .CGAMatDecoder. Added encoder and decoder for CGA material files (.ifc) with id .IFCEncoder and .IFCDecoder. Added a new encoder and decoder for "Industry Foundation Classes" (.split, trim, insertAlongUV operations: Fixed a rare crash when face materials are present.convexify, setback operations: Fixed a bug which led to wrong uv coordinates and normals in some self-touching and self-intersecting polygon situations.This happened on non-planar shapes with a scope rotation applied. envelope operation: Fixed wrong resulting scope translation.scatter operation: The group name of scattered points is set to builtin:point.splitArea operation: Asset groups and asset face materials are now kept.envelope operation: Asset groups are now kept.String concatenation operator: Strings can now be concatenated with arrays.Added a new convenience function prtx::Material::getShaderTextureArrayKeyAndIndexFromCGAMapName() to find the shader key and array index for a given CGA map attribute.Updated the list of shader keys in the API documentation of prtx::Shader and prtx::Material.Fixed resized texure array when using prtx::MaterialBuilder::setTextureArrayItem(L"diffuseMap", 0).Extended the list of managed pointer types in prtx/PRTUtils.h.Added a new utility function prtx::MaterialUtils::getMaterialAsCGAStrings to get the string representation of a prtx::Material.Prevent the creation of small holes when merging vertices in prtx::EncodePreparator.Fixed wrong syntax in the output of prt::ResolveMap::toXML.Improved robustness when closing files.
![cityengine architecture details cityengine architecture details](https://community.esri.com/legacyfs/online/474401_pastedImage_10.png)
Added support for creating intermediate directories specified in the open function.Enhanced the prt::FileOutputCallbacks class.CityEngine SDK is used in CityEngine 20.This section lists changes compared to CityEngine SDK.