Jump to content

All Activity

This stream auto-updates

  1. Past hour
  2. @spettitt You should be able to do the control point solution without needing events, and it might be cleaner from a usability standpoint. You would just need to specify a control point parameter and then pull it using the standard PControlPoint01X and PControlPoint01Y like you would any other parameter value. If I can wrap up my immediate tasks this morning, I can fab up a Vectorscript example for you.
  3. We've conducted initial tests with macOS 14.5 beta2, and it appears that the printing issue has been resolved. 🤞🏼
  4. My setup is pretty simple in the end really. This was the thread I made when first trying it:
  5. Hmm, haven't noticed this. Well, since you have this figured out I suppose that it is ok
  6. That's right, yes. This was what I had: import vs ##################### # First - Reset the SktUUID Record on each socket in each Device prof group def SockRecord(h): vs.Record(h, 'SktUUID') vs.SetRFieldOpt(h, 'SktUUID', 'Dev', True, True) vs.ResetObject(h) vs.SetObjectVariableBoolean(h, 1167, True) def DevSockAddRecord(h): hprofile = vs.GetCustomObjectProfileGroup(h) vs.ForEachObjectInList(SockRecord, 1, 0, vs.FInGroup(hprofile)) vs.ResetObject(h) vs.SetObjectVariableBoolean(h, 1167, True) vs.ForEachObject(DevSockAddRecord, "PON = 'Device'") ##################### # Then go through each Device and post it's Self UUID. # Devices first because they are at the top of the relational chain def DevUUID(h): UUIDv = vs.GetObjectUuid(h) vs.SetRField(h, 'DevUUID', 'Self', UUIDv) vs.ResetObject(h) vs.SetObjectVariableBoolean(h, 1167, True) vs.ForEachObject(DevUUID, "PON = 'Device'") ##################### # For each socket, post it's self UUID and then reset it, so it picks up the Device UUID def SockUUID(h): UUIDv = vs.GetObjectUuid(h) if UUIDv: #vs.Message(f'Found a socket {UUIDv}') vs.SetRField(h, 'SktUUID', 'Self', UUIDv) vs.ResetObject(h) vs.SetObjectVariableBoolean(h, 1167, True) def DevSockUUID(h): hprofile = vs.GetCustomObjectProfileGroup(h) vs.ForEachObjectInList(SockUUID, 1, 0, vs.FInGroup(hprofile)) vs.ResetObject(h) vs.SetObjectVariableBoolean(h, 1167, True) vs.ForEachObject(DevSockUUID, "PON = 'Device'") ##################### # Then go through each Circuit and post it's Self UUID def CircuitUUID(h): UUIDv = vs.GetObjectUuid(h) if UUIDv: #vs.Message(f'Found a circuit {UUIDv}') vs.SetRField(h, 'CircuitUUID', 'Self', UUIDv) vs.ResetObject(h) vs.SetObjectVariableBoolean(h, 1167, True) vs.ForEachObject(CircuitUUID, "PON = 'Circuit'") # Resets for good measure def refreshskt(h): vs.ResetObject(h) vs.SetObjectVariableBoolean(h, 1167, True) def refreshdev(h): hprofile = vs.GetCustomObjectProfileGroup(h) vs.ForEachObjectInList(refreshskt, 1, 0, vs.FInGroup(hprofile)) vs.ResetObject(h) vs.SetObjectVariableBoolean(h, 1167, True) def refreshcircuit(h): vs.ResetObject(h) vs.SetObjectVariableBoolean(h, 1167, True) vs.ForEachObject(refreshdev, "PON = 'Device'") vs.ForEachObject(refreshcircuit, "PON = 'Circuit'") Which produced the below:
  7. @Jesse Cogswell - thanks so much for this! I hope over time I can give back to this forum in the way it's given to me. I've got your first example running nicely with Vectorscript, and my next task will be to rewrite in Python so I can see how such a PIO might handle the same task. From there, I don't think it'll be too hard to pull the truss data and class the PIO geometry. I have two other big Python projects on outside of Vectorworks (though using Vectorworks data), and I don't think my little mind can handle looking at events right now. If I can get the simple version working, potentially with the 'Lock' parameter, that would be great for the moment and I'll come back to the events thread above when the time is right.
  8. Did you put my script in your old script? My change was just 1 line in your old script but I added the whole function for context.
  9. Thanks for this @Nikolay Zhelyazkov. Adding that line does indeed give me the parent device, but did then affect the sockets getting their self UUID. However then a follow-up script just to write the socket self UUID got me the full house. For what it's for, I don't mind two scripts, so this is great. Thank you.
  10. Hello all, In VW 2024 we have added the ability to display all TBB parameters and records in the OIP. If the Sheet Data.Scale field is added then the Update Scale button is added too. So I think that this thread is resolved there. Best Regards, Nikolay Zhelyazkov
  11. The problem is that Spotlight doesn't use the channel number as the internal identifier since it can change based on design and user requirements, which would then break any connection (internal to Spotlight or external) to the any other linked data. You can try using the worksheet criteria ='Lighting Device'.'UID' to access the UUID's and this may enable you to correctly map the data. What software are you using to create the patch? If it supports MVR this may provide another route to get the data in and sync it to the correct lights.
  12. Today
  13. Hello. Is there any way to insert the real photos instead of generated 3D images in grafic legends? That could be great option.
  14. Hi, Sorry what is the outcome of this discussion please? It would be a great time saver to automate the scale of the titleblock against the viewport on the drawing sheet, and in case there where multiple viewports at different scales then there should be an option for various scales. Thank you Federico
  15. I do understand the issue regarding the correct data, but in the case of Spotlight you always add the Channel number / Unit number to your fixture. That would be the unique identifier for Vectorworks to match to. I create my patch in another software then Vectorworks as some of the modes are not correct or there is no GDTF fixture available etc. Atm I have to manual insert the patch in Vectorworks which can result in errors, with the new Excel referencing I was hoping to find a way to import a CSV / Excel and link it to an Lighting Device.
  16. Multiple Apple silicon Macs with Apple displays. We get more crashes for sure, but it's not (yet) unmanageable. (We have a super-robust auto-back-up system in place.) Printing is a complete mess with our HP Printer. We have historically printed directly from VW using the Publish function. It worked beautifully. Now it just messes up the page formatting (that has to be manually reset for every sheet layer) and churns out so much waste paper from the printer. We have gone to a 'via PDF' workflow, but it's so much slower. Praying for a fix soon... P
  17. I think I did it somehow 😃 I used subdivision and it turned out quite ok. Not super accurate but good enough. Thanks!!
  18. I'd be interested in quizzing you over your set-up as I'm not sure I completely know what I'm doing (with Stories) yet, but like you say probably better in another thread... It was actually after you clarified for me elsewhere that to get the full benefit of Elev BMs you needed to use Stories that I finally decided to do so on a current project. Although I added them halfway through which wasn't perhaps the most effective way of doing it 🙂
  19. Yes I have been doing this for a while now and it's very useful. It's one of VW's best-implemented features. Just waiting for section-elevation lines to be updated to behave as nicely. Relating elevation benchmarks to storey levels is one of the main reasons I use "storeys" even though I actually just use one storey and put all of my levels (for multiple floor levels) within it. But this is all a bit off topic for this thread, which is supposed to be about getting by without using storeys at all.
  20. Another thing to consider is that you can return the story level names in Elevation Benchmarks so worth thinking about what you want to see in your section VPs when naming them. I have only just started doing this + it is pretty impressive functionality (having things set up so Elev BMs automatically display in section VPs).
  21. I am trying to export a viewport as a PDF and Vectorworks keeps crashing. This issue has only just started as I am on version 11 of the project so have been able to export with no problems up until now. Has anybody got some insight into why this might be happening? It is only with a specific file and not across the board on other projects. Thanks in advance
  22. What template file are you looking at? If it's one from the first page of this thread, note that the point of this thread is to explain a model set-up that does not need the use of stories. If you are looking at organisation/stories and seeing the "default storey levels" then if there's one with slab in the name, no it is not necessarily connected to any slabs you've drawn. You can set a storey level to any elevation you like, and you can call it what you want. The name of the storey level is just that, a descriptive name. You can then choose to relate various objects to a storey level, including slab objects.
  23. Hello @spettitt, The problem is that each time you run your script you delete the records from the sockets and attach them again and this resets the mapping. After a consultation with the IFC/Data Manager experts it turned out that you can avoid the data mapping reset using this: def SockRecord(h): vs.Record(h, 'SktUUID') vs.SetRFieldOpt(h, 'SktUUID', 'Dev', True, True) vs.ResetObject(h) vs.SetObjectVariableBoolean(h, 1167, True) Once you change your script like this and fix the mapping for the already existing sockets you should be fine. Best Regards, Nikolay Zhelyazkov
  24. My immediate thought was Site Modifiers left on but looking more closely I don't think they are. You might need to post a file for someone to help. Is it only in SLVPs that you're seeing the red lines + not on the design layer? Is it the same with all render modes?
  25. Once you have zoomed in to your view, hit the 'Align Working Plane with Current View' button on the View Bar... ... then draw a Rectangle to define the VP crop. Then run Create Viewport. Another option is to place a RW Camera in the file then hit 'Match Current View' in the OIP. Then run Create Viewport. Or if you activate the Walkthrough Tool + navigate to the view you want you can run Create Viewport + the VP will be created from that view.
  26. To create a VP, call CreateVP() and use object variables to set as section: https://developer.vectorworks.net/index.php?title=VS:CreateVP https://developer.vectorworks.net/index.php?title=VS:Function_Reference_Appendix_G#Viewports However, creating a section VP via VS doesn't seem possible // Viewport type selectors // -------------- const short ovViewportProjectionType = 1000; // short read/write - the viewport projection type. - Public for VS const short ovViewportRenderType = 1001; // short read/write - the viewport render type. - Public for VS const short ovViewportPerspectiveDistance = 1002; // real read/write - the viewport perspective distance (used with custom perspective). - Public for VS const short ovViewportScale = 1003; // real read/write - the viewport scale. - Public for VS const short ovViewportDirty = 1004; // Boolean read/write - the viewport out-of-date (dirty) state. - Public for VS const short ovViewportProject2D = 1005; // Boolean read/write - the viewport project 2D state. - Public for VS const short ovViewportRenderBackground = 1006; // Sint32 read/write - the viewport render background. - Public for VS const short ovViewportViewType = 1007; // short read/write - the viewport view type. - Public for VS const short ovViewportLineWeightScale = 1008; // double read/write - the viewport line weight scale. - Public for VS const short ovViewportArrowheadScale = 1009; // double read/write - the viewport arrowhead scale. - Public for VS const short ovViewportDashedLineScale = 1010; // double read/write - the viewport dashed line length/spacing scale. - Public for VS const short ovViewportHatchLineScale = 1011; // double read/write - the viewport hatch line spacing scale. - Public for VS const short ovViewportDesignTextScale = 1012; // double read/write - the viewport design layer referenced text size scale. - Public for VS const short ovViewportSlashThicknessScale = 1013; // double read/write - the viewport slash thcikness scale. - Public for VS const short ovViewportAmbientIsOn = 1014; // Boolean read/write - the viewport ambient light is ON or OFF. - Public for VS const short ovViewportAmbientBrightness = 1015; // double read/write - the viewport ambient light brightness. - Public for VS const short ovViewportAmbientColor = 1016; // WorldPt3 read/write - the viewport ambient light color. - Public for VS const short ovSetDesignLayerVisibilityInAllViewports = 1017; // short, -1 = invisible, 0 = normal, 2 = grayed - Public for VS const short ovSetClassVisibilityInAllViewports = 1018; // short, -1 = invisible, 0 = normal, 2 = grayed - Public for VS const short ovViewportHDRIBackground = 1019; // Sint32 read only - the background for environment lighting - Public for VS const short ovSectionVP2DAttributeClass = 1020; // Sint32 read only - the RefNumber of the class responsible for attributes of overall cross-section or just the x-section of structural elements. - Public for VS const short ovSectionVP2DOtherAttribClass = 1021; // Sint32 read only - the RefNumber of the class responsible for attributes of cross-section generated from non-structural elements - Public for VS const short ovSectionVP3DFillStyleClass = 1022; // Sint32 read only - the RefNumber of the class reposnsible for fill style of the objects beyond section plane - Public for VS const short ovSectionVP3DLineStyleClass = 1023; // Sint32 read only - the RefNumber of the class responsible for line style of the objects beyond section plane - Public for VS const short ovViewportXPosition = 1024; // double read only - the X coordinate of the viewport on the sheet layer - Public for VS const short ovViewportYPosition = 1025; // double read only - the Y coordinate of the viewport on the sheet layer - Public for VS const short ovViewportAngleWithXAxis = 1026; // double read only - the angle that the viewport subtends with the X axis on the sheet layer in degrees - Public for VS const short ovViewportShowWallComponents_OBSOLETE = 1027; const short ovViewportGrayTransparent = 1028; // Boolean read/write - the viewport renders gray layers transparent - Public for VS const short ovViewportFlipText = 1029; // Boolean read/write - the viewport/dlvp adjusts for flipped text - Public for VS const short ovViewportBlackAndWhite = 1030; // Boolean read/write - the viewport/dlvp draws in black and white only - Public for VS const short ovViewportUseDocumentClassVis = 1031; // Boolean read/write - set/reads the Use Document Class visibilities settings for dlvps - Public for VS const short ovViewportDescription = 1032; // TXString read/write - a description for the viewport, which corresponds to the Dwg Title field for a corresponding Drawing Label. - Public for VS const short ovViewportLocator = 1033; // TXString read/write - the locator for the viewport, which corresponds to the Item field for a corresponding Drawing Label. - Public for VS const short ovViewportIsLinked = 1034; // Boolean read - indicates whether the viewport is a linked viewport const short ovViewportDisplayPlanar = 1035; // Boolean read/write - the flag to indicate if planar and 2D objects are to be displayed const short ovViewportForegroundRenderType = 1036; // short read/write - the viewport render type. - Public for VS const short ovViewportHasCamera = 1037; // Boolean read only - whether there is a camera attached to the viewport or not const short ovCameraAttachedToViewport = 1038; // Boolean read only - whether the camera is attached to a viewport or not const short ovViewportCropVisible = 1039; // Boolean read/write - get/set the Crop Visible state of a viewport - Public for VS const short ovViewportLayerHeightIgnored = 1040; // Boolean read only - whether the viewport ignored layer height for single layer case const short ovViewportLightingDevice = 1041; // read/write - make an association between a lighting device light and an overriden light object for the viewport. const short ovViewportRePositionDimensionText = 1042; // Boolean read/write - the viewport/dlvp re-positions dimension text to other side of dimension line - Public for VS const short ovIsDesignLayerSectionViewport = 1043; // Boolean read only - indicates whether the linked viewport is a sheet layer or a design layer viewport - Public fo VS const short ovFDLSVPHiddenLineInWireframe_OBSOLETE = 1044; const short ovViewportPageSymbolScale = 1045; // double read/write - the viewport page symbol scale. - Public for VS const short ovViewportNavigateToFromSectMarker = 1046; // Boolean write only - selects the viewport and makes it visible - Not for public use const short ovViewportDetailLevel = 1047; // short read/write - low detail = 0, medium detail = 1, high detail = 2 - Public for VS const short ovViewportIsHorizontalSection = 1048; // Boolean read - indicates whether the viewport is horizontal section const short ovViewportTransformMatrix = 1049; // TransformMatrix read/write const short ovViewportViewMatrix = 1050; // TransformMatrix read/write const short ovViewportOperatingTransform = 1051; // TransformMatrix read const short ovViewportUnscaledBoundsWithoutAnnotations = 1052; // WorldRect read const short ovViewportResetForOnlyAnnotationsChange = 1053; // void write const short ovIsSectionViewport = 1054; // Boolean read only - indicates whether the viewport is a section viewport - Public for VS const short ovSheetLayerSectionViewportViewMatrix = 1055; // TransformMatrix read const short ovSectionViewportSectionViewMatrix = 1056; // TransformMatrix read/write const short ovViewportAttachDefaultRenderOptions = 1057; // Boolean(ignored) write const short ovViewportAttachDefaultCustomRenderWorksRenderOptions = 1058; // Boolean(ignored) write const short ovViewportDisplay2DComponents = 1059; // Boolean read/write const short ovViewportHiddenLineDisplay2DFills = 1060; // Boolean read/write const short ovViewportAttachDefaultLightingOptions = 1061; // void write const short ovViewportCreateDefaultEditableGroups = 1062; // void write const short ovViewportPrivateLayer = 1063; // MCObjectHandle read const short ovSectionViewportDisplayObjectsBeyondCutPlane = 1064; // Boolean read/write const short ovSectionViewportDisplayObjectsBeforeCutPlane = 1065; // Boolean read/write const short ovViewportHiddenLineDisplay2DFillsAllowed = 1066; // Boolean read const short ovSectionViewportCastShadowsFromRemovedPortion = 1077; // Boolean read/write const short ovSectionViewport2DResultsMerged = 1078; // Boolean read/write const short ovSectionViewport2DAttributesUseClass = 1079; // Boolean read/write - must be set true before you set class with ovSectionViewport2DAttributesClass const short ovSectionViewport2DAttributesClass = 1080; // RefNumber read/write const short ovSectionViewport2DOtherAttribsUseClass = 1081; // Boolean read/write - must be set true before you set class with ovSectionViewport2DOtherAttribsClass const short ovSectionViewport2DOtherAttribsClass = 1082; // RefNumber read/write
  1. Load more activity
×
×
  • Create New...