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); } } }
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; } } } }
public IList<ILayer> GetLayers() { return Layers.Cast<ILayer>().ToList(); }