Table of Contents

Class S101Document

Namespace
EncDotNet.S100.Datasets.S101
Assembly
EncDotNet.S100.Datasets.S101.dll

Parsed S-101 dataset document built directly from ISO 8211 records.

public sealed class S101Document
Inheritance
S101Document
Inherited Members

Remarks

This type is the in-memory representation consumed by S101LuaDataProvider and S101VectorSource. It is public so that adapters for other product specifications (for example, S-57) can construct an equivalent graph in memory and reuse the S-101 portrayal pipeline.

Properties

AttributeTypeCatalogue

Maps numeric attribute codes to their feature catalogue acronyms.

public required IReadOnlyDictionary<ushort, string> AttributeTypeCatalogue { get; init; }

Property Value

IReadOnlyDictionary<ushort, string>

CompositeCurves

Composite curve records keyed by record id (RCNM = 125).

public required IReadOnlyDictionary<uint, S101CompositeCurveRecord> CompositeCurves { get; init; }

Property Value

IReadOnlyDictionary<uint, S101CompositeCurveRecord>

CurveSegments

Curve segment records keyed by record id (RCNM = 120).

public required IReadOnlyDictionary<uint, S101CurveSegmentRecord> CurveSegments { get; init; }

Property Value

IReadOnlyDictionary<uint, S101CurveSegmentRecord>

FeatureAssociationCatalogue

Maps numeric feature association codes to their feature catalogue acronyms.

public required IReadOnlyDictionary<ushort, string> FeatureAssociationCatalogue { get; init; }

Property Value

IReadOnlyDictionary<ushort, string>

FeatureTypeCatalogue

Maps numeric feature type codes to their feature catalogue acronyms (e.g. DepthArea).

public required IReadOnlyDictionary<ushort, string> FeatureTypeCatalogue { get; init; }

Property Value

IReadOnlyDictionary<ushort, string>

Features

Feature records in dataset order.

public required IReadOnlyList<S101FeatureRecord> Features { get; init; }

Property Value

IReadOnlyList<S101FeatureRecord>

Identification

Dataset identification (DSID record).

public required S101DatasetIdentification Identification { get; init; }

Property Value

S101DatasetIdentification

InformationAssociationCatalogue

Maps numeric information association codes to their feature catalogue acronyms.

public required IReadOnlyDictionary<ushort, string> InformationAssociationCatalogue { get; init; }

Property Value

IReadOnlyDictionary<ushort, string>

InformationTypeCatalogue

Maps numeric information type codes to their feature catalogue acronyms.

public required IReadOnlyDictionary<ushort, string> InformationTypeCatalogue { get; init; }

Property Value

IReadOnlyDictionary<ushort, string>

InformationTypes

Information type records keyed by record id.

public required IReadOnlyDictionary<uint, S101InformationRecord> InformationTypes { get; init; }

Property Value

IReadOnlyDictionary<uint, S101InformationRecord>

MultiPoints

Multi-point spatial records keyed by record id (RCNM = 115). Used by features such as Sounding whose portrayal expects a single feature with many 3D points.

public IReadOnlyDictionary<uint, S101MultiPointRecord> MultiPoints { get; init; }

Property Value

IReadOnlyDictionary<uint, S101MultiPointRecord>

Points

Point spatial records keyed by record id (RCNM = 110).

public required IReadOnlyDictionary<uint, S101PointRecord> Points { get; init; }

Property Value

IReadOnlyDictionary<uint, S101PointRecord>

RoleCatalogue

Maps numeric role codes to their feature catalogue acronyms.

public required IReadOnlyDictionary<ushort, string> RoleCatalogue { get; init; }

Property Value

IReadOnlyDictionary<ushort, string>

StructureInfo

Dataset structure information (DSSI record), including coordinate scale factors.

public required S101DatasetStructureInfo StructureInfo { get; init; }

Property Value

S101DatasetStructureInfo

Surfaces

Surface records keyed by record id (RCNM = 130).

public required IReadOnlyDictionary<uint, S101SurfaceRecord> Surfaces { get; init; }

Property Value

IReadOnlyDictionary<uint, S101SurfaceRecord>

Methods

ApplyChanges(S101Document)

Applies a single sequential update document onto this document and returns a new, merged S101Document (this instance is not mutated).

public S101Document ApplyChanges(S101Document update)

Parameters

update S101Document

An update dataset (application profile 2) parsed into the same S101Document shape. Record-level RUIN and the inlined per-element instructions (SAUI / FAUI / IUIN / ATIN) drive insert / delete / modify per S-100 Part 10a.

Returns

S101Document

A new document reflecting the applied changes.

Remarks

Mirrors EncDotNet.S57.S57Document.ApplyChanges: there is no separate update document type, and merging is a pure document-to-document operation. This single-step merge does not validate edition or update preconditions; use Apply(S101Document, IReadOnlyList<S101Document>, out S101UpdateReport) for sequenced, best-effort application with a report.