Help
  • Explore Community
  • Get Started
  • Ask the Community
  • How-To & Best Practices
  • Contact Support
Notifications
Login / Register
Schneider Electric
Community
Community
Notifications
close
  • Categories
  • Forums
  • Knowledge Center
  • Blogs
  • Ideas
  • Events & Webinars
Help
Help
  • Explore Community
  • Get Started
  • Ask the Community
  • How-To & Best Practices
  • Contact Support
Login / Register

Contact Support

Close

Ask our Experts

Have a question related to our products, solutions or services? Get quick support on community Forums

Email Us

For Community platform-related support, please email us

New Community Ranking System
Our Community ranking system has recently been updated. You may notice changes in user rankings and receive system messages or notifications. If you have questions about how the new ranking works, please refer to the announcement post for more details (click here).

Digital Twin

This knowledge base is addressing usage of software Experior, Machine Expert Twin and future Automation Expert Twin. These softwares are used to create smaller instances of digital twins for use in industrial automation, warehouse management, design & engineering with more..

Search in

Improve your search experience:

  • Exact phrase → Use quotes " " (e.g., "error 404")
  • Wildcard → Use * for partial words (e.g., build*, *tion)
  • AND / OR → Combine keywords (e.g., login AND error, login OR sign‑in)
  • Keep it short → Use 2–3 relevant words , not full sentences
  • Filters → Narrow results by section (Knowledge Base, Users, Products)
cancel
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Select a Country

Please select a country to continue with beta search.

  • Home
  • Schneider Electric Community
  • Knowledge Center
  • Digital Twin
  • Digital Twin
  • Label: Exp-6 Dev Environment
Options
  • Knowledge Base Article Dashboard
  • Subscribe
  • Bookmark
  • Invite a Friend
Invite a Co-worker
Send a co-worker an invite to the portal.Just enter their email address and we'll connect them to register. After joining, they will belong to the same company.
You have entered an invalid email address. Please re-enter the email address.
This co-worker has already been invited to the Exchange portal. Please invite another co-worker.
Please enter email address
Send Invite Cancel
Invitation Sent
Your invitation was sent.Thanks for sharing Exchange with your co-worker.
Send New Invite Close
Labels
Top Labels
  • Alphabetical
  • Experior 6 85
  • Experior 7 57
  • Exp-6 Developer Guide 35
  • Exp-7 Developer 16
  • Exp-6 User Guides 16
  • Exp-7 Communication Protocols 11
  • Exp-6 Experior 11
  • Exp-6 Communication Protocols 11
  • Exp-7 Getting Started 10
  • Exp-6 Dev Environment 9
  • Exp-7 User Interface 9
  • Exp-6 Dev Assembly 7
  • Exp-7 Building Models 6
  • Exp-7 Working With Models 5
  • Exp-6 PLC 4
  • Exp-6 Getting Started 3
  • Exp-7 Importing Graphics 3
  • Exp-6 3rd Party Programs 2
  • Exp-6 Tips and Tricks 2
  • Remote Viewer 2
  • Exp-6 Model Modifications Examples 1
  • Previous
  • 1 of 3
  • Next
Top Contributors
  • Kasper.Vestrup
    Kasper.Vestrup
See More Contributors

Related Forums

  • Intelligent Devices Forum

Previous Next

Invite a Colleague

Found this content useful? Share it with a Colleague!

Invite a Colleague Invite

Label: "exp-6 dev environment"

View in: "Digital Twin" | Community

9 Posts | First Used: 2026-01-15

Digital Twin

Sort by:
Date
  • Date
  • Views
  • Likes
Options
  • Knowledge Base Article Dashboard
  • Subscribe
  • Bookmark
  • Invite a Friend
Label: "Exp-6 Dev Environment" Show all articles

Logging and Diagnostic messages

To provide diagnostic, debug or logging messages Experior provides several mechanisms.   Logging The Experior.Core.Environment.Log class provides the following static methods to write messages to the Log window. public static void Write(Exception exception); public static void Write(string message); public static void Write(Exception se, int id); public static void Write(string message, bool underline); public static void Write(string message, Color color); public static void Write(string message, LogFilter filter); public static void Write(string message, string hightlight); public static void Write(string message, bool underline, LogFilter filter); public static void Write(string message, Color color, LogFilter filter); public static void Write(string message, string hightlight, Color color); public static void Write(string message, string hightlight, LogFilter filter); public static void Write(string message, Color color, bool underline, LogFilter filter); public static void Write(string message, string hightlight, Color color, bool underline); public static void Write(string message, string hightlight, Color color, LogFilter filter); public static void Write(string message, string hightlight, Color color, bool underline, LogFilter filter);   The meaning of the arguments is straightforward; The message is the string that will be logged to the log window (and/or file depending on the properties set by the user in Experior). The highlight is part of the message that will be shown in bold. The color is the color in which the message will be shown. Underline, this boolean indicates whether or not the message will be underlined. The filter corresponds with the chosen filter by the user in the properties of the Log;   To illustrate, the following code Experior.Core.Environment.Log.Write("Created sensorpart assembly", "sensorpart", CadetBlue, true, Communication ); Experior.Core.Environment.Log.Write("Created sensorpart assembly", "sensorpart", Red, false, Action); will be shown as follows (when no filter is applied);     Debug log   Similar to the regular logging there is also the possibility to only log your message in case the debugging option is set in Experior.   In this case the Experior.Core.Environment.Log.Debug class is used with the public static void Write(string message) method.   Example: Experior.Core.Environment.Log.Debug.Write("This is an example debug message");   Diagnostic info   Experior also provides the possibility to print diagnostic messages to other areas than the logging window.   Therefore the class Experior.Core.Environment.Diagnostic contains the following static methods: public static void Message(string message); public static void Message(string message, Color color); public static void Message(string sender, string message); public static void Message(string message, Color color, Environment.DiagnosticAction action); public static void Message(string sender, string message, Color color); public static void Message(string message, Color color, Environment.DiagnosticAction action, Environment.Signs sign); public static void Message(string sender, string message, Color color, Environment.DiagnosticAction action);   By default the messages are shown in the status area underneath the working area.   The arguments are;   Message: The information that will be shown. Sender: This string appended with a : will be shown before the message. It is mainly used to provide the origin of the message e.g. the Assembly name. Environment.DiagnosticAction: This is an enum with the following possible values; ALARM in this case the message will also be shown in the alarm window of experior TEMPORARY in this case the message will only be shown for couple of seconds TEMPORARYANDLOG in this case the message will only be shown for couple of seconds but it will also be printed to the log window (where it will remain) STICKY in this case the message will remain visible in the status area until a new message is requested or until the message is removed or the Clear() method is called of the Diagnostic class REMOVE way to remove a STICKY diagnostic message NONE Environment.Signs: This is an enum to indicate what icon should be attached to the message in the status area.
View full article
Kasper.Vestrup Explorer
‎2026-01-15 12:31 AM

on ‎2026-01-15 12:31 AM

Labels:
  • Exp-6 Dev Environment
  • Exp-6 Developer Guide
  • Experior 6
112 Views

Serialization

Experior saves a model by serializing all necessary model entities (actually their corresponding Info objects) into specific xml files and compressing those into an experior file.   Loading a model works vice versa, the experior file is uncompressed and each xml file it contains is deserialized.   The serializing and deserializing can be done using System.Xml.Serialization.XmlSerializer.   However Experior also provides a utility class Experior.Core.Environment.Serialization to make this process simpler.   Example: // Log all serializable types List<Type> serializable = Experior.Core.Environment.SerializableTypes; Experior.Core.Environment.Log.Write("We found " + ser.Count + " serializable types."); foreach (var t in serializable) { Experior.Core.Environment.Log.Write(" : " + t.ToString()); } // create the test.xml file and serialize the Info object of this assembly into it Experior.Core.Environment.Serialization.Serialize("test.xml", this.Info); // load the test.xml file and deserialize into a AssemblyInfo object AssemblyInfo res = (AssemblyInfo)Experior.Core.Environment.Serialization.DeSerialize("test.xml", typeof(AssemblyInfo));
View full article
Kasper.Vestrup Explorer
‎2026-01-15 12:22 AM

on ‎2026-01-15 12:22 AM

Labels:
  • Exp-6 Dev Environment
  • Exp-6 Developer Guide
  • Experior 6
73 Views

Random

Experior.Core.Environment.Random   Experior.Core.Environment.Random can be used to get a pseudo random sequence of numbers.   Properties int Seed: This property allows to get/set the Seed of the standard pseudo random number generator used by Experior.   Changing the seed allows to get a new sequence of pseudo random numbers.   Experior.Core.Mathematics.Statistics.Generators.Pseudo.StandardGenerator Generator: This property allows to get/set the standard pseudo random number generator used by Experior.   The standard pseudo random number generator has methods to obtain random bytes, integers, doubles, booleans (See example below).   Methods void Reset(): This resets the number generator. After the reset the random number generator will generate the same sequence of numbers for the current seed.   int Random(): Returns a random integer.   int Random(int max): Returns a random integer less than the given max   int Random(int min, int max): Returns a random integer between the given min and less than the given max   Example: Below is an example of the usage of a random number generator of Experior: private void ExampleOfRandom(int seed) { // Example of usage of random number generator // Set the seed of the pseudo random number generator // By using the same seed you'll get the same sequence of pseudo random numbers which fullfills // the reproducablility requirement (e.g. when debugging) // Change the seed for each iteration of experiments Experior.Core.Environment.Random.Seed = seed; // get a pseudo random integer between -20 and less than 21 int randomint = Experior.Core.Environment.Random.Next(-20, +21); Experior.Core.Environment.Log.Debug.Write("Debug message " + attr1); Experior.Core.Environment.Random.Reset(); // randomint will be the same value as before because we have reset the random number generator randomint = Experior.Core.Environment.Random.Next(-20, +21); Experior.Core.Environment.Log.Debug.Write("Debug message after reset seed " + attr1); // reset the scene (this will also reset all assemblies and reset the standard random number generator) Experior.Core.Environment.Scene.Reset(); // randomint will be the same value as before because we have reset the scene randomint = Experior.Core.Environment.Random.Next(-20, +21); Experior.Core.Environment.Log.Debug.Write("Debug message after reset " + attr1); // You can get the standard pseudo random generator through Experior.Core.Environment.Random.Generator // this allows you to get random bytes, radom integers, random doubles, // get random double beteen 0.3 and less then 7.9 double randomnumber = Experior.Core.Environment.Random.Generator.NextDouble(0.3, 7.9); byte[] randombytes = new byte[10]; // fills the given byte array with random values Experior.Core.Environment.Random.Generator.NextBytes(randombytes); // get a random boolean value bool randombool = Experior.Core.Environment.Random.Generator.NextBoolean(); }
View full article
Kasper.Vestrup Explorer
‎2026-01-15 12:21 AM

on ‎2026-01-15 12:21 AM

Labels:
  • Exp-6 Dev Environment
  • Exp-6 Developer Guide
  • Experior 6
65 Views

Environment Properties

Experior.Core.Environment.Properties   Experior.Core.Environment.Properties allows to interact with the properties window in Experior.   Suppose the value of property A of an assembly relies on the value of property B. When  a user changes the value of B, you want to have the new value of property A immediately visible. This can be achieved by using the Experior.Core.Environment.Properties.Refresh() method.   Methods void Refresh(): This will refresh the Property window to show all current property values of the selected entity.   void Clear(): This will clear the Property window of Experior so that is empty and shows no properties.   Example: private int attr1; public int Prop1 { get { return attr1; } set { attr1 = value; // refresh the property window so that // also the new value for CalculatedProp is visible Experior.Core.Environment.Properties.Refresh(); } } public int CalculatedProp { get { return attr1*2; } }
View full article
Kasper.Vestrup Explorer
‎2026-01-15 12:19 AM

on ‎2026-01-15 12:19 AM

Labels:
  • Exp-6 Dev Environment
  • Exp-6 Developer Guide
  • Experior 6
86 Views

Time

Experior.Core.Environment.Time   Experior.Core.Environment.Time class provides static properties that allow to interact with the time through code similar to the user interacting with below toolbar buttons.   Properties   bool ContinuouslyRunning: This property allows to get/set whether (in discrete mode)  the model will keep running even in case the engine detects no more events. In case this property is false the model will pause in case the simulation engine can find no more events.    double Elapsed: This property returns the elapsed time in seconds. This is the total world time the model has been running.   bool LockScaling: The LockScaling property is used to allow/disallow changing of the Simulation speed. If LockScaling is false the simulation speed can be changed otherwise it is fixed.    float MaxScale: By pressing PageUp in the workarea it is possible to speed up the simulation and run faster than the world time. This property allows to get/set the maximum ratio between simulated time and world time.     float MinScale: By pressing PageDown in the workarea it is possible to decrease the speed of the simulation and run slower than the world time. This property allows to get/set the minimum ratio between simulated time and world time.   float Scale: This property gets/sets the ratio between simulated and world time.     double Simulated: This property returns the simulated time in seconds. This is the total simulated time the model has been running.  
View full article
Kasper.Vestrup Explorer
‎2026-01-15 12:15 AM

on ‎2026-01-15 12:15 AM

Labels:
  • Exp-6 Dev Environment
  • Exp-6 Developer Guide
  • Experior 6
113 Views

SolutionExplorer class

The Experior.Core.Environment.SolutionExplorer class allows the developer to interact with the SolutionExplorer.   A typical usage is to refresh the SolutionExplorer because you know that some code impacts the tree structure.   E.g.: Experior.Core.Environment.SolutionExplorer.Refresh();   Or for a specific entity (assembly, motor…): Experior.Core.Environment.SolutionExplorer.Update(mychangedassembly);
View full article
Kasper.Vestrup Explorer
‎2026-01-15 12:14 AM

on ‎2026-01-15 12:14 AM

Labels:
  • Exp-6 Dev Environment
  • Exp-6 Developer Guide
  • Experior 6
62 Views

Scene

Experior.Core.Environment.Scene   Properties bool Paused: The Paused property returns true when the model is Paused (Simulated time is not progressing), false otherwise. bool Locked: The Locked property returns true if the Environment is in locked mode which implies that the model cannot be edited.   Events event Event Cleared: The Cleared event is triggered when the workspace is cleared. This occurs when a model is closed (either by explicitly closing a model or starting a new model). event Event Loaded: The Loaded event is triggered when a model is opened and completely loaded. event Event Locking: The Locking event is triggered when locking the model. event Event Pausing: The Pausing event is called when the model is being paused. event Event Saved: The Saved event is called when the current model is saved.   Methods Continue(): The Continue method resumes the running of the model. Lock(): The Lock method locks the model. Pause(): The Pause method pauses the running of the model.   Reset(): The Reset method pauses the model and resets the clock to 0. It will also reset all assemblies of the model   UnLock(): The Lock method unlocks the model so that it can be edited.   Example Below is an example of an assembly that illustrates the usage of above described events/methods: public ExampleEnvironment(AssemblyInfo info) : base(info) { Experior.Core.Environment.Scene.Loaded += Scene_Loaded; Experior.Core.Environment.Scene.Pausing += Scene_Pausing; Experior.Core.Environment.Scene.Saved += Scene_Saved; Experior.Core.Environment.Scene.Cleared += Scene_Cleared; Experior.Core.Environment.Scene.Locking += Scene_Locking; } void Scene_Locking() { Experior.Core.Environment.Diagnostic.Message(this.Name, "Diagnostic message : Scene is locked"); } void Scene_Cleared() { Experior.Core.Environment.Diagnostic.Message(this.Name,"Diagnostic message : Scene is cleared"); } void Scene_Saved() { Experior.Core.Environment.Diagnostic.Message(this.Name, "This is a diagnostic message in blue to indicate the model is saved", Blue); } void Scene_Pausing() { Experior.Core.Environment.Diagnostic.Message("This is a diagnostic message to indicate the model is paused"); /// this will clear the Properties window Experior.Core.Environment.Properties.Clear(); } void Scene_Loaded() { // change the presentation level to WireFrame Experior.Core.Environment.Scene.PresentationLevel = Wireframe; // lock the model Experior.Core.Environment.Scene.Lock(); // if custom assemblies contain references to other assemblies those // references can be re-established after the model has been // loaded again in a Scene_Loaded delegate // suppose we have two assemblies A and B both having // property LinkedAssembly that reference the other assembly. // when loading the model this relationship can only be completely // reestablished when the model is completely loaded // and we are sure that both assemblies exist. // (In the constructor of Assembly A we could not do this // yet because it is not garanteed that // Assembly B exists already. Or vice versa) // A.LinkedAssembly = B // B.LinkedAssembly = A Experior.Core.Environment.Diagnostic.Message("This is a sticky diagnostic message in Red", System.Drawing.Color.Red, STICKY); } public override void Reset() { base.Reset(); Experior.Core.Environment.Diagnostic.Message(this.Name, "Diagnostic message : assembly " + this.Name + " is reset"); } public override void Dispose() { base.Dispose(); // unsubscribe to events when disposing Experior.Core.Environment.Scene.Loaded -= Scene_Loaded; Experior.Core.Environment.Scene.Pausing -= Scene_Pausing; Experior.Core.Environment.Scene.Saved -= Scene_Saved; Experior.Core.Environment.Scene.Cleared -= Scene_Cleared; Experior.Core.Environment.Scene.Locking -= Scene_Locking; }
View full article
Kasper.Vestrup Explorer
‎2026-01-15 12:13 AM

on ‎2026-01-15 12:13 AM

Labels:
  • Exp-6 Dev Environment
  • Exp-6 Developer Guide
  • Experior 6
85 Views

Attributes

When an Experior model is saved, data added to an Attributes object is saved together with the rest of the model data.   Example The TestObject is an example of an object that is going to be saved: (Note: The object has to be serializable)   [Serializable] public class TestObject { public TestObject() { private string text; public string Text { get { return text; } set { text = value; } } private int count; public int Count { get { return count; } set { count = value; } } } }   Now create an instance of the TestObject class. TestObject test = new TestObject(); test.Count = 100; test.Text = "Hello";   And an instance of the Attribute class and then add the instance of the TestObject. The name Test1 is used to identify the object when the model is reloaded or whenever you want to get hold of the object. Core.Environment.Scene.Attributes attributes = new Core.Environment.Scene.Attributes(); attributes.Add("Test1", test);   The test object can at any time be removed by disposing the attribute object or by calling the static method Remove. attributes.Dispose(); or Core.Environment.Scene.Attributes.Remove(this.Name);
View full article
Kasper.Vestrup Explorer
‎2026-01-15 12:11 AM

on ‎2026-01-15 12:11 AM

Labels:
  • Exp-6 Dev Environment
  • Exp-6 Developer Guide
  • Experior 6
64 Views

Mini-markup text-markup language

Hyper-menus feature in Experior employs the mini-markup/text-markup language to decorate help dialogs.   Mini-markup must be well formed. That means that all tags must be properly closed and all attributes must have values enclosed in double quotes. For example this is how line-break tag would look like: <br/>   Markup Reference   <b> – The B element indicates that text is rendered as bold text.   No attributes are available for this tag.   Example: <b>Bold Text</b> <i> – The I element indicates that text is rendered as italic text. No attributes are available for this tag.   Example: <i>Italic Text</i> <u> – The U element indicate that text is rendered as underlined text. No attributes are available for this tag.   Example: <u>Underlined Text</u> <s> – The S element indicates that text is rendered as StrikeOut Text No attributes are available for this tag.   Example: <s>StrikeOut Text</s> or <strike>StrikeOut Text</strike> <font> – The font element indicates the size change, font face or text color. Attributes: size Indicates absolute or relative font size. For example size=”+1″ will increase the size of the text font by one point. size=”-2″ will decrease the size of the text font by two points. size=”12″ will set explicit text font size to 12 points. face Indicates the font name. For example face=”Arial” will set the font to Arial. color Indicates the text color. Named colors from Color class can be set or color using RGB format: #RRGGBB where RR indicates hexadecimal value of Red component, GG indicates hexadecimal value of Green component and BB indicate hexadecimal value of Blue component. For example color=”Red” will set text color to red.   Example: <font color=”Red” size=”-1″>Red smaller text</font> <h1> … <h6> Indicates block heading text. No attributes are available for this tag.   Example: <h1>Level One Heading</h1> <h3>Level 3 heading</h3> <a> Indicates an anchor – a hypertext link. Attributes: href – string which indicates hypertext reference. Attribute value is available in event arguments of MarkupLinkClick and can be used to provide more information about the link. name – string which indicates name of the link. Attribute value is available in event arguments of MarkupLinkClick and can be used to provide more information about the link.   Example:<a href=”MyLink”>My Link Text</a> <br/> – Indicates line break. No attributes are available for this tag.   Example: First Line<br/>Second Line <div> – Indicates generic block level container element. Attributes: align – Indicates the container content alignment. left, right or center are allowed values for this attribute. width – Indicate the container width in pixels. height – Indicate the container height in pixels. bgcolor – Indicate the container background color, for example: bgcolor=”#FF0000″ or bgcolor=”Red”. padding – Indicates the padding around the element in pixels. Format for the value is: left, right, top, bottom. For example: <div padding=”1,1,4,4″”> produces 1 pixel padding on left and right side of container and 4 pixels padding on top and bottom. All values must be specified. valign – Indicates the vertical alignment for the content blocks inside of container. Default value is top. Acceptable values are: top, middle, bottom   Example: <div align=”center” width=”120″>Block container element content center aligned with width of 120 pixels</div> <span> – Indicates the in-line block level container element. The tag does not cause the line break. You can use it to create tabular layouts. Attributes: align – Indicates the container content alignment. left, right or center are allowed values for this attribute. width – Indicate the container width in pixels. padding – Indicates the padding around the element in pixels. Format for the value is: left, right, top, bottom. For example: <span padding=”1,1,4,4″”> produces 1 pixel padding on left and right side of container and 4 pixels padding on top and bottom. All values must be specified.   Example: <span align=”right” width=”100″>In-line container element content right aligned with width of 100 pixels</span> <p> – The P element defines a paragraph. Attributes: align – Indicates the paragraph content alignment. left, right or center are allowed values for this attribute. width – Indicate the paragraph width in pixels. padding – Indicates the padding around the element in pixels. Format for the value is: left, right, top, bottom. For example: <p padding=”1,1,4,4″”> produces 1 pixel padding on left and right side of container and 4 pixels padding on top and bottom. All values must be specified.   Example: <p align=”right” width=”200″>Paragraph element content right aligned with width of 200 pixels</p> <expand/> – Indicates the position for the expand sign of the button inside of the markup text. This tag allows you to place the drop-down sign which indicates that button has drop-down anywhere inside of the markup text to reduce the space used by a button. Attributes: direction – Optional attribute that indicates the direction the expand sign points to. Possible values: left, right, top, bottom, popup   Example: Page<br/>Borders<expand/> <img> – The img tag defines an image. Attributes: src – Specifies the image source resource name or embedded resource name. width – Indicates the fixed image width in pixels. If this attribute is specified height attribute must be specified as well. height – Indicates the fixed image height in pixels. If this attribute is specified width attribute must be specified as well.   Supported entity characters: &lt; – less than < &gt; – greater than > &nbsp; – hard space &- ampersand &
View full article
Kasper.Vestrup Explorer
‎2026-01-15 12:10 AM

on ‎2026-01-15 12:10 AM

Labels:
  • Exp-6 Dev Environment
  • Exp-6 Developer Guide
  • Experior 6
126 Views
To The Top!

Forums

  • APC UPS Data Center Backup Solutions
  • EcoStruxure IT
  • EcoStruxure Geo SCADA Expert
  • Metering & Power Quality
  • Schneider Electric Wiser

Knowledge Center

Events & webinars

Ideas

Blogs

Get Started

  • Ask the Community
  • Community Guidelines
  • Community User Guide
  • How-To & Best Practice
  • Experts Leaderboard
  • Contact Support

    Ask our Experts

    Have a question related to our products, solutions or services? Get quick support on community Forums

    Email Us

    For Community platform-related support, please email us

Subscribing is a smart move!
You can subscribe to this board after you log in or create your free account.
Forum-Icon

Create your free account or log in to subscribe to the board - and gain access to more than 10,000+ support articles along with insights from experts and peers.

Register today for FREE

Register Now

Already have an account? Login

Terms & Conditions Privacy Notice Change your Cookie Settings © 2026 Schneider Electric

Welcome!

Welcome to your new personalized space.

of

Explore