Esempio n. 1
0
        private void EnsureTableItems()
        {
            var existingDimStyles = GetExistingNames(DimensionStyles.Cast <DxfSymbolTableFlags>());

            AddMissingDimensionStyles(existingDimStyles, new[] { Header.DimensionStyleName });
            AddMissingDimensionStyles(existingDimStyles, Entities.OfType <DxfDimensionBase>().Select(d => d.DimensionStyleName));
            AddMissingDimensionStyles(existingDimStyles, Entities.OfType <DxfLeader>().Select(d => d.DimensionStyleName));
            AddMissingDimensionStyles(existingDimStyles, Entities.OfType <DxfTolerance>().Select(d => d.DimensionStyleName));

            var existingLayers = GetExistingNames(Layers.Cast <DxfSymbolTableFlags>());

            AddMissingLayers(existingLayers, new[] { Header.CurrentLayer });
            AddMissingLayers(existingLayers, Blocks.Select(b => b.Layer));
            AddMissingLayers(existingLayers, Blocks.SelectMany(b => b.Entities.Select(e => e.Layer)));
            AddMissingLayers(existingLayers, Entities.Select(e => e.Layer));
            AddMissingLayers(existingLayers, Objects.OfType <DxfLayerFilter>().SelectMany(l => l.LayerNames));
            AddMissingLayers(existingLayers, Objects.OfType <DxfLayerIndex>().SelectMany(l => l.LayerNames));

            var existingLineTypes = GetExistingNames(LineTypes.Cast <DxfSymbolTableFlags>());

            AddMissingLineTypes(existingLineTypes, new[] { Header.CurrentEntityLineType, Header.DimensionLineType });
            AddMissingLineTypes(existingLineTypes, Layers.Select(l => l.LineTypeName));
            AddMissingLineTypes(existingLineTypes, Blocks.SelectMany(b => b.Entities.Select(e => e.LineTypeName)));
            AddMissingLineTypes(existingLineTypes, Entities.Select(e => e.LineTypeName));
            AddMissingLineTypes(existingLineTypes, Objects.OfType <DxfMLineStyle>().SelectMany(m => m.Elements.Select(e => e.LineType)));

            var existingStyles = GetExistingNames(Styles.Cast <DxfSymbolTableFlags>());

            AddMissingStyles(existingStyles, Entities.OfType <DxfArcAlignedText>().Select(a => a.TextStyleName));
            AddMissingStyles(existingStyles, Entities.OfType <DxfAttribute>().Select(a => a.TextStyleName));
            AddMissingStyles(existingStyles, Entities.OfType <DxfAttributeDefinition>().Select(a => a.TextStyleName));
            AddMissingStyles(existingStyles, Entities.OfType <DxfMText>().Select(m => m.TextStyleName));
            AddMissingStyles(existingStyles, Entities.OfType <DxfText>().Select(t => t.TextStyleName));
            AddMissingStyles(existingStyles, Objects.OfType <DxfMLineStyle>().Select(m => m.StyleName));

            var existingUcs = GetExistingNames(UserCoordinateSystems.Cast <DxfSymbolTableFlags>());

            AddMissingUcs(existingUcs, new[] {
                Header.UCSDefinitionName,
                Header.UCSName,
                Header.OrthoUCSReference,
                Header.PaperspaceUCSDefinitionName,
                Header.PaperspaceUCSName,
                Header.PaperspaceOrthoUCSReference,
            });

            var existingAppIds = GetExistingNames(ApplicationIds.Cast <DxfSymbolTableFlags>());

            AddMissingAppIds(existingAppIds, Entities.SelectMany(e => e.XData.Keys));
            AddMissingAppIds(existingAppIds, Objects.SelectMany(o => o.XData.Keys));
            AddMissingAppIds(existingAppIds, Blocks.SelectMany(b => b.XData.Keys));

            // don't need to do anything special for BlockRecords or ViewPorts
        }
        private void CreateLayerHierarchy()
        {
            IEnumerable <AgsLayer> layers = Layers.Cast <AgsLayer>();

            foreach (AgsLayer layer in layers)
            {
                if (layer.MapLayerInfo.Parent != null)
                {
                    layer.Parent = layers.First(lyr => lyr.MapLayerInfo == layer.MapLayerInfo.Parent);

                    if (layer.Parent.Children == null)
                    {
                        layer.Parent.Children = new List <CommonLayer>();
                    }

                    layer.Parent.Children.Add(layer);
                }
            }
        }
Esempio n. 3
0
        private void CreateLayerHierarchy()
        {
            IEnumerable <ArcImsLayer> layers = Layers.Cast <ArcImsLayer>();

            foreach (ArcImsLayer layer in layers)
            {
                if (!String.IsNullOrEmpty(layer.LayerInfo.ParentLayerID))
                {
                    layer.Parent = layers.First(lyr => lyr.LayerInfo.ID == layer.LayerInfo.ParentLayerID);

                    if (layer.Parent.Children == null)
                    {
                        layer.Parent.Children = new List <CommonLayer>();
                    }

                    layer.Parent.Children.Add(layer);

                    if (layer.Parent.Type == CommonLayerType.Feature)
                    {
                        layer.Parent.Type = CommonLayerType.Annotation;
                    }
                }
            }
        }
Esempio n. 4
0
 public IList<ILayer> GetLayers()
 {
     return Layers.Cast<ILayer>().ToList();
 }