Skip to main content

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

Returns​

Boolean