Property Pages

A common user feedback theme for software is “make it easier”, yet most software claims to be “easy to use”.  For large applications, achieving “easy” never is easy as it can be a balancing act requiring trial and error, and going through many iterations with users of various roles.  Software that supports many roles simultaneously compounds the balancing act.

A guideline we’ve tried to follow is to make the most common tasks more obvious by dedicating more prominent placement of buttons and/or more screen real estate for such tasks.  That also means making less common tasks less obvious by burying them deeper, yet providing a logical path to discover them.

Another guideline we’ve tried to follow is to make user content front and center by maximizing screen real estate and available CPU/GPU power. As as a result, we’ve tried to keep top-level commands as minimal as possible and use lightweight Windows Forms UI widgets (e.g. instead of WPF taking GPU cycles away from 3D rendering).

The “Property Grid” is a common UI widget found in a lot of design software.  An advantage is direct access to lots of settings in minimal space, supporting user-customized settings, and informing the power user about the underlying data structure.  It is also low-cost from the software developer perspective where a single control can support potentially thousands of settings.  A disadvantage however, is that all settings are given the same real estate, many settings are rarely used (taking up real estate at the expense of user content), and there’s no indication as to which settings are more important or are related to other settings.

With the latest version, we’ve ditched the property grid and replaced it with a dialog box containing unified property pages.

The “General” page is supported by all objects and relationships, and is similar to the Windows File property page.

The “Details” page is supported by all customizable objects, and contains a property grid but is limited to custom properties and quantities.

The “Links” page is supported by all objects, providing navigation to all relationships, where the object dialog can be launched recursively.

The “Representation” page is supported by product occurrences and types, allowing fine-tuning of geometry and styles.

The “Placement” page is supported by product occurrences, allowing precise control of position and orientation.

Many additional property pages have been added, some consolidating former dialog boxes, including materials, actors, calendars, associations, classifications, and constraints.
There are more to come for tasks, resources, and libraries.

However, for more technical users who want to access obscure settings or have visibility into the underlying data, the “View Raw Data” checkbox goes a step further.

The “Attributes” page displays the property grid, allowing viewing and editing of all attributes.

The “Graph” page displays a hierarchical graph of attributes and links to relationships.

Along with the new property pages, we’ve also consolidated the ribbon such that there’s a single ribbon tab applicable to the selected object, reducing the amount of tab switching.
Along the way, several new features have been introduced, such as shortcuts to email or call a user, dropdowns to select product models, and commands to align objects relative to others.

What do you think? Feedback is always welcome.

Posted in Uncategorized | Leave a comment

Solids

Design-level editing has been enhanced in recent releases, including points, curves, surfaces, profiles, and now solids.  Solid geometry supports a vast range of representations from simple boxes, primitives, profile extrusions/revolutions, boolean combinations, boundary representations, and NURBS.

Constructivity supports all IFC geometry, and now that includes tessellated surface models recently introduced in IFC 4, which provides several notable benefits.  Realism is improved with models imported from lightweight 3D formats such as Collada and 3DS, where the exact representation is retained including surface normals and texture coordinates.  Performance is improved by enabling smaller file sizes, faster downloads, and better experiences on more restrictive devices such as phones and tablets (hint to what’s coming soon…)

Solid Ribbon

The new Solid Ribbon allows geometry to be transformed from one representation to another.  For example, you might build something from parametric geometry or a tree of boolean operations.  When you publish such geometry for others to use, you may choose to “freeze” it as a tessellated model for performance or to remove proprietary information.

Solid Dialog

The new Solid Dialog allows precise control over exact values for triangles, points, normals, texture coordinates, and color mappings.

Posted in Uncategorized | Leave a comment

Surfaces

One of the recent features added is the ability to edit surfaces, including Non-Uniform Rational B-Spline (NURBS) surfaces.  Theoretically any complex surface can be represented, such as for roofs or site contouring.

B-Spline Surface

To customize a surface, enter Design Mode and select “Body” as the representation to edit.  For a B-Spline surface, the mesh of control points will be displayed, which may be selected and edited.

The new Surface Ribbon allows surfaces to be transformed into planes, cylindrical surfaces, swept surfaces, or B-Spline surfaces.  The dialog launcher button brings up the new Surface Dialog which allows direct configuration of control points and knots.

Surface Dialog

Posted in Uncategorized | Leave a comment

Curves

A design goal of Constructivity has been to make the most common tasks obvious; this also means making uncommon tasks less obvious so they don’t get in the way.  One such less common task is curved elements, including curved walls and curved slabs.

When you create a wall, you click at a starting point and drag to the ending point to create a linear wall.  When you create a slab or opening, you click at the first corner and drag to the opposite corner to create a rectangular element.  Probably 99% of building elements fit this scenario; but what about the other 1%?

Any parametric element can be customized by selecting an object and clicking the “Design Mode” button on the Home ribbon bar.  For axis-based elements such as walls and footings, the axis curve can be customized to use polyline segments, circular arcs, elliptical arcs, and B-Spline curves.  For footprint-based elements such as slabs and building enclosures, the footprint curve be customized similarly.

Curve Editing

When you enter Design Mode, the Insert tool allows you to insert points within a polyline, or insert non-linear segments, replacing existing segments.  To insert a point, click on the Insert tool, set the Object Type to “Polyline”, move the cursor over an existing segment, click to place the point, and drag to position the point.  You can repeat this process to create arbitrary linear segments at any angle, concave or convex.

To insert an arc, set the Object Type to “Trimmed Curve”, and the Usage Type to either “Circle” or “Ellipse”.  Then click on an existing segment and drag to move the center point such as for creating a half-circle or quarter-circle.

To insert a B-Spline curve, set the Object Type to either “B-Spline Curve (Knots)” or “B-Spline Curve (Rational)” for weighted control points.  You can then insert additional control points by clicking on the curve and dragging.

The Move tool allows points to be moved and merged.  Simply click on a point and drag to the new position.  If you drag a point onto an existing point, then all segments between the points are deleted and the curve is merged.

The Select tool allows curves and points to selected, transformed, and adjusted with precision.  The Property Grid displays the curve hierarchy when “View Relationships” is shown.  The parameters on curves and points can be entered directly.  The Curve Ribbon allows transforming curves from one type to another, such as converting a polyline to a B-spline and back.  Clicking the dialog launcher displays the Curve Dialog which supports detailed editing.

Curve Dialog

The Curve Dialog allows precise control over angles, curvature, and weights for control points.

When you are done editing, click “Object Mode” to exit out of Design Mode.  The body geometry is then regenerated for elements.  If editing the footprint of a building or building storey, the slab and perimeter walls are regenerated.

Curved Building Footprint

Posted in Uncategorized | Leave a comment

Materials

We recently made a usability change regarding how materials are defined and applied to building elements.

Previously, materials could be edited on a per-element basis.  While obvious how to use, feedback indicated it was tedious if changes were made to multiple elements.  A common scenario is to modify materials, material profiles, or material layers for a group of related elements.

So we’ve now made material usage accessible for the project as a whole.  You can now browse, edit, and apply materials, and see all of the elements for which materials are applied.

While we’re at it, we made some improvements to the material dialogs where the effect of parameters can be directly visualized.

Material Layer Set Usage

Material layer offsets now apply: for walls, it impacts the base and height of each layer relative to the wall axis; for slabs it offsets the edge inside or outside of the slab footprint.

Material Profile Set Usage

Material profile offsets and cardinal points now apply: for beams, columns, members, ducts, pipes, cables, and cable carriers, it impacts the starting and ending positions relative to connection points – useful to quickly line up detailing of steel connections.

Posted in Uncategorized | Leave a comment

What we’re working on

As we’re rapidly approaching version “1.0″ with incremental updates each week, here are some of the items we’re working on…

  • automatic file compaction while editing (reduce file size and memory usage)
  • remove Microsoft XNA dependency (run as 64-bit and eliminate additional download)
  • improved tools for editing curved boundaries and paths
  • framing for slabs and roofs
  • distribution system design and analysis
  • parametric tools for more building and distribution elements
  • additional building automation protocols
  • performance history visualization
  • resource leveling and visualization
  • approval and constraint user interfaces
  • expanded documentation
  • libraries of vendor products (e.g. flooring, light fixtures)
  • mobile application
  • bug fixing

Let us know if there are any features you want!

Posted in Uncategorized | Leave a comment

Version 0.8 next week

A major update of Constructivity Model Viewer is around the corner with model server integration.  Look for it April 4.

Posted in Uncategorized | Leave a comment