Export Scene To Reflect
Unity Reflect is a solution provided by Unity Technologies to stream 3D data from some 3rd party 3D solutions, like Revit or Navisworks.
Pixyz Studio is also an option, unlocking access to dozens more CAD & 3D formats for Reflect.
By a click of a button, you can push the meshes contained in an open Pixyz Studio scene to Reflect and Unity, where you will be able to create on top some incredible virtual experiences, for collaboration purposes or on-site visualization, for example.
WARNING Unity Reflect being available as a Preview, the "Export Scene To Reflect" feature is also available as a preview in Pixyz Studio 2020.2 (and tagged as "Experimental"), and might show unexpected behavior.
What 3D information can be exported?
When exporting a 3D model from Pixyz Studio to Unity Reflect, there are some restriction regarding what type of 3D information can be exported:
- Only the Part occurrences (or Parts) contained in the Pixyz Studio scene are exported to Unity Reflect. The Product Structure is not exported, and Parts' transformations are "frozen".
- Only the meshes (tessellated geometries) contained in a Part are exported. Other geometries like BRep surfaces, edges/polylines and points are not exported.
- A mesh is exported along with the following attributes: normals, UVs. Tangents and binormals are not exported.
- All materials applied to a Part (as a Material Property, applied to its patches or inherited from a parent) are exported, and converted to PBR materials
- Point Clouds and animations are not exported
NOTE Transparency is not supported yet in the Unity Reflect viewer: this information will be lost (also when contained in a texture). Roughness/Metalness is also not properly handled by Unity Reflect viewer for the moment, causing reflection issues.
Which Parts are exported ?
By default, all the Parts from the current Pixyz Studio scene are exported.
If you wish to export only a fraction of your scene, you need to specify a "Root" occurrence. All the Parts children of this "Root" occurrence will be exported.
A selection of multiple Parts cannot be exported as is, a "Root" needs to be specified.
The export is currently push-only and does not support syncing. By default, the export towards Unity Reflect will create new assets in the Unity Reflect Project.
For each export process (or "push") to Unity Reflect, a "Source Name" can be specified to identify the push to Unity Reflect (see how below).
If the "Source Name" is unique, the Parts will be added to the Unity Reflect project.
If the "Source Name" already exists, all the Parts exported previously within a push with the same "Source Name" will be deleted and replaced by the new Parts.
WARNING If a "Source Name" is not specified, Unity Reflect will use the string "unnamed" as the "Source Name". Which means if you never specify a "Source Name", all Parts exported from previous steps will always be replaced by the newly pushed Parts.
A previous push can be deleted from the Unity Reflect dashboard when prompted:
To export the meshes to Unity Reflect from Pixyz Studio, follow these steps:
Install Unity Reflect (more information about Unity Reflect setup here).
Go the File Menu, and chose "Export Scene To Reflect", a dialog box opens:
In the "Source Name" field, you can specify a name to identify the "push" to Unity Reflect you are about to make through the Unity Reflect Dashboard.
Press "Execute", an Information dialog appears:
Synchronously, a Unity Reflect window pops (providing Unity Reflect is installed and up to date, with a valid license).
In the Unity Reflect window, define to which project you want to push the meshes.
Select a project and click "Start": the export of meshes actually starts (but Unity Reflect Viewer is not launched though).
Back in Pixyz Studio, when the export is finished, the "Output" panel logs the execution time:
The Information dialog needs to be manually closed.
Launch Unity Reflect Viewer (or a Unity project) to interact with the meshes pushed at the previous step.
API function parameters
Check the API documentation page to learn how to use this function in Python code: