Iteration and revision solve two different but closely related problems in product data management. Understanding how they work, and when to use each, helps teams keep product data clean, traceable, and easy to collaborate on.
Revision: a formal, traceable change
A revision represents a meaningful, approved change to an object. Revisions are typically created when something is ready to move forward in its lifecycle, for example from Draft to Released.
Key characteristics of revisions
- Revisions are sequential and intentional.
- Each revision represents a new baseline of the object.
- Revisions are used for traceability, approvals, and historical comparison.
- Revisions can affect relationships between objects, including updating existing relations or creating new ones based on relationship rules.
- Not every object type supports revisions.
If an object type is marked as revisable, users can create new revisions of that object.
You can see all revisions of an object in the Relations pane → Revisions tab.
How revisions affect relations
In the platform, relations are revision-aware. This means that creating a new revision can impact how objects are connected.
When a new revision is created:
- Existing relations may be updated to point to the latest revision of the object.
- New relations may be created automatically, depending on relationship rules and object context.
- Downstream structures such as BOMs or reference chains can reflect the new revision automatically.
- This allows the system to keep structures aligned with the most up-to-date approved data and relationship logic.
This behavior makes revisions suitable for controlled, structural changes where relationships must evolve together with the object.
Iteration: work-in-progress changes
An iteration represents incremental progress within a single revision. Iterations capture ongoing edits without creating a new formal version.
Key characteristics of iterations
- Iterations are lightweight and frequent.
- They represent work-in-progress updates.
- Multiple iterations can belong to the same revision.
- Iterations do not change the revision identity.
- Iterations do not affect relations.
If an object type is marked as iterable, users can create iterations for that object.
You can see all iterations that belong to a specific revision in the Relations pane → Iterations tab.
The Iterations tab is only visible for object types that are iterable.
Why iterations do not affect relations
Iterations are intentionally isolated from relation logic.
When an iteration is created:
- All relations remain unchanged.
- Structures continue to reference the same revision.
- No downstream impact is triggered.
This makes iterations ideal for drafting, editing, and collaboration without the risk of unintentionally changing connected data.
Type flags: revisable and iterable
Each object type defines how it behaves using two flags:
- Revisable: allows creation of new revisions and enables relation updates or creation when a new revision is created.
- Iterable: allows creation of iterations within a revision without affecting relations.
Based on these flags, object types fall into the following categories:
1. Revisable and iterable
These types support both formal revisions and work-in-progress iterations.
Revisions may update or create relations based on relationship rules, while iterations never do.
2. Only revisable
These types allow revisions but do not track iterations.
Changes are captured directly as new revisions and may update or create relations.
Most object types fall into this category.
3. Neither revisable nor iterable
These types are static and single-version.
They do not support revisions or iterations, and their relations remain unchanged over time.
Common examples of iterable types
Typical iterable object types include:
- Item
- Document
- Drawing
For documents, iterations can also be created automatically during the check-in process, allowing frequent updates without triggering relation changes or new revisions.
How they work together in practice
A common workflow looks like this:
- A revision is created to represent a formal version.
- Multiple iterations are created as users work and refine the data.
- Relations remain stable throughout iteration.
- When the work is complete and approved, a new revision is created.
- Relations may update or new relations may be created to reflect the latest revision.
- The cycle repeats for the next change.
Why this distinction matters
Separating iteration from revision:
- Protects structures and relationships during active work.
- Keeps revision history meaningful and intentional.
- Reduces accidental downstream changes.
- Supports collaboration without losing control.
By defining object types with the right combination of revisable and iterable flags, the platform balances flexibility for daily work with strong governance for released data.