2020-07-2102:30 PM - last edited on 2021-09-1501:33 AM by Noemi Balogh
I'm writing a plugin for our firm that makes heavy use of
to highlight elements not drawn to our standard in real-time (i.e. walls drawn with a slight angle).
This has worked great, but I'd love to be able to also highlight dimensions that are static or have custom text input so its easier to find issues.
I can get the information from the dimension element and memo to find the note's type/content/etc, but it appears that the note isn't an an element, but a neig of the whole element. Unfortunately it looks like the highlight elements function above only works with actual elements, and ignores any included neigs that arent line's (the dimension line is highlighted, but not the text itself).
It also seems like the individual sections of a dimension are also neigs, so I'm only able to highlight an entire dimension element.
I've searched through the documentation and examples as best I can but It seems there aren't any other functions to draw arbitrary colors/highlights/anything that is purely visual feedback.
Am I missing anything else? I would love more functions to draw visual feedback that doesn't altar the actual project as dealing with reserving/releasing from a plugin has been an issue in the past.
I recommend you to check the Markup functionality. You can create new Markup entries by using ACAPI_MarkUp_Create function and attach elements to the markup with the ACAPI_MarkUp_AttachElements function.
You can set the style (color etc.) of the markup, so the attached elements can be highlighted.
You can try Markup function in ARCHICAD with the Markup Tools palette, see: https://helpcenter.graphisoft.com/user-guide/77189/
Unfortunately, creating via Markups would introduce a lot of unnecessary complexity here, wouldnt it?
Currently, since the feedback I'm providing is not embedded in the project, I don't need to care about element reservation status in teamwork projects with numerous people working on it. I can just determine drawing errors once for the project when the plugin initializes, and then just update when new elements are created or existing ones change and highlight appropriately.
If I begin using Markups, these would need to be checked in to the Teamworks project, correct? I see that Markups cannot be reserved, but they can be assigned and modified by users? It seems I would also have to somehow check if a markup already exists before blindly creating one when I detect an issue, which wouldn't be attached to the elements I'm iterating.
I had assumed that APIIo_HighlightElements was similar to what the selection uses to color elements, or what Markups use, but it appears that it doesn't have the same capabilities.