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 element
  • type (StoryItemType): Type of element
  • model (StoryModel): Story Model this element belongs to
  • parentNode (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 retrieve
  • storyModel (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