Jump to content


  • Posts

  • Joined

  • Last visited

Everything posted by Assembly

  1. Does the DB6 Work for Vectorscript also or is this for SDK only?
  2. A pop up can only give you a list of the hatch names. If you using an event enabled tool, you can add a button that triggers a dialog. A dialog lets you use a graphic interface to select the hatch. Below is a drop in function I hacked together. ImportSymbol(FolderID:INTEGER;SubFolder:STRING;FolderName:STRING):Handle; This Function allows you to specify a File Directory to import symbols from. You specify the folderName inside the current document where the symbol gets filed. To get symbols only in the active file use something like: hTemp:=ImportSymbol(0,'','MyCoolFolder'); I used Vectorworks Dialog builder (DB5) to create the dialog part of the script. I think Dialog Builder has been updated recently. It is a good set of tools for dialog scripting. It is a starting point, from memory it has a hatch selection dialog. If you look at Dialog Builder you will find what you need. _____________________ Function ImportSymbol(FolderID:INTEGER;SubFolder:STRING;FolderName:STRING):Handle; { FolderID points the function to a file directory Folder. Look at developer.vectoworks.com 'VS:BuildResourceList' 13 is /Library Subfolder is a folder in the file directory. This allows you to build your on folder structure for different tools ie to get symbols out of a specific VW file you could have 'Electrical/Lights' FolderName allows you to file the symbol once it gets imported. the PIO needs variables: __ResourceIndex The Script needs a global VAR gResourceIndex:INTEGER; } CONST kStartStringAt = 3000; kOK = 1; kCancel = 2; kImagePopup15 = 15; kStaticText28 = 28; kStaticText29 = 29; kRight = 1; kBottom = 2; kLeft = 3; kResize = 0; kShift = 1; VAR dialog1 :INTEGER; gImagePopup15Int :INTEGER; gImagePopup15Str :STRING; defConListID :LONGINT; defConResType :INTEGER; defConFoldID :INTEGER; defConCount :LONGINT; xmlID :LONGINT; cnt :INTEGER; int :INTEGER; boo :BOOLEAN; str :STRING; ndx :INTEGER; iImage:INTEGER; FUNCTION ResourceIsOK :BOOLEAN; BEGIN IF SetVSResourceFile('IP Resources') THEN ResourceIsOK := TRUE ELSE Message('The "IP Resources" file was not found.'); END; FUNCTION GetPlugInString(ndx :INTEGER) :STRING; BEGIN CASE ndx OF {Static Text} 3001: GetPlugInString := 'OK'; 3002: GetPlugInString := 'Cancel'; 3003: GetPlugInString := 'Untitled Dialog'; 3028: GetPlugInString := 'Image:'; 3029: GetPlugInString := 'System Color:'; {Help Text} 4001: GetPlugInString := 'Accepts dialog data.'; 4002: GetPlugInString := 'Cancels operation without changes.'; 4015: GetPlugInString := 'An image popup control.'; 4028: GetPlugInString := 'Static text control.'; 4029: GetPlugInString := 'Static text control.'; END; END; FUNCTION GetStr(ndx :INTEGER) :STRING; BEGIN GetStr := GetPlugInString(ndx + kStartStringAt); END; PROCEDURE dialog1_Setup; BEGIN dialog1 := CreateLayout(GetStr( 3), True, GetStr(kOK), GetStr(kCancel)); CreateControl (dialog1, kImagePopup15, 10, '', 0); CreateStaticText (dialog1, kStaticText28, GetStr(kStaticText28), 12); CreateStaticText (dialog1, kStaticText29, GetStr(kStaticText29), 12); SetFirstLayoutItem(dialog1, kStaticText29); SetBelowItem (dialog1, kStaticText29, kStaticText28, 0, 0); SetRightItem (dialog1, kStaticText28, kImagePopup15, 0, 0); AlignItemEdge(dialog1, kImagePopup15, kLeft, 222, kShift); FOR cnt := 1 TO 6 DO SetHelpString(cnt, GetStr(cnt + 1000)); END; PROCEDURE dialog1_Handler(VAR item :LONGINT; data :LONGINT); BEGIN CASE item OF SetupDialogC: BEGIN defConResType := 16; {This sets the type of resource to build a list of Symbols. Hatch Definiting is 66} defConFoldID := FolderID; defConListID := BuildResourceList(defConResType, defConFoldID, SubFolder, defConCount); FOR cnt := 1 TO defConCount DO BEGIN int := InsertImagePopupResource(dialog1, kImagePopup15, defConListID, cnt); END; IF p__ResourceIndex END; kOK: BEGIN iImage:=GetImagePopupSelectedItem(dialog1, kImagePopup15); gResourceIndex:=iImage; ImportSymbol:=ImportResourceToCurrentFile(defConListID, iImage); IF GetObject(FolderName)=NIL Then Begin; NameObject(FolderName); BeginFolder; EndFolder; END; InsertSymbolInFolder(GetObject(FolderName),ImportSymbol) END; END; END; BEGIN IF ResourceIsOK THEN dialog1_Setup; IF RunLayoutDialog(dialog1, dialog1_Handler) = 1 then BEGIN END; END;
  3. Has this site been hacked?.
  4. Object from poly line is now accessed through the 'right click' mouse pop out menu.
  5. I use the framing member tool to create the top and bottom chords. Then make a symbol.
  6. Ryan - thanks for that. Can you also finish your episode 4 on the SDK intro. I can Vectorscript - want to know more about SDK. Your first 3 episodes are great.
  7. I am using a similar set up for componet areas like this: =COMPONENTAREA(((WST=$A11)), $B11) Where A11=SIDE-WBRD_V/Cav/140/Ply-V B11=1 Note there are no quote marks in A11 Please let us know if that makes the difference.
  8. Thanks for the confirmation on =Area. (FYI it is not in the worksheet of Quatify) Can you please also help with the other questions. 1) How can I use the 'Cost Index' Number in my worksheet so I can use it in a forumla? 2) Is there any way to do a search to find all the same component type of different wall styles?. 3) A framing member object Information. How can I get the length of a rafter that is on a pitch. The =('FramingMember'.'LineLength') returns the plan span. The =('FramingMember'.'Pitch') Return a non numeric value. Thus I can not use the pitch value to calculate the Line 18 of work sheet. 4) Does VW2012 have slab types for roof faces yet?. Lines 11-15 Comment on ComponentArea: It seems that the componentArea requires a component index reference. Thus if a component, say timber framing, has a different index in different Wall Style Types then a specific forumla is required for each wall style. This could be a very tedious and time consuming worksheet to create and maintain. If this is the way it is intended then Lines 10-15 of the BIMtest worksheet might be a useful way. It allows you to write the name of a wall style, then adjust the Index number. This will automatically return the wall component name and related areas. This took me a good 2-3 hours to figure out how to get working.
  9. I can easily create a Database row and get a list of all wall styles and the related area. Cell 1 '=WST' [sum] Cell 2 '=WALLAREA_NET' This is how easy it should be. To make it easy I should continue and Cell 3 =('__NNA_Wall_Style_Format'.'Cost Index Code') Cell 4 =A2*A3 and I will have an estimate of cost for all the walls. Now I try the same for slab. I can't see any way to emulate the same set up for slabs as I can for walls. There is no similar 'SlabArea' '=WST' does not have a corresponding '=SST'
  10. I hope some one can correct me on this: The return of these values in a work sheet is a string and not a number. =('__NNA_Wall_Style_Format'.'Cost Index System') =('__NNA_Wall_Style_Format'.'Cost Index Code') Which means there is no simple way to use a Database spreadsheet to get the area of a wall style and multiply it by a rate in order to get a cost estimate.
  11. Say I have 2 wall styles that use timber framing of 90mm (component name 'TF90' ) but with different claddings. I want to be able to get the area of the TF90 from of both wall types. What is the formula?. I keep getting a 'TYPES' error. Also I want to restrict the search only to items on one layer. That layer has a VP of all the objects in the file that need to be scheduled thus I need it to find objects in VPs OR does your example works for named object only?.
  12. Robert Can you please tell me how the slab in the quantify_v2011.vwx File is created. I don't know how to recreate the void on the underside of the slab.
  13. how is the hollow of this slab created?.
  14. Robert I'm on VW2011 so can not open your file posted. Please repost as 2011 files. Thanks
  15. I'm in NZ. This does not ring true of what I know.
  16. (Why do the users who like VW always feel like we need to disclaim the dissatisfaction before launching in and slamming it?) I too think VW is best in class for 2D drawings. I think it is also good for 3D and am happy with my renders now. The last few sets of drawings every 2D drawing we produced was a live render or section of the 3D model. We used the Automatic Drawing references. In many aspects I think VW is very good. HOWEVER. On the BIM side I'm totally unconvinced. Here is an example of a Slab object and a Roof Face object. Using '=Perim' the Slab object is double what it should be. As an architect, I take a certain level of liability for the information that I issue. On fundamental objects Roofs and Slabs, with a basic return function VW BIM does not work. On such a basic test- how can I trust the information on a complex file?. It is quite simple- this has to be sorted by the time BIM schedules are a requirement of service.
  17. DWorks I stand corrected. However where is the consistency- Why can't I use the Create Report function?.
  18. BIM is much more than getting 2d drawings from 3D. BIM Stages I think that VW is actually not that shabby in this respect. The I is for information. Where VW is hopeless is with the worksheet and inconsistent access to object information. There is no way to get information out of the Roof Face object for example.
  19. BIM = Building Information Model Every building has a roof. This should be a very easy to answer. I'm shocked that there is no out of the box access to the Roof Face data. Please some one prove me wrong. If you read this post, I ask that you please comment and a) correct me, or b) State in your opinion if you think this is acceptable of a BIM tool.
  20. So how can I get Roof Face data into a work sheet?.
  21. I would like to use a work sheet to return a schedule of 'Framing Members'. This PIO has a terrible User Interface, but once you get the hang of it, it is a very useful tool to draw up framing plans in 3D that section nicely with the view ports. So far so good. Now lets go one step further and treat this as BIM. Lets pull the data of what we have drawn into a schedule for our builder. All we need to do is create a work sheet that gets the cross section of the framing members and return each members length. Should be easy. Use Create Report. Add in every record entry for Framing Member and look for Length. Span '=('FramingMember'.'LineLength') 'looks promising, but no that is the PIO line length- it does not consider that the member is pitched... (hmm there is overhang also. I know what that does. it means I can set span to relate to the wall position and extend a rafter beyond.... quick test shows if I set the PIO Type to solid beam, this is parameter is no longer accessible. The actual length of my member is span and not span + Overhang- (yet the worksheet retains its value... deal with that later). So now how do I BIM this object?. Well maybe I can get fancy with my worksheet... Yes they did provide me a =COS() function... The object has =('FramingMember'.'pitch') so this should be easy then. I'll get the span in one field, the pitch in another then simply use Trig to sort this out. Should be easy, BUT NO IT WON'T BE!. It seems that as the PIO parameter type is an Angle the work sheet nicely includes the '?'. Because this is there the work sheet now thinks this is a text value and not a number so you can not use the COS() function. This means that we can't use the COS function on any PIO angle parameter. That is just BRILLIANT!. My head is sore from banging it against my desk.
  22. With 60 instruction videos on how to make the most of it.
  23. So fumbling around further with the work sheet to get some areas of my objects. I have a created a slab type and a simple work sheet to pull the data. I want to know my area, thickness volume and perimeter of my slab. I have a database criteria of =DATABASE((R IN ['Slab'])) So one would think that to use =SLABTHICKNESS might work to return my slab thickness. One might expect that =PERIM would provide me the perimeter value of the slab. HOWEVER Slabthinkness does not work. Perim needs to be divided by 2. How can I trust this software with schedule information?.
  • Create New...