Giter VIP home page Giter VIP logo

revitlookup's Introduction

RevitLookup

Interactive Revit project database exploration tool to view and navigate BIM element parameters, properties and relationships.

Whether you are a seasoned professional or just starting out, the RevitLookup is an indispensable tool for anyone who works with Revit projects. Its ease of use and advanced features make it the perfect solution for exploring, analyzing and manipulating Revit databases.

Badge Badge Badge Badge

Screenshot

Installation

  • Download and run the MSI file.
  • Single-user installation is for one user only and does not require administrator rights.
  • Multi-user installation requires administrator rights and is installed for all users.

Contributing

To ensure a proper code review, all code contributions must go through a pull request and be approved by a core developer before being merged.

We truly love pull requests! If you wish to help, you can learn more about how to contribute to this project in the contribution guide.

Date Maintainer
Since 2022 Nice3point, with invaluable contributions from the entire Revit add-in developer community
2008 - 2022 Jeremy Tammik, The Building Coder, Autodesk Platform Services, ADN Open
11 May 2005 Originally implemented by Jim Awe of Autodesk Inc. as RvtMgdDbg

License

The source code is published under MIT License, the license is available here.

Technology Sponsors

Thanks to JetBrains for providing licenses for Rider, dotUltimate and Qodana Ultimate Plus, which both make open-source development a real pleasure!

revitlookup's People

Contributors

awmcc90 avatar cadbimdeveloper avatar chekalin-v avatar chuongmep avatar ecodomus avatar eirannejad avatar elainejieyanzheng avatar florianschmid avatar jeremytammik avatar joespiff avatar mattmas avatar mdelanno avatar mphelt avatar nevespl avatar nice3point avatar nice3point2 avatar nonoesp avatar onassau avatar palver123 avatar pekshev avatar peterhirn avatar prasadgalle avatar revitarkitek avatar ricaun avatar sergeynefyodov avatar shayneham avatar swfaust avatar tompesman avatar yk35 avatar yzraeu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

revitlookup's Issues

NukePipeline.yml ArgumentException

This error was caused by me:

NukePipeline.yml: All jobs have failed: ArgumentException: The repository already contains a Release with the tag: 2022.0.2.5

I edited readme directly in the master branch.

Apparently, that causes a new release to be generated, but the release is already present.

I guess I can solve it by updating the release number in the dev branch.

Maybe I should try that to fix the error.

This is just trial and error, though, fishing in the dark...

about geometry transform

`private void Getinfo_Room(Room room)
{
string message = "Room: ";

//get the name of the room
message += "\nRoom Name: " + room.Name;

//get the room position
LocationPoint location = room.Location as LocationPoint;
XYZ point = location.Point;
message += "\nRoom position: " + XYZToString(point);

//get the room number
message += "\nRoom number: " + room.Number;

IList<IList<Autodesk.Revit.DB.BoundarySegment>> segments = room.GetBoundarySegments(new SpatialElementBoundaryOptions());
if (null != segments)  //the room may not be bound
{
    foreach (IList<Autodesk.Revit.DB.BoundarySegment> segmentList in segments)
    {
        message += "\nBoundarySegment of the room: ";
        foreach (Autodesk.Revit.DB.BoundarySegment boundarySegment in segmentList)
        {
            // Get curve start point
            XYZ start = boundarySegment.GetCurve().GetEndPoint(0);
            message += "\nCurve start point: " + XYZToString(start);
            // Get curve end point
            XYZ end = boundarySegment.GetCurve().GetEndPoint(1);
            message += " Curve end point: " + XYZToString(end);

            // Show the boundary elements
            message += "\nBoundary element id: " + boundarySegment.ElementId.IntegerValue;
        }
    }
}

TaskDialog.Show("Revit",message);

}

// output the point's three coordinates
string XYZToString(XYZ point)
{
return "(" + point.X + ", " + point.Y + ", " + point.Z + ")";
}
`

This is sample code. But I want to get the real world position. I have set the real north in REVIT 2018.
So, what should I do in my code?

Spot dimension position and text position error

Reported by LeeJaeYoung in a comment on The Building Coder:

http://thebuildingcoder.typepad.com/blog/2016/04/revit-2017-revitlookup-and-sdk-samples.html#comment-3077972791

Spot dimension position and text position is error in RevitLookup 2017.0.0.8

but It is okey in Revit 2015

I am sorry to say the Error. When I was running LookUP with SpotDimension, I got the message:

Can't set/get leader position for one of these cases:

  1. SpotElevation.
  2. When using equality formula.
  3. When dimension style is ordinate.

I think The leader position of spot dimension is error. text position of spot dimension is also error.

revitlookup_spot_dimension_error

ScheduleDefinition.GetField method not showing

The method ScheduleDefinition.GetField does not show because it requires an integer index parameter. A list of ScheduleFields can be returned, named by the index that was used.

I have this working and can submit a pull request. I have an issue though, in that there are two GetField methods, the other taking in an id. I have not found a way to filter out the second method, so when viewing the ScheduleDefinition properties there will be two GetField entries. If you know of a way to filter out that second method you can let me know or you could add it. Otherwise it could be left as is or put on hold.

Add feature to RevitLookUp to extract multiple IDs

Hi Jeremy,

I just wanted to share a quick idea with you, which I believe could be a great contribution to your already amazing add-in RevitLookup.

Currently, RevitLookup is the only tool and procedure that I know of that allows me to delete shared parameter guids from a project. I simply locate the stored guids through RevitLookUp and manually copy the ID into a notepad file. However, as I am certain you are well aware of, Revit frustratingly stores the inital shared parameter definition when a family is loaded into a project. In other words, if shared parameter "A" is placed in the dimensions category within the family and loaded into the project, Revit will not register any change to this parameter if reloaded. Such change could be moving the parameter to a different category.

Thankfully, through LookUp this fixed definition can be deleted.

The idea I have is to add a feature, allowing to bulk extract IDs from LookUp. Do you think that would be a difficult feature to add?

Kind regards,

Kasper Miller

The MSI in the project is flawed

The MSI installer contains a bunch of unnecessary "fluff". Just one example is that it ends up creating a spurious folder '%AppData%\Autodesk\revit\Addins\2014'.

Given that this add-in comprises just 2 files and that the target folder is always the same, I built a much more streamlined one which I'm happy to share with you: https://1drv.ms/u/s!ArqlqZQvQnGihpkT9yDhfippM8_Krw

Clicking on "MEP Connector info" causes Revit to crash

When examining Fabrication Parts, specifically Fabrication piping, in the Revit Lookup tool a crash will occur when the Method "GetMEPConnectorInfo" for a Connector is clicked. This happens for me, our Fabrication Database manager as well as our BIM/VC Director.
Fabrication Issue

No .dll

When I dowloaded and moved the .addin to the addin folder, Revit Dialog Box showed up saying"
image".

2 questions about Lookup 2018

Recently I installed Revit Lookup, there are two questions.

  1. After clicking the lookup button, there will be some options starting with Snoop. What do these snoop stand for? Is there an official document?
    1

    1. After clicking these buttons, a large amount of information is given in the form of a structured list. Some of this information is relatively easy to understand but someone is difficult to understand. Is there a complete explanation to tell the user the meaning of each information?

2

Modelless window for Lookup tools

Hi @jeremytammik,
while not able to code it myself, especially not in C#,
a nice feature would be to get the windows of the tool in modelless mode. Allowing us to interact with the model directly.
Cheers

warnings compiling modeless revitlookup

Severity Code Description Project File Line Suppression State
Warning CS4014 Because this call is not awaited, execution of the current method continues before the call is completed. Consider applying the 'await' operator to the result of the call. RevitLookup Y:\a\src\rvt\RevitLookup\CS\TestCmds.cs 110 Active
Warning CS1998 This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread. RevitLookup Y:\a\src\rvt\RevitLookup\CS\Snoop\Forms\ObjTreeBase.cs 325 Active
Warning CS1998 This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread. RevitLookup Y:\a\src\rvt\RevitLookup\CS\Snoop\Forms\ParamEnumSnoop.cs 349 Active
Warning CS1998 This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread. RevitLookup Y:\a\src\rvt\RevitLookup\CS\Snoop\Forms\Parameters.cs 377 Active
Warning CS4014 Because this call is not awaited, execution of the current method continues before the call is completed. Consider applying the 'await' operator to the result of the call. RevitLookup Y:\a\src\rvt\RevitLookup\CS\TestCmds.cs 74 Active
Warning CS4014 Because this call is not awaited, execution of the current method continues before the call is completed. Consider applying the 'await' operator to the result of the call. RevitLookup Y:\a\src\rvt\RevitLookup\CS\TestCmds.cs 88 Active
Warning CS4014 Because this call is not awaited, execution of the current method continues before the call is completed. Consider applying the 'await' operator to the result of the call. RevitLookup Y:\a\src\rvt\RevitLookup\CS\TestCmds.cs 99 Active
Warning CS4014 Because this call is not awaited, execution of the current method continues before the call is completed. Consider applying the 'await' operator to the result of the call. RevitLookup Y:\a\src\rvt\RevitLookup\CS\TestCmds.cs 128 Active
Warning CS4014 Because this call is not awaited, execution of the current method continues before the call is completed. Consider applying the 'await' operator to the result of the call. RevitLookup Y:\a\src\rvt\RevitLookup\CS\TestCmds.cs 142 Active
Warning CS4014 Because this call is not awaited, execution of the current method continues before the call is completed. Consider applying the 'await' operator to the result of the call. RevitLookup Y:\a\src\rvt\RevitLookup\CS\TestCmds.cs 157 Active
Warning CS4014 Because this call is not awaited, execution of the current method continues before the call is completed. Consider applying the 'await' operator to the result of the call. RevitLookup Y:\a\src\rvt\RevitLookup\CS\TestCmds.cs 171 Active

Revit Lookup doesn't snoop all members

I tried snooping a selected Structual Rebar element in the active view and found not all of the Rebar Class members showed up in the Snoop Objects window. One of many members that weren't there: Rebar.GetFulGeometryForView method.
Is this the supposed behaviour for Revit Lookup? I was thinking I could get all object members with Revit Lookup and without RevitAPI.chm file.

Unhandled exception on View.GetTemplateParameterIds

In a view (whether its a view template or not), I click on GetTemplateParameterIds, following error is thrown:

************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
at RevitLookup.Snoop.Data.SnoopableObjectWrapper.GetUnderlyingType()
at RevitLookup.Snoop.Forms.Objects.AddObjectsToTree(IEnumerable1 snoopableObjects) at RevitLookup.Snoop.Forms.Objects.CommonInit(IEnumerable1 objs)
at RevitLookup.Snoop.Forms.Objects..ctor(ArrayList objs)
at RevitLookup.Snoop.Data.Enumerable.DrillDown()
at RevitLookup.Snoop.Utils.DataItemSelected(ListView lvCur)
at RevitLookup.Snoop.Forms.Objects.DataItemSelected(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.ListView.WmReflectNotify(Message& m)
at System.Windows.Forms.ListView.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

document main maintaining author and VS build requirements

hi Roman @Nice3point ! Happy New Year to you! Thank you for the new release 2022.0.3.2! I notice that it requires me to install an updated .NET SDK 6.0: It reports error NETSDK1045: The current .NET SDK does not support targeting .NET 6.0; Either target .NET 5.0 or lower, or use a version of the .NET SDK that supports .NET 6.0. I am installing the 6.0 SDK. Maybe this build requirement ought to be mentioned in the readme? In the past, I stuck with a very old version of VS and the SDK, bordering on obsolete, to make sure that absolutely everybody else was more up-to-date than me. Now, we are forcing developers to update their VS and .NET more promptly... I suggest documenting that.

I would also suggest adding you to the Authors section, since you are currently the main maintaining author, and I am doing next to nothing at all.

What do you think?

Center parent for forms

I have a little request. Could you please change all forms startposition to "CenterParent". I must change that everytime I download a new build. When working with 2 screens, revitlookup manages to show it's dialogs on the wrong screen (or half outside the screen).

Multi-version support for Revit 2016-2022

Hi Jeremy,

I see that the multi-version configurations that I submitted to RevitLookup were undone by a recent submission. I'd be happy to build a new multi-version installer for Revit 2016-2022 (or whatever versions people would like), but I'm not sure how you'd like the solution configured to do this. Could you let me know?

Thanks
Harry

Couldn´t find the msi installer for latest version

Hi;
I couldn´t find the latest version .msi installer, instead, I have found the version installer for revit 2021.

Am I doing something wrong or maybe from version 2022 the installation process changes?

Thanks for all

Duplication of Parameters

Hello,
I've noticed that there are parameters that get duplicated, especially when using the Snoop Active View tool. Then clicking on < ParameterSet>. It also happens with some of the parameters in elements as well. I have the same problem in a couple of my addins after recompiling in 2016 and not sure what's causing it. Thanks.

dll certificate expired?

Hello! I just started noticing that Revit is prompting about unsigned certificate for this add-in (all Revit versions 2018-2021). Checked the dll for the latest release and it appears the cert may have expired this month.

Errors during Build

Hi Jeremy,
Upon building the solution file, I found 7 errors. Any hint as to how to solve this issue?
err

Add more information about Schedules

It would be nice if for example the following properties would be shown of a ViewSchedule:
Which SchedulableFields are applied
What the Definition looks like

Unused code

Hi, there is unused code and windows in the application.
изображение
изображение
When opening Revit, there is a subscription to events if the subscription is already subscribed. This condition will never be met.

if (EventsForm.DocEvents.AreEventsEnabled) EventsForm.DocEvents.EnableEvents(args.Document);

If this code is already deprecated, I could remove it. This is still a database exploration add-in, not an example of event usage in Revit.

There are also empty files that do not contain anything. for example HostApplication.cs

Split Region Offsets (2021)

The method ViewCropRegionShapeManager.GetSplitRegionOffset was added in 2021. This returns an XYZ but requires an integer index parameter. A list of XYZs can be returned, named by the index that was used.

I have this working and can submit a pull request.

develop branch

@jeremytammik can you create a new 'develop' branch? The idea is this: accept pull requests only in this branch, test new functions, and if everything is fine, merge with the main 'master'. I would also disable the creation of an installer for this branch, leaving only compilation. This will keep the 'master' branch always in the correct state

MSI Installation Option: Per Machine Installation

Good Morning-

Recently at my organization there was a request by an end user to use the Revit Lookup add-in. During testing, we noticed that the default installation directory for the add-in is the active users roaming directory (C:\Users%username%\AppData\Roaming\Addins\Revit\Addins%YEAR%\RevitLookUp/Revitlookup.dll) at the time of installation.

From an application management perspective, this makes it challenging to streamline upgrades/add-in removals as the active user at the time of installation needs to be logged into the workstation and the fact that the add-in doesn't install across user accounts on the workstation.

As a result of the installation directory changing, the LOCAL SYSTEM account (used by many centrally managed application solutions) can no longer handle the installation/uninstallation of the add-in without the end user being logged into the machine. In the past, the add-in installed in the Program Data directory (C:\ProgramData\Autodesk\Revit\Addins\2019\RevitLookup.dll) which appears to have allowed for 'Machine-wide installation'.

We would like to have the option to deploy the add-in to all Revit users in the future. However, without a machine-wide installation option are hesitant to do so. As a suggestion, you may want to give end users the option to install the MSI a machine-wide context as well as the current per-user context.

installation for Revit 2022

Hi all,

I tried to install RevitLookup for Revit 2022 using 'Revit Lookup.msi' which within the RevitLookup-2022.0.0.15.zip file. The addin will appear in earlier Revit versions, but not in 2022, it will not create the .dll and .addin files in the appropriate folder.
Does anyone have any idea why the two files are not installed in the correct folder?
Or where can I find these two files inside the zip?
image

Thank you for your help,
Máté

Revit lookup 2020 - Not installing

Hi Jeremy, I've installed 2020's +thumbs up+ but running the 2022 Revit Lookup-SetupFiles > Revit Lookup.msi installer isn't adding lookup to 2022. Any thoughts?
20
22

modeless mode for revit <2022 - installer issue?

hi @jeremytammik and @Nice3point and @NeVeSpl
I tried the installer as per readme instructions and noticed it worked well except the modeless mode is available only in revit 2022 after installation.
I cannot find if it is expected or an issue:

  • is my install messed up?
  • is the modelless mode implemented only in 2022?
  • is it due to compilation of the wrong code by the git actions or the installer?

Showing StorageType

Hi
I would like to propose adding some kind of system to show StorageType and Types.
Best regards
Michail

ParameterBindings Not Correct

Dear @Nice3point,
I see a problem in here with ParameterBindings. May be is an issue.
devenv_MUyy5yUguH
Some Code Sample :

 BindingMap bindingMap = DB.Doc.ParameterBindings;
DefinitionBindingMapIterator iterator = bindingMap.ForwardIterator();
            while (iterator.MoveNext())
            {
                Definition def = iterator.Key;
                //TODO SOME THING
            }

queering dimensions throws an exception

I got this when I tried to query Dimensions:

image

************** Exception Text **************
Autodesk.Revit.Exceptions.InvalidOperationException: Cannot access this method if this dimension has more than one segment.
   at Autodesk.Revit.DB.Dimension.get_LeaderEndPosition()
   at RevitLookup.Snoop.CollectorExts.CollectorExtElement.Stream(ArrayList data, Dimension dim)
   at RevitLookup.Snoop.CollectorExts.CollectorExtElement.Stream(ArrayList data, Element elem)
   at RevitLookup.Snoop.CollectorExts.CollectorExtElement.CollectEvent(Object sender, CollectorEventArgs e)
   at RevitLookup.Snoop.Collectors.Collector.CollectorExt.Invoke(Object sender, CollectorEventArgs e)
   at RevitLookup.Snoop.Collectors.Collector.FireEvent_CollectExt(Object objToSnoop)
   at RevitLookup.Snoop.Collectors.CollectorObj.Collect(Object obj)
   at RevitLookup.Snoop.Forms.Objects.TreeNodeSelected(Object sender, TreeNodeMouseClickEventArgs e)
   at System.Windows.Forms.TreeView.OnNodeMouseClick(TreeNodeMouseClickEventArgs e)
   at System.Windows.Forms.TreeView.WmNotify(Message& m)
   at System.Windows.Forms.TreeView.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.