General
This article describes the internal collection logic, processing flow, and advanced configuration of the Autodesk Forma Source Module.
For general overview, see: [CROSS-REFERENCE: Autodesk Forma Source Module Overview]
For setup instructions, see: [CROSS-REFERENCE: Autodesk Forma Source Client Setup]
Collection Flow
The module processes data in the following sequence:
- Initialize connection and configuration
- Traverse source folder structure recursively
- Collect folders, files, and versions
- Retrieve metadata and custom attributes
- Apply filtering rules
- Download file content
- Create transaction
Folder Traversal
The module starts from the configured root folder and:
- Recursively navigates subfolders
- Builds structure articles for each folder
- Maintains parent-child relationships
File and Version Collection
For each file:
- Identifies available versions
- Applies version collection settings
- Creates document articles per file or version
Metadata Handling
The module collects:
- Folder metadata
- File metadata
- Parent references
- Timestamps
- Version-specific data
- Custom attributes
This data is included in the transaction for downstream processing.
Filtering Logic
Extension Filtering
- Excludes files based on configured extensions
- Applied early in the process
Checksum Filtering
- Compares current files with previously processed versions
- Skips unchanged content
This reduces redundant processing and improves efficiency.
Transaction Creation
During collection:
- Structure articles represent folders
- Document articles represent files and versions
The transaction is built incrementally and finalized after collection.
Execution Behavior
Manual Execution
- Triggered via Create Transaction
- Requires user confirmation
- Locks UI during execution
Scheduled Execution
- Controlled by Task Scheduler
- Runs automatically based on configuration
Throttling Handling
The module must handle Autodesk API rate limits.
Behavior
- Requests may be delayed or retried
- Temporary failures may occur
Mitigation
- Enable client-side rate limiting
- Reduce collection size
- Optimize scheduling
Logging and Monitoring
Throughout execution, the module logs:
- Progress updates
- Warnings
- Errors
The History view provides visibility into:
- Active runs
- Completed collections
- Issues encountered
Process Completion
After collection:
- Data is finalized
- Transaction is created
- Transaction is sent to Integrator
- Further workflows process the data