Skip to content

Commit fff854c

Browse files
committed
pyRevit 4.2
Addition of Charts Core performance improvements Output window improvements (Removed 1023 cache limit)
2 parents fc2bc64 + e639e74 commit fff854c

File tree

25 files changed

+233
-167
lines changed

25 files changed

+233
-167
lines changed

extensions/pyRevitCore.extension/pyRevit.tab/pyRevit.panel/About.pushbutton/AboutWindow.xaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
</Border.Background>
1212
<Grid>
1313
<Image x:Name="pyrevit_logo" HorizontalAlignment="Left" Width="100" Height="110" Margin="25,20,0,0" VerticalAlignment="Top" />
14-
<TextBlock x:Name="pyrevit_title" Margin="140,30,30,0" TextWrapping="Wrap" VerticalAlignment="Top" FontSize="44"><Run Text="pyRevit"/><InlineUIContainer>
15-
<TextBlock x:Name="version_info" TextWrapping="Wrap" Text="v 4.0:0000000" FontSize="20" Margin="12,0,0,0" MouseDown="opengithubcommits"/>
16-
</InlineUIContainer></TextBlock>
14+
<TextBlock x:Name="pyrevit_title" Margin="140,30,30,0" VerticalAlignment="Top" FontSize="44" MouseDown="opengithubcommits">
15+
<Run Text="pyRevit"/><Run x:Name="version_info" Text="" FontSize="20"/><Run x:Name="branch_info" Text="" FontSize="14"/>
16+
</TextBlock>
1717
<Separator VerticalAlignment="Top" Margin="30,155,30,0" Background="#dfdfdf"/>
1818
<TextBlock x:Name="pyrevit_subtitle" Margin="140,85,30,0" TextWrapping="Wrap" VerticalAlignment="Top" FontSize="14" Text="python module and scripts for Autodesk Revit®" LineHeight="20"/>
1919
<TextBlock x:Name="credits_title" Margin="30,175,30,0" TextWrapping="Wrap" Text="pyRevit uses some fine tools made by very talented people:" VerticalAlignment="Top" FontSize="14" TextAlignment="Center"/>

extensions/pyRevitCore.extension/pyRevit.tab/pyRevit.panel/About.pushbutton/aboutscript.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from scriptutils import open_url
55
from scriptutils.userinput import WPFWindow
66
from pyrevit.coreutils.git import compare_branch_heads
7-
from pyrevit.versionmgr import PYREVIT_VERSION
7+
from pyrevit.versionmgr import PYREVIT_VERSION, PYREVIT_REPO
88
from pyrevit.versionmgr.updater import get_pyrevit_repo, has_pending_updates
99

1010

@@ -20,7 +20,12 @@ def __init__(self, xaml_file_name):
2020
self.set_image_source('pyrevit_logo', 'pyRevitlogo.png')
2121
self.set_image_source('keybase_profile', 'keybase.png')
2222

23-
self.version_info.Text = 'v {}'.format(PYREVIT_VERSION.get_formatted())
23+
try:
24+
self.version_info.Text = ' v{}'.format(PYREVIT_VERSION.get_formatted())
25+
if PYREVIT_REPO.branch != 'master':
26+
self.branch_info.Text = ' ({})'.format(PYREVIT_REPO.branch)
27+
except:
28+
self.version_info.Text = ''
2429
self.pyrevit_subtitle.Text += '\nRunning on IronPython {}.{}.{}'.format(sys.version_info.major,
2530
sys.version_info.minor,
2631
sys.version_info.micro)
Loading

extensions/pyRevitCore.extension/pyRevit.tab/pyRevit.panel/About.pushbutton/script.py

Lines changed: 0 additions & 69 deletions
This file was deleted.

extensions/pyRevitCore.extension/pyRevit.tab/pyRevit.panel/wip.stack3/Labs.pulldown/Master Test.pushbutton/script.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,6 @@ def __selfinit__(script_cmp, commandbutton, __rvt__):
100100
print 'Window hndlr: {}'.format(__window__)
101101
print 'File: {}'.format(__file__)
102102
print 'Forced Debug: {}'.format(__forceddebugmode__)
103-
print 'Message: {}'.format(__message__)
104-
print 'Result: {}'.format(__result__)
105103

106104
su.this_script.output.print_md('**Testing linkify:**')
107105
print('Clickable element id: {}'.format(su.this_script.output.linkify(ElementId(1557))))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
import clr
2+
3+
from pyrevit import PYTHON_LIB_DIR, MAIN_LIB_DIR
4+
from pyrevit.coreutils import Timer
5+
6+
from scriptutils import this_script
7+
8+
clr.AddReference('System')
9+
clr.AddReference('IronPython')
10+
# noinspection PyUnresolvedReferences
11+
from System.Collections.Generic import List
12+
# noinspection PyUnresolvedReferences
13+
import IronPython.Hosting
14+
import IronPython.Runtime
15+
16+
17+
TEST_UNIT = 100
18+
MAX_TESTS = 5 * TEST_UNIT
19+
script = "import random; random.randint(1,10)"
20+
21+
22+
def run(engine, runtime):
23+
scope = runtime.CreateScope()
24+
co = engine.GetCompilerOptions(scope)
25+
# co.Module &= ~IronPython.Runtime.ModuleOptions.Optimized
26+
source = engine.CreateScriptSourceFromString(script)
27+
comped = source.Compile()
28+
comped.Execute(scope)
29+
30+
31+
def make_engine():
32+
options = {"Frames": True, "FullFrames": True, "LightweightScopes": True}
33+
engine = IronPython.Hosting.Python.CreateEngine(options)
34+
engine.SetSearchPaths(List[str]([PYTHON_LIB_DIR, MAIN_LIB_DIR]))
35+
runtime = engine.Runtime
36+
return engine, runtime
37+
38+
39+
def shutdown(runtime):
40+
runtime.Shutdown()
41+
42+
43+
engine_times = []
44+
output_times = []
45+
46+
for idx in range(1, MAX_TESTS):
47+
engine, runtime = make_engine()
48+
engine_timer = Timer()
49+
run(engine, runtime)
50+
eng_time = engine_timer.get_time()
51+
shutdown(runtime)
52+
engine_times.append(eng_time)
53+
54+
output_timer = Timer()
55+
print('Engine {}: {}'.format(idx, eng_time))
56+
output_times.append(output_timer.get_time())
57+
58+
59+
chart = this_script.output.make_line_chart()
60+
# chart.options.scales = {'xAxes': [{'ticks': {'fixedStepSize': 5}, 'type': 'category', 'position': 'bottom'}],
61+
# 'yAxes': [{'ticks': {'fixedStepSize': 10}}]}
62+
63+
chart.data.labels = [x for x in range(0, MAX_TESTS + 1)]
64+
65+
engine_dataset = chart.data.new_dataset('engine_timer')
66+
engine_dataset.set_color(0xc3, 0x10, 0x10, 0.4)
67+
engine_dataset.data = engine_times
68+
69+
output_dataset = chart.data.new_dataset('output_timer')
70+
output_dataset.set_color(0xf0, 0xa7, 0x19, 0.4)
71+
output_dataset.data = output_times
72+
73+
chart.draw()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
"""Display the total area of different area types in a graph."""
2+
3+
from scriptutils import this_script
4+
from revitutils import doc, selection
5+
6+
# noinspection PyUnresolvedReferences
7+
from Autodesk.Revit.DB import FilteredElementCollector, ElementId, BuiltInCategory, Area
8+
9+
10+
areas = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Areas)\
11+
.WhereElementIsNotElementType().ToElements()
12+
13+
14+
total = dict()
15+
for area in areas:
16+
try:
17+
area_type = area.LookupParameter('Area Type').AsValueString()
18+
if area_type.lower() != '(none)':
19+
if area_type in total:
20+
total[area_type] += area.Area
21+
else:
22+
total[area_type] = area.Area
23+
except:
24+
continue
25+
26+
this_script.output.set_width(400)
27+
this_script.output.set_height(450)
28+
29+
chart = this_script.output.make_pie_chart()
30+
chart.data.labels = total.keys()
31+
area_dataset = chart.data.new_dataset('area types')
32+
area_dataset.data = [round(v, 2) for v in total.values()]
33+
34+
chart.randomize_colors()
35+
chart.draw()

extensions/pyRevitTools.extension/pyRevit.tab/Analysis.panel/Tools.stack2/Analyse.pulldown/Find Range Of Roof Slopes.pushbutton/script.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from scriptutils import this_script
12
from revitutils import doc
23

34
# noinspection PyUnresolvedReferences
@@ -17,12 +18,15 @@
1718
if p:
1819
s = p.AsValueString()
1920
if s in slopes.keys():
20-
slopes[s].append(el.Id.IntegerValue)
21+
slopes[s].append(el.Id)
2122
else:
22-
slopes[s] = [el.Id.IntegerValue]
23+
slopes[s] = [el.Id]
2324

24-
for sl, elid in slopes.items():
25+
for sl, elids in slopes.items():
2526
print('SLOPE: {0}'.format(sl))
2627
print('ROOF ELEMENTS WITH THIS SLOPE:')
27-
print(elid)
28+
el_links = ''
29+
for elid in elids:
30+
el_links += this_script.output.linkify(elid)
31+
print(el_links)
2832
print('\n')

0 commit comments

Comments
 (0)