lines.append(newline) rtn = lines else: rtn = xcrv return rtn DOC = doc DWG = Picked_Selection.unwrap() CRV = [] CRX = [] LAY = [] CLR = [] for abc in DWG.get_Geometry(DB.Options()): for crv in abc.GetInstanceGeometry(): # print(crv.GetType()) lay = DOC.GetElement(crv.GraphicsStyleId).GraphicsStyleCategory.Name ccc = DOC.GetElement( crv.GraphicsStyleId).GraphicsStyleCategory.LineColor CRX.append(_ConvertRevitCurves(crv)) CRV.append(crv) LAY.append(lay) CLR.append(ccc.Green) OUT = [CRV, CRX, LAY, CLR] LayedSelection = [] for c, l in zip(CRX, LAY): if l == LayerName:
# -*- coding: utf-8 -*- __doc__ = "分析设计中内墙与外墙的量" import rpw from rpw import revit, DB, UI, db, doc from System.Collections.Generic import List import json from scriptutils import this_script from scriptutils.userinput import CommandSwitchWindow import subprocess as sp from pyrevit.coreutils.console import charts # Global Setting Options = DB.Options() Options.ComputeReferences = True #Get Inside Wall And Outside Wall then show in on the Pin Table selection = rpw.ui.Selection() SelectedStair = selection[0] StairGeometry = SelectedStair.get_Geometry(Options) enum1 = StairGeometry.GetEnumerator() for i in enum1: print(i) newenum1 = i.GetInstanceGeometry() print(newenum1) for i in newenum1: print(i) enum1.MoveNext() #geo2=enum1.Current.GetInstanceGeometry()
import json import sys from MyLib import Helper doc = __revit__.ActiveUIDocument.Document uidoc = __revit__.ActiveUIDocument print(sys.path) Picked= uidoc.Selection.PickObject(UI.Selection.ObjectType.Face) PickedElementId=Picked.ElementId print(PickedElementId) Picked_Selection=db.Element.from_id(PickedElementId) #信息输入部分 Picked_Geometry=Picked_Selection.unwrap().get_Geometry(DB.Options()) enum1=Picked_Geometry.GetEnumerator() print(enum1) for i in enum1: newenum1=i.GetInstanceGeometry() for c in newenum1: print(c.Faces.Size) for m in c.Faces: try: print(m.Points) except: pass
For more information visit http://github.com/gtalarico/revitapidocs License: http://github.com/gtalarico/revitapidocs/blob/master/LICENSE.md """ from rpw import revit, db, ui, DB LAYER_NAME = 'A-FLOR-OTLN' # "ENTER_DWG_LAYER_NAME_HERE" selection = ui.Selection().get_elements(wrapped=False) dwg_link_instances = [l for l in selection if isinstance(l, DB.ImportInstance)] if not dwg_link_instances: ui.forms.Alert("please select a linked dwg", exit=True) active_view = revit.doc.ActiveView geo_opt = DB.Options() geo_opt.ComputeReferences = True geo_opt.IncludeNonVisibleObjects = True geo_opt.View = active_view geometry = dwg_link_instances[0].get_Geometry(geo_opt) with db.Transaction("redraw dim_help layer dwg polylines"): for geo_inst in geometry: geo_elem = geo_inst.GetInstanceGeometry() for polyline in geo_elem: element = revit.doc.GetElement(polyline.GraphicsStyleId) if not element: continue is_target_layer = element.GraphicsStyleCategory.Name == LAYER_NAME
import sys import clr import os import rpw from rpw import revit, db, ui, DB, UI from rpw.ui.forms import FlexForm, Label, ComboBox, TextBox, TextBox, Separator, Button, Alert import json from MyLib import Helper doc = __revit__.ActiveUIDocument.Document uidoc = __revit__.ActiveUIDocument #pick Surface Picked = uidoc.Selection.PickObject(UI.Selection.ObjectType.Element) PickedElementId = Picked.ElementId Picked_Selection = db.Element.from_id(PickedElementId) parameter = Picked_Selection.parameters.all Unwrap_Element = Picked_Selection.unwrap() Picked_Geometry = Unwrap_Element.get_Geometry(DB.Options()) for i in Picked_Geometry: try: print(Helper.CovertToM2(i.SurfaceArea)) except: print("bad") #print(Picked_Geometry)