Recognizing 3D Primitives (Automatic Generation)

Use Automatic 3D Primitive Recognition to automatically recognize and generate 3D primitives from a cloud of points.

Recommendation: In Automatic 3D Primitive Recognition,
  • The diameter range influences the recognition of cylinders, enabling you to specify that range according to your focus.
  • The contributing points are filtered from the cloud, thus revealing progressively the details in the remaining cloud.
As a consequence, rather than starting a global recognition, consider the following sequence of actions. They take advantage of the above, and make recognitions easier and more efficient.
  • Start with the identification of the large and dense planes (namely the floors and walls if you work on a building): Set the minimum number of points (Min. nb of Pts) to a high value.
  • In a second step, focus on dense cylinders with big diameters: Set a minimum number of points to an appropriate high value and the diameter range at a high end.
  • Continue working with remaining cylinders: Progressively decrease the diameter range and, if required, the minimum number of points.
  • Lastly, focus on remaining planes with a smaller number of contributing points.

  1. From the Surface Reconstruction section of the action bar, click Automatic 3D Primitive Recognition .
  2. Select a cloud of points.
  3. Select the type of primitive to generate.
  4. Adjust the deviation (Maximum distance between the generated primitive and the points contributing to this primitive).
  5. Enter the minimum number of points contributing to the primitive.
  6. For cylinders, enter the minimum and maximum diameters.
  7. Press Preview.
  8. Move the cursor over a previewed primitive.
    The properties of the primitive are displayed.
  9. Right-click to discard selected primitive.
  10. Use Hide/Show selected cloud and Hide/Show created primitives to verify the result.
  11. If the preview is not satisfactory, repeat with other parameters values.
    A new preview is computed and replaces the previous one.
  12. Once the preview is satisfactory, validate it.
    • The recognized primitives are generated in the tree and named after the type of primitives.
    • The points that were not used to create primitives are gathered in a cloud of points named UnusedCloud. At validation or exit, UnusedCloud inherits the color of the initial points.
  13. Move the cursor over a primitive to display its handles and edit it.
  14. Right-click a primitive to delete it.
  15. Optional: Repeat the process on UnusedCloud, using other parameters values.
  16. Select the type of output.
    • Features (Default option). One feature is created for each recognized primitive. The features are gathered under the name of the primitive type.
    • Meshes. One mesh is generated from all the contributing points of each recognized primitive.
      Warning: Before selecting this option, be aware that such a mesh can contain several millions of points, for example when generated from a floor.
      The meshes inherit the color of the contributing points. The meshes are gathered under the name of the primitive type.
  17. Validate to exit and create the generated primitives and UnusedCloud.