VS:SetStoryElevation: Difference between revisions

From Vectorworks Developer
Jump to navigation Jump to search
m (1 revision)
(add infos and example)
Line 40: Line 40:


-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
<remark></remark>
<remark>([[User:Orso.b.schmid|Orso]], 2018.10.23): SetStoryElevations wants mm and needs the story to have an associated design layer, or it will fail.
 
<code lang="pas">
{ Orso }
PROCEDURE TEST;
VAR
storyH, layerH : HANDLE;
baseElev : REAL;
storyN, layerN : STRING;
i : INTEGER;
BEGIN
baseElev := 0mm;
FOR i:=1 TO 3 DO BEGIN
storyN := Concat('Story-', i);
IF CreateStory(storyN, Concat('ABCD-', i)) = FALSE THEN
AlrtDialog(Concat(storyN, ' Story creation failed'));
storyH := GetObject(storyN);
layerN := Concat('ABCD-', i, '-OG');
layerH := CreateLayer(layerN, 1);
 
IF storyH <> NIL THEN BEGIN
IF layerH <> NIL THEN BEGIN
IF SetLayerLevelType(layerH, 'OKF') = FALSE THEN
AlrtDialog(Concat(layerN, ': SetLayerLevelType failed'));
IF AssociateLayerWithStory(layerH, storyH) = FALSE THEN
AlrtDialog(Concat(layerN, ': AssociateLayerWithStory failed'));
{ keep below associating the layer to the story }
IF SetStoryElevation(storyH, baseElev) = FALSE THEN { always mm }
AlrtDialog(Concat(storyN, ': SetStoryElevation failed'));
END ELSE
AlrtDialog(Concat(layerN, 'layer is NIL'));
baseElev := baseElev +3000mm;
END;
END;
END;
RUN(TEST);
</code>
</remark>


-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------

Revision as of 04:49, 23 October 2018

.VectorScript|VectorScript ..VS:Function Reference|Function Reference ..VS:Function_Reference_Appendix|Appendix

Description

Sets the elevation of the indicated Story. Returns whether the elevation was successfully set. If the elevaton change would cause Layers associated with the Story to overlap Layers associated with another Story, then the change in elevation will be prevented.

FUNCTION SetStoryElevation(
story :HANDLE;
elevation :REAL) : BOOLEAN;
def vs.SetStoryElevation(story, elevation):
    return BOOLEAN

Parameters

story HANDLE The Story whose elevation is to be set.
elevation REAL The elevation to set the Story to.

Return Value

Whether the elevation is successfully changed.

Remarks

(Orso, 2018.10.23): SetStoryElevations wants mm and needs the story to have an associated design layer, or it will fail.

{ Orso }
PROCEDURE TEST;
VAR
	storyH, layerH : HANDLE;
	baseElev : REAL;
	storyN, layerN : STRING;
	i : INTEGER;
	
BEGIN
	baseElev := 0mm;
	
	FOR i:=1 TO 3 DO BEGIN
		storyN := Concat('Story-', i);
		
		IF CreateStory(storyN, Concat('ABCD-', i)) = FALSE THEN
			AlrtDialog(Concat(storyN, ' Story creation failed'));
		
		storyH := GetObject(storyN);
		layerN := Concat('ABCD-', i, '-OG');
		layerH := CreateLayer(layerN, 1);

		IF storyH <> NIL THEN BEGIN
		
			IF layerH <> NIL THEN BEGIN
				IF SetLayerLevelType(layerH, 'OKF') = FALSE THEN
					AlrtDialog(Concat(layerN, ': SetLayerLevelType failed'));
		
				IF AssociateLayerWithStory(layerH, storyH) = FALSE THEN
					AlrtDialog(Concat(layerN, ': AssociateLayerWithStory failed'));
				
				{ keep below associating the layer to the story }
				IF SetStoryElevation(storyH, baseElev) = FALSE THEN { always mm }
					AlrtDialog(Concat(storyN, ': SetStoryElevation failed'));
			
			END ELSE
				AlrtDialog(Concat(layerN, 'layer is NIL'));
				
			baseElev := baseElev +3000mm;
		END;
	END;
END;
RUN(TEST);

Version

Availability: from Vectorworks 2012

See Also

VS Functions:

VS:CreateStory | VS:GetStoryElevation

VS Functions:

[[VS:CreateStory]]

| [[VS:GetStoryElevation]]