Manual selection or working with preselected elements in a linked model

It’s actually the opposite way around; the opening size is determined by clearance guidelines (from the fire-stopping manufacturer) which are different for each type of service and the material they are made from.

However…

The next bit is an explanation of a potential change of approach

After spending three 12 hour days completing this task manually, I have identified a way to simplify the process. During the manual drawing of the openings used as a guide for positioning and resizing the existing Void family, it became evident that buildability needed to be factored into the design.

These openings represent rectangular holes within new metal stud partitions. Both room side faces are double sheeted with plasterboard, and the reveals of the openings are also lined for fire protection. In practice, short sections of pipework, ductwork, cable trays, or fire dampers are often already in place before the openings are formed.

To ensure sufficient space for installers to apply plasterboard to the reveals, a minimum clearance had to be maintained around all services. After review, we established 150mm as the standard clearance, and this dimension was applied consistently to all service openings.

So now that the boring non-dynamo related back-history is told….

Instead of inserting Detail Item families, I am now considering automating the creation of Detail Lines around each service, using a standard 150mm offset from all sides of the selected services.

There are still some specific conditions that need to be considered.
If a pipe is made from a non-combustible material, an additional 25mm must be allowed to account for pipe insulation in addition to the 150mm. The 150mm clearance value remains appropriate for non-combustible pipes, cable trays, ducts, and fire dampers.I would like to fully automate the process of resizing and repositioning the voids; however, that is something I plan to develop in the future to improve upon the version of the graph I am currently envisioning.

Some factors that would need to be considered for a fully automated version include:

  1. Each opening must maintain a minimum horizontal distance of 300mm from any adjacent opening.

  2. Each opening must maintain a minimum vertical distance of 200mm from any adjacent opening.

  3. If there are any perpendicular walls intersecting the host wall, there is a minimum distance that an opening can be placed from such walls (the exact value still needs to be confirmed).

I have implemented similar calculations before using VBA, essentially by calculating a bounding box around objects and obtaining their bottom left and top right coordinates. From this information, it is possible to determine the width, height, and vertical midpoint (for setting the elevation level) and then apply these values to the Void family’s instance parameters.

Condition 3 is something I have not yet explored, so I am unsure whether it can be implemented.

Ideally, the script would allow the user to select every service within an entire elevation view and automatically determine, based on the above rules, how many openings are required and where they should be placed.

For now, I will start with a simpler approach by working on selecting objects within a linked file and then progress from there.

Hi,

Thanks for the suggestion, it does look interesting. I’m curious, you appear to be selecting an entire run of pipework and any connector families. Does your script allow you to tab-select only a part i.e. a single length of pipe?

I select only one element, and the script selects the rest of the network.

Ah, I see. That’s not quite the behaviour I’m aiming for, I’d prefer to just be selecting on a particular segment and that being the only selection, not the entire run.

I’ve installed the Springs package and successfully tested its SelectLinkedElements node. However, I’m not particularly keen on having to select a linked file first before I can click on the elements I want to choose.