How can I make a selection of the vertical and horizontal beams, in two lists?
I am trying to name the beams with respect to the grids, so that the closest parallel grid is named the same, thanks!
How can I make a selection of the vertical and horizontal beams, in two lists?
I am trying to name the beams with respect to the grids, so that the closest parallel grid is named the same, thanks!
you may need to think more carefully about how you’re considering ‘vertical’ and ‘horizontal’, but a possible approach would be to group FamilyInstances by that orientation. You might perform a similar operation for the grids, then match the elements of the FamilyInstance and Grid groups using the Geometry.DistanceTo function.
Sounds good, but might be a bit calculation heavy to check distance to every grid to every beam 3 times. Could maybe done with vectors? Every beam and grid has a start and end point to create a vector, group by vectors that have a very small angle between them (Some tolerance for model errors). Mostly everything will be N-S or E-W with some diagonals that dont match any grid. Then process each group of parallel objects using only one point. to get the closest.
Have done something similar with pipes to group them into vertical (Up/down), horizontal and sloping.
Yes and no… if you have a rectangular grid, but have one beam at an odd angle to account for a feature stair or similar opening, it will often return incorrect values if you utilize vectors, though speed is a concern
Generally speaking I don’t like trying to assign beams to a single grid line - too many outliers in the framing relative to the grids, which are by their very nature an over simplification of the beams. Instead I prefer using a Start/End offset from the nearest grid intersection (something like A1-X.XX-Y.YY A2-X.XX-Y.YY). It’s always consistent and conveys more location data then the grid lines do.