roofHip, roofGable, roofPyramid, roofShed operations: Fixed a bug which led to a wrong geometry or a wrong scope in rare cases on shapes with holes.setback, setbackToArea, setbackPerEdge operations: Avoid creating an unnecessary edge for O-shaped setback geometry.Fixed an issue where the group name of the geometry was not set to initialShape.name for initial shapes with 1 face.It was incorrectly shifted by 180 degrees. geometry.angle function: Fixed wrong azimuth.This happened in rare cases with positive offset distance and collinear vertices. offset operation: In case of a failure a crash is prevented or a resulting degenerated geometry is avoided.CGA Compiler: Identifiers for parameters must not contain a '$' character.comp(v) operation: The material of vertex components is now set to default.extrude, taper, setback, setbackPerEdge, setbackToArea, shapeL, shapeU, shapeO, innerRectangle, convexify operations: Asset face materials are now kept.comp, offset, extrude, roofHip, roofGable, roofPyramid, roofShed, taper, split, setback, setbackPerEdge, setbackToArea, shapeL, shapeU, shapeO, innerRectangle, convexify operations: Asset groups are now kept.ceil, floor, rint, isinf, isnan, isNull functions: Support for arrays.imageBestRatio, imageApproxRatio, assetBestSize, assetApproxSize, assetFitSize, assetBestRatio, assetApproxRatio functions: An invalid string selector does not fall back to a default value but now leads to a runtime error.assetsSortSize, assetsSortRatio, imagesSortRatio functions: Added versions which take the list of files as array of strings instead of a stringlist.convert function: Added a version which takes the coordinate values as array.USD reader: added support for USDZ files.Note that face and vertex indices of a shed roof are different now. roofShed operation: Negative angles are now supported.i operation and initial shapes: Improved automatic removal of 0-area faces, 0-length edges and 0-angles.Layer attributes (CityEngine only): isNull function.assetNamingInfos function: In contrast to assetNamingInfo this function returns an array of strings instead of a stringlist.filesSearch function: In contrast to fileSearch this function returns an array of strings instead of a stringlist.Local variables can be defined using the with keyword.This resulted in a crash when switching styles.ĬityEngine 2021.0 | CGAC 1.16 New features Fixed a bug where, in imports, non-matching return types of attributes and functions across styles were not detected.This happenend in rare cases when a recusive function was also defined in another style. Fixed a bug which led to an unhandled error.split, trim, insertAlongUV: Fixed a rare crash when face materials are present.Rendering (CityEngine), 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.A new option "Find Ununsed Declarations" is available in the CGA Editor. This is due to the fact that a declaration is potentially referenced by another rule file via imports. Warnings for unused declarations (attributes, functions, const functions, rules) were removed.Besides reducing CGB size, this avoids unnecessary dependencies on the builtin operation and function set, thus maximizing compatibility for older procedural runtime versions. Unused rules and functions are not written to the CGB anymore.Instead, use a separate function that contains the comp function. Local variables: Usage of comp function in a local variable definition is not supported anymore and leads to a compiler time error.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.CityEngine 2021.1 | CGAC 1.17 New features