Models
Reference for the consumer-facing types in the StoryCADLib.Models namespace.
CharacterModel
Class: StoryCADLib.Models.CharacterModel
public class CharacterModel : StoryElement
Constructors
CharacterModel(StoryModel, StoryNodeItem)
public CharacterModel(StoryModel model, StoryNodeItem node)
Parameters
model(StoryModel)node(StoryNodeItem)
CharacterModel(string, StoryModel, StoryNodeItem)
public CharacterModel(string name, StoryModel model, StoryNodeItem Node)
Parameters
name(string)model(StoryModel)Node(StoryNodeItem)
CharacterModel()
public CharacterModel()
Properties
Role
[JsonInclude]
[JsonPropertyName("Role")]
public string Role { get; set; }
Type string
StoryRole
[JsonInclude]
[JsonPropertyName("StoryRole")]
public string StoryRole { get; set; }
Type string
Archetype
[JsonInclude]
[JsonPropertyName("Archetype")]
public string Archetype { get; set; }
Type string
Age
[JsonInclude]
[JsonPropertyName("Age")]
public string Age { get; set; }
Type string
Sex
[JsonInclude]
[JsonPropertyName("Sex")]
public string Sex { get; set; }
Type string
Eyes
[JsonInclude]
[JsonPropertyName("Eyes")]
public string Eyes { get; set; }
Type string
Hair
[JsonInclude]
[JsonPropertyName("Hair")]
public string Hair { get; set; }
Type string
Weight
[JsonInclude]
[JsonPropertyName("Weight")]
public string Weight { get; set; }
Type string
CharHeight
[JsonInclude]
[JsonPropertyName("CharHeight")]
public string CharHeight { get; set; }
Type string
Build
[JsonInclude]
[JsonPropertyName("Build")]
public string Build { get; set; }
Type string
Complexion
[JsonInclude]
[JsonPropertyName("Complexion")]
public string Complexion { get; set; }
Type string
Race
[JsonInclude]
[JsonPropertyName("Race")]
public string Race { get; set; }
Type string
Nationality
[JsonInclude]
[JsonPropertyName("Nationality")]
public string Nationality { get; set; }
Type string
Health
[JsonInclude]
[JsonPropertyName("Health")]
public string Health { get; set; }
Type string
PhysNotes
[JsonInclude]
[JsonPropertyName("PhysNotes")]
public string PhysNotes { get; set; }
Type string
Appearance
[JsonInclude]
[JsonPropertyName("Appearance")]
public string Appearance { get; set; }
Type string
RelationshipList
[JsonInclude]
[JsonPropertyName("RelationshipList")]
public List<RelationshipModel> RelationshipList { get; set; }
Type List<RelationshipModel>
Economic
[JsonInclude]
[JsonPropertyName("Economic")]
public string Economic { get; set; }
Type string
Education
[JsonInclude]
[JsonPropertyName("Education")]
public string Education { get; set; }
Type string
Ethnic
[JsonInclude]
[JsonPropertyName("Ethnic")]
public string Ethnic { get; set; }
Type string
Religion
[JsonInclude]
[JsonPropertyName("Religion")]
public string Religion { get; set; }
Type string
Enneagram
[JsonInclude]
[JsonPropertyName("Enneagram")]
public string Enneagram { get; set; }
Type string
Intelligence
[JsonInclude]
[JsonPropertyName("Intelligence")]
public string Intelligence { get; set; }
Type string
Values
[JsonInclude]
[JsonPropertyName("Values")]
public string Values { get; set; }
Type string
Abnormality
[JsonInclude]
[JsonPropertyName("Abnormality")]
public string Abnormality { get; set; }
Type string
Focus
[JsonInclude]
[JsonPropertyName("Focus")]
public string Focus { get; set; }
Type string
PsychNotes
[JsonInclude]
[JsonPropertyName("PsychNotes")]
public string PsychNotes { get; set; }
Type string
Adventureousness
[JsonInclude]
[JsonPropertyName("Adventureousness")]
public string Adventureousness { get; set; }
Type string
Aggression
[JsonInclude]
[JsonPropertyName("Aggression")]
public string Aggression { get; set; }
Type string
Confidence
[JsonInclude]
[JsonPropertyName("Confidence")]
public string Confidence { get; set; }
Type string
Conscientiousness
[JsonInclude]
[JsonPropertyName("Conscientiousness")]
public string Conscientiousness { get; set; }
Type string
Creativity
[JsonInclude]
[JsonPropertyName("Creativity")]
public string Creativity { get; set; }
Type string
Dominance
[JsonInclude]
[JsonPropertyName("Dominance")]
public string Dominance { get; set; }
Type string
Enthusiasm
[JsonInclude]
[JsonPropertyName("Enthusiasm")]
public string Enthusiasm { get; set; }
Type string
Assurance
[JsonInclude]
[JsonPropertyName("Assurance")]
public string Assurance { get; set; }
Type string
Sensitivity
[JsonInclude]
[JsonPropertyName("Sensitivity")]
public string Sensitivity { get; set; }
Type string
Shrewdness
[JsonInclude]
[JsonPropertyName("Shrewdness")]
public string Shrewdness { get; set; }
Type string
Sociability
[JsonInclude]
[JsonPropertyName("Sociability")]
public string Sociability { get; set; }
Type string
Stability
[JsonInclude]
[JsonPropertyName("Stability")]
public string Stability { get; set; }
Type string
Notes
[JsonInclude]
[JsonPropertyName("Notes")]
public string Notes { get; set; }
Type string
TraitList
[JsonInclude]
[JsonPropertyName("TraitList")]
public List<string> TraitList { get; set; }
Type List<string>
Flaw
[JsonInclude]
[JsonPropertyName("Flaw")]
public string Flaw { get; set; }
Type string
BackStory
[JsonInclude]
[JsonPropertyName("BackStory")]
public string BackStory { get; set; }
Type string
FolderModel
Class: StoryCADLib.Models.FolderModel
public class FolderModel : StoryElement
Constructors
FolderModel(string, StoryModel, StoryItemType, StoryNodeItem)
public FolderModel(string name, StoryModel model, StoryItemType type, StoryNodeItem Node)
Parameters
name(string)model(StoryModel)type(StoryItemType)Node(StoryNodeItem)
FolderModel()
Json constructor
public FolderModel()
OverviewModel
Class: StoryCADLib.Models.OverviewModel
OverviewModel contains overview information for the entire story, such as title, author, and so on. It’s a good place to capture the original idea which prompted the story. There is only one OverviewModel instance for each story. It’s also the root of the Shell Page’s StoryExplorer TreeView.
public class OverviewModel : StoryElement
Constructors
OverviewModel(string, StoryModel, StoryNodeItem)
public OverviewModel(string name, StoryModel model, StoryNodeItem Node)
Parameters
name(string)model(StoryModel)Node(StoryNodeItem)
OverviewModel()
JSON Constructor.
public OverviewModel()
Properties
DateCreated
[JsonInclude]
[JsonPropertyName("DateCreated")]
public string DateCreated { get; set; }
Type string
Author
[JsonInclude]
[JsonPropertyName("Author")]
public string Author { get; set; }
Type string
DateModified
[JsonInclude]
[JsonPropertyName("DateModified")]
public string DateModified { get; set; }
Type string
Concept
[JsonInclude]
[JsonPropertyName("Concept")]
public string Concept { get; set; }
Type string
StoryProblem
[JsonInclude]
[JsonPropertyName("StoryProblem")]
public Guid StoryProblem { get; set; }
Type Guid
Premise
[JsonInclude]
[JsonPropertyName("Premise")]
public string Premise { get; set; }
Type string
StoryType
[JsonInclude]
[JsonPropertyName("StoryType")]
public string StoryType { get; set; }
Type string
StoryGenre
[JsonInclude]
[JsonPropertyName("StoryGenre")]
public string StoryGenre { get; set; }
Type string
Viewpoint
[JsonInclude]
[JsonPropertyName("Viewpoint")]
public string Viewpoint { get; set; }
Type string
ViewpointCharacter
[JsonInclude]
[JsonPropertyName("ViewpointCharacter")]
public Guid ViewpointCharacter { get; set; }
Type Guid
Voice
[JsonInclude]
[JsonPropertyName("Voice")]
public string Voice { get; set; }
Type string
LiteraryDevice
[JsonInclude]
[JsonPropertyName("LiteraryDevice")]
public string LiteraryDevice { get; set; }
Type string
Tense
[JsonInclude]
[JsonPropertyName("Tense")]
public string Tense { get; set; }
Type string
Style
[JsonInclude]
[JsonPropertyName("Style")]
public string Style { get; set; }
Type string
StructureNotes
[JsonInclude]
[JsonPropertyName("StructureNotes")]
public string StructureNotes { get; set; }
Type string
Tone
[JsonInclude]
[JsonPropertyName("Tone")]
public string Tone { get; set; }
Type string
Notes
[JsonInclude]
[JsonPropertyName("Notes")]
public string Notes { get; set; }
Type string
ProblemModel
Class: StoryCADLib.Models.ProblemModel
public class ProblemModel : StoryElement
Constructors
ProblemModel(StoryModel, StoryNodeItem)
public ProblemModel(StoryModel model, StoryNodeItem Node)
Parameters
model(StoryModel)Node(StoryNodeItem)
ProblemModel(string, StoryModel, StoryNodeItem)
public ProblemModel(string name, StoryModel model, StoryNodeItem Node)
Parameters
name(string)model(StoryModel)Node(StoryNodeItem)
ProblemModel()
public ProblemModel()
Properties
ProblemType
[JsonInclude]
[JsonPropertyName("ProblemType")]
public string ProblemType { get; set; }
Type string
ConflictType
[JsonInclude]
[JsonPropertyName("ConflictType")]
public string ConflictType { get; set; }
Type string
ProblemCategory
[JsonInclude]
[JsonPropertyName("ProblemCategory")]
public string ProblemCategory { get; set; }
Type string
Subject
[JsonInclude]
[JsonPropertyName("Subject")]
public string Subject { get; set; }
Type string
ProblemSource
[JsonInclude]
[JsonPropertyName("ProblemSource")]
public string ProblemSource { get; set; }
Type string
Protagonist
[JsonInclude]
[JsonPropertyName("Protagonist")]
public Guid Protagonist { get; set; }
Type Guid
ProtGoal
[JsonInclude]
[JsonPropertyName("ProtGoal")]
public string ProtGoal { get; set; }
Type string
ProtMotive
[JsonInclude]
[JsonPropertyName("ProtMotive")]
public string ProtMotive { get; set; }
Type string
ProtConflict
[JsonInclude]
[JsonPropertyName("ProtConflict")]
public string ProtConflict { get; set; }
Type string
Antagonist
[JsonInclude]
[JsonPropertyName("Antagonist")]
public Guid Antagonist { get; set; }
Type Guid
AntagGoal
[JsonInclude]
[JsonPropertyName("AntagGoal")]
public string AntagGoal { get; set; }
Type string
AntagMotive
[JsonInclude]
[JsonPropertyName("AntagMotive")]
public string AntagMotive { get; set; }
Type string
AntagConflict
[JsonInclude]
[JsonPropertyName("AntagConflict")]
public string AntagConflict { get; set; }
Type string
Outcome
[JsonInclude]
[JsonPropertyName("Outcome")]
public string Outcome { get; set; }
Type string
Method
[JsonInclude]
[JsonPropertyName("Method")]
public string Method { get; set; }
Type string
Theme
[JsonInclude]
[JsonPropertyName("Theme")]
public string Theme { get; set; }
Type string
Premise
[JsonInclude]
[JsonPropertyName("Premise")]
public string Premise { get; set; }
Type string
Notes
[JsonInclude]
[JsonPropertyName("Notes")]
public string Notes { get; set; }
Type string
StructureTitle
Name of StructureBeatsModel used in structure tab
[JsonInclude]
[JsonPropertyName("StructureTitle")]
public string StructureTitle { get; set; }
Type string
StructureDescription
Description of StructureBeatsModel used in structure tab
[JsonInclude]
[JsonPropertyName("StructureDescription")]
public string StructureDescription { get; set; }
Type string
StructureBeats
Beat nodes of the structure
[JsonInclude]
[JsonPropertyName("StructureBeats")]
public ObservableCollection<StructureBeatViewModel> StructureBeats { get; set; }
Type ObservableCollection<StructureBeatViewModel>
BoundStructure
A problem cannot be bound to more than one structure
[JsonInclude]
[JsonPropertyName("BoundStructure")]
public string BoundStructure { get; set; }
Type string
RelationshipModel
Class: StoryCADLib.Models.RelationshipModel
public class RelationshipModel
Constructors
RelationshipModel(Guid, string)
public RelationshipModel(Guid partnerUuid, string type)
Parameters
partnerUuid(Guid)type(string)
RelationshipModel()
public RelationshipModel()
Fields
CharVM
[JsonIgnore]
public readonly CharacterViewModel CharVM
Type CharacterViewModel
Properties
Partner
[JsonIgnore]
public StoryElement Partner { get; set; }
Type StoryElement
PartnerUuid
[JsonInclude]
[JsonPropertyName("PartnerUuid")]
public Guid PartnerUuid { get; set; }
Type Guid
RelationType
[JsonInclude]
[JsonPropertyName("RelationType")]
public string RelationType { get; set; }
Type string
Trait
[JsonInclude]
[JsonPropertyName("Trait")]
public string Trait { get; set; }
Type string
Attitude
[JsonInclude]
[JsonPropertyName("Attitude")]
public string Attitude { get; set; }
Type string
Notes
[JsonInclude]
[JsonPropertyName("Notes")]
public string Notes { get; set; }
Type string
SceneModel
Class: StoryCADLib.Models.SceneModel
public class SceneModel : StoryElement
Constructors
SceneModel(StoryModel, StoryNodeItem)
public SceneModel(StoryModel model, StoryNodeItem Node)
Parameters
model(StoryModel)Node(StoryNodeItem)
SceneModel(string, StoryModel, StoryNodeItem)
public SceneModel(string name, StoryModel model, StoryNodeItem Node)
Parameters
name(string)model(StoryModel)Node(StoryNodeItem)
SceneModel()
public SceneModel()
Properties
SceneDescription
[JsonInclude]
[JsonPropertyName("Description")]
public string SceneDescription { get; set; }
Type string
ViewpointCharacter
[JsonInclude]
[JsonPropertyName("ViewpointCharacter")]
public Guid ViewpointCharacter { get; set; }
Type Guid
Date
[JsonInclude]
[JsonPropertyName("Date")]
public string Date { get; set; }
Type string
Time
[JsonInclude]
[JsonPropertyName("Time")]
public string Time { get; set; }
Type string
Setting
[JsonInclude]
[JsonPropertyName("Setting")]
public Guid Setting { get; set; }
Type Guid
SceneType
[JsonInclude]
[JsonPropertyName("SceneType")]
public string SceneType { get; set; }
Type string
CastMembers
[JsonInclude]
[JsonPropertyName("CastMembers")]
public List<Guid> CastMembers { get; set; }
Type List<Guid>
Protagonist
[JsonInclude]
[JsonPropertyName("Protagonist")]
public Guid Protagonist { get; set; }
Type Guid
ProtagEmotion
[JsonInclude]
[JsonPropertyName("ProtagEmotion")]
public string ProtagEmotion { get; set; }
Type string
ProtagGoal
[JsonInclude]
[JsonPropertyName("ProtagGoal")]
public string ProtagGoal { get; set; }
Type string
Antagonist
[JsonInclude]
[JsonPropertyName("Antagonist")]
public Guid Antagonist { get; set; }
Type Guid
AntagEmotion
[JsonInclude]
[JsonPropertyName("AntagEmotion")]
public string AntagEmotion { get; set; }
Type string
AntagGoal
[JsonInclude]
[JsonPropertyName("AntagGoal")]
public string AntagGoal { get; set; }
Type string
Opposition
[JsonInclude]
[JsonPropertyName("Opposition")]
public string Opposition { get; set; }
Type string
Outcome
[JsonInclude]
[JsonPropertyName("Outcome")]
public string Outcome { get; set; }
Type string
ScenePurpose
[JsonInclude]
[JsonPropertyName("ScenePurpose")]
public List<string> ScenePurpose { get; set; }
Type List<string>
ValueExchange
[JsonInclude]
[JsonPropertyName("ValueExchange")]
public string ValueExchange { get; set; }
Type string
Events
[JsonInclude]
[JsonPropertyName("Events")]
public string Events { get; set; }
Type string
Consequences
[JsonInclude]
[JsonPropertyName("Consequences")]
public string Consequences { get; set; }
Type string
Significance
[JsonInclude]
[JsonPropertyName("Significance")]
public string Significance { get; set; }
Type string
Realization
[JsonInclude]
[JsonPropertyName("Realization")]
public string Realization { get; set; }
Type string
Emotion
[JsonInclude]
[JsonPropertyName("Emotion")]
public string Emotion { get; set; }
Type string
NewGoal
[JsonInclude]
[JsonPropertyName("NewGoal")]
public string NewGoal { get; set; }
Type string
Review
[JsonInclude]
[JsonPropertyName("Review")]
public string Review { get; set; }
Type string
Notes
[JsonInclude]
[JsonPropertyName("Notes")]
public string Notes { get; set; }
Type string
SettingModel
Class: StoryCADLib.Models.SettingModel
public class SettingModel : StoryElement
Constructors
SettingModel(StoryModel, StoryNodeItem)
public SettingModel(StoryModel model, StoryNodeItem node)
Parameters
model(StoryModel)node(StoryNodeItem)
SettingModel(string, StoryModel, StoryNodeItem)
public SettingModel(string name, StoryModel model, StoryNodeItem Node)
Parameters
name(string)model(StoryModel)Node(StoryNodeItem)
SettingModel()
public SettingModel()
Fields
SettingNames
[JsonIgnore]
public static ObservableCollection<string> SettingNames
Type ObservableCollection<string>
Properties
Locale
[JsonInclude]
[JsonPropertyName("Locale")]
public string Locale { get; set; }
Type string
Season
[JsonInclude]
[JsonPropertyName("Season")]
public string Season { get; set; }
Type string
Period
[JsonInclude]
[JsonPropertyName("Period")]
public string Period { get; set; }
Type string
Lighting
[JsonInclude]
[JsonPropertyName("Lighting")]
public string Lighting { get; set; }
Type string
Weather
[JsonInclude]
[JsonPropertyName("Weather")]
public string Weather { get; set; }
Type string
Temperature
[JsonInclude]
[JsonPropertyName("Temperature")]
public string Temperature { get; set; }
Type string
Props
[JsonInclude]
[JsonPropertyName("Props")]
public string Props { get; set; }
Type string
Sights
[JsonInclude]
[JsonPropertyName("Sights")]
public string Sights { get; set; }
Type string
Sounds
[JsonInclude]
[JsonPropertyName("Sounds")]
public string Sounds { get; set; }
Type string
Touch
[JsonInclude]
[JsonPropertyName("Touch")]
public string Touch { get; set; }
Type string
SmellTaste
[JsonInclude]
[JsonPropertyName("SmellTaste")]
public string SmellTaste { get; set; }
Type string
Notes
[JsonInclude]
[JsonPropertyName("Notes")]
public string Notes { get; set; }
Type string
StoryDocument
Class: StoryCADLib.Models.StoryDocument
Encapsulates a story document, combining the model and its file path. This ensures the model and path are always kept together as a unit.
public sealed class StoryDocument
Constructors
StoryDocument(StoryModel, string?)
Creates a new StoryDocument with the specified model and optional file path.
public StoryDocument(StoryModel model, string? filePath = null)
Parameters
model(StoryModel): The story model (required)filePath(string): The file path (optional, null for new documents)
Properties
Model
The story model containing all story data. Readonly - to change models, create a new StoryDocument instance.
public StoryModel Model { get; }
Type StoryModel
FilePath
The file path where this document is saved. Null for new unsaved documents (“Untitled”). Mutable to support SaveAs operations.
public string? FilePath { get; set; }
Type string
IsDirty
Indicates whether the document has unsaved changes. Delegates to the Model’s Changed property.
public bool IsDirty { get; }
Type bool
StoryElement
Class: StoryCADLib.Models.StoryElement
public class StoryElement : ObservableObject
Constructors
StoryElement(string, StoryItemType, StoryModel, StoryNodeItem)
Creates a new story element
public StoryElement(string name, StoryItemType type, StoryModel model, StoryNodeItem parentNode)
Parameters
name(string): Name of elementtype(StoryItemType): Type of elementmodel(StoryModel): Story Model this element belongs toparentNode(StoryNodeItem): Parent of this node
StoryElement()
Parameterless constructor for JSON Deserialization. Don’t remove.
public StoryElement()
Properties
Uuid
[JsonInclude]
[JsonPropertyName("GUID")]
public Guid Uuid { get; set; }
Type Guid
Description
Common description field that is mapped to the main textbox on an element.
[JsonInclude]
[JsonPropertyName("ElementDescription")]
public string Description { get; set; }
Type string
Name
[JsonInclude]
[JsonPropertyName("Name")]
public string Name { get; set; }
Type string
ElementType
[JsonInclude]
[JsonPropertyName("Type")]
public StoryItemType ElementType { get; set; }
Type StoryItemType
Node
[JsonIgnore]
public StoryNodeItem Node { get; set; }
Type StoryNodeItem
IsSelected
[JsonIgnore]
public bool IsSelected { get; set; }
Type bool
Methods
GetByGuid(Guid, StoryModel)
Retrieve a StoryElement from its Guid. Guids are used as keys to StoryElements, stored in the StoryModel’s StoryElementCollection. They also identify links from one StoryElement to another, such as the Setting or a cast member Character in a Scene. We use Guid.Empty as the value for such a link until it’s assigned. These placeholder links are often expected to be a StoryElement key, such as to display the name of the setting on the Scene Content pane. Treating Guid.Empty as an ‘Undefined’ StoryElement, with a blank name, simplifies that code.
public static StoryElement GetByGuid(Guid guid, StoryModel storyModel = null)
Parameters
guid(Guid): The Guid of the StoryElement to retrievestoryModel(StoryModel): optional story model override, defaults to current app state model.
Returns StoryElement
Deserialize(string)
Deserializes a JSON string into a StoryElement.
public static StoryElement Deserialize(string json)
Parameters
json(string): JSON to deserialize.
Returns StoryElement: StoryElement Object.
Serialize()
Serialises this StoryElement into JSON.
public string Serialize()
Returns string: JSON Representation of this object.
ToString()
public override string ToString()
Returns string
StoryElementCollection
Class: StoryCADLib.Models.StoryElementCollection
StoryElementCollection is an ObservableCollection of StoryElement instances, which automatically maintains several derivative collections when StoryElementCollection has elements added or removed.
public class StoryElementCollection : ObservableCollection<StoryElement>
Constructors
StoryElementCollection()
public StoryElementCollection()
Fields
Characters
public ObservableCollection<StoryElement> Characters
Type ObservableCollection<StoryElement>
Scenes
public ObservableCollection<StoryElement> Scenes
Type ObservableCollection<StoryElement>
Settings
public ObservableCollection<StoryElement> Settings
Type ObservableCollection<StoryElement>
StoryElementGuids
public Dictionary<Guid, StoryElement> StoryElementGuids
Type Dictionary<Guid, StoryElement>
Properties
Problems
public ObservableCollection<StoryElement> Problems { get; }
Type ObservableCollection<StoryElement>
StoryItemType
Enum: StoryCADLib.Models.StoryItemType
[JsonConverter(typeof(JsonStringEnumConverter))]
public enum StoryItemType
Values
| Value | Description |
|---|---|
StoryOverview |
|
Problem |
|
Character |
|
Setting |
|
Scene |
|
Folder |
|
Section |
|
Web |
|
Notes |
|
TrashCan |
|
StoryWorld |
|
Unknown |
StoryModel
Class: StoryCADLib.Models.StoryModel
public class StoryModel : ObservableObject
Constructors
StoryModel()
public StoryModel()
Fields
FirstVersion
The first version of StoryCAD that this file was created with.
[JsonInclude]
[JsonPropertyName("CreatedVersion")]
public string FirstVersion
Type string
LastVersion
The last version of StoryCAD that this file was saved with.
[JsonInclude]
[JsonPropertyName("LastVersion")]
public string LastVersion
Type string
StoryElements
[JsonInclude]
[JsonPropertyName("Elements")]
public StoryElementCollection StoryElements
Type StoryElementCollection
ExplorerView
[JsonIgnore]
public ObservableCollection<StoryNodeItem> ExplorerView
Type ObservableCollection<StoryNodeItem>
NarratorView
[JsonIgnore]
public ObservableCollection<StoryNodeItem> NarratorView
Type ObservableCollection<StoryNodeItem>
Properties
Changed
[JsonIgnore]
public bool Changed { get; set; }
Type bool
CurrentView
[JsonIgnore]
public ObservableCollection<StoryNodeItem> CurrentView { get; set; }
Type ObservableCollection<StoryNodeItem>
TrashView
[JsonIgnore]
public ObservableCollection<StoryNodeItem> TrashView { get; set; }
Type ObservableCollection<StoryNodeItem>
CurrentViewType
Current view type tracking
[JsonIgnore]
public StoryViewType CurrentViewType { get; set; }
Type StoryViewType
Methods
Serialize()
Serialises the model to JSON
public string Serialize()
Returns string
RefreshCurrentView()
Forces the UI to refresh by re-binding CurrentView. Used after Collaborator updates elements via API.
public void RefreshCurrentView()
StoryWorldModel
Class: StoryCADLib.Models.StoryWorldModel
Model for the StoryWorld story element. Contains worldbuilding information organized by category. Single instance per story (like StoryOverview), but optional.
public class StoryWorldModel : StoryElement
Constructors
StoryWorldModel(StoryModel, StoryNodeItem)
Creates a new StoryWorld with default name.
public StoryWorldModel(StoryModel model, StoryNodeItem node)
Parameters
model(StoryModel)node(StoryNodeItem)
StoryWorldModel(string, StoryModel, StoryNodeItem)
Creates a new StoryWorld with specified name.
public StoryWorldModel(string name, StoryModel model, StoryNodeItem node)
Parameters
name(string)model(StoryModel)node(StoryNodeItem)
StoryWorldModel()
Parameterless constructor for JSON deserialization.
public StoryWorldModel()
Properties
WorldType
[JsonInclude]
[JsonPropertyName("WorldType")]
public string WorldType { get; set; }
Type string
Ontology
[JsonInclude]
[JsonPropertyName("Ontology")]
public string Ontology { get; set; }
Type string
WorldRelation
[JsonInclude]
[JsonPropertyName("WorldRelation")]
public string WorldRelation { get; set; }
Type string
RuleTransparency
[JsonInclude]
[JsonPropertyName("RuleTransparency")]
public string RuleTransparency { get; set; }
Type string
ScaleOfDifference
[JsonInclude]
[JsonPropertyName("ScaleOfDifference")]
public string ScaleOfDifference { get; set; }
Type string
AgencySource
[JsonInclude]
[JsonPropertyName("AgencySource")]
public string AgencySource { get; set; }
Type string
ToneLogic
[JsonInclude]
[JsonPropertyName("ToneLogic")]
public string ToneLogic { get; set; }
Type string
PhysicalWorlds
[JsonInclude]
[JsonPropertyName("PhysicalWorlds")]
public List<PhysicalWorldEntry> PhysicalWorlds { get; set; }
Type List<PhysicalWorldEntry>
Species
[JsonInclude]
[JsonPropertyName("Species")]
public List<SpeciesEntry> Species { get; set; }
Type List<SpeciesEntry>
Cultures
[JsonInclude]
[JsonPropertyName("Cultures")]
public List<CultureEntry> Cultures { get; set; }
Type List<CultureEntry>
Governments
[JsonInclude]
[JsonPropertyName("Governments")]
public List<GovernmentEntry> Governments { get; set; }
Type List<GovernmentEntry>
Religions
[JsonInclude]
[JsonPropertyName("Religions")]
public List<ReligionEntry> Religions { get; set; }
Type List<ReligionEntry>
FoundingEvents
[JsonInclude]
[JsonPropertyName("FoundingEvents")]
public string FoundingEvents { get; set; }
Type string
MajorConflicts
[JsonInclude]
[JsonPropertyName("MajorConflicts")]
public string MajorConflicts { get; set; }
Type string
Eras
[JsonInclude]
[JsonPropertyName("Eras")]
public string Eras { get; set; }
Type string
TechnologicalShifts
[JsonInclude]
[JsonPropertyName("TechnologicalShifts")]
public string TechnologicalShifts { get; set; }
Type string
LostKnowledge
[JsonInclude]
[JsonPropertyName("LostKnowledge")]
public string LostKnowledge { get; set; }
Type string
EconomicSystem
[JsonInclude]
[JsonPropertyName("EconomicSystem")]
public string EconomicSystem { get; set; }
Type string
Currency
[JsonInclude]
[JsonPropertyName("Currency")]
public string Currency { get; set; }
Type string
TradeRoutes
[JsonInclude]
[JsonPropertyName("TradeRoutes")]
public string TradeRoutes { get; set; }
Type string
Professions
[JsonInclude]
[JsonPropertyName("Professions")]
public string Professions { get; set; }
Type string
WealthDistribution
[JsonInclude]
[JsonPropertyName("WealthDistribution")]
public string WealthDistribution { get; set; }
Type string
SystemType
[JsonInclude]
[JsonPropertyName("SystemType")]
public string SystemType { get; set; }
Type string
Source
[JsonInclude]
[JsonPropertyName("Source")]
public string Source { get; set; }
Type string
Rules
[JsonInclude]
[JsonPropertyName("Rules")]
public string Rules { get; set; }
Type string
Limitations
[JsonInclude]
[JsonPropertyName("Limitations")]
public string Limitations { get; set; }
Type string
Cost
[JsonInclude]
[JsonPropertyName("Cost")]
public string Cost { get; set; }
Type string
Practitioners
[JsonInclude]
[JsonPropertyName("Practitioners")]
public string Practitioners { get; set; }
Type string
SocialImpact
[JsonInclude]
[JsonPropertyName("SocialImpact")]
public string SocialImpact { get; set; }
Type string
TrashCanModel
Class: StoryCADLib.Models.TrashCanModel
The TrashCanModel is a container for deleted StoryElements. It’s the second root node in both the Explorer View and Narrator Views, and contains no properties.
public class TrashCanModel : StoryElement
Constructors
TrashCanModel()
JSON Constructor
public TrashCanModel()
TrashCanModel(StoryModel, StoryNodeItem)
public TrashCanModel(StoryModel model, StoryNodeItem node)
Parameters
model(StoryModel)node(StoryNodeItem)
WebModel
Class: StoryCADLib.Models.WebModel
public class WebModel : StoryElement
Constructors
WebModel(StoryModel, StoryNodeItem)
public WebModel(StoryModel model, StoryNodeItem node)
Parameters
model(StoryModel)node(StoryNodeItem)
WebModel()
public WebModel()
Fields
Timestamp
[JsonInclude]
[JsonPropertyName("Timestamp")]
public DateTime Timestamp
Type DateTime
URL
[JsonInclude]
[JsonPropertyName("URI")]
public Uri URL
Type Uri