Jump to content

brvn

Member
  • Posts

    3
  • Joined

  • Last visited

Posts posted by brvn

  1. I am trying to duplicate two Worksheets, place them on a Layer and move it to the right worksheet folder.

     

    I got it all working, except that the worksheets seem like they are not saved correct.

    If I want to activate the placed worksheet image in the resource manager, it doesn't work.

     

    Does someone have some experience ?

     

    Thank you very much

     

    # Script by Lukas Tobler | 27.04.2023
    # Platziert die Tabellen automatisch auf allen Raumstudien und filtert den korrekten Raum
    
    import vs
    
    criteria_point = "(NOTINDLVP & NOTINREFDLVP & ((T=LOCUS) & (C='Hilfskonstruktionen')))"
    
    def create_tab_definition(handle_ref_tab, story):
    
    	try:
    		vs.NameObject(f"RST_{story}")
    		folder_handle = vs.BeginFolderN(18)
    		ws_handle = vs.CreateDuplicateObject(handle_ref_tab, folder_handle)
    		vs.EndFolder()
    		return ws_handle
    	except:
    		folder_handle = vs.GetObject(f"RST_{story}")
    		ws_handle = vs.CreateDuplicateObject(handle_ref_tab, folder_handle)
    		return ws_handle
    
    	# Pro Geschoss (UG04-OG04) einen Ordner erstellen mit dem Namen "RST_Geschoss" (zb "RST_UG03")
    	# Falls Ordner schon vorhanden, dann den Handle von diesem Ordner wiedergeben
    	
    	# Kopie von Tabelle "Vorlage Räume" oder "Vorlage Türen" erstellen und im Ordner speichern
    	
    	
    
    def main(point_handle):
    
    	layer_handle = vs.GetLayer(point_handle)
    	layer_name = vs.GetLName(layer_handle)
    	
    	if "RST" in layer_name:
    	
    		def get_ttb(h):
    			global ttb_handle
    			ttb_handle = h
    		
    		vs.Layer(layer_name)
    		
    		vs.ForEachObject(get_ttb, "((PON='Title Block Border') & (L='"+layer_name+"'))")
    
    		story = layer_name[19:23]
    		
    		record_handle = vs.GetRecord(ttb_handle, 2)
    		ttb_field = vs.GetRField(ttb_handle, record_handle.name, "Sheet Title")
    		seperator_index =  ttb_field.find(" /")
    		room_number = ttb_field[:seperator_index]
    
    		insertion_point = vs.Get2DPt(point_handle, 1)
    		
    		handle_ref_tab = vs.GetTopVisibleWS()
    		
    		if handle_ref_tab.name == "Vorlage Räume":
    			new_tab = create_tab_definition(handle_ref_tab, story)
    			vs.SetWSCellFormulaN(new_tab, 1, 2, 1, 2, room_number)	
    			vs.CreateWSImage(new_tab, insertion_point)
    			vs.SetName(new_tab, room_number)
    		else:
    			new_tab= create_tab_definition(handle_ref_tab, story)
    			insertion_point = (insertion_point[0], insertion_point[1]-0.185)
    			vs.SetWSCellFormulaN(new_tab, 1, 2, 1, 2, room_number)	
    			vs.CreateWSImage(new_tab, insertion_point)
    			vs.SetName(new_tab, f"{room_number}_Türen")
    		
    		
    vs.ForEachObject(main, criteria_point)

     

×
×
  • Create New...