WELCOME TO THE NEW PLATFORM FOR THE OPENSIM DOCUMENTATION

Remember to update your bookmarks with our new URL.
If you find missing content or broken links, let us know: opensim@stanford.edu


Property Editor and Outputs List

The Property Editor is a generic, streamlined editor for the objects that make up an OpenSim model (bodies, joints, muscles, etc.).  As of version 4.0, this window contains more information than the "Properties", for example the names and types of the "Outputs" computed by the selected object are displayed on the same window under a different tab. This page describes:

What is a model property?

OpenSim models and objects are defined by a set of Properties. For example, a Marker is a simple OpenSim object, with properties including its "name", whether or not it is "fixed" during Scaling, the "Frame" it is attached to and its "location" relative to this Frame. These properties completely define a marker, so that when you load a file with a given marker into OpenSim, the visualizer knows how to display it and the Scale tool knows to use it during Scaling.

When you open .xml files or .osim files you see the property names as xml tags. Within the Property Editor Window, you can see and edit the properties of an OpenSim object.  If you're an advanced user writing plugins, you can also see and edit the properties of new objects that you create (see Command Line Utilities).

Properties are hierarchical in nature so they can be either of the following:

  • Simple properties (name, value pairs), like "mass" = 100.0, "mass_center" = "(0.0 0.1 0.2)"
  • Objects composed of a set of simple properties or simpler objects (e.g. Muscle's geometry-path is a complex property that requires special editor).

Opening the Property Editor

The Property Editor appears in the bottom left corner of the OpenSim GUI by default. If it's not visible, you can open the Property Editor by selecting WindowProperties.


The window has two tabs, one on the left showing Properties, the second (obtained by clicking the Outputs label) contains built-in Outputs.

Selecting an Object to Edit

There are two methods to select an object to edit.

Using the Navigator Window

  1. If the Property Editor is not open, open it by selecting Window > Properties.
  2. Next, in the Navigator Window, expand the model tree to find the object of interest. You can do this by clicking on the plus (plus)  (arrow on Mac) sign next to the name of the model to display the model components, and then clicking on the plus (plus) sign to expand the branch further, as needed. In some models, muscles are organized into groups, in which case you will also have to click on the plus (plus) sign next to the group containing the muscle of interest.
  3. Left or Right Click on the name of the object in the Navigator window.
  4. The Property Editor will now show the properties of that selected object.

Using the Visualizer Window

The second method operates in the Visualizer window, and applies only for objects that have a visual representation in the Visualizer window.

  1. To select an object for editing, first make sure that the model containing the object is the current model. (See Opening, Closing, and Using the Navigator Window for more information about how to make a model current.) 
  2.  left click on an object to select it (selection is indicated by a wireframe yellow bounding box)

When an object is selected using the visualizer window, its name is also shown in the text bar at the bottom of the OpenSim window.

Using the Property Editor

Once the property editor is open and an object is selected, the object's properties are displayed in table format in the Property Editor. You can change the values of these properties by changing values in the Property Editor window. These changes take effect immediately. 

Normally the values are displayed in an editable text box. In some special cases, the user interface can display a more customized editor. For example a checkbox is shown for a boolean (true/false) value. Colors and Functions also have specialized editors. For more complex objects a ... Box is shown. Clicking on this box, will bring up a separate, specialized editor for this property.

The bottom of the Property Editor displays a description of the selected property and usually includes a valid range of values or default values.

Some special kinds of properties are called Sockets. These are used to wire an object in the model to another object, for example a Marker doesn't contain a "Frame" property but rather a "Socket" that is wired to a "Frame" object in the model. These sockets are grouped together as shown below for a joint.

The screen capture below shows the contents of the Property Editor when a joint ("ground_pelvis") is selected:

  • For properties that are objects composed of other properties (e.g. "SpatialTransform") a popup with a tree structure representation of the object is available by Selecting the ... Button next to "SpatialTransform".

In addition to the properties of the object, the editor shows two more (usually uneditable) entries in the table of properties:

  • name: This is the name of the object being edited. In most cases the name is not editable, since other objects or tools often refer to the object by its name.
  • type: This is an uneditable string with the name of the API class of the current object.

The Sockets group of properties show how the two "connections" needed to make the joint are satisfied:

  • PhysicalFrame: child_frame is satsfied by the "pelvis" Body
  • PhysicalFrame: parent_frame is satsfied by the "ground" Frame.

The values shown for these Sockets are usually PathNames describing the location of the objects in the model's component-tree.

 

The output tab for a Body is shown on the left. This tab lists the built-in quantities that can be computed for a "Body" with their types.

  • Names can be used to report the corresponding quantities either instantaneously, during simulation, or post-hoc using the OutputReporter.
  • Every row has a corresponding data type to help explain the quantity it computes and also because OutputReporter groups Outputs of the same data type into one file/table.

Outputs were introduced in version 4.0 to simplify reporting quantities of interest from a model/simulation without the need to write customized analyses.

 

Selecting and Editing Multiple Objects

You can select and edit multiple objects of the same type in the Property Editor

  • To select multiple objects, in the 3D View or in the Navigator Window, hold down the shift key and select each object of interest. You must select objects that are of the same type (e.g. all markers or all muscles).
  • Once multiple objects are selected, their common properties are shown in the Property Editor. Property values that are the same for all selected objects will be displayed. If property values are different between the multiple objects then the values are displayed as <Different Values>
  • You can edit the properties listed and the change will be applied to all objects.

Undo/Redo Support

One of the key advantages of the new property editing mechanism, is that it support undoing and redoing changes.

  • For example, in the screen capture at left, the user has selected the display geometry of the pelvis in the Navigator view, then changed the color to "green".
  • The Undo button in the toolbar is now enabled. When you Hover over the Undo Button, you will see a tooltip describing what can be undone (i.e. "Undo color change"). 
  • If you undo a change you'll be able to redo it again using the redo button in the application's toolbar. 

Saving, or closing the model clears the undo history and so can not be undone.

OpenSim is supported by the Mobilize Center , an NIH Biomedical Technology Resource Center (grant P41 EB027060); the Restore Center , an NIH-funded Medical Rehabilitation Research Resource Network Center (grant P2C HD101913); and the Wu Tsai Human Performance Alliance through the Joe and Clara Tsai Foundation. See the People page for a list of the many people who have contributed to the OpenSim project over the years. ©2010-2024 OpenSim. All rights reserved.