MVD Visio UserManual
MVD Visio UserManual
MVD Visio UserManual
Table of contents
Overview ..........................................................................................................2
Structure of an MVD ........................................................................................2
MS Visio Solution Overview .............................................................................2
Installation ....................................................................................................3
Creating diagrams............................................................................................4
Diagram overview.........................................................................................4
Variable Concept..........................................................................................5
Static Concept ..............................................................................................7
Structure of an MVD
IFC Release Independent Definitions
Documents Diagrams
C#3
High Level Description
IFC2x?
Documents Diagrams
Concept Definitions
C#2 C#3 C#1 C#4 C#6
C#1 C#2 C#3 C#4 C#5
C#7
Additional documentation
The MVD format is divided into two main parts; IFC Independent (blue) and
IFC dependent (orange). The IFC independent part describes the view on a
generic level without making any references to the IFC model. The audiences
for this part are end users of software, consultants and decision makers in
software companies. The IFC dependent part is done separately for each
supported IFC release and it describes how the generic definition is
implemented using a specific IFC release. The audiences for this part are
developers in software companies and organizers of IFC certification.
1
IAI_IFCModelViewDefinitionFormat.pdf
This stencil contains the Visual Basic for Applications (VBA) code, which adds
functionality to the solution. The VBA code will not run unless you allow VBA
content in Macro Security. If you choose ‘Medium’ as the macro security level
you will be asked once each time you open the template if you allow the VBA
code to execute. This is the recommended approach.
The VBA code makes use of some COM components, which must be installed
and referenced to get the full functionality. If these components are missing
some features will be unavailable.
MSXML4 : this component is used for reading and writing XML files. If
the component is missing it can be downloaded from the Microsoft web
site.
Microsoft Scripting Runtime : this component installs with the
Windows operating system if you have Windows 2000 or later.
Microsoft Common Dialog Control : this component is used for the
File Open and File Save dialogs. The component also installs with
Windows, but there may be some registration issues. The code in the
template contains a fallback solution. If this component does not work,
a simple form will be shown into which you can write or paste the
required file name. This is not perfect, but will allow you to read and
write XML files.
The VBA code in the Template may be freely used for any purpose. However,
if you make improvements to the code it would be in the spirit of this effort to
offer such improvements back to the community. Also it is not allowed to
modify the code and to distribute the template with the same name. It has to
be made clear that a modified template is a branch of the original version.
This rule is made purely for avoiding confusion among users.
Creating diagrams
Diagram overview
Each diagram is represented by one Page in the Visio Document (Drawing).
This rule is absolute. The underlying code has been designed for one diagram
per page and anything else will produce unpredictable results. Typically the
whole Visio document represents one View Definition, but this rule is not
absolute.
Each page should have a page frame (‘Page Frame’ master), which is
dropped to an empty page in Visio. This creates the frame for the page and
adds some properties on the page itself. You can view the custom properties
of a page by clicking on an empty spot on the page and selecting View >
‘Custom Properties Window’. The texts in the frame are changed by modifying
the page properties; they cannot be edited in place. One of the properties is
Margin. If your printer is cutting of part of the frame you may increase the
margin or you can decrease it if your printer has a narrower margin. The
default value for the margin is 10mm.
Each page must have exactly one variable concept (‘Variable Concept’
master). Dropping this shape on the page shows a dialog in which you can
specify the properties of the variable concept. It also creates a reference
between the variable concept and the page frame and the name of the
Each page may have any number of static concepts (‘Static Concept’ master),
which are connected using connectors (‘Connector’ master). It is very
important to always use this connector for connecting concept shapes. Using
any other Visio connector will not work. The connectors have to glue to the
concept shapes. If you select a connector and both ends of the connector
have a small red rectangle the connector is properly connected. You have to
fix the connection if you see a small green rectangle at either end. The
underlying code has not been secured against circular references and will
crash if you create such a diagram. Connectors must always point from left to
right.
Variable Concept
The functions of the variable concept are controlled through the right click
menu of the variable concept shape.
IFC binding
If IFC binding is turned off the variable concept is generic (blue), if turned on
IFC release specific (orange). The variable concept controls the diagram and
this setting is used automatically for all shapes in the diagram. If turned on,
you can use the IFC Release custom property on the variable concept to
define the IFC release.
Save to XML
Saves the diagram using the official XML schema for IFC Model View
Definitions.
‘Open from XML’ can also be called from the Visio menu (Tools > Macros >
View Diagram > Tools > openFromXML)
Copy page
Creates a copy of the current page within the same Visio drawing.
Update page
The Visio solution and the underlying code will evolve over time and you don’t
want to redo all your diagrams when this happens. All the code in the stencil,
not the drawing, which means that you can start using a new version of the
stencil without any changes to your diagrams. The new stencil may contain
improved shapes. In this case you can update the diagram. This will save the
configuration of your diagram, delete the old shapes and replace them with
new shapes. Any shapes not recognized by the logic (e.g. annotations) are
not touched by the process. ‘Update page’ can also be called from the Visio
menu (Tools > Macros > View Diagram > Tools > updatePage)
Static concepts have a Description custom property, which can be used for
giving a short description for the concept. Please note, that the description is
part of the definition of the concept and comments are used for configuring the
concept.
The functions of the static concept are controlled through the right click menu
of the static concept shape.
Change type to …
The static concepts may be of type ‘Static or ‘Group’ / ‘Adapter’ depending on
the type of the diagram. Leaf nodes in the diagram are typically Static and the
intermediate nodes Group / Adapter.
Compress
Compress is a layout feature that allows you to manage large diagrams by
compressing some of the concepts. A compressed shape only shows the ID
of the concept and the IFC release (if IFC binding).
Mandatory
Is the concept is mandatory in the context of the diagram? Only visible if type
is ‘Static’
Table cell
Concepts may be structured as a table by turning on the Table cell property.
Auto layout uses a special table layout for table cells. A table row is either
on/off, i.e. it is not possible to have a table row in which some concepts are
turned on and some off.
Hide children
Hides all concepts, which are located on the on the opposite side of direction
to the variable concept. Hiding is a layout feature that has no meaning for the
content of the diagram. Only visible if type is ‘Group’ or ‘Adapter’