Jump to content

michaelk

Moderator
  • Posts

    6,389
  • Joined

  • Last visited

Posts posted by michaelk

  1. @grant_PD For the foreseeable future, yes.

     

    I think there is even more going on here than we can see.

     

    Graphic elements of the callout object can be controlled from a Keynote Legend and from Text Styles.  That's in addition to callouts being attached to databases.  I think the callout object is a much more complicated object than it appears to be.

     

    It wouldn't be that difficult (famous last words of everyone writing vectorscript) to make a callout replacement plug-in object that could never be a keyed note and could never attach to a database.   There may already be some out there floating around.   (I always need to check every idea I have for a script or plug-in to make sure @Sam Jones hasn't already written it.)

    • Like 1
  2. I just tried it and it worked.  Are you going through File>Import>import mtextur… ?

     

    I'm currently on a flight so there must be a firewall and a VPN.

     

    For me it never opened a webpage.  Just the little download content browser.  I search for 69201 and hit the download button.  It never opened anything like your screen shot.  The texture just appeared in the RM.

  3. So you don't see this?

    image.png.5d554840f9ad73e7a3b466c71b056c58.png

     

    I don't think there is any way to turn that off.

     

    Does it still work in 2023?

     

    Could it be interference with a system extension or other software?  (I'm tracking down a similar issue right now with the B shortcut).

     

    If you were on a Mac I'd recommend booting in safe mode or switching to a "blank" user account to see if that fixes it.  There must be an equivalent process on Windows.

  4. Nope.  Unless there's something in the SDK.

     

    I did it unsuccessfully for a while just using the usuall methods.  Then I tried exporting a file with nothing but a callout as a VS and got that nonsense.  

     

    Turns out that nonsense is totally necessary to create a new callout from scratch if you want the leader line to work.  Without the nonsense you can create a callout, but nothing you do in the OIP after creation will create a leader line.

     

    It looks like the nonsense controls the attributes.  Which I assume is why you can't do it the normal way with your menu command.

     

    There's a hidden field in the Callout record called __SubObjectDataAttributes which is a big concat.  Somehow I think THAT is controlling the attributes.

  5. Callouts are not normal.

     

    Here's a script that changes a text object to a callout.  You would think that to create a callout you just CreateCustomObject('Callout',…. Then write some data to the record and Bob's your uncle.

     

    Nope.

     

    Take a look at how attributes are handled inside of what looks like comments.

     

    PROCEDURE Test;
    
    VAR
    	hCallout,hText,Waldo : HANDLE;
    	
    	tempHandle, objectHandle, textHandle:HANDLE;
    	objectName:STRING;
    	index:INTEGER;
    
    	s1 : DYNARRAY[] of CHAR;
    	
    	fakeName : STRING;
    	
    	objType : INTEGER;
    	
    	xx,yy,zz : REAL;
    	
    	
    BEGIN;	
    	Locus(0,0);
    	Waldo := LNewObj;
    	
    	hText := PrevSObj(Waldo);
    	DelObject(Waldo);
    	HCenter(hText,xx,yy);
    	fakeName := Date(2,1);
    	SetName(hText,fakeName);
    
    	objType := ObjectType(N = fakeName);
    
    	IF objType = 10 
    	THEN
    		BEGIN
    			{AlrtDialog(CONCAT('Objecty Type: ',objtype));}
    
    			s1 := GetText(hText);
    
    			{AlrtDialog(s1);}
    tempHandle := CreateCustomObject('Callout',0",0",#0.0000000000000d);
    
    objectHandle := LNewObj;
    SetDropShadowData(objectHandle, 0,0.003937,0.001969,#315.0000000000d,75,0,0,0);
    EnableDropShadow(objectHandle, FALSE);
    
    objectHandle := LNewObj;
    {SetObjectVariableBoolean(objectHandle, 1160, FALSE);}
    
    Record(LNewObj,'Callout');
    SetRField(LNewObj,'Callout','Link To Database','False');
    SetRField(LNewObj,'Callout','Place As Keynote','False');
    SetRField(LNewObj,'Callout','Keynote Prefix','');
    SetRField(LNewObj,'Callout','Keynote Suffix','');
    SetRField(LNewObj,'Callout','BubbWidth','2"');
    SetRField(LNewObj,'Callout','Vertical Placement','Auto');
    SetRField(LNewObj,'Callout','Orientation','Auto');
    SetRField(LNewObj,'Callout','Left','False');
    SetRField(LNewObj,'Callout','Bubble Style','None');
    SetRField(LNewObj,'Callout','Radius Factor','0.046850393700787"');
    SetRField(LNewObj,'Callout','Margin','0.046850393700787"');
    SetRField(LNewObj,'Callout','Bubble Shadow','False');
    SetRField(LNewObj,'Callout','Shoulder','1''0.000000000000002"');
    SetRField(LNewObj,'Callout','Leader Type','Straight');
    SetRField(LNewObj,'Callout','Leader Style','Line');
    SetRField(LNewObj,'Callout','LineLength','7''2.331410057273573"');
    SetRField(LNewObj,'Callout','__ShowDialog','False');
    SetRField(LNewObj,'Callout','Rise','0.19"');
    SetRField(LNewObj,'Callout','Text',S1);
    SetRField(LNewObj,'Callout','DNE','Solid Arrow\1\-1');
    SetRField(LNewObj,'Callout','TextFont','Arial');
    SetRField(LNewObj,'Callout','TextSize','203.200000');
    SetRField(LNewObj,'Callout','TextStyle','Plain');
    SetRField(LNewObj,'Callout','ControlPoint01X','-1''7.526018289463835"');
    SetRField(LNewObj,'Callout','ControlPoint01Y','-1''11.734217624645211"');
    SetRField(LNewObj,'Callout','ControlPoint02X','-4''7.239175964666458"');
    SetRField(LNewObj,'Callout','ControlPoint02Y','-1''7.431487403991564"');
    SetRField(LNewObj,'Callout','ControlPoint03X','1''0.000000000000002"');
    SetRField(LNewObj,'Callout','ControlPoint03Y','0"');
    SetRField(LNewObj,'Callout','ControlPoint04X','9''0.046850393700751"');
    SetRField(LNewObj,'Callout','ControlPoint04Y','0"');
    SetRField(LNewObj,'Callout','__dbName','');
    SetRField(LNewObj,'Callout','__dbUUID','');
    SetRField(LNewObj,'Callout','__NoteUUID','{FFA5C43C-FC3C-40A2-AC80-C4D561E385E2}');
    SetRField(LNewObj,'Callout','__NoteDescrip','This is a callout');
    SetRField(LNewObj,'Callout','__KeynoteNumber','0');
    SetRField(LNewObj,'Callout','__OldPlaceAs','False');
    SetRField(LNewObj,'Callout','__OldBubbWidth','2"');
    SetRField(LNewObj,'Callout','__OldShoulder','1''0.000000000000002"');
    SetRField(LNewObj,'Callout','__OldLeaderStyle','');
    SetRField(LNewObj,'Callout','__IsFlipped','False');
    SetRField(LNewObj,'Callout','__isNew','False');
    SetRField(LNewObj,'Callout','__version','2800');
    SetRField(LNewObj,'Callout','__markerCode','1;0;15;0.125000;0.000000;2;2.000000;');
    SetRField(LNewObj,'Callout','Arrow Style','');
    SetRField(LNewObj,'Callout','Marker Symbol','');
    SetRField(LNewObj,'Callout','Marker Scale Factor','0.039370078740157"');
    SetRField(LNewObj,'Callout','MarkerAng','15');
    SetRField(LNewObj,'Callout','Marker Weight','1');
    SetRField(LNewObj,'Callout','__OldCtrlPt03X','304.8');
    SetRField(LNewObj,'Callout','__OldCtrlPt03Y','0');
    SetRField(LNewObj,'Callout','__OldCtrlPt04X','2744.39');
    SetRField(LNewObj,'Callout','__OldCtrlPt04Y','0');
    SetRField(LNewObj,'Callout','Keynote Legend','Default Legend');
    SetRField(LNewObj,'Callout','__OldKeynoteLegend','Default Legend');
    SetRField(LNewObj,'Callout','Leader Radius','0"');
    SetRField(LNewObj,'Callout','OldText','This is a callout');
    SetRField(LNewObj,'Callout','__IsUseReletivePath','False');
    SetRField(LNewObj,'Callout','__DBReletivePath','');
    SetRField(LNewObj,'Callout','Text Angle','0.00°');
    SetRField(LNewObj,'Callout','Rotate Text','False');
    SetRField(LNewObj,'Callout','__OldTextAngle','0.00°');
    SetRField(LNewObj,'Callout','__BubbleShadowPenColor','-3');
    SetRField(LNewObj,'Callout','__BubbleShadowFillColor','-3');
    SetRField(LNewObj,'Callout','HorizontalTextAlignment','Center');
    SetRField(LNewObj,'Callout','New Bubble Style V20','None');
    SetRField(LNewObj,'Callout','New Vertical Placement','Auto');
    SetRField(LNewObj,'Callout','Draw Extended Shoulder','False');
    SetRField(LNewObj,'Callout','Text Style Ref','0');
    SetRField(LNewObj,'Callout','Text Spacing Index','2');
    SetRField(LNewObj,'Callout','Text Spacing Value','0');
    SetRField(LNewObj,'Callout','Leader Angle','-150.00°');
    SetRField(LNewObj,'Callout','__ObjectRotationAngle','0');
    SetRField(LNewObj,'Callout','__DrawTwoSoulders','False');
    SetRField(LNewObj,'Callout','__LeadingLeaderPointX','0');
    SetRField(LNewObj,'Callout','__LeadingLeaderPointY','0');
    SetRField(LNewObj,'Callout','__SecondaryLeaderPointX','2028.6094375');
    SetRField(LNewObj,'Callout','__SecondaryLeaderPointY','0');
    SetRField(LNewObj,'Callout','ControlPoint05X','5''7.866513287401574"');
    SetRField(LNewObj,'Callout','ControlPoint05Y','0"');
    SetRField(LNewObj,'Callout','__OldSecondaryShoulderPointX','1723.8094375');
    SetRField(LNewObj,'Callout','__OldSecondaryShoulderPointY','0');
    SetRField(LNewObj,'Callout','__LeaderLinesData','{
    	"handles" : [
    		{
    			"index" : 1,
    			"firstPtIndex" : 1,
    			"lastPtIndex" : 4,
    			"leaderType" : 0
    		}
    	]
    }');
    SetRField(LNewObj,'Callout','__CustomPointsData',Concat('{
    	"handles" : [
    		{
    			"index" : 1,
    			"type" : 1,
    			"x" : 0,
    ','			"y" : 0,
    			"bezier" : false
    		},
    		{
    			"index" : 2,
    			"typ','e" : 2,
    			"x" : -1899.0359340549093758,
    			"y" : -1096.40890772','73740713,
    			"bezier" : false
    		},
    		{
    			"index" : 3,
    			"type"',' : 4,
    			"x" : -495.96086455238139479,
    			"y" : -602.84912766598','836242,
    			"bezier" : true
    		},
    		{
    			"index" : 4,
    			"type" : ','5,
    			"x" : -1403.0750695025280947,
    			"y" : -493.55978006138570','89,
    			"bezier" : true
    		}
    	]
    }'));
    SetRField(LNewObj,'Callout','Max Leader Lines','2');
    SetRField(LNewObj,'Callout','__ActiveSubObject','4');
    SetRField(LNewObj,'Callout','__SubObjectDataAttributes',Concat('{
    	"handles" : [
    		{
    			"index" : 1,
    			"objectType" : 1,
    			"hi','ghlightingObject" : false,
    			"objectPenStyle" : 1,
    			"objectCl','assPenStyle" : 1,
    			"objectPenPatternIndex" : 2,
    			"objectPenP','atternForeColor" : 257,
    			"objectPenPatternBackColor" : 256,
    		','	"objectPenColor" : 257,
    			"objectPenLineType" : 2,
    			"objectP','enLineTypeName" : "",
    			"objectThickness" : 2,
    			"objectMarker','Style" : 0,
    			"objectMarkernAngle" : 15,
    			"objectMarkerdSize"',' : 0.125,
    			"objectMarkerdWidth" : 0,
    			"objectMarkernThicknes','sBasis" : 2,
    			"objectMarkerdThickness" : 2,
    			"objectFillOpac','ity" : 100,
    			"objectOpacity" : 100,
    			"fillColorByClass" : fa','lse,
    			"penColorByClass" : false,
    			"thicknessByClass" : false',',
    			"markerByClass" : false,
    			"fillOpacityByClass" : false,
    	','		"opacityByClass" : false
    		},
    		{
    			"index" : 2,
    			"objectTy','pe" : 2,
    			"highlightingObject" : false,
    			"objectPenStyle" : ','1,
    			"objectClassPenStyle" : 1,
    			"objectPenPatternIndex" : 2,','
    			"objectPenPatternForeColor" : 257,
    			"objectPenPatternBackC','olor" : 256,
    			"objectPenColor" : 257,
    			"objectPenLineType" :',' 2,
    			"objectPenLineTypeName" : "",
    			"objectThickness" : 2,
    	','		"objectMarkerStyle" : 0,
    			"objectMarkernAngle" : 15,
    			"obj','ectMarkerdSize" : 0.125,
    			"objectMarkerdWidth" : 0,
    			"object','MarkernThicknessBasis" : 2,
    			"objectMarkerdThickness" : 2,
    			','"objectFillOpacity" : 100,
    			"objectOpacity" : 100,
    			"fillCol','orByClass" : false,
    			"penColorByClass" : false,
    			"thicknessB','yClass" : false,
    			"markerByClass" : false,
    			"fillOpacityByCl','ass" : false,
    			"opacityByClass" : false
    		},
    		{
    			"index" : ','3,
    			"objectType" : 3,
    			"highlightingObject" : false,
    			"obj','ectPenStyle" : 1,
    			"objectClassPenStyle" : 1,
    			"objectPenPat','ternIndex" : 2,
    			"objectPenPatternForeColor" : 257,
    			"object','PenPatternBackColor" : 256,
    			"objectPenColor" : 257,
    			"objec','tPenLineType" : 2,
    			"objectPenLineTypeName" : "",
    			"objectTh','ickness" : 2,
    			"objectMarkerStyle" : 0,
    			"objectMarkernAngle','" : 15,
    			"objectMarkerdSize" : 0.125,
    			"objectMarkerdWidth" ',': 0,
    			"objectMarkernThicknessBasis" : 2,
    			"objectMarkerdThic','kness" : 2,
    			"objectFillOpacity" : 100,
    			"objectOpacity" : 1','00,
    			"fillColorByClass" : false,
    			"penColorByClass" : false,','
    			"thicknessByClass" : false,
    			"markerByClass" : false,
    			"','fillOpacityByClass" : false,
    			"opacityByClass" : false
    		},
    		','{
    			"index" : 4,
    			"objectType" : 4,
    			"highlightingObject" :',' false,
    			"objectPenStyle" : 1,
    			"objectClassPenStyle" : 1,
    	','		"objectPenPatternIndex" : 2,
    			"objectPenPatternForeColor" : ','257,
    			"objectPenPatternBackColor" : 256,
    			"objectPenColor" :',' 257,
    			"objectPenLineType" : 2,
    			"objectPenLineTypeName" : "','",
    			"objectThickness" : 2,
    			"objectMarkerStyle" : 0,
    			"obj','ectMarkernAngle" : 15,
    			"objectMarkerdSize" : 0.125,
    			"objec','tMarkerdWidth" : 0,
    			"objectMarkernThicknessBasis" : 2,
    			"ob','jectMarkerdThickness" : 2,
    			"objectFillOpacity" : 100,
    			"obj','ectOpacity" : 100,
    			"fillColorByClass" : false,
    			"penColorBy','Class" : false,
    			"thicknessByClass" : false,
    			"markerByClass','" : false,
    			"fillOpacityByClass" : false,
    			"opacityByClass" ',': false
    		}
    	]
    }'));
    SetRField(LNewObj,'Callout','__KeynotesListUpdate','False');
    SetRField(LNewObj,'Callout','TextSizePagePoints','12.000000');
    SetRField(LNewObj,'Callout','Auto Fit Bubble Width','True');
    SetRField(LNewObj,'Callout','Max Bubble Width','2"');
    SetRField(LNewObj,'Callout','Keynote Identifier','0');
    SetRField(LNewObj,'Callout','__OldKeynoteIdentifier','0');
    SetRField(LNewObj,'Callout','__IsNoteUpdated','True');
    SetRField(LNewObj,'Callout','__UseFirst42','True');
    ResetObject(LNewObj);
    			
    
    			HMove(LNewObj,xx,yy);
    			DelObject(hText);
    			DelName(fakeName);
    		END
    	ELSE
    		BEGIN
    			SysBeep;
    			AlrtDialog('No Text Object Selected');
    		END;
    
    
    
    END;
    
    RUN(Test);

     

    • Like 1
  6. 24 minutes ago, Jesse Cogswell said:

    @michaelk I noticed in your screenshot that the two columns UUID and Parent UUID are visible.  These are supposed to be hidden (have a column width of 0), did you expand the columns or is that how it presents on Mac?  I'm asking because this plug-in will also use a hidden column to conceal the record name for each plug-in object so that it instead presents the localized name.  If the Record Name column is visible when you run this, let me know and I'll change up how the programming works a little bit.

    I really hesitate to tell you this, but…. 

     

    The slight offset in the column headers in the header row and in the body between Object Type and # in drawing that you see in Windows is more offset in Mac.  I can see the R in Record.

     

    This is just going to make me go back over all your other menu commands and try to move columns around.

  7. I was just having a conversation about this recently.

     

    I wrote this script for someone else.  It creates/updates classes AND their descriptions in a VW drawing.  If you hover over a class in the Nav Palette and the class has a description, that description will pop up.  So you can have a description of a class that says "This class is for plumbing fixtures only.  NOT windows.  NOT lobby furniture!"

     

    Run this script and it will create classes and create/update their descriptions.  It will NOT delete existing classes.

     

    I think it will NOT make anyone check the descriptions, but you will know that you tried.

     

    PS. I've always wanted an option to have the screen flash red whenever creating objects while NOT in the None class.  

     

    And an option to define classes, like the None class, that the Visibility Tool Ignores when the mode is set to invisible.

    Create Classes From Worksheet v2024.vwx

    • Like 1
  8. I was pointing out the menu commend that Jesse wrote.  

     

    For example. Using Jesse's menu command, here's a list of all the objects - including objects inside wall comments and symbol definitions! - in the drawing I'm working on now that are in the Demo class.

    image.thumb.png.8024f703a15e61ab7ba07bc8253d7682.png

    You can go to an object straight from the list or create a worksheet.

     

    I'm not as good as Jesse at creating cool dialog boxes.  So in the past I've just made my own worksheets and changed the criteria manually to discover how many walls got put into the class Site-DTM-Modifier.

    • Laugh 1
  9. Like @Tom W. I try to keep everything in the None class on sheet layers with a few exceptions:

     

    1. Graphic division lines that divide the page for clarity.  Those are in their own class to make controlling the graphic attributes simpler.
    2. Revision Clouds are in their own classes by revision number.
    3. I used to class title blocks by phases of the project for sheet index organization.  But now I usually just attach a record format to each title block.  And avoid projects with phases.
  10. Check out the alert at the bottom of the image you posted.  "A component of this wall is using a story bound that does not exist".

     

    If the wall is styled, edit the components of the style.  If it's not styled you can edit the components right from the OIP.  Check each component to see what the bounds are.

     

    If that makes zero sense, post a file with the wall in it.  🙂 

    • Like 1
×
×
  • Create New...