Jump to content

Julian Carr

  • Content Count

  • Joined

  • Last visited

Everything posted by Julian Carr

  1. Julian Carr

    How to retrieve detail level in PIO

    A couple of things to note: 1. You need to set the 3 levels of detail for each object as there is no assumption that if an object is visible at one level, it will automatically be visible at another. 2. If the PIO contains groups, you need to set the detail level for each object within the group as setting it for the group itself will have no effect.
  2. Julian Carr

    3D Polyline length

    This might be quicker. Convert a copy to nurbs then get its length using HLength(): Procedure T; VAR hTemp, h3DPoly : HANDLE; BEGIN h3DPoly := FSActLayer; hTemp := ConvertToNURBS(h3DPoly, True); Message('3D Poly Length: ', HLength(hTemp)); DelObject(hTemp); END; Run(T);
  3. Just wondering if anyone knows how to get a handle to a Plant object's style definition, from a given handle to a plant instance? GetPluginStyleSymbol() works with other styled PIOs, but not with Plant objects. Thanks.
  4. Julian Carr

    Setting Hybrid symbol fill

    Then you have to consider how the symbols are constructed. Are there container objects within that you need to traverse such as Groups, or PIOs that are controlling fill attributes of objects within independently? Then you will also need to check whether any of the objects have their attributes being controlled by class and respond accordingly. So all in all, not a simple task.
  5. Julian Carr

    In Top/Plan view ???

    Don't think so. It could make drawing navigation very slow.
  6. Julian Carr

    In Top/Plan view ???

    I think this works: FlagTopPlan := GetProjection(ActLayer) = 6;
  7. Julian Carr

    Symbol embedded in plugin (but not drawn!)

    Glad you got it working. Apart from copying and pasting between files, this functionality also ensures that the symbol is seen as being in-use by the Purge command, so won't get accidentally deleted.
  8. Julian Carr

    Symbol embedded in plugin (but not drawn!)

    You need to add a symbol instance to the profile group of the PIO using SetCustomObjectProfileGroup(). Because this is persistent between regens, you need to delete the profile group on each regen then reinstate it. Something like this: Symbol('mysymbol', 0, 0, 0); h1 := LNewObject; h2 := GetCustomObjectProfileGroup(ghParm); IF h2 <> Nil THEN DelObject(h2); IF h1 = NIL THEN Flag := SetCustomObjectProfileGroup(ghParm, h2) You can always check the existence of the profile group by selecting your object then using the Edit Group command.
  9. Julian Carr

    Creating a wall with dotted center line

    Sorry you will need to put a minus in front of Name2Index, but also note that you may not see the line is dashed because the line from the adjoining component is solid, so you might need to do something like this: procedure test; var Response : boolean; begin Response := DeleteAllComponents (nil); Response := InsertNewComponentN (nil, 1, 5, 0, 10, 0, 0, 2); Response := InsertNewComponentN (nil, 2, 20, 0, 6, 10, -Name2Index('Dash Style-2'), 0); SetTool (13); end; Run (test);
  10. Julian Carr

    Creating a wall with dotted center line

    Try using Name2Index('Dash Style-2') in place of -2, as the number will vary depending on the order the dash styles were imported into the drawing. Obviously the dash style will already need to exist in the file for this to work.
  11. Julian Carr

    Assign Class to Selected Symbol via Custom Script

    So what Josh is referring to is a structure like this, which is one of the most time saving scripts you can have because it can be adapted to do so many things:: Procedure TimeSaver; Procedure DoIt(h1 : HANDLE); BEGIN SetClass( h1, ‘Class Name’ ); END; BEGIN ForEachObject(DoIt, (Sel = True)); END; Run(TimeSaver);
  12. Julian Carr

    Date function - data structure changed in 2019?

    The Date() procedure has always used the system settings to determine what is displayed. On the odd machine it ignores the system settings, but this is very rare.
  13. Is anyone using vsoStateGetParamChng() with n event enabled linear PIO? It works OK with a point object, but returns false for a linear object. Thanks.
  14. Julian Carr

    Tracking Control Point Changes in Linear PIO

    Never mind, I got it working. Not really sure what I did however, but now it works.
  15. Julian Carr

    Tracking PIO movement

    You might be able to do it in the reset evert (3) using this: Flag := vsoStateGetParamChng(ghParm, gOutWidgID, gn, gsOldParmValue); gOutWidgID is the widget ID of the param that has changed. gsOldParmValue is the previous parameter value. I've never used it with control points though, so good luck.
  16. Anyone have a code snippet for applying a Tile resource to a polygon? Not having much luck. TIA.
  17. Julian Carr

    Applying a Tile Resource to a Polygon

    Thanks Orso. Next question. How to get the tile fill name of a wall component. If I use GetComponentFill() then index2name() on the returned fill, it doesn't work. Thanks.
  18. Julian Carr

    Applying Tile Resources

    Anyone have a code snippet for applying a Tile resource to a polygon? Not having much luck. TIA.
  19. Has anyone figured out how to create a resource folder (other than a symbol folder [type 92]), and if so, what are the Object Type numbers for the various types of resource folders? [Edit]: Actually all resource folders are type 92, and I have tried using SetParent(), but that doesn't work to put resources into resource folders. Thanks!
  20. Julian Carr

    Accessing and Creating Resource Folders

    Thank Josh. Yeah I tried that already but unfortunately it doesn't do anything in this case and the function returns false.
  21. Julian Carr

    Accessing and Creating Resource Folders

    Actually, one more. Any ideas for an equivalent to InsertSymbolInFolder() for shifting imported resources to a designated resource folder? InsertSymbolInFolderN() seems to be accepted by the compiler, but doesn't do anything and is not in the Function Ref.
  22. Julian Carr

    Accessing and Creating Resource Folders

    Brilliant - thanks Josh.
  23. Julian Carr

    DSelectAll not working in 2019?

    Hi Markus, I don't know about your command but I do use DeselectAll in a lot of scripts and it continues to work there. Do you know you can also deselect all by holding the Spacebar down then double tapping the X key? The Spacebar preserves the current tool selection. If you don't need this, then just double tapping X will suffice. Julian
  24. Julian Carr

    Messages and Includes

    We are using a lot of saved views in our training and have added a script to each saved view to open the message window with some instructions that pertain to each particular step. This allows users to be able to work in the file while still having the instructions visible and unaffected by view changes, panning or zooming. The notes for each of the message strings come from a worksheet within the file. There are two things that would make this process better. 1. Being able to get the name of the current saved view that is running the script. 2. Being able to access the script via an include file. Can anyone think of a way to do either of these things? Because we run training courses at a 3rd party training venue, we generally can only install the training files in a folder on the Desktop of each machine, so the potential path to any include file will be different on each machine. Thanks for any ideas. Julian PS. I discovered that you can get around the limitation of 256 characters in a message, by concatenating a series of sub 256 character strings together within the message call.
  25. Julian Carr

    Bad file name Question

    Anyone know why this code: Procedure T; VAR s1 : STRING; BEGIN s1 := Concat(GetFolderPath(1), 'Test.txt'); ReWrite(s1); WriteLn('test'); Close(s1); END; Run(T); works fine on a Mac but returns this error on a PC: Error on line=6: T S1 - File operation returned error. Error on line=8: T S1 - Bad file name. C:\Program Files\Vectorworks 2018\Test.txt Thanks!


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.