예제 #1
0
        static IXEP_EmdElement FindReinforcementElement(IXEP_EmdElement elem4Work, int sectionID)
        {
            IXEP_EmdElement reinfElem = elem4Work;

            if (elem4Work.Name == XEP_EmdFileConstants.s_FakeRootElementName)
            { // more sections
                List <IXEP_EmdElement> sections    = XEP_BaseEmdFile.GetElements(elem4Work, XEP_EmdNames.s_KeySection);
                IXEP_EmdElement        needSection = sections.Where(item => item.GetAttribute(XEP_EmdNames.s_KeyID).GetIntValue() == sectionID).First();
                IXEP_EmdAttribute      attID       = needSection.GetAttribute(XEP_EmdNames.s_KeyID);
                if (attID == null)
                {
                    throw new InvalidOperationException("Section in reinforcement file does not have attribute: " + XEP_EmdNames.s_KeyID);
                }
                if (attID.Value != sectionID.ToString())
                {
                    throw new InvalidOperationException("Section ID attribute is not equals section ID inputed, actual:" + attID.Value + " wanted: " + sectionID.ToString());
                }
                reinfElem = XEP_BaseEmdFile.GetElement(needSection, XEP_EmdNames.s_KeyReinforcement);
            }
            if (reinfElem == null)
            {
                throw new InvalidOperationException("There is not reinforcemnt element for sectionID: " + sectionID.ToString());
            }
            XEP_BaseEmdFile.CheckName(reinfElem.Name, XEP_EmdNames.s_KeyReinforcement);
            return(reinfElem);
        }
예제 #2
0
 public void CreateFromEmdElement(IXEP_EmdElement elem)
 {
     XEP_BaseEmdFile.CheckName(elem.Name, XEP_EmdNames.s_KeyStirrupZone);
     Clear();
     foreach (var item in elem.Elements)
     {
         if (item.Name == XEP_EmdNames.s_KeyStirrup)
         {
             IXEP_EmdStirrupData stirrupData = XEP_EmdFactrory.CreateEmdStirrupData();
             stirrupData.CreateFromEmdElement(item);
             Stirrups.Add(stirrupData);
         }
         else if (item.Name == XEP_EmdNames.s_KeyStirrupZoneShape)
         {
             ZoneShape.CreateFromEmdElement(item);
         }
         else
         {
             throw new InvalidOperationException("Invalid element in stirrup zone, element name: " + item.Name);
         }
     }
     ZoneID         = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupZoneID).GetIntValue();
     Material       = elem.GetAttribute(XEP_EmdFileConstants.s_RefAttributEmdTag + XEP_EmdNames.s_KeyStirrupZoneMaterial).Value;
     ZoneBeg        = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupZoneZoneBeg).GetDoubleValue();
     ZoneEnd        = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupZoneZoneEnd).GetDoubleValue();
     IsAutoCutsCalc = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupZoneIsAutoCutsCalc).GetIntValue();
     NumCutUser     = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupZoneNumCutUser).GetIntValue();
     Position       = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupZonePosition).Value;
     Coeff          = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupZoneCoef).GetDoubleValue();
 }
 void PrepareZoneFromElement(IXEP_EmdElement zone)
 {
     m_zone4Work = XEP_EmdFactrory.CreateEmdStirrupZoneData();
     m_zone4Work.CreateFromEmdElement(zone);
     m_zone4Work.ZoneBeg = m_zoneBeg;
     m_zone4Work.ZoneEnd = m_zoneEnd;
 }
예제 #4
0
 public void Load(Stream stream)
 {
     using (StreamReader reader = new StreamReader(stream))
     {
         m_emdReader.Read(reader);
     }
     Root = m_emdReader.Root.CreateEmdElement();
 }
        public List <Point> GetShape()
        {
            IXEP_EmdElement   domCompElem  = GetElement(DocumentRoot, XEP_EmdNames.s_KeyComponent);
            IXEP_EmdElement   domShapeElem = GetElement(domCompElem, XEP_EmdNames.s_KeyShape);
            IXEP_EmdShapeData data         = XEP_EmdFactrory.CreateEmdShapeData();

            data.CreateFromEmdElement(domShapeElem);
            return(data.Create());
        }
예제 #6
0
 public void CreateFromEmdElement(IXEP_EmdElement elem)
 {
     XEP_BaseEmdFile.CheckName(elem.Name, XEP_EmdNames.s_KeyStirrup);
     DX       = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupDX).GetDoubleValue();
     D        = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupD).GetDoubleValue();
     Multiply = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupMultiply).GetIntValue();
     DsL      = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupDsL).GetDoubleValue();
     DsR      = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupDsR).GetDoubleValue();
     Dss      = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupDss).GetDoubleValue();
 }
예제 #7
0
        static public IXEP_EmdElement GetElement(IXEP_EmdElement elem4Find, string name)
        {
            if (elem4Find.Elements == null || elem4Find.Elements.Count == 0)
            {
                return(null);
            }
            IXEP_EmdElement domEmdElem = elem4Find.Elements.Where(item => item.Name == name).First();

            return(domEmdElem);
        }
예제 #8
0
        public IXEP_EmdElement CreateEmdElement()
        {
            IXEP_EmdElement elemEmd = XEP_EmdFactrory.CreateEmdElement();

            elemEmd.Name = XEP_EmdNames.s_KeyPoint;
            //
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyPointX, X.ToString()));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyPointY, Y.ToString()));
            return(elemEmd);
        }
예제 #9
0
        public IXEP_EmdElement CreateEmdElement()
        {
            IXEP_EmdElement elemEmd = XEP_EmdFactrory.CreateEmdElement();

            elemEmd.Name = XEP_EmdNames.s_KeyPrincipal;
            //
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeysmallY, y.ToString()));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeysmallZ, z.ToString()));
            return(elemEmd);
        }
예제 #10
0
 public void CreateFromEmdElement(IXEP_EmdElement elem)
 {
     XEP_BaseEmdFile.CheckName(elem.Name, XEP_EmdNames.s_KeyShape);
     Points.Clear();
     foreach (var item in elem.Elements)
     {
         IXEP_EmdPointData pointData = XEP_EmdFactrory.CreateEmdPointData();
         pointData.CreateFromEmdElement(item);
         Points.Add(pointData);
     }
 }
예제 #11
0
 public void CreateFromEmdElement(IXEP_EmdElement elem)
 {
     XEP_BaseEmdFile.CheckName(elem.Name, XEP_EmdNames.s_KeyStirrupZoneShape);
     Branches.Clear();
     foreach (var item in elem.Elements)
     {
         IXEP_EmdStirrupBranchData branchData = XEP_EmdFactrory.CreateEmdStirrupBranchData();
         branchData.CreateFromEmdElement(item);
         Branches.Add(branchData);
     }
 }
예제 #12
0
        public IXEP_EmdElement CreateEmdElement()
        {
            IXEP_EmdElement elem = XEP_EmdFactrory.CreateEmdElement();

            elem.Name = XEP_EmdNames.s_KeyShape;
            foreach (var item in Points)
            {
                elem.Elements.Add(item.CreateEmdElement());
            }
            return(elem);
        }
예제 #13
0
 public void CreateFromEmdElement(IXEP_EmdElement elem)
 {
     XEP_BaseEmdFile.CheckName(elem.Name, XEP_EmdNames.s_KeyBar);
     ComponentID = elem.GetAttribute(XEP_EmdNames.s_KeyBarComponentID).GetIntValue();
     X           = elem.GetAttribute(XEP_EmdNames.s_KeyBarX).GetDoubleValue();
     Y           = elem.GetAttribute(XEP_EmdNames.s_KeyBarY).GetDoubleValue();
     D           = elem.GetAttribute(XEP_EmdNames.s_KeyBarD).GetDoubleValue();
     RefMaterial = elem.GetAttribute(XEP_EmdFileConstants.s_RefAttributEmdTag + XEP_EmdNames.s_KeyBarMaterial).Value;
     IsActive    = elem.GetAttribute(XEP_EmdNames.s_KeyBarIsActive).GetIntValue();
     IsDetailing = elem.GetAttribute(XEP_EmdNames.s_KeyBarIsDetailing).GetIntValue();
 }
예제 #14
0
        public IXEP_EmdElement CreateEmdElement()
        {
            IXEP_EmdElement elem = XEP_EmdFactrory.CreateEmdElement();

            elem.Name = XEP_EmdNames.s_KeyGeometry;
            foreach (var item in Items)
            {
                elem.AddAttribute(item.CreateAttribute());
            }
            return(elem);
        }
예제 #15
0
 public void CreateFromEmdElement(IXEP_EmdElement elem)
 {
     XEP_BaseEmdFile.CheckName(elem.Name, XEP_EmdNames.s_KeyLoad);
     ID   = elem.GetAttribute(XEP_EmdNames.s_KeyLoadID).GetIntValue();
     Type = elem.GetAttribute(XEP_EmdNames.s_KeyLoadType).GetIntValue();
     if (elem.AttHelp.Count > 2)
     {
         LimitState = elem.GetAttribute(XEP_EmdNames.s_KeyLoadLimitState).GetIntValue();
         CombiKey   = elem.GetAttribute(XEP_EmdNames.s_KeyLoadCombiKey).Value;
         CombiType  = elem.GetAttribute(XEP_EmdNames.s_KeyLoadCombiType).GetIntValue();
     }
 }
예제 #16
0
 public void CreateFromEmdElement(IXEP_EmdElement elem)
 {
     XEP_BaseEmdFile.CheckName(elem.Name, XEP_EmdNames.s_KeyInternalForces);
     ID         = elem.GetAttribute(XEP_EmdNames.s_KeyInternalForcesID).GetIntValue();
     N          = elem.GetAttribute(XEP_EmdNames.s_KeyInternalForcesN).GetDoubleValue();
     My         = elem.GetAttribute(XEP_EmdNames.s_KeyInternalForcesMy).GetDoubleValue();
     Mz         = elem.GetAttribute(XEP_EmdNames.s_KeyInternalForcesMz).GetDoubleValue();
     Mx         = elem.GetAttribute(XEP_EmdNames.s_KeyInternalForcesMx).GetDoubleValue();
     Vy         = elem.GetAttribute(XEP_EmdNames.s_KeyInternalForcesVy).GetDoubleValue();
     Vz         = elem.GetAttribute(XEP_EmdNames.s_KeyInternalForcesVz).GetDoubleValue();
     IsCritical = elem.GetAttribute(XEP_EmdNames.s_KeyInternalForcesIsCritical).GetIntValue();
 }
예제 #17
0
        public IXEP_EmdElement CreateEmdElement()
        {
            IXEP_EmdElement elemEmd = XEP_EmdFactrory.CreateEmdElement();

            elemEmd.Name = XEP_EmdNames.s_KeyLoad;
            //
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyLoadID, ID.ToString()));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyLoadType, Type.ToString()));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyLoadLimitState, LimitState.ToString()));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyLoadCombiKey, CombiKey));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyLoadCombiType, CombiType.ToString()));
            return(elemEmd);
        }
예제 #18
0
        static public void RemoveElements(IXEP_EmdElement elem4Work, string name)
        {
            List <IXEP_EmdElement> domEmdElems4Remove = elem4Work.Elements.Where(item => item.Name == name).ToList();

            if (domEmdElems4Remove == null || domEmdElems4Remove.Count == 0)
            {
                return;
            }
            foreach (var item in domEmdElems4Remove)
            {
                elem4Work.Elements.Remove(item);
            }
        }
예제 #19
0
        static protected void SaveElement(IXEP_EmdElement elem4Work, IXEP_EmdElement elem4Save, string name4Save)
        {
            CheckName(elem4Save.Name, name4Save);
            IXEP_EmdElement domEmdElem = GetElement(elem4Work, elem4Save.Name);

            if (domEmdElem == null)
            {
                elem4Work.Elements.Add(elem4Save);
            }
            else
            {
                domEmdElem.LoadEmdElement(elem4Save);
            }
        }
예제 #20
0
        public IXEP_EmdElement CreateEmdElement()
        {
            IXEP_EmdElement elemEmd = XEP_EmdFactrory.CreateEmdElement();

            elemEmd.Name = XEP_EmdNames.s_KeyStirrup;
            //
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyStirrupDX, DX.ToString()));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyStirrupD, D.ToString()));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyStirrupMultiply, Multiply.ToString()));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyStirrupDsL, DsL.ToString()));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyStirrupDsR, DsR.ToString()));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyStirrupDss, Dss.ToString()));
            return(elemEmd);
        }
예제 #21
0
 public void LoadEmdElement(IXEP_EmdElement elem)
 {
     Name = elem.Name;
     Elements.Clear();
     m_attributes.Clear();
     foreach (var attribut in elem.AttHelp)
     {
         AddAttribute(attribut);
     }
     foreach (var childElem in elem.Elements)
     {
         Elements.Add(childElem);
     }
 }
 public void CreateFromEmdElement(IXEP_EmdElement elem)
 {
     XEP_BaseEmdFile.CheckName(elem.Name, XEP_EmdNames.s_KeyStirrupBranch);
     Points.Clear();
     foreach (var item in elem.Elements)
     {
         IXEP_EmdPointData pointData = XEP_EmdFactrory.CreateEmdPointData();
         pointData.CreateFromEmdElement(item);
         Points.Add(pointData);
     }
     IsActive    = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupIsActive).GetIntValue();
     IsDetailing = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupIsDetailing).GetIntValue();
     IsTorsion   = elem.GetAttribute(XEP_EmdNames.s_KeyStirrupIsTorsion).GetIntValue();
 }
        public IXEP_EmdElement CreateEmdElement()
        {
            IXEP_EmdElement elem = XEP_EmdFactrory.CreateEmdElement();

            elem.Name = XEP_EmdNames.s_KeyStirrupBranch;
            foreach (var item in Points)
            {
                elem.Elements.Add(item.CreateEmdElement());
            }
            elem.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyStirrupIsActive, IsActive.ToString()));
            elem.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyStirrupIsDetailing, IsDetailing.ToString()));
            elem.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyStirrupIsTorsion, IsTorsion.ToString()));
            return(elem);
        }
예제 #24
0
        static IXEP_EmdElement FindReinforcementElement4StirrupZones(IXEP_EmdElement elem4Work)
        {
            IXEP_EmdElement reinfElem = elem4Work;

            if (elem4Work.Name == XEP_EmdFileConstants.s_FakeRootElementName)
            { // more sections
                reinfElem = XEP_BaseEmdFile.GetElement(elem4Work, XEP_EmdNames.s_KeyReinforcement);
            }
            if (reinfElem == null)
            {
                throw new InvalidOperationException("There is not reinforcemnt element for stirrups !");
            }
            XEP_BaseEmdFile.CheckName(reinfElem.Name, XEP_EmdNames.s_KeyReinforcement);
            return(reinfElem);
        }
예제 #25
0
        public IXEP_EmdElement CreateEmdElement()
        {
            IXEP_EmdElement elemEmd = XEP_EmdFactrory.CreateEmdElement();

            elemEmd.Name = XEP_EmdNames.s_KeyFibre;
            IXEP_EmdAttribute attEmd = XEP_EmdFactrory.CreateEmdAttribute();

            attEmd.Name  = XEP_EmdNames.s_KeyFlag;
            attEmd.Value = Flag.ToString();
            elemEmd.AddAttribute(attEmd);
            //
            elemEmd.Elements.Add(Lcs.CreateEmdElement());
            elemEmd.Elements.Add(Principal.CreateEmdElement());
            return(elemEmd);
        }
예제 #26
0
        public IXEP_EmdElement CreateEmdElement()
        {
            IXEP_EmdElement elemEmd = XEP_EmdFactrory.CreateEmdElement();

            elemEmd.Name = XEP_EmdNames.s_KeyBar;
            //
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyBarComponentID, ComponentID.ToString()));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyBarX, X.ToString()));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyBarY, Y.ToString()));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyBarD, D.ToString()));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdFileConstants.s_RefAttributEmdTag + XEP_EmdNames.s_KeyBarMaterial, RefMaterial));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyBarIsActive, IsActive.ToString()));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyBarIsDetailing, IsDetailing.ToString()));
            return(elemEmd);
        }
예제 #27
0
        public IXEP_EmdElement CreateEmdElement()
        {
            IXEP_EmdElement emdElem = XEP_EmdFactrory.CreateEmdElement();

            emdElem.Name = Name;
            foreach (var attribut in Attributes)
            {
                emdElem.AddAttribute(attribut);
            }
            foreach (var childElem in Lines)
            {
                emdElem.Elements.Add(childElem.CreateEmdElement());
            }
            return(emdElem);
        }
예제 #28
0
        public IXEP_EmdElement CreateEmdElement()
        {
            IXEP_EmdElement elemEmd = XEP_EmdFactrory.CreateEmdElement();

            elemEmd.Name = XEP_EmdNames.s_KeyInternalForces;
            //
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyInternalForcesID, ID.ToString()));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyInternalForcesN, N.ToString()));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyInternalForcesMy, My.ToString()));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyInternalForcesMz, Mz.ToString()));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyInternalForcesMx, Mx.ToString()));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyInternalForcesVy, Vy.ToString()));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyInternalForcesVz, Vz.ToString()));
            elemEmd.AddAttribute(XEP_EmdFactrory.CreateEmdAttribute(XEP_EmdNames.s_KeyInternalForcesIsCritical, IsCritical.ToString()));
            return(elemEmd);
        }
        public List <IXEP_EmdInternalForcesData> GetInternalForces(int sectionID = -1)
        {
            if (sectionID != -1)
            {
                m_sectionID = sectionID;
            }
            if (m_sectionID < 0)
            {
                throw new InvalidOperationException("Section ID has to be possitive, input possitive number or call PrepareDocument with possitive number before !");
            }
            List <IXEP_EmdElement> domElems = GetElements(DocumentRoot, XEP_EmdNames.s_KeySection);

            if (DocumentRoot.Name == XEP_EmdNames.s_KeySection && domElems.Count == 0)
            { // only one section
                domElems.Add(DocumentRoot);
            }
            if (domElems == null || domElems.Count == 0)
            {
                return(new List <IXEP_EmdInternalForcesData>());
            }
            IXEP_EmdElement neededSection = null;

            foreach (var item in domElems)
            {
                int actID = item.GetAttribute(XEP_EmdNames.s_KeyID).GetIntValue();
                if (actID == m_sectionID)
                {
                    neededSection = item;
                    break;
                }
            }
            if (neededSection == null)
            {
                return(new List <IXEP_EmdInternalForcesData>());
            }
            List <IXEP_EmdElement>            domElemsInternalForces = GetElements(neededSection, XEP_EmdNames.s_KeyInternalForces);
            List <IXEP_EmdInternalForcesData> retVal = new List <IXEP_EmdInternalForcesData>();

            foreach (var item in domElemsInternalForces)
            {
                IXEP_EmdInternalForcesData emdData = XEP_EmdFactrory.CreateEmdInternalForcesData();
                emdData.CreateFromEmdElement(item);
                retVal.Add(emdData);
            }
            return(retVal);
        }
        public void PrepareZones(IXEP_EmdElement reinf4Stirrups, double sectionPos, string baseMat, double zoneBeg, double zoneEnd)
        {
            m_zonesBefore.Clear();
            m_zonesAfter.Clear();
            m_zone4Work      = null;
            m_sectionPos     = sectionPos;
            m_baseMat        = baseMat;
            m_zoneBeg        = zoneBeg;
            m_zoneEnd        = zoneEnd;
            m_reinf4Stirrups = reinf4Stirrups;
            XEP_BaseEmdFile.CheckName(m_reinf4Stirrups.Name, XEP_EmdNames.s_KeyReinforcement);
            List <IXEP_EmdElement> currentZoneCandidates = PrepareCurrentZoneCandidates();

            if (currentZoneCandidates == null || currentZoneCandidates.Count == 0)
            {
                PrepareZone4NoZones();
            }
            else if (currentZoneCandidates.Count == 1)
            {
                PrepareZoneFromElement(currentZoneCandidates[0]);
            }
            else
            {
                bool wasMatch = false;
                foreach (var zone in currentZoneCandidates)
                {
                    double actZoneBeg = zone.GetAttribute(XEP_EmdNames.s_KeyStirrupZoneZoneBeg).GetDoubleValue();
                    double actZoneEnd = zone.GetAttribute(XEP_EmdNames.s_KeyStirrupZoneZoneEnd).GetDoubleValue();
                    if (sectionPos > actZoneBeg && sectionPos < actZoneEnd)
                    {
                        PrepareZoneFromElement(zone);
                        wasMatch = true;
                        break;
                    }
                }
                if (!wasMatch)
                {
                    PrepareZoneFromElement(currentZoneCandidates[0]);
                }
            }
            if (m_zone4Work == null)
            {
                PrepareZone4NoZones();
            }
        }