data#

The input model. ProjectData is the full snapshot that Project.Solve, Project.Analyze and Engine.Schedule take. The other classes in this folder are its parts: config, calendars, tasks, links, resources and assignments. They're mutable classes with settable properties, so you build them with object initializers.

This folder also holds the shared types those records use: Id, Moment, Pause and the enums TimeUnit, CalendarMode and Basis. Most records and option classes in the package implement IDeepCloneable<T>, so DeepClone() gives you a copy that shares no list or nested record with the original. Every type here is in the Plen namespace.

  • AssignmentDataOne resource booked on one task at a utilization rate, optionally for a slice of the task's work
  • BasisBucket size for resource load and leveling, one hour or one day
  • CalendarDataA named working calendar in the project data, with its ID and working time
  • CalendarModeSelects which calendars place a task's work, resource calendars or task calendars only
  • IDeepCloneable<T>The interface of records that can be deep-copied with DeepClone()
  • IdThe id of a task, link, resource, assignment or calendar, either a number or a string
  • LinkDataA dependency between two tasks in a project snapshot
  • MomentA date and time at minute precision, without a time zone, used by every date field
  • PauseA gap in a task's work, measured in elapsed time from the task start
  • ProjectDataThe full project snapshot - config, calendars, tasks, links, resources and assignments
  • ResourceDataOne input resource, with its ID, capacity and calendar
  • SchedulingConfigProject-wide scheduling settings, such as constraints, direction, gap behavior, units and calendars
  • TaskDataOne input task, with its dates, type, constraint, calendar and leveling fields
  • TimeUnitThe unit of a task's duration or a link's lag
  • WorktimeWorking hours, working weekdays and per-date exceptions of a calendar, with the TimeRange and DayRule types they use