2024-09-10 05:58 PM - last edited on 2024-10-14 10:19 PM by Laszlo Nagy
Hi everyone,
I hope everybody is having a great time.
Is there anyone that can help me?
For those who work in the UK, a current requirement for planning applications is to note the "Clear opening width" of every proposed door on plan drawings.
Archicad doors don't have the dots on floor plans to make this measurement, as shown in the attached screenshot. Additionally, this is not the same as egress dimensions since this dimension is measured from other parts of the door and is not the door leaf dimension either.
I have attached a screenshot to clarify what I mean. I feel that there is not an official solution, but this would be solved by activating the missing dots of the door on the floor plan.
If no one has a straightforward solution, it would be great if this could be fixed in the coming updates since everyone will benefit, especially accessibility projects.
Operating system used: Mac Intel-based
2024-09-10 07:18 PM
If it is of any use to you, I have made a custom door marker that annotates the door as "clear opening width XXXmm" and calculates this correctly. I haven't yet managed to get it to draw the dimension lines - I've tried but need to get my head around the orientation of doors so that they land in the right place.
I calculate the clear width as leaf width - leaf thickness - rebate width - note that this does not take into account hinge offset etc. which are required to get it absolutely correct but I believe this is adequate for UK building regulations. Let me know if you would like a copy.
My original plan was to edit the door objects to change how they reported egress width (which could then be scheduled etc.) until I discovered how complex the door macros are.
2024-09-11 10:37 AM
Thanks very much, @neilmcallister. It would be great to have a copy. And yes, I have also tried to edit the door object, but as you say, it is a very complex object.
I hope this post can be seen by one of the developers to solve this problem. Let's see what happens in the coming days, as I imagine it is not a popular problem.
2024-09-11 01:53 PM
Hi,
If the objects take the same variables as the international and French library
For the missing hot spots …
For the simple door, just add these two lines in the 2d script
HOTSPOT2 A/2-gs_frame_width+gs_rebate_width- gs_leaf_thk, 0
HOTSPOT2 A/2-gs_frame_width+gs_rebate_width- gs_leaf_thk, gs_leaf_panel_width
And for a double door these
HOTSPOT2 A/2-gs_frame_width+gs_rebate_width-gs_leaf_thk, 0
HOTSPOT2 A/2-gs_frame_width+gs_rebate_width-gs_leaf_thk, gs_SecondLeaf_w
HOTSPOT2 -A/2+gs_frame_width-gs_rebate_width+gs_leaf_thk, 0
HOTSPOT2 -A/2+gs_frame_width-gs_rebate_width+gs_leaf_thk, gs_leaf_panel_width - gs_SecondLeaf_w
2024-09-12 11:37 AM
@Yves Thank you very much for the scripts; they are working perfectly. Is there any way to add this script to Archicad's native door library instead of creating a new embedded door?
2024-09-12 01:38 PM
2024-09-12 02:44 PM
The only possibility is to extract the archicad library to make the modifications and then recreate the container to replace the original library. And it will be necessary to redo the modification with each new version of the archicad library …
But after thinking about it last night and a few tests, I think it would be better to put these hot spots on a copy of the door marker (which according to your screenshot you already use).
It took me more time to write the script and it is a little longer but the result is identical and it avoids modifying the native archicad library.
So you make a copy of your marker and you add this in the 2D script
(In this script I considered all the single doors are smaller than 1m30 to make the difference with the double)
rrr = request ("ASSOCLP_PARVALUE", "gs_frame_width",index_uh, type_uh, flags_uh, dim1_uh, dim2_uh, frame_width)
rrr = request ("ASSOCLP_PARVALUE", "gs_frame_thk",index_uh, type_uh, flags_uh, dim1_uh, dim2_uh, frame_thk)
rrr = request ("ASSOCLP_PARVALUE", "gs_rebate_width", index_ew, type_ew, flags_ew, dim1_ew, dim2_ew, rebatewidth)
rrr = request ("ASSOCLP_PARVALUE", "gs_leaf_thk", index_eh, type_eh, flags_eh, dim1_eh, dim2_eh, leaf_thk)
rrr = request ("ASSOCLP_PARVALUE", "gs_frame_wthk",index_uh, type_uh, flags_uh, dim1_uh, dim2_uh, frame_wthk)
rrr = request ("ASSOCLP_PARVALUE", "gs_leaf_panel_width",index_uh, type_uh, flags_uh, dim1_uh, dim2_uh, leaf_panel_width)
rrr = request ("ASSOCLP_PARVALUE", "gs_SecondLeaf_w",index_uh, type_uh, flags_uh, dim1_uh, dim2_uh, SecondLeaf_w)
IF NOT(frame_wthk) THEN
IF AC_WIDO_REVEAL_SIDE THEN
IF AC_WIDO_REVEAL_SIDE_2 THEN ADD2 0, -AC_WALL_THICKNESS + frame_thk
ELSE
IF AC_WIDO_REVEAL_SIDE_2 THEN ADD2 0, AC_WALL_THICKNESS - frame_thk
ENDIF
ENDIF
IF AC_WIDO_A_SIZE < 1.30 THEN
IF AC_WIDO_REVEAL_SIDE THEN
IF AC_WIDO_MIRRORED THEN MUL2 -1,1
HOTSPOT2 AC_WIDO_A_SIZE/2 - frame_width + rebatewidth - leaf_thk , 0
HOTSPOT2 AC_WIDO_A_SIZE/2 - frame_width + rebatewidth - leaf_thk , leaf_panel_width
ELSE
IF NOT(AC_WIDO_MIRRORED) THEN MUL2 -1,1
HOTSPOT2 AC_WIDO_A_SIZE/2 - frame_width + rebatewidth - leaf_thk , -AC_WALL_THICKNESS
HOTSPOT2 AC_WIDO_A_SIZE/2 - frame_width + rebatewidth - leaf_thk , -AC_WALL_THICKNESS-leaf_panel_width
ENDIF
ELSE
IF AC_WIDO_REVEAL_SIDE THEN
IF AC_WIDO_MIRRORED THEN MUL2 -1,1
HOTSPOT2 AC_WIDO_A_SIZE/2 - frame_width + rebatewidth - leaf_thk , 0
HOTSPOT2 AC_WIDO_A_SIZE/2 - frame_width + rebatewidth - leaf_thk , SecondLeaf_w
HOTSPOT2 -AC_WIDO_A_SIZE/2 + frame_width - rebatewidth + leaf_thk , 0
HOTSPOT2 -AC_WIDO_A_SIZE/2 + frame_width - rebatewidth + leaf_thk , leaf_panel_width - SecondLeaf_w !!!-(AC_WALL_THICKNESS -frame_thk)
ELSE
IF NOT(AC_WIDO_MIRRORED) THEN MUL2 -1,1
HOTSPOT2 AC_WIDO_A_SIZE/2 - frame_width + rebatewidth - leaf_thk , -AC_WALL_THICKNESS
HOTSPOT2 AC_WIDO_A_SIZE/2 - frame_width + rebatewidth - leaf_thk , -AC_WALL_THICKNESS-SecondLeaf_w
HOTSPOT2 -AC_WIDO_A_SIZE/2 + frame_width - rebatewidth + leaf_thk , -AC_WALL_THICKNESS
HOTSPOT2 -AC_WIDO_A_SIZE/2 + frame_width - rebatewidth + leaf_thk , -AC_WALL_THICKNESS-(leaf_panel_width-SecondLeaf_w)
ENDIF
ENDIF