[Plugin] FredoSection - Tools about Section Planes

As you may understand, FredoSection generates cut faces by scene. The top group containing the cut faces of a scene if tagged and this tag is only visible for the scene.

This is how you can have different hatching patterns (or different scaling) for each scene and how this works well with Layout.

What I can propose is to have a general concept of pattern modes. Currently, there are 2 individual pattern modes:

  1. by Container: the pattern used is attached to the definition of the container
  2. by Tag: the pattern is taken from the tag of the container

You can combine these 2 individual pattern modes in order. This is why the choice for each Scene is defined as:

What could be done is the following:

1) Introduce a concept of Custom Pattern mode. This is created by the user as a mapping table between conditions and patterns. For instance, a custom pattern mode (say, call it History) could be defined with 3 conditions:

  • if container has attribute ‘Existing’, then use the pattern ‘Existing’
  • if container has attribute ‘Demolishing’, then use the pattern ‘Demolishing’
  • if container has attribute ‘New’, then use the pattern ‘New’

The way the condition is expressed can be simple, say, [Dictionary, Attribute] and string value (or regular expression). Advanced conditions could even be based on Ruby code.

  1. Each scene is assigned a sequence of individual pattern modes, in order. For instance:
  • History
  • Container
  • Tag

This means that if a container respects the History filter, then the pattern in History is taken. Otherwise, we use the container definition pattern, and if not defined, the pattern of its tag.

That’s not very complex to develop, and I guess it gives flexibility to have different scenes showing different information.

By the way, I was thinking of this approach for a related purpose, when your model is created from architectural elements coming from a plugin, like Medeek’s or FlexTools (or tagged from documentation (ex: 5D+) or with IFC tagging.

In these cases, we could imagine that I (or someone) produces:

  • a custom pattern mode with all conditions (say a Medeek pattern mode). With the help of the plugin developers we could find the conditions for identifying walls, floors and other architectural elements in the model (possibly with ruby code) and assign them patterns.
  • a set of patterns corresponding to this pattern mode (say a set of Medeek patterns). Note that these patterns can be customized at user level, so they just serve as an initial default.

This could be integrated with FredoSection and be shipped as part of the release.

SIDE POINT: Currently, FredoSection does not use inheritance of patterns from containers. I mean that subcontainers are rendered with the pattern attached to their own definition, not with the pattern of their parent in cascade if they have no pattern attached. I can provide an inheritance mode, even configurable. But I am not sure this is desirable.