Jump to content


  • Posts

  • Joined

  • Last visited

Everything posted by rebu1985

  1. Hi Jesse, I was checking the differents files and i checked that when you activate the visible mode on the layer on the navigation menu the script works.
  2. Hi Jesse, I have attached some images. The first and second images show the script working properly, all the elements are located in a one layer and the script works. The third and fourth images show the script without working. I have copied all the elements to others layers and it doesnt work. I am using Vectoworks 2020 and i am using a personal workspace but i have the same problem when i am working on the architect workspace. When i am working on personal drawings with a lot of information it doesnt work either.
  3. Hi guys, I dont know why it is showing this message when i am using the scrip.
  4. Hi guys, I write you because in a newer version of vectorworks I cant run the scrip properly and I dont know why. I have used Pat´s scrip in VW2015 but in version 2020 I have the problems of selecting the layers, the only option I can do is selecting all/none. Can you help me, guys? PROCEDURE LB_LayerList; VAR B1:boolean; dialog1 : LongInt; kImageCheck,kImageBlank,kImageSheet,kImageView : Integer; LayerArray : DYNARRAY[] of String; NumLayers, N1, CheckedLayers : Integer; FirstObjectToCopy : Handle; ThisObjectToCopy : Handle; LayerToCopyFrom : Handle; LayerNameToCopyFrom : String; ThisLayer : String; ThisDuplicate : Handle; {-----------------------------------------------------------------------------} FUNCTION GetPlugInString(ndx :INTEGER) :STRING; BEGIN CASE ndx OF {Static Text} 3001: GetPlugInString := 'OK'; 3002: GetPlugInString := 'Cancel'; 3003: GetPlugInString := 'Layers'; END; END; {----------------------------------------------------------------------------} PROCEDURE Dialog_Setup; VAR cnt : INTEGER; BSB : Boolean; BEGIN dialog1 := CreateResizableLayout (GetPlugInString(3003),TRUE,GetPlugInString(3001),GetPlugInString(3002),TRUE,TRUE); CreateLB(dialog1,4,34,15); CreatePushButton(dialog1,5,'All'); CreatePushButton(dialog1,6,'None'); SetFirstLayoutItem(dialog1, 4); SetBelowItem(dialog1,4,5,0,0); SetBelowItem(dialog1,4,6,0,0); SetRightItem(dialog1,5,6,0,0); SetEdgeBinding(dialog1,5,False,False,False,True); SetEdgeBinding(dialog1,6,False,False,False,True); END; {-----------------------------------------------------------------------------} PROCEDURE Dialog_Handler(VAR item :LONGINT; data :LONGINT); Var ColNum,TempI,I : Integer; SheetTypeIcon : Integer; BSB : Boolean; BSS : String; LayerHand : Handle; LayerName,SelectedIconString : String; SheetIconNumber,SelectedIconNumber : Integer; BEGIN CASE item OF SetupDialogC: BEGIN {These need to be declared as globals otherwise they won't work outside of setup.} kImageCheck := AddLBImage(dialog1,4,1,11022); kImageBlank := AddLBImage(dialog1,4,1,11023); kImageSheet := AddLBImage(dialog1,4,1,11024); kImageView := AddLBImage(dialog1,4,1,11025); ColNum := InsertLBColumn(dialog1,4,0,'Copy To',50); BSB := SetLBControlType(dialog1,4,ColNum,3); BSB := SetLBItemDisplayType(dialog1,4,ColNum,1); BSB := SetLBColumnWidth(dialog1,4,0,0,20); {ColNum := InsertLBColumn(dialog1,4,0,'',50);}{This crashes VW} ColNum := InsertLBColumn(dialog1,4,1,'Layer Name',100); BSB := SetLBControlType(dialog1,4,ColNum,1); BSB := SetLBItemDisplayType(dialog1,4,ColNum,3); BSB := SetLBColumnWidth(dialog1,4,1,1,200); ColNum := InsertLBColumnDataItem(dialog1,4,0,'Checked',kImageCheck,-1,0); ColNum := InsertLBColumnDataItem(dialog1,4,0,'UnChecked',kImageBlank,-1,0); {Traversing from LLayer by PrevObj doesn't work with Sheet Layers} LayerHand := FLayer; I := 0; While LayerHand <> NiL do Begin If GetObjectVariableInt(LayerHand,154) = 2 then SheetTypeIcon := kImageSheet else SheetTypeIcon := kImageView; ColNum := InsertLBColumnDataItem(dialog1,4,1,GetLName(LayerHand),SheetTypeIcon,SheetTypeIcon,0); TempI := InsertLBItem (dialog1, 4, I, GetLName(LayerHand)); BSB := SetLBItemUsingColumnDataItem (dialog1, 4, I, 1, ColNum); BSB := SetLBItemUsingColumnDataItem (dialog1, 4, I, 0, 1); I := I+1; LayerHand := NextObj(LayerHand); End; EnableLBColumnLines(dialog1,4,True); END; 1: BEGIN NumLayers:=GetNumLBItems(dialog1,4); CheckedLayers:=0; Allocate LayerArray[1..NumLayers]; For I := 1 to NumLayers do Begin BSB := GetLBItemInfo(dialog1,4,I-1,1,LayerName,SheetIconNumber); BSB := GetLBItemInfo(dialog1,4,I-1,0,SelectedIconString,SelectedIconNumber); If SelectedIconString = 'Checked' then Begin CheckedLayers := CheckedLayers+1; If SheetIconNumber = kImageSheet then LayerArray[CheckedLayers]:=LayerName; If SheetIconNumber = kImageView then LayerArray[CheckedLayers]:=LayerName; End; {If} End; {For} End; {1} 5: Begin For i:=0 to GetNumLBItems(dialog1, 4)Do Begin BSB:=SetLBItemInfo(dialog1,4,i,0,'Checked',kImageCheck); End; {For} End; {5} 6: Begin For I := 0 to GetNumLBItems(dialog1,4) do Begin BSB:=SetLBItemInfo(dialog1,4,i,0,'Unchecked',kImageBlank); end; {For} end; {6} END; {Case} BSB:=RefreshLB(dialog1,4); END; {Procedure} {-----------------------------------------------------------------------------} function ResourceIsOK :BOOLEAN; BEGIN IF SetVSResourceFile('IP Resources') THEN ResourceIsOK := TRUE ELSE Message('The "IP Resources" file was not found.'); END; {-----------------------------------------------------------------------------} BEGIN {Main} FirstObjectToCopy := FSActLayer; LayerToCopyFrom := ActLayer; LayerNameToCopyFrom := GetLName(LayerToCopyFrom); IF ResourceIsOK THEN Dialog_Setup; IF RunLayoutDialog(dialog1,Dialog_Handler) = 1 THEN BEGIN SysBeep; For N1 := 1 to CheckedLayers do Begin ThisLayer:=LayerArray[N1]; If ThisLayer <> LayerNameToCopyFrom Then Begin ThisObjectToCopy := FirstObjectToCopy; While ThisObjectToCopy <> Nil do Begin ThisDuplicate := CreateDuplicateObject(ThisObjectToCopy,GetLayerByName(ThisLayer)); ThisObjectToCopy := NextSObj(ThisObjectToCopy); End; End; {If} End; {For} END; {If} Wait(1); ClrMessage; END; Run(LB_LayerList);
  5. I have tried to do that but when I work with Database, the reference doesnt indicate the subrow, just indicate the total of the sum value/item. I would like to indice 'Worksheet-1':A4.1 but it doesnt work. I have resolved it creating two record formats, left and right openings and applying the record format manually to the doors and i dont need to reference the file.
  6. Hi guys, I am trying to reference cells from different worksheet to obtain the total of doors in a project. The only way that i know its just create a worksheet an copy all the information from the others worksheets. But i am a bit scared of lossing information when i am going to change something because the cells are not connected between them, they are copied. I am going to attach some images. The image 1 includes cells copied from the database of the others images.
  7. Hi guys, I have a file A and I have a file B. The file B contains imported layers from file A where all layers are locked because I need to use in Lumion but at the same time it needs to be updated to show the external facade. My problem is when i try to change a class, wall, component, etc on file B because i need for Lumion, automatically it is disappearing when the external reference is updated. If it is any way to keep the new changes on the file B without changing by file A external reference updated? Thanks guys!
  8. Hi guys, I would like to know if it is possible to show the information from a layer link in a referenced file. I have a file referenced to another one, where i just want to show the exterior facade. On the other one, the floors are done by layer links because all floors are duplicated. But when i open the file and active all exterior elements (wall, windows, doors, etc.), classes, and all layers, it doesnt show it.
  9. Hi guys, I would like to know if there is anyway to indicate tolerance in walls. When i have created walls in different layers or stories, the front view shows a line between them when they should be aligned. You can find below an image of my elevation where i have indicated in yellow the line as partition wall when it should be continuos because they are in the same plane (aligned). Thank you guys,
  10. Hi guys, I have done a model in vectorworks using walls, doors and windows. But when i try to insert the option "show interior hinge marker" some window frames change to be invisible. I have attached a few samples below with and without show hinge interior marker included.
  11. Hi guys, I have create simple rectangles with different start points. You can see below a sample of a rectangle.I would like to create at the same time a square filled in red which shows me the start point of the rectangle. I have attached an image which shows different options of start point where i would like to locate the red square. I need a reference point on the shape in case i need to rotate, move, etc. Thank you so much, PROCEDURE Rectangle; VAR bc_ht,bc_wid : REAL; use_border,result : BOOLEAN; objname : STRING; oh,rh,wh : HANDLE; BEGIN result:= GetCustomObjectInfo(objname,oh,rh,wh); IF result THEN BEGIN bc_ht := PBOXWIDTH; bc_wid := PLINELENGTH; use_border := PUSE_BORDER; IF use_border THEN BEGIN PushAttrs; FillPat(0); Rect(0,bc_ht/2,bc_wid,-(bc_ht/2)); PopAttrs; END; END; END; Run(Rectangle);
  12. Thank you so much Pat, I have used it and it is working perfect! It is what i need it. thanks again!!
  13. Hi Pat, I am going to explain it again but you are right. Sorry for my english. I work in 2d all time and both symbols (floor and elevation) and done in plan view 2d. I would like to show a copy of the respective elevation of the window in top view which i have drawn when i click on the window top plan which i have drawn as well on the top view. I have drawn manually around symbols of 30 windows which their elevations. All of them have records formats so i think the best way as you said in connect them by a field and place a copy of the elevation symbol but i dont know how I can do it. Thanks Pat,
  14. Hi guys, I was wondering if it is possible to show on the drawing a symbol which i have created when I click on another symbol or write a name located on the record format of another symbol by a vectorscript. I have drawn a basic window shape with some information associated by a record format. At the same time I have drawn the elevation of that window. Both are different symbols. I would like to show on the drawing the elevation when i click on the window by a vectorscript. I have around 20 windows so the idea is to have a general vectorscript to show them or writing something of the record format. I have attached below an image of the idea. Thank you so much guys for your help.
  15. I found this topic online and I would like to copy in case someone can help me. "I would like to see the introduction of Rounding Precision similar to that of Dimensions however for Spaces: It is custom here to round off to the nearest square meter however I still want to see when drafting exactly what size the space has with at least an accuracy of 2 decimals." Im counting manually different areas within spaces to calculate the total square meters in a house and it is not the same value than in my worksheet when VW calculates the total. Is it possible to change it? Thanks, xx
  16. Im using VW 2014 version, so I cant use marionette tool
  17. Hi guys, I would like to try to get a function or script which helps me to calculate automatically the final value attached to the end of a line adding pre-values along the path. As you can see guys below, depends on the value at the end of a line, the script should recognize the value range and show on the drawing the correct diameter dimension/text. I was thinking if its possible to attach a record format at the beginning of the paths when you select all the lines and create a script which recognize the lines intersections and show the correct value. Thanks guys!!
  18. Hi guys, I have done a script to hide some fields of the default PIO 'Desk' because I just need some parameters to work. The plug-in is compiled right but when its not working because nothing is done. My version is VW14. My idea is to create different script for default PIO doors and windows but using a few parameters. My script is below: PROCEDURE Modifydesk; VAR objHd: HANDLE; BEGIN objHd:= GetObject('Desk'); IF objHd=NIL THEN EnableParameter(objHd, 'Leg Height', FALSE); SetParameterVisibility(objHd, 'Leg Height', FALSE); END; RUN (Modifydesk);
  19. Thanks guys, i was checking the Resource Browser as you mentioned and it´s true, its really easy to do it manually!!
  20. Im using the VW 14 and the only options to choose are Apply, Import and Reference in the Resource Browser so I cant modify manually.
  21. Hi guys, I have created a predefined text style to use in my standard dimensions options. I was checking to change the text style manually and i cant do it because when i try it the text style changes to a new undefined one. I would like to know if its possible to create a script with modify any text style (font, size, etc) by myself. I was checking the function 'SetTextStyle' but i am not sure if its the correct one. For example: I have a text style called dimensions with Arial 8pt and bold and i would like to change by Calibri 10 pt and not font style. Thanks!!
  22. Thanks for your help guys, Finally I got it! I am carry on checking more scripts. I am so addictive now!! I want to learn more and more!!
  23. Hi MullinRJ, I have been working on your comments to do my script and i have done this. I still have some mistakes and i guess its about the array function. Could you help me, please? PROCEDURE dialogl_Main; VAR dialog1 : INTEGER; PROCEDURE dialog1_Setup; BEGIN dialog1 := CreateLayout( 'CreateListBox', FALSE, 'OK', 'Cancel' ); CreateListBoxN( dialog1, 4, 30, 10, TRUE ); SetFirstLayoutItem( dialog1, 4 ); END; PROCEDURE Dialog_Handler(VAR item :LONGINT; data :LONGINT); VAR i : INTEGER; nl : INTEGER; layers : DYNARRAY OF STRING; h : HANDLE; BEGIN CASE item OF SetupDialogC: BEGIN AddChoice( dialog1, 4, 'PLANTA 1', 0 ); AddChoice( dialog1, 4, 'PLANTA 2', 0 ); AddChoice( dialog1, 4, 'PLANTA 3', 0 ); END; 1: BEGIN GetSelectedChoiceInfo(dialog1, 4, 1, i, layers); END; 4: BEGIN nl:=NumLayers; Layers:=GetLNAME (h); DoMenuTextByName('Copy', 0); FOR i:=1 TO nl DO BEGIN DoMenuTextByName('Paste In Place', 0); END; END; BEGIN dialog1_Setup; IF RunLayoutDialog(dialog1, Dialog_Handler) = 1 THEN BEGIN END; RUN(dialogl_Main);
  24. hi guys, I have created my dialog code for copying objects to selected layers. All info which i have found its about copying objects to all layers but i would like to know how to do it if I just wanna duplicate to selected ones. I dont know how the script should be to transfer the info from the dialog to the object. PROCEDURE CreateDialog; VAR result : INTEGER; id : INTEGER; BEGIN id := CreateLayout('Revise Layer Link',TRUE,'ok', 'Cancel'); CreateStaticText(id,4,'Layers:',-1); CreatePulldownMenu(id,5,32); CreateGroupBox(id,6,'Layers Options',TRUE); CreateCheckBox(id,7,'Planta Sótano'); CreateCheckBox(id,8,'Planta Baja'); CreateCheckBox(id,9,'Planta 1'); CreateCheckBox(id,10,'Planta 2'); CreateCheckBox(id,11,'Planta 3'); CreateCheckBox(id,12,'Planta 4'); CreateCheckBox(id,13,'Planta 5'); CreateCheckBox(id,14,'Planta 6'); CreateCheckBox(id,15,'Planta 7'); CreateCheckBox(id,16,'Planta 8'); CreateCheckBox(id,17,'Planta Atico'); CreateCheckBox(id,18,'Planta Cubierta'); SetFirstLayoutItem(id, 4); SetBelowItem (id,4,6,0,0); SetFirstGroupItem(id,6,7); SetBelowItem (id,7,8,0,0); SetBelowItem (id,8,9,0,0); SetBelowItem (id,9,10,0,0); SetBelowItem (id,10,11,0,0); SetBelowItem (id,11,12,0,0); SetBelowItem (id,12,13,0,0); SetBelowItem (id,13,14,0,0); SetBelowItem (id,14,15,0,0); SetBelowItem (id,15,16,0,0); SetBelowItem (id,16,17,0,0); SetBelowItem (id,17,18,0,0); SetBelowItem(id,18,30,0,0); SetBelowItem(id,30,40,0,0); result := RunLayoutDialog(id,NIL) END; RUN (CreateDialog);
  • Create New...