Based on painful lessons learned, here’s my perspective on custom annotation extensions versus standard markup tools:
Out-of-the-Box Markup Tools Should Be Your Foundation
Aras 14.0’s standard viewer includes comprehensive markup capabilities that handle most collaboration scenarios:
- Text annotations with formatting options
- Dimension measurements with automatic calculations
- Geometric markup (arrows, clouds, rectangles, freehand)
- Snapshot annotations capturing specific views
- Markup persistence across CAD file revisions
- Markup visibility controls and filtering
- Export markup to PDF for offline review
These tools are optimized for performance, fully supported through upgrades, and integrate seamlessly with Aras workflows and change management.
Upgrade Impact of Custom Viewer Extensions
Custom annotation extensions carry significant upgrade risk:
- Viewer technology stack updates frequently (WebGL, JavaScript frameworks, rendering engines)
- Custom JavaScript injected into viewer context breaks when viewer architecture changes
- Viewer API changes between major versions often require extension refactoring
- Custom markup formats may become incompatible with newer viewer versions
- Testing custom extensions across viewer updates is time-consuming and error-prone
Our custom annotation extensions in Aras 11 broke completely during the 11 to 13 upgrade when Aras transitioned to a new viewer architecture. We spent two months rewriting extensions that standard markup would have handled automatically.
Safe Customization Patterns
If you must extend annotation functionality, follow these safe patterns:
-
Server-Side Markup Processing: Extract and process markup data on the server without modifying viewer code. The viewer stores annotations in documented XML format that you can parse, analyze, and integrate with other systems.
-
Workflow Integration: Build custom workflows that react to markup events (annotation created, markup approved, review completed) rather than customizing the viewer itself.
-
Documented Extension Points: Use only officially documented viewer APIs and extension mechanisms. Avoid direct DOM manipulation or injection of custom JavaScript into viewer frames.
-
Markup Templates via Configuration: Create annotation templates as saved markup sets stored in Aras items. Users can load templates into standard viewer rather than requiring custom viewer code.
Addressing Your Specific Requirements:
Measurement Annotations: Aras 14.0’s OOB dimension tools provide automatic calculations. Test whether these meet your needs before custom development.
Annotation Templates: Implement templates as saved Markup items that users can load into the viewer. Create a library of common review comments stored as standard markup that can be applied to any CAD file. This avoids viewer customization entirely.
ECR Integration: Build server-side integration that monitors markup activity and creates change requests based on annotation content. Parse the standard markup XML format to extract issue descriptions, locations, and reviewer comments. This integration approach keeps the viewer completely standard while providing the workflow automation you need.
Practical Recommendation:
Start with OOB markup tools and build integration logic around them. Create annotation templates as reusable Markup items, implement server-side processing for ECR creation, and use standard workflow to orchestrate the review process. Only consider custom viewer extensions if you have requirements that absolutely cannot be met through standard markup plus server-side integration.
The upgrade safety, long-term maintainability, and reduced testing burden of standard markup tools far outweigh the short-term appeal of custom annotation features. Every viewer customization is technical debt that compounds with each Aras upgrade.