Header menu logo issie

FComponentId Type

Unique identifier for a component of a running simulation: which component, and which elaborated copy of its sheet it belongs to. The list is the access path - the containing custom component instances between it and the top sheet of the simulation, innermost first. It is an InstancePath, the same list under the same rule; a pair rather than one list because the component's own id always exists while the path may be empty. THREE NAMES FOR A COMPONENT, AND NO OTHERS. ComponentId names one of the DESIGN - unique across it, and the same one in every instance of its sheet. This names one of a SIMULATION: the design component plus which copy. FastCompIndex names one inside a particular BUILD, and means nothing in the next. This is the durable one, and so what the renderer holds, what a saved selection resolves to, and what FIndexOf translates to a FastCompIndex. There used to be a fourth, SimComponentId, which was an abbreviation of this same tuple under another name. A bare tuple, deliberately. Tagging it is one line - `[] type FComponentId = FComponentId of ComponentId * ComponentId list` - and was measured on this branch to break 71 sites, 38 of them in FastCreate and FastExtract, which destructure it as a tuple. Worth doing with a change that needs it rather than as a sweep of the simulator core. If it is done, tag it [] and NOT []: it is the key type of FIndexOf, the one map a built simulation keeps, and the note above the id types prices what a struct key costs in an F# Map.

Instance members

Instance member Description

this.Item1

Full Usage: this.Item1

Returns: ComponentId
Returns: ComponentId

this.Item2

Full Usage: this.Item2

Returns: ComponentId list
Returns: ComponentId list

Type something to start searching.