Properties

ComponentStatus

#Since v6.0
public virtual ComponentStatus ComponentStatus { get; set; }
Gets or sets the component status of the model component.

ComponentType

#Since v6.0
public abstract ModelComponentType ComponentType { get; }
Gets the ModelComponentType for this object. Useful in switch statements.

DeletedName

#Since v6.2
public string DeletedName { get; }
Gets the name of a component that is deleted.

Disposed

public bool Disposed { get; }
Indicates if this object has been disposed or the document it originally belonged to has been disposed.
inherited fromCommonObject

HasId

#Since v6.0
public bool HasId { get; }
Returns a value indicating whether the component has an ID.

HasIndex

#Since v6.0
public bool HasIndex { get; }
Returns a value indicating whether the component has an Index.

HasName

#Since v6.0
public bool HasName { get; }
Returns a value indicating whether the component has a Name.

HasUserData

public bool HasUserData { get; }
Gets true if this class has any custom information attached to it through UserData.
inherited fromCommonObject

Id

#Since v6.0
public virtual Guid Id { get; set; }
Gets or sets the ID of the current instance.
InvalidOperationExceptionWhen setting the ID failed. This usually happened because the instance ID is already locked.

IdIsLocked

#Since v6.0
public bool IdIsLocked { get; }
Returns a value indicating whether the component ID is already locked.

Index

#Since v6.0
public virtual int Index { get; set; }
Gets or sets the model component index attribute.
InvalidOperationExceptionWhen setting the Index failed. This usually happens because the instance Index is already locked.

IndexIsLocked

#Since v6.0
public bool IndexIsLocked { get; }
Returns a value indicating whether the component Index is already locked.

InstanceDefinitionModelSerialNumber

#Since v6.12
[CLSCompliant(false)] public virtual uint InstanceDefinitionModelSerialNumber { get; }
When a component is in a model as part of the information required for a linked instance definition, this value identifies the linked instance definition reference model.
Remarks: Reference components are not saved in .3dm archives. Typically this value is set and locked by the code that adds a component to a model. This value is not saved in .3dm archives.

IsComponentStatusLocked

#Since v6.0
public bool IsComponentStatusLocked { get; }
The component status itself can be locked. This returns an indication.

IsDeleted

#Since v8.0
public virtual bool IsDeleted { get; }
true if the component is deleted. Deleted components are kept by the document for undo purposes.

IsDocumentControlled

public virtual bool IsDocumentControlled { get; }
If true this object may not be modified. Any properties or functions that attempt to modify this object when it is set to "IsReadOnly" will throw a NotSupportedException.
inherited fromCommonObject

IsReference

#Since v8.0
public virtual bool IsReference { get; }
Gets a value indicting whether this component is a referenced component. Referenced components are part of referenced documents.

IsSystemComponent

#Since v6.0
public bool IsSystemComponent { get; }
True if this model component is a system constant.

An incomplete list of system constant model components is below:

  • ON_ModelComponent::Unset

  • ON_InstanceDefinition::Empty

  • ON_Linetype::Unset
  • ON_Linetype::Continuous
  • ON_Linetype::ByLayer
  • ON_Linetype::ByParent

  • ON_Layer::Unset
  • ON_Layer::Default

  • ON_TextStyle::Unset
  • ON_TextStyle::Default
  • ON_TextStyle::ByLayer
  • ON_TextStyle::ByParent

  • ON_DimStyle::Unset
  • ON_DimStyle::Default
  • ON_DimStyle::DefaultInchDecimal
  • ON_DimStyle::DefaultInchFractional
  • ON_DimStyle::DefaultFootInchArchitecture
  • ON_DimStyle::DefaultMillimeterSmall
  • ON_DimStyle::DefaultMillimeterLarge
  • ON_DimStyle::DefaultMillimeterArchitecture

IsValid

public virtual bool IsValid { get; }
Tests an object to see if it is valid.
inherited fromCommonObject

ModelSerialNumber

#Since v6.12
[CLSCompliant(false)] public virtual uint ModelSerialNumber { get; }
A value identifying the model that manages this component.
Remarks: If the component is being managed by a model, this value identifies the model. In Rhino, this value is the document runtime serial number. Typically this value is set and locked by the code that adds a component to a model. This value is not saved in .3dm archives.

Name

#ExampleSince v6.0
public virtual string Name { get; set; }
Gets or sets the name
InvalidOperationExceptionWhen setting the Name failed. This usually happens because the instance Name is already locked.

NameIsLocked

#Since v6.0
public bool NameIsLocked { get; }
Returns a value indicating whether the component Name is already locked.

NamePathSeparator

#Since v8.0
public static string NamePathSeparator { get; }
Returns the string "::". This is the string Rhino uses in layer full path names to separate the names of individual layers.

ReferenceModelSerialNumber

#Since v6.12
[CLSCompliant(false)] public virtual uint ReferenceModelSerialNumber { get; }
When a component is in a model for reference, this value identifies the reference model.
Remarks: Reference components are not saved in .3dm archives. Typically this value is set and locked by the code that adds a component to a model. This value is not saved in .3dm archives.

UserData

public UserDataList UserData { get; }
List of custom information that is attached to this class.
inherited fromCommonObject

UserDictionary

public ArchivableDictionary UserDictionary { get; }
Dictionary of custom information attached to this class. The dictionary is actually user data provided as an easy to use shareable set of information.
inherited fromCommonObject

Methods

ClearId

#Since v6.0
public void ClearId()
Resets the HasId property of the model component to false, if possible.
InvalidOperationExceptionIf the ID is locked.

ClearIndex

#Since v6.0
public void ClearIndex()
Resets the HasIndex property of the model component to false, if possible.
InvalidOperationExceptionIf the index is locked.

ClearName

#Since v6.0
public void ClearName()
Resets the HasName property of the model component to false, if possible.
InvalidOperationExceptionIf the name is locked.

ConstructConstObject

protected void ConstructConstObject(object parentObject, int subobjectIndex)
Assigns a parent object and a sub-object index to this.
inherited fromCommonObject
parentObject (object)The parent object.
subobjectIndex (int)The sub-object index.

DataCRC

#Since v6.0
[CLSCompliant(false)] public uint DataCRC(uint currentRemainder)
Increments the Cyclic Redundancy Check value by this instance.
currentRemainder (uint)The current remainder value.
The updated remainder value.

Dispose

public void Dispose()
Actively reclaims unmanaged resources that this instance uses.
inherited fromCommonObject

Dispose

protected virtual void Dispose(bool disposing)
For derived class implementers.

This method is called with argument true when class user calls Dispose(), while with argument false when the Garbage Collector invokes the finalizer, or Finalize() method.

You must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.

Also, you must call the base virtual method within your overriding method.

inherited fromCommonObject
disposing (bool)true if the call comes from the Dispose() method; false if it comes from the Garbage Collector finalizer.

EnsurePrivateCopy

public void EnsurePrivateCopy()
If you want to keep a copy of this class around by holding onto it in a variable after a command completes, call EnsurePrivateCopy to make sure that this class is not tied to the document. You can call this function as many times as you want.
inherited fromCommonObject

GetObjectData

[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.SerializationFormatter)] public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
Populates a System.Runtime.Serialization.SerializationInfo with the data needed to serialize the target object.
inherited fromCommonObject
info (SerializationInfo)The System.Runtime.Serialization.SerializationInfo to populate with data.
context (StreamingContext)The destination (see System.Runtime.Serialization.StreamingContext) for this serialization.

IsValidComponentName

#Since v6.15
public static bool IsValidComponentName(string name)
Tests for a valid model component name.
name (string)The string to validate.
true if the string is a valid model component name, false otherwise.

IsValidWithLog

public bool IsValidWithLog(out string log)
Determines if an object is valid. Also provides a report on errors if this object happens not to be valid.
inherited fromCommonObject
log (out string)A textual log. This out parameter is assigned during this call.
true if this object is valid; false otherwise.

LockId

#Since v6.0
public void LockId()
Locks the component Id property.

LockIndex

#Since v6.0
public void LockIndex()
Locks the component Index property.

LockName

#Since v6.0
public void LockName()
Locks the component Name property.

ModelComponentTypeIgnoresCase

#Since v6.0
public static bool ModelComponentTypeIgnoresCase(ModelComponentType type)
Informs the developer if a particular model component type will require case-ignoring searching within a document. This is currently true with groups; false otherwise.
type (ModelComponentType)True if the component ignores case.

ModelComponentTypeIncludesParent

#Since v6.0
public static bool ModelComponentTypeIncludesParent(ModelComponentType type)
Informs the developer if a particular model component type will include the hash of the parent.
type (ModelComponentType)True if the component includes parent hash.

ModelComponentTypeRequiresUniqueName

#Since v6.0
public static bool ModelComponentTypeRequiresUniqueName(ModelComponentType type)
Informs the developer if a particular model component type will require uniqueness within a document. This is currently true with render materials and model geometry; false otherwise.
type (ModelComponentType)The type to check.
true with render materials and model geometry; false otherwise.

NonConstOperation

protected virtual void NonConstOperation()
For derived classes implementers.

Defines the necessary implementation to free the instance from being constant.

inherited fromCommonObject

OnSwitchToNonConst

protected virtual void OnSwitchToNonConst()
Is called when a non-constant operation first occurs.
inherited fromCommonObject

ToJSON

public string ToJSON(SerializationOptions options)
Create a JSON string representation of this object
inherited fromCommonObject
options (SerializationOptions)

ToString

#
public override string ToString()
Returns the name of the model component type, and then its name and index.
Remarks: This is provided as a visual aid. Do not rely on this for serialization.
Object.ToString