RtCkIdJsonShim
Namespace: Meshmakers.Octo.ConstructionKit.Contracts
Shared rule for the RtCkId<TElementId> JSON "virtual property" shim.
public static class RtCkIdJsonShim
Inheritance Object → RtCkIdJsonShim
Remarks:
On the wire an RtCkId<TElementId> serialises to a bare RtCkId<TElementId>.SemanticVersionedFullName
string (see RtCkIdConverter.Write), but legacy pipeline YAML drills
.SemanticVersionedFullName / .FullName expecting the historical object shape.
Readers therefore treat those two property names on a JSON string as virtual self-aliases.
This rule was previously hand-reimplemented as magic strings in three SDK walkers
(JsonPathWalker, DataOverlay, LayeredSource) plus two structured-object read-back sites
(RtNewtonsoftAttributesConverter, CreateUpdateInfoNode); it is centralised here — next to
RtCkId<TElementId> where the wire shape is decided — so all consumers share one definition.
The names are the stable wire contract (pinned by RtCkIdJsonShimTests).
Fields
SemanticVersionedFullNameKey
The semantic (versioned) identifier property name carried on the wire.
public static string SemanticVersionedFullNameKey;
FullNameKey
The unversioned identifier property name.
public static string FullNameKey;
Methods
IsVirtualProperty(String)
True when propertyName is one of the RtCkId virtual property names
(RtCkIdJsonShim.SemanticVersionedFullNameKey / RtCkIdJsonShim.FullNameKey). Allocation-free
ordinal comparison; callers keep their own "current node is a JSON string" check.
public static bool IsVirtualProperty(string propertyName)
Parameters
propertyName String