BHoM / BHoM/BHoM_Engine

Environment_Engine: New GroupPanel/OpeningByLevel methods

Open
#2,850 0 comments 0 reactions 2 assignees Assigned to @rboulton-BH View on GitHub
type:feature
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.