Esempio n. 1
0
def get_styles():
    fromStyleLine = \
        revit.pick_element('Pick a line with the style to be replaced.')
    fromStyle = fromStyleLine.LineStyle

    toStyleLine = \
        revit.pick_element('Pick a line with the interfacetypes style.')

    toStyle = toStyleLine.LineStyle

    return fromStyle, toStyle
Esempio n. 2
0
def pick_and_match_styles(src_element):
    with forms.WarningBar(title='Pick target elements:'):
        while True:
            dest_element = revit.pick_element()

            if not dest_element:
                break

            with revit.Transaction('Match Tags'):
                tagsmgr.match_tags(src_element, [dest_element])
Esempio n. 3
0
def pick_and_match_styles(src_style):
    with forms.WarningBar(title='Pick objects to match overrides:'):
        while True:
            dest_element = revit.pick_element()

            if not dest_element:
                break

            with revit.Transaction('Match Graphics Overrides'):
                revit.activeview.SetElementOverrides(dest_element.Id,
                                                     src_style)
Esempio n. 4
0
def pick_and_match_types(src_props):
    """Match property values for selected types."""
    with forms.WarningBar(title="Pick objects to match type properties:"):
        while True:
            dest_element = revit.pick_element()
            if not dest_element:
                break

            dest_type = revit.query.get_type(dest_element)
            with revit.Transaction("Match Type Properties"):
                match_prop(dest_element, dest_type, src_props)
Esempio n. 5
0
def pick_and_match_dim_overrides(src_dim_id):
    with forms.WarningBar(title='Pick dimensions to match overrides:'):
        src_dim = revit.doc.GetElement(src_dim_id)
        while True:
            dest_dim = revit.pick_element()

            if not dest_dim:
                break

            if isinstance(dest_dim, DB.Dimension):
                with revit.Transaction('Match Dimension Overrides'):
                    setup_dim_overrides_per_config(src_dim, dest_dim)
Esempio n. 6
0
def pick_and_match_styles(src_style):
    with forms.WarningBar(title='Pick objects to match overrides:'):
        while True:
            dest_element = revit.pick_element()

            if not dest_element:
                break

            dest_element_ids = [dest_element.Id]
            if hasattr(dest_element, 'GetSubComponentIds'):
                dest_element_ids.extend(dest_element.GetSubComponentIds())
            with revit.Transaction('Match Graphics Overrides'):
                for dest_elid in dest_element_ids:
                    revit.active_view.SetElementOverrides(dest_elid, src_style)
Esempio n. 7
0
def pick_and_match_dim_overrides(src_dim_id):
    with forms.WarningBar(title='Pick dimensions to match overrides:'):
        src_dim = revit.doc.GetElement(src_dim_id)
        if src_dim.NumberOfSegments > 1:
            src_dim = src_dim.Segments[0]
        while True:
            dest_dim = revit.pick_element()

            if not dest_dim:
                break

            if isinstance(dest_dim, DB.Dimension):
                with revit.Transaction('Match Dimension Overrides'):
                    if dest_dim.NumberOfSegments > 1:
                        segments = dest_dim.Segments
                        for segment in segments:
                            setup_dim_overrides_per_config(src_dim, segment)
                    else:
                        setup_dim_overrides_per_config(src_dim, dest_dim)
Esempio n. 8
0
def pick_chain(doc):
    selection = revit.selection.get_selection()
    # last_selection = selection.element_ids
    selected_curve = revit.pick_element("Select curves to sort by")

    if not selected_curve:
        forms.alert("Nothing selected")
        return None, None

    logger.debug("selected_curve: %s" % str(selected_curve.Id))

    try:
        selected_curve.GeometryCurve
    except:
        forms.alert(
            "Error! Selected element is not a Curve.\nOr it have no GeometryCurve parameter"
        )
        return None, None

    if not selected_curve.GeometryCurve.IsBound:
        forms.alert("Error! Curve cannot be bounded")

    # chain
    selection_list_sorted, selection_list_sorted_isreversed = _find_curve_chain(
        selected_curve, doc)
    logger.debug("selection_list_sorted: %s" % selection_list_sorted)
    if len(selection_list_sorted) > 1:
        # TODO undo
        selection.set_to(selection_list_sorted)
        form_result = TaskDialog.Show(
            "Select curve chain?",
            "Curve chain found. Use it?\nIf not, only one selected curve will be used",
            TaskDialogCommonButtons.Yes | TaskDialogCommonButtons.No)

        # selection.set_to(last_selection)
        if str(form_result) == "Yes":
            return selection_list_sorted, selection_list_sorted_isreversed
    logger.debug("Selected_curve: %s" % [selected_curve.Id])
    return [selected_curve.Id], None
Esempio n. 9
0
    source_element = selected_elements[0]
    target_type = "Views" if isinstance(source_element, DB.View)\
        else "Elements"
else:
    source_element = None
    # ask for type of elements to match
    # some are not selectable in graphical views
    target_type = \
        forms.CommandSwitchWindow.show(
            ["Elements", "Views"],
            message="Pick type of targets:")

    # determine source element
    if target_type == "Elements":
        with forms.WarningBar(title="Pick source object:"):
            source_element = revit.pick_element()
    elif target_type == "Views":
        source_element = \
            forms.select_views(title="Select Source View", multiple=False)

# grab parameters from source element
if source_element:
    target_element = None
    if target_type == "Elements":
        target_element = revit.pick_element(message="Pick target element:")
    elif target_type == "Views":
        target_element = \
            forms.select_views(title="Select Target View", multiple=False)
    if target_element:
        compare_props(source_element, target_element)
Esempio n. 10
0
from pyrevit import revit
from pyrevit import forms

import tagscfg
import tagsmgr

__author__ = '{{author}}'


def pick_and_match_styles(src_element):
    with forms.WarningBar(title='Pick target elements:'):
        while True:
            dest_element = revit.pick_element()

            if not dest_element:
                break

            with revit.Transaction('Match Tags'):
                tagsmgr.match_tags(src_element, [dest_element])


if tagscfg.verify_tags_configs():
    with forms.WarningBar(title='Pick source element:'):
        source_element = revit.pick_element()

    if source_element:
        pick_and_match_styles(source_element)
else:
    forms.alert('Tags tools need to be configured before using. '
                'Click on the Tags Settings button to setup.')
Esempio n. 11
0
                    Solids.append(d)
        elif type(i) == DB.Solid:
            if i.Volume != 0:
                Solids.append(i)
    return Solids


#elementInstance= revit.pick_element()

allColumn = rpw.db.Collector(of_category='OST_StructuralColumns',
                             is_type=False).get_elements(wrapped=False)

allFraming = rpw.db.Collector(of_category='OST_StructuralFraming',
                              is_type=False).get_elements(wrapped=False)

picked = revit.pick_element()


@rpw.db.Transaction.ensure('ResetColumnToInstance')
def ResetColumnToInstance(Element):
    for element in Element:
        try:
            level = doc.GetElement(element.LevelId)

            baseLevel = element.Parameter[
                DB.BuiltInParameter.FAMILY_BASE_LEVEL_PARAM]
            topLevel = element.Parameter[
                DB.BuiltInParameter.FAMILY_TOP_LEVEL_PARAM]
            baseOffset = element.Parameter[
                DB.BuiltInParameter.FAMILY_BASE_LEVEL_OFFSET_PARAM]
            topOffset = element.Parameter[
Esempio n. 12
0
    for param in element.Parameters:
        param_name = param.Definition.Name
        if not param.IsReadOnly and param.Definition.BuiltInParameter not in exclude_biparams:
            if param_name in value_dict.keys():
                param_value = value_dict[param_name]
                try:
                    logger.debug('Setting param: {} to value: {}'.format(
                        param_name, param_value))
                    param.Set(param_value)
                except Exception:
                    logger.debug('Param: {} Value is not settable: {}'.format(
                        param_name, param_value))


selection = revit.get_selection()
with revit.Transaction('Change Element Types'):
    src_element = \
        revit.pick_element('Pick object with source element type')
    if src_element:
        src_type = src_element.GetTypeId()

        for dest_element in selection.elements:
            logger.debug('Converting: {} | {}'.format(dest_element.Id,
                                                      dest_element))
            value_dict = get_param_values(dest_element)
            new_element = dest_element.ChangeTypeId(src_type)
            if new_element != DB.ElementId.InvalidElementId:
                set_param_values(revit.doc.GetElement(new_element), value_dict)
            else:
                set_param_values(dest_element, value_dict)
Esempio n. 13
0
# -*- coding: utf-8 -*-
__doc__ = "返回选择物体的类型"
import rpw
import clr
from rpw import db, doc
from pyrevit import revit, DB, HOST_APP, UI
from rpw.ui.forms import FlexForm, Label, ComboBox, TextBox, TextBox, Separator, Button, SelectFromList

floor = revit.pick_element()

beams = revit.pick_elements()

#out_sUV = clr.Reference[DB.UV]()
#out_eUV = clr.Reference[DB.UV]()
#out_sDistance = clr.Reference[float]()
#out_eDistance = clr.Reference[float]()

currentView = revit.uidoc.ActiveView


@rpw.db.Transaction.ensure('CreateBeam')
def CreateBeam(Curve, FamilySymbol, Level, StructureType):
    doc.Create.NewFamilyInstance(Curve, FamilySymbol, Level, StructureType)


@rpw.db.Transaction.ensure('DeleteFamilyInstance')
def DeleteFamilyInstance(FamilyInstanceId):
    doc.Delete(FamilyInstanceId)


for beam in beams:
Esempio n. 14
0
        exitscript=True)

vport_element_ids = vsheet.GetAllViewports()

vports = []

for vp_id in vport_element_ids:
    vports.Add(doc.GetElement(vp_id))

counter = 0
carry = ''

try:
    while True:
        counter += 1
        selection_element = revit.pick_element('Anything')
        detail_number = selection_element.LookupParameter("Detail Number")

        with revit.Transaction("Toggle", doc=doc):
            for vp in vports:
                cur_vp_param = vp.LookupParameter("Detail Number")
                cur_vp = str(cur_vp_param.AsString())
                if cur_vp == str(counter):
                    carry = str(detail_number.AsString())
                    detail_number.Set("99")
                    cur_vp_param.Set(carry)
                    detail_number.Set(str(counter))
except:
    TaskDialog.Show('Test', 'Done')
    pass
Esempio n. 15
0
import clr
#clr.AddReference('libintl')
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

clr.AddReference("RevitAPI")
from Autodesk.Revit.DB import *
#clr.AddReference('mscorlib')
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
# Import ToDSType(bool) extension method
clr.AddReference("RevitNodes")
import Revit
from Revit.GeometryConversion import *
# Import ToProtoType, ToRevitType geometry conversion extension methods
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)

#Wall = revit.pick_element().get_Geometry(DB.Options()).GetEnumerator()
Wall = revit.pick_element()
#Wall.MoveNext()
#C=Wall.Current
#print(C)
with db.Transaction('Move Beam To Floor'):
    Element = Wall.ToDSType(False)

print(Element)

#print (assembly.GetName().Name for assembly in clr.References)
Esempio n. 16
0
# -*- coding: utf-8 -*-
__doc__ = "返回选择物体的类型"
import rpw
from rpw.ui.forms import FlexForm, Label, ComboBox, TextBox, TextBox, Separator, Button, SelectFromList
from System.Collections.Generic import List
from rpw import doc, db
from pyrevit import revit, DB, HOST_APP, UI
import json
import pickle
from Helper import *
import math
import random
from pyrevit import forms
from pyrevit.framework import Stopwatch
curview = revit.active_view
curdoc = revit.doc

selections = revit.pick_element()

print(selections.UniqueId)