258 documented changes.

Version
2024.2.0
Released
Jul 24, 2024
Product
Asset Transformer SDK
Asset Transformer SDK changelog

Asset Transformer SDK 2024.2.0

Official notes

Added

  1. Feature

    2024.2 comes with an API revamp for a more consitent development experience.

  2. Feature

    New viewer API to render scenes, generating screenshots or create interactive viewers.

  3. Feature

    The following list of formats and versions is now officially supported:

Functions

  1. Change

    `algo.crackMeshEdges` : Crack polygonal edges according to given criteria

  2. Change

    `algo.dualContouring` : Replace the tessellations of the selected parts by a retopology based on a dual-contouring

  3. Change

    `algo.filletMesh` : Fillet a mesh according to its Lines of Interest

  4. Change

    `algo.getAllAxisFromCADModel` : Return all the main axis contained in the CAD models given

  5. Change

    `algo.getUVQualityMetrics` : Compute UV mapping qualitative metrics.

  6. Change

    `algo.getVisualComparisonFootprint` : Compute the visual footprint of the difference between two sets of occurrences

  7. Change

    `algo.identifySharpEdges` : Mark as Lines Of Interest the sharp edges

  8. Change

    `algo.mergeUVIslandsRelaxed` : Minimizes the number of seams in the UV mapping by merging UV islands

  9. Change

    `algo.meshBooleanOperation` : Computes the boolean operation between the meshes of two occurrence lists

  10. Change

    `algo.segmentMesh` : Segment Mesh into clusters guided by edge sharpnesses

  11. Change

    `cad.addBodyToModel` : Add a body to the model

  12. Change

    `cad.addEdgeToModel` : Add an edge to the model

  13. Change

    `cad.addOpenShellToModel` : Add an open shell to the model

  14. Change

    `cad.addPrecisionArea` : Define a working area on the 2D projection of the surface to define a parametric precision

  15. Change

    `cad.addVertexToModel` : Add a vertex to the model

  16. Change

    `cad.createBoundedLinearExtrusion` : Create a linear extrusion body

  17. Change

    `cad.createCurveExtrusion` : Create a curve extrusion body

  18. Change

    `cad.createLinearExtrusion` : Create a linear extrusion body

  19. Change

    `cad.createLoopFromCurve` : Create a loop from a finite curve

  20. Change

    `cad.createMultiExtrusion` : Create a linear extrusion body

  21. Change

    `cad.createRevolveExtrusion` : Create a revolved extrusion body

  22. Change

    `cad.endThreadBrepSession` : Ends BrepSession on current thread

  23. Change

    `cad.getClosedShellOrientedFaces` : Get all orienteFaces contain in the closedShell

  24. Change

    `cad.getCurveLength` : Returns the length of the curve

  25. Change

    `cad.getEdgeLength` : Returns the length of the edge

  26. Change

    `cad.getEdgeMaterial` : Get the material of the edge, if any

  27. Change

    `cad.getModelOpenShells` : Get the list of open shells contained in a model

  28. Change

    `cad.getModelPrecision` : Get the precision used in a model

  29. Change

    `cad.getOpenShellOrientedFaces` : Get all orienteFaces contain in the openShell

  30. Change

    `cad.getParametricPrecisionOnSurface` : Returns the parametric precision of a surface from the input precision

  31. Change

    `cad.getPrecision` : Get the CAD precision

  32. Change

    `cad.invertCoEdge` : Invert a coedge

  33. Change

    `cad.invertFaces` : Invert faces

  34. Change

    `cad.invertLoop` : Invert a loop

  35. Change

    `cad.isCurveFinite` : If the curve is finite return true, return false otherwise

  36. Change

    `cad.isSurfaceFinite` : Return if the surface is finite

  37. Change

    `cad.needPrecisionArea` : Tells if it needs a working area on the surface

  38. Change

    `cad.needTorusShapeCheck` : Returns true if the torus has a shape (lemon or apple) corresponding to the provided points

  39. Change

    `cad.setCoEdgeCurve2D` : Set the curve 2D value of a coEdge

  40. Change

    `cad.setCoEdgeSurface` : Set the surface value of a coEdge

  41. Change

    `cad.setCurveLimits` : set the parametric space limits of a curve

  42. Change

    `cad.setEdgeMaterial` : Define an edge's material

  43. Change

    `cad.setUnitLength` : Set the CAD unity length property

  44. Change

    `cad.startThreadBrepSession` : Create a new BrepSession on current thread

  45. Change

    `core.getLogFile` : Get the path of the log file

  46. Change

    `core.hasCustomProperty` : Return true if the custom property was found on the occurrence

  47. Change

    `core.lockEntityRegistration` : Lock Entity registration, use with Caution. All entities created after this call will not be saved on .pxz file and will not be listed as existing entities on the Database. Be careful to not references these entities with other registered entities

  48. Change

    `core.log` : Log a message to Pixyz output

  49. Change

    `core.parallelAddJob` : Add a job to a parallel session

  50. Change

    `core.parallelFinish` : Ends a parallel session after waiting for all jobs to finish

  51. Change

    `core.parallelStart` : Starts a new parallel session

  52. Feature

    `core.removeModule` : Remove a module added via getModuleDescFromXML

  53. Change

    `core.unlockEntityRegistration` : Unlock Entity registration

  54. Change

    `geom.fromAffine` : Create a Matrix from an Affine

  55. Change

    `geom.getMaxScale` : Get maximum matrix scale

  56. Change

    `io.addAssetPaths` : add directory paths to search assets in

  57. Change

    `io.applyAutoTessellate` : Handle auto tessellate options on given part, need to be complete

  58. Change

    `io.clearAssetPaths` : clear all asset paths

  59. Change

    `io.findInDirectories` : find the final path. This will search for the file in asset paths

  60. Change

    `io.getAssetPaths` : get user defined paths to find assets

  61. Change

    `io.getExtensionPriority` : get the priority of an extension from the pixyz importer

  62. Change

    `io.importRemote3mxFile` : Import a remote 3mx file

  63. Change

    `io.listVariants` : List all variants if file

  64. Change

    `io.registerIOCallbacks` : Register import and export callbacks

  65. Change

    `io.setAssetPaths` : replace paths to find assets

  66. Change

    `material.convertFloat32To8BitsImage` : Returns a new image from the given converter from 32bits float to a 8Bits (e.g. depth render map)

  67. Change

    `material.createImageFromData` : Import an Image from only its data

  68. Change

    `material.fillUnusedPixels` : Fill unused pixels by propagating and averaging used pixels

  69. Change

    `material.filterAO` : Filter an AO map using ATrous method

  70. Change

    `material.getImagePixelColor` : Returns the color of a given pixel in an image

  71. Change

    `material.getImagesSizes` : Returns the sizes of multiple images

  72. Change

    `material.getMaterialPattern` : Gets the MaterialPattern name of the material

  73. Change

    `material.getPointsAndMaterialFromText` : Returns list of 3D Points and a material from a string and fontname

  74. Change

    `material.setCoeffOrTextureProperty` : Set a CoeffOrTexture property

  75. Change

    `material.setColorAlphaProperty` : Set a ColorAlpha property

  76. Change

    `material.setColorOrTextureProperty` : Set a ColorOrTexture property

  77. Change

    `polygonal.createMeshFromDefinitions` : Create a new mesh from multiple MeshDefinition

  78. Change

    `polygonal.createMeshFromText` : Creates an occurrence from string

  79. Change

    `polygonal.usePointGapFillerNormal` : This triangulates a set of points and normals

  80. Change

    `scene.addAnnotationGroup` : Add a Annotation Group to the pmi component

  81. Change

    `scene.addInParentInstances` : Add an instance of prototype's child as child in current occurrence recursively

  82. Change

    `scene.addMeshToAnnotation` : Add a mesh and its material to a annotation

  83. Change

    `scene.createAnnotationFromDefinition` : Create Annotation from definition

  84. Change

    `scene.createCapsule` : Create a new capsule

  85. Change

    `scene.createOccurrenceFromAnnotation` : Convert a single annotation on an occurrence into an occurrence with mesh geometry

  86. Change

    `scene.endModifyAllVariants` : Call this function to disable the modifications of all variants at the same time

  87. Change

    `scene.getBrepShape` : Returns the Brep shape of a part

  88. Change

    `scene.getHiddenPartOccurrences` : Get hidden part occurrences

  89. Change

    `scene.getPartialLoadingStatus` : Get the current status of a partial loading component

  90. Change

    `scene.getTessellationParameters` : Get tessellation parameters

  91. Change

    `scene.getVolume` : Return the volume of the occurrence

  92. Change

    `scene.getVolumes` : Return the volume of a set of root occurrences

  93. Change

    `scene.invertSelect` : Invert occurrences to selection

  94. Change

    `scene.setAnnotationToGroup` : set Annotation to a Annotation Group

  95. Change

    `scene.setReferencedDataComponentParent` : Defines which referenced data is parent to the given component

  96. Change

    `scene.setReferencedDataComponentPath` : Defines which path the referenced data is at

  97. Change

    `scene.startModifyAllVariants` : Call this function to to enable the modifications of all variants at the same time

  98. Change

    `scene.updateChildrenPrototypes` : Update children prototypes of the given occurrence

  99. Change

    `view.drawCappingPlane` : Create an occurrence that holds the mesh of the surfaces that have been cut by the cutting plane

  100. Change

    `view.getCameraFrontAxis` : Get the front axis of the nth view matrix of a given viewer

  101. Change

    `view.getCameraPosition` : Get the position of the nth view matrix of a given viewer

  102. Change

    `view.getCameraRightAxis` : Get the right axis of the nth view matrix of a given viewer

  103. Change

    `view.getCameraUpAxis` : Get the up axis of the nth view matrix of a given viewer

  104. Change

    `view.selectPrimitives` : Select the primitives (polygons, surfaces) contained in the given rectangle

  105. Change

    `view.setDefaultViewerId` : Set default viewer id. This viewer will be used in other functions taking a Viewer as a parameter. Useful if a viewer needs to be shared across different contexts.

  106. Change

    `view.startRecording` : Record viewer in a file

  107. Change

    `view.stopRecording` : Stop recording video

  108. Change

    `algo.combineMeshes` : Use `algo.combineMaterials` and `scene.mergePartOccurrences` to achieve the same result

  109. Change

    `algo.deletePolygonalWeightAttribute`

  110. Change

    `algo.destroyElements`

  111. Change

    `algo.flattenUV`

  112. Change

    `algo.getEdgePolygons`

  113. Change

    `algo.getEdgeVertices`

  114. Change

    `algo.getEdges`

  115. Change

    `algo.getFreeEdges`

  116. Change

    `algo.getFreeVertices`

  117. Change

    `algo.getNormal`

  118. Change

    `algo.getPatches`

  119. Change

    `algo.getPolygonEdges`

  120. Change

    `algo.getPolygonVertices`

  121. Change

    `algo.getPolygons`

  122. Change

    `algo.getTessellationBoundaries`

  123. Change

    `algo.getTextureCoordinates`

  124. Change

    `algo.getVertexCoordinates`

  125. Change

    `algo.getVertexEdges`

  126. Change

    `algo.getVertexPolygons`

  127. Change

    `algo.getVertices`

  128. Change

    `algo.getVisiblePolygons`

  129. Change

    `algo.invertElements`

  130. Change

    `algo.relaxUV`

  131. Change

    `algo.retessellate` : Use `algo.tessellate` instead

  132. Change

    `algo.smoothUV`

  133. Change

    `algo.stitchUV`

  134. Change

    `algo.toEditableMesh`

  135. Change

    `algo.toStaticMesh`

  136. Change

    `algo.combineMeshesByMaterials` : Use `scene.mergePartOccurrencesByMaterials` instead with the additional 'combineMeshes' parameter

  137. Change

    `cad.addToModel`

  138. Change

    `cad.createBoundedCurve`

  139. Change

    `cad.getBoundedCurveDefinition`

  140. Change

    `cad.getClosedShellOrientedDomains`

  141. Change

    `cad.getModelDomains`

  142. Change

    `cad.getOpenShellOrientedDomains`

  143. Change

    `cad.setPrecision`

  144. Change

    `core.addPreset`

  145. Change

    `core.executeCommand`

  146. Change

    `core.exportFunctionDialogScreen`

  147. Change

    `core.exportPresets`

  148. Change

    `core.generateHTMLDocumentation`

  149. Change

    `core.getEntityTypeFromString`

  150. Change

    `core.importPresets`

  151. Change

    `core.isFloatingLicense`

  152. Change

    `core.removeAllPresets`

  153. Change

    `core.removePreset`

  154. Change

    `core.savePreset`

  155. Change

    `core.updateDocumentation`

  156. Change

    `core.askYesNo`

  157. Change

    `core.choose`

  158. Change

    `core.askString`

  159. Change

    `core.message`

  160. Change

    `io.exportSceneToDTPlatform`

  161. Change

    `io.exportSceneToReflect`

  162. Change

    `io.importSceneFromDTPlatform`

  163. Change

    `scene.selectPartsFromNoShow`

Types

  1. Change

    `algo.EdgeListList`

  2. Change

    `algo.EdgeList`

  3. Change

    `algo.ElementList`

  4. Change

    `algo.PatchList`

  5. Change

    `algo.Patch`

  6. Change

    `algo.PolygonListList`

  7. Change

    `algo.PolygonList`

  8. Change

    `algo.UVCoordList`

  9. Change

    `algo.UVCoord`

  10. Change

    `algo.VertexListList`

  11. Change

    `algo.VertexList`

  12. Change

    `core.Regex` : Changed from struct to `core.String`

Changed

  1. Change

    `algo.automaticUVMapping` : Now have two new optional parameters allowing to set up the resolution and the padding

  2. Change

    `algo.createVisibilityInformationAdvanced` : Now has a `level` parameter, like `algo.createVisibilityInformation`

  3. Change

    `algo.decimateTarget` : Now takes an optional experimental parameter for hybrid memoryless approach

  4. Change

    `algo.explodeConnectedMeshes` : Now has an optional parameter allowing to split connected components along non-manifold edges

  5. Change

    `algo.getFittingCylinder` , `algo.mapUvOnFittingCylinder` : Theses function now take an optional forced direction vector

  6. Feature

    `algo.remeshSurfacicHoles` : Algorithm was improved, new parameters were added

  7. Change

    `algo.removeOccludedGeometries` , `algo.findOccludedPartOccurrences` and `algo.createVisibilityInformation` : Now can create viewpoints on an hemisphere

  8. Change

    `algo.removeOccludedGeometries` , `algo.findOccludedPartOccurrences` and `algo.removeOccludedGeometriesFromPoints` : Viewpoints generation no longer creates a uv mapping of a grid of `sphereCount` × `sphereCount` on a sphere (density is higher on the poles than on the hemisphere) but creates a uniform distribution of `sphereCount` viewpoints on a sphere.

  9. Change

    `algo.removeOccludedGeometries` , `algo.removeOccludedGeometriesAdvanced` , `algo.removeOccludedGeometriesFromPoints` and `algo.removeOccludedGeometriesFromViewPoints` : These functions now take an optional list of occluders

  10. Change

    `algo.unwrapUV` : Now has two new parameters to control solver's behavior

  11. Change

    `cad.createLoop` : Now has a parameter allowing to merge isolated vertices in the loop

  12. Change

    `cad.createRevolutionSurface` : Now parameters defining the starting and ending angles are renamed and used as if they were in radians

  13. Change

    `cad.invertFaces` : Now has a parameter to invert loop orientation

  14. Change

    `core.endUndoRedoStep` : Now has an optional `deleteIfEmpty` parameter

  15. Change

    `geom.fromTRS` : Rotation vector should be passed in degrees instead of radians

  16. Change

    `geom.toTRS` : Rotation vector values are now returned in degrees

  17. Change

    `material.createMaterialsFromMaps` : Now returns info on the created material

  18. Change

    `scene.createTorus` : Now has a `generateUV` parameter like other `scene.create___` functions

  19. Change

    `scene.getAABB` : Now takes an optional parameter allowing to compute more precise AABB

  20. Change

    `scene.mergePartOccurrencesByFinalAssemblies` : `MergeHiddenPartsMode` default value is now `Destroy`

  21. Removal

    `view.refreshViewer` : Removed the parameters `frameCount` and `forceUpdate` that were unused

Reference changes

  1. Change

    Format: ACIS; Version: 2024

  2. Change

    Format: Autodesk Revit; Version: 2024

  3. Change

    Format: Autodesk Navisworks; Version: 2025

  4. Change

    Format: CATIA; Version: V5_6R2024

  5. Change

    Format: Creo; Version: 11.0

  6. Change

    Format: DGN; Version: 7

  7. Change

    Format: Inventor; Version: 2025

  8. Change

    Format: NX-Unigraphics; Version: NX 2312 (2023 Dec. version)

  9. Change

    Format: Parasolid; Version: 36.0

  10. Change

    Format: Rhino; Version: 8

  11. Change

    Format: Solid Edge; Version: 2024

  12. Change

    Format: SolidWorks; Version: 2024

  13. Change

    Previous: algo.bakeUV; New: algo.transferUV

  14. Change

    Previous: algo.convertSimilarOccurrencesToInstances; New: algo.convertSimilarPartOccurrencesToInstances

  15. Change

    Previous: algo.createInstancesBySimilarity; New: algo.convertSimilarPartOccurrencesToInstancesFast

  16. Change

    Previous: algo.explodePartByMaterials; New: algo.explodeByMaterials

  17. Change

    Previous: algo.explodeVertexCount; New: algo.explodeByVertexCount

  18. Change

    Previous: algo.explodeVoxel; New: algo.explodeByVoxel

  19. Change

    Previous: algo.hiddenRemovalCamera; New: algo.removeOccludedGeometriesFromPoints

  20. Change

    Previous: algo.hiddenRemovalViewPoints; New: algo.removeOccludedGeometriesFromViewPoints

  21. Change

    Previous: algo.hiddenRemoval; New: algo.removeOccludedGeometries

  22. Change

    Previous: algo.hiddenSelection; New: algo.findOccludedPartOccurrences

  23. Change

    Previous: algo.mergeUVIslands; New: algo.mergeUVIslandsAffine

  24. Change

    Previous: algo.orientFromCamera; New: algo.orientPolygonFacesFromCamera

  25. Change

    Previous: algo.orient; New: algo.orientPolygonFaces

  26. Change

    Previous: algo.selectSimilar; New: algo.findSimilarPartOccurrencesFast

  27. Change

    Previous: algo.smartHiddenCreateVisibilityInformation; New: algo.createVisibilityInformationAdvanced

  28. Change

    Previous: algo.smartHiddenRemoval; New: algo.removeOccludedGeometriesAdvanced

  29. Change

    Previous: algo.smartHiddenSelection; New: algo.findOccludedPartOccurrencesAdvanced

  30. Change

    Previous: algo.smartOrient; New: algo.orientPolygonFacesAdvanced

  31. Change

    Previous: algo.uvUnwrap; New: algo.unwrapUV

  32. Change

    Previous: scene.findByActiveMaterial; New: scene.findPartOccurrencesByActiveMaterial

  33. Change

    Previous: scene.findByMetadataValue; New: scene.findOccurrencesByMetadataValue

  34. Change

    Previous: scene.findByMetadata; New: scene.findOccurrencesByMetadata

  35. Change

    Previous: scene.findByProperty; New: scene.findOccurrencesByProperty

  36. Change

    Previous: scene.getDuplicatedParts; New: scene.findDuplicatedPartOccurrences

  37. Change

    Previous: scene.getNodeName; New: scene.getOccurrenceName

  38. Change

    Previous: scene.getReferencers; New: scene.getDirectInstances

  39. Change

    Previous: scene.getUnstitchedFacesOccurrences; New: scene.findPartOccurrencesWithUnstitchedOpenShells

  40. Change

    Previous: scene.identifyInstances; New: scene.findPartOccurrencesByMinimumNumberOfInstances

  41. Change

    Previous: scene.mergeByRegions; New: scene.mergePartOccurrencesByRegions

  42. Change

    Previous: scene.mergeByTreeLevel; New: scene.mergeOccurrencesByTreeLevel

  43. Change

    Previous: scene.mergeFinalLevel; New: scene.mergePartOccurrencesByFinalAssemblies

  44. Change

    Previous: scene.mergeOpenShells; New: scene.mergePartOccurrencesWithSingleOpenShellByAssemblies

  45. Change

    Previous: scene.mergePartsByAssemblies; New: scene.mergePartOccurrencesByAssemblies

  46. Change

    Previous: scene.mergePartsByMaterials; New: scene.mergePartOccurrencesByMaterials

  47. Change

    Previous: scene.mergePartsByName; New: scene.mergePartOccurrencesByName

  48. Change

    Previous: scene.mergeParts; New: scene.mergePartOccurrences

  49. Change

    Previous: scene.selectByMaterial; New: scene.findOccurrencesByMaterial

  50. Change

    Previous: scene.selectByMaximumSize; New: scene.findPartOccurrencesByMaximumSize

  51. Change

    Previous: scene.selectByVisibleMaterial; New: scene.findPartOccurrencesByVisibleMaterial

  52. Change

    Previous: scene.selectDuplicated; New: scene.findDuplicatedPartOccurrences

  53. Change

    Previous: scene.selectInstances; New: scene.getInstances

  54. Change

    Previous: scene.selectPartOccurrencesInAABB; New: scene.findPartOccurrencesInAABB

  55. Change

    Previous: scene.selectPartOccurrencesInBox; New: scene.findPartOccurrencesInBox

  56. Change

    Previous: scene.selectVisibleParts; New: scene.getVisiblePartOccurrences

  57. Change

    Previous: polygonal.DressedPolyList; New: polygonal.SubmeshList

  58. Change

    Previous: polygonal.DressedPoly; New: polygonal.Submesh

  59. Change

    Previous: algo.SmartHiddenType; New: algo.InnerOuterOption

Pick your Unity version

Unity Releases compares releases against the version your project is on. Picking it now keeps Compare versions focused on what changes between where you are and where you might be going.