Transform - Normalize Metric

Normalize Metric repairs common flaws in object metrics in drawings. Objects in drawings are defined by their coordinates (see the Editing Objects topic). The sequence of coordinates that defines an object is called its metric.

Redundant linear features in areas are sequences of internal coordinates that jump from a given coordinate out to some other coordinate and then back to identically the same coordinate before continuing the sequence that defines the area object. A redundant point feature in a line is a repeated coordinate in the sequence defining the line.

Examples

The illustrations above show an area containing a redundant linear feature in the metric. The coordinate sequence defining the area jumps out from a particular coordinate and then back again to exactly the same coordinate. The "line" that appears to exist is a dimensionless phantom.

Normalize Metric will remove the two unnecessary coordinates (one outside the area and a redundant duplicate at the same location in the area boundary).

Optimization

Once Normalize Metric or Normalize Topology is run on an object, the object will be flagged within internal Manifold storage as clean. During future Normalize runs the process will skip examination and normalization of objects that are marked clean. If an object is subsequently modified (through editing by a user or by a script) the "clean" flag will be cleared so that the object will be examined by future passes of Normalize Metric. If the Location Precision property of a drawing is modified via the View - Properties - Precision dialog to a higher value (that is, a less demanding precision) then the "clean" flag for all objects will be cleared.

Because of the caching behavior of Normalize Metric, the amount of time required for the function will vary based on how many objects are been marked "clean." If the Location Precision has just been changed in a large drawing the function will take longer to run. If Normalize Metric has just been run (either explicitly or automatically as part of another transform), the function will run very rapidly since all objects will be marked "clean."

Automatic Normalization

Manifold maintains automatic cleaning of object metrics. Automatic normalization occurs for those transform operators that require clean object metrics. Before any such Transform toolbar operator begins operation, Normalize Metric automatically will be run on all objects that need to be cleaned.

The automatic normalization is an internal Manifold function that occurs whenever it is required during transform toolbar operation. Due to the caching behavior of Normalize Metric the amount of time for cleaning (if required) will vary depending on whether or not objects in the drawing are marked "clean" or not. A particular transform operator might run very rapidly and then just after Location Precision has been changed suddenly run much more slowly during the next run. The slower run occurs because all of the objects have had their "clean" flag cleared as a result of the precision change, so Normalize Metric will have more work to do for that run.

Differences between Normalize Topology and Normalize Metric

Both of these transform operators are used to produce a clean metric; however, the metric produced by Normalize Metric may be slightly different than that produced by Normalize Topology . The main difference between them is that Normalize Metric is run on a per-object basis while Normalize Topology is run on an object set as a whole.
When processing metrics Normalize Topology considers neighboring objects and Normalize Metric does not.

Examples:

·Normalize Topology will detect overlapping areas and will assign the region of overlap to one of the overlapping areas while clipping it from the others. In this same circumstance Normalize Metric will leave the overlaps.

·Normalize Topology will snap points to the nearest object (such as the end of a line) if the distance between the point and the object is less than the location precision. Normalize Metric will leave points unmoved.

·Normalize Topology will detect an intersection between two lines and will split the lines at the intersection. Normalize Metric will leave the lines unchanged.

·Normalize Topology will remove duplicate coordinates as well as other redundant coordinates. Normalize Metric will only remove duplicate coordinates.

Both Normalize Topology and Normalize Metric will remove duplicate coordinates, but Normalize Topology will also attempt to remove redundant coordinates. Normalize Topology will leave any redundant coordinates that are also coordinates in any other object. This is done to guarantee that a common border between any two adjacent objects is exactly the same in both objects. Note that Normalize Metric can not do the same since it operates only on single objects.

How should one choose between Normalize Topology and Normalize Metric? In most cases, we would like any adjustments to object metrics to proceed with the entire object set in mind so in most cases one would use Normalize Topology in preference to Normalize Metric.

When dealing with imported drawings that may contain specific features of the metric that are to be preserved, users will often choose to begin operations by running Normalize Topology. This will clean object metrics while preserving redundant coordinates that are co-located with other objects and it will mark all objects as having clean metrics. This avoids a situation where Manifold is compelled to run Normalize Metric even though we do not want it run.

If some other transform operator (such as Clip Intersect) is run on a drawing that has not been yet normalized with either Normalize function Manifold has no choice but to run Normalize Metric to guarantee a clean metric. By running Normalize Topology first we pre-empt the running of Normalize Metric by other transforms in self-defense. The main reason for running Normalize Topology first is to prevent the deletion of redundant coordinates that are co-located with other objects. A secondary (rare) reason is to prevent redundant coordinates from being deleted when we are working at a location precision that may cause coordinates to be judged "redundant" that are really needed to prevent gaps from emerging between formerly adjacent objects.

Why do the other transform operators run Normalize Metric instead of Normalize Topology if objects need cleaning before processing? Transform operators are frequently run on subsets of objects. If Normalize Topology were used automatically the usual workflow of running transforms on subsets of objects would quickly lead to a clustered drawing, different parts of which have been normalized with respect to different sets of objects. That would defeat the global normalization that is usually a key objective of Normalize Topology.

To summarize, when in doubt run Normalize Topology once before running other transforms. This can be very time consuming for large drawings, but it is a prudent and necessary step experts will take if they wish to preserve specific metrics.