public LDLBOBase CreateItem(string[] definition, string id)
        {
            LDLTrackCircuit toPopulate = new LDLTrackCircuit(id);
            int nLines = definition.GetUpperBound(0);
            int startOfSections = 0;
            for (int i = 0; i < nLines; i++)
            {
                if (string.IsNullOrEmpty(toPopulate.InterlockingStr))
                    if (definition[i].Contains(LDLInterlocking.Identifier))
                        toPopulate.InterlockingStr = ParseItem(definition[i]);
                
                if (definition[i].Contains(typedefStr))
                {
                    string typeStr = ParseItem(definition[i]);
                    if (!string.IsNullOrEmpty(typeStr))
                        toPopulate.TCType = (LDLTrackCircuitTypeEnum)Enum.Parse(typeof(LDLTrackCircuitTypeEnum), typeStr);
                    startOfSections = i;
                    break;
                }
                
            }
            toPopulate.Sections = LDLSectionList.ExtractSectionList(definition, nLines+1, startOfSections,true);

            return toPopulate;
        }
        public LDLBOBase CreateItem(string[] definition, string id)
        {
            LDLInterlocking result   = new LDLInterlocking(id);
            int             nLines   = definition.GetLength(0);
            LDLSectionList  sections = LDLSectionList.ExtractSectionList(definition, nLines, 0);

            result.Sections = sections;
            return(result);
        }