Table of Contents

Class S57AttributeOverride

Namespace
EncDotNet.S100.Datasets.S57
Assembly
EncDotNet.S100.Datasets.S57.dll

Per-feature attribute override: changes the target S-101 attribute name and/or remaps individual enum values.

public sealed record S57AttributeOverride : IEquatable<S57AttributeOverride>
Inheritance
S57AttributeOverride
Implements
Inherited Members

Properties

Drop

When true, the attribute is dropped entirely on features to which this override applies, regardless of value. Used when a feature-class redirect moves an S-57 attribute's owner to an S-101 class that does not bind the attribute's default target — e.g. CATMOR is dropped when MORFAC redirects to ShorelineConstruction, which has no categoryOfDolphin. Takes precedence over all other members.

public bool Drop { get; init; }

Property Value

bool

S101Code

Override S-101 attribute name. null means "keep the default attribute mapping". Set to a non-null string to redirect the attribute (e.g. CATCTR on a Landmark redirect maps to category of landmark).

public string? S101Code { get; init; }

Property Value

string

S101CodeByValue

Per-source-value override of the target S-101 attribute name. When the S-57 value matches a key, the redirect attribute name takes precedence over both S101Code and the rule-level default. Used to model conditional cross-attribute mapping such as COALNE/CATCOA selectively redirecting to natureOfSurface (IHO Conversion Guidance § 4.5.1).

public IReadOnlyDictionary<string, string> S101CodeByValue { get; init; }

Property Value

IReadOnlyDictionary<string, string>

ValueRemap

Per-value remap. A key with a non-null value rewrites the S-57 value to the given S-101 value. A key with a null value drops the attribute entirely. Missing keys leave the value unchanged.

public IReadOnlyDictionary<string, string?> ValueRemap { get; init; }

Property Value

IReadOnlyDictionary<string, string>