Esempio n. 1
0
def doc_register(proj):
    UpdaterRegistry.RegisterUpdater(myroomupdater, proj)
    filter = RoomFilter()
    UpdaterRegistry.AddTrigger(myroomupdater.GetUpdaterId(), filter,
                               Element.GetChangeTypeGeometry())
    UpdaterRegistry.AddTrigger(myroomupdater.GetUpdaterId(), filter,
                               Element.GetChangeTypeElementAddition())
Esempio n. 2
0
def checkUpdater(sender, args):
    '''event type function to check if updater is needed,
    if the specific parameter is found -> registering '''
    doc = args.Document

    paramHx2 = False
    params_proj = doc.ParameterBindings.GetEnumerator()
    params_proj.Reset()
    while params_proj.MoveNext():
        if params_proj.Key.Name == 'DoubleHeight':
            paramHx2 = True
            break

    if paramHx2:
        #register the updater
        UpdaterRegistry.RegisterUpdater(my_updater, doc)
        filter = RoomFilter()
        UpdaterRegistry.AddTrigger(my_updater.GetUpdaterId(), filter,
                                   Element.GetChangeTypeGeometry())

        UpdaterRegistry.AddTrigger(my_updater.GetUpdaterId(), filter,
                                   Element.GetChangeTypeElementAddition())

        # only for the test :
        TaskDialog.Show("MyRoomUpdater",
                        'MyRoomUpdater is enabled for this project')
    else:
        TaskDialog.Show("MyRoomUpdater",
                        'MyRoomUpdater is disabled for this project')
Esempio n. 3
0
def removeUpdater(sender, args):
    '''event type function to unregister the updater from a document'''
    doc = args.Document

    if UpdaterRegistry.IsUpdaterRegistered(my_updater.GetUpdaterId(), doc):

        UpdaterRegistry.UnregisterUpdater(my_updater.GetUpdaterId(), doc)
Esempio n. 4
0
def dialogManager():
    '''dialogbox to manage updater state from a ribbon button'''
    #scope when dialogManager is called
    doc = __revit__.ActiveUIDocument.Document

    # registering state
    app_dmu = UpdaterRegistry.IsUpdaterRegistered(myroomupdater.GetUpdaterId())
    doc_dmu = UpdaterRegistry.IsUpdaterRegistered(myroomupdater.GetUpdaterId(),
                                                  doc)

    # note : the global will be unregistered when the last document is unregistered
    # note2 : look at IsUpdaterEnabled and EnableUpdater/DisableUpdater too
    # note3 : enabled or not, an updater may be suspended by Revit for misbehaving

    # build the dialog box
    box = TaskDialog('Dynamic Model Updaters')
    box.MainInstruction = 'DoubleHeight Updater Manager'

    box.MainContent = '- Document Updater is :{0} Registered'.format(
        ' NOT' * (not doc_dmu))
    box.MainContent += '\n- Global Updater is :{0} Registered'.format(
        ' NOT' * (not app_dmu))

    # add command options
    if doc_dmu:
        box.AddCommandLink(TaskDialogCommandLinkId.CommandLink1,
                           'Disable document Updater')

    else:
        box.AddCommandLink(TaskDialogCommandLinkId.CommandLink2,
                           'Enable document Updater')

    if app_dmu:
        box.AddCommandLink(TaskDialogCommandLinkId.CommandLink3,
                           'Disable all documents Updater ')

    # box.FooterText = 'Add comments in the footer'

    # close button to abort
    box.CommonButtons = TaskDialogCommonButtons.Close

    # show the dialogbox and capture the answer
    answer = box.Show()

    # 1st option : disable updater for current document
    if answer == TaskDialogResult.CommandLink1:

        doc_unregister(doc)

    # 2nd option : register the current doc
    elif answer == TaskDialogResult.CommandLink2:

        doc_register(doc)

    # 3rd option : disable updater for all opened documents
    elif answer == TaskDialogResult.CommandLink3:

        global_unregister()
Esempio n. 5
0
def global_unregister():
    if UpdaterRegistry.IsUpdaterRegistered(myroomupdater.GetUpdaterId()):
        UpdaterRegistry.UnregisterUpdater(myroomupdater.GetUpdaterId())
Esempio n. 6
0
def doc_unregister(proj):
    if UpdaterRegistry.IsUpdaterRegistered(myroomupdater.GetUpdaterId(), proj):
        UpdaterRegistry.UnregisterUpdater(myroomupdater.GetUpdaterId(), proj)
from Autodesk.Revit.DB import Element, ChangePriority, SubTransaction
from Autodesk.Revit.DB import IUpdater, UpdaterId, UpdaterRegistry
from Autodesk.Revit.UI import TaskDialog, TaskDialogCommonButtons 
from Autodesk.Revit.UI import TaskDialogCommandLinkId, TaskDialogResult
from Autodesk.Revit.DB.Architecture import RoomFilter

from startup import MyRoomUpdater

app = __revit__.Application
doc = __revit__.ActiveUIDocument.Document

# create an instance
my_updater = MyRoomUpdater(app.ActiveAddInId)

# registering state
app_dmu = UpdaterRegistry.IsUpdaterRegistered(my_updater.GetUpdaterId())
doc_dmu = UpdaterRegistry.IsUpdaterRegistered(my_updater.GetUpdaterId(), doc)

# note : the global will be unregistered when the last document is unregistered
# note2 : look at IsUpdaterEnabled and EnableUpdater/DisableUpdater too 
# note3 : enabled or not, an updater may be suspended by Revit for misbehaving


# build the dialog box
box = TaskDialog('Dynamic Model Updaters')
box.MainInstruction  = 'DoubleHeight Updater Manager'

box.MainContent = '- Document Updater is :{0} Registered'.format(' NOT' * (not doc_dmu))
box.MainContent += '\n- Global Updater is :{0} Registered'.format(' NOT' * (not app_dmu))

Esempio n. 8
0
def unreg_RoomUpdater(sender, args):
    '''event type function to globally unregister the updater'''
    if UpdaterRegistry.IsUpdaterRegistered(my_updater.GetUpdaterId()):

        UpdaterRegistry.UnregisterUpdater(my_updater.GetUpdaterId())