Export Tables

Export Tables

The classes listed in the table below expose read and write access to the tables used for mapping on export to various formats such as DWG and DGN. Each class contains (key, info) pairs of mapping data.

Class

Description

ExportLayerTable

Represents a table supporting a mapping of various layer properties (Category, name, color name) to layer name in the target export format.

ExportLinetypeTable

Represents a table supporting a mapping of linetype names in the target export format.

ExportPatternTable

Represents a table supporting a mapping of FillPattern names and ids to FillPattern names in the target export format.

ExportFontTable

Represents a table s upporting a mapping of font names in the target export format.
ExportLineweightTable Represents a table s upporting a mapping of lineweight names in the target export format.

Most of these tables are available through the BaseExportOptions class (the base class for options for DGN, DXF and DWG formats). The ExportLineweightTable is available from the DGNExportOptions class. Each table has a corresponding Get and Set method. To modify the mappings, get the corresponding table, make changes and then set it back to the options class.

The following example modifies the ExportLayerTable prior to exporting a DWG file.

Code Region: Export DWG with modified ExportLayerTable

public bool ExportDWGModifyLayerTable(Document document, View view)
{
    bool exported = false;
    IList<string> setupNames = BaseExportOptions.GetPredefinedSetupNames(document);
    if (setupNames.Count > 0)
    {
        // Get the export options for the first predefined setup
        DWGExportOptions dwgOptions = DWGExportOptions.GetPredefinedOptions(document, setupNames[0]);
               
        // Get the export layer table
        ExportLayerTable layerTable = dwgOptions.GetExportLayerTable();
               
        // Find the first mapping for the Ceilings category
        string category = "Ceilings";
        ExportLayerKey targetKey = layerTable.GetKeys().First<ExportLayerKey>(layerKey => layerKey.CategoryName == category);
        ExportLayerInfo targetInfo = layerTable[targetKey];
               
        // change the color name and cut color number for this mapping
        targetInfo.ColorName = "31";
        targetInfo.CutColorNumber = 31;
               
        // Set the change back to the map
        layerTable[targetKey] = targetInfo;
               
        // Set the modified table back to the options
        dwgOptions.SetExportLayerTable(layerTable);

        ICollection<ElementId> views = new List<ElementId>();
        views.Add(view.Id);
               
        exported = document.Export(Path.GetDirectoryName(document.PathName),
            Path.GetFileNameWithoutExtension(document.PathName), views, dwgOptions);
    }

    return exported;
}