Jump to content


  • Posts

  • Joined

  • Last visited

Posts posted by Hippocode

  1. Yes, the PIO should always be in control of the internal geometry and data, unless you make very special objects that do not redraw on each reset.

    I'm not sure that is possible with VS. I do it with some of my plug-ins, using the SDK. Only on certain events, the PIO redraws it's contents. In any other, it keeps it's data instead of recreating it.

    What I do with my SymbolObject, is that whenever someone selects a symbol to display, it also copies all attached symbol records and assigns them to the SymbolObject itself. Then, every reset of the SymbolObject copies this data into the internal symbol. This way they both have the same data attached, and the client can still control the symbol data without having to explode the PIO.

  2. Hello again,

    thanks for the help with the other issues.

    I have a 2D path PIO with an embedded symbol.

    Does anybody has a clue how to get a handle to a symbol that is nested inside a PIO?

    I'd like to make another Vectorscript to manipulate the POI objects inside the drawing. Therefore I need to get a handle to the symbols inside the POI objects.

    Any ideas?

    I'm not going to say it's impossible, but you should not do it this way.

    You need to send information to the parent PIO, so it recalculates and redraws using your modified parameters.

    Changes made to geometry in a PIO, not handled by the PIO recalculate event often look corrupt on the screen, particularly with symbols.

    To get a handle to the symbol there are 2 ways:

    - Traverse the contents of the parent PIO. A PIO is a group like object, and you can traverse everything inside.

    - You could make it so the PIO has a Unique ID, and the Symbol has another Unique ID, based on the PIO one + some static characters.

    This way, you can quickly find the symbol, with the unique name of the PIO.

  3. I have no experience with the door tool but as you have noticed you can't just customise the behaviour of it, or any object for that matter.

    If recalculating a door removes any of your custom attached records then there is no way to continue, as this means the door tool removes any record that is not native whenever it recalculates. If that's the case, can't you add custom fields to the door record itself in the plug-in options ?

    About the custom label object:

    What you need to do is give each door a unique name or identifier. Your label object should have a string parameter that can store this name. This way the label knows which door it's referring to.

    With that name you can get the handle to the door, and in turn to any data attached.

    Resetting the label whenever the door moves might not be possible with Vectorscript, it is with the SDK.

  4. Indeed this is very very very important.

    The biggest reason why Autocad has been such a succes in the past is because the program was accessible for everyone. Every school I went to teached Autocad only, While we were always given an older version from school, every student could get their hands on the latest version (cracked :blush: ).

    While I do not encourage illegal software, just the fact that every student could easily start working with only one software, the choice was easy. It made me discover the program in my free time out of interest. At that point, I didn't even know others existed.

    So in whatever way it's done, students need easy acces to Vectorworks as they are your future clients.

  5. I do assume all symbols have the same IFC record attached, otherwise it might be a little more tricky.

    I suspect it will be trickier too! The symbols all have their own set of unique values apart from one field where they all share the same email address...

    You can do this in two ways:

    - Convert your symbols step wise by certain criteria untill you've edited them all.

    - Convert them all at once and sort on fieldvalues in the bottom list browser so you can clearly select objects that share a certain parameter, and edit those.

    Also note that even if you try to edit a parameter with different values you can still unlock it and change the value.

  6. When using the loft function there are some settings that can be setup, does your node use the same settings as when you do it manually by the provided tool?

    Also, try to (if possible) to keep the number of vertexes between different profiles the same, as this can give some unwanted results. Also the order of vertexes and the direction of each poly can cause deformations.

    From looking at your example file ( PDF is empty) I'd say it does loft in the correct order (which should be the order of the elements added to the group), but it flips the middle shape.

    I'd suggest you first try this with 3 simplified shapes and do some trial and error :)

  7. I downloaded and installed the trial version, but it couldn't seem to show my data? Could it be that the symbols are not parametric?

    Yes something I overlooked. Because the symbol definition does not contain the IFC record, it's not shown. It would work for a parametric object.

    However, the following workaround should work:

    Convert all your symbols into the provided SymbolObject which is just a wrapper object for symbols.

    There is a specific menu command for this "Convert to SymbolObject".

    Next, list the SymbolObject instead which does give you the option to change the data if you enable all options in the settings tab.

    If you don't want to continue with the SymbolObjects you can simply EXPLODE these objects and you will end up with the original symbol, but now with the correct data :)

    I did a quick test and it worked out. I do assume all symbols have the same IFC record attached, otherwise it might be a little more tricky.

    Let me know how it goes.

  8. And/or, what it might be is that I did *not* reinstall the Extensio plugin with my clean install of VW 2016. So probably VW 2016 was just searching for the plugin and then timing out, resulting in long delay.

    The plug-in itself shouldn't be causing any delays as it doesn't do anything special on start up.

    It could be, because you used a workspace with these tools included, but not installed, it does trigger a delay but I wonder why VW would do that.

    Give me a shout when you run into this issue again.

  9. Since you won't be importing the full library to a new document, I don't think you need to worry about the size.

    You might consider splitting it up over multiple files, depending on how you want to categorize it a little more, but this can be very specific to your needs.

    I'm assuming your library are base objects you need to edit differently for each object ? Otherwise, keep them as symbols when inserting.

  10. Yes you need a link to an image, in a resource file. This could be one of your own, or even one of the default in Vectorworks available libraries.

    Also, your button disappearing is probably because of how the modebar works. I only know how to work with it in the SDK, but the workflow should be the same.

    The modebar constantly recreates itself, so you will need to add items to your modebar in one of the available events, it keeps recreating.

  11. Thanks Hippocode and Dieter for replying.

    It would be easier to use a popup, which is what I've been using until I found out about the SymbolDisplayControl function.

    The reason I'm trying to get SymbolDisplayControl to work is because it has a bigger preview window.

    This exercise is to enable our users to browse our Architectural Details from an external file/files. By text search and visual display.

    If you stay into the importing symbols option, be aware of what has to be done with duplicates. What if the user has imported one of these symbols before, kept the name but modified it ? Will you just overwrite it ?

  12. Ah ok.

    What does deleting resource list actually do? Does it delete the actual object(eg symbol) from the file? Including all classes/textures associated with objects in that symbol as well?

    No a list is just a list of some sort of handle to the object. Adding or removing items from the list has nothing to do with adding or removing a resource.

    See it as a list of symbol names, removing a name (string) from a list doesn't delete the symbol.

    In your case that's great as you know which symbols to delete without having to do a search.

    FYI, if you use a thumbnail control, the symbols don't need to be imported for them to show up.

    Have a look at my SelectSymbolDialog which is also available as a custom VS function.

  13. I think the easiest way is to use criteria and the count function to find out if a class is being used.

    If that doesn't do it, traversing all the objects manually with one of the available functions yes.

    But it might get tricky for symbol definitions not used in the drawing. You could traverse each definition and search it's contents as well.

    Any way, it's important you do a deep search, including group contents and make the search recursive.


    Shows some recursive functions.

  14. Your current criteria is "LW = oldWeight". try adding AND SELECTED which will probably work.

    Honestly the easiest way is to create a custom selection into a script, which will create the criteria for you. Then copy it inside your script.

  • Create New...