public void Initialise(XElement xElement, IDocumentAccessor accessor)
        {
            xElement = Persistence.ThisOrSingleChild(XName, xElement);

            ISpatialDefinition spatial;
            bool hasZ, hasM;
            ElementType = Persistence.ElementSet.Parse(xElement, accessor, out spatial, out hasZ, out hasM);
            SetSpatial(spatial);
            HasZ = hasZ;
            HasM = hasM;

            Arguments = Persistence.Arguments
                .Parse(xElement, accessor)
                .ToList();

            GridParameters = new ParametersGridRegular();
            GridParameters.Initialise(xElement, accessor);

            ((ArgumentValueGridRegular)Arguments[0]).Value = GridParameters;
        }
        public void Initialise(XElement xElement, IDocumentAccessor accessor)
        {
            xElement = Persistence.ThisOrSingleChild(XName, xElement);

            ISpatialDefinition spatial;
            bool hasZ, hasM;
            ElementType = Persistence.ElementSet.Parse(xElement, accessor, out spatial, out hasZ, out hasM);
            SetSpatial(spatial);
            HasZ = hasZ;
            HasM = hasM;

            Arguments = Persistence.Arguments
                .Parse(xElement, accessor)
                .ToList();

            GridParameters = new ParametersGridRegular();
            GridParameters.Initialise(xElement, accessor);

            ((ArgumentValueGridRegular)Arguments[0]).Value = GridParameters;

            FastN = Utilities.Xml.GetAttribute(xElement, "fastN", true);

            ElementCount = PointsLocated == Located.CellCentre
                ? GridParameters.CellCountX * GridParameters.CellCountY
                : (GridParameters.CellCountX + 1) * (GridParameters.CellCountY + 1);
        }