I’m using Syside Modeler with Tom Sawyer visualization and encountering an issue where redefined features display as generic <> instead of showing their actual types.
Minimal Example
Library definition:
package Library {
part def ‘Brewing System’ { /* … */ }
part def ‘Coffee Maker’ {
part brewing : ‘Brewing System’;
}
}
Design usage:
package Design {
import Library::*;
part coffee_maker : ‘Coffee Maker’ {
part redefines brewing : ‘Brewing System’ {
// parameterize nested attributes
}
}
}
Expected Behavior
When visualizing coffee_maker, the child brewing should display as type ‘Brewing System’ (and then I would ideally be able to expand and show children)
Actual Behavior
The visualization shows brewing as a generic <<part>> with no type information. The library definitions visualize correctly when viewed directly.
What I’ve Tried
- Adding explicit type to redefinition:
part redefines brewing : ‘Brewing System’— no change - Verified model parses correctly with
syside check - Confirmed the semantic model is correct (cost calculations using the nested structure work)
Questions
- Am I missing something here? (Highly likely)
- Is this a known limitation of Tom Sawyer’s handling of redefines?
- Is there a setting or workaround to display inherited/redefined types?
- Are there plans to support type resolution for redefined features in future versions?
Per the KerML spec, my understanding is that the /type property for redefined features is derived rather than explicit, but I would expect the visualization to resolve this.
