Определить отображен ли элемент

Главная Форумы Задать вопрос Определить отображен ли элемент

Просмотр 1 сообщения - с 16 по 16 (всего 16)
  • Автор
    Сообщения
  • #6913 Score: 0
    Анатолий
    Участник
    37 pts

    Благодарю) Обязательно попробую, увидел ответ, когда уже почти получилось задать правильные условия для корректного поворота перемычек. Почему-то если с обычного списка поворачивать, задавая угол – все нормально оборачивается, а элементы (может я не разобрался до конца) пришлось вращать, разделяя каждый угол на 2.

    import clr
    clr.AddReference("RevitAPI")
    import Autodesk
    clr.AddReference('ProtoGeometry')
    from Autodesk.DesignScript.Geometry import *
    clr.AddReference("RevitNodes")
    import Revit
    clr.ImportExtensions(Revit.Elements)
    clr.AddReference("RevitServices")
    from RevitServices.Persistence import DocumentManager
    from RevitServices.Transactions import TransactionManager
    import math
    doc = DocumentManager.Instance.CurrentDBDocument
    clr.ImportExtensions(Revit.GeometryConversion)
    
    inn = IN[0]
    marka = IN[1]
    if not isinstance(inn, list):
    inn= [inn]
    Rt,Rt1,x1,y1,z1,z2,xz=[],[],[],[],[],[],[]
    for i in inn:
    try:
    elemId = UnwrapElement(i).Id
    xyz = UnwrapElement(i).Location.Point*304.8 #центри розташування елементів
    pt1 = Point.ByCoordinates(xyz.X, xyz.Y,xyz.Z) #ставимо точки
    dX=UnwrapElement(i).FacingOrientation.X
    dY=UnwrapElement(i).FacingOrientation.Y
    y1.append(dY)
    x1.append(dX)
    if dX>0 and dY>0:
    try:
    rotation1 = 180-math.degrees(math.atan(dX/dY))
    except:
    pass
    Rt.append(rotation1/2)
    elif dX>=0 and dY<0:
    try:
    rotation1 = math.degrees(math.atan(-dX/dY))
    except:
    pass
    Rt.append(rotation1/2)
    elif dX<=0 and dY>0:
    try:
    rotation1 = 180-math.degrees(math.atan(dX/dY))
    except:
    pass
    Rt.append(rotation1/2)
    elif dX==1 and dY==0:
    try:
    rotation1 = 90-math.degrees(math.atan(-dY/dX))
    except:
    pass
    Rt.append(rotation1/2)
    else:
    try:
    rotation1 = math.degrees(math.atan(-dX/dY))
    except:
    pass
    Rt.append(rotation1/2)
    except:
    pass
    OUT=Rt

    p.s. Если я многострочием засоряю тему, прошу намекнуть, чтоб я лишнего не писал.

Просмотр 1 сообщения - с 16 по 16 (всего 16)
  • Для ответа в этой теме необходимо авторизоваться.