Document manager that handles CAD document lifecycle and provides the main entry point for the CAD viewer.

This singleton class manages:

  • Document creation and opening (from URLs or file content)
  • View and context management
  • Command registration and execution
  • Font loading for text rendering
  • Event handling for document lifecycle

The manager follows a singleton pattern to ensure only one instance manages the application state.

Properties

events: {
    documentActivated: AcCmEventManager<AcDbDocumentEventArgs>;
    documentCreated: AcCmEventManager<AcDbDocumentEventArgs>;
} = ...

Events fired during document lifecycle

Type declaration

Accessors

Methods

  • Loads default fonts for CAD text rendering.

    This method loads either the specified fonts or falls back to default Chinese fonts (specifically 'simkai') if no fonts are provided. The loaded fonts are used for rendering CAD text entities like MText and Text in the viewer.

    It is better to load default fonts when viewer is initialized so that the viewer can render text correctly if fonts used in the document are not available.

    Parameters

    • Optionalfonts: string[]

      Optional array of font names to load. If not provided or null, defaults to ['simkai'] for Chinese text support

    Returns Promise<void>

    Promise that resolves when all specified fonts are loaded

    // Load default fonts (simkai)
    await docManager.loadDefaultFonts();

    // Load specific fonts
    await docManager.loadDefaultFonts(['Arial', 'SimSun']);

    // Load no fonts (empty array)
    await docManager.loadDefaultFonts([]);
    • AcApFontLoader.load - The underlying font loading implementation
    • createExampleDoc - Method that uses this for example document creation
  • Loads the specified fonts for text rendering.

    Parameters

    • fonts: string[]

      Array of font names to load

    Returns Promise<void>

    Promise that resolves when fonts are loaded

    await docManager.loadFonts(['Arial', 'Times New Roman']);
    
  • Search through all of the global and untranslated names in all of the command groups in the command stack starting at the top of the stack trying to find a match with cmdName. If a match is found, the matched AcEdCommand object is returned. Otherwise undefined is returned to indicate that the command could not be found. If more than one command of the same name is present in the command stack (that is, in separate command groups), then the first one found is used.

    The command is only returned if it is compatible with that open mode of the current document. Higher value modes are compatible with lower value modes.

    Parameters

    • cmdName: string

      Input the command name to search for

    Returns undefined | AcEdCommand

    Return the matched AcEdCommand object if a match is found and compatible with the open mode of the current document. Otherwise, return undefined.

  • Search through all of the local and translated names in all of the command groups in the command stack starting at the top of the stack trying to find a match with cmdName. If a match is found, the matched AcEdCommand object is returned. Otherwise undefined is returned to indicate that the command could not be found. If more than one command of the same name is present in the command stack (that is, in separate command groups), then the first one found is used.

    The command which is compatible with the open mode of the current document is only returned

    Parameters

    • cmdName: string

      Input the command name to search for

    Returns undefined | AcEdCommand

    Return the matched AcEdCommand object if a match is found and compatible with the open mode of the current document. Otherwise, return undefined.

  • Protected

    Performs setup operations after a document opening attempt.

    This protected method is called automatically after any document opening operation. If the document was successfully opened, it dispatches the documentActivated event, sets up layout information, and zooms the view to fit the content.

    Parameters

    • isSuccess: boolean

      Whether the document was successfully opened

    Returns void

  • Protected

    Performs cleanup operations before opening a new document.

    This protected method is called automatically before any document opening operation. It clears the current view to prepare for the new document content.

    Returns void

  • Opens a CAD document from file content.

    This method loads a document from the provided file content (binary data) and replaces the current document. It handles the complete document lifecycle including before/after open events.

    Parameters

    • fileName: string

      The name of the file being opened (used for format detection)

    • content: ArrayBuffer

      The file content

    • options: AcApOpenDatabaseOptions

      Database opening options including font loader settings

    Returns Promise<boolean>

    Promise that resolves to true if the document was successfully opened, false otherwise

    const fileContent = await file.arrayBuffer();
    const success = await docManager.openDocument('drawing.dwg', fileContent, options);
  • Opens a CAD document from a URL.

    This method loads a document from the specified URL and replaces the current document. It handles the complete document lifecycle including before/after open events.

    Parameters

    • url: string

      The URL of the CAD file to open

    • Optionaloptions: AcApOpenDatabaseOptions

      Optional database opening options. If not provided, default options with font loader will be used

    Returns Promise<boolean>

    Promise that resolves to true if the document was successfully opened, false otherwise

    const success = await docManager.openUrl('https://example.com/drawing.dwg');
    if (success) {
    console.log('Document opened successfully');
    }
  • Fuzzy search for commands by prefix using the command iterator.

    This method iterates through all commands in all command groups and returns those whose global or local names start with the provided prefix. The search is case-insensitive. Only commands which are compatible with that open mode of the current document are returned. Higher value modes are compatible with lower value modes.

    Parameters

    • prefix: string

      The prefix string to search for. Case-insensitive.

    Returns AcEdCommandIteratorItem[]

    An array of objects containing matched commands and their corresponding group names.

  • Executes a command by its string name.

    This method looks up a registered command by name and executes it with the current context. It checks if the command's required mode is compatible with the document's current mode. If the command is not found or not compatible, an error is thrown.

    Parameters

    • cmdStr: string

      The command string to execute (e.g., 'pan', 'zoom', 'select')

    Returns void

    If the command is not found or if the command's mode is not compatible with the document's mode

    docManager.sendStringToExecute('zoom');
    docManager.sendStringToExecute('pan');
  • Configures layout information for the current view.

    Sets up the active layout block table record ID and model space block table record ID based on the current document's space configuration.

    Returns void