Environment_Engine: New GroupPanel/OpeningByLevel methods
- Dominant language
- C#
- Stars
- 30
- Forks
- 13
- Avg merge
- 7d 10h
- Merged PRs (30d)
- 5
Description
#### Description:
It would be really useful to be able to take an unorganised collection (flat list) of Panels or Openings and group them by their Level/elevation, similar in function to the MapToLevel method for IRegion objects. This could be done in a couple of different ways and the methods should be adaptable to allow users to control the grouping. I propose the following methods (for each of Panels and Openings, or can this be expanded to any IEnvironmentObject?):
1. The default/simplest option with least control: Group Panels/Openings by their lowest z-coordinate (via existing Environment.Query.Bottom method?). Inputs; 1-list of Panels/Openings, 2-tolerance.
2. The more complex option with greater control: Group Panels/Openings using a user-specified point on the panel (e.g. bottom (min z), top (max z), or centroid (average z?). Inputs: 1-list of Panels/Openings, 2-Point on Panel/Opening (enum), 3-tolerance (double).
3. There could also be a third FilterBy... method incorporating the complexity of option 2 in terms of searching for a specified point on the Panel/Opening but also filtered in/out Panels/Openings using a user-specified min & max Level range. Inputs: 1-list of Panels/Openings, 2-Point on Panel/Opening (enum), 3-minimum Level (double), 4-maximum Level, 5-tolerance (double).
Contributor guide
Assessment
This issue has not been assessed yet.