Data Model

Component Types

R2X PLEXOS supports the following objects:

  • PLEXOSGenerator: Power generation units

  • PLEXOSNode: Electrical buses/nodes

  • PLEXOSLine: Transmission lines

  • PLEXOSInterface: Inter-regional interfaces

  • PLEXOSStorage: Energy storage systems

  • PLEXOSBattery: Battery storage units

  • PLEXOSRegion: Geographical regions

  • PLEXOSZone: Operating zones

  • PLEXOSReserve: Reserve requirements

  • PLEXOSFuel: Fuel types and pricing

  • PLEXOSTimeslice: Time period definitions

  • PLEXOSVariable: Dynamic variables

  • PLEXOSDatafile: References to CSV data files

  • PLEXOSModel: Simulation models

  • PLEXOSHorizon: Time horizon definitions

  • PLEXOSMembership: Component relationships

Property Types

Simple Properties

Direct attribute values on components:

generator.max_capacity = 500.0
generator.min_stable_level = 100.0

Property Values

Structured property objects that support multiple scenarios and actions:

from r2x_plexos.models.property import PLEXOSPropertyValue

prop = PLEXOSPropertyValue(
    value=500.0,
    scenario="Base",
    action=1  # Add, Subtract, Multiply, etc.
)

Collection Properties

Properties that relate one component to another:

from r2x_plexos.models.collection_property import CollectionProperties

coll_prop = CollectionProperties(
    collection_name="Regions",
    properties={"load_risk": PLEXOSPropertyValue(value=6.0)}
)

Time Series Properties

Properties with time-varying values:

# Time series attached via R2X system
system.add_time_series(
    ts_data,
    component,
    variable_name="max_capacity"
)

Memberships

Memberships define relationships between components:

  • Parent object: The containing component

  • Collection: The relationship type

  • Child object: The contained component

  • Membership ID: Unique identifier

Common membership patterns:

  • Generator → Node: Physical connection

  • Component → Region: Regional assignment

  • Component → Category: Categorization

  • Reserve → Generator: Reserve provision