Libraries & objects
About Archicad and BIMcloud libraries, their management and migration, objects and other library parts, etc.

Custom door marker with joint RoomID+DoorID for Schedules

matjashka
Advocate
[NOTE: READ THE WHOLE THREAD BELOW - THIS WORKAROUND WAS ORIGINALLY DEVELOPED ON AC v16]

This topic is in response to the problem of having to manually merge Room ID and Door ID columns in schedules, when the door is supposed to automatically take advantage of the Zone it belongs to.
Example: we have 4 doors in zone number 101, labeled A, B, C, D. On the schedule, we want to see doors 101A, 101B, 101C and 101D, in one column.

Here's how you can do it by creating a custom marker. As an extra, we will add one more parameter that you can also include in your schedule. In our case, let's make it a hardware set number.

We will modify the Door Marker_NCS 16.gsm -- if you don't know how to find it, search how to extract ArchiCAD library to a folder.

TO MERGE ROOM ID AND DOOR ID INTO ONE PARAMETER, MOVE THE 2D SCRIPT SECTION SHOWN BELOW TO THE MASTER SCRIPT

!!---------------!!!!---------------!!!---------------!!
!!--- Show ID ---!!!!--- Show ID ---!!!--- Show ID ---!!
!!---------------!!!!---------------!!!---------------!!

room_num=""
If glob_context<>5 and glob_context<>1 and (GS_CustomText=`Room & Door ID` or GS_CustomText=`Room ID`) Then



(... AND SO FORTH, INCLUDING THE LINES BELOW:)



pen AC_TextPen_1
If GS_CustomText<>`Custom Text` Then
	Room_ID=room_num
	Door_ID=AC_WIDO_ID
Else
	Room_ID=GS_RoomCustom
	Door_ID=GS_DoorCustom
EndIf
THEN ADD THE FOLLOWING PARAMETERS
drID (type of variable: Text)
hdw_set (type of variable: Text)

ADD THE FOLLOWING LINE TO THE END OF THE MASTER SCRIPT
drID=Room_ID+Door_ID
REPLACE THE FOLLWING 2D SCRIPT SECTION
	if GS_CustomText=`Room ID` then
		style mtext11style
		text2 0,0,Room_ID
	else
		style mtext11style
		text2 0,0,Room_ID

		style mtext12style
		text2 0,0,Door_ID
	endif
WITH THE FOLLOWING (OR simply substitute the two variables)
	if GS_CustomText=`Room ID` then
		style mtext11style
		text2 0,0,Room_ID
	else
		style mtext11style
		text2 0,0,drID

		style mtext12style
		text2 0,0,hdw_set
	endif
IN THE PARAMETER SCRIPT ADD THE FOLLOWING LINE
values "drID" Room_ID+Door_ID
Save your modified marker, for demonstration i included the word "TEST" at the end of the name.

NOW, THIS IS HOW YOU ADD THE PARAMETERS FROM YOUR CUSTOM MARKER TO ANY OF YOUR LISTS/SCHEDULES:
  • Assign your custom marker to the doors in your project. Place the zones . Make sure that the doors can use the adjacent zone number, and then give each door individual manual IDs: A, B, C, and so forth (really, this can be anything you want)
  • Open "NCS Door and Frame Sch" and click the Scheme Settings button
  • Open the "Fields / NCS Door and Frame Sch" section and click the little black arrow next to the big Add button at the bottom. Choose "Add Object Parameters"
  • From the "Select Object By" drop-down select "Search criteria", Find names which "contain" "TEST" (Since I added the word "TEST" to the name of my marker, that's how I find it).
  • Select your custom marker from the results, and all the Available Parameters will be listed for you below. In the list on your left, locate your custom-added drID and hdw_set. Click the >>Add>> button to add them both to the list on your right (they showed up blue in my case).
  • Click OK when you're done.
  • You can now see your custom variables/parameters on the Available Parameters list so you can include them as columns in your schedule.
The rest should be pretty much self-explanatory. The door marker will let you use ANY ArchiCAD door with ANY custom parameters you want to add to the marker, and if you script it, you may show them in the marker or next to it. Use your imagination.

HTH.

custom_door_marker.png
Matt Krol [LinkedIn]
BHMS Architects and Planners, Chicago
AC 10 ... 26 USA
6 REPLIES 6
Brian Spears
Booster
Sweet! Thanks, I'm saving this for later when I can dig into it!
Brian Spears
BIM Manager, Steele Group Architects
Winston-Salem, NC
AC27 USA on macOS
Brian Spears
Booster
matjashka, finally got around to following along and modifying the Door Marker and getting the schedule to list the Room / Door combo. pretty sweet! thanks for taking the time to clarify the instructions!

brian
Brian Spears
BIM Manager, Steele Group Architects
Winston-Salem, NC
AC27 USA on macOS
Anonymous
Not applicable
At first this seemed to work great, and to be a great workaround until our office migrates to AC19.

HOWEVER,
It caused our model to begin crashing. We have a multi-family floor plan hotlinked into our main teamwork model (and copied up many floors). I was attempting to use this to get the doors to label correctly without having to manage tons of zones on each level. It worked, but then our model started crashing. Removed the custom markers, no more crashing. Has anyone else experienced this?

Also, after messing with the door markers for a couple days straight, I have also noticed some weird behavior, esp in relation to the marker picking up the Room ID.

Thank you for this super clear instructions on how to get this to work though matjashka! It is really the easiest GDL customization walkthrough I have seen!
matjashka
Advocate
That's kinda bad news, Kyle.
I'm glad it had been working for you. I stopped posting to this forum because we're still on v16 and the tricks I've learned no longer applied to current problems. I still heavily rely on this type of custom markers, but the workaround may have been rendered obsolete like you said.

It almost seems like there are more and more people reporting that their old workarounds no longer work with v19. From my limited experience, GS rarely fix the absolutely horrible objects that had been stuck in the libraries for years (example: railings, outdated plumbing fixtures etc) -- I wish they would take clues from hands-on experience of the great GDL experts who've been posting here (not me). Maybe you could use some leverage to contact GS and say "guys, here was a solution to a real-world problem, could you please issue an update and make it work for everyone from now on".

I'd love to help you but someone else has to chime in
Matt Krol [LinkedIn]
BHMS Architects and Planners, Chicago
AC 10 ... 26 USA
Anonymous
Not applicable
Thanks for the reply Matt!

Sorry, what I wrote was really confusing.

We are still on 17, and the door marker is crashing on 17. I am merely hoping that v19 will make your elegant solution obsolete.

I am no ArchiCad or GDL expert, but it seems like your solution of correctly labeling doors is too much for ArchiCad to handle when used with multiple hotlinked modules (which is sort of the point of BIM software). Perhaps I coded something wrong, but I am fairly certain that my custom door markers are to blame for the crashing.

Your solution is exactly what I was hoping to find to automate door tags, it just seems that ArchiCAD can't handle doing the automation. However I have no way of knowing whether my coding could be improved, because I can't decipher and error logs after crashing.
matjashka
Advocate
I originally developed this marker for a 3-story nursing home which had multiple doors buried in a typical floor hotlink plus a number of smaller modular hotlinks. It works in v16 without a problem. Again, that does not mean that this code applies to any other version. I'm not a GDL expert and I don't know what extra processing challenges may be posed by escalating instructions to the Master section of the script, and I think I had about 200 doors overall in that project. Not sure what causes the crash if the script comes out "OK".

OK, happy Labor Day for now!
Matt Krol [LinkedIn]
BHMS Architects and Planners, Chicago
AC 10 ... 26 USA