API Reference

Class

VisioDocument

Namespace OfficeIMO.Visio
Assembly OfficeIMO.Visio

Represents a Visio document containing pages.

Inheritance

  • Object
  • VisioDocument

Usage

This type appears in these public API surfaces even when no hand-authored example is attached directly to the page.

Returned or exposed by

Accepted by parameters

Constructors

Methods

public VisioPage AddBackgroundPage(String name, Double width = 8.26771653543307, Double height = 11.69291338582677, VisioMeasurementUnit unit = Inches, Nullable<Int32> id = null) #
Returns: VisioPage

Adds a Visio background page that can be reused by foreground pages.

Parameters

name System.String requiredposition: 0
Name of the background page.
width System.Double = 8.26771653543307 optionalposition: 1
Page width.
height System.Double = 11.69291338582677 optionalposition: 2
Page height.
unit OfficeIMO.Visio.VisioMeasurementUnit = Inches optionalposition: 3
Measurement unit for width and height.
id System.Nullable{System.Int32} = null optionalposition: 4
Optional page identifier.
public VisioPage AddPage(String name, Double width = 8.26771653543307, Double height = 11.69291338582677, VisioMeasurementUnit unit = Inches, Nullable<Int32> id = null) #
Returns: VisioPage

Adds a new page to the document.

Parameters

name System.String requiredposition: 0
Name of the page.
width System.Double = 8.26771653543307 optionalposition: 1
Page width.
height System.Double = 11.69291338582677 optionalposition: 2
Page height.
unit OfficeIMO.Visio.VisioMeasurementUnit = Inches optionalposition: 3
Measurement unit for width and height.
id System.Nullable{System.Int32} = null optionalposition: 4
Optional page identifier. If not specified, uses zero-based index.
Create 2 overloads
public static VisioDocument Create(Stream stream) #
Returns: VisioDocument

Creates a new VisioDocument with the given save path.

Parameters

path System.String requiredposition: 0
Path where the document will be saved.
Create(System.IO.Stream stream) #

Creates a new VisioDocument that will be saved to the provided stream.

Parameters

stream System.IO.Stream required
Destination stream for the VSDX package.
EnsureBuiltinMaster(System.String arg1) #

Ensures a built-in master exists for a given NameU (e.g. Rectangle) and returns it. IDs are stable so that generated XML is deterministic and closer to assets.

Parameters

arg1 System.String required
public VisioMaster GetMaster(String nameU) #
Returns: VisioMaster

Gets a registered master by NameU.

Parameters

nameU System.String requiredposition: 0
public Void ImportMasters(String vsdxPath, IEnumerable<String> names = null) #
Returns: Void

Imports master names from a VSDX file and registers only the library-supported generated equivalents so shapes can reference them by NameU. If names is null or empty, all discoverable supported masters are registered.

Parameters

vsdxPath System.String requiredposition: 0
names System.Collections.Generic.IEnumerable{System.String} = null optionalposition: 1
public IReadOnlyList<VisioMaster> ImportMastersAndGet(String vsdxPath, IEnumerable<String> names = null) #
Returns: IReadOnlyList<VisioMaster>

Imports master names from a VSDX file and returns the registered generated masters that are natively implemented by the library.

Parameters

vsdxPath System.String requiredposition: 0
names System.Collections.Generic.IEnumerable{System.String} = null optionalposition: 1
ImportStencilMasters 2 overloads
public Void ImportStencilMasters(String packagePath, IEnumerable<String> names = null) #
Returns: Void

Imports actual master definitions from a user-supplied Visio stencil, drawing, or template package. Unlike String>), this preserves the package master XML so shapes can use real external stencil artwork. Use this only for stencil packs the caller is allowed to embed.

Parameters

packagePath System.String requiredposition: 0
Path to a `.vssx`, `.vsdx`, or `.vstx` package.
names System.Collections.Generic.IEnumerable{System.String} = null optionalposition: 1
Optional filters matching master NameU, display name, relationship id, numeric id, or normalized slug.
public Void ImportStencilMasters(IEnumerable<VisioStencilShape> shapes) #
Returns: Void

Imports the package-backed masters required by the provided stencil shapes. Shapes loaded from multiple `.vssx`, `.vstx`, or `.vsdx` packages are grouped by source package.

Parameters

shapes System.Collections.Generic.IEnumerable{OfficeIMO.Visio.Stencils.VisioStencilShape} requiredposition: 0
Stencil shapes with SourcePackagePath metadata.
ImportStencilMastersAndGet 2 overloads
public IReadOnlyList<VisioMaster> ImportStencilMastersAndGet(String packagePath, IEnumerable<String> names = null) #
Returns: IReadOnlyList<VisioMaster>

Imports actual master definitions from a user-supplied Visio stencil, drawing, or template package and returns the registered masters.

Parameters

packagePath System.String requiredposition: 0
Path to a `.vssx`, `.vsdx`, or `.vstx` package.
names System.Collections.Generic.IEnumerable{System.String} = null optionalposition: 1
Optional filters matching master NameU, display name, relationship id, numeric id, or normalized slug.
public IReadOnlyList<VisioMaster> ImportStencilMastersAndGet(IEnumerable<VisioStencilShape> shapes) #
Returns: IReadOnlyList<VisioMaster>

Imports the package-backed masters required by the provided stencil shapes and returns the imported masters.

Parameters

shapes System.Collections.Generic.IEnumerable{OfficeIMO.Visio.Stencils.VisioStencilShape} requiredposition: 0
Stencil shapes with SourcePackagePath metadata.
public static Boolean IsBuiltinMasterSupported(String nameU) #
Returns: Boolean

Returns whether the library can generate a built-in master with the provided universal name.

Parameters

nameU System.String requiredposition: 0
public IReadOnlyList<VisioMaster> LearnMastersFromVsdx(String vsdxPath, IEnumerable<String> names = null) #
Returns: IReadOnlyList<VisioMaster>

Learns master names from a VSDX file and registers only the library-supported generated equivalents so shapes can reference them by NameU. This does not ingest, clone, or depend on the source VSDX as a runtime template.

Parameters

vsdxPath System.String requiredposition: 0
Path to a Visio package that contains master metadata.
names System.Collections.Generic.IEnumerable{System.String} = null optionalposition: 1
Optional filters matching master NameU, display name, relationship id, numeric id, or normalized slug.
public static IReadOnlyList<MasterInfo> ListMastersIn(String vsdxPath) #
Returns: IReadOnlyList<MasterInfo>

Lists masters available in a given VSDX file (helper that proxies String)).

Parameters

vsdxPath System.String requiredposition: 0
Load 2 overloads
public static VisioDocument Load(Stream stream) #
Returns: VisioDocument

Loads an existing .vsdx file into a VisioDocument.

Parameters

filePath System.String requiredposition: 0
Load(System.IO.Stream stream) #

Loads an existing .vsdx document from a stream.

Parameters

stream System.IO.Stream required
LoadCore(System.String filePath) #

Loads an existing .vsdx file into a VisioDocument.

Parameters

filePath System.String required
Path to the .vsdx file.
RegisterMaster 2 overloads
public VisioMaster RegisterMaster(VisioMaster master) #
Returns: VisioMaster

Registers a master on the document so it can be reused by name.

Parameters

master OfficeIMO.Visio.VisioMaster requiredposition: 0
public VisioMaster RegisterMaster(String nameU, VisioShape shape, String id = null) #
Returns: VisioMaster

Registers a master blueprint under a NameU and returns the registered master.

Parameters

nameU System.String requiredposition: 0
shape OfficeIMO.Visio.VisioShape requiredposition: 1
id System.String = null optionalposition: 2
public Void RequestRecalcOnOpen() #
Returns: Void

Requests Visio to relayout and reroute connectors when the document is opened.

Save 3 overloads
public Void Save() #
Returns: Void

Saves the document to the path specified when created.

public Void Save(Stream stream) #
Returns: Void

Saves the document to a specified file path.

Parameters

filePath System.String requiredposition: 0
Save(System.IO.Stream stream) #

Saves the document to a specified stream.

Parameters

stream System.IO.Stream required
SaveInternalCore 2 overloads
SaveInternalCore(System.String filePath) #

Core save routine that writes the VSdx structure.

Parameters

filePath System.String required
Target path.
SaveInternalCore(System.IO.Stream destination) #

Core save routine that writes the VSDX structure to a stream.

Parameters

destination System.IO.Stream required
Target stream.
public Boolean TryGetMaster(String nameU, out VisioMaster master) #
Returns: Boolean

Attempts to find a registered master by NameU.

Parameters

nameU System.String requiredposition: 0
master OfficeIMO.Visio.VisioMaster@ requiredposition: 1
public Void UseMastersFromTemplate(String vsdxPath) #
Returns: Void

Backward-compatible alias for String>). This learns supported master names from a VSDX file but does not use it as a runtime template.

Parameters

vsdxPath System.String requiredposition: 0
Path to a VSDX file that contains canonical masters.
public IReadOnlyList<String> Validate() #
Returns: IReadOnlyList<String>

Validates the in-memory document model and returns authoring-time issues.

Properties

public IReadOnlyList<VisioPage> Pages { get; } #

Gets the collection of pages in the document.

public IReadOnlyCollection<VisioMaster> Masters { get; } #

Gets the masters currently registered on the document.

public VisioTheme Theme { get; set; } #

Gets or sets the theme applied to the document.

public String Title { get; set; } #

Gets or sets the title of the document.

public String Author { get; set; } #

Gets or sets the author of the document.

public Boolean UseMastersByDefault { get; set; } #

When true, shapes with a known NameU (e.g. "Rectangle") are automatically backed by a document master if none is assigned explicitly. Defaults to false to preserve current library behavior. Set to true to align with native Visio authoring semantics and asset templates.

public Boolean WriteMasterDeltasOnly { get; set; } #

When writing page shapes that reference a master, emit only delta cells required for the page instance (e.g., PinX/PinY and minimal style hints) instead of a full XForm block. This better matches Visio-authored files and the provided assets. Defaults to true.

public static IReadOnlyCollection<String> SupportedBuiltinMasters { get; } #

Returns the built-in master names that this library can generate natively.

Extension Methods

public static VisioDocument AddStencilGalleryDocument(VisioDocument document, VisioStencilCatalog catalog, VisioStencilGalleryDocumentOptions options = null) #
Returns: VisioDocument

Adds stencil gallery review pages to an existing document.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
catalog OfficeIMO.Visio.Stencils.VisioStencilCatalog requiredposition: 1
options OfficeIMO.Visio.Stencils.VisioStencilGalleryDocumentOptions = null optionalposition: 2
public static IReadOnlyList<VisioDiagramQualityIssue> AnalyzeVisualQuality(VisioDocument document, VisioDiagramQualityOptions options = null) #
Returns: IReadOnlyList<VisioDiagramQualityIssue>

Analyzes every page in a document for common visual quality issues.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
Document to analyze.
options OfficeIMO.Visio.VisioDiagramQualityOptions = null optionalposition: 1
Analysis options.
ApplyStencilMigration 2 overloads
public static VisioStencilMigrationResult ApplyStencilMigration(VisioDocument document, VisioStencilMigrationMap map) #
Returns: VisioStencilMigrationResult

Applies a stencil migration map to every foreground page in the document.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
map OfficeIMO.Visio.VisioStencilMigrationMap requiredposition: 1
public static VisioStencilMigrationResult ApplyStencilMigration(VisioDocument document, VisioStencilMigrationPlan plan, VisioStencilMigrationMap map) #
Returns: VisioStencilMigrationResult

Applies a previously reviewed stencil migration plan to a document. The current document must still match the planned pages, shapes, match rules, and replacement stencils.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
Document to update.
plan OfficeIMO.Visio.VisioStencilMigrationPlan requiredposition: 1
Reviewed migration plan.
map OfficeIMO.Visio.VisioStencilMigrationMap requiredposition: 2
Migration map used to create the plan.
public static VisioDocument ArchitectureDiagram(VisioDocument document, String pageName, Action<VisioArchitectureDiagramBuilder> configure) #
Returns: VisioDocument

Adds a semantic architecture diagram page and returns the document for chaining.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
pageName System.String requiredposition: 1
configure System.Action{OfficeIMO.Visio.Diagrams.VisioArchitectureDiagramBuilder} requiredposition: 2
public static VisioFluentDocument AsFluent(VisioDocument doc) #
Returns: VisioFluentDocument

Wraps the document in a VisioFluentDocument for fluent configuration.

Parameters

doc OfficeIMO.Visio.VisioDocument requiredposition: 0
The document to wrap.
public static VisioDocument BlockDiagram(VisioDocument document, String pageName, Action<VisioBlockDiagramBuilder> configure) #
Returns: VisioDocument

Adds a semantic block diagram page and returns the document for chaining.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
pageName System.String requiredposition: 1
configure System.Action{OfficeIMO.Visio.Diagrams.VisioBlockDiagramBuilder} requiredposition: 2
public static VisioInspectionSnapshot CreateInspectionSnapshot(VisioDocument document) #
Returns: VisioInspectionSnapshot

Creates a stable, data-oriented snapshot of the document structure.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
public static VisioStencilProfile CreateStencilProfile(VisioDocument document) #
Returns: VisioStencilProfile

Creates a deterministic stencil usage profile for the document.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
public static VisioDocument DependencyDiagram(VisioDocument document, String pageName, Action<VisioDependencyDiagramBuilder> configure) #
Returns: VisioDocument

Adds an automatically layered dependency diagram page and returns the document for chaining.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
pageName System.String requiredposition: 1
configure System.Action{OfficeIMO.Visio.Diagrams.VisioDependencyDiagramBuilder} requiredposition: 2
DuplicatePage 2 overloads
public static VisioPage DuplicatePage(VisioDocument document, VisioPage sourcePage, String name = null) #
Returns: VisioPage

Duplicates a page in the same document, preserving page settings, layers, shapes, and internal connectors.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
Document that owns the source page and receives the duplicate.
sourcePage OfficeIMO.Visio.VisioPage requiredposition: 1
Page to duplicate.
name System.String = null optionalposition: 2
Optional name for the duplicate. When omitted, a unique copy name is generated.

Returns

The duplicated page.

public static VisioPage DuplicatePage(VisioDocument document, VisioPage sourcePage, VisioPageDuplicationOptions options) #
Returns: VisioPage

Duplicates a page in the same document, preserving page settings, layers, shapes, and internal connectors.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
Document that owns the source page and receives the duplicate.
sourcePage OfficeIMO.Visio.VisioPage requiredposition: 1
Page to duplicate.
name System.String = null requiredposition: 2
Optional name for the duplicate. When omitted, a unique copy name is generated.

Returns

The duplicated page.

public static VisioDocument EnsureVisualQuality(VisioDocument document, VisioDiagramQualityOptions options = null, VisioDiagramQualityIssueSeverity minimumSeverity = Warning) #
Returns: VisioDocument

Throws when a document contains visual quality issues at or above the requested severity.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
options OfficeIMO.Visio.VisioDiagramQualityOptions = null optionalposition: 1
minimumSeverity OfficeIMO.Visio.VisioDiagramQualityIssueSeverity = Warning optionalposition: 2
public static VisioDocument Flowchart(VisioDocument document, String pageName, Action<VisioFlowchartBuilder> configure) #
Returns: VisioDocument

Adds a semantic flowchart page and returns the document for chaining.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
pageName System.String requiredposition: 1
configure System.Action{OfficeIMO.Visio.Diagrams.VisioFlowchartBuilder} requiredposition: 2
public static VisioDiagramQualityReport GetVisualQualityReport(VisioDocument document, VisioDiagramQualityOptions options = null) #
Returns: VisioDiagramQualityReport

Creates a visual quality report for every page in a document.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
options OfficeIMO.Visio.VisioDiagramQualityOptions = null optionalposition: 1
public static VisioDocument GraphDiagram(VisioDocument document, String pageName, Action<VisioGraphDiagramBuilder> configure) #
Returns: VisioDocument

Adds an automatically laid out generic graph page and returns the document for chaining.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
pageName System.String requiredposition: 1
configure System.Action{OfficeIMO.Visio.Diagrams.VisioGraphDiagramBuilder} requiredposition: 2
public static VisioDocument NetworkDiagram(VisioDocument document, String pageName, Action<VisioNetworkDiagramBuilder> configure) #
Returns: VisioDocument

Adds a semantic network diagram page and returns the document for chaining.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
pageName System.String requiredposition: 1
configure System.Action{OfficeIMO.Visio.Diagrams.VisioNetworkDiagramBuilder} requiredposition: 2
public static VisioDocument NetworkTopologyDiagram(VisioDocument document, String pageName, Action<VisioNetworkTopologyDiagramBuilder> configure) #
Returns: VisioDocument

Adds a semantic network topology page and returns the document for chaining.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
pageName System.String requiredposition: 1
configure System.Action{OfficeIMO.Visio.Diagrams.VisioNetworkTopologyDiagramBuilder} requiredposition: 2
public static VisioDocument OrgChartDiagram(VisioDocument document, String pageName, Action<VisioOrgChartDiagramBuilder> configure) #
Returns: VisioDocument

Adds a semantic org chart page and returns the document for chaining.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
pageName System.String requiredposition: 1
configure System.Action{OfficeIMO.Visio.Diagrams.VisioOrgChartDiagramBuilder} requiredposition: 2
public static VisioStencilMigrationPlan PlanStencilMigration(VisioDocument document, VisioStencilMigrationMap map) #
Returns: VisioStencilMigrationPlan

Plans a stencil migration map for every foreground page in the document without modifying the document.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
map OfficeIMO.Visio.VisioStencilMigrationMap requiredposition: 1
public static VisioDocument PolishDiagrams(VisioDocument document, VisioDiagramPolishOptions options = null) #
Returns: VisioDocument

Applies a deterministic cleanup pass to every foreground page in the document.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
Document whose pages should be polished.
options OfficeIMO.Visio.VisioDiagramPolishOptions = null optionalposition: 1
Optional polish settings.
SaveAsPng 2 overloads
public static Void SaveAsPng(VisioDocument document, String path, VisioPngSaveOptions options = null) #
Returns: Void

Saves the selected document page as PNG without requiring Microsoft Visio desktop automation.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
path System.String requiredposition: 1
options OfficeIMO.Visio.VisioPngSaveOptions = null optionalposition: 2
public static Void SaveAsPng(VisioDocument document, Stream stream, VisioPngSaveOptions options = null) #
Returns: Void

Saves the selected document page as PNG without requiring Microsoft Visio desktop automation.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
path System.String requiredposition: 1
options OfficeIMO.Visio.VisioPngSaveOptions = null optionalposition: 2
SaveAsSvg 2 overloads
public static Void SaveAsSvg(VisioDocument document, String path, VisioSvgSaveOptions options = null) #
Returns: Void

Saves the selected document page as SVG without requiring Microsoft Visio desktop automation.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
path System.String requiredposition: 1
options OfficeIMO.Visio.VisioSvgSaveOptions = null optionalposition: 2
public static Void SaveAsSvg(VisioDocument document, Stream stream, VisioSvgSaveOptions options = null) #
Returns: Void

Saves the selected document page as SVG without requiring Microsoft Visio desktop automation.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
path System.String requiredposition: 1
options OfficeIMO.Visio.VisioSvgSaveOptions = null optionalposition: 2
public static VisioDocument SequenceDiagram(VisioDocument document, String pageName, Action<VisioSequenceDiagramBuilder> configure) #
Returns: VisioDocument

Adds a semantic sequence diagram page and returns the document for chaining.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
pageName System.String requiredposition: 1
configure System.Action{OfficeIMO.Visio.Diagrams.VisioSequenceDiagramBuilder} requiredposition: 2
public static VisioDocument SwimlaneDiagram(VisioDocument document, String pageName, Action<VisioSwimlaneDiagramBuilder> configure) #
Returns: VisioDocument

Adds a semantic swimlane diagram page and returns the document for chaining.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
pageName System.String requiredposition: 1
configure System.Action{OfficeIMO.Visio.Diagrams.VisioSwimlaneDiagramBuilder} requiredposition: 2
public static VisioDocument TimelineDiagram(VisioDocument document, String pageName, Action<VisioTimelineDiagramBuilder> configure) #
Returns: VisioDocument

Adds a semantic timeline page and returns the document for chaining.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
pageName System.String requiredposition: 1
configure System.Action{OfficeIMO.Visio.Diagrams.VisioTimelineDiagramBuilder} requiredposition: 2
public static Byte[] ToPng(VisioDocument document, VisioPngSaveOptions options = null) #
Returns: Byte[]

Renders the selected document page to PNG bytes without requiring Microsoft Visio desktop automation.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
options OfficeIMO.Visio.VisioPngSaveOptions = null optionalposition: 1
public static String ToSvg(VisioDocument document, VisioSvgSaveOptions options = null) #
Returns: String

Renders the selected document page to SVG without requiring Microsoft Visio desktop automation.

Parameters

document OfficeIMO.Visio.VisioDocument requiredposition: 0
options OfficeIMO.Visio.VisioSvgSaveOptions = null optionalposition: 1