InStep Studio


Automatic Feature Detection: Using the Features - Tab & Options

Time to read: ~4 min

The Features Tab is used to perform detection and conversion of geometric shapes. This is applicable to bodies that originate from applications where they were generated based on clearly defined parameters or similar. If the data originates from 3D scans it may be possible to use these tools too, but due to noise being introduced, chances are that the features are not going to be accurately detected.
If the source of the data is from a modeling tool (or scanner) that defines highly organic shapes (i.e. not geometric such as faces, animals or similar) then it is likely that the tool will not find any reasonable amount of geometry to replace the data with - as there is none...

The image below shows a typical use scenario where some block has been defined with different cylindrical and planar features such as cylinders, holes, cones, etc. With such data, the application can reverse-generate the underlying geometries and replace the data, making it far more compact:

Image of body with facetted but geometric shapes
Facetted Body defining cylindrical, conical and planar shapes

By performing an automatic detection and conversion of the data, the original facets are replaced with a geometry-based definition:

Image of body with geometric shapes extracted
Feature based BRep model

Here all surfaces - whether cylindrical, conical, circular or of flat polygonal shape - are redefined which reduces the original number of facets from 4,586 down to 70.
The following items explain the tools available on this tab-page:

Auto Button in Features Auto

The Auto button performs automatic detection and conversion of all features selected in the Options below:

Tolerance Method
Some of the detections require that a tolerance is provided by which 'close' items can be detected. Possible values are Edge Length, Absolute or Body Size.
Edge length (Default) uses a factor (Tolerance Value) of the local-minimum edge length as the tolerance value.
Absolute directly defines the tolerance value.
Body Size obtains the tolerance as a factor of the total size of the body.
Normal Deviation
This sets the amount of tolerance to allow between facets that are to be considered parallel.
Quad Quality
This value refers to a Quality Metric calculated for Quadrilateral elements. If they have a value below this, they are not considered. This is intended to allow only items that are close to a square/rectangle to be considered as such rather than items that are otherwise better left as triangles.
Find 'X' Checkboxes
Each type of shape can be optionally ignored if the process either is unlikely to find them or is not performing well.

Preview Button in Features Preview

The Preview button performs the detection of features but does not perform the conversion (see Apply below). Items that belong to or are identified as certain geometric features are then grouped and displayed with the option to show/hide different types. This allows validation that process is correctly identifying the shapes contained in the data.

Apply Button in Features Apply

If the detection correctly identified the features of interest, clicking Apply then performs the conversion of the underlying triangles to the respective geometric feature identified. As with all processes, if there is a very large amount of data, it may take some time to complete.

Cancel Button in Features Cancel

If the detection of features does not complete as intended, the data can be removed/cleared by clicking the Cancel button. This clears the associations that identify groups of triangles as features and the process can be repeated after changing parameter options to perhaps better identify the shapes.

Undo Button in Features Undo

If the Settings are enabling data storage for an Undo operation and Feature conversion has taken place, it is possible to revert the data to the previous state.
It should be mentioned that, especially for very large bodies, the process of generating and storing undo data can be very time and resource consuming and disabling the Undo option may be preferred in those cases.


Feature detection is based on an approach that attempts to replace facetted data with geometric shapes. The underlying assumptions are that there is a close resemblance (within tolerance values) of the collective sets of facets with the geometric shape. If there is a large amount of 'noise' (i.e. random deviation introduced due to rounding or inaccuracies due to the measurement methods of a scanner), then there is a reduced chance that those features can be deduced from the available data.
It is our intention of continuing the development of reverse-engineering data to better fit generalized shapes such as those currently supported but this process is not trivial to implement.