Coder Social home page Coder Social logo

sketchup-attribute-inspector's Introduction

logo

Attribute Inspector

A viewer and editor for SketchUp entity and model attributes

This is a viewer for entity and model attributes. Attributes in SketchUp are additional pieces of information that can be stored with entities like groups, components, scenes. For example one can store a part number, unit price, weight or other annotations with an entity and read or modify that information later. All attributes are included in SketchUp's report feature.

This inspector tries to keep the user interface minimal and very efficient: Just like SketchUp's inspector dialogs, you select one or more entities and it instantly displays their attributes. Your inputs are immediately saved to the entities.

logo

Installation

  • Go to the releases page (↑) and download the latest .rbz file. Open in SketchUp Window → Extension Manager and select the .rbz file.

  • Alternatively, you can install the contents of the src directory into your plugins folder.

    If you choose to run from source rather than use the release rbz file, you'll need to run from the sketchup-attribute-inspector folder:

    npm install
    npm build

    (or with hot-patching during development, instead of build)

    npm run dev-server

Usage

Menu: WindowAttribute Inspector

The dialog shows the attribute dictionaries of the currently selected drawing element. Use SketchUp's selection tool to select other elements.

Click the +, buttons on the left pane to add or remove an attribute dictionary, and click +, on the right pane to add or remove an attribute. Since attribute dictionaries are entities, they can themselves have attribute dictionaries. You can also create such nested dictionaries by selecting the parent dictionary in the left pane and clicking the └+ button.

To select other types of entities, choose the type from the dropdown:

  • drawing elements: Use SketchUp's selection tool to select one or more drawing elements in the model (edges, faces, groups…)
  • component definitions: Use SketchUp's selection tool to select components/groups/images
  • materials: Use the materials browser and select a material. Attribute Inspector will show the current material (could be not working on OS X due to API bug)
  • layers: Use the layer manager and check the radio button of the layer
  • scenes: Use the scenes manager and double-click the scene (to make it the current scene)
  • styles: Use the styles manager and double-click the style

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/Aerilius/sketchup-attribute-inspector/issues.

Development

This project requires ruby, ruby-bundler and npm.

First, run npm install and bundle install to install requirements.

Run bundle exec rake test to run the tests.

To release a new version, update the version number in version.rb, and then run npm run release (npm run build and bundle exec rake release).

To build a new installation package , run bundle exec rake build_rbz.

License

This extension is available as open source under the terms of the MIT License.

sketchup-attribute-inspector's People

Contributors

aerilius avatar dependabot[bot] avatar macavirus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

sketchup-attribute-inspector's Issues

Switch to ES6 and .vue component files

The current approach (multiline strings and inline style blocks) is a clever solution to facilitate hacking for collaborators directly on the production code without previous knowledge about build tools.

But I think the better readability (no \n\) and no need to care about supported JavaScript features rather outweigh it. Therefore one could switch to npm/babel/ES6 and .vue component files.

Solve strong coupling between NewModelObserver and AttributeInspector

This observer class assumes/requires that the passed instance has a model= method. In the case here, AttributeInspector's model= does two tasks, transfering (removing, adding) observers to the new model and getting the current selection of the new model.

Check if this can be better solved with a more abstract "PersistentObserver" that takes care to add observers to subentities of whatever model is active.

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.