Jump to content

Hans Martin Kern

Member
  • Posts

    46
  • Joined

  • Last visited

Posts posted by Hans Martin Kern

  1. If I insert a Door or Window object into a drawing using VW 2023, VW immediately displays blue reshape handles on the Door / Window object and I can start resizing it right away - without an additional trip to the reshape tool.

     

    Any hints on how to achieve the same behavior for a SDK-based third party plug-in? I found the extended property "kObjXPropInteractiveSizingInsert" but it looks like it's restricted to door/window use? Any hints appreciated.

  2. One of our plug-ins is automagically exporting symbols to a library file using
     

    virtual bool VCOM_CALLTYPE ExportResourceN(MCObjectHandle resource, IFileIdentifier* pFileID = nil, TImportResourceConflictCallbackProcPtr conflictCallback = nil) = 0;


    Works like a charm. Users have requested that we should export the symbol into a resource folder within the library file - so the structure of the library file is somewhat "tidier" and easier to work with when they open it up for maintenance purposes.


    Is there a way to accomplish that with the SDK? 

  3. Thanks for reaching out, Jushua.

    In fact, that's what I did. I assigned the record format to an object in file B. Both record formats are structurally identical as they were created from scratch by the code snippet posted. I have not touched the record formats after creation by any means. They are identical. So my conclusion is that there has to be some hidden ID / timestamp attached to the record format which makes the record formats different.

  4. I create a VW record format in document A with the following code snippet

    if (! VWRecordFormatObj::GetRecordFormat("SomeRecordFormat")) {
        
        VWRecordFormatObj recordFormat("SomeRecordFormat");
        recordFormat.AddParamCoord("SomeParam", 0.0);
        
        recordFormat.SetLock(false);
        recordFormat.SetFormatVisibility(true);
    }


    and assign the record format to a VW object in document A and enter some value for "SomeParam".


    Then, I open up a new document B and create a VW record format in document B with the very same code snippet shown above - so record format "SomeRecordFormat" is structurally identical in both document A and B.
     

    Now, I try to copy / paste the VW object with the associated "SomeRecordFormat" data from document A to document B. Vectorworks brings up a dialog complaining about the record format ("SomeRecordFormat") already being contained in document B and asks if I would like to replace, merge, rename the record format or continue using the existing record format.
     

    Is there a way to "convince" VW that the record format in document A and B are the same and that it should not bring up the aforementioned dialog? Looks like there's a hidden unique ID or a time stamp attached to the record format?

  5. Stephan,

     

    Here's how I would tackle this:

     
    class SomeClass
    {
    public:
        SomeClass();

    private:
        IEnergyBuildingElementWinDoorExPtr m_energy_2021;
    }

     

     

    SomeClass::SomeClass() : m_energy_2021(IID_EnergyBuildingElementWinDoorEx)
    {
        // If querying the interface fails for some reason, m_enery_2021 would be nullptr
    }


    The default destructor of SomeClass() will take care of releasing the acquired interface. Even if you create your own destructor, m_energy_2021 will still be released. So, to the best of my knowledge, there's no need for you to manually release it.


     

  6. A dialog of ours displays a list browser with a list of choices. Users can double-click on one of the items in order to select AND close the dialog right away. This is implemented in the dialog event handler function by
     

    if (itemHit == -kListBrowser)
        itemHit = kDefaultButtonID;


    This was working fine on both platforms for years, but with VW 2020, the code is no longer working on Windows (macOS still works fine). 

    Is this a regression or do we need jump through more hoops due to the new editable list browsers?

  7. I found that Vectorworks 2020 uses the the "disable-library-validation" entitlement, so plug-ins should load and run (for now). However, it looks like it is lacking the "get-task-allow" entitlement, which enables debugging the plug-ins with Xcode debugger (at least on 10.14.6, lldb can no longer attach to the Vectorworks 2020 process). Any pointers?

  8. Hi, I've been searching high and low both in ISDK and in the Object variables for an SDK equivalent to VectorScript's SetDimText() function (http://developer.vectorworks.net/index.php/VS:SetDimText). Any pointers? I think I'm not seeing the forest for the trees here. Thanks!

     

    Basically, I would like to create a linear dimension object and modify the value displayed by the dimension object afterwards.

     

    Of course, I could dive head-first into the dimHeaderNode and navigate to the text node, but I'm wondering if there's an official way to do it.

  9. The engineers are working hard on interiorcad 2018 - We hope to get it out to both our international and German speaking customers in late October / early November. I'm not yet allowed to talk about the feature set but will post more details / a URL here as soon as I'm allowed to ;-)

  10. Patrick, 

     

    thanks for the hint. However, this leads to the inevitable question: How do rotate a custom-object without taking the current view into account? Coming from an SDK background, I would expect to set the custom object's 4x3 TransformMatrix and I'm done. 

     

    HMK

×
×
  • Create New...