Jump to content

Stefan Bender

  • Content Count

  • Joined

  • Last visited

Community Reputation

1 Neutral

About Stefan Bender

  • Rank

Personal Information

  • Location

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Dear developers, have any of you ever used VWWallObj::InsertNewComponent or ISDK::InsertNewComponentN? I'm currently trying to "copy" the cavities of an existing wall that has 3 cavities (with a total width of 32 cm) to another wall with no cavities but a width of 45 cm. I'm adding 3 cavities/components seemingly sucessfully to the target (after reading them from the "source" wall by VWWallObj::GetComponentInfo), but when I analyze the "target" wall, all three cavities have a width of 0 and the overall width of the target wall is 0. The expected and required result is that the "target wall" has the same components and the same overall width as the source wall afterwards. I assume that the problem may be related to the fact that the target wall had no cavities before this. But I couldn't find an object variable or member function of VWWallObj to tell the wall that its width is defined by components and not by "width". Is there something wrong with my workflow? What can I do to make the target wall "accept" the actual widths of the cavities? Thanks for any help, Stefan Bender
  2. Dear developers, what does the second parameter "foldersAreCategories" mean? I tried either value and don't see any difference. What is this parameter used for? I'm asking because in VW 2019 we have serious problems with the resource browser control in dialogs. Symbols in subfolders do not show up, and clicking on names of subfolders causes flickering and garbage to be drawn (I'm about to write a bug report about that, but it would help to know what this parameter is meant for). Thanks for any help, Stefan Bender
  3. Stefan Bender

    [C++] Unique Identifier for Objects

    Creating a UUID and storing it in a hidden record format won't work. If a user or an SDK routine duplicates the object, the record of the duplicate will have the same UUID than the record of the original.
  4. Stefan Bender

    Import Symbol during a Tool's DoModeEvent throws "Beta Undo Alert 9"

    Hi Matthias, did you start an undo event before importing the symbol? This is absolutely necessary if you do something that affects the undo table such as importing a new object into the drawing or modifying the name lists. Hth, Stefan
  5. Stefan Bender

    Double Clicking on PIO

    Did not set properties kObjXPropSpecialEdit and / or kObjXPropHasUIOverride in your OnInitXProperties handler?
  6. Stefan Bender

    Double Clicking on PIO

    Hi Nebeor, This class should exist in all SDK versions since several years. I'm using VW 2018 and VW 2019 (probably not released yet) SDK. >>>Why does the name of the class starts with 'XXX' and not 'VW'? There's no actual class "XXXX...". XXX means just the name of the plug-in, as you have to derive your own class "XXX.." from the base VW class and overload some of the virtual functions. I don't know if there's a documentation, but you may wish to hava a look at some of the sample plug-ins. Regards, Stefan Bender
  7. Stefan Bender

    Double Clicking on PIO

    This class should be a lot older than Vectorworks 2015. It's in VWFC/PluginSupport/VWExtensionParametric.h. Maybe your plug-ins are not using this class and are based on some older classes and structures. Best regards, Stefan Bender
  8. Stefan Bender

    Double Clicking on PIO

    Hi Nebeor, you need to overload XXXRegenSink::OnSpedialEditID(). Hth, Stefan Bender
  9. Stefan Bender

    Assign class to object, but not to subobjects?

    Is there a way to assign a class to a Vectorworks object WITHOUT changing the class of its subobjects? Afaik SetClassID also changes the subobject's classes which is not wanted and causes lots of problems and delays in some situations. Thanks for any help, Stefan Bender
  10. Stefan Bender

    How to add static texts to OIP?

    Joshua and Vlado, thanks for your help! I would have preferred to set the strings in the ::Update() function, but at least it works now. Regards, Stefan Bender
  11. Stefan Bender

    How to add static texts to OIP?

    Dear developers, for a new task I need to add a pair of (name, value) to the OIP of a PIO (see below). The texts need to be static and disabled. Sounds simple, but looking at the widget utility functions in the SDK I can not see how to do that. These functions assume that the values are part of the PIO's record format. But I need to write texts that are arbitrary values, no record fields. Currently I'm trying to define the widgets with type kWidgetStaticTextParam, but then the text at the right hand side of the OIP is empty and I don't know how to set it. SWidgetDefinition only contains a member variable fWidgetText (which would be the left one), but I can't see how to set the right hand value. Which widget type do I need to use and how can I set left and right hand text (as redlined in attached image) without having to "link" a record field to the widget? Thanks for any help, Stefan Bender
  12. Stefan Bender

    How to set the default class of a custom plug-in object?

    Hi Nebeor, afaik there's no way to set the default class in the plug-in definition. You can hardly define a default class beside "None" and "Dimension" as you don't know in advance which classes actually exist when the user creates a PIO. You may need to check all places in your code where you create your PIO and set the default class before calling CreateCustomObject. You may also try to change the class within the regeneration code when a PIO is regenerated for the first time, but beware of infinite recursion (setting the class may trigger another regeneration...). Hth, Stefan Bender


7150 Riverwood Drive, Columbia, Maryland 21046, USA   |   Contact Us:   410-290-5114


© 2018 Vectorworks, Inc. All Rights Reserved. Vectorworks, Inc. is part of the Nemetschek Group.